feat: add contract of Pauli matrices
This commit is contained in:
parent
685c1b293c
commit
33a42c7e06
2 changed files with 33 additions and 5 deletions
|
@ -327,6 +327,14 @@ lemma pauliMatrix_contr_down_1 : (contr 0 1 rfl
|
||||||
funext k
|
funext k
|
||||||
fin_cases k <;> rfl
|
fin_cases k <;> rfl
|
||||||
|
|
||||||
|
lemma pauliMatrix_contr_down_1_tree : (contr 0 1 rfl
|
||||||
|
(((tensorNode (basisVector ![Color.down, Color.down] fun x => 1)).prod
|
||||||
|
(constThreeNodeE complexLorentzTensor Color.up Color.upL Color.upR
|
||||||
|
PauliMatrix.asConsTensor)))).tensor
|
||||||
|
= (TensorTree.add (tensorNode (basisVector pauliMatrixLowerMap (fun | 0 => 1 | 1 => 0 | 2 => 1)))
|
||||||
|
(tensorNode (basisVector pauliMatrixLowerMap (fun | 0 => 1 | 1 => 1 | 2 => 0)))).tensor := by
|
||||||
|
exact pauliMatrix_contr_down_1
|
||||||
|
|
||||||
lemma pauliMatrix_contr_down_2 : (contr 0 1 rfl
|
lemma pauliMatrix_contr_down_2 : (contr 0 1 rfl
|
||||||
(((tensorNode (basisVector ![Color.down, Color.down] fun x => 2)).prod
|
(((tensorNode (basisVector ![Color.down, Color.down] fun x => 2)).prod
|
||||||
(constThreeNodeE complexLorentzTensor Color.up Color.upL Color.upR
|
(constThreeNodeE complexLorentzTensor Color.up Color.upL Color.upR
|
||||||
|
@ -865,7 +873,6 @@ lemma pauliMatrix_contr_lower_3_1_1 : (contr 0 2 rfl
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/-
|
|
||||||
lemma pauliMatrix_lower :
|
lemma pauliMatrix_lower :
|
||||||
{Lorentz.coMetric | μ ν ⊗ PauliMatrix.asConsTensor | μ α β}ᵀ.tensor
|
{Lorentz.coMetric | μ ν ⊗ PauliMatrix.asConsTensor | μ α β}ᵀ.tensor
|
||||||
= basisVector pauliMatrixLowerMap (fun | 0 => 0 | 1 => 0 | 2 => 0)
|
= basisVector pauliMatrixLowerMap (fun | 0 => 0 | 1 => 0 | 2 => 0)
|
||||||
|
@ -877,9 +884,26 @@ lemma pauliMatrix_lower :
|
||||||
+ basisVector pauliMatrixLowerMap (fun | 0 => 3 | 1 => 0 | 2 => 0)
|
+ basisVector pauliMatrixLowerMap (fun | 0 => 3 | 1 => 0 | 2 => 0)
|
||||||
- basisVector pauliMatrixLowerMap (fun | 0 => 3 | 1 => 1 | 2 => 1) := by
|
- basisVector pauliMatrixLowerMap (fun | 0 => 3 | 1 => 1 | 2 => 1) := by
|
||||||
rw [contr_tensor_eq <| prod_tensor_eq_fst <| coMetric_basis_expand_tree]
|
rw [contr_tensor_eq <| prod_tensor_eq_fst <| coMetric_basis_expand_tree]
|
||||||
rw [contr_tensor_eq <| prod_tensor_eq_snd <| pauliMatrix_basis_expand_tree]
|
/- Moving the prod through additions. -/
|
||||||
|
rw [contr_tensor_eq <| add_prod _ _ _]
|
||||||
sorry -/
|
rw [contr_tensor_eq <| add_tensor_eq_snd <| add_prod _ _ _]
|
||||||
|
rw [contr_tensor_eq <| add_tensor_eq_snd <| add_tensor_eq_snd <| add_prod _ _ _]
|
||||||
|
/- Moving the prod through smuls. -/
|
||||||
|
rw [contr_tensor_eq <| add_tensor_eq_snd <| add_tensor_eq_fst <| smul_prod _ _ _]
|
||||||
|
rw [contr_tensor_eq <| add_tensor_eq_snd <| add_tensor_eq_snd <| add_tensor_eq_fst
|
||||||
|
<| smul_prod _ _ _]
|
||||||
|
rw [contr_tensor_eq <| add_tensor_eq_snd <| add_tensor_eq_snd <| add_tensor_eq_snd
|
||||||
|
<| smul_prod _ _ _]
|
||||||
|
/- Moving contraction through addition. -/
|
||||||
|
rw [contr_add]
|
||||||
|
rw [add_tensor_eq_snd <| contr_add _ _]
|
||||||
|
rw [add_tensor_eq_snd <| add_tensor_eq_snd <| contr_add _ _]
|
||||||
|
/- Moving contraction through smul. -/
|
||||||
|
rw [add_tensor_eq_snd <| add_tensor_eq_fst <| contr_smul _ _]
|
||||||
|
rw [add_tensor_eq_snd <| add_tensor_eq_snd <| add_tensor_eq_fst <| contr_smul _ _]
|
||||||
|
rw [add_tensor_eq_snd <| add_tensor_eq_snd <| add_tensor_eq_snd <| contr_smul _ _]
|
||||||
|
/- Replacing the contractions. -/
|
||||||
|
sorry
|
||||||
|
|
||||||
|
|
||||||
lemma pauliMatrix_contract_pauliMatrix :
|
lemma pauliMatrix_contract_pauliMatrix :
|
||||||
|
@ -888,7 +912,7 @@ lemma pauliMatrix_contract_pauliMatrix :
|
||||||
- basisVector pauliMatrixContrPauliMatrixMap (fun | 0 => 0 | 1 => 1 | 2 => 1 | 3 => 0)
|
- basisVector pauliMatrixContrPauliMatrixMap (fun | 0 => 0 | 1 => 1 | 2 => 1 | 3 => 0)
|
||||||
- basisVector pauliMatrixContrPauliMatrixMap (fun | 0 => 1 | 1 => 0 | 2 => 0 | 3 => 1)
|
- basisVector pauliMatrixContrPauliMatrixMap (fun | 0 => 1 | 1 => 0 | 2 => 0 | 3 => 1)
|
||||||
+ basisVector pauliMatrixContrPauliMatrixMap (fun | 0 => 1 | 1 => 0 | 2 => 1 | 3 => 0) := by
|
+ basisVector pauliMatrixContrPauliMatrixMap (fun | 0 => 1 | 1 => 0 | 2 => 1 | 3 => 0) := by
|
||||||
|
sorry
|
||||||
end Fermion
|
end Fermion
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -744,6 +744,10 @@ lemma smul_tensor_eq {T1 T2 : TensorTree S c} {a : S.k} (h : T1.tensor = T2.tens
|
||||||
simp only [smul_tensor]
|
simp only [smul_tensor]
|
||||||
rw [h]
|
rw [h]
|
||||||
|
|
||||||
|
lemma eq_tensorNode_of_eq_tensor {T1 : TensorTree S c} {t : S.F.obj (OverColor.mk c)}
|
||||||
|
(h : T1.tensor = t) : T1.tensor = (tensorNode t).tensor := by
|
||||||
|
simpa using h
|
||||||
|
|
||||||
/-- A structure containing a pair of indices (i, j) to be contracted in a tensor.
|
/-- A structure containing a pair of indices (i, j) to be contracted in a tensor.
|
||||||
This is used in some proofs of node identities for tensor trees. -/
|
This is used in some proofs of node identities for tensor trees. -/
|
||||||
structure ContrPair {n : ℕ} (c : Fin n.succ.succ → S.C) where
|
structure ContrPair {n : ℕ} (c : Fin n.succ.succ → S.C) where
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue