Coxeter groups #
We build upon the the theory of Coxeter systems currently available in mathlib.
Main definitions #
- mul : W → W → W
- one : W
- inv : W → W
- div : W → W → W
- B : Type u_2
- M : CoxeterMatrix (B W)
- cs : CoxeterSystem M W
Instances
@[simp]
@[simp]
theorem
Coxeter.isReduced_cons
{W : Type u_1}
[CoxeterGroup W]
{ω : List (CoxeterGroup.B W)}
(hω : CoxeterGroup.cs.IsReduced ω)
(i : CoxeterGroup.B W)
:
theorem
Coxeter.not_isReduced_cons
{W : Type u_1}
[CoxeterGroup W]
{ω : List (CoxeterGroup.B W)}
(hω : CoxeterGroup.cs.IsReduced ω)
(i : CoxeterGroup.B W)
:
theorem
Coxeter.isReduced_of_append_left
{W : Type u_1}
[CoxeterGroup W]
{μ ω : List (CoxeterGroup.B W)}
(h : CoxeterGroup.cs.IsReduced (μ ++ ω))
:
theorem
Coxeter.isReduced_of_append_right
{W : Type u_1}
[CoxeterGroup W]
{μ ω : List (CoxeterGroup.B W)}
(h : CoxeterGroup.cs.IsReduced (μ ++ ω))
:
theorem
Coxeter.tail_leftInvSeq
{W : Type u_1}
[CoxeterGroup W]
(i : CoxeterGroup.B W)
(ω : List (CoxeterGroup.B W))
:
(CoxeterGroup.cs.leftInvSeq (i :: ω)).tail = List.map (⇑(MulAut.conj (CoxeterGroup.cs.simple i))) (CoxeterGroup.cs.leftInvSeq ω)
theorem
Coxeter.leftInvSeq_append
{W : Type u_1}
[CoxeterGroup W]
(μ ω : List (CoxeterGroup.B W))
:
CoxeterGroup.cs.leftInvSeq (μ ++ ω) = CoxeterGroup.cs.leftInvSeq μ ++ List.map (⇑(MulAut.conj (CoxeterGroup.cs.wordProd μ))) (CoxeterGroup.cs.leftInvSeq ω)
theorem
Coxeter.tail_alternatingWord
{W : Type u_1}
[CoxeterGroup W]
(i j : CoxeterGroup.B W)
(p : ℕ)
:
theorem
Coxeter.drop_alternatingWord
{W : Type u_1}
[CoxeterGroup W]
(i j : CoxeterGroup.B W)
(p q : ℕ)
:
theorem
Coxeter.alternatingWord_even_add
{W : Type u_1}
[CoxeterGroup W]
(i i' : CoxeterGroup.B W)
(k m : ℕ)
:
CoxeterSystem.alternatingWord i i' (2 * k + m) = CoxeterSystem.alternatingWord i i' m ++ CoxeterSystem.alternatingWord i i' (2 * k)
theorem
Coxeter.reverse_alternatingWord
{W : Type u_1}
[CoxeterGroup W]
(i i' : CoxeterGroup.B W)
(k : ℕ)
:
@[simp]
Reduced words #
Equations
Instances For
@[implicit_reducible]
instance
Coxeter.instCoeOutReducedWordListB
{W : Type u_1}
[CoxeterGroup W]
{w : W}
:
CoeOut (ReducedWord w) (List (CoxeterGroup.B W))
Equations
instance
Coxeter.instNonemptyReducedWord
{W : Type u_1}
[CoxeterGroup W]
{w : W}
:
Nonempty (ReducedWord w)
Instances For
theorem
Coxeter.ReducedWord.wordProd_eq
{W : Type u_1}
[CoxeterGroup W]
{w : W}
(ω : ReducedWord w)
:
Opposite group #
Equations
- Coxeter.cs_op = { mulEquiv := (MulEquiv.inv' W).symm.trans Coxeter.CoxeterGroup.cs.mulEquiv }
Instances For
@[implicit_reducible]
Equations
- Coxeter.instCoxeterGroupMulOpposite = { toGroup := MulOpposite.instGroup, B := Coxeter.CoxeterGroup.B W, M := Coxeter.CoxeterGroup.M, cs := Coxeter.cs_op }
theorem
Coxeter.isLeftDescent_op_iff
{W : Type u_1}
[CoxeterGroup W]
(w : W)
(i : CoxeterGroup.B W)
: