passagemath-repl 10.5.28__py3-none-any.whl → 10.5.29__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. passagemath_repl-10.5.29.data/data/share/jupyter/kernels/sagemath/kernel.json +1 -0
  2. passagemath_repl-10.5.29.data/data/share/jupyter/kernels/sagemath/logo-64x64.png +0 -0
  3. passagemath_repl-10.5.29.data/data/share/jupyter/kernels/sagemath/logo.svg +352 -0
  4. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/METADATA +3 -3
  5. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/RECORD +95 -24
  6. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/top_level.txt +1 -0
  7. sage/ext_data/all__sagemath_repl.py +1 -0
  8. sage/interfaces/all__sagemath_repl.py +1 -0
  9. sage/repl/ipython_kernel/install.py +6 -8
  10. sage/tests/books/__init__.py +2 -0
  11. sage/tests/books/computational-mathematics-with-sagemath/__init__.py +1 -0
  12. sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py +549 -0
  13. sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py +1053 -0
  14. sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +443 -0
  15. sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py +477 -0
  16. sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py +254 -0
  17. sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py +418 -0
  18. sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py +290 -0
  19. sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py +454 -0
  20. sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py +421 -0
  21. sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py +234 -0
  22. sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py +560 -0
  23. sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py +490 -0
  24. sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py +155 -0
  25. sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py +405 -0
  26. sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +180 -0
  27. sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py +662 -0
  28. sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py +392 -0
  29. sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py +1 -0
  30. sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py +264 -0
  31. sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py +217 -0
  32. sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py +59 -0
  33. sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py +141 -0
  34. sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +105 -0
  35. sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py +53 -0
  36. sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py +56 -0
  37. sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py +56 -0
  38. sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py +25 -0
  39. sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py +47 -0
  40. sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py +115 -0
  41. sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py +111 -0
  42. sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py +167 -0
  43. sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py +107 -0
  44. sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py +58 -0
  45. sage/tests/books/judson-abstract-algebra/__init__.py +1 -0
  46. sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py +51 -0
  47. sage/tests/books/judson-abstract-algebra/actions-sage.py +173 -0
  48. sage/tests/books/judson-abstract-algebra/algcodes-sage.py +130 -0
  49. sage/tests/books/judson-abstract-algebra/boolean-sage.py +269 -0
  50. sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py +87 -0
  51. sage/tests/books/judson-abstract-algebra/cosets-sage.py +170 -0
  52. sage/tests/books/judson-abstract-algebra/crypt-sage.py +151 -0
  53. sage/tests/books/judson-abstract-algebra/cyclic-sage.py +450 -0
  54. sage/tests/books/judson-abstract-algebra/domains-sage.py +163 -0
  55. sage/tests/books/judson-abstract-algebra/fields-sage.py +299 -0
  56. sage/tests/books/judson-abstract-algebra/finite-sage.py +108 -0
  57. sage/tests/books/judson-abstract-algebra/galois-sage.py +484 -0
  58. sage/tests/books/judson-abstract-algebra/groups-sage.py +280 -0
  59. sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py +65 -0
  60. sage/tests/books/judson-abstract-algebra/homomorph-sage.py +200 -0
  61. sage/tests/books/judson-abstract-algebra/integers-sage.py +197 -0
  62. sage/tests/books/judson-abstract-algebra/isomorph-sage.py +172 -0
  63. sage/tests/books/judson-abstract-algebra/normal-sage.py +133 -0
  64. sage/tests/books/judson-abstract-algebra/permute-sage.py +319 -0
  65. sage/tests/books/judson-abstract-algebra/poly-sage.py +300 -0
  66. sage/tests/books/judson-abstract-algebra/rings-sage.py +413 -0
  67. sage/tests/books/judson-abstract-algebra/sets-sage.py +163 -0
  68. sage/tests/books/judson-abstract-algebra/struct-sage.py +63 -0
  69. sage/tests/books/judson-abstract-algebra/sylow-sage.py +250 -0
  70. sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py +48 -0
  71. sage/tests/books/judson-abstract-algebra/vect-sage.py +211 -0
  72. sage/tests/memcheck/__init__.py +1 -0
  73. sage/tests/memcheck/run_tests.py +25 -0
  74. sage/tests/memcheck/run_tests_in_valgrind.py +36 -0
  75. sage/tests/memcheck/symbolic_expression.py +12 -0
  76. sage/tests/memcheck/verify_no_leak.py +28 -0
  77. sage/tests/all.py +0 -0
  78. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-cachegrind +0 -0
  79. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-callgrind +0 -0
  80. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-cleaner +0 -0
  81. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-coverage +0 -0
  82. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-eval +0 -0
  83. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-fixdoctests +0 -0
  84. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-inline-fortran +0 -0
  85. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-ipynb2rst +0 -0
  86. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-ipython +0 -0
  87. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-massif +0 -0
  88. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-notebook +0 -0
  89. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-omega +0 -0
  90. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-preparse +0 -0
  91. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-run +0 -0
  92. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-run-cython +0 -0
  93. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-runtests +0 -0
  94. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-startuptime.py +0 -0
  95. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-valgrind +0 -0
  96. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/WHEEL +0 -0
@@ -0,0 +1,484 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ ## Sage Doctest File ##
3
+ #**************************************#
4
+ #* Generated from PreTeXt source *#
5
+ #* on 2017-08-24T11:43:34-07:00 *#
6
+ #* *#
7
+ #* http://mathbook.pugetsound.edu *#
8
+ #* *#
9
+ #**************************************#
10
+ ##
11
+ """
12
+ Please contact Rob Beezer (beezer@ups.edu) with
13
+ any test failures here that need to be changed
14
+ as a result of changes accepted into Sage. You
15
+ may edit/change this file in any sensible way, so
16
+ that development work may procede. Your changes
17
+ may later be replaced by the authors of "Abstract
18
+ Algebra: Theory and Applications" when the text is
19
+ updated, and a replacement of this file is proposed
20
+ for review.
21
+ """
22
+ ##
23
+ ## To execute doctests in these files, run
24
+ ## $ $SAGE_ROOT/sage -t <directory-of-these-files>
25
+ ## or
26
+ ## $ $SAGE_ROOT/sage -t <a-single-file>
27
+ ##
28
+ ## Replace -t by "-tp n" for parallel testing,
29
+ ## "-tp 0" will use a sensible number of threads
30
+ ##
31
+ ## See: http://www.sagemath.org/doc/developer/doctesting.html
32
+ ## or run $ $SAGE_ROOT/sage --advanced for brief help
33
+ ##
34
+ ## Generated at 2017-08-24T11:43:34-07:00
35
+ ## From "Abstract Algebra"
36
+ ## At commit 26d3cac0b4047f4b8d6f737542be455606e2c4b4
37
+ ##
38
+ ## Section 23.6 Sage
39
+ ##
40
+ r"""
41
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
42
+
43
+ sage: x = polygen(QQ, 'x')
44
+ sage: N.<a> = NumberField(x^4 - 2); N
45
+ Number Field in a with defining polynomial x^4 - 2
46
+
47
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
48
+
49
+ sage: L.<b> = N.galois_closure(); L
50
+ Number Field in b with defining polynomial x^8 + 28*x^4 + 2500
51
+
52
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
53
+
54
+ sage: L.degree()
55
+ 8
56
+
57
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
58
+
59
+ sage: y = polygen(L, 'y')
60
+ sage: (y^4 - 2).factor()
61
+ (y - 1/120*b^5 - 19/60*b) *
62
+ (y - 1/240*b^5 + 41/120*b) *
63
+ (y + 1/240*b^5 - 41/120*b) *
64
+ (y + 1/120*b^5 + 19/60*b)
65
+
66
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
67
+
68
+ sage: G = L.galois_group(); G
69
+ Galois group 8T4 ([4]2) with order 8 of x^8 + 28*x^4 + 2500
70
+
71
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
72
+
73
+ sage: G.is_abelian()
74
+ False
75
+
76
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
77
+
78
+ sage: G.order()
79
+ 8
80
+
81
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
82
+
83
+ sage: G.list()
84
+ [(), (1,2,8,7)(3,4,6,5),
85
+ (1,3)(2,5)(4,7)(6,8), (1,4)(2,3)(5,8)(6,7),
86
+ (1,5)(2,6)(3,7)(4,8), (1,6)(2,4)(3,8)(5,7),
87
+ (1,7,8,2)(3,5,6,4), (1,8)(2,7)(3,6)(4,5)]
88
+
89
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
90
+
91
+ sage: G.is_isomorphic(DihedralGroup(4))
92
+ True
93
+
94
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
95
+
96
+ sage: x = polygen(QQ, 'x')
97
+ sage: p = x^4 - 2
98
+ sage: N.<a> = NumberField(p); N
99
+ Number Field in a with defining polynomial x^4 - 2
100
+
101
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
102
+
103
+ sage: y = polygen(N, 'y')
104
+ sage: p = p.subs(x=y)
105
+ sage: p.factor()
106
+ (y - a) * (y + a) * (y^2 + a^2)
107
+
108
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
109
+
110
+ sage: M.<b> = NumberField(y^2 + a^2); M
111
+ Number Field in b with defining polynomial y^2 + a^2 over
112
+ its base field
113
+
114
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
115
+
116
+ sage: z = polygen(M, 'z')
117
+ sage: (z^4 - 2).factor()
118
+ (z - b) * (z - a) * (z + a) * (z + b)
119
+
120
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
121
+
122
+ sage: L.<c> = M.absolute_field(); L
123
+ Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
124
+
125
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
126
+
127
+ sage: fromL, toL = L.structure()
128
+
129
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
130
+
131
+ sage: roots = p.roots(ring=L, multiplicities=False); roots
132
+ [1/120*c^5 + 19/60*c,
133
+ 1/240*c^5 - 41/120*c,
134
+ -1/240*c^5 + 41/120*c,
135
+ -1/120*c^5 - 19/60*c]
136
+
137
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
138
+
139
+ sage: [fromL(r) for r in roots]
140
+ [b, a, -a, -b]
141
+
142
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
143
+
144
+ sage: G = End(L); G
145
+ Automorphism group of Number Field in c with
146
+ defining polynomial x^8 + 28*x^4 + 2500
147
+
148
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
149
+
150
+ sage: [tau(1) for tau in G]
151
+ [1, 1, 1, 1, 1, 1, 1, 1]
152
+
153
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
154
+
155
+ sage: Sequence([[fromL(tau(r)) for r in roots] for tau in G], cr=True)
156
+ [[b, a, -a, -b],
157
+ [-b, -a, a, b],
158
+ [a, -b, b, -a],
159
+ [b, -a, a, -b],
160
+ [-a, -b, b, a],
161
+ [a, b, -b, -a],
162
+ [-b, a, -a, b],
163
+ [-a, b, -b, a]]
164
+
165
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
166
+
167
+ sage: S4 = SymmetricGroup(4)
168
+ sage: elements = [S4([1, 2, 3, 4]),
169
+ ....: S4([4, 3, 2, 1]),
170
+ ....: S4([2, 4, 1, 3]),
171
+ ....: S4([1, 3, 2, 4]),
172
+ ....: S4([3, 4, 1, 2]),
173
+ ....: S4([2, 1, 4, 3]),
174
+ ....: S4([4, 2, 3, 1]),
175
+ ....: S4([3, 1, 4, 2])]
176
+ sage: elements
177
+ [(), (1,4)(2,3), (1,2,4,3), (2,3), (1,3)(2,4),
178
+ (1,2)(3,4), (1,4), (1,3,4,2)]
179
+
180
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
181
+
182
+ sage: P = S4.subgroup(elements)
183
+ sage: P.is_isomorphic(DihedralGroup(4))
184
+ True
185
+
186
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
187
+
188
+ sage: basis = L.power_basis(); basis
189
+ [1, c, c^2, c^3, c^4, c^5, c^6, c^7]
190
+
191
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
192
+
193
+ sage: tau = G[3]
194
+ sage: z = 4 + 5*c+ 6*c^3-7*c^6
195
+ sage: tz = tau(4 + 5*c+ 6*c^3-7*c^6); tz
196
+ 11/250*c^7 - 98/25*c^6 + 1/12*c^5 + 779/125*c^3 +
197
+ 6006/25*c^2 - 11/6*c + 4
198
+
199
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
200
+
201
+ sage: tz.vector()
202
+ (4, -11/6, 6006/25, 779/125, 0, 1/12, -98/25, 11/250)
203
+
204
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
205
+
206
+ sage: tau_matrix = column_matrix([tau(be).vector() for be in basis])
207
+ sage: tau_matrix
208
+ [ 1 0 0 0 -28 0 0 0]
209
+ [ 0 -11/30 0 0 0 779/15 0 0]
210
+ [ 0 0 -14/25 0 0 0 -858/25 0]
211
+ [ 0 0 0 779/750 0 0 0 -4031/375]
212
+ [ 0 0 0 0 -1 0 0 0]
213
+ [ 0 1/60 0 0 0 11/30 0 0]
214
+ [ 0 0 -1/50 0 0 0 14/25 0]
215
+ [ 0 0 0 11/1500 0 0 0 -779/750]
216
+
217
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
218
+
219
+ sage: tau_matrix*z.vector()
220
+ (4, -11/6, 6006/25, 779/125, 0, 1/12, -98/25, 11/250)
221
+
222
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
223
+
224
+ sage: tau_matrix*(z.vector()) == (tau(z)).vector()
225
+ True
226
+
227
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
228
+
229
+ sage: K = (tau_matrix-identity_matrix(8)).right_kernel(); K
230
+ Vector space of degree 8 and dimension 4 over Rational Field
231
+ Basis matrix:
232
+ [ 1 0 0 0 0 0 0 0]
233
+ [ 0 1 0 0 0 1/38 0 0]
234
+ [ 0 0 1 0 0 0 -1/22 0]
235
+ [ 0 0 0 1 0 0 0 1/278]
236
+
237
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
238
+
239
+ sage: fromL(1)
240
+ 1
241
+
242
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
243
+
244
+ sage: fromL(c + (1/38)*c^5)
245
+ 60/19*b
246
+
247
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
248
+
249
+ sage: fromL(c^2 - (1/22)*c^6)
250
+ 150/11*a^2
251
+
252
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
253
+
254
+ sage: fromL(c^3 + (1/278)*c^7)
255
+ 1500/139*a^2*b
256
+
257
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
258
+
259
+ sage: a^2 + b^2
260
+ 0
261
+
262
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
263
+
264
+ sage: sg = P.subgroups()
265
+ sage: [H.gens() for H in sg]
266
+ [((),),
267
+ ((1,4)(2,3),),
268
+ ((2,3),),
269
+ ((1,4),),
270
+ ((1,2)(3,4),),
271
+ ((1,3)(2,4),),
272
+ ((1,4)(2,3), (2,3)),
273
+ ((1,4)(2,3), (1,2,4,3)),
274
+ ((1,4)(2,3), (1,2)(3,4)),
275
+ ((1,4)(2,3), (2,3), (1,2,4,3))]
276
+
277
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
278
+
279
+ sage: [H.order() for H in sg]
280
+ [1, 2, 2, 2, 2, 2, 4, 4, 4, 8]
281
+
282
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
283
+
284
+ sage: tau = G[4]
285
+ sage: tau_matrix = column_matrix([tau(be).vector() for be in basis])
286
+ sage: (tau_matrix-identity_matrix(8)).right_kernel()
287
+ Vector space of degree 8 and dimension 4 over Rational Field
288
+ Basis matrix:
289
+ [ 1 0 0 0 0 0 0 0]
290
+ [ 0 1 0 0 0 1/158 0 0]
291
+ [ 0 0 1 0 0 0 1/78 0]
292
+ [ 0 0 0 1 0 0 0 13/614]
293
+
294
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
295
+
296
+ sage: fromL(tau(1))
297
+ 1
298
+
299
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
300
+
301
+ sage: fromL(tau(c+(1/158)*c^5))
302
+ 120/79*b - 120/79*a
303
+
304
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
305
+
306
+ sage: fromL(tau(c^2+(1/78)*c^6))
307
+ -200/39*a*b
308
+
309
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
310
+
311
+ sage: fromL(tau(c^3+(13/614)*c^7))
312
+ 3000/307*a^2*b + 3000/307*a^3
313
+
314
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
315
+
316
+ sage: (b-a)^2
317
+ -2*a*b
318
+
319
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
320
+
321
+ sage: (b-a)^3
322
+ 2*a^2*b + 2*a^3
323
+
324
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
325
+
326
+ sage: subinfo = L.subfield((79/120)*(c+(1/158)*c^5)); subinfo
327
+ (Number Field in c0 with defining polynomial x^4 + 8 with c0 = 1/240*c^5 + 79/120*c,
328
+ Ring morphism:
329
+ From: Number Field in c0 with defining polynomial x^4 + 8 with c0 = 1/240*c^5 + 79/120*c
330
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
331
+ Defn: c0 |--> 1/240*c^5 + 79/120*c)
332
+
333
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
334
+
335
+ sage: V = QQ^8
336
+ sage: for tau in [G[0], G[1], G[3], G[6]]:
337
+ ....: tau_matrix = column_matrix([tau(be).vector() for be in basis])
338
+ ....: K = (tau_matrix-identity_matrix(8)).right_kernel()
339
+ ....: V = V.intersection(K)
340
+ sage: V
341
+ Vector space of degree 8 and dimension 2 over Rational Field
342
+ Basis matrix:
343
+ [ 1 0 0 0 0 0 0 0]
344
+ [ 0 0 1 0 0 0 -1/22 0]
345
+
346
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
347
+
348
+ sage: fromL(tau(c^2 - (1/22)*c^6))
349
+ 150/11*a^2
350
+
351
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
352
+
353
+ sage: F, mapping = L.subfield((11/150)*(c^2 - (1/22)*c^6))
354
+ sage: F
355
+ Number Field in c0 with defining polynomial x^2 - 2 with c0 = -1/300*c^6 + 11/150*c^2
356
+
357
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
358
+
359
+ sage: V = QQ^8
360
+ sage: for tau in [G[0], G[1], G[2], G[7]]:
361
+ ....: tau_matrix = column_matrix([tau(be).vector() for be in basis])
362
+ ....: K = (tau_matrix-identity_matrix(8)).right_kernel()
363
+ ....: V = V.intersection(K)
364
+ sage: V
365
+ Vector space of degree 8 and dimension 2 over Rational Field
366
+ Basis matrix:
367
+ [1 0 0 0 0 0 0 0]
368
+ [0 0 0 0 1 0 0 0]
369
+
370
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
371
+
372
+ sage: fromL(tau(c^4))
373
+ -24*a^3*b - 14
374
+
375
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
376
+
377
+ sage: F, mapping = L.subfield((c^4+14)/-48)
378
+ sage: F
379
+ Number Field in c0 with defining polynomial x^2 + 1 with c0 = -1/48*c^4 - 7/24
380
+
381
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
382
+
383
+ sage: L.subfields()
384
+ [(Number Field in c0 with defining polynomial x,
385
+ Ring morphism:
386
+ From: Number Field in c0 with defining polynomial x
387
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
388
+ Defn: 0 |--> 0,
389
+ None),
390
+ (Number Field in c1 with defining polynomial x^2 + 112*x + 40000,
391
+ Ring morphism:
392
+ From: Number Field in c1 with defining polynomial x^2 + 112*x + 40000
393
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
394
+ Defn: c1 |--> 4*c^4,
395
+ None),
396
+ (Number Field in c2 with defining polynomial x^2 + 512,
397
+ Ring morphism:
398
+ From: Number Field in c2 with defining polynomial x^2 + 512
399
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
400
+ Defn: c2 |--> 1/25*c^6 + 78/25*c^2,
401
+ None),
402
+ (Number Field in c3 with defining polynomial x^2 - 288,
403
+ Ring morphism:
404
+ From: Number Field in c3 with defining polynomial x^2 - 288
405
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
406
+ Defn: c3 |--> -1/25*c^6 + 22/25*c^2,
407
+ None),
408
+ (Number Field in c4 with defining polynomial x^4 + 112*x^2 + 40000,
409
+ Ring morphism:
410
+ From: Number Field in c4 with defining polynomial x^4 + 112*x^2 + 40000
411
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
412
+ Defn: c4 |--> 2*c^2,
413
+ None),
414
+ (Number Field in c5 with defining polynomial x^4 + 8,
415
+ Ring morphism:
416
+ From: Number Field in c5 with defining polynomial x^4 + 8
417
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
418
+ Defn: c5 |--> -1/80*c^5 + 1/40*c,
419
+ None),
420
+ (Number Field in c6 with defining polynomial x^4 + 648,
421
+ Ring morphism:
422
+ From: Number Field in c6 with defining polynomial x^4 + 648
423
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
424
+ Defn: c6 |--> 1/80*c^5 + 79/40*c,
425
+ None),
426
+ (Number Field in c7 with defining polynomial x^4 - 512,
427
+ Ring morphism:
428
+ From: Number Field in c7 with defining polynomial x^4 - 512
429
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
430
+ Defn: c7 |--> -1/60*c^5 + 41/30*c,
431
+ None),
432
+ (Number Field in c8 with defining polynomial x^4 - 32,
433
+ Ring morphism:
434
+ From: Number Field in c8 with defining polynomial x^4 - 32
435
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
436
+ Defn: c8 |--> 1/60*c^5 + 19/30*c,
437
+ None),
438
+ (Number Field in c9 with defining polynomial x^8 + 28*x^4 + 2500,
439
+ Ring morphism:
440
+ From: Number Field in c9 with defining polynomial x^8 + 28*x^4 + 2500
441
+ To: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
442
+ Defn: c9 |--> c,
443
+ Ring morphism:
444
+ From: Number Field in c with defining polynomial x^8 + 28*x^4 + 2500
445
+ To: Number Field in c9 with defining polynomial x^8 + 28*x^4 + 2500
446
+ Defn: c |--> c9)]
447
+
448
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
449
+
450
+ sage: tau = G[6]
451
+ sage: tau_matrix = column_matrix([tau(be).vector() for be in basis])
452
+ sage: (tau_matrix-identity_matrix(8)).right_kernel()
453
+ Vector space of degree 8 and dimension 4 over Rational Field
454
+ Basis matrix:
455
+ [ 1 0 0 0 0 0 0 0]
456
+ [ 0 1 0 0 0 -1/82 0 0]
457
+ [ 0 0 1 0 0 0 -1/22 0]
458
+ [ 0 0 0 1 0 0 0 11/58]
459
+
460
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
461
+
462
+ sage: fromL(tau(1))
463
+ 1
464
+
465
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
466
+
467
+ sage: fromL(tau(c+(-1/82)*c^5))
468
+ -120/41*a
469
+
470
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
471
+
472
+ sage: fromL(tau(c^2+(-1/22)*c^6))
473
+ 150/11*a^2
474
+
475
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
476
+
477
+ sage: fromL(tau(c^3+(11/58)*c^7))
478
+ 3000/29*a^3
479
+
480
+ ~~~~~~~~~~~~~~~~~~~~~~ ::
481
+
482
+ sage: sg[2].is_normal(P)
483
+ False
484
+ """