PhysLean/HepLean/PerturbationTheory/FieldOpAlgebra/SuperCommute.lean

518 lines
21 KiB
Text
Raw Normal View History

/-
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
2025-02-03 12:12:36 +00:00
import HepLean.PerturbationTheory.FieldOpFreeAlgebra.TimeOrder
import HepLean.PerturbationTheory.FieldOpAlgebra.Basic
/-!
# SuperCommute on Field operator algebra
-/
namespace FieldSpecification
2025-02-03 11:05:43 +00:00
open FieldOpFreeAlgebra
open HepLean.List
open FieldStatistic
namespace FieldOpAlgebra
variable {𝓕 : FieldSpecification}
2025-02-03 11:05:43 +00:00
lemma ι_superCommuteF_eq_zero_of_ι_right_zero (a b : 𝓕.FieldOpFreeAlgebra) (h : ι b = 0) :
ι [a, b]ₛca = 0 := by
rw [superCommuteF_expand_bosonicProj_fermionicProj]
rw [ι_eq_zero_iff_ι_bosonicProj_fermonicProj_zero] at h
simp_all
2025-02-03 11:05:43 +00:00
lemma ι_superCommuteF_eq_zero_of_ι_left_zero (a b : 𝓕.FieldOpFreeAlgebra) (h : ι a = 0) :
ι [a, b]ₛca = 0 := by
rw [superCommuteF_expand_bosonicProj_fermionicProj]
rw [ι_eq_zero_iff_ι_bosonicProj_fermonicProj_zero] at h
simp_all
/-!
## Defining normal order for `FiedOpAlgebra`.
-/
2025-02-03 11:05:43 +00:00
lemma ι_superCommuteF_right_zero_of_mem_ideal (a b : 𝓕.FieldOpFreeAlgebra)
(h : b ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) : ι [a, b]ₛca = 0 := by
apply ι_superCommuteF_eq_zero_of_ι_right_zero
exact (ι_eq_zero_iff_mem_ideal b).mpr h
2025-02-03 11:05:43 +00:00
lemma ι_superCommuteF_eq_of_equiv_right (a b1 b2 : 𝓕.FieldOpFreeAlgebra) (h : b1 ≈ b2) :
ι [a, b1]ₛca = ι [a, b2]ₛca := by
rw [equiv_iff_sub_mem_ideal] at h
rw [LinearMap.sub_mem_ker_iff.mp]
simp only [LinearMap.mem_ker, ← map_sub]
exact ι_superCommuteF_right_zero_of_mem_ideal a (b1 - b2) h
2025-01-30 05:35:42 +00:00
/-- The super commutor on the `FieldOpAlgebra` defined as a linear map `[a,_]ₛ`. -/
2025-02-03 11:05:43 +00:00
noncomputable def superCommuteRight (a : 𝓕.FieldOpFreeAlgebra) :
2025-01-30 05:35:42 +00:00
FieldOpAlgebra 𝓕 →ₗ[] FieldOpAlgebra 𝓕 where
toFun := Quotient.lift (ι.toLinearMap ∘ₗ superCommuteF a)
(ι_superCommuteF_eq_of_equiv_right a)
map_add' x y := by
obtain ⟨x, hx⟩ := ι_surjective x
obtain ⟨y, hy⟩ := ι_surjective y
subst hx hy
rw [← map_add, ι_apply, ι_apply, ι_apply]
rw [Quotient.lift_mk, Quotient.lift_mk, Quotient.lift_mk]
simp
map_smul' c y := by
obtain ⟨y, hy⟩ := ι_surjective y
subst hy
rw [← map_smul, ι_apply, ι_apply]
simp
2025-02-03 11:05:43 +00:00
lemma superCommuteRight_apply_ι (a b : 𝓕.FieldOpFreeAlgebra) :
2025-01-30 05:35:42 +00:00
superCommuteRight a (ι b) = ι [a, b]ₛca := by rfl
2025-02-03 11:05:43 +00:00
lemma superCommuteRight_apply_quot (a b : 𝓕.FieldOpFreeAlgebra) :
2025-01-30 05:35:42 +00:00
superCommuteRight a ⟦b⟧= ι [a, b]ₛca := by rfl
2025-02-03 11:05:43 +00:00
lemma superCommuteRight_eq_of_equiv (a1 a2 : 𝓕.FieldOpFreeAlgebra) (h : a1 ≈ a2) :
superCommuteRight a1 = superCommuteRight a2 := by
rw [equiv_iff_sub_mem_ideal] at h
ext b
obtain ⟨b, rfl⟩ := ι_surjective b
have ha1b1 : (superCommuteRight (a1 - a2)) (ι b) = 0 := by
rw [superCommuteRight_apply_ι]
apply ι_superCommuteF_eq_zero_of_ι_left_zero
exact (ι_eq_zero_iff_mem_ideal (a1 - a2)).mpr h
2025-01-29 16:41:10 +00:00
simp_all only [superCommuteRight_apply_ι, map_sub, LinearMap.sub_apply]
trans ι ((superCommuteF a2) b) + 0
rw [← ha1b1]
2025-01-29 16:41:10 +00:00
simp only [add_sub_cancel]
simp
2025-01-30 05:35:42 +00:00
/-- The super commutor on the `FieldOpAlgebra`. -/
noncomputable def superCommute : FieldOpAlgebra 𝓕 →ₗ[]
FieldOpAlgebra 𝓕 →ₗ[] FieldOpAlgebra 𝓕 where
toFun := Quotient.lift superCommuteRight superCommuteRight_eq_of_equiv
map_add' x y := by
obtain ⟨x, rfl⟩ := ι_surjective x
obtain ⟨y, rfl⟩ := ι_surjective y
ext b
obtain ⟨b, rfl⟩ := ι_surjective b
rw [← map_add, ι_apply, ι_apply, ι_apply, ι_apply]
rw [Quotient.lift_mk, Quotient.lift_mk, Quotient.lift_mk]
2025-01-29 16:41:10 +00:00
simp only [LinearMap.add_apply]
rw [superCommuteRight_apply_quot, superCommuteRight_apply_quot, superCommuteRight_apply_quot]
simp
map_smul' c y := by
obtain ⟨y, rfl⟩ := ι_surjective y
ext b
obtain ⟨b, rfl⟩ := ι_surjective b
rw [← map_smul, ι_apply, ι_apply, ι_apply]
2025-01-29 16:41:10 +00:00
simp only [Quotient.lift_mk, RingHom.id_apply, LinearMap.smul_apply]
rw [superCommuteRight_apply_quot, superCommuteRight_apply_quot]
simp
@[inherit_doc superCommute]
scoped[FieldSpecification.FieldOpAlgebra] notation "[" a "," b "]ₛ" => superCommute a b
2025-02-03 11:05:43 +00:00
lemma superCommute_eq_ι_superCommuteF (a b : 𝓕.FieldOpFreeAlgebra) :
2025-01-30 06:21:11 +00:00
[ι a, ι b]ₛ = ι [a, b]ₛca := rfl
2025-01-30 07:16:19 +00:00
/-!
## Properties of `superCommute`.
-/
/-!
## Properties from the definition of FieldOpAlgebra
-/
2025-02-03 11:28:14 +00:00
lemma superCommute_create_create {φ φ' : 𝓕.CrAnFieldOp}
2025-01-30 07:16:19 +00:00
(h : 𝓕 |>ᶜ φ = .create) (h' : 𝓕 |>ᶜ φ' = .create) :
[ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ = 0 := by
rw [ofCrAnFieldOp, ofCrAnFieldOp]
rw [superCommute_eq_ι_superCommuteF, ι_superCommuteF_of_create_create _ _ h h']
2025-02-03 11:28:14 +00:00
lemma superCommute_annihilate_annihilate {φ φ' : 𝓕.CrAnFieldOp}
2025-01-30 07:16:19 +00:00
(h : 𝓕 |>ᶜ φ = .annihilate) (h' : 𝓕 |>ᶜ φ' = .annihilate) :
[ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ = 0 := by
rw [ofCrAnFieldOp, ofCrAnFieldOp]
rw [superCommute_eq_ι_superCommuteF, ι_superCommuteF_of_annihilate_annihilate _ _ h h']
2025-02-03 11:28:14 +00:00
lemma superCommute_diff_statistic {φ φ' : 𝓕.CrAnFieldOp} (h : (𝓕 |>ₛ φ) ≠ 𝓕 |>ₛ φ') :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ = 0 := by
rw [ofCrAnFieldOp, ofCrAnFieldOp]
rw [superCommute_eq_ι_superCommuteF, ι_superCommuteF_of_diff_statistic h]
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofFieldOp_diff_stat_zero (φ : 𝓕.CrAnFieldOp) (ψ : 𝓕.FieldOp)
2025-01-30 11:00:25 +00:00
(h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : [ofCrAnFieldOp φ, ofFieldOp ψ]ₛ = 0 := by
rw [ofFieldOp_eq_sum, map_sum]
rw [Finset.sum_eq_zero]
intro x hx
apply superCommute_diff_statistic
simpa [crAnStatistics] using h
2025-02-03 11:28:14 +00:00
lemma superCommute_anPart_ofFieldOpF_diff_grade_zero (φ ψ : 𝓕.FieldOp)
2025-01-30 11:00:25 +00:00
(h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : [anPart φ, ofFieldOp ψ]ₛ = 0 := by
match φ with
2025-02-03 11:28:14 +00:00
| FieldOp.inAsymp _ =>
2025-01-30 11:00:25 +00:00
simp
2025-02-03 11:28:14 +00:00
| FieldOp.position φ =>
2025-01-30 11:00:25 +00:00
simp only [anPartF_position]
apply superCommute_ofCrAnFieldOp_ofFieldOp_diff_stat_zero _ _ _
simpa [crAnStatistics] using h
2025-02-03 11:28:14 +00:00
| FieldOp.outAsymp _ =>
2025-01-30 11:00:25 +00:00
simp only [anPartF_posAsymp]
apply superCommute_ofCrAnFieldOp_ofFieldOp_diff_stat_zero _ _
simpa [crAnStatistics] using h
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofCrAnFieldOp_mem_center (φ φ' : 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ ∈ Subalgebra.center (FieldOpAlgebra 𝓕) := by
rw [ofCrAnFieldOp, ofCrAnFieldOp, superCommute_eq_ι_superCommuteF]
exact ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_mem_center φ φ'
2025-01-30 07:16:19 +00:00
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofCrAnFieldOp_commute (φ φ' : 𝓕.CrAnFieldOp)
2025-01-30 11:08:10 +00:00
(a : FieldOpAlgebra 𝓕) :
a * [ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ = [ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ * a := by
2025-01-30 11:00:25 +00:00
have h1 := superCommute_ofCrAnFieldOp_ofCrAnFieldOp_mem_center φ φ'
rw [@Subalgebra.mem_center_iff] at h1
exact h1 a
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofFieldOp_mem_center (φ : 𝓕.CrAnFieldOp) (φ' : 𝓕.FieldOp) :
2025-01-30 11:00:25 +00:00
[ofCrAnFieldOp φ, ofFieldOp φ']ₛ ∈ Subalgebra.center (FieldOpAlgebra 𝓕) := by
rw [ofFieldOp_eq_sum]
2025-01-30 11:08:10 +00:00
simp only [map_sum]
2025-01-30 11:00:25 +00:00
refine Subalgebra.sum_mem (Subalgebra.center 𝓕.FieldOpAlgebra) ?_
intro x hx
exact superCommute_ofCrAnFieldOp_ofCrAnFieldOp_mem_center φ ⟨φ', x⟩
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofFieldOp_commute (φ : 𝓕.CrAnFieldOp) (φ' : 𝓕.FieldOp)
2025-01-30 11:00:25 +00:00
(a : FieldOpAlgebra 𝓕) : a * [ofCrAnFieldOp φ, ofFieldOp φ']ₛ =
[ofCrAnFieldOp φ, ofFieldOp φ']ₛ * a := by
have h1 := superCommute_ofCrAnFieldOp_ofFieldOp_mem_center φ φ'
rw [@Subalgebra.mem_center_iff] at h1
exact h1 a
2025-02-03 11:28:14 +00:00
lemma superCommute_anPart_ofFieldOp_mem_center (φ φ' : 𝓕.FieldOp) :
2025-01-30 11:00:25 +00:00
[anPart φ, ofFieldOp φ']ₛ ∈ Subalgebra.center (FieldOpAlgebra 𝓕) := by
match φ with
2025-02-03 11:28:14 +00:00
| FieldOp.inAsymp _ =>
2025-01-30 11:00:25 +00:00
simp only [anPart_negAsymp, map_zero, LinearMap.zero_apply]
exact Subalgebra.zero_mem (Subalgebra.center _)
2025-02-03 11:28:14 +00:00
| FieldOp.position φ =>
2025-01-30 11:00:25 +00:00
exact superCommute_ofCrAnFieldOp_ofFieldOp_mem_center _ _
2025-02-03 11:28:14 +00:00
| FieldOp.outAsymp _ =>
2025-01-30 11:00:25 +00:00
exact superCommute_ofCrAnFieldOp_ofFieldOp_mem_center _ _
2025-01-30 07:16:19 +00:00
/-!
### `superCommute` on different constructors.
-/
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOpList_ofCrAnFieldOpList (φs φs' : List 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOpList φs, ofCrAnFieldOpList φs']ₛ =
ofCrAnFieldOpList (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnFieldOpList (φs' ++ φs) := by
rw [ofCrAnFieldOpList_eq_ι_ofCrAnListF, ofCrAnFieldOpList_eq_ι_ofCrAnListF]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_ofCrAnListF_ofCrAnListF]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofCrAnFieldOp (φ φ' : 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ = ofCrAnFieldOp φ * ofCrAnFieldOp φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofCrAnFieldOp φ' * ofCrAnFieldOp φ := by
rw [ofCrAnFieldOp, ofCrAnFieldOp]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_ofCrAnOpF_ofCrAnOpF]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOpList_ofFieldOpList (φcas : List 𝓕.CrAnFieldOp)
(φs : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOpList φcas, ofFieldOpList φs]ₛ = ofCrAnFieldOpList φcas * ofFieldOpList φs -
𝓢(𝓕 |>ₛ φcas, 𝓕 |>ₛ φs) • ofFieldOpList φs * ofCrAnFieldOpList φcas := by
rw [ofCrAnFieldOpList, ofFieldOpList]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_ofCrAnListF_ofFieldOpFsList]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofFieldOpList_ofFieldOpList (φs φs' : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[ofFieldOpList φs, ofFieldOpList φs']ₛ = ofFieldOpList φs * ofFieldOpList φs' -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpList φs' * ofFieldOpList φs := by
rw [ofFieldOpList, ofFieldOpList]
2025-02-03 11:13:23 +00:00
rw [superCommute_eq_ι_superCommuteF, superCommuteF_ofFieldOpListF_ofFieldOpFsList]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofFieldOp_ofFieldOpList (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[ofFieldOp φ, ofFieldOpList φs]ₛ = ofFieldOp φ * ofFieldOpList φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpList φs * ofFieldOp φ := by
rw [ofFieldOp, ofFieldOpList]
2025-02-03 11:13:23 +00:00
rw [superCommute_eq_ι_superCommuteF, superCommuteF_ofFieldOpF_ofFieldOpFsList]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofFieldOpList_ofFieldOp (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[ofFieldOpList φs, ofFieldOp φ]ₛ = ofFieldOpList φs * ofFieldOp φ -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOp φ * ofFieldOpList φs := by
rw [ofFieldOpList, ofFieldOp]
2025-02-03 11:13:23 +00:00
rw [superCommute_eq_ι_superCommuteF, superCommuteF_ofFieldOpListF_ofFieldOpF]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_anPart_crPart (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[anPart φ, crPart φ']ₛ = anPart φ * crPart φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPart φ' * anPart φ := by
rw [anPart, crPart]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_anPartF_crPartF]
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_crPart_anPart (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[crPart φ, anPart φ']ₛ = crPart φ * anPart φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPart φ' * crPart φ := by
rw [anPart, crPart]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_crPartF_anPartF]
rfl
@[simp]
2025-02-03 11:28:14 +00:00
lemma superCommute_crPart_crPart (φ φ' : 𝓕.FieldOp) : [crPart φ, crPart φ']ₛ = 0 := by
2025-01-30 07:16:19 +00:00
match φ, φ' with
2025-02-03 11:28:14 +00:00
| FieldOp.outAsymp φ, _ =>
2025-01-30 07:16:19 +00:00
simp
2025-02-03 11:28:14 +00:00
| _, FieldOp.outAsymp φ =>
2025-01-30 07:16:19 +00:00
simp
2025-02-03 11:28:14 +00:00
| FieldOp.position φ, FieldOp.position φ' =>
2025-01-30 07:16:19 +00:00
simp only [crPart_position]
apply superCommute_create_create
· rfl
· rfl
2025-02-03 11:28:14 +00:00
| FieldOp.position φ, FieldOp.inAsymp φ' =>
2025-01-30 07:16:19 +00:00
simp only [crPart_position, crPart_negAsymp]
apply superCommute_create_create
· rfl
· rfl
2025-02-03 11:28:14 +00:00
| FieldOp.inAsymp φ, FieldOp.inAsymp φ' =>
2025-01-30 07:16:19 +00:00
simp only [crPart_negAsymp]
apply superCommute_create_create
· rfl
· rfl
2025-02-03 11:28:14 +00:00
| FieldOp.inAsymp φ, FieldOp.position φ' =>
2025-01-30 07:16:19 +00:00
simp only [crPart_negAsymp, crPart_position]
apply superCommute_create_create
· rfl
· rfl
@[simp]
2025-02-03 11:28:14 +00:00
lemma superCommute_anPart_anPart (φ φ' : 𝓕.FieldOp) : [anPart φ, anPart φ']ₛ = 0 := by
2025-01-30 07:16:19 +00:00
match φ, φ' with
2025-02-03 11:28:14 +00:00
| FieldOp.inAsymp φ, _ =>
2025-01-30 07:16:19 +00:00
simp
2025-02-03 11:28:14 +00:00
| _, FieldOp.inAsymp φ =>
2025-01-30 07:16:19 +00:00
simp
2025-02-03 11:28:14 +00:00
| FieldOp.position φ, FieldOp.position φ' =>
2025-01-30 07:16:19 +00:00
simp only [anPart_position]
apply superCommute_annihilate_annihilate
· rfl
· rfl
2025-02-03 11:28:14 +00:00
| FieldOp.position φ, FieldOp.outAsymp φ' =>
2025-01-30 07:16:19 +00:00
simp only [anPart_position, anPart_posAsymp]
apply superCommute_annihilate_annihilate
· rfl
· rfl
2025-02-03 11:28:14 +00:00
| FieldOp.outAsymp φ, FieldOp.outAsymp φ' =>
2025-01-30 07:16:19 +00:00
simp only [anPart_posAsymp]
apply superCommute_annihilate_annihilate
· rfl
· rfl
2025-02-03 11:28:14 +00:00
| FieldOp.outAsymp φ, FieldOp.position φ' =>
2025-01-30 07:16:19 +00:00
simp only [anPart_posAsymp, anPart_position]
apply superCommute_annihilate_annihilate
· rfl
· rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_crPart_ofFieldOpList (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[crPart φ, ofFieldOpList φs]ₛ = crPart φ * ofFieldOpList φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpList φs * crPart φ := by
rw [crPart, ofFieldOpList]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_crPartF_ofFieldOpListF]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_anPart_ofFieldOpList (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[anPart φ, ofFieldOpList φs]ₛ = anPart φ * ofFieldOpList φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpList φs * anPart φ := by
rw [anPart, ofFieldOpList]
rw [superCommute_eq_ι_superCommuteF, superCommuteF_anPartF_ofFieldOpListF]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_crPart_ofFieldOp (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[crPart φ, ofFieldOp φ']ₛ = crPart φ * ofFieldOp φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOp φ' * crPart φ := by
rw [crPart, ofFieldOp]
2025-02-03 11:13:23 +00:00
rw [superCommute_eq_ι_superCommuteF, superCommuteF_crPartF_ofFieldOpF]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_anPart_ofFieldOp (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
[anPart φ, ofFieldOp φ']ₛ = anPart φ * ofFieldOp φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOp φ' * anPart φ := by
rw [anPart, ofFieldOp]
2025-02-03 11:13:23 +00:00
rw [superCommute_eq_ι_superCommuteF, superCommuteF_anPartF_ofFieldOpF]
2025-01-30 07:16:19 +00:00
rfl
/-!
## Mul equal superCommute
Lemmas which rewrite a multiplication of two elements of the algebra as their commuted
multiplication with a sign plus the super commutor.
-/
2025-02-03 11:28:14 +00:00
lemma ofCrAnFieldOpList_mul_ofCrAnFieldOpList_eq_superCommute (φs φs' : List 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
ofCrAnFieldOpList φs * ofCrAnFieldOpList φs' =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnFieldOpList φs' * ofCrAnFieldOpList φs
+ [ofCrAnFieldOpList φs, ofCrAnFieldOpList φs']ₛ := by
rw [superCommute_ofCrAnFieldOpList_ofCrAnFieldOpList]
simp [ofCrAnFieldOpList_append]
2025-02-03 11:28:14 +00:00
lemma ofCrAnFieldOp_mul_ofCrAnFieldOpList_eq_superCommute (φ : 𝓕.CrAnFieldOp)
(φs' : List 𝓕.CrAnFieldOp) : ofCrAnFieldOp φ * ofCrAnFieldOpList φs' =
2025-01-30 07:16:19 +00:00
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofCrAnFieldOpList φs' * ofCrAnFieldOp φ
+ [ofCrAnFieldOp φ, ofCrAnFieldOpList φs']ₛ := by
rw [← ofCrAnFieldOpList_singleton, ofCrAnFieldOpList_mul_ofCrAnFieldOpList_eq_superCommute]
simp
2025-02-03 11:28:14 +00:00
lemma ofFieldOpList_mul_ofFieldOpList_eq_superCommute (φs φs' : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
ofFieldOpList φs * ofFieldOpList φs' =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpList φs' * ofFieldOpList φs
+ [ofFieldOpList φs, ofFieldOpList φs']ₛ := by
rw [superCommute_ofFieldOpList_ofFieldOpList]
simp
2025-02-03 11:28:14 +00:00
lemma ofFieldOp_mul_ofFieldOpList_eq_superCommute (φ : 𝓕.FieldOp) (φs' : List 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
ofFieldOp φ * ofFieldOpList φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofFieldOpList φs' * ofFieldOp φ
+ [ofFieldOp φ, ofFieldOpList φs']ₛ := by
rw [superCommute_ofFieldOp_ofFieldOpList]
simp
2025-02-03 11:28:14 +00:00
lemma ofFieldOp_mul_ofFieldOp_eq_superCommute (φ φ' : 𝓕.FieldOp) :
2025-01-30 11:00:25 +00:00
ofFieldOp φ * ofFieldOp φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOp φ' * ofFieldOp φ
+ [ofFieldOp φ, ofFieldOp φ']ₛ := by
rw [← ofFieldOpList_singleton, ← ofFieldOpList_singleton]
rw [ofFieldOpList_mul_ofFieldOpList_eq_superCommute, ofFieldOpList_singleton]
simp
2025-02-03 11:28:14 +00:00
lemma ofFieldOpList_mul_ofFieldOp_eq_superCommute (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
ofFieldOpList φs * ofFieldOp φ = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOp φ * ofFieldOpList φs
+ [ofFieldOpList φs, ofFieldOp φ]ₛ := by
rw [superCommute_ofFieldOpList_ofFieldOp]
simp
2025-02-03 11:28:14 +00:00
lemma ofCrAnFieldOpList_mul_ofFieldOpList_eq_superCommute (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : ofCrAnFieldOpList φs * ofFieldOpList φs' =
2025-01-30 07:16:19 +00:00
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpList φs' * ofCrAnFieldOpList φs
+ [ofCrAnFieldOpList φs, ofFieldOpList φs']ₛ := by
rw [superCommute_ofCrAnFieldOpList_ofFieldOpList]
simp
2025-02-03 11:28:14 +00:00
lemma crPart_mul_anPart_eq_superCommute (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
crPart φ * anPart φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPart φ' * crPart φ
+ [crPart φ, anPart φ']ₛ := by
rw [superCommute_crPart_anPart]
simp
2025-02-03 11:28:14 +00:00
lemma anPart_mul_crPart_eq_superCommute (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
anPart φ * crPart φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPart φ' * anPart φ
+ [anPart φ, crPart φ']ₛ := by
rw [superCommute_anPart_crPart]
simp
2025-02-03 11:28:14 +00:00
lemma crPart_mul_crPart_swap (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
crPart φ * crPart φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPart φ' * crPart φ := by
trans 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPart φ' * crPart φ + [crPart φ, crPart φ']ₛ
· rw [crPart, crPart, superCommute_eq_ι_superCommuteF, superCommuteF_crPartF_crPartF]
simp
· simp
2025-02-03 11:28:14 +00:00
lemma anPart_mul_anPart_swap (φ φ' : 𝓕.FieldOp) :
2025-01-30 07:16:19 +00:00
anPart φ * anPart φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPart φ' * anPart φ := by
trans 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPart φ' * anPart φ + [anPart φ, anPart φ']ₛ
· rw [anPart, anPart, superCommute_eq_ι_superCommuteF, superCommuteF_anPartF_anPartF]
simp
· simp
/-!
## Symmetry of the super commutor.
-/
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOpList_ofCrAnFieldOpList_symm (φs φs' : List 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOpList φs, ofCrAnFieldOpList φs']ₛ =
(- 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs')) • [ofCrAnFieldOpList φs', ofCrAnFieldOpList φs]ₛ := by
rw [ofCrAnFieldOpList, ofCrAnFieldOpList, superCommute_eq_ι_superCommuteF,
superCommuteF_ofCrAnListF_ofCrAnListF_symm]
2025-01-30 07:16:19 +00:00
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofCrAnFieldOp_symm (φ φ' : 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOp φ, ofCrAnFieldOp φ']ₛ =
(- 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ')) • [ofCrAnFieldOp φ', ofCrAnFieldOp φ]ₛ := by
rw [ofCrAnFieldOp, ofCrAnFieldOp, superCommute_eq_ι_superCommuteF,
superCommuteF_ofCrAnOpF_ofCrAnOpF_symm]
2025-01-30 07:16:19 +00:00
rfl
/-!
## splitting the super commute into sums
-/
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOpList_ofCrAnFieldOpList_eq_sum (φs φs' : List 𝓕.CrAnFieldOp) :
2025-01-30 07:16:19 +00:00
[ofCrAnFieldOpList φs, ofCrAnFieldOpList φs']ₛ =
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) •
ofCrAnFieldOpList (φs'.take n) * [ofCrAnFieldOpList φs, ofCrAnFieldOp (φs'.get n)]ₛ *
ofCrAnFieldOpList (φs'.drop (n + 1)) := by
conv_lhs =>
rw [ofCrAnFieldOpList, ofCrAnFieldOpList, superCommute_eq_ι_superCommuteF,
superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum]
2025-01-30 07:16:19 +00:00
rw [map_sum]
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofCrAnFieldOpList_eq_sum (φ : 𝓕.CrAnFieldOp)
(φs' : List 𝓕.CrAnFieldOp) : [ofCrAnFieldOp φ, ofCrAnFieldOpList φs']ₛ =
2025-01-30 11:00:25 +00:00
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs'.take n) •
[ofCrAnFieldOp φ, ofCrAnFieldOp (φs'.get n)]ₛ * ofCrAnFieldOpList (φs'.eraseIdx n) := by
conv_lhs =>
rw [← ofCrAnFieldOpList_singleton, superCommute_ofCrAnFieldOpList_ofCrAnFieldOpList_eq_sum]
congr
funext n
2025-01-30 11:08:10 +00:00
simp only [instCommGroup.eq_1, ofList_singleton, List.get_eq_getElem, Algebra.smul_mul_assoc]
2025-01-30 11:00:25 +00:00
congr 1
rw [ofCrAnFieldOpList_singleton, superCommute_ofCrAnFieldOp_ofCrAnFieldOp_commute]
rw [mul_assoc, ← ofCrAnFieldOpList_append]
congr
exact Eq.symm (List.eraseIdx_eq_take_drop_succ φs' ↑n)
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOpList_ofFieldOpList_eq_sum (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : [ofCrAnFieldOpList φs, ofFieldOpList φs']ₛ =
2025-01-30 07:16:19 +00:00
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) •
ofFieldOpList (φs'.take n) * [ofCrAnFieldOpList φs, ofFieldOp (φs'.get n)]ₛ *
ofFieldOpList (φs'.drop (n + 1)) := by
conv_lhs =>
rw [ofCrAnFieldOpList, ofFieldOpList, superCommute_eq_ι_superCommuteF,
superCommuteF_ofCrAnListF_ofFieldOpListF_eq_sum]
2025-01-30 07:16:19 +00:00
rw [map_sum]
rfl
2025-02-03 11:28:14 +00:00
lemma superCommute_ofCrAnFieldOp_ofFieldOpList_eq_sum (φ : 𝓕.CrAnFieldOp) (φs' : List 𝓕.FieldOp) :
2025-01-30 11:00:25 +00:00
[ofCrAnFieldOp φ, ofFieldOpList φs']ₛ =
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs'.take n) •
[ofCrAnFieldOp φ, ofFieldOp (φs'.get n)]ₛ * ofFieldOpList (φs'.eraseIdx n) := by
conv_lhs =>
rw [← ofCrAnFieldOpList_singleton, superCommute_ofCrAnFieldOpList_ofFieldOpList_eq_sum]
congr
funext n
2025-01-30 11:08:10 +00:00
simp only [instCommGroup.eq_1, ofList_singleton, List.get_eq_getElem, Algebra.smul_mul_assoc]
2025-01-30 11:00:25 +00:00
congr 1
rw [ofCrAnFieldOpList_singleton, superCommute_ofCrAnFieldOp_ofFieldOp_commute]
rw [mul_assoc, ← ofFieldOpList_append]
congr
exact Eq.symm (List.eraseIdx_eq_take_drop_succ φs' ↑n)
2025-01-30 07:16:19 +00:00
end FieldOpAlgebra
end FieldSpecification