Here's a simple example over Q with f(x)=x3+1 and g(x)=x2−1. First, define a polynomial ring over Q:
sage: R.<x> = PolynomialRing(QQ,'x')
sage: f = x^3+1; g = x^2-1
sage: f.gcd(g)
x+1
One can also do this with extension fields. (By the way, there's probably a faster way to do the following.) First, let's construct Q(√2,√3) using the ring R
constructed above
sage: p = x^2-2 # using the x defined above
sage: q = x^2-3
sage: K.<a,b> = QQ.extension([p,q])
sage: print a^2, b^2 # testing variable assignment
2 3
Now create a polynomial ring over K
, define some elements, and compute their GCD:
sage: S.<x> = PolynomialRing(K,'x')
sage: f = a*x^2 * (x-1); g = a*x^2 * (x-b)
sage: f.gcd(g)
x^2
Hrm, it seems like there's either a bit of a bug, here, or I constructed something incorrectly. (The result should be √2x2.) I'll submit this as a bug report. However, it seems like you'll at least get a common factor "modulo" the elements used to create the extension field.
sage: f/x^2
a*x - a
sage: g/x^2
a*x - b*a
So perhaps by inspection you can compute the GCD. Hopefully this will be resolved soon.