Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Math 223a Class Demos

Project: Math 223a
Views: 1226
K1.<a1> = NumberField(x^2 - 5); K1; #quadratic number field example: define K1 as the ring of integers in Q(sqrt(5))
Number Field in a1 with defining polynomial x^2 - 5
K1.factor(2) #example of inert prime
Fractional ideal (2)
K1.factor(11) #example of split prime
(Fractional ideal (3/2*a1 - 1/2)) * (Fractional ideal (3/2*a1 + 1/2))
K1.factor(5) #example of ramified prime
(Fractional ideal (-a1))^2
def decomposition_type(p, K): #function for finding decomposition type of an unramified prime if p.divides(K.discriminant()): return "ramified"; #we're ignoring the ramified primes else: return [q.norm().valuation(p) for q in K.primes_above(p)]
decomposition_type(2, K1); decomposition_type(11, K1); decomposition_type(5, K1); #checking against our existing examples
[2] [1, 1] 'ramified'
[[p, decomposition_type(p, K1)] for p in primes(500)] #list of how the primes up to 499 decompose in Q(sqrt(5)).
[[2, [2]], [3, [2]], [5, 'ramified'], [7, [2]], [11, [1, 1]], [13, [2]], [17, [2]], [19, [1, 1]], [23, [2]], [29, [1, 1]], [31, [1, 1]], [37, [2]], [41, [1, 1]], [43, [2]], [47, [2]], [53, [2]], [59, [1, 1]], [61, [1, 1]], [67, [2]], [71, [1, 1]], [73, [2]], [79, [1, 1]], [83, [2]], [89, [1, 1]], [97, [2]], [101, [1, 1]], [103, [2]], [107, [2]], [109, [1, 1]], [113, [2]], [127, [2]], [131, [1, 1]], [137, [2]], [139, [1, 1]], [149, [1, 1]], [151, [1, 1]], [157, [2]], [163, [2]], [167, [2]], [173, [2]], [179, [1, 1]], [181, [1, 1]], [191, [1, 1]], [193, [2]], [197, [2]], [199, [1, 1]], [211, [1, 1]], [223, [2]], [227, [2]], [229, [1, 1]], [233, [2]], [239, [1, 1]], [241, [1, 1]], [251, [1, 1]], [257, [2]], [263, [2]], [269, [1, 1]], [271, [1, 1]], [277, [2]], [281, [1, 1]], [283, [2]], [293, [2]], [307, [2]], [311, [1, 1]], [313, [2]], [317, [2]], [331, [1, 1]], [337, [2]], [347, [2]], [349, [1, 1]], [353, [2]], [359, [1, 1]], [367, [2]], [373, [2]], [379, [1, 1]], [383, [2]], [389, [1, 1]], [397, [2]], [401, [1, 1]], [409, [1, 1]], [419, [1, 1]], [421, [1, 1]], [431, [1, 1]], [433, [2]], [439, [1, 1]], [443, [2]], [449, [1, 1]], [457, [2]], [461, [1, 1]], [463, [2]], [467, [2]], [479, [1, 1]], [487, [2]], [491, [1, 1]], [499, [1, 1]]]
[[mod(p, 5), decomposition_type(p, K1)] for p in primes(500)] #observe that decomposition type only depends on p mod 5 : Q(sqrt(5)) is a class field of modulus 5
[[2, [2]], [3, [2]], [0, 'ramified'], [2, [2]], [1, [1, 1]], [3, [2]], [2, [2]], [4, [1, 1]], [3, [2]], [4, [1, 1]], [1, [1, 1]], [2, [2]], [1, [1, 1]], [3, [2]], [2, [2]], [3, [2]], [4, [1, 1]], [1, [1, 1]], [2, [2]], [1, [1, 1]], [3, [2]], [4, [1, 1]], [3, [2]], [4, [1, 1]], [2, [2]], [1, [1, 1]], [3, [2]], [2, [2]], [4, [1, 1]], [3, [2]], [2, [2]], [1, [1, 1]], [2, [2]], [4, [1, 1]], [4, [1, 1]], [1, [1, 1]], [2, [2]], [3, [2]], [2, [2]], [3, [2]], [4, [1, 1]], [1, [1, 1]], [1, [1, 1]], [3, [2]], [2, [2]], [4, [1, 1]], [1, [1, 1]], [3, [2]], [2, [2]], [4, [1, 1]], [3, [2]], [4, [1, 1]], [1, [1, 1]], [1, [1, 1]], [2, [2]], [3, [2]], [4, [1, 1]], [1, [1, 1]], [2, [2]], [1, [1, 1]], [3, [2]], [3, [2]], [2, [2]], [1, [1, 1]], [3, [2]], [2, [2]], [1, [1, 1]], [2, [2]], [2, [2]], [4, [1, 1]], [3, [2]], [4, [1, 1]], [2, [2]], [3, [2]], [4, [1, 1]], [3, [2]], [4, [1, 1]], [2, [2]], [1, [1, 1]], [4, [1, 1]], [4, [1, 1]], [1, [1, 1]], [1, [1, 1]], [3, [2]], [4, [1, 1]], [3, [2]], [4, [1, 1]], [2, [2]], [1, [1, 1]], [3, [2]], [2, [2]], [4, [1, 1]], [2, [2]], [1, [1, 1]], [4, [1, 1]]]
K2.<a2> = NumberField(x^3 - 3* x -1); #example of a cubic field.
K2.is_galois() #K2 is a Galois extension of Q. Since it's cubic, Gal(K2/Q) is C_3
True
[[p, decomposition_type(p, K2)] for p in primes(500)]
[[2, [3]], [3, 'ramified'], [5, [3]], [7, [3]], [11, [3]], [13, [3]], [17, [1, 1, 1]], [19, [1, 1, 1]], [23, [3]], [29, [3]], [31, [3]], [37, [1, 1, 1]], [41, [3]], [43, [3]], [47, [3]], [53, [1, 1, 1]], [59, [3]], [61, [3]], [67, [3]], [71, [1, 1, 1]], [73, [1, 1, 1]], [79, [3]], [83, [3]], [89, [1, 1, 1]], [97, [3]], [101, [3]], [103, [3]], [107, [1, 1, 1]], [109, [1, 1, 1]], [113, [3]], [127, [1, 1, 1]], [131, [3]], [137, [3]], [139, [3]], [149, [3]], [151, [3]], [157, [3]], [163, [1, 1, 1]], [167, [3]], [173, [3]], [179, [1, 1, 1]], [181, [1, 1, 1]], [191, [3]], [193, [3]], [197, [1, 1, 1]], [199, [1, 1, 1]], [211, [3]], [223, [3]], [227, [3]], [229, [3]], [233, [1, 1, 1]], [239, [3]], [241, [3]], [251, [1, 1, 1]], [257, [3]], [263, [3]], [269, [1, 1, 1]], [271, [1, 1, 1]], [277, [3]], [281, [3]], [283, [3]], [293, [3]], [307, [1, 1, 1]], [311, [3]], [313, [3]], [317, [3]], [331, [3]], [337, [3]], [347, [3]], [349, [3]], [353, [3]], [359, [1, 1, 1]], [367, [3]], [373, [3]], [379, [1, 1, 1]], [383, [3]], [389, [3]], [397, [1, 1, 1]], [401, [3]], [409, [3]], [419, [3]], [421, [3]], [431, [1, 1, 1]], [433, [1, 1, 1]], [439, [3]], [443, [3]], [449, [1, 1, 1]], [457, [3]], [461, [3]], [463, [3]], [467, [1, 1, 1]], [479, [3]], [487, [1, 1, 1]], [491, [3]], [499, [3]]]
[[p, mod(p, 9), decomposition_type(p, K2)] for p in primes(500)] #this time decomposition type only depends on p mod 9
[[2, 2, [3]], [3, 3, 'ramified'], [5, 5, [3]], [7, 7, [3]], [11, 2, [3]], [13, 4, [3]], [17, 8, [1, 1, 1]], [19, 1, [1, 1, 1]], [23, 5, [3]], [29, 2, [3]], [31, 4, [3]], [37, 1, [1, 1, 1]], [41, 5, [3]], [43, 7, [3]], [47, 2, [3]], [53, 8, [1, 1, 1]], [59, 5, [3]], [61, 7, [3]], [67, 4, [3]], [71, 8, [1, 1, 1]], [73, 1, [1, 1, 1]], [79, 7, [3]], [83, 2, [3]], [89, 8, [1, 1, 1]], [97, 7, [3]], [101, 2, [3]], [103, 4, [3]], [107, 8, [1, 1, 1]], [109, 1, [1, 1, 1]], [113, 5, [3]], [127, 1, [1, 1, 1]], [131, 5, [3]], [137, 2, [3]], [139, 4, [3]], [149, 5, [3]], [151, 7, [3]], [157, 4, [3]], [163, 1, [1, 1, 1]], [167, 5, [3]], [173, 2, [3]], [179, 8, [1, 1, 1]], [181, 1, [1, 1, 1]], [191, 2, [3]], [193, 4, [3]], [197, 8, [1, 1, 1]], [199, 1, [1, 1, 1]], [211, 4, [3]], [223, 7, [3]], [227, 2, [3]], [229, 4, [3]], [233, 8, [1, 1, 1]], [239, 5, [3]], [241, 7, [3]], [251, 8, [1, 1, 1]], [257, 5, [3]], [263, 2, [3]], [269, 8, [1, 1, 1]], [271, 1, [1, 1, 1]], [277, 7, [3]], [281, 2, [3]], [283, 4, [3]], [293, 5, [3]], [307, 1, [1, 1, 1]], [311, 5, [3]], [313, 7, [3]], [317, 2, [3]], [331, 7, [3]], [337, 4, [3]], [347, 5, [3]], [349, 7, [3]], [353, 2, [3]], [359, 8, [1, 1, 1]], [367, 7, [3]], [373, 4, [3]], [379, 1, [1, 1, 1]], [383, 5, [3]], [389, 2, [3]], [397, 1, [1, 1, 1]], [401, 5, [3]], [409, 4, [3]], [419, 5, [3]], [421, 7, [3]], [431, 8, [1, 1, 1]], [433, 1, [1, 1, 1]], [439, 7, [3]], [443, 2, [3]], [449, 8, [1, 1, 1]], [457, 7, [3]], [461, 2, [3]], [463, 4, [3]], [467, 8, [1, 1, 1]], [479, 2, [3]], [487, 1, [1, 1, 1]], [491, 5, [3]], [499, 4, [3]]]
K3.<a3> = NumberField(x^3 - 2) #another cubic field;
K3.is_galois() #K3 is not a Galois extension of Q.
False
K3gal.<b3> = K3.galois_closure(); K3gal.degree() #construct the Galois closure of K3. This is a degree 6 extension and must have Galois group S3.
6
[[p, decomposition_type(p, K3)] for p in primes(500)]
[[2, 'ramified'], [3, 'ramified'], [5, [1, 2]], [7, [3]], [11, [1, 2]], [13, [3]], [17, [1, 2]], [19, [3]], [23, [1, 2]], [29, [1, 2]], [31, [1, 1, 1]], [37, [3]], [41, [1, 2]], [43, [1, 1, 1]], [47, [1, 2]], [53, [1, 2]], [59, [1, 2]], [61, [3]], [67, [3]], [71, [1, 2]], [73, [3]], [79, [3]], [83, [1, 2]], [89, [1, 2]], [97, [3]], [101, [1, 2]], [103, [3]], [107, [1, 2]], [109, [1, 1, 1]], [113, [1, 2]], [127, [1, 1, 1]], [131, [1, 2]], [137, [1, 2]], [139, [3]], [149, [1, 2]], [151, [3]], [157, [1, 1, 1]], [163, [3]], [167, [1, 2]], [173, [1, 2]], [179, [1, 2]], [181, [3]], [191, [1, 2]], [193, [3]], [197, [1, 2]], [199, [3]], [211, [3]], [223, [1, 1, 1]], [227, [1, 2]], [229, [1, 1, 1]], [233, [1, 2]], [239, [1, 2]], [241, [3]], [251, [1, 2]], [257, [1, 2]], [263, [1, 2]], [269, [1, 2]], [271, [3]], [277, [1, 1, 1]], [281, [1, 2]], [283, [1, 1, 1]], [293, [1, 2]], [307, [1, 1, 1]], [311, [1, 2]], [313, [3]], [317, [1, 2]], [331, [3]], [337, [3]], [347, [1, 2]], [349, [3]], [353, [1, 2]], [359, [1, 2]], [367, [3]], [373, [3]], [379, [3]], [383, [1, 2]], [389, [1, 2]], [397, [1, 1, 1]], [401, [1, 2]], [409, [3]], [419, [1, 2]], [421, [3]], [431, [1, 2]], [433, [1, 1, 1]], [439, [1, 1, 1]], [443, [1, 2]], [449, [1, 2]], [457, [1, 1, 1]], [461, [1, 2]], [463, [3]], [467, [1, 2]], [479, [1, 2]], [487, [3]], [491, [1, 2]], [499, [1, 1, 1]]]
decompositiondata = [[p, mod(p, 3), decomposition_type(p, K3)] for p in primes(1000)]; decompositiondata #does the decomposition type have anything to do with p mod 3?
[[2, 2, 'ramified'], [3, 0, 'ramified'], [5, 2, [1, 2]], [7, 1, [3]], [11, 2, [1, 2]], [13, 1, [3]], [17, 2, [1, 2]], [19, 1, [3]], [23, 2, [1, 2]], [29, 2, [1, 2]], [31, 1, [1, 1, 1]], [37, 1, [3]], [41, 2, [1, 2]], [43, 1, [1, 1, 1]], [47, 2, [1, 2]], [53, 2, [1, 2]], [59, 2, [1, 2]], [61, 1, [3]], [67, 1, [3]], [71, 2, [1, 2]], [73, 1, [3]], [79, 1, [3]], [83, 2, [1, 2]], [89, 2, [1, 2]], [97, 1, [3]], [101, 2, [1, 2]], [103, 1, [3]], [107, 2, [1, 2]], [109, 1, [1, 1, 1]], [113, 2, [1, 2]], [127, 1, [1, 1, 1]], [131, 2, [1, 2]], [137, 2, [1, 2]], [139, 1, [3]], [149, 2, [1, 2]], [151, 1, [3]], [157, 1, [1, 1, 1]], [163, 1, [3]], [167, 2, [1, 2]], [173, 2, [1, 2]], [179, 2, [1, 2]], [181, 1, [3]], [191, 2, [1, 2]], [193, 1, [3]], [197, 2, [1, 2]], [199, 1, [3]], [211, 1, [3]], [223, 1, [1, 1, 1]], [227, 2, [1, 2]], [229, 1, [1, 1, 1]], [233, 2, [1, 2]], [239, 2, [1, 2]], [241, 1, [3]], [251, 2, [1, 2]], [257, 2, [1, 2]], [263, 2, [1, 2]], [269, 2, [1, 2]], [271, 1, [3]], [277, 1, [1, 1, 1]], [281, 2, [1, 2]], [283, 1, [1, 1, 1]], [293, 2, [1, 2]], [307, 1, [1, 1, 1]], [311, 2, [1, 2]], [313, 1, [3]], [317, 2, [1, 2]], [331, 1, [3]], [337, 1, [3]], [347, 2, [1, 2]], [349, 1, [3]], [353, 2, [1, 2]], [359, 2, [1, 2]], [367, 1, [3]], [373, 1, [3]], [379, 1, [3]], [383, 2, [1, 2]], [389, 2, [1, 2]], [397, 1, [1, 1, 1]], [401, 2, [1, 2]], [409, 1, [3]], [419, 2, [1, 2]], [421, 1, [3]], [431, 2, [1, 2]], [433, 1, [1, 1, 1]], [439, 1, [1, 1, 1]], [443, 2, [1, 2]], [449, 2, [1, 2]], [457, 1, [1, 1, 1]], [461, 2, [1, 2]], [463, 1, [3]], [467, 2, [1, 2]], [479, 2, [1, 2]], [487, 1, [3]], [491, 2, [1, 2]], [499, 1, [1, 1, 1]], [503, 2, [1, 2]], [509, 2, [1, 2]], [521, 2, [1, 2]], [523, 1, [3]], [541, 1, [3]], [547, 1, [3]], [557, 2, [1, 2]], [563, 2, [1, 2]], [569, 2, [1, 2]], [571, 1, [3]], [577, 1, [3]], [587, 2, [1, 2]], [593, 2, [1, 2]], [599, 2, [1, 2]], [601, 1, [1, 1, 1]], [607, 1, [3]], [613, 1, [3]], [617, 2, [1, 2]], [619, 1, [3]], [631, 1, [3]], [641, 2, [1, 2]], [643, 1, [1, 1, 1]], [647, 2, [1, 2]], [653, 2, [1, 2]], [659, 2, [1, 2]], [661, 1, [3]], [673, 1, [3]], [677, 2, [1, 2]], [683, 2, [1, 2]], [691, 1, [1, 1, 1]], [701, 2, [1, 2]], [709, 1, [3]], [719, 2, [1, 2]], [727, 1, [1, 1, 1]], [733, 1, [1, 1, 1]], [739, 1, [1, 1, 1]], [743, 2, [1, 2]], [751, 1, [3]], [757, 1, [3]], [761, 2, [1, 2]], [769, 1, [3]], [773, 2, [1, 2]], [787, 1, [3]], [797, 2, [1, 2]], [809, 2, [1, 2]], [811, 1, [1, 1, 1]], [821, 2, [1, 2]], [823, 1, [3]], [827, 2, [1, 2]], [829, 1, [3]], [839, 2, [1, 2]], [853, 1, [3]], [857, 2, [1, 2]], [859, 1, [3]], [863, 2, [1, 2]], [877, 1, [3]], [881, 2, [1, 2]], [883, 1, [3]], [887, 2, [1, 2]], [907, 1, [3]], [911, 2, [1, 2]], [919, 1, [1, 1, 1]], [929, 2, [1, 2]], [937, 1, [3]], [941, 2, [1, 2]], [947, 2, [1, 2]], [953, 2, [1, 2]], [967, 1, [3]], [971, 2, [1, 2]], [977, 2, [1, 2]], [983, 2, [1, 2]], [991, 1, [3]], [997, 1, [1, 1, 1]]]
decompositiondata.sort(key = lambda x: x[1]); decompositiondata # easier to tell if we sort by the residue of p mod 3 #we see that if p is 2 mod 3 the decomposition type is always [1, 2] (can you explain why?) but if p is 1 mod 3 there are two different possibilities.
[[3, 0, 'ramified'], [7, 1, [3]], [13, 1, [3]], [19, 1, [3]], [31, 1, [1, 1, 1]], [37, 1, [3]], [43, 1, [1, 1, 1]], [61, 1, [3]], [67, 1, [3]], [73, 1, [3]], [79, 1, [3]], [97, 1, [3]], [103, 1, [3]], [109, 1, [1, 1, 1]], [127, 1, [1, 1, 1]], [139, 1, [3]], [151, 1, [3]], [157, 1, [1, 1, 1]], [163, 1, [3]], [181, 1, [3]], [193, 1, [3]], [199, 1, [3]], [211, 1, [3]], [223, 1, [1, 1, 1]], [229, 1, [1, 1, 1]], [241, 1, [3]], [271, 1, [3]], [277, 1, [1, 1, 1]], [283, 1, [1, 1, 1]], [307, 1, [1, 1, 1]], [313, 1, [3]], [331, 1, [3]], [337, 1, [3]], [349, 1, [3]], [367, 1, [3]], [373, 1, [3]], [379, 1, [3]], [397, 1, [1, 1, 1]], [409, 1, [3]], [421, 1, [3]], [433, 1, [1, 1, 1]], [439, 1, [1, 1, 1]], [457, 1, [1, 1, 1]], [463, 1, [3]], [487, 1, [3]], [499, 1, [1, 1, 1]], [523, 1, [3]], [541, 1, [3]], [547, 1, [3]], [571, 1, [3]], [577, 1, [3]], [601, 1, [1, 1, 1]], [607, 1, [3]], [613, 1, [3]], [619, 1, [3]], [631, 1, [3]], [643, 1, [1, 1, 1]], [661, 1, [3]], [673, 1, [3]], [691, 1, [1, 1, 1]], [709, 1, [3]], [727, 1, [1, 1, 1]], [733, 1, [1, 1, 1]], [739, 1, [1, 1, 1]], [751, 1, [3]], [757, 1, [3]], [769, 1, [3]], [787, 1, [3]], [811, 1, [1, 1, 1]], [823, 1, [3]], [829, 1, [3]], [853, 1, [3]], [859, 1, [3]], [877, 1, [3]], [883, 1, [3]], [907, 1, [3]], [919, 1, [1, 1, 1]], [937, 1, [3]], [967, 1, [3]], [991, 1, [3]], [997, 1, [1, 1, 1]], [2, 2, 'ramified'], [5, 2, [1, 2]], [11, 2, [1, 2]], [17, 2, [1, 2]], [23, 2, [1, 2]], [29, 2, [1, 2]], [41, 2, [1, 2]], [47, 2, [1, 2]], [53, 2, [1, 2]], [59, 2, [1, 2]], [71, 2, [1, 2]], [83, 2, [1, 2]], [89, 2, [1, 2]], [101, 2, [1, 2]], [107, 2, [1, 2]], [113, 2, [1, 2]], [131, 2, [1, 2]], [137, 2, [1, 2]], [149, 2, [1, 2]], [167, 2, [1, 2]], [173, 2, [1, 2]], [179, 2, [1, 2]], [191, 2, [1, 2]], [197, 2, [1, 2]], [227, 2, [1, 2]], [233, 2, [1, 2]], [239, 2, [1, 2]], [251, 2, [1, 2]], [257, 2, [1, 2]], [263, 2, [1, 2]], [269, 2, [1, 2]], [281, 2, [1, 2]], [293, 2, [1, 2]], [311, 2, [1, 2]], [317, 2, [1, 2]], [347, 2, [1, 2]], [353, 2, [1, 2]], [359, 2, [1, 2]], [383, 2, [1, 2]], [389, 2, [1, 2]], [401, 2, [1, 2]], [419, 2, [1, 2]], [431, 2, [1, 2]], [443, 2, [1, 2]], [449, 2, [1, 2]], [461, 2, [1, 2]], [467, 2, [1, 2]], [479, 2, [1, 2]], [491, 2, [1, 2]], [503, 2, [1, 2]], [509, 2, [1, 2]], [521, 2, [1, 2]], [557, 2, [1, 2]], [563, 2, [1, 2]], [569, 2, [1, 2]], [587, 2, [1, 2]], [593, 2, [1, 2]], [599, 2, [1, 2]], [617, 2, [1, 2]], [641, 2, [1, 2]], [647, 2, [1, 2]], [653, 2, [1, 2]], [659, 2, [1, 2]], [677, 2, [1, 2]], [683, 2, [1, 2]], [701, 2, [1, 2]], [719, 2, [1, 2]], [743, 2, [1, 2]], [761, 2, [1, 2]], [773, 2, [1, 2]], [797, 2, [1, 2]], [809, 2, [1, 2]], [821, 2, [1, 2]], [827, 2, [1, 2]], [839, 2, [1, 2]], [857, 2, [1, 2]], [863, 2, [1, 2]], [881, 2, [1, 2]], [887, 2, [1, 2]], [911, 2, [1, 2]], [929, 2, [1, 2]], [941, 2, [1, 2]], [947, 2, [1, 2]], [953, 2, [1, 2]], [971, 2, [1, 2]], [977, 2, [1, 2]], [983, 2, [1, 2]]]