Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Math 223a Class Demos

Project: Math 223a
Views: 1226
K = Qp(5); K #K is the field Q5 of 5-adics
5-adic Field with capped relative precision 20
R.<t> = PolynomialRing(K); R #construct ring of polynomials over Q5
Univariate Polynomial Ring in t over 5-adic Field with capped relative precision 20
L1.<alpha1> = K.ext(t^2-5); L1 #construct an extension of K=Q5 by adjoining a square root alpha1 of 5
Eisenstein Extension in alpha1 defined by t^2 - 5 with capped relative precision 40 over 5-adic Field
L1.e() #get the ramification index e of L1/K
2
L1.f() #get the inertia degree f of L1/K
1
L1.uniformizer() #Sage knows that L1 has uniformizer alpha1
alpha1 + O(alpha1^41)
v = L1.valuation() #Sage knows that L1 has a natural valuation
v(alpha1); v(5); #however Sage normalizes it differently from how we do, so the uniformizer alpha1 has valuation 1/2 and 5 has valuation 1.
1/2 1
L2.<alpha2> = K.ext(t^2 - 2); L2 #now we adjoin sqrt(2) to 5
Unramified Extension in alpha2 defined by t^2 - 2 with capped relative precision 20 over 5-adic Field
L2.e(); L2.f(); # L2/K is unramified and has inertia degree 2
1 2
L2.uniformizer() #5 remains a uniformizer in the unramified extension L2
5 + O(5^21)
L3.<alpha3> = K.ext(t^4 + t^3 + t^2 + t + 1) #We try building a cylotomic extension, but sage doesn't yet support extensions of local fields by general polynomials
Error in lines 1-1 Traceback (most recent call last): File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 1188, in execute flags=compile_flags) in namespace, locals File "", line 1, in <module> File "/ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/rings/padics/local_generic.py", line 889, in ext return self.extension(*args, **kwds) File "/ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/rings/padics/padic_generic.py", line 678, in extension return ExtensionFactory(base=self, modulus=modulus, prec=prec, names=names, check = True, implementation=implementation, **print_mode) File "sage/structure/factory.pyx", line 368, in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:2045) return self.get_object(version, key, kwds) File "sage/structure/factory.pyx", line 411, in sage.structure.factory.UniqueFactory.get_object (build/cythonized/sage/structure/factory.c:2421) obj = self.create_object(version, key, **extra_args) File "/ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/rings/padics/factory.py", line 2957, in create_object raise NotImplementedError("Extensions by general polynomials not yet supported. Please use an unramified or Eisenstein polynomial.") NotImplementedError: Extensions by general polynomials not yet supported. Please use an unramified or Eisenstein polynomial.
L3.<alpha3> = K.ext(t^4 + 5* t^3 + 10*t^2 + 10*t + 5) #In this case we can do a workaround, and use the minimal polynomial of zeta_5-1, which is an Eisenstein polynomial
L3.e(); L3.f(); #L3/K is totally ramified.
4 1
L4.<alpha4> = K.ext(t^3 - 2) #try building an extension by adjoining a cube root of 2. This time adjoining a root of t^3-2 fails because the polynomial t^3-2 is reducible over K. (We get the same error message as before, though, which isn't very helpful.)
Error in lines 1-1 Traceback (most recent call last): File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 1188, in execute flags=compile_flags) in namespace, locals File "", line 1, in <module> File "/ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/rings/padics/local_generic.py", line 889, in ext return self.extension(*args, **kwds) File "/ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/rings/padics/padic_generic.py", line 678, in extension return ExtensionFactory(base=self, modulus=modulus, prec=prec, names=names, check = True, implementation=implementation, **print_mode) File "sage/structure/factory.pyx", line 368, in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:2045) return self.get_object(version, key, kwds) File "sage/structure/factory.pyx", line 411, in sage.structure.factory.UniqueFactory.get_object (build/cythonized/sage/structure/factory.c:2421) obj = self.create_object(version, key, **extra_args) File "/ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/rings/padics/factory.py", line 2957, in create_object raise NotImplementedError("Extensions by general polynomials not yet supported. Please use an unramified or Eisenstein polynomial.") NotImplementedError: Extensions by general polynomials not yet supported. Please use an unramified or Eisenstein polynomial.
factorization = gp.factorpadic(t^3-2, 5, 20); factorization #t^3-2 factors into a linear and a quadratic polynomial over K
[(1 + O(5^20))*t + (2 + 4*5 + 2*5^2 + 2*5^3 + 5^4 + 3*5^5 + 4*5^7 + 2*5^8 + 5^9 + 4*5^10 + 4*5^11 + 4*5^13 + 5^16 + 3*5^17 + 3*5^18 + 2*5^19 + O(5^20)), 1; (1 + O(5^20))*t^2 + (3 + 2*5^2 + 2*5^3 + 3*5^4 + 5^5 + 4*5^6 + 2*5^8 + 3*5^9 + 4*5^12 + 4*5^14 + 4*5^15 + 3*5^16 + 5^17 + 5^18 + 2*5^19 + O(5^20))*t + (4 + 5 + 2*5^2 + 4*5^3 + 4*5^4 + 3*5^5 + 3*5^6 + 4*5^7 + 4*5^9 + 2*5^10 + 5^11 + 5^12 + 5^13 + 4*5^14 + 2*5^15 + 2*5^16 + 3*5^17 + 3*5^18 + 2*5^19 + O(5^20)), 1]
factor1 = (1 + O(5^20))*t + (2 + 4*5 + 2*5^2 + 2*5^3 + 5^4 + 3*5^5 + 4*5^7 + 2*5^8 + 5^9 + 4*5^10 + 4*5^11 + 4*5^13 + 5^16 + 3*5^17 + 3*5^18 + 2*5^19 + O(5^20)); factor2 = (1 + O(5^20))*t^2 + (3 + 2*5^2 + 2*5^3 + 3*5^4 + 5^5 + 4*5^6 + 2*5^8 + 3*5^9 + 4*5^12 + 4*5^14 + 4*5^15 + 3*5^16 + 5^17 + 5^18 + 2*5^19 + O(5^20))*t + (4 + 5 + 2*5^2 + 4*5^3 + 4*5^4 + 3*5^5 + 3*5^6 + 4*5^7 + 4*5^9 + 2*5^10 + 5^11 + 5^12 + 5^13 + 4*5^14 + 2*5^15 + 2*5^16 + 3*5^17 + 3*5^18 + 2*5^19 + O(5^20)); #copy and pasting the factors from the GP output (the output is a string, so this is the easiest way to get at them)
L5.<alpha5> = K.ext(factor2); L5 # construct an extension of Q5 by adjoining a root of the quadratic factor
Unramified Extension in alpha5 defined by t^2 + 43329840692803*t + 2296189/4993571 with capped relative precision 20 over 5-adic Field
alpha5^3 # confirm that alpha5 is a cube root of 2
L5.e(); L5.f() #L5 is an unramfied extension of K
1 2