File: Mathlib/GroupTheory/Coxeter/Matrix.lean

full_name: CoxeterMatrix.isSymm
code: /-- A *Coxeter matrix* is a symmetric matrix of natural numbers whose diagonal entries are equal to
1 and whose off-diagonal entries are not equal to 1. -/
@[ext]
structure CoxeterMatrix (B : Type*) where
  /-- The underlying matrix of the Coxeter matrix. -/
  M : Matrix B B ℕ
  isSymm : M.IsSymm := by decide
  diagonal i : M i i = 1 := by decide
  off_diagonal i i' : i ≠ i' → M i i' ≠ 1 := by decide
goal: self.M.IsSymm

full_name: CoxeterMatrix
code: /-- A *Coxeter matrix* is a symmetric matrix of natural numbers whose diagonal entries are equal to
1 and whose off-diagonal entries are not equal to 1. -/
@[ext]
structure CoxeterMatrix (B : Type*) where
  /-- The underlying matrix of the Coxeter matrix. -/
  M : Matrix B B ℕ
  isSymm : M.IsSymm := by decide
  diagonal i : M i i = 1 := by decide
  off_diagonal i i' : i ≠ i' → M i i' ≠ 1 := by decide
goal: Type u_1

full_name: CoxeterMatrix.M
code: /-- A *Coxeter matrix* is a symmetric matrix of natural numbers whose diagonal entries are equal to
1 and whose off-diagonal entries are not equal to 1. -/
@[ext]
structure CoxeterMatrix (B : Type*) where
  /-- The underlying matrix of the Coxeter matrix. -/
  M : Matrix B B ℕ
  isSymm : M.IsSymm := by decide
  diagonal i : M i i = 1 := by decide
  off_diagonal i i' : i ≠ i' → M i i' ≠ 1 := by decide
goal: Matrix B B ℕ

full_name: CoxeterMatrix.diagonal
code: /-- A *Coxeter matrix* is a symmetric matrix of natural numbers whose diagonal entries are equal to
1 and whose off-diagonal entries are not equal to 1. -/
@[ext]
structure CoxeterMatrix (B : Type*) where
  /-- The underlying matrix of the Coxeter matrix. -/
  M : Matrix B B ℕ
  isSymm : M.IsSymm := by decide
  diagonal i : M i i = 1 := by decide
  off_diagonal i i' : i ≠ i' → M i i' ≠ 1 := by decide
goal: self.M i i = 1

full_name: CoxeterMatrix.off_diagonal
code: /-- A *Coxeter matrix* is a symmetric matrix of natural numbers whose diagonal entries are equal to
1 and whose off-diagonal entries are not equal to 1. -/
@[ext]
structure CoxeterMatrix (B : Type*) where
  /-- The underlying matrix of the Coxeter matrix. -/
  M : Matrix B B ℕ
  isSymm : M.IsSymm := by decide
  diagonal i : M i i = 1 := by decide
  off_diagonal i i' : i ≠ i' → M i i' ≠ 1 := by decide
goal: i ≠ i' → self.M i i' ≠ 1

full_name: CoxeterMatrix.instCoeFunMatrixNat
code: /-- A Coxeter matrix can be coerced to a matrix. -/
instance : CoeFun (CoxeterMatrix B) fun _ ↦ (Matrix B B ℕ) 
goal: CoeFun (CoxeterMatrix B) fun x => Matrix B B ℕ

full_name: CoxeterMatrix.symmetric
code: theorem symmetric (i i' : B) : M i i' = M i' i 
goal: M.M i i' = M.M i' i

full_name: CoxeterMatrix.reindex
code: /-- The Coxeter matrix formed by reindexing via the bijection `e : B ≃ B'`. -/
protected def reindex : CoxeterMatrix B' 
goal: CoxeterMatrix B'

full_name: CoxeterMatrix.reindex_apply
code: theorem reindex_apply (i i' : B') : M.reindex e i i' = M (e.symm i) (e.symm i') 
goal: (CoxeterMatrix.reindex e M).M i i' = M.M (e.symm i) (e.symm i')

full_name: CoxeterMatrix.Aₙ
code: /-- The Coxeter matrix of type Aₙ.

The corresponding Coxeter-Dynkin diagram is:
```
    o --- o --- o ⬝ ⬝ ⬝ ⬝ o --- o
```
-/
def Aₙ : CoxeterMatrix (Fin n) 
goal: CoxeterMatrix (Fin n)

full_name: CoxeterMatrix.Bₙ
code: /-- The Coxeter matrix of type Bₙ.

The corresponding Coxeter-Dynkin diagram is:
```
       4
    o --- o --- o ⬝ ⬝ ⬝ ⬝ o --- o
```
-/
def Bₙ : CoxeterMatrix (Fin n) 
goal: CoxeterMatrix (Fin n)

full_name: CoxeterMatrix.Dₙ
code: /-- The Coxeter matrix of type Dₙ.

The corresponding Coxeter-Dynkin diagram is:
```
    o
     \
      o --- o ⬝ ⬝ ⬝ ⬝ o --- o
     /
    o
```
-/
def Dₙ : CoxeterMatrix (Fin n) 
goal: CoxeterMatrix (Fin n)

full_name: CoxeterMatrix.I₂ₘ
code: /-- The Coxeter matrix of type I₂(m).

The corresponding Coxeter-Dynkin diagram is:
```
     m + 2
    o --- o
```
-/
def I₂ₘ (m : ℕ) : CoxeterMatrix (Fin 2) 
goal: CoxeterMatrix (Fin 2)

full_name: CoxeterMatrix.E₆
code: /-- The Coxeter matrix of type E₆.

The corresponding Coxeter-Dynkin diagram is:
```
                o
                |
    o --- o --- o --- o --- o
```
-/
def E₆ : CoxeterMatrix (Fin 6) 
goal: CoxeterMatrix (Fin 6)

full_name: CoxeterMatrix.E₇
code: /-- The Coxeter matrix of type E₇.

The corresponding Coxeter-Dynkin diagram is:
```
                o
                |
    o --- o --- o --- o --- o --- o
```
-/
def E₇ : CoxeterMatrix (Fin 7) 
goal: CoxeterMatrix (Fin 7)

full_name: CoxeterMatrix.E₈
code: /-- The Coxeter matrix of type E₈.

The corresponding Coxeter-Dynkin diagram is:
```
                o
                |
    o --- o --- o --- o --- o --- o --- o
```
-/
def E₈ : CoxeterMatrix (Fin 8) 
goal: CoxeterMatrix (Fin 8)

full_name: CoxeterMatrix.F₄
code: /-- The Coxeter matrix of type F₄.

The corresponding Coxeter-Dynkin diagram is:
```
             4
    o --- o --- o --- o
```
-/
def F₄ : CoxeterMatrix (Fin 4) 
goal: CoxeterMatrix (Fin 4)

full_name: CoxeterMatrix.G₂
code: /-- The Coxeter matrix of type G₂.

The corresponding Coxeter-Dynkin diagram is:
```
       6
    o --- o
```
-/
def G₂ : CoxeterMatrix (Fin 2) 
goal: CoxeterMatrix (Fin 2)

full_name: CoxeterMatrix.H₃
code: /-- The Coxeter matrix of type H₃.

The corresponding Coxeter-Dynkin diagram is:
```
       5
    o --- o --- o
```
-/
def H₃ : CoxeterMatrix (Fin 3) 
goal: CoxeterMatrix (Fin 3)

full_name: CoxeterMatrix.H₄
code: /-- The Coxeter matrix of type H₄.

The corresponding Coxeter-Dynkin diagram is:
```
       5
    o --- o --- o --- o
```
-/
def H₄ : CoxeterMatrix (Fin 4) 
goal: CoxeterMatrix (Fin 4)