refactor: Text based Lint
This commit is contained in:
parent
319089ad54
commit
7010a1dae2
12 changed files with 54 additions and 52 deletions
|
@ -275,8 +275,8 @@ lemma accYY_ext {S T : MSSMCharges.Charges}
|
||||||
|
|
||||||
/-- The symmetric bilinear function used to define the quadratic ACC. -/
|
/-- The symmetric bilinear function used to define the quadratic ACC. -/
|
||||||
@[simps!]
|
@[simps!]
|
||||||
def quadBiLin : BiLinearSymm MSSMCharges.Charges := BiLinearSymm.mk₂ (
|
def quadBiLin : BiLinearSymm MSSMCharges.Charges := BiLinearSymm.mk₂
|
||||||
fun (S, T) => ∑ i, (Q S i * Q T i + (- 2) * (U S i * U T i) +
|
(fun (S, T) => ∑ i, (Q S i * Q T i + (- 2) * (U S i * U T i) +
|
||||||
D S i * D T i + (- 1) * (L S i * L T i) + E S i * E T i) +
|
D S i * D T i + (- 1) * (L S i * L T i) + E S i * E T i) +
|
||||||
(- Hd S * Hd T + Hu S * Hu T))
|
(- Hd S * Hd T + Hu S * Hu T))
|
||||||
(by
|
(by
|
||||||
|
|
|
@ -206,8 +206,8 @@ lemma lineCube_quad (R : MSSMACC.AnomalyFreePerp) (a₁ a₂ a₃ : ℚ) :
|
||||||
section proj
|
section proj
|
||||||
|
|
||||||
lemma α₃_proj (T : MSSMACC.Sols) : α₃ (proj T.1.1) =
|
lemma α₃_proj (T : MSSMACC.Sols) : α₃ (proj T.1.1) =
|
||||||
6 * dot Y₃.val B₃.val ^ 3 * (
|
6 * dot Y₃.val B₃.val ^ 3 *
|
||||||
cubeTriLin T.val T.val Y₃.val * quadBiLin B₃.val T.val -
|
(cubeTriLin T.val T.val Y₃.val * quadBiLin B₃.val T.val -
|
||||||
cubeTriLin T.val T.val B₃.val * quadBiLin Y₃.val T.val) := by
|
cubeTriLin T.val T.val B₃.val * quadBiLin Y₃.val T.val) := by
|
||||||
rw [α₃]
|
rw [α₃]
|
||||||
rw [cube_proj_proj_Y₃, cube_proj_proj_B₃, quad_B₃_proj, quad_Y₃_proj]
|
rw [cube_proj_proj_Y₃, cube_proj_proj_B₃, quad_B₃_proj, quad_Y₃_proj]
|
||||||
|
|
|
@ -253,8 +253,8 @@ def inLineEqProj (T : InLineEqSol) : InLineEq × ℚ × ℚ × ℚ :=
|
||||||
(⟨proj T.val.1.1, (linEqPropSol_iff_proj_linEqProp T.val).mp T.prop.1⟩,
|
(⟨proj T.val.1.1, (linEqPropSol_iff_proj_linEqProp T.val).mp T.prop.1⟩,
|
||||||
(quadCoeff T.val)⁻¹ * quadBiLin B₃.val T.val.val,
|
(quadCoeff T.val)⁻¹ * quadBiLin B₃.val T.val.val,
|
||||||
(quadCoeff T.val)⁻¹ * (- quadBiLin Y₃.val T.val.val),
|
(quadCoeff T.val)⁻¹ * (- quadBiLin Y₃.val T.val.val),
|
||||||
(quadCoeff T.val)⁻¹ * (
|
(quadCoeff T.val)⁻¹ *
|
||||||
quadBiLin B₃.val T.val.val * (dot B₃.val T.val.val - dot Y₃.val T.val.val)
|
(quadBiLin B₃.val T.val.val * (dot B₃.val T.val.val - dot Y₃.val T.val.val)
|
||||||
- quadBiLin Y₃.val T.val.val * (dot Y₃.val T.val.val - 2 * dot B₃.val T.val.val)))
|
- quadBiLin Y₃.val T.val.val * (dot Y₃.val T.val.val - 2 * dot B₃.val T.val.val)))
|
||||||
|
|
||||||
lemma inLineEqTo_smul (R : InLineEq) (c₁ c₂ c₃ d : ℚ) :
|
lemma inLineEqTo_smul (R : InLineEq) (c₁ c₂ c₃ d : ℚ) :
|
||||||
|
|
|
@ -307,8 +307,8 @@ lemma Prop_two (P : ℚ × ℚ → Prop) {S : (PureU1 n).LinSols}
|
||||||
lemma Prop_three (P : ℚ × ℚ × ℚ → Prop) {S : (PureU1 n).LinSols}
|
lemma Prop_three (P : ℚ × ℚ × ℚ → Prop) {S : (PureU1 n).LinSols}
|
||||||
{a b c : Fin n} (hab : a ≠ b) (hac : a ≠ c) (hbc : b ≠ c)
|
{a b c : Fin n} (hab : a ≠ b) (hac : a ≠ c) (hbc : b ≠ c)
|
||||||
(h : ∀ (f : (FamilyPermutations n).group),
|
(h : ∀ (f : (FamilyPermutations n).group),
|
||||||
P ((((FamilyPermutations n).linSolRep f S).val a),(
|
P ((((FamilyPermutations n).linSolRep f S).val a),
|
||||||
(((FamilyPermutations n).linSolRep f S).val b),
|
((((FamilyPermutations n).linSolRep f S).val b),
|
||||||
(((FamilyPermutations n).linSolRep f S).val c)))) : ∀ (i j k : Fin n)
|
(((FamilyPermutations n).linSolRep f S).val c)))) : ∀ (i j k : Fin n)
|
||||||
(_ : i ≠ j) (_ : j ≠ k) (_ : i ≠ k), P (S.val i, (S.val j, S.val k)) := by
|
(_ : i ≠ j) (_ : j ≠ k) (_ : i ≠ k), P (S.val i, (S.val j, S.val k)) := by
|
||||||
intro i j k hij hjk hik
|
intro i j k hij hjk hik
|
||||||
|
|
|
@ -209,10 +209,10 @@ 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 _ _
|
||||||
|
|
||||||
instance {n : ℕ} {c : Fin n → complexLorentzTensor.C} :
|
instance {n : ℕ} {c : Fin n → complexLorentzTensor.C} :
|
||||||
DecidableEq (OverColor.mk c).left := instDecidableEqFin n
|
DecidableEq (OverColor.mk c).left := instDecidableEqFin n
|
||||||
|
|
||||||
instance {n : ℕ} {c : Fin n → complexLorentzTensor.C} :
|
instance {n : ℕ} {c : Fin n → complexLorentzTensor.C} :
|
||||||
Fintype (OverColor.mk c).left := Fin.fintype n
|
Fintype (OverColor.mk c).left := Fin.fintype n
|
||||||
|
|
||||||
instance {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
instance {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
||||||
|
@ -220,6 +220,5 @@ instance {n m : ℕ} {c : Fin n → complexLorentzTensor.C}
|
||||||
Decidable (σ = σ') :=
|
Decidable (σ = σ') :=
|
||||||
decidable_of_iff _ (OverColor.Hom.ext_iff σ σ')
|
decidable_of_iff _ (OverColor.Hom.ext_iff σ σ')
|
||||||
|
|
||||||
|
|
||||||
end complexLorentzTensor
|
end complexLorentzTensor
|
||||||
end
|
end
|
||||||
|
|
|
@ -76,7 +76,7 @@ lemma tensorNode_contrBispinorDown (p : complexContr) :
|
||||||
rw [contrBispinorDown, tensorNode_tensor]
|
rw [contrBispinorDown, tensorNode_tensor]
|
||||||
|
|
||||||
/-- The definitional tensor node relation for `coBispinorUp`. -/
|
/-- The definitional tensor node relation for `coBispinorUp`. -/
|
||||||
lemma tensorNode_coBispinorUp (p : complexCo) :
|
lemma tensorNode_coBispinorUp (p : complexCo) :
|
||||||
{coBispinorUp p | α β}ᵀ.tensor = {pauliContr | μ α β ⊗ p | μ}ᵀ.tensor := by
|
{coBispinorUp p | α β}ᵀ.tensor = {pauliContr | μ α β ⊗ p | μ}ᵀ.tensor := by
|
||||||
rw [coBispinorUp, tensorNode_tensor]
|
rw [coBispinorUp, tensorNode_tensor]
|
||||||
|
|
||||||
|
@ -94,23 +94,26 @@ lemma tensorNode_coBispinorDown (p : complexCo) :
|
||||||
-/
|
-/
|
||||||
|
|
||||||
lemma contrBispinorDown_expand (p : complexContr) :
|
lemma contrBispinorDown_expand (p : complexContr) :
|
||||||
{contrBispinorDown p | α β}ᵀ.tensor = {Fermion.altLeftMetric | α α' ⊗ Fermion.altRightMetric | β β' ⊗
|
{contrBispinorDown p | α β}ᵀ.tensor =
|
||||||
|
{Fermion.altLeftMetric | α α' ⊗ Fermion.altRightMetric | β β' ⊗
|
||||||
(pauliCo | μ α β ⊗ p | μ)}ᵀ.tensor := by
|
(pauliCo | μ α β ⊗ p | μ)}ᵀ.tensor := by
|
||||||
rw [tensorNode_contrBispinorDown p]
|
rw [tensorNode_contrBispinorDown p]
|
||||||
rw [contr_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_snd <| tensorNode_contrBispinorUp p]
|
rw [contr_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_snd <| tensorNode_contrBispinorUp p]
|
||||||
|
|
||||||
lemma coBispinorDown_expand (p : complexCo) :
|
lemma coBispinorDown_expand (p : complexCo) :
|
||||||
{coBispinorDown p | α β}ᵀ.tensor = {Fermion.altLeftMetric | α α' ⊗ Fermion.altRightMetric | β β' ⊗
|
{coBispinorDown p | α β}ᵀ.tensor =
|
||||||
|
{Fermion.altLeftMetric | α α' ⊗ Fermion.altRightMetric | β β' ⊗
|
||||||
(pauliContr | μ α β ⊗ p | μ)}ᵀ.tensor := by
|
(pauliContr | μ α β ⊗ p | μ)}ᵀ.tensor := by
|
||||||
rw [tensorNode_coBispinorDown p]
|
rw [tensorNode_coBispinorDown p]
|
||||||
rw [contr_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_snd <| tensorNode_coBispinorUp p]
|
rw [contr_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_snd <| tensorNode_coBispinorUp p]
|
||||||
|
|
||||||
set_option maxRecDepth 5000 in
|
set_option maxRecDepth 5000 in
|
||||||
lemma contrBispinorDown_eq_pauliCoDown_contr (p : complexContr) :
|
lemma contrBispinorDown_eq_pauliCoDown_contr (p : complexContr) :
|
||||||
{contrBispinorDown p | α β = pauliCoDown | μ α β ⊗ p | μ}ᵀ := by
|
{contrBispinorDown p | α β = pauliCoDown | μ α β ⊗ p | μ}ᵀ := by
|
||||||
conv =>
|
conv =>
|
||||||
rhs
|
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_tensor_eq_fst <|
|
||||||
|
pauliCoDown_eq_metric_mul_pauliCo]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| prod_perm_left _ _ _ _]
|
rw [perm_tensor_eq <| contr_tensor_eq <| prod_perm_left _ _ _ _]
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
|
@ -118,12 +121,14 @@ lemma contrBispinorDown_eq_pauliCoDown_contr (p : complexContr) :
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
apply (perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _).trans
|
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 <| contr_tensor_eq <| contr_prod _ _ _]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
erw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _]
|
erw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <|
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_assoc' _ _ _ _ _ _]
|
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 <| contr_tensor_eq <| perm_contr_congr 0 4]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
|
@ -144,10 +149,11 @@ lemma contrBispinorDown_eq_pauliCoDown_contr (p : complexContr) :
|
||||||
|
|
||||||
set_option maxRecDepth 5000 in
|
set_option maxRecDepth 5000 in
|
||||||
lemma coBispinorDown_eq_pauliContrDown_contr (p : complexCo) :
|
lemma coBispinorDown_eq_pauliContrDown_contr (p : complexCo) :
|
||||||
{coBispinorDown p | α β = pauliContrDown | μ α β ⊗ p | μ}ᵀ := by
|
{coBispinorDown p | α β = pauliContrDown | μ α β ⊗ p | μ}ᵀs := by
|
||||||
conv =>
|
conv =>
|
||||||
rhs
|
rhs
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_fst <| pauliContrDown_eq_metric_mul_pauliContr]
|
rw [perm_tensor_eq <| contr_tensor_eq <| prod_tensor_eq_fst <|
|
||||||
|
pauliContrDown_eq_metric_mul_pauliContr]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| prod_perm_left _ _ _ _]
|
rw [perm_tensor_eq <| contr_tensor_eq <| prod_perm_left _ _ _ _]
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
|
@ -155,12 +161,14 @@ lemma coBispinorDown_eq_pauliContrDown_contr (p : complexCo) :
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
apply (perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _).trans
|
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 <| contr_tensor_eq <| contr_prod _ _ _]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
erw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| perm_eq_id _ rfl _]
|
erw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <|
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_assoc' _ _ _ _ _ _]
|
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 <| contr_tensor_eq <| perm_contr_congr 0 4]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
rw [perm_tensor_eq <| contr_tensor_eq <| perm_contr_congr 1 3]
|
||||||
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
rw [perm_tensor_eq <| perm_contr_congr 2 2]
|
||||||
|
|
|
@ -63,7 +63,7 @@ lemma tensorNode_pauliContr : {pauliContr | μ α β}ᵀ.tensor =
|
||||||
rfl
|
rfl
|
||||||
|
|
||||||
/-- The definitional tensor node relation for `pauliCo`. -/
|
/-- The definitional tensor node relation for `pauliCo`. -/
|
||||||
lemma tensorNode_pauliCo : {pauliCo | μ α β}ᵀ.tensor =
|
lemma tensorNode_pauliCo : {pauliCo | μ α β}ᵀ.tensor =
|
||||||
{Lorentz.coMetric | μ ν ⊗ PauliMatrix.asConsTensor | ν α β}ᵀ.tensor := by
|
{Lorentz.coMetric | μ ν ⊗ PauliMatrix.asConsTensor | ν α β}ᵀ.tensor := by
|
||||||
rfl
|
rfl
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ lemma pauliCoDown_eq_metric_mul_pauliCo :
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
rw [perm_tensor_eq <| contr_congr 1 2]
|
rw [perm_tensor_eq <| contr_congr 1 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_comm _ _ _ _]
|
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_contr _ _]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_tensor_eq <| contr_congr 5 0]
|
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 <| contr_tensor_eq <| perm_perm _ _ _]
|
||||||
|
@ -138,7 +138,7 @@ lemma pauliCoDown_eq_metric_mul_pauliCo :
|
||||||
set_option maxRecDepth 5000 in
|
set_option maxRecDepth 5000 in
|
||||||
/-- A rearanging of `pauliContrDown` to place the pauli matrices on the right. -/
|
/-- A rearanging of `pauliContrDown` to place the pauli matrices on the right. -/
|
||||||
lemma pauliContrDown_eq_metric_mul_pauliContr :
|
lemma pauliContrDown_eq_metric_mul_pauliContr :
|
||||||
{pauliContrDown | μ α' β' = Fermion.altLeftMetric | α α' ⊗
|
{pauliContrDown | μ α' β' = Fermion.altLeftMetric | α α' ⊗
|
||||||
Fermion.altRightMetric | β β' ⊗ pauliContr | μ α β}ᵀ := by
|
Fermion.altRightMetric | β β' ⊗ pauliContr | μ α β}ᵀ := by
|
||||||
conv =>
|
conv =>
|
||||||
lhs
|
lhs
|
||||||
|
@ -161,7 +161,7 @@ lemma pauliContrDown_eq_metric_mul_pauliContr :
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
rw [perm_tensor_eq <| contr_congr 1 2]
|
rw [perm_tensor_eq <| contr_congr 1 2]
|
||||||
rw [perm_perm]
|
rw [perm_perm]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| contr_tensor_eq <| prod_comm _ _ _ _]
|
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_contr _ _]
|
||||||
rw [perm_tensor_eq <| contr_tensor_eq <| perm_tensor_eq <| contr_congr 5 0]
|
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 <| contr_tensor_eq <| perm_perm _ _ _]
|
||||||
|
|
|
@ -26,7 +26,6 @@ noncomputable section
|
||||||
namespace complexLorentzTensor
|
namespace complexLorentzTensor
|
||||||
open Fermion
|
open Fermion
|
||||||
|
|
||||||
|
|
||||||
/-!
|
/-!
|
||||||
|
|
||||||
## Expanding pauliContr in a basis.
|
## Expanding pauliContr in a basis.
|
||||||
|
@ -94,7 +93,6 @@ lemma pauliContr_basis_expand_tree : {pauliContr | μ α β}ᵀ.tensor =
|
||||||
smul_tensor, neg_smul, one_smul]
|
smul_tensor, neg_smul, one_smul]
|
||||||
rfl
|
rfl
|
||||||
|
|
||||||
|
|
||||||
/-- The map to colors one gets when contracting with Pauli matrices on the right. -/
|
/-- The map to colors one gets when contracting with Pauli matrices on the right. -/
|
||||||
abbrev pauliMatrixContrMap {n : ℕ} (c : Fin n → complexLorentzTensor.C) :=
|
abbrev pauliMatrixContrMap {n : ℕ} (c : Fin n → complexLorentzTensor.C) :=
|
||||||
(Sum.elim c ![Color.up, Color.upL, Color.upR] ∘ ⇑finSumFinEquiv.symm)
|
(Sum.elim c ![Color.up, Color.upL, Color.upR] ∘ ⇑finSumFinEquiv.symm)
|
||||||
|
@ -325,14 +323,12 @@ lemma basis_contr_pauliMatrix_basis_tree_expand_tensor {n : ℕ} {c : Fin n →
|
||||||
simp_all only [Function.comp_apply, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue]
|
simp_all only [Function.comp_apply, Nat.succ_eq_add_one, Nat.reduceAdd, Fin.isValue]
|
||||||
rfl
|
rfl
|
||||||
|
|
||||||
|
|
||||||
/-!
|
/-!
|
||||||
|
|
||||||
## Expanding pauliCo in a basis.
|
## Expanding pauliCo in a basis.
|
||||||
|
|
||||||
-/
|
-/
|
||||||
|
|
||||||
|
|
||||||
/-- The map to color one gets when lowering the indices of pauli matrices. -/
|
/-- The map to color one gets when lowering the indices of pauli matrices. -/
|
||||||
def pauliCoMap := ((Sum.elim ![Color.down, Color.down] ![Color.up, Color.upL, Color.upR] ∘
|
def pauliCoMap := ((Sum.elim ![Color.down, Color.down] ![Color.up, Color.upL, Color.upR] ∘
|
||||||
⇑finSumFinEquiv.symm) ∘ Fin.succAbove 1 ∘ Fin.succAbove 1)
|
⇑finSumFinEquiv.symm) ∘ Fin.succAbove 1 ∘ Fin.succAbove 1)
|
||||||
|
|
|
@ -116,15 +116,16 @@ lemma perm_eq_of_eq_perm {n m : ℕ} {c : Fin n → S.C} {c1 : Fin m → S.C}
|
||||||
simp only [Iso.map_hom_inv_id, Action.id_hom, ModuleCat.id_apply]
|
simp only [Iso.map_hom_inv_id, Action.id_hom, ModuleCat.id_apply]
|
||||||
|
|
||||||
lemma perm_eq_iff_eq_perm {n m : ℕ} {c : Fin n → S.C} {c1 : Fin m → S.C}
|
lemma perm_eq_iff_eq_perm {n m : ℕ} {c : Fin n → S.C} {c1 : Fin m → S.C}
|
||||||
(σ : (OverColor.mk c) ⟶ (OverColor.mk c1))
|
(σ : (OverColor.mk c) ⟶ (OverColor.mk c1))
|
||||||
{t : TensorTree S c} {t2 : TensorTree S c1} :
|
{t : TensorTree S c} {t2 : TensorTree S c1} :
|
||||||
(perm σ t).tensor = t2.tensor ↔ t.tensor =
|
(perm σ t).tensor = t2.tensor ↔ t.tensor =
|
||||||
(perm (equivToHomEq (Hom.toEquiv σ).symm (fun x => Hom.toEquiv_comp_apply σ x)) t2).tensor := by
|
(perm (equivToHomEq (Hom.toEquiv σ).symm (fun x => Hom.toEquiv_comp_apply σ x)) t2).tensor := by
|
||||||
refine Iff.intro (fun h => ?_) (fun h => ?_)
|
refine Iff.intro (fun h => ?_) (fun h => ?_)
|
||||||
· simp [perm_tensor, ← h]
|
· simp [perm_tensor, ← h]
|
||||||
change _ = (S.F.map _ ≫ S.F.map _).hom _
|
change _ = (S.F.map _ ≫ S.F.map _).hom _
|
||||||
rw [← S.F.map_comp]
|
rw [← S.F.map_comp]
|
||||||
have h1 : (σ ≫ equivToHomEq (Hom.toEquiv σ).symm (fun x => Hom.toEquiv_comp_apply σ x)) = 𝟙 _ := by
|
have h1 : (σ ≫ equivToHomEq (Hom.toEquiv σ).symm
|
||||||
|
(fun x => Hom.toEquiv_comp_apply σ x)) = 𝟙 _ := by
|
||||||
apply Hom.ext
|
apply Hom.ext
|
||||||
ext x
|
ext x
|
||||||
change (Hom.toEquiv σ).symm ((Hom.toEquiv σ) x) = x
|
change (Hom.toEquiv σ).symm ((Hom.toEquiv σ) x) = x
|
||||||
|
@ -134,7 +135,8 @@ lemma perm_eq_iff_eq_perm {n m : ℕ} {c : Fin n → S.C} {c1 : Fin m → S.C}
|
||||||
· rw [perm_tensor, h]
|
· rw [perm_tensor, h]
|
||||||
change (S.F.map _ ≫ S.F.map _).hom _ = _
|
change (S.F.map _ ≫ S.F.map _).hom _ = _
|
||||||
rw [← S.F.map_comp]
|
rw [← S.F.map_comp]
|
||||||
have h1 : (equivToHomEq (Hom.toEquiv σ).symm (fun x => Hom.toEquiv_comp_apply σ x) ≫ σ) = 𝟙 _ := by
|
have h1 : (equivToHomEq (Hom.toEquiv σ).symm
|
||||||
|
(fun x => Hom.toEquiv_comp_apply σ x) ≫ σ) = 𝟙 _ := by
|
||||||
apply Hom.ext
|
apply Hom.ext
|
||||||
ext x
|
ext x
|
||||||
change (Hom.toEquiv σ) ((Hom.toEquiv σ).symm x) = x
|
change (Hom.toEquiv σ) ((Hom.toEquiv σ).symm x) = x
|
||||||
|
|
|
@ -30,21 +30,20 @@ variable {n m : ℕ}
|
||||||
|
|
||||||
lemma perm_congr {c1 : Fin n → S.C} {c2 : Fin m → S.C} {T T' : TensorTree S c1}
|
lemma perm_congr {c1 : Fin n → S.C} {c2 : Fin m → S.C} {T T' : TensorTree S c1}
|
||||||
{σ σ' : OverColor.mk c1 ⟶ OverColor.mk c2}
|
{σ σ' : OverColor.mk c1 ⟶ OverColor.mk c2}
|
||||||
(h : σ = σ') (hT : T.tensor = T'.tensor):
|
(h : σ = σ') (hT : T.tensor = T'.tensor) :
|
||||||
(perm σ T).tensor = (perm σ' T').tensor := by
|
(perm σ T).tensor = (perm σ' T').tensor := by
|
||||||
rw [h]
|
rw [h]
|
||||||
simp only [perm_tensor, hT]
|
simp only [perm_tensor, hT]
|
||||||
|
|
||||||
lemma perm_update {c1 : Fin n → S.C} {c2 : Fin m → S.C} {T : TensorTree S c1}
|
lemma perm_update {c1 : Fin n → S.C} {c2 : Fin m → S.C} {T : TensorTree S c1}
|
||||||
{σ : OverColor.mk c1 ⟶ OverColor.mk c2} (σ' : OverColor.mk c1 ⟶ OverColor.mk c2)
|
{σ : OverColor.mk c1 ⟶ OverColor.mk c2} (σ' : OverColor.mk c1 ⟶ OverColor.mk c2)
|
||||||
(h : σ = σ') :
|
(h : σ = σ') :
|
||||||
(perm σ T).tensor = (perm σ' T).tensor := by rw [h]
|
(perm σ T).tensor = (perm σ' T).tensor := by rw [h]
|
||||||
|
|
||||||
lemma contr_congr {n : ℕ} {c : Fin n.succ.succ → S.C} {i : Fin n.succ.succ}
|
lemma contr_congr {n : ℕ} {c : Fin n.succ.succ → S.C} {i : Fin n.succ.succ}
|
||||||
(i' : Fin n.succ.succ) {j : Fin n.succ} (j' : Fin n.succ)
|
(i' : Fin n.succ.succ) {j : Fin n.succ} (j' : Fin n.succ){h : c (i.succAbove j) = S.τ (c i)}
|
||||||
{h : c (i.succAbove j) = S.τ (c i)} {t : TensorTree S c}
|
{t : TensorTree S c} (hi : i = i' := by decide) (hj : j = j' := by decide) :
|
||||||
(hi : i = i' := by decide) (hj : j = j' := by decide)
|
(contr i j h t).tensor =
|
||||||
:(contr i j h t).tensor =
|
|
||||||
(perm (mkIso (by rw [hi, hj])).hom (contr i' j' (by rw [← hi, ← hj, h]) t)).tensor := by
|
(perm (mkIso (by rw [hi, hj])).hom (contr i' j' (by rw [← hi, ← hj, h]) t)).tensor := by
|
||||||
subst hi
|
subst hi
|
||||||
subst hj
|
subst hj
|
||||||
|
|
|
@ -285,15 +285,13 @@ def contrContrPerm {n : ℕ} {c : Fin n.succ.succ.succ.succ → S.C} {i : Fin n.
|
||||||
{j : Fin n.succ.succ.succ} {k : Fin n.succ.succ} {l : Fin n.succ}
|
{j : Fin n.succ.succ.succ} {k : Fin n.succ.succ} {l : Fin n.succ}
|
||||||
(hij : c (i.succAbove j) = S.τ (c i)) (hkl : (c ∘ i.succAbove ∘ j.succAbove) (k.succAbove l) =
|
(hij : c (i.succAbove j) = S.τ (c i)) (hkl : (c ∘ i.succAbove ∘ j.succAbove) (k.succAbove l) =
|
||||||
S.τ ((c ∘ i.succAbove ∘ j.succAbove) k)) :
|
S.τ ((c ∘ i.succAbove ∘ j.succAbove) k)) :
|
||||||
OverColor.mk
|
OverColor.mk ((c ∘ (ContrQuartet.mk i j k l hij hkl).swapI.succAbove ∘
|
||||||
((c ∘
|
(ContrQuartet.mk i j k l hij hkl).swapJ.succAbove) ∘
|
||||||
(ContrQuartet.mk i j k l hij hkl).swapI.succAbove ∘
|
|
||||||
(ContrQuartet.mk i j k l hij hkl).swapJ.succAbove) ∘
|
|
||||||
(ContrQuartet.mk i j k l hij hkl).swapK.succAbove ∘
|
(ContrQuartet.mk i j k l hij hkl).swapK.succAbove ∘
|
||||||
(ContrQuartet.mk i j k l hij hkl).swapL.succAbove) ⟶
|
(ContrQuartet.mk i j k l hij hkl).swapL.succAbove) ⟶
|
||||||
OverColor.mk
|
OverColor.mk
|
||||||
((c ∘ i.succAbove ∘ j.succAbove) ∘ k.succAbove ∘ l.succAbove)
|
((c ∘ i.succAbove ∘ j.succAbove) ∘ k.succAbove ∘ l.succAbove) :=
|
||||||
:= (ContrQuartet.mk i j k l hij hkl).contrSwapHom
|
(ContrQuartet.mk i j k l hij hkl).contrSwapHom
|
||||||
|
|
||||||
/-- Contraction nodes commute on adjusting indices. -/
|
/-- Contraction nodes commute on adjusting indices. -/
|
||||||
theorem contr_contr {n : ℕ} {c : Fin n.succ.succ.succ.succ → S.C} {i : Fin n.succ.succ.succ.succ}
|
theorem contr_contr {n : ℕ} {c : Fin n.succ.succ.succ.succ → S.C} {i : Fin n.succ.succ.succ.succ}
|
||||||
|
|
|
@ -264,8 +264,8 @@ lemma perm_contr_congr_mkIso_cond {n : ℕ} {c : Fin n.succ.succ → S.C} {c1 :
|
||||||
{i' : Fin n.succ.succ} {j' : Fin n.succ}
|
{i' : Fin n.succ.succ} {j' : Fin n.succ}
|
||||||
(hi : i' = ((Hom.toEquiv σ).symm i))
|
(hi : i' = ((Hom.toEquiv σ).symm i))
|
||||||
(hj : j' = (((Hom.toEquiv (extractOne i σ))).symm j)) :
|
(hj : j' = (((Hom.toEquiv (extractOne i σ))).symm j)) :
|
||||||
c ∘ i'.succAbove ∘ j'.succAbove =
|
c ∘ i'.succAbove ∘ j'.succAbove = c ∘ Fin.succAbove ((Hom.toEquiv σ).symm i) ∘
|
||||||
c ∘ Fin.succAbove ((Hom.toEquiv σ).symm i) ∘ Fin.succAbove ((Hom.toEquiv (extractOne i σ)).symm j) := by
|
Fin.succAbove ((Hom.toEquiv (extractOne i σ)).symm j) := by
|
||||||
rw [hi, hj]
|
rw [hi, hj]
|
||||||
|
|
||||||
lemma perm_contr_congr_contr_cond {n : ℕ} {c : Fin n.succ.succ → S.C} {c1 : Fin n.succ.succ → S.C}
|
lemma perm_contr_congr_contr_cond {n : ℕ} {c : Fin n.succ.succ → S.C} {c1 : Fin n.succ.succ → S.C}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue