feat: Important fix to ContrContr
This commit is contained in:
parent
83ff8f5358
commit
4756466001
7 changed files with 184 additions and 2 deletions
|
@ -209,5 +209,17 @@ lemma basis_contr (c : complexLorentzTensor.C) (i : Fin (complexLorentzTensor.re
|
|||
| Color.up => Lorentz.contrCoContraction_basis _ _
|
||||
| Color.down => Lorentz.coContrContraction_basis _ _
|
||||
|
||||
instance {n : ℕ} {c : Fin n → complexLorentzTensor.C} :
|
||||
DecidableEq (OverColor.mk c).left := instDecidableEqFin n
|
||||
|
||||
instance {n : ℕ} {c : Fin n → complexLorentzTensor.C} :
|
||||
Fintype (OverColor.mk c).left := Fin.fintype n
|
||||
|
||||
instance {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
||||
{c1 : Fin m → complexLorentzTensor.C} (σ σ' : OverColor.mk c ⟶ OverColor.mk c1) :
|
||||
Decidable (σ = σ') :=
|
||||
decidable_of_iff _ (OverColor.Hom.ext_iff σ σ')
|
||||
|
||||
|
||||
end complexLorentzTensor
|
||||
end
|
||||
|
|
|
@ -87,5 +87,57 @@ lemma tensorNode_coBispinorDown (p : complexCo) :
|
|||
⊗ coBispinorUp p | α β}ᵀ.tensor := by
|
||||
rw [coBispinorDown, tensorNode_tensor]
|
||||
|
||||
/-!
|
||||
|
||||
## Basic equalities.
|
||||
|
||||
-/
|
||||
|
||||
lemma contrBispinorDown_expand (p : complexContr) :
|
||||
{contrBispinorDown p | α β}ᵀ.tensor = {Fermion.altLeftMetric | α α' ⊗ Fermion.altRightMetric | β β' ⊗
|
||||
(pauliCo | μ α β ⊗ p | μ)}ᵀ.tensor := by
|
||||
rw [tensorNode_contrBispinorDown p]
|
||||
rw [contr_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_snd <| tensorNode_contrBispinorUp p]
|
||||
|
||||
set_option maxRecDepth 5000 in
|
||||
lemma contrBispinorDown_eq_pauliCoDown_contr (p : complexContr) :
|
||||
{contrBispinorDown p | α β = pauliCoDown | μ α β ⊗ p | μ}ᵀ := by
|
||||
conv =>
|
||||
rhs
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_fst <| pauliCoDown_eq_metric_mul_pauliCo]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| prod_perm_left _ _ _ _]
|
||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_prod _ _ _]
|
||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||
rw [perm_perm]
|
||||
apply (perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _).trans
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_prod _ _ _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||
rw [perm_perm]
|
||||
erw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_assoc' _ _ _ _ _ _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_contr_congr 0 4]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||
rw [perm_perm]
|
||||
conv =>
|
||||
lhs
|
||||
rw [contrBispinorDown_expand p]
|
||||
rw [contr_tensor_eq <| contr_tensor_eq <| prod_contr _ _ _]
|
||||
rw [contr_tensor_eq <| perm_contr_congr 0 3]
|
||||
rw [perm_contr_congr 1 2]
|
||||
apply (perm_tensor_eq <| contr_tensor_eq <| contr_contr _ _ _).trans
|
||||
rw [perm_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_contr _ _ _]
|
||||
rw [perm_perm]
|
||||
apply perm_congr _ rfl
|
||||
decide
|
||||
|
||||
|
||||
|
||||
|
||||
end complexLorentzTensor
|
||||
end
|
||||
|
|
|
@ -4,7 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
|
|||
Authors: Joseph Tooby-Smith
|
||||
-/
|
||||
import HepLean.Tensors.Tree.NodeIdentities.ProdAssoc
|
||||
import HepLean.Tensors.Tree.NodeIdentities.ProdComm
|
||||
import HepLean.Tensors.Tree.NodeIdentities.ProdContr
|
||||
import HepLean.Tensors.Tree.NodeIdentities.ContrContr
|
||||
import HepLean.Tensors.Tree.NodeIdentities.ContrSwap
|
||||
import HepLean.Tensors.Tree.NodeIdentities.PermContr
|
||||
import HepLean.Tensors.Tree.NodeIdentities.Congr
|
||||
/-!
|
||||
|
||||
|
@ -75,4 +79,61 @@ lemma tensorNode_pauliContrDown : {pauliContrDown | μ α β}ᵀ.tensor =
|
|||
Fermion.altRightMetric | β β'}ᵀ.tensor := by
|
||||
rfl
|
||||
|
||||
/-!
|
||||
|
||||
## Basic equalities
|
||||
|
||||
-/
|
||||
|
||||
set_option maxRecDepth 5000 in
|
||||
/-- A rearanging of `pauliCoDown` to place the pauli matrices on the right. -/
|
||||
lemma pauliCoDown_eq_metric_mul_pauliCo :
|
||||
{pauliCoDown | μ α' β' = Fermion.altLeftMetric | α α' ⊗
|
||||
Fermion.altRightMetric | β β' ⊗ pauliCo | μ α β}ᵀ := by
|
||||
conv =>
|
||||
lhs
|
||||
rw [tensorNode_pauliCoDown]
|
||||
rw [contr_tensor_eq <| contr_prod _ _ _]
|
||||
rw [perm_contr]
|
||||
erw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _]
|
||||
rw [perm_tensor_eq <| contr_congr 1 2]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_congr 1 2]
|
||||
rw [perm_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_congr 1 2]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_assoc' _ _ _ _ _ _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_tensor_eq <| contr_congr 1 2]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_perm _ _ _]
|
||||
rw [perm_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_congr 1 2]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_comm _ _ _ _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_tensor_eq <| contr_congr 5 0]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_perm _ _ _]
|
||||
rw [perm_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_congr 4 1]
|
||||
rw [perm_perm]
|
||||
conv =>
|
||||
rhs
|
||||
rw [perm_tensor_eq <| contr_swap _ _]
|
||||
rw [perm_perm]
|
||||
erw [perm_tensor_eq <| contr_congr 4 1]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_swap _ _]
|
||||
erw [perm_tensor_eq <| contr_tensor_eq <| perm_tensor_eq <| contr_congr 5 0]
|
||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_perm _ _ _]
|
||||
rw [perm_tensor_eq <| perm_contr _ _]
|
||||
rw [perm_perm]
|
||||
rw [perm_tensor_eq <| contr_congr 4 1]
|
||||
rw [perm_perm]
|
||||
apply perm_congr _ rfl
|
||||
decide
|
||||
|
||||
|
||||
end complexLorentzTensor
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue