refactor: Simplify proofs
This commit is contained in:
parent
33a42c7e06
commit
95857993b5
6 changed files with 366 additions and 496 deletions
|
@ -88,7 +88,6 @@ lemma complexCoBasis_ρ_apply (M : SL(2,ℂ)) (i j : Fin 1 ⊕ Fin 3) :
|
||||||
def complexCoBasisFin4 : Basis (Fin 4) ℂ complexCo :=
|
def complexCoBasisFin4 : Basis (Fin 4) ℂ complexCo :=
|
||||||
Basis.reindex complexCoBasis finSumFinEquiv
|
Basis.reindex complexCoBasis finSumFinEquiv
|
||||||
|
|
||||||
|
|
||||||
/-!
|
/-!
|
||||||
|
|
||||||
## Relation to real
|
## Relation to real
|
||||||
|
|
|
@ -184,6 +184,5 @@ lemma basis_contr (c : complexLorentzTensor.C) (i : Fin (complexLorentzTensor.re
|
||||||
| Color.up => Lorentz.contrCoContraction_basis _ _
|
| Color.up => Lorentz.contrCoContraction_basis _ _
|
||||||
| Color.down => Lorentz.coContrContraction_basis _ _
|
| Color.down => Lorentz.coContrContraction_basis _ _
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end Fermion
|
end Fermion
|
||||||
|
|
|
@ -79,11 +79,32 @@ lemma perm_basisVector {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
||||||
eqToIso.hom, Functor.mapIso_inv, eqToIso.inv, LinearEquiv.ofLinear_apply]
|
eqToIso.hom, Functor.mapIso_inv, eqToIso.inv, LinearEquiv.ofLinear_apply]
|
||||||
rw [basis_eq_FDiscrete]
|
rw [basis_eq_FDiscrete]
|
||||||
|
|
||||||
|
def contrBasisVectorMul {n : ℕ} {c : Fin n.succ.succ → complexLorentzTensor.C}
|
||||||
|
(i : Fin n.succ.succ) (j : Fin n.succ)
|
||||||
|
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) : ℂ :=
|
||||||
|
(if (b i).val = (b (i.succAbove j)).val then (1 : ℂ) else 0)
|
||||||
|
|
||||||
|
lemma contrBasisVectorMul_neg {n : ℕ} {c : Fin n.succ.succ → complexLorentzTensor.C}
|
||||||
|
{i : Fin n.succ.succ} {j : Fin n.succ} {b : Π k, Fin (complexLorentzTensor.repDim (c k))}
|
||||||
|
(h : ¬ (b i).val = (b (i.succAbove j)).val := by decide) :
|
||||||
|
contrBasisVectorMul i j b = 0 := by
|
||||||
|
rw [contrBasisVectorMul]
|
||||||
|
simp
|
||||||
|
exact h
|
||||||
|
|
||||||
|
lemma contrBasisVectorMul_pos {n : ℕ} {c : Fin n.succ.succ → complexLorentzTensor.C}
|
||||||
|
{i : Fin n.succ.succ} {j : Fin n.succ} {b : Π k, Fin (complexLorentzTensor.repDim (c k))}
|
||||||
|
(h : (b i).val = (b (i.succAbove j)).val := by decide) :
|
||||||
|
contrBasisVectorMul i j b = 1 := by
|
||||||
|
rw [contrBasisVectorMul]
|
||||||
|
simp
|
||||||
|
exact h
|
||||||
|
|
||||||
lemma contr_basisVector {n : ℕ} {c : Fin n.succ.succ → complexLorentzTensor.C}
|
lemma contr_basisVector {n : ℕ} {c : Fin n.succ.succ → complexLorentzTensor.C}
|
||||||
{i : Fin n.succ.succ} {j : Fin n.succ} {h : c (i.succAbove j) = complexLorentzTensor.τ (c i)}
|
{i : Fin n.succ.succ} {j : Fin n.succ} {h : c (i.succAbove j) = complexLorentzTensor.τ (c i)}
|
||||||
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) :
|
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) :
|
||||||
(contr i j h (tensorNode (basisVector c b))).tensor = (if (b i).val = (b (i.succAbove j)).val
|
(contr i j h (tensorNode (basisVector c b))).tensor = (contrBasisVectorMul i j b) •
|
||||||
then (1 : ℂ) else 0) • basisVector (c ∘ Fin.succAbove i ∘ Fin.succAbove j)
|
basisVector (c ∘ Fin.succAbove i ∘ Fin.succAbove j)
|
||||||
(fun k => b (i.succAbove (j.succAbove k))) := by
|
(fun k => b (i.succAbove (j.succAbove k))) := by
|
||||||
rw [contr_tensor]
|
rw [contr_tensor]
|
||||||
simp only [Nat.succ_eq_add_one, tensorNode_tensor]
|
simp only [Nat.succ_eq_add_one, tensorNode_tensor]
|
||||||
|
@ -102,8 +123,7 @@ lemma contr_basisVector_tree {n : ℕ} {c : Fin n.succ.succ → complexLorentzT
|
||||||
{i : Fin n.succ.succ} {j : Fin n.succ} {h : c (i.succAbove j) = complexLorentzTensor.τ (c i)}
|
{i : Fin n.succ.succ} {j : Fin n.succ} {h : c (i.succAbove j) = complexLorentzTensor.τ (c i)}
|
||||||
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) :
|
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) :
|
||||||
(contr i j h (tensorNode (basisVector c b))).tensor =
|
(contr i j h (tensorNode (basisVector c b))).tensor =
|
||||||
(smul ((if (b i).val = (b (i.succAbove j)).val
|
(smul (contrBasisVectorMul i j b) (tensorNode ( basisVector (c ∘ Fin.succAbove i ∘ Fin.succAbove j)
|
||||||
then (1 : ℂ) else 0)) (tensorNode ( basisVector (c ∘ Fin.succAbove i ∘ Fin.succAbove j)
|
|
||||||
(fun k => b (i.succAbove (j.succAbove k)))) )).tensor := by
|
(fun k => b (i.succAbove (j.succAbove k)))) )).tensor := by
|
||||||
exact contr_basisVector _
|
exact contr_basisVector _
|
||||||
|
|
||||||
|
@ -113,7 +133,7 @@ lemma contr_basisVector_tree_pos {n : ℕ} {c : Fin n.succ.succ → complexLore
|
||||||
(contr i j h (tensorNode (basisVector c b))).tensor =
|
(contr i j h (tensorNode (basisVector c b))).tensor =
|
||||||
((tensorNode ( basisVector (c ∘ Fin.succAbove i ∘ Fin.succAbove j)
|
((tensorNode ( basisVector (c ∘ Fin.succAbove i ∘ Fin.succAbove j)
|
||||||
(fun k => b (i.succAbove (j.succAbove k)))))).tensor := by
|
(fun k => b (i.succAbove (j.succAbove k)))))).tensor := by
|
||||||
rw [contr_basisVector_tree]
|
rw [contr_basisVector_tree, contrBasisVectorMul]
|
||||||
rw [if_pos hn]
|
rw [if_pos hn]
|
||||||
simp [smul_tensor]
|
simp [smul_tensor]
|
||||||
|
|
||||||
|
@ -122,10 +142,11 @@ lemma contr_basisVector_tree_neg {n : ℕ} {c : Fin n.succ.succ → complexLore
|
||||||
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) (hn : ¬ (b i).val = (b (i.succAbove j)).val := by decide) :
|
(b : Π k, Fin (complexLorentzTensor.repDim (c k))) (hn : ¬ (b i).val = (b (i.succAbove j)).val := by decide) :
|
||||||
(contr i j h (tensorNode (basisVector c b))).tensor =
|
(contr i j h (tensorNode (basisVector c b))).tensor =
|
||||||
(tensorNode 0).tensor := by
|
(tensorNode 0).tensor := by
|
||||||
rw [contr_basisVector_tree]
|
rw [contr_basisVector_tree, contrBasisVectorMul]
|
||||||
rw [if_neg hn]
|
rw [if_neg hn]
|
||||||
simp [smul_tensor]
|
simp [smul_tensor]
|
||||||
|
|
||||||
|
|
||||||
def prodBasisVecEquiv {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
def prodBasisVecEquiv {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
||||||
{c1 : Fin m → complexLorentzTensor.C} (i : Fin n ⊕ Fin m) :
|
{c1 : Fin m → complexLorentzTensor.C} (i : Fin n ⊕ Fin m) :
|
||||||
Sum.elim (fun i => Fin (complexLorentzTensor.repDim (c i))) (fun i => Fin (complexLorentzTensor.repDim (c1 i)))
|
Sum.elim (fun i => Fin (complexLorentzTensor.repDim (c i))) (fun i => Fin (complexLorentzTensor.repDim (c1 i)))
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -286,7 +286,6 @@ lemma μ_tmul_tprod_mk {X Y : Type} {cX : X → C} {cY : Y → C}
|
||||||
| Sum.inl i => rfl
|
| Sum.inl i => rfl
|
||||||
| Sum.inr i => rfl
|
| Sum.inr i => rfl
|
||||||
|
|
||||||
|
|
||||||
lemma μ_natural_left {X Y : OverColor C} (f : X ⟶ Y) (Z : OverColor C) :
|
lemma μ_natural_left {X Y : OverColor C} (f : X ⟶ Y) (Z : OverColor C) :
|
||||||
MonoidalCategory.whiskerRight (objMap' F f) (objObj' F Z) ≫ (μ F Y Z).hom =
|
MonoidalCategory.whiskerRight (objMap' F f) (objObj' F Z) ≫ (μ F Y Z).hom =
|
||||||
(μ F X Z).hom ≫ objMap' F (MonoidalCategory.whiskerRight f Z) := by
|
(μ F X Z).hom ≫ objMap' F (MonoidalCategory.whiskerRight f Z) := by
|
||||||
|
|
|
@ -680,7 +680,7 @@ lemma eval_tensor {n : ℕ} {c : Fin n.succ → S.C} (i : Fin n.succ) (e : ℕ)
|
||||||
(eval i e t).tensor = (S.evalMap i (Fin.ofNat' e Fin.size_pos')) t.tensor := rfl
|
(eval i e t).tensor = (S.evalMap i (Fin.ofNat' e Fin.size_pos')) t.tensor := rfl
|
||||||
|
|
||||||
lemma smul_tensor {c : Fin n → S.C} (a : S.k) (T : TensorTree S c) :
|
lemma smul_tensor {c : Fin n → S.C} (a : S.k) (T : TensorTree S c) :
|
||||||
(smul a T).tensor = a • T.tensor:= rfl
|
(smul a T).tensor = a • T.tensor:= rfl
|
||||||
/-!
|
/-!
|
||||||
|
|
||||||
## Equality of tensors and rewrites.
|
## Equality of tensors and rewrites.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue