refactor: Move dual to minkowskiMatrix
This commit is contained in:
parent
ac7c7939a7
commit
9fcaee7b2f
5 changed files with 60 additions and 54 deletions
|
@ -89,6 +89,58 @@ lemma inr_i_inr_i (i : Fin d) : @minkowskiMatrix d (Sum.inr i) (Sum.inr i) = -1
|
|||
simp only [minkowskiMatrix, LieAlgebra.Orthogonal.indefiniteDiagonal]
|
||||
simp_all only [diagonal_apply_eq, Sum.elim_inr]
|
||||
|
||||
|
||||
variable (Λ Λ' : Matrix (Fin 1 ⊕ Fin d) (Fin 1 ⊕ Fin d) ℝ)
|
||||
|
||||
/-- The dual of a matrix with respect to the Minkowski metric. -/
|
||||
def dual : Matrix (Fin 1 ⊕ Fin d) (Fin 1 ⊕ Fin d) ℝ := η * Λᵀ * η
|
||||
|
||||
@[simp]
|
||||
lemma dual_id : @dual d 1 = 1 := by
|
||||
simpa only [dual, transpose_one, mul_one] using minkowskiMatrix.sq
|
||||
|
||||
@[simp]
|
||||
lemma dual_mul : dual (Λ * Λ') = dual Λ' * dual Λ := by
|
||||
simp only [dual, transpose_mul]
|
||||
trans η * Λ'ᵀ * (η * η) * Λᵀ * η
|
||||
· noncomm_ring [minkowskiMatrix.sq]
|
||||
· noncomm_ring
|
||||
|
||||
@[simp]
|
||||
lemma dual_dual : dual (dual Λ) = Λ := by
|
||||
simp only [dual, transpose_mul, transpose_transpose, eq_transpose]
|
||||
trans (η * η) * Λ * (η * η)
|
||||
· noncomm_ring
|
||||
· noncomm_ring [minkowskiMatrix.sq]
|
||||
|
||||
@[simp]
|
||||
lemma dual_eta : @dual d η = η := by
|
||||
simp only [dual, eq_transpose]
|
||||
noncomm_ring [minkowskiMatrix.sq]
|
||||
|
||||
@[simp]
|
||||
lemma dual_transpose : dual Λᵀ = (dual Λ)ᵀ := by
|
||||
simp only [dual, transpose_transpose, transpose_mul, eq_transpose]
|
||||
noncomm_ring
|
||||
|
||||
@[simp]
|
||||
lemma det_dual : (dual Λ).det = Λ.det := by
|
||||
simp only [dual, det_mul, minkowskiMatrix.det_eq_neg_one_pow_d, det_transpose]
|
||||
group
|
||||
norm_cast
|
||||
simp
|
||||
|
||||
lemma dual_apply (μ ν : Fin 1 ⊕ Fin d) :
|
||||
dual Λ μ ν = η μ μ * Λ ν μ * η ν ν := by
|
||||
simp only [dual, minkowskiMatrix, LieAlgebra.Orthogonal.indefiniteDiagonal, mul_diagonal,
|
||||
diagonal_mul, transpose_apply, diagonal_apply_eq]
|
||||
|
||||
lemma dual_apply_minkowskiMatrix (μ ν : Fin 1 ⊕ Fin d) :
|
||||
dual Λ μ ν * η ν ν = η μ μ * Λ ν μ := by
|
||||
rw [dual_apply, mul_assoc]
|
||||
simp
|
||||
|
||||
|
||||
end minkowskiMatrix
|
||||
|
||||
/-!
|
||||
|
@ -238,54 +290,6 @@ section matrices
|
|||
|
||||
variable (Λ Λ' : Matrix (Fin 1 ⊕ Fin d) (Fin 1 ⊕ Fin d) ℝ)
|
||||
|
||||
/-- The dual of a matrix with respect to the Minkowski metric. -/
|
||||
def dual : Matrix (Fin 1 ⊕ Fin d) (Fin 1 ⊕ Fin d) ℝ := η * Λᵀ * η
|
||||
|
||||
@[simp]
|
||||
lemma dual_id : @dual d 1 = 1 := by
|
||||
simpa only [dual, transpose_one, mul_one] using minkowskiMatrix.sq
|
||||
|
||||
@[simp]
|
||||
lemma dual_mul : dual (Λ * Λ') = dual Λ' * dual Λ := by
|
||||
simp only [dual, transpose_mul]
|
||||
trans η * Λ'ᵀ * (η * η) * Λᵀ * η
|
||||
· noncomm_ring [minkowskiMatrix.sq]
|
||||
· noncomm_ring
|
||||
|
||||
@[simp]
|
||||
lemma dual_dual : dual (dual Λ) = Λ := by
|
||||
simp only [dual, transpose_mul, transpose_transpose, eq_transpose]
|
||||
trans (η * η) * Λ * (η * η)
|
||||
· noncomm_ring
|
||||
· noncomm_ring [minkowskiMatrix.sq]
|
||||
|
||||
@[simp]
|
||||
lemma dual_eta : @dual d η = η := by
|
||||
simp only [dual, eq_transpose]
|
||||
noncomm_ring [minkowskiMatrix.sq]
|
||||
|
||||
@[simp]
|
||||
lemma dual_transpose : dual Λᵀ = (dual Λ)ᵀ := by
|
||||
simp only [dual, transpose_transpose, transpose_mul, eq_transpose]
|
||||
noncomm_ring
|
||||
|
||||
@[simp]
|
||||
lemma det_dual : (dual Λ).det = Λ.det := by
|
||||
simp only [dual, det_mul, minkowskiMatrix.det_eq_neg_one_pow_d, det_transpose]
|
||||
group
|
||||
norm_cast
|
||||
simp
|
||||
|
||||
lemma dual_apply (μ ν : Fin 1 ⊕ Fin d) :
|
||||
dual Λ μ ν = η μ μ * Λ ν μ * η ν ν := by
|
||||
simp only [dual, minkowskiMatrix, LieAlgebra.Orthogonal.indefiniteDiagonal, mul_diagonal,
|
||||
diagonal_mul, transpose_apply, diagonal_apply_eq]
|
||||
|
||||
lemma dual_apply_minkowskiMatrix (μ ν : Fin 1 ⊕ Fin d) :
|
||||
dual Λ μ ν * η ν ν = η μ μ * Λ ν μ := by
|
||||
rw [dual_apply, mul_assoc]
|
||||
simp
|
||||
|
||||
@[simp]
|
||||
lemma dual_mulVec_right : ⟪x, (dual Λ) *ᵥ y⟫ₘ = ⟪Λ *ᵥ x, y⟫ₘ := by
|
||||
simp only [minkowskiMetric, LinearMap.coe_mk, AddHom.coe_mk, dual, minkowskiLinearForm_apply,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue