Équipe Topologie Algébrique
BBBdec — Effective Bialynicki-Birula-Brosnan motivic decompositionsBBBdec is a SageMath script computing Bialynicki-Birula-Brosnan motivic decompositions of projective homogeneous varieties for absolutely simple algebraic groups of inner type, following Brosnan's On motivic decompositions arising from the method of Bialynicki-Birula (Thm. 7.4). Given an absolutely simple group G with Tits index (ΔG, Θ0) (all groups will be assumed with this assumptions in the sequel) and a projective G-homogeneous variety XΘ,G, the script computes the decomposition in terms of the underlying combinatorics : M(XΘ,G) ≃ ⊕w ∈ 𝒲 M(XΘw,Gan){ℓ(w)} where the sum runs over the set 𝒲 of minimal length double coset representatives for WΘ0\W/WΘ, and Gan is the anisotropic kernel of G. The script is described in "Effective Bialynicki-Birula-Brosnan motivic decompositions", see [PDF] Download
BBBdec.py — SageMath 9.5 script.
Main flags:
Note on conventions.The script outputs using the convention opposite to Tits for the types of projective homogeneous varieties: under our convention, the Borel variety has type ΔG (not the empty set). Input through Tits convention is done with --J, and with our convention with its complementary --Jcomp. Input --Sigma0 correponds to Θ0 (vertices for ΔGan); --Sigma0comp allows entering complement directly, which is convenient for large subsets.Examples for each Dynkin diagram type(Display minimal systems of double cosets representatives with --word) Example 1 — Type An sage BBBdec.py --dynkin=A5 --Sigma0comp=3 --Jcomp=1,2,3
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['A', 5], Sigma0=[1, 2, 4, 5], J=[4, 5]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 2] | twist=0 | abs_rank=6 | contrib=6 | sample_w=1
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 2, 4] | twist=1 | abs_rank=18 | contrib=18 | sample_w=s3
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 2, 4] | twist=2 | abs_rank=18 | contrib=18 | sample_w=s3*s2
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 2, 4] | twist=3 | abs_rank=18 | contrib=18 | sample_w=s3*s2*s1
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 4, 5] | twist=4 | abs_rank=18 | contrib=18 | sample_w=s3*s4*s2*s3
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 4, 5] | twist=5 | abs_rank=18 | contrib=18 | sample_w=s3*s4*s2*s3*s1
mult=1 | Levi_type=A2xA2 | Jwcomp=[1, 4, 5] | twist=6 | abs_rank=18 | contrib=18 | sample_w=s3*s4*s2*s3*s1*s2
mult=1 | Levi_type=A2xA2 | Jwcomp=[4, 5] | twist=9 | abs_rank=6 | contrib=6 | sample_w=s3*s4*s5*s2*s3*s4*s1*s2*s3
=== STATS ===
dynkin: ['A', 5]
Sigma0: [1, 2, 4, 5]
J: [4, 5]
total_W: 720
WI_order: 36
WJ_order: 6
WJ_reps: 120
bimin_reps: 8
aggregated_classes: 8
covered_tate: 120
target_tate: 120
elapsed_sec: 3.211242437362671
Result: M(X(1,2,3;A)) ≃ M(X(1,2;D)){0} ⊕ M(X(1,2,4;D))⊕3{1,2,3} ⊕ M(X(1,4,5;D))⊕3{4,5,6} ⊕ M(X(4,5;D)){9} Example 2 — Type Bn sage BBBdec.py --dynkin=B6 --Sigma0comp=1,2 --progress --every=100 --Jcomp=2,3
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['B', 6], Sigma0=[3, 4, 5, 6], J=[1, 4, 5, 6]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=0 | abs_rank=8 | contrib=8
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=1 | abs_rank=8 | contrib=8
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=2 | abs_rank=8 | contrib=8
mult=1 | Levi_type=B4 | Jwcomp=[3, 4] | twist=2 | abs_rank=48 | contrib=48
mult=1 | Levi_type=B4 | Jwcomp=[3, 4] | twist=3 | abs_rank=48 | contrib=48
mult=1 | Levi_type=B4 | Jwcomp=[4] | twist=4 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B4 | Jwcomp=[4] | twist=5 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B4 | Jwcomp=[4, 5] | twist=6 | abs_rank=96 | contrib=96
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=8 | abs_rank=8 | contrib=8
mult=2 | Levi_type=B4 | Jwcomp=[3] | twist=9 | abs_rank=8 | contrib=16
mult=2 | Levi_type=B4 | Jwcomp=[3] | twist=10 | abs_rank=8 | contrib=16
mult=1 | Levi_type=B4 | Jwcomp=[4] | twist=10 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=11 | abs_rank=8 | contrib=8
mult=1 | Levi_type=B4 | Jwcomp=[3, 4] | twist=11 | abs_rank=48 | contrib=48
mult=1 | Levi_type=B4 | Jwcomp=[4] | twist=11 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B4 | Jwcomp=[3, 4] | twist=12 | abs_rank=48 | contrib=48
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=17 | abs_rank=8 | contrib=8
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=18 | abs_rank=8 | contrib=8
mult=1 | Levi_type=B4 | Jwcomp=[3] | twist=19 | abs_rank=8 | contrib=8
=== STATS ===
dynkin: ['B', 6]
Sigma0: [3, 4, 5, 6]
J: [1, 4, 5, 6]
total_W: 46080
WI_order: 384
WJ_order: 96
WJ_reps: 480
bimin_reps: 21
aggregated_classes: 19
covered_tate: 480
target_tate: 480
elapsed_sec: 75.35865902900696
Result: M(X(2,3;q)) ≃ M(X(3;qan))⊕12{0,1,2,8,9,9,10,10,11,17,18,19}⊕M(X(3,4;qan))⊕4{2,3,11,12}⊕M(X(4,5;qan)){6}⊕M(X(4;qan))⊕4{4,5,10,11} Example 3 — Type Cn sage BBBdec.py --dynkin=C6 --Sigma0comp=2 --Jcomp=2
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['C', 6], Sigma0=[1, 3, 4, 5, 6], J=[1, 3, 4, 5, 6]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=A1xC4 | Jwcomp=[] | twist=0 | abs_rank=1 | contrib=1
mult=1 | Levi_type=A1xC4 | Jwcomp=[1, 3] | twist=1 | abs_rank=16 | contrib=16
mult=1 | Levi_type=A1xC4 | Jwcomp=[4] | twist=4 | abs_rank=24 | contrib=24
mult=1 | Levi_type=A1xC4 | Jwcomp=[1] | twist=9 | abs_rank=2 | contrib=2
mult=1 | Levi_type=A1xC4 | Jwcomp=[1, 3] | twist=10 | abs_rank=16 | contrib=16
mult=1 | Levi_type=A1xC4 | Jwcomp=[] | twist=19 | abs_rank=1 | contrib=1
=== STATS ===
dynkin: ['C', 6]
Sigma0: [1, 3, 4, 5, 6]
J: [1, 3, 4, 5, 6]
total_W: 46080
WI_order: 768
WJ_order: 768
WJ_reps: 60
bimin_reps: 6
aggregated_classes: 6
covered_tate: 60
target_tate: 60
elapsed_sec: 9.803762197494507
Result: X(2;(A,σ)) ≃ ℤ{0} ⊕ M(SB(A) x X1,Gan){1} ⊕ M(X2,Gan){4} ⊕ M(SB(A)){9} ⊕ M(SB(A) x X1,Gan){10} ⊕ ℤ{19} Example 4 — Type Dn sage BBBdec.py --dynkin=D6 --Sigma0comp=1 --Jcomp=2 --words
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['D', 6], Sigma0=[2, 3, 4, 5, 6], J=[1, 3, 4, 5, 6]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=D5 | Jwcomp=[2] | twist=0 | abs_rank=10 | contrib=10 | sample_w=1
mult=1 | Levi_type=D5 | Jwcomp=[3] | twist=2 | abs_rank=40 | contrib=40 | sample_w=s1*s2
mult=1 | Levi_type=D5 | Jwcomp=[2] | twist=9 | abs_rank=10 | contrib=10 | sample_w=s1*s2*s3*s4*s6*s5*s4*s3*s2
=== STATS ===
dynkin: ['D', 6]
Sigma0: [2, 3, 4, 5, 6]
J: [1, 3, 4, 5, 6]
total_W: 23040
WI_order: 1920
WJ_order: 384
WJ_reps: 60
bimin_reps: 3
aggregated_classes: 3
covered_tate: 60
target_tate: 60
elapsed_sec: 7.88372015953064
Result: M(X(2;q)) ≃ M(X(1;qan)){0} ⊕ M(X(2;qan)){2} ⊕ M(X(1;qan)){9} Example 5 — Type E6 sage BBBdec.py --dynkin=E6 --Sigma0comp=1,6 --Jcomp=1 --words
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['E', 6], Sigma0=[2, 3, 4, 5], J=[2, 3, 4, 5, 6]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=D4 | Jwcomp=[] | twist=0 | abs_rank=1 | contrib=1 | sample_w=1
mult=1 | Levi_type=D4 | Jwcomp=[3] | twist=1 | abs_rank=8 | contrib=8 | sample_w=s1
mult=1 | Levi_type=D4 | Jwcomp=[2] | twist=5 | abs_rank=8 | contrib=8 | sample_w=s6*s5*s4*s3*s1
mult=1 | Levi_type=D4 | Jwcomp=[] | twist=8 | abs_rank=1 | contrib=1 | sample_w=s1*s3*s4*s5*s2*s4*s3*s1
mult=1 | Levi_type=D4 | Jwcomp=[5] | twist=9 | abs_rank=8 | contrib=8 | sample_w=s6*s1*s3*s4*s5*s2*s4*s3*s1
mult=1 | Levi_type=D4 | Jwcomp=[] | twist=16 | abs_rank=1 | contrib=1 | sample_w=s6*s5*s4*s3*s2*s4*s5*s6*s1*s3*s4*s5*s2*s4*s3*s1
=== STATS ===
dynkin: ['E', 6]
Sigma0: [2, 3, 4, 5]
J: [2, 3, 4, 5, 6]
total_W: 51840
WI_order: 192
WJ_order: 1920
WJ_reps: 27
bimin_reps: 6
aggregated_classes: 6
covered_tate: 27
target_tate: 27
elapsed_sec: 4.618343830108643
Result: M(X1,G) ≃ ℤ{0} ⊕ M(X1,Gan){1} ⊕ M(X3,Gan){5} ⊕ ℤ{8} ⊕ M(X4,Gan){9} ⊕ ℤ{16} Example 6 — Type E7 sage BBBdec.py --dynkin=E7 --Sigma0comp=1,6 --Jcomp=2
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['E', 7], Sigma0=[2, 3, 4, 5, 7], J=[1, 3, 4, 5, 6, 7]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=D4xA1 | Jwcomp=[2] | twist=0 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[3, 7] | twist=4 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[5] | twist=4 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[4, 7] | twist=6 | abs_rank=48 | contrib=48
mult=1 | Levi_type=D4xA1 | Jwcomp=[2] | twist=9 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[2, 3] | twist=10 | abs_rank=32 | contrib=32
mult=1 | Levi_type=D4xA1 | Jwcomp=[3, 7] | twist=11 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[5, 7] | twist=11 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[3, 5] | twist=13 | abs_rank=32 | contrib=32
mult=1 | Levi_type=D4xA1 | Jwcomp=[4, 7] | twist=13 | abs_rank=48 | contrib=48
mult=1 | Levi_type=D4xA1 | Jwcomp=[2, 7] | twist=15 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[2, 5, 7] | twist=16 | abs_rank=64 | contrib=64
mult=1 | Levi_type=D4xA1 | Jwcomp=[5] | twist=17 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[4, 7] | twist=19 | abs_rank=48 | contrib=48
mult=1 | Levi_type=D4xA1 | Jwcomp=[5] | twist=19 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[2, 7] | twist=20 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[3, 5] | twist=20 | abs_rank=32 | contrib=32
mult=1 | Levi_type=D4xA1 | Jwcomp=[2, 3] | twist=23 | abs_rank=32 | contrib=32
mult=1 | Levi_type=D4xA1 | Jwcomp=[3, 7] | twist=24 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[5, 7] | twist=24 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[4, 7] | twist=26 | abs_rank=48 | contrib=48
mult=1 | Levi_type=D4xA1 | Jwcomp=[2] | twist=27 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[3, 7] | twist=31 | abs_rank=16 | contrib=16
mult=1 | Levi_type=D4xA1 | Jwcomp=[5] | twist=32 | abs_rank=8 | contrib=8
mult=1 | Levi_type=D4xA1 | Jwcomp=[2] | twist=36 | abs_rank=8 | contrib=8
=== STATS ===
dynkin: ['E', 7]
Sigma0: [2, 3, 4, 5, 7]
J: [1, 3, 4, 5, 6, 7]
total_W: 2903040
WI_order: 384
WJ_order: 5040
WJ_reps: 576
bimin_reps: 25
aggregated_classes: 25
covered_tate: 576
target_tate: 576
elapsed_sec: 251.78913164138794
Example 7 — Type E8. sage BBBdec.py --dynkin=E8 --Sigma0comp=1 --Jcomp=8
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['E', 8], Sigma0=[2, 3, 4, 5, 6, 7, 8], J=[1, 2, 3, 4, 5, 6, 7]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=D7 | Jwcomp=[8] | twist=0 | abs_rank=14 | contrib=14
mult=1 | Levi_type=D7 | Jwcomp=[2] | twist=7 | abs_rank=64 | contrib=64
mult=1 | Levi_type=D7 | Jwcomp=[7] | twist=18 | abs_rank=84 | contrib=84
mult=1 | Levi_type=D7 | Jwcomp=[3] | twist=29 | abs_rank=64 | contrib=64
mult=1 | Levi_type=D7 | Jwcomp=[8] | twist=45 | abs_rank=14 | contrib=14
=== STATS ===
dynkin: ['E', 8]
Sigma0: [2, 3, 4, 5, 6, 7, 8]
J: [1, 2, 3, 4, 5, 6, 7]
total_W: 696729600
WI_order: 322560
WJ_order: 2903040
WJ_reps: 240
bimin_reps: 5
aggregated_classes: 5
covered_tate: 240
target_tate: 240
elapsed_sec: 260.31871008872986
Result: M(X8,G) ≃ M(X1,Gan){0} ⊕ M(X6,Gan){7} ⊕ M(X2,Gan){18} ⊕ M(X7,Gan){29} ⊕ M(X1,Gan){45}. Example 8 — Type F4. sage BBBdec.py --dynkin=F4 --Sigma0comp=4 --Jcomp=2 --progress --every=100
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['F', 4], Sigma0=[1, 2, 3], J=[1, 3, 4]
=== AGGREGATED TERMS ===
mult=1 | Levi_type=B3 | Jwcomp=[2] | twist=0 | abs_rank=12 | contrib=12
mult=1 | Levi_type=B3 | Jwcomp=[1, 2] | twist=3 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B3 | Jwcomp=[1, 3] | twist=6 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B3 | Jwcomp=[1, 2] | twist=9 | abs_rank=24 | contrib=24
mult=1 | Levi_type=B3 | Jwcomp=[2] | twist=13 | abs_rank=12 | contrib=12
=== STATS ===
dynkin: ['F', 4]
Sigma0: [1, 2, 3]
J: [1, 3, 4]
total_W: 1152
WI_order: 48
WJ_order: 12
WJ_reps: 96
bimin_reps: 5
aggregated_classes: 5
covered_tate: 96
target_tate: 96
elapsed_sec: 3.9572551250457764
Result: M(X2,G) ≃ M(X2,Gan){0} ⊕ M(X{1,2},Gan){3} ⊕ M(X{1,3},Gan){6} ⊕ M(X{1,2},Gan){9} ⊕ M(X2,Gan){13}. Example 9 — Type G2 (split case fork). sage BBBdec.py --dynkin=G2 --Sigma0= --Jcomp=1,2
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['G', 2], Sigma0=[], J=[]
=== DECOMPOSITION (SPLIT: POINCARE QUOTIENT) ===
Z{0} + 1
Z{1} + 2
Z{2} + 2
Z{3} + 2
Z{4} + 2
Z{5} + 2
Z{6} + 1
=== STATS ===
dynkin: ['G', 2]
Sigma0: []
J: []
elapsed_sec: 0.037103891372680664
split_method: poincare_quotient
Result: M(X{1,2},G) ≃ ℤ{0} ⊕ ℤ{1}⊕2 ⊕ ℤ{2}⊕2 ⊕ ℤ{3}⊕2 ⊕ ℤ{4}⊕2 ⊕ ℤ{5}⊕2 ⊕ ℤ{6}. Example 10 — Tate trace mode. sage BBBdec.py --dynkin=E6 --Sigma0comp=1,6 --Jcomp=1,6 --progress --every=100 --tatetrace
=== BBBdec — Bialynicki-Birula-Brosnan decomposition (Brosnan Thm. 7.4) ===
dynkin=['E', 6], Sigma0=[2, 3, 4, 5], J=[2, 3, 4, 5]
=== TATE TRACE ===
mult=1 | twist=0 | contrib=1
mult=2 | twist=8 | contrib=2
mult=2 | twist=16 | contrib=2
mult=1 | twist=24 | contrib=1
=== STATS ===
dynkin: ['E', 6]
Sigma0: [2, 3, 4, 5]
J: [2, 3, 4, 5]
elapsed_sec: 37.90405511856079
tate_trace: True
Result: Tr(X{1,6},G) = ℤ{0} ⊕ ℤ{8}⊕2 ⊕ ℤ{16}⊕2 ⊕ ℤ{24}. |