1
1
.. -*- coding: utf-8 -*-
2
2
3
+ .. linkall
4
+
3
5
.. _lascoux.factorization_gem :
4
6
5
7
============================================================================================================
@@ -29,15 +31,13 @@ Let's build one of Young's natural idempotents for the Symmetric group
29
31
It's indexed by a pair of standard tableaux, which we show here, in
30
32
French notation of course::
31
33
32
- sage: Tableaux.global_options (convention="French")
34
+ sage: Tableaux.options (convention="French")
33
35
sage: tI.pp()
34
- sage: print
35
- sage: tJ.pp()
36
36
9
37
37
7 8
38
38
4 5 6
39
39
1 2 3
40
-
40
+ sage: tJ.pp()
41
41
1 2
42
42
3 4 5
43
43
6 7 8 9
@@ -52,15 +52,15 @@ stabilizer, and an alternating sum across a column stabilizer::
52
52
....: for sigma in tJ.row_stabilizer())
53
53
....:
54
54
sage: squareI
55
- <html> ...</html>
55
+ () + (7,8) + (5,6) + ...
56
56
57
57
Both pieces being large, their product is a huge linear combination of
58
58
permutations. One can compute with it, but it's useless to even look
59
59
at it::
60
60
61
61
sage: idempotent = nablaJ * A.monomial(muI) * squareI
62
62
sage: len(idempotent)
63
- <html>...</html>
63
+ 20736
64
64
65
65
So Alain went onto a quest for a compact representation of this object
66
66
that would be amenable to scrutiny and hand manipulation.
@@ -70,18 +70,18 @@ Lehmer code. The second step, typical of Alain, was to encode each
70
70
such code as an exponent vector. This makes the idempotent into a huge
71
71
multivariate polynomial::
72
72
73
- sage: P = QQ["x1,x1, x2,x3,x4,x5,x6,x7,x8,x9"]
73
+ sage: P = QQ["x1,x2,x3,x4,x5,x6,x7,x8,x9"]
74
74
sage: x = muI(P.gens())
75
75
sage: def to_monomial(sigma):
76
76
....: code = Permutation(sigma).to_lehmer_code()
77
- ....: return prod( xi^ci for xi,ci in zip(x,code) )
77
+ ....: return prod(xi^ci for xi,ci in zip(x,code))
78
78
sage: to_polynomial = A.module_morphism(to_monomial, codomain=P)
79
79
sage: p = to_polynomial(idempotent)
80
80
81
81
Here are its first 20 terms::
82
82
83
83
sage: sum(p.monomials()[:20])
84
- <html> ...</html>
84
+ x1^5*x2^5*x3^3*x4^2*x5^3*x6^2*x7*x8 + ...
85
85
86
86
So far, so good. But the gain is not that obvious.
87
87
@@ -95,7 +95,7 @@ Yet, Alain tried to actually factor that polynomial, and here is the
95
95
gem that came out::
96
96
97
97
sage: factor(p)
98
- <html>...</html>
98
+ (x8 - 1) * (x7 + 1) * (x5 + 1) * (x3 - 1) * (x2 + 1) * (x6^2 - x6 + 1) * (x4^2 + x4 + 1) * (x3^2 + 1) * (x1^2 + x1 + 1) * (-x1^3 + x4^2) * (-x2^4*x5^2 + x2^2*x5^3 + x2^4*x7 - x5^3*x7 - x2^2*x7^2 + x5*x7^2)
99
99
100
100
Reference
101
101
---------
0 commit comments