feat: Add properties of rotations

This commit is contained in:
jstoobysmith 2024-05-22 09:18:12 -04:00
parent dbecdcf82d
commit ae7ec01f22
3 changed files with 101 additions and 0 deletions

View file

@ -18,7 +18,22 @@ namespace spaceTime
namespace lorentzGroup
open GroupTheory
@[simp]
def SO3ToMatrix (A : SO(3)) : Matrix (Fin 4) (Fin 4) :=
Matrix.reindex finSumFinEquiv finSumFinEquiv (Matrix.fromBlocks 1 0 0 A.1)
@[simp]
lemma SO3ToMatrix_det (A : SO(3)) : (SO3ToMatrix A).det = 1 := by
simp only [SO3ToMatrix, Nat.reduceAdd, Matrix.reindex_apply, Matrix.det_submatrix_equiv_self,
Matrix.det_fromBlocks_zero₂₁, Matrix.det_unique, Fin.default_eq_zero, Fin.isValue,
Matrix.one_apply_eq, A.2, mul_one]
lemma SO3ToMatrix_lorentz (A : SO(3)) : η * (SO3ToMatrix A).transpose * η * SO3ToMatrix A = 1 := by
simp only [η_block, Nat.reduceAdd, Matrix.reindex_apply, SO3ToMatrix, Matrix.transpose_submatrix,
Matrix.fromBlocks_transpose, Matrix.transpose_one, Matrix.transpose_zero,
Matrix.submatrix_mul_equiv, Matrix.fromBlocks_multiply, mul_one, Matrix.mul_zero, add_zero,
Matrix.zero_mul, Matrix.mul_one, neg_mul, one_mul, zero_add, Matrix.mul_neg, neg_zero, mul_neg,
neg_neg, Matrix.mul_eq_one_comm.mpr A.2.2, Matrix.fromBlocks_one, Matrix.submatrix_one_equiv]
end lorentzGroup

View file

@ -66,6 +66,23 @@ lemma η_sq : η * η = 1 := by
Matrix.head_fin_const, Matrix.head_cons, Matrix.vecCons_const, Fin.mk_one, Fin.mk_one,
vecHead, vecTail, Function.comp_apply]
lemma η_block : η = Matrix.reindex finSumFinEquiv finSumFinEquiv (
Matrix.fromBlocks (1 : Matrix (Fin 1) (Fin 1) ) 0 0 (-1 : Matrix (Fin 3) (Fin 3) )) := by
apply Matrix.ext
intro i j
fin_cases i <;> fin_cases j
<;> simp_all only [Fin.zero_eta, reindex_apply, submatrix_apply]
any_goals rfl
all_goals simp [finSumFinEquiv, Fin.addCases, η, Fin.zero_eta, Matrix.cons_val', Matrix.cons_val_fin_one, Matrix.cons_val_one,
Matrix.cons_val_succ', Matrix.cons_val_zero, Matrix.empty_val', Matrix.head_cons,
Matrix.head_fin_const, Matrix.head_cons, Matrix.vecCons_const, Fin.mk_one, Fin.mk_one,
vecHead, vecTail, Function.comp_apply]
any_goals rfl
all_goals split
all_goals simp
all_goals rfl
lemma η_diag_mul_self (μ : Fin 4) : η μ μ * η μ μ = 1 := by
fin_cases μ