refactor: Update supercommute notation

This commit is contained in:
jstoobysmith 2025-02-13 10:44:15 +00:00
parent d2ce55ddd0
commit 82fae67ba3
12 changed files with 197 additions and 188 deletions

View file

@ -24,24 +24,24 @@ variable (𝓕 : FieldSpecification)
def fieldOpIdealSet : Set (FieldOpFreeAlgebra 𝓕) := def fieldOpIdealSet : Set (FieldOpFreeAlgebra 𝓕) :=
{ x | { x |
(∃ (φ1 φ2 φ3 : 𝓕.CrAnFieldOp), (∃ (φ1 φ2 φ3 : 𝓕.CrAnFieldOp),
x = [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) x = [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF)
(∃ (φc φc' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φc = .create) (_ : 𝓕 |>ᶜ φc' = .create), (∃ (φc φc' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φc = .create) (_ : 𝓕 |>ᶜ φc' = .create),
x = [ofCrAnOpF φc, ofCrAnOpF φc']ₛca) x = [ofCrAnOpF φc, ofCrAnOpF φc']ₛF)
(∃ (φa φa' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φa = .annihilate) (_ : 𝓕 |>ᶜ φa' = .annihilate), (∃ (φa φa' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φa = .annihilate) (_ : 𝓕 |>ᶜ φa' = .annihilate),
x = [ofCrAnOpF φa, ofCrAnOpF φa']ₛca) x = [ofCrAnOpF φa, ofCrAnOpF φa']ₛF)
(∃ (φ φ' : 𝓕.CrAnFieldOp) (_ : ¬ (𝓕 |>ₛ φ) = (𝓕 |>ₛ φ')), (∃ (φ φ' : 𝓕.CrAnFieldOp) (_ : ¬ (𝓕 |>ₛ φ) = (𝓕 |>ₛ φ')),
x = [ofCrAnOpF φ, ofCrAnOpF φ']ₛca)} x = [ofCrAnOpF φ, ofCrAnOpF φ']ₛF)}
/-- For a field specification `𝓕`, the algebra `𝓕.FieldOpAlgebra` is defined as the quotient /-- For a field specification `𝓕`, the algebra `𝓕.FieldOpAlgebra` is defined as the quotient
of the free algebra `𝓕.FieldOpFreeAlgebra` by the ideal generated by of the free algebra `𝓕.FieldOpFreeAlgebra` by the ideal generated by
- `[ofCrAnOpF φc, ofCrAnOpF φc']ₛca` for `φc` and `φc'` field creation operators. - `[ofCrAnOpF φc, ofCrAnOpF φc']ₛF` for `φc` and `φc'` field creation operators.
This corresponds to the condition that two creation operators always super-commute. This corresponds to the condition that two creation operators always super-commute.
- `[ofCrAnOpF φa, ofCrAnOpF φa']ₛca` for `φa` and `φa'` field annihilation operators. - `[ofCrAnOpF φa, ofCrAnOpF φa']ₛF` for `φa` and `φa'` field annihilation operators.
This corresponds to the condition that two annihilation operators always super-commute. This corresponds to the condition that two annihilation operators always super-commute.
- `[ofCrAnOpF φ, ofCrAnOpF φ']ₛca` for `φ` and `φ'` operators with different statistics. - `[ofCrAnOpF φ, ofCrAnOpF φ']ₛF` for `φ` and `φ'` operators with different statistics.
This corresponds to the condition that two operators with different statistics always This corresponds to the condition that two operators with different statistics always
super-commute. In other words, fermions and bosons always super-commute. super-commute. In other words, fermions and bosons always super-commute.
- `[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca`. This corresponds to the condition, - `[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF`. This corresponds to the condition,
when combined with the conditions above, that the super-commutator is in the center when combined with the conditions above, that the super-commutator is in the center
of the algebra. of the algebra.
-/ -/
@ -70,7 +70,7 @@ lemma equiv_iff_exists_add (x y : FieldOpFreeAlgebra 𝓕) :
rw [equiv_iff_sub_mem_ideal] rw [equiv_iff_sub_mem_ideal]
simp [ha] simp [ha]
/-- For a field specification `𝓕`, the projection /-- For a field specification `𝓕`, `ι` is defined as the projection
`𝓕.FieldOpFreeAlgebra →ₐ[] FieldOpAlgebra 𝓕` `𝓕.FieldOpFreeAlgebra →ₐ[] FieldOpAlgebra 𝓕`
@ -100,7 +100,7 @@ lemma ι_of_mem_fieldOpIdealSet (x : FieldOpFreeAlgebra 𝓕) (hx : x ∈ 𝓕.f
simpa using hx simpa using hx
lemma ι_superCommuteF_of_create_create (φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = .create) lemma ι_superCommuteF_of_create_create (φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = .create)
(hφc' : 𝓕 |>ᶜ φc' = .create) : ι [ofCrAnOpF φc, ofCrAnOpF φc']ₛca = 0 := by (hφc' : 𝓕 |>ᶜ φc' = .create) : ι [ofCrAnOpF φc, ofCrAnOpF φc']ₛF = 0 := by
apply ι_of_mem_fieldOpIdealSet apply ι_of_mem_fieldOpIdealSet
simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq] simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq]
simp only [exists_prop] simp only [exists_prop]
@ -110,7 +110,7 @@ lemma ι_superCommuteF_of_create_create (φc φc' : 𝓕.CrAnFieldOp) (hφc :
lemma ι_superCommuteF_of_annihilate_annihilate (φa φa' : 𝓕.CrAnFieldOp) lemma ι_superCommuteF_of_annihilate_annihilate (φa φa' : 𝓕.CrAnFieldOp)
(hφa : 𝓕 |>ᶜ φa = .annihilate) (hφa' : 𝓕 |>ᶜ φa' = .annihilate) : (hφa : 𝓕 |>ᶜ φa = .annihilate) (hφa' : 𝓕 |>ᶜ φa' = .annihilate) :
ι [ofCrAnOpF φa, ofCrAnOpF φa']ₛca = 0 := by ι [ofCrAnOpF φa, ofCrAnOpF φa']ₛF = 0 := by
apply ι_of_mem_fieldOpIdealSet apply ι_of_mem_fieldOpIdealSet
simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq] simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq]
simp only [exists_prop] simp only [exists_prop]
@ -120,7 +120,7 @@ lemma ι_superCommuteF_of_annihilate_annihilate (φa φa' : 𝓕.CrAnFieldOp)
use φa, φa', hφa, hφa' use φa, φa', hφa, hφa'
lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp} lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp}
(h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by (h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by
apply ι_of_mem_fieldOpIdealSet apply ι_of_mem_fieldOpIdealSet
simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq] simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq]
right right
@ -129,8 +129,8 @@ lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp}
use φ, ψ use φ, ψ
lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp) lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp)
(h : [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ statisticSubmodule fermionic) : (h : [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ statisticSubmodule fermionic) :
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] at h ⊢ rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] at h ⊢
rcases statistic_neq_of_superCommuteF_fermionic h with h | h rcases statistic_neq_of_superCommuteF_fermionic h with h | h
· simp only [ofCrAnListF_singleton] · simp only [ofCrAnListF_singleton]
@ -139,8 +139,8 @@ lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp)
· simp [h] · simp [h]
lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFieldOp) : lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ statisticSubmodule bosonic [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ statisticSubmodule bosonic
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [ψ] with h | h rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [ψ] with h | h
· simp_all [ofCrAnListF_singleton] · simp_all [ofCrAnListF_singleton]
· simp_all only [ofCrAnListF_singleton] · simp_all only [ofCrAnListF_singleton]
@ -155,14 +155,14 @@ lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFie
@[simp] @[simp]
lemma ι_superCommuteF_ofCrAnOpF_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) : lemma ι_superCommuteF_ofCrAnOpF_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
ι [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca = 0 := by ι [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF = 0 := by
apply ι_of_mem_fieldOpIdealSet apply ι_of_mem_fieldOpIdealSet
simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq] simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq]
left left
use φ1, φ2, φ3 use φ1, φ2, φ3
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) : lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, ofCrAnOpF φ3]ₛca = 0 := by ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, ofCrAnOpF φ3]ₛF = 0 := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h
· rw [bonsonic_superCommuteF_symm h] · rw [bonsonic_superCommuteF_symm h]
@ -175,7 +175,7 @@ lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF (φ1 φ2 : 𝓕.CrAnFieldOp) lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF (φ1 φ2 : 𝓕.CrAnFieldOp)
(φs : List 𝓕.CrAnFieldOp) : (φs : List 𝓕.CrAnFieldOp) :
ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, ofCrAnListF φs]ₛca = 0 := by ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, ofCrAnListF φs]ₛF = 0 := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h
· rw [superCommuteF_bosonic_ofCrAnListF_eq_sum _ _ h] · rw [superCommuteF_bosonic_ofCrAnListF_eq_sum _ _ h]
@ -185,27 +185,27 @@ lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF (φ1 φ2 :
@[simp] @[simp]
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_fieldOpFreeAlgebra (φ1 φ2 : 𝓕.CrAnFieldOp) lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_fieldOpFreeAlgebra (φ1 φ2 : 𝓕.CrAnFieldOp)
(a : 𝓕.FieldOpFreeAlgebra) : ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, a]ₛca = 0 := by (a : 𝓕.FieldOpFreeAlgebra) : ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, a]ₛF = 0 := by
change (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca) a = _ change (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF) a = _
have h1 : (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca) = 0 := by have h1 : (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF) = 0 := by
apply (ofCrAnListFBasis.ext fun l ↦ ?_) apply (ofCrAnListFBasis.ext fun l ↦ ?_)
simp [ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF] simp [ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF]
rw [h1] rw [h1]
simp simp
lemma ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 : 𝓕.CrAnFieldOp) lemma ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 : 𝓕.CrAnFieldOp)
(a : 𝓕.FieldOpFreeAlgebra) : ι a * ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca - (a : 𝓕.FieldOpFreeAlgebra) : ι a * ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF -
ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca * ι a = 0 := by ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF * ι a = 0 := by
rcases ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero φ1 φ2 with h | h rcases ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero φ1 φ2 with h | h
swap swap
· simp [h] · simp [h]
trans - ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, a]ₛca trans - ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, a]ₛF
· rw [bosonic_superCommuteF h] · rw [bosonic_superCommuteF h]
simp simp
· simp · simp
lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_mem_center (φ ψ : 𝓕.CrAnFieldOp) : lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_mem_center (φ ψ : 𝓕.CrAnFieldOp) :
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ Subalgebra.center 𝓕.FieldOpAlgebra := by ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ Subalgebra.center 𝓕.FieldOpAlgebra := by
rw [Subalgebra.mem_center_iff] rw [Subalgebra.mem_center_iff]
intro a intro a
obtain ⟨a, rfl⟩ := ι_surjective a obtain ⟨a, rfl⟩ := ι_surjective a

View file

@ -32,7 +32,7 @@ is zero.
lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero
(φa φa' : 𝓕.CrAnFieldOp) (φs φs' : List 𝓕.CrAnFieldOp) : (φa φa' : 𝓕.CrAnFieldOp) (φs φs' : List 𝓕.CrAnFieldOp) :
ι 𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca * ofCrAnListF φs') = 0 := by ι 𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * ofCrAnListF φs') = 0 := by
rcases CreateAnnihilate.eq_create_or_annihilate (𝓕 |>ᶜ φa) with hφa | hφa rcases CreateAnnihilate.eq_create_or_annihilate (𝓕 |>ᶜ φa) with hφa | hφa
<;> rcases CreateAnnihilate.eq_create_or_annihilate (𝓕 |>ᶜ φa') with hφa' | hφa' <;> rcases CreateAnnihilate.eq_create_or_annihilate (𝓕 |>ᶜ φa') with hφa' | hφa'
· rw [normalOrderF_superCommuteF_ofCrAnListF_create_create_ofCrAnListF φa φa' hφa hφa' φs φs'] · rw [normalOrderF_superCommuteF_ofCrAnListF_create_create_ofCrAnListF φa φa' hφa hφa' φs φs']
@ -53,27 +53,27 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero
lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero
(φa φa' : 𝓕.CrAnFieldOp) (φs : List 𝓕.CrAnFieldOp) (φa φa' : 𝓕.CrAnFieldOp) (φs : List 𝓕.CrAnFieldOp)
(a : 𝓕.FieldOpFreeAlgebra) : (a : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca * a) = 0 := by ι 𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * a) = 0 := by
have hf : ι.toLinearMap ∘ₗ normalOrderF ∘ₗ have hf : ι.toLinearMap ∘ₗ normalOrderF ∘ₗ
mulLinearMap (ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca) = 0 := by mulLinearMap (ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF) = 0 := by
apply ofCrAnListFBasis.ext apply ofCrAnListFBasis.ext
intro l intro l
simp only [FieldOpFreeAlgebra.ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply, simp only [FieldOpFreeAlgebra.ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply,
AlgHom.toLinearMap_apply, LinearMap.zero_apply] AlgHom.toLinearMap_apply, LinearMap.zero_apply]
exact ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero φa φa' φs l exact ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero φa φa' φs l
change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ
mulLinearMap ((ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca))) a = 0 mulLinearMap ((ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF))) a = 0
rw [hf] rw [hf]
simp simp
lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_eq_zero_mul (φa φa' : 𝓕.CrAnFieldOp) lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_eq_zero_mul (φa φa' : 𝓕.CrAnFieldOp)
(a b : 𝓕.FieldOpFreeAlgebra) : (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca * b) = 0 := by ι 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * b) = 0 := by
rw [mul_assoc] rw [mul_assoc]
change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ mulLinearMap.flip change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ mulLinearMap.flip
([ofCrAnOpF φa, ofCrAnOpF φa']ₛca * b)) a = 0 ([ofCrAnOpF φa, ofCrAnOpF φa']ₛF * b)) a = 0
have hf : ι.toLinearMap ∘ₗ normalOrderF ∘ₗ mulLinearMap.flip have hf : ι.toLinearMap ∘ₗ normalOrderF ∘ₗ mulLinearMap.flip
([ofCrAnOpF φa, ofCrAnOpF φa']ₛca * b) = 0 := by ([ofCrAnOpF φa, ofCrAnOpF φa']ₛF * b) = 0 := by
apply ofCrAnListFBasis.ext apply ofCrAnListFBasis.ext
intro l intro l
simp only [mulLinearMap, FieldOpFreeAlgebra.ofListBasis_eq_ofList, LinearMap.coe_comp, simp only [mulLinearMap, FieldOpFreeAlgebra.ofListBasis_eq_ofList, LinearMap.coe_comp,
@ -86,7 +86,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_eq_zero_mul (φa φa' : 𝓕.CrAnF
lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_ofCrAnListF_eq_zero_mul (φa : 𝓕.CrAnFieldOp) lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_ofCrAnListF_eq_zero_mul (φa : 𝓕.CrAnFieldOp)
(φs : List 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) : (φs : List 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnListF φs]ₛca * b) = 0 := by ι 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnListF φs]ₛF * b) = 0 := by
rw [← ofCrAnListF_singleton, superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum] rw [← ofCrAnListF_singleton, superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum]
rw [Finset.mul_sum, Finset.sum_mul] rw [Finset.mul_sum, Finset.sum_mul]
rw [map_sum, map_sum] rw [map_sum, map_sum]
@ -98,7 +98,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_ofCrAnListF_eq_zero_mul (φa :
lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnOpF_eq_zero_mul (φa : 𝓕.CrAnFieldOp) lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnOpF_eq_zero_mul (φa : 𝓕.CrAnFieldOp)
(φs : List 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) : (φs : List 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [ofCrAnListF φs, ofCrAnOpF φa]ₛca * b) = 0 := by ι 𝓝ᶠ(a * [ofCrAnListF φs, ofCrAnOpF φa]ₛF * b) = 0 := by
rw [← ofCrAnListF_singleton, superCommuteF_ofCrAnListF_ofCrAnListF_symm, ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, superCommuteF_ofCrAnListF_ofCrAnListF_symm, ofCrAnListF_singleton]
simp only [FieldStatistic.instCommGroup.eq_1, FieldStatistic.ofList_singleton, mul_neg, simp only [FieldStatistic.instCommGroup.eq_1, FieldStatistic.ofList_singleton, mul_neg,
Algebra.mul_smul_comm, neg_mul, Algebra.smul_mul_assoc, map_neg, map_smul] Algebra.mul_smul_comm, neg_mul, Algebra.smul_mul_assoc, map_neg, map_smul]
@ -107,7 +107,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnOpF_eq_zero_mul (φa :
lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero_mul lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero_mul
(φs φs' : List 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) : (φs φs' : List 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [ofCrAnListF φs, ofCrAnListF φs']ₛca * b) = 0 := by ι 𝓝ᶠ(a * [ofCrAnListF φs, ofCrAnListF φs']ₛF * b) = 0 := by
rw [superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum, Finset.mul_sum, Finset.sum_mul] rw [superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum, Finset.mul_sum, Finset.sum_mul]
rw [map_sum, map_sum] rw [map_sum, map_sum]
apply Fintype.sum_eq_zero apply Fintype.sum_eq_zero
@ -119,7 +119,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero_mul
lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero_mul lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero_mul
(φs : List 𝓕.CrAnFieldOp) (φs : List 𝓕.CrAnFieldOp)
(a b c : 𝓕.FieldOpFreeAlgebra) : (a b c : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [ofCrAnListF φs, c]ₛca * b) = 0 := by ι 𝓝ᶠ(a * [ofCrAnListF φs, c]ₛF * b) = 0 := by
change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ
mulLinearMap.flip b ∘ₗ mulLinearMap a ∘ₗ superCommuteF (ofCrAnListF φs)) c = 0 mulLinearMap.flip b ∘ₗ mulLinearMap a ∘ₗ superCommuteF (ofCrAnListF φs)) c = 0
have hf : (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ have hf : (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ
@ -135,7 +135,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero_mul
@[simp] @[simp]
lemma ι_normalOrderF_superCommuteF_eq_zero_mul lemma ι_normalOrderF_superCommuteF_eq_zero_mul
(a b c d : 𝓕.FieldOpFreeAlgebra) : ι 𝓝ᶠ(a * [d, c]ₛca * b) = 0 := by (a b c d : 𝓕.FieldOpFreeAlgebra) : ι 𝓝ᶠ(a * [d, c]ₛF * b) = 0 := by
change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ
mulLinearMap.flip b ∘ₗ mulLinearMap a ∘ₗ superCommuteF.flip c) d = 0 mulLinearMap.flip b ∘ₗ mulLinearMap a ∘ₗ superCommuteF.flip c) d = 0
have hf : (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ have hf : (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ
@ -151,25 +151,25 @@ lemma ι_normalOrderF_superCommuteF_eq_zero_mul
@[simp] @[simp]
lemma ι_normalOrder_superCommuteF_eq_zero_mul_right (b c d : 𝓕.FieldOpFreeAlgebra) : lemma ι_normalOrder_superCommuteF_eq_zero_mul_right (b c d : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ([d, c]ₛca * b) = 0 := by ι 𝓝ᶠ([d, c]ₛF * b) = 0 := by
rw [← ι_normalOrderF_superCommuteF_eq_zero_mul 1 b c d] rw [← ι_normalOrderF_superCommuteF_eq_zero_mul 1 b c d]
simp simp
@[simp] @[simp]
lemma ι_normalOrderF_superCommuteF_eq_zero_mul_left (a c d : 𝓕.FieldOpFreeAlgebra) : lemma ι_normalOrderF_superCommuteF_eq_zero_mul_left (a c d : 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [d, c]ₛca) = 0 := by ι 𝓝ᶠ(a * [d, c]ₛF) = 0 := by
rw [← ι_normalOrderF_superCommuteF_eq_zero_mul a 1 c d] rw [← ι_normalOrderF_superCommuteF_eq_zero_mul a 1 c d]
simp simp
@[simp] @[simp]
lemma ι_normalOrderF_superCommuteF_eq_zero_mul_mul_right (a b1 b2 c d: 𝓕.FieldOpFreeAlgebra) : lemma ι_normalOrderF_superCommuteF_eq_zero_mul_mul_right (a b1 b2 c d: 𝓕.FieldOpFreeAlgebra) :
ι 𝓝ᶠ(a * [d, c]ₛca * b1 * b2) = 0 := by ι 𝓝ᶠ(a * [d, c]ₛF * b1 * b2) = 0 := by
rw [← ι_normalOrderF_superCommuteF_eq_zero_mul a (b1 * b2) c d] rw [← ι_normalOrderF_superCommuteF_eq_zero_mul a (b1 * b2) c d]
congr 2 congr 2
noncomm_ring noncomm_ring
@[simp] @[simp]
lemma ι_normalOrderF_superCommuteF_eq_zero (c d : 𝓕.FieldOpFreeAlgebra) : ι 𝓝ᶠ([d, c]ₛca) = 0 := by lemma ι_normalOrderF_superCommuteF_eq_zero (c d : 𝓕.FieldOpFreeAlgebra) : ι 𝓝ᶠ([d, c]ₛF) = 0 := by
rw [← ι_normalOrderF_superCommuteF_eq_zero_mul 1 1 c d] rw [← ι_normalOrderF_superCommuteF_eq_zero_mul 1 1 c d]
simp simp

View file

@ -324,7 +324,7 @@ lemma anPart_mul_normalOrder_ofFieldOpList_eq_superCommute_reorder (φ : 𝓕.Fi
/-- /--
Within a proto-operator algebra we have that Within a proto-operator algebra we have that
`φ * 𝓝ᶠ(φ₀φ₁…φₙ) = 𝓝ᶠ(φφ₀φ₁…φₙ) + [anpart φ, 𝓝ᶠ(φ₀φ₁…φₙ)]ₛca`. `φ * 𝓝ᶠ(φ₀φ₁…φₙ) = 𝓝ᶠ(φφ₀φ₁…φₙ) + [anpart φ, 𝓝ᶠ(φ₀φ₁…φₙ)]ₛF`.
-/ -/
lemma ofFieldOp_mul_normalOrder_ofFieldOpList_eq_superCommute (φ : 𝓕.FieldOp) lemma ofFieldOp_mul_normalOrder_ofFieldOpList_eq_superCommute (φ : 𝓕.FieldOp)
(φs : List 𝓕.FieldOp) : ofFieldOp φ * 𝓝(ofFieldOpList φs) = (φs : List 𝓕.FieldOp) : ofFieldOp φ * 𝓝(ofFieldOpList φs) =

View file

@ -20,13 +20,13 @@ namespace FieldOpAlgebra
variable {𝓕 : FieldSpecification} variable {𝓕 : FieldSpecification}
lemma ι_superCommuteF_eq_zero_of_ι_right_zero (a b : 𝓕.FieldOpFreeAlgebra) (h : ι b = 0) : lemma ι_superCommuteF_eq_zero_of_ι_right_zero (a b : 𝓕.FieldOpFreeAlgebra) (h : ι b = 0) :
ι [a, b]ₛca = 0 := by ι [a, b]ₛF = 0 := by
rw [superCommuteF_expand_bosonicProjF_fermionicProjF] rw [superCommuteF_expand_bosonicProjF_fermionicProjF]
rw [ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero] at h rw [ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero] at h
simp_all simp_all
lemma ι_superCommuteF_eq_zero_of_ι_left_zero (a b : 𝓕.FieldOpFreeAlgebra) (h : ι a = 0) : lemma ι_superCommuteF_eq_zero_of_ι_left_zero (a b : 𝓕.FieldOpFreeAlgebra) (h : ι a = 0) :
ι [a, b]ₛca = 0 := by ι [a, b]ₛF = 0 := by
rw [superCommuteF_expand_bosonicProjF_fermionicProjF] rw [superCommuteF_expand_bosonicProjF_fermionicProjF]
rw [ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero] at h rw [ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero] at h
simp_all simp_all
@ -38,12 +38,12 @@ lemma ι_superCommuteF_eq_zero_of_ι_left_zero (a b : 𝓕.FieldOpFreeAlgebra) (
-/ -/
lemma ι_superCommuteF_right_zero_of_mem_ideal (a b : 𝓕.FieldOpFreeAlgebra) lemma ι_superCommuteF_right_zero_of_mem_ideal (a b : 𝓕.FieldOpFreeAlgebra)
(h : b ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) : ι [a, b]ₛca = 0 := by (h : b ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) : ι [a, b]ₛF = 0 := by
apply ι_superCommuteF_eq_zero_of_ι_right_zero apply ι_superCommuteF_eq_zero_of_ι_right_zero
exact (ι_eq_zero_iff_mem_ideal b).mpr h exact (ι_eq_zero_iff_mem_ideal b).mpr h
lemma ι_superCommuteF_eq_of_equiv_right (a b1 b2 : 𝓕.FieldOpFreeAlgebra) (h : b1 ≈ b2) : lemma ι_superCommuteF_eq_of_equiv_right (a b1 b2 : 𝓕.FieldOpFreeAlgebra) (h : b1 ≈ b2) :
ι [a, b1]ₛca = ι [a, b2]ₛca := by ι [a, b1]ₛF = ι [a, b2]ₛF := by
rw [equiv_iff_sub_mem_ideal] at h rw [equiv_iff_sub_mem_ideal] at h
rw [LinearMap.sub_mem_ker_iff.mp] rw [LinearMap.sub_mem_ker_iff.mp]
simp only [LinearMap.mem_ker, ← map_sub] simp only [LinearMap.mem_ker, ← map_sub]
@ -68,10 +68,10 @@ noncomputable def superCommuteRight (a : 𝓕.FieldOpFreeAlgebra) :
simp simp
lemma superCommuteRight_apply_ι (a b : 𝓕.FieldOpFreeAlgebra) : lemma superCommuteRight_apply_ι (a b : 𝓕.FieldOpFreeAlgebra) :
superCommuteRight a (ι b) = ι [a, b]ₛca := by rfl superCommuteRight a (ι b) = ι [a, b]ₛF := by rfl
lemma superCommuteRight_apply_quot (a b : 𝓕.FieldOpFreeAlgebra) : lemma superCommuteRight_apply_quot (a b : 𝓕.FieldOpFreeAlgebra) :
superCommuteRight a ⟦b⟧= ι [a, b]ₛca := by rfl superCommuteRight a ⟦b⟧= ι [a, b]ₛF := by rfl
lemma superCommuteRight_eq_of_equiv (a1 a2 : 𝓕.FieldOpFreeAlgebra) (h : a1 ≈ a2) : lemma superCommuteRight_eq_of_equiv (a1 a2 : 𝓕.FieldOpFreeAlgebra) (h : a1 ≈ a2) :
superCommuteRight a1 = superCommuteRight a2 := by superCommuteRight a1 = superCommuteRight a2 := by
@ -126,7 +126,7 @@ noncomputable def superCommute : FieldOpAlgebra 𝓕 →ₗ[]
scoped[FieldSpecification.FieldOpAlgebra] notation "[" a "," b "]ₛ" => superCommute a b scoped[FieldSpecification.FieldOpAlgebra] notation "[" a "," b "]ₛ" => superCommute a b
lemma superCommute_eq_ι_superCommuteF (a b : 𝓕.FieldOpFreeAlgebra) : lemma superCommute_eq_ι_superCommuteF (a b : 𝓕.FieldOpFreeAlgebra) :
[ι a, ι b]ₛ = ι [a, b]ₛca := rfl [ι a, ι b]ₛ = ι [a, b]ₛF := rfl
/-! /-!

View file

@ -24,7 +24,7 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_eq_time_ofCrAnListF {φ1 φ2 φ3
crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧ crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧
crAnTimeOrderRel φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧ crAnTimeOrderRel φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧
crAnTimeOrderRel φ3 φ1 ∧ crAnTimeOrderRel φ3 φ2) : crAnTimeOrderRel φ3 φ1 ∧ crAnTimeOrderRel φ3 φ2) :
ι 𝓣ᶠ(ofCrAnListF φs1 * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca * ι 𝓣ᶠ(ofCrAnListF φs1 * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF *
ofCrAnListF φs2) = 0 := by ofCrAnListF φs2) = 0 := by
let l1 := let l1 :=
(List.takeWhile (fun c => ¬ crAnTimeOrderRel φ1 c) (List.takeWhile (fun c => ¬ crAnTimeOrderRel φ1 c)
@ -127,7 +127,7 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_eq_time_ofCrAnListF {φ1 φ2 φ3
repeat rw [mul_assoc] repeat rw [mul_assoc]
rw [← mul_sub, ← mul_sub, ← mul_sub] rw [← mul_sub, ← mul_sub, ← mul_sub]
rw [← sub_mul, ← sub_mul, ← sub_mul] rw [← sub_mul, ← sub_mul, ← sub_mul]
trans ι (ofCrAnListF l1) * ι [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca * trans ι (ofCrAnListF l1) * ι [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF *
ι (ofCrAnListF l2) ι (ofCrAnListF l2)
rw [mul_assoc] rw [mul_assoc]
congr congr
@ -141,7 +141,7 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_eq_time_ofCrAnListF {φ1 φ2 φ3
lemma ι_timeOrderF_superCommuteF_superCommuteF_ofCrAnListF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} lemma ι_timeOrderF_superCommuteF_superCommuteF_ofCrAnListF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp}
(φs1 φs2 : List 𝓕.CrAnFieldOp) : (φs1 φs2 : List 𝓕.CrAnFieldOp) :
ι 𝓣ᶠ(ofCrAnListF φs1 * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca * ofCrAnListF φs2) ι 𝓣ᶠ(ofCrAnListF φs1 * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF * ofCrAnListF φs2)
= 0 := by = 0 := by
by_cases h : by_cases h :
crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧ crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧
@ -155,16 +155,16 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_ofCrAnListF {φ1 φ2 φ3 : 𝓕.
@[simp] @[simp]
lemma ι_timeOrderF_superCommuteF_superCommuteF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} lemma ι_timeOrderF_superCommuteF_superCommuteF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp}
(a b : 𝓕.FieldOpFreeAlgebra) : (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓣ᶠ(a * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca * b) = 0 := by ι 𝓣ᶠ(a * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF * b) = 0 := by
let pb (b : 𝓕.FieldOpFreeAlgebra) (hc : b ∈ Submodule.span (Set.range ofCrAnListFBasis)) : let pb (b : 𝓕.FieldOpFreeAlgebra) (hc : b ∈ Submodule.span (Set.range ofCrAnListFBasis)) :
Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca * b) = 0 Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF * b) = 0
change pb b (Basis.mem_span _ b) change pb b (Basis.mem_span _ b)
apply Submodule.span_induction apply Submodule.span_induction
· intro x hx · intro x hx
obtain ⟨φs, rfl⟩ := hx obtain ⟨φs, rfl⟩ := hx
simp only [ofListBasis_eq_ofList, pb] simp only [ofListBasis_eq_ofList, pb]
let pa (a : 𝓕.FieldOpFreeAlgebra) (hc : a ∈ Submodule.span (Set.range ofCrAnListFBasis)) : let pa (a : 𝓕.FieldOpFreeAlgebra) (hc : a ∈ Submodule.span (Set.range ofCrAnListFBasis)) :
Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca * ofCrAnListF φs) = 0 Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF * ofCrAnListF φs) = 0
change pa a (Basis.mem_span _ a) change pa a (Basis.mem_span _ a)
apply Submodule.span_induction apply Submodule.span_induction
· intro x hx · intro x hx
@ -184,19 +184,19 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp}
lemma ι_timeOrderF_superCommuteF_eq_time {φ ψ : 𝓕.CrAnFieldOp} lemma ι_timeOrderF_superCommuteF_eq_time {φ ψ : 𝓕.CrAnFieldOp}
(hφψ : crAnTimeOrderRel φ ψ) (hψφ : crAnTimeOrderRel ψ φ) (a b : 𝓕.FieldOpFreeAlgebra) : (hφψ : crAnTimeOrderRel φ ψ) (hψφ : crAnTimeOrderRel ψ φ) (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) =
ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * 𝓣ᶠ(a * b)) := by ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * 𝓣ᶠ(a * b)) := by
let pb (b : 𝓕.FieldOpFreeAlgebra) (hc : b ∈ Submodule.span (Set.range ofCrAnListFBasis)) : let pb (b : 𝓕.FieldOpFreeAlgebra) (hc : b ∈ Submodule.span (Set.range ofCrAnListFBasis)) :
Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) =
ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * 𝓣ᶠ(a * b)) ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * 𝓣ᶠ(a * b))
change pb b (Basis.mem_span _ b) change pb b (Basis.mem_span _ b)
apply Submodule.span_induction apply Submodule.span_induction
· intro x hx · intro x hx
obtain ⟨φs, rfl⟩ := hx obtain ⟨φs, rfl⟩ := hx
simp only [ofListBasis_eq_ofList, map_mul, pb] simp only [ofListBasis_eq_ofList, map_mul, pb]
let pa (a : 𝓕.FieldOpFreeAlgebra) (hc : a ∈ Submodule.span (Set.range ofCrAnListFBasis)) : let pa (a : 𝓕.FieldOpFreeAlgebra) (hc : a ∈ Submodule.span (Set.range ofCrAnListFBasis)) :
Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * ofCrAnListF φs) = Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * ofCrAnListF φs) =
ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * 𝓣ᶠ(a* ofCrAnListF φs)) ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * 𝓣ᶠ(a* ofCrAnListF φs))
change pa a (Basis.mem_span _ a) change pa a (Basis.mem_span _ a)
apply Submodule.span_induction apply Submodule.span_induction
· intro x hx · intro x hx
@ -234,7 +234,7 @@ lemma ι_timeOrderF_superCommuteF_eq_time {φ ψ : 𝓕.CrAnFieldOp}
rw [← sub_mul] rw [← sub_mul]
have h1 : (ι (ofCrAnListF [φ, ψ]) - have h1 : (ι (ofCrAnListF [φ, ψ]) -
(exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics ψ) • ι (ofCrAnListF [ψ, φ])) = (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics ψ) • ι (ofCrAnListF [ψ, φ])) =
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca := by ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF]
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append]
simp only [instCommGroup.eq_1, List.singleton_append, Algebra.smul_mul_assoc, map_sub, simp only [instCommGroup.eq_1, List.singleton_append, Algebra.smul_mul_assoc, map_sub,
@ -280,7 +280,7 @@ lemma ι_timeOrderF_superCommuteF_eq_time {φ ψ : 𝓕.CrAnFieldOp}
lemma ι_timeOrderF_superCommuteF_neq_time {φ ψ : 𝓕.CrAnFieldOp} lemma ι_timeOrderF_superCommuteF_neq_time {φ ψ : 𝓕.CrAnFieldOp}
(hφψ : ¬ (crAnTimeOrderRel φ ψ ∧ crAnTimeOrderRel ψ φ)) (a b : 𝓕.FieldOpFreeAlgebra) : (hφψ : ¬ (crAnTimeOrderRel φ ψ ∧ crAnTimeOrderRel ψ φ)) (a b : 𝓕.FieldOpFreeAlgebra) :
ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = 0 := by ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) = 0 := by
rw [timeOrderF_timeOrderF_mid] rw [timeOrderF_timeOrderF_mid]
have hφψ : ¬ (crAnTimeOrderRel φ ψ) ¬ (crAnTimeOrderRel ψ φ) := by have hφψ : ¬ (crAnTimeOrderRel φ ψ) ¬ (crAnTimeOrderRel ψ φ) := by
exact Decidable.not_and_iff_or_not.mp hφψ exact Decidable.not_and_iff_or_not.mp hφψ
@ -433,7 +433,8 @@ lemma timeOrder_ofFieldOpList_singleton (φ : 𝓕.FieldOp) :
/-- For a field specification `𝓕`, the time order operator acting on a /-- For a field specification `𝓕`, the time order operator acting on a
list of `𝓕.FieldOp`, `𝓣(φ₀…φₙ)`, is equal to list of `𝓕.FieldOp`, `𝓣(φ₀…φₙ)`, is equal to
`𝓢(φᵢ,φ₀…φᵢ₋₁) • φᵢ * 𝓣(φ₀…φᵢ₋₁φᵢ₊₁φₙ)` where `φᵢ` is the maximal time field in `φ₀…φₙ`. `𝓢(φᵢ,φ₀…φᵢ₋₁) • φᵢ * 𝓣(φ₀…φᵢ₋₁φᵢ₊₁φₙ)` where `φᵢ` is the maximal time field
operator in `φ₀…φₙ`.
The proof of this result ultimately relies on basic properties of ordering and signs. -/ The proof of this result ultimately relies on basic properties of ordering and signs. -/
lemma timeOrder_eq_maxTimeField_mul_finset (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : lemma timeOrder_eq_maxTimeField_mul_finset (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :

View file

@ -96,7 +96,7 @@ lemma ofCrAnListF_singleton (φ : 𝓕.CrAnFieldOp) :
`ofCrAnOpF` of the `ofCrAnOpF` of the
creation and annihilation parts of `φ`. creation and annihilation parts of `φ`.
For example for `φ` an incoming asymptotic field operator we get For example, for `φ` an incoming asymptotic field operator we get
`ofCrAnOpF ⟨φ, ()⟩`, and for `φ` a `ofCrAnOpF ⟨φ, ()⟩`, and for `φ` a
position field operator we get `ofCrAnOpF ⟨φ, .create⟩ + ofCrAnOpF ⟨φ, .annihilate⟩`. -/ position field operator we get `ofCrAnOpF ⟨φ, .create⟩ + ofCrAnOpF ⟨φ, .annihilate⟩`. -/
def ofFieldOpF (φ : 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 := def ofFieldOpF (φ : 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 :=

View file

@ -239,7 +239,7 @@ lemma normalOrderF_swap_create_annihilate (φc φa : 𝓕.CrAnFieldOp)
lemma normalOrderF_superCommuteF_create_annihilate (φc φa : 𝓕.CrAnFieldOp) lemma normalOrderF_superCommuteF_create_annihilate (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(a b : 𝓕.FieldOpFreeAlgebra) : (a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * [ofCrAnOpF φc, ofCrAnOpF φa]ₛca * b) = 0 := by 𝓝ᶠ(a * [ofCrAnOpF φc, ofCrAnOpF φa]ₛF * b) = 0 := by
simp only [superCommuteF_ofCrAnOpF_ofCrAnOpF, instCommGroup.eq_1, Algebra.smul_mul_assoc] simp only [superCommuteF_ofCrAnOpF_ofCrAnOpF, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [mul_sub, sub_mul, map_sub, ← smul_mul_assoc, ← mul_assoc, ← mul_assoc, rw [mul_sub, sub_mul, map_sub, ← smul_mul_assoc, ← mul_assoc, ← mul_assoc,
normalOrderF_swap_create_annihilate φc φa hφc hφa] normalOrderF_swap_create_annihilate φc φa hφc hφa]
@ -248,7 +248,7 @@ lemma normalOrderF_superCommuteF_create_annihilate (φc φa : 𝓕.CrAnFieldOp)
lemma normalOrderF_superCommuteF_annihilate_create (φc φa : 𝓕.CrAnFieldOp) lemma normalOrderF_superCommuteF_annihilate_create (φc φa : 𝓕.CrAnFieldOp)
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(a b : 𝓕.FieldOpFreeAlgebra) : (a b : 𝓕.FieldOpFreeAlgebra) :
𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φc]ₛca * b) = 0 := by 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φc]ₛF * b) = 0 := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF_symm] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF_symm]
simp only [instCommGroup.eq_1, neg_smul, mul_neg, Algebra.mul_smul_comm, neg_mul, simp only [instCommGroup.eq_1, neg_smul, mul_neg, Algebra.mul_smul_comm, neg_mul,
Algebra.smul_mul_assoc, map_neg, map_smul, neg_eq_zero, smul_eq_zero] Algebra.smul_mul_assoc, map_neg, map_smul, neg_eq_zero, smul_eq_zero]
@ -402,9 +402,9 @@ TODO "Split the following two lemmas up into smaller parts."
lemma normalOrderF_superCommuteF_ofCrAnListF_create_create_ofCrAnListF lemma normalOrderF_superCommuteF_ofCrAnListF_create_create_ofCrAnListF
(φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create)
(hφc' : 𝓕 |>ᶜ φc' = CreateAnnihilate.create) (φs φs' : List 𝓕.CrAnFieldOp) : (hφc' : 𝓕 |>ᶜ φc' = CreateAnnihilate.create) (φs φs' : List 𝓕.CrAnFieldOp) :
(𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φc, ofCrAnOpF φc']ₛca * ofCrAnListF φs')) = (𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φc, ofCrAnOpF φc']ₛF * ofCrAnListF φs')) =
normalOrderSign (φs ++ φc' :: φc :: φs') • normalOrderSign (φs ++ φc' :: φc :: φs') •
(ofCrAnListF (createFilter φs) * [ofCrAnOpF φc, ofCrAnOpF φc']ₛca * (ofCrAnListF (createFilter φs) * [ofCrAnOpF φc, ofCrAnOpF φc']ₛF *
ofCrAnListF (createFilter φs') * ofCrAnListF (annihilateFilter (φs ++ φs'))) := by ofCrAnListF (createFilter φs') * ofCrAnListF (annihilateFilter (φs ++ φs'))) := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, mul_sub, sub_mul, map_sub] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, mul_sub, sub_mul, map_sub]
conv_lhs => conv_lhs =>
@ -463,10 +463,10 @@ lemma normalOrderF_superCommuteF_ofCrAnListF_annihilate_annihilate_ofCrAnListF
(hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
(hφa' : 𝓕 |>ᶜ φa' = CreateAnnihilate.annihilate) (hφa' : 𝓕 |>ᶜ φa' = CreateAnnihilate.annihilate)
(φs φs' : List 𝓕.CrAnFieldOp) : (φs φs' : List 𝓕.CrAnFieldOp) :
𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca * ofCrAnListF φs') = 𝓝ᶠ(ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * ofCrAnListF φs') =
normalOrderSign (φs ++ φa' :: φa :: φs') • normalOrderSign (φs ++ φa' :: φa :: φs') •
(ofCrAnListF (createFilter (φs ++ φs')) (ofCrAnListF (createFilter (φs ++ φs'))
* ofCrAnListF (annihilateFilter φs) * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca * ofCrAnListF (annihilateFilter φs) * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF
* ofCrAnListF (annihilateFilter φs')) := by * ofCrAnListF (annihilateFilter φs')) := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, mul_sub, sub_mul, map_sub] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, mul_sub, sub_mul, map_sub]
conv_lhs => conv_lhs =>
@ -533,7 +533,7 @@ lemma normalOrderF_superCommuteF_ofCrAnListF_annihilate_annihilate_ofCrAnListF
-/ -/
lemma ofCrAnListF_superCommuteF_normalOrderF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) : lemma ofCrAnListF_superCommuteF_normalOrderF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, 𝓝ᶠ(ofCrAnListF φs')]ₛca = [ofCrAnListF φs, 𝓝ᶠ(ofCrAnListF φs')]ₛF =
ofCrAnListF φs * 𝓝ᶠ(ofCrAnListF φs') - ofCrAnListF φs * 𝓝ᶠ(ofCrAnListF φs') -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofCrAnListF φs') * ofCrAnListF φs := by 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofCrAnListF φs') * ofCrAnListF φs := by
simp only [normalOrderF_ofCrAnListF, map_smul, superCommuteF_ofCrAnListF_ofCrAnListF, simp only [normalOrderF_ofCrAnListF, map_smul, superCommuteF_ofCrAnListF_ofCrAnListF,
@ -541,7 +541,7 @@ lemma ofCrAnListF_superCommuteF_normalOrderF_ofCrAnListF (φs φs' : List 𝓕.C
Algebra.mul_smul_comm, mul_comm, Algebra.smul_mul_assoc] Algebra.mul_smul_comm, mul_comm, Algebra.smul_mul_assoc]
lemma ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF (φs : List 𝓕.CrAnFieldOp) lemma ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛca = (φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛF =
ofCrAnListF φs * 𝓝ᶠ(ofFieldOpListF φs') - ofCrAnListF φs * 𝓝ᶠ(ofFieldOpListF φs') -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs := by 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs := by
rw [ofFieldOpListF_sum, map_sum, Finset.mul_sum, Finset.smul_sum, Finset.sum_mul, rw [ofFieldOpListF_sum, map_sum, Finset.mul_sum, Finset.smul_sum, Finset.sum_mul,
@ -561,20 +561,20 @@ lemma ofCrAnListF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φs : List
(φs' : List 𝓕.FieldOp) : (φs' : List 𝓕.FieldOp) :
ofCrAnListF φs * 𝓝ᶠ(ofFieldOpListF φs') = ofCrAnListF φs * 𝓝ᶠ(ofFieldOpListF φs') =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs
+ [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛca := by + [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by
simp [ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF] simp [ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF]
lemma ofCrAnOpF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp) lemma ofCrAnOpF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : ofCrAnOpF φ * 𝓝ᶠ(ofFieldOpListF φs') = (φs' : List 𝓕.FieldOp) : ofCrAnOpF φ * 𝓝ᶠ(ofFieldOpListF φs') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnOpF φ 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnOpF φ
+ [ofCrAnOpF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛca := by + [ofCrAnOpF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by
simp [← ofCrAnListF_singleton, ofCrAnListF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF] simp [← ofCrAnListF_singleton, ofCrAnListF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF]
lemma anPartF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp) lemma anPartF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp)
(φs' : List 𝓕.FieldOp) : (φs' : List 𝓕.FieldOp) :
anPartF φ * 𝓝ᶠ(ofFieldOpListF φs') = anPartF φ * 𝓝ᶠ(ofFieldOpListF φs') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs' * anPartF φ) 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs' * anPartF φ)
+ [anPartF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛca := by + [anPartF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by
rw [normalOrderF_mul_anPartF] rw [normalOrderF_mul_anPartF]
match φ with match φ with
| .inAsymp φ => simp | .inAsymp φ => simp

View file

@ -29,7 +29,7 @@ open FieldStatistic
`superCommuteF φs φs' = φs * φs' - 𝓢(φs, φs') • φs' * φs`. `superCommuteF φs φs' = φs * φs' - 𝓢(φs, φs') • φs' * φs`.
The notation `[a, b]ₛca` can be used for `superCommuteF a b`. -/ The notation `[a, b]ₛF` can be used for `superCommuteF a b`. -/
noncomputable def superCommuteF : 𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra →ₗ[] noncomputable def superCommuteF : 𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra →ₗ[]
𝓕.FieldOpFreeAlgebra := 𝓕.FieldOpFreeAlgebra :=
Basis.constr ofCrAnListFBasis fun φs => Basis.constr ofCrAnListFBasis fun φs =>
@ -37,7 +37,7 @@ noncomputable def superCommuteF : 𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.Field
ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs) ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs)
@[inherit_doc superCommuteF] @[inherit_doc superCommuteF]
scoped[FieldSpecification.FieldOpFreeAlgebra] notation "[" φs "," φs' "]ₛca" => superCommuteF φs φs' scoped[FieldSpecification.FieldOpFreeAlgebra] notation "[" φs "," φs' "]ₛF" => superCommuteF φs φs'
/-! /-!
@ -46,13 +46,13 @@ scoped[FieldSpecification.FieldOpFreeAlgebra] notation "[" φs "," φs' "]ₛca"
-/ -/
lemma superCommuteF_ofCrAnListF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnListF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF φs']ₛca = [ofCrAnListF φs, ofCrAnListF φs']ₛF =
ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs) := by ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs) := by
rw [← ofListBasis_eq_ofList, ← ofListBasis_eq_ofList] rw [← ofListBasis_eq_ofList, ← ofListBasis_eq_ofList]
simp only [superCommuteF, Basis.constr_basis] simp only [superCommuteF, Basis.constr_basis]
lemma superCommuteF_ofCrAnOpF_ofCrAnOpF (φ φ' : 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnOpF_ofCrAnOpF (φ φ' : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF φ']ₛca = [ofCrAnOpF φ, ofCrAnOpF φ']ₛF =
ofCrAnOpF φ * ofCrAnOpF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofCrAnOpF φ' * ofCrAnOpF φ := by ofCrAnOpF φ * ofCrAnOpF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofCrAnOpF φ' * ofCrAnOpF φ := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
rw [superCommuteF_ofCrAnListF_ofCrAnListF, ofCrAnListF_append] rw [superCommuteF_ofCrAnListF_ofCrAnListF, ofCrAnListF_append]
@ -61,7 +61,7 @@ lemma superCommuteF_ofCrAnOpF_ofCrAnOpF (φ φ' : 𝓕.CrAnFieldOp) :
rw [FieldStatistic.ofList_singleton, FieldStatistic.ofList_singleton, smul_mul_assoc] rw [FieldStatistic.ofList_singleton, FieldStatistic.ofList_singleton, smul_mul_assoc]
lemma superCommuteF_ofCrAnListF_ofFieldOpFsList (φcas : List 𝓕.CrAnFieldOp) (φs : List 𝓕.FieldOp) : lemma superCommuteF_ofCrAnListF_ofFieldOpFsList (φcas : List 𝓕.CrAnFieldOp) (φs : List 𝓕.FieldOp) :
[ofCrAnListF φcas, ofFieldOpListF φs]ₛca = ofCrAnListF φcas * ofFieldOpListF φs - [ofCrAnListF φcas, ofFieldOpListF φs]ₛF = ofCrAnListF φcas * ofFieldOpListF φs -
𝓢(𝓕 |>ₛ φcas, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofCrAnListF φcas := by 𝓢(𝓕 |>ₛ φcas, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofCrAnListF φcas := by
conv_lhs => rw [ofFieldOpListF_sum] conv_lhs => rw [ofFieldOpListF_sum]
rw [map_sum] rw [map_sum]
@ -74,7 +74,7 @@ lemma superCommuteF_ofCrAnListF_ofFieldOpFsList (φcas : List 𝓕.CrAnFieldOp)
simp simp
lemma superCommuteF_ofFieldOpListF_ofFieldOpFsList (φ : List 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : lemma superCommuteF_ofFieldOpListF_ofFieldOpFsList (φ : List 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[ofFieldOpListF φ, ofFieldOpListF φs]ₛca = ofFieldOpListF φ * ofFieldOpListF φs - [ofFieldOpListF φ, ofFieldOpListF φs]ₛF = ofFieldOpListF φ * ofFieldOpListF φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofFieldOpListF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofFieldOpListF φ := by
conv_lhs => rw [ofFieldOpListF_sum] conv_lhs => rw [ofFieldOpListF_sum]
simp only [map_sum, LinearMap.coeFn_sum, Finset.sum_apply, instCommGroup.eq_1, simp only [map_sum, LinearMap.coeFn_sum, Finset.sum_apply, instCommGroup.eq_1,
@ -87,21 +87,21 @@ lemma superCommuteF_ofFieldOpListF_ofFieldOpFsList (φ : List 𝓕.FieldOp) (φs
rw [← Finset.sum_mul, ← Finset.smul_sum, ← Finset.mul_sum, ← ofFieldOpListF_sum] rw [← Finset.sum_mul, ← Finset.smul_sum, ← Finset.mul_sum, ← ofFieldOpListF_sum]
lemma superCommuteF_ofFieldOpF_ofFieldOpFsList (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : lemma superCommuteF_ofFieldOpF_ofFieldOpFsList (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[ofFieldOpF φ, ofFieldOpListF φs]ₛca = ofFieldOpF φ * ofFieldOpListF φs - [ofFieldOpF φ, ofFieldOpListF φs]ₛF = ofFieldOpF φ * ofFieldOpListF φs -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofFieldOpF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * ofFieldOpF φ := by
rw [← ofFieldOpListF_singleton, superCommuteF_ofFieldOpListF_ofFieldOpFsList, rw [← ofFieldOpListF_singleton, superCommuteF_ofFieldOpListF_ofFieldOpFsList,
ofFieldOpListF_singleton] ofFieldOpListF_singleton]
simp simp
lemma superCommuteF_ofFieldOpListF_ofFieldOpF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) : lemma superCommuteF_ofFieldOpListF_ofFieldOpF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) :
[ofFieldOpListF φs, ofFieldOpF φ]ₛca = ofFieldOpListF φs * ofFieldOpF φ - [ofFieldOpListF φs, ofFieldOpF φ]ₛF = ofFieldOpListF φs * ofFieldOpF φ -
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs := by 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs := by
rw [← ofFieldOpListF_singleton, superCommuteF_ofFieldOpListF_ofFieldOpFsList, rw [← ofFieldOpListF_singleton, superCommuteF_ofFieldOpListF_ofFieldOpFsList,
ofFieldOpListF_singleton] ofFieldOpListF_singleton]
simp simp
lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) : lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) :
[anPartF φ, crPartF φ']ₛca = anPartF φ * crPartF φ' - [anPartF φ, crPartF φ']ₛF = anPartF φ * crPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * anPartF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * anPartF φ := by
match φ, φ' with match φ, φ' with
| FieldOp.inAsymp φ, _ => | FieldOp.inAsymp φ, _ =>
@ -129,7 +129,7 @@ lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) :
simp [crAnStatistics, ← ofCrAnListF_append] simp [crAnStatistics, ← ofCrAnListF_append]
lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) : lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) :
[crPartF φ, anPartF φ']ₛca = crPartF φ * anPartF φ' - [crPartF φ, anPartF φ']ₛF = crPartF φ * anPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ := by
match φ, φ' with match φ, φ' with
| FieldOp.outAsymp φ, _ => | FieldOp.outAsymp φ, _ =>
@ -156,7 +156,7 @@ lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) :
simp [crAnStatistics, ← ofCrAnListF_append] simp [crAnStatistics, ← ofCrAnListF_append]
lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.FieldOp) : lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.FieldOp) :
[crPartF φ, crPartF φ']ₛca = crPartF φ * crPartF φ' - [crPartF φ, crPartF φ']ₛF = crPartF φ * crPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ := by
match φ, φ' with match φ, φ' with
| FieldOp.outAsymp φ, _ => | FieldOp.outAsymp φ, _ =>
@ -183,7 +183,7 @@ lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.FieldOp) :
simp [crAnStatistics, ← ofCrAnListF_append] simp [crAnStatistics, ← ofCrAnListF_append]
lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.FieldOp) : lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.FieldOp) :
[anPartF φ, anPartF φ']ₛca = [anPartF φ, anPartF φ']ₛF =
anPartF φ * anPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ := by anPartF φ * anPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ := by
match φ, φ' with match φ, φ' with
| FieldOp.inAsymp φ, _ => | FieldOp.inAsymp φ, _ =>
@ -208,7 +208,7 @@ lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.FieldOp) :
simp [crAnStatistics, ← ofCrAnListF_append] simp [crAnStatistics, ← ofCrAnListF_append]
lemma superCommuteF_crPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : lemma superCommuteF_crPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[crPartF φ, ofFieldOpListF φs]ₛca = [crPartF φ, ofFieldOpListF φs]ₛF =
crPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * crPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs *
crPartF φ := by crPartF φ := by
match φ with match φ with
@ -224,7 +224,7 @@ lemma superCommuteF_crPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.
simp simp
lemma superCommuteF_anPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : lemma superCommuteF_anPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
[anPartF φ, ofFieldOpListF φs]ₛca = [anPartF φ, ofFieldOpListF φs]ₛF =
anPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • anPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) •
ofFieldOpListF φs * anPartF φ := by ofFieldOpListF φs * anPartF φ := by
match φ with match φ with
@ -240,14 +240,14 @@ lemma superCommuteF_anPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.
simp [crAnStatistics] simp [crAnStatistics]
lemma superCommuteF_crPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) : lemma superCommuteF_crPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) :
[crPartF φ, ofFieldOpF φ']ₛca = [crPartF φ, ofFieldOpF φ']ₛF =
crPartF φ * ofFieldOpF φ' - crPartF φ * ofFieldOpF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * crPartF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * crPartF φ := by
rw [← ofFieldOpListF_singleton, superCommuteF_crPartF_ofFieldOpListF] rw [← ofFieldOpListF_singleton, superCommuteF_crPartF_ofFieldOpListF]
simp simp
lemma superCommuteF_anPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) : lemma superCommuteF_anPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) :
[anPartF φ, ofFieldOpF φ']ₛca = [anPartF φ, ofFieldOpF φ']ₛF =
anPartF φ * ofFieldOpF φ' - anPartF φ * ofFieldOpF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * anPartF φ := by 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * anPartF φ := by
rw [← ofFieldOpListF_singleton, superCommuteF_anPartF_ofFieldOpListF] rw [← ofFieldOpListF_singleton, superCommuteF_anPartF_ofFieldOpListF]
@ -263,39 +263,39 @@ multiplication with a sign plus the super commutator.
-/ -/
lemma ofCrAnListF_mul_ofCrAnListF_eq_superCommuteF (φs φs' : List 𝓕.CrAnFieldOp) : lemma ofCrAnListF_mul_ofCrAnListF_eq_superCommuteF (φs φs' : List 𝓕.CrAnFieldOp) :
ofCrAnListF φs * ofCrAnListF φs' = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF φs' * ofCrAnListF φs ofCrAnListF φs * ofCrAnListF φs' = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF φs' * ofCrAnListF φs
+ [ofCrAnListF φs, ofCrAnListF φs']ₛca := by + [ofCrAnListF φs, ofCrAnListF φs']ₛF := by
rw [superCommuteF_ofCrAnListF_ofCrAnListF] rw [superCommuteF_ofCrAnListF_ofCrAnListF]
simp [ofCrAnListF_append] simp [ofCrAnListF_append]
lemma ofCrAnOpF_mul_ofCrAnListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp) (φs' : List 𝓕.CrAnFieldOp) : lemma ofCrAnOpF_mul_ofCrAnListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp) (φs' : List 𝓕.CrAnFieldOp) :
ofCrAnOpF φ * ofCrAnListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofCrAnListF φs' * ofCrAnOpF φ ofCrAnOpF φ * ofCrAnListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofCrAnListF φs' * ofCrAnOpF φ
+ [ofCrAnOpF φ, ofCrAnListF φs']ₛca := by + [ofCrAnOpF φ, ofCrAnListF φs']ₛF := by
rw [← ofCrAnListF_singleton, ofCrAnListF_mul_ofCrAnListF_eq_superCommuteF] rw [← ofCrAnListF_singleton, ofCrAnListF_mul_ofCrAnListF_eq_superCommuteF]
simp simp
lemma ofFieldOpListF_mul_ofFieldOpListF_eq_superCommuteF (φs φs' : List 𝓕.FieldOp) : lemma ofFieldOpListF_mul_ofFieldOpListF_eq_superCommuteF (φs φs' : List 𝓕.FieldOp) :
ofFieldOpListF φs * ofFieldOpListF φs' = ofFieldOpListF φs * ofFieldOpListF φs' =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpListF φs 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpListF φs
+ [ofFieldOpListF φs, ofFieldOpListF φs']ₛca := by + [ofFieldOpListF φs, ofFieldOpListF φs']ₛF := by
rw [superCommuteF_ofFieldOpListF_ofFieldOpFsList] rw [superCommuteF_ofFieldOpListF_ofFieldOpFsList]
simp simp
lemma ofFieldOpF_mul_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp) (φs' : List 𝓕.FieldOp) : lemma ofFieldOpF_mul_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp) (φs' : List 𝓕.FieldOp) :
ofFieldOpF φ * ofFieldOpListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpF φ ofFieldOpF φ * ofFieldOpListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpF φ
+ [ofFieldOpF φ, ofFieldOpListF φs']ₛca := by + [ofFieldOpF φ, ofFieldOpListF φs']ₛF := by
rw [superCommuteF_ofFieldOpF_ofFieldOpFsList] rw [superCommuteF_ofFieldOpF_ofFieldOpFsList]
simp simp
lemma ofFieldOpListF_mul_ofFieldOpF_eq_superCommuteF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) : lemma ofFieldOpListF_mul_ofFieldOpF_eq_superCommuteF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) :
ofFieldOpListF φs * ofFieldOpF φ = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs ofFieldOpListF φs * ofFieldOpF φ = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs
+ [ofFieldOpListF φs, ofFieldOpF φ]ₛca := by + [ofFieldOpListF φs, ofFieldOpF φ]ₛF := by
rw [superCommuteF_ofFieldOpListF_ofFieldOpF] rw [superCommuteF_ofFieldOpListF_ofFieldOpF]
simp simp
lemma crPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : lemma crPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
crPartF φ * anPartF φ' = crPartF φ * anPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ + 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ +
[crPartF φ, anPartF φ']ₛca := by [crPartF φ, anPartF φ']ₛF := by
rw [superCommuteF_crPartF_anPartF] rw [superCommuteF_crPartF_anPartF]
simp simp
@ -303,27 +303,27 @@ lemma anPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
anPartF φ * crPartF φ' = anPartF φ * crPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
crPartF φ' * anPartF φ + crPartF φ' * anPartF φ +
[anPartF φ, crPartF φ']ₛca := by [anPartF φ, crPartF φ']ₛF := by
rw [superCommuteF_anPartF_crPartF] rw [superCommuteF_anPartF_crPartF]
simp simp
lemma crPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : lemma crPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
crPartF φ * crPartF φ' = crPartF φ * crPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ + 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ +
[crPartF φ, crPartF φ']ₛca := by [crPartF φ, crPartF φ']ₛF := by
rw [superCommuteF_crPartF_crPartF] rw [superCommuteF_crPartF_crPartF]
simp simp
lemma anPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : lemma anPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) :
anPartF φ * anPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ + anPartF φ * anPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ +
[anPartF φ, anPartF φ']ₛca := by [anPartF φ, anPartF φ']ₛF := by
rw [superCommuteF_anPartF_anPartF] rw [superCommuteF_anPartF_anPartF]
simp simp
lemma ofCrAnListF_mul_ofFieldOpListF_eq_superCommuteF (φs : List 𝓕.CrAnFieldOp) lemma ofCrAnListF_mul_ofFieldOpListF_eq_superCommuteF (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : ofCrAnListF φs * ofFieldOpListF φs' = (φs' : List 𝓕.FieldOp) : ofCrAnListF φs * ofFieldOpListF φs' =
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofCrAnListF φs 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofCrAnListF φs
+ [ofCrAnListF φs, ofFieldOpListF φs']ₛca := by + [ofCrAnListF φs, ofFieldOpListF φs']ₛF := by
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList] rw [superCommuteF_ofCrAnListF_ofFieldOpFsList]
simp simp
@ -334,8 +334,8 @@ lemma ofCrAnListF_mul_ofFieldOpListF_eq_superCommuteF (φs : List 𝓕.CrAnField
-/ -/
lemma superCommuteF_ofCrAnListF_ofCrAnListF_symm (φs φs' : List 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnListF_ofCrAnListF_symm (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF φs']ₛca = [ofCrAnListF φs, ofCrAnListF φs']ₛF =
(- 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs')) • [ofCrAnListF φs', ofCrAnListF φs]ₛca := by (- 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs')) • [ofCrAnListF φs', ofCrAnListF φs]ₛF := by
rw [superCommuteF_ofCrAnListF_ofCrAnListF, superCommuteF_ofCrAnListF_ofCrAnListF, smul_sub] rw [superCommuteF_ofCrAnListF_ofCrAnListF, superCommuteF_ofCrAnListF_ofCrAnListF, smul_sub]
simp only [instCommGroup.eq_1, neg_smul, sub_neg_eq_add] simp only [instCommGroup.eq_1, neg_smul, sub_neg_eq_add]
rw [smul_smul] rw [smul_smul]
@ -346,8 +346,8 @@ lemma superCommuteF_ofCrAnListF_ofCrAnListF_symm (φs φs' : List 𝓕.CrAnField
abel abel
lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_symm (φ φ' : 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_symm (φ φ' : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF φ']ₛca = [ofCrAnOpF φ, ofCrAnOpF φ']ₛF =
(- 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ')) • [ofCrAnOpF φ', ofCrAnOpF φ]ₛca := by (- 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ')) • [ofCrAnOpF φ', ofCrAnOpF φ]ₛF := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, superCommuteF_ofCrAnOpF_ofCrAnOpF] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, superCommuteF_ofCrAnOpF_ofCrAnOpF]
rw [smul_sub] rw [smul_sub]
simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, neg_smul, sub_neg_eq_add] simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, neg_smul, sub_neg_eq_add]
@ -365,10 +365,10 @@ lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_symm (φ φ' : 𝓕.CrAnFieldOp) :
-/ -/
lemma superCommuteF_ofCrAnListF_ofCrAnListF_cons (φ : 𝓕.CrAnFieldOp) (φs φs' : List 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnListF_ofCrAnListF_cons (φ : 𝓕.CrAnFieldOp) (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF (φ :: φs')]ₛca = [ofCrAnListF φs, ofCrAnListF (φ :: φs')]ₛF =
[ofCrAnListF φs, ofCrAnOpF φ]ₛca * ofCrAnListF φs' + [ofCrAnListF φs, ofCrAnOpF φ]ₛF * ofCrAnListF φs' +
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ)
• ofCrAnOpF φ * [ofCrAnListF φs, ofCrAnListF φs']ₛca := by • ofCrAnOpF φ * [ofCrAnListF φs, ofCrAnListF φs']ₛF := by
rw [superCommuteF_ofCrAnListF_ofCrAnListF] rw [superCommuteF_ofCrAnListF_ofCrAnListF]
conv_rhs => conv_rhs =>
lhs lhs
@ -386,9 +386,9 @@ lemma superCommuteF_ofCrAnListF_ofCrAnListF_cons (φ : 𝓕.CrAnFieldOp) (φs φ
simp only [instCommGroup, map_mul, mul_comm] simp only [instCommGroup, map_mul, mul_comm]
lemma superCommuteF_ofCrAnListF_ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.CrAnFieldOp) lemma superCommuteF_ofCrAnListF_ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.CrAnFieldOp)
(φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, ofFieldOpListF (φ :: φs')]ₛca = (φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, ofFieldOpListF (φ :: φs')]ₛF =
[ofCrAnListF φs, ofFieldOpF φ]ₛca * ofFieldOpListF φs' + [ofCrAnListF φs, ofFieldOpF φ]ₛF * ofFieldOpListF φs' +
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * [ofCrAnListF φs, ofFieldOpListF φs']ₛca := by 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * [ofCrAnListF φs, ofFieldOpListF φs']ₛF := by
rw [superCommuteF_ofCrAnListF_ofFieldOpFsList] rw [superCommuteF_ofCrAnListF_ofFieldOpFsList]
conv_rhs => conv_rhs =>
lhs lhs
@ -409,14 +409,14 @@ lemma superCommuteF_ofCrAnListF_ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : L
For a field specification `𝓕`, and two lists `φs = φ₀…φₙ` and `φs'` of `𝓕.CrAnFieldOp` For a field specification `𝓕`, and two lists `φs = φ₀…φₙ` and `φs'` of `𝓕.CrAnFieldOp`
the following super commutation relation holds: the following super commutation relation holds:
`[φs', φ₀…φₙ]ₛca = ∑ i, 𝓢(φs', φ₀…φᵢ₋₁) • φ₀…φᵢ₋₁ * [φs', φᵢ]ₛca * φᵢ₊₁ … φₙ` `[φs', φ₀…φₙ]ₛF = ∑ i, 𝓢(φs', φ₀…φᵢ₋₁) • φ₀…φᵢ₋₁ * [φs', φᵢ]ₛF * φᵢ₊₁ … φₙ`
The proof of this relation is via induction on the length of `φs`. The proof of this relation is via induction on the length of `φs`.
-/ -/
lemma superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum (φs : List 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum (φs : List 𝓕.CrAnFieldOp) :
(φs' : List 𝓕.CrAnFieldOp) → [ofCrAnListF φs, ofCrAnListF φs']ₛca = (φs' : List 𝓕.CrAnFieldOp) → [ofCrAnListF φs, ofCrAnListF φs']ₛF =
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) • ∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) •
ofCrAnListF (φs'.take n) * [ofCrAnListF φs, ofCrAnOpF (φs'.get n)]ₛca * ofCrAnListF (φs'.take n) * [ofCrAnListF φs, ofCrAnOpF (φs'.get n)]ₛF *
ofCrAnListF (φs'.drop (n + 1)) ofCrAnListF (φs'.drop (n + 1))
| [] => by | [] => by
simp [← ofCrAnListF_nil, superCommuteF_ofCrAnListF_ofCrAnListF] simp [← ofCrAnListF_nil, superCommuteF_ofCrAnListF_ofCrAnListF]
@ -431,9 +431,9 @@ lemma superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum (φs : List 𝓕.CrAnFieldOp)
lemma superCommuteF_ofCrAnListF_ofFieldOpListF_eq_sum (φs : List 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnListF_ofFieldOpListF_eq_sum (φs : List 𝓕.CrAnFieldOp) :
(φs' : List 𝓕.FieldOp) → (φs' : List 𝓕.FieldOp) →
[ofCrAnListF φs, ofFieldOpListF φs']ₛca = [ofCrAnListF φs, ofFieldOpListF φs']ₛF =
∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) • ∑ (n : Fin φs'.length), 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs'.take n) •
ofFieldOpListF (φs'.take n) * [ofCrAnListF φs, ofFieldOpF (φs'.get n)]ₛca * ofFieldOpListF (φs'.take n) * [ofCrAnListF φs, ofFieldOpF (φs'.get n)]ₛF *
ofFieldOpListF (φs'.drop (n + 1)) ofFieldOpListF (φs'.drop (n + 1))
| [] => by | [] => by
simp only [superCommuteF_ofCrAnListF_ofFieldOpFsList, instCommGroup, ofList_empty, simp only [superCommuteF_ofCrAnListF_ofFieldOpFsList, instCommGroup, ofList_empty,
@ -450,10 +450,10 @@ lemma superCommuteF_ofCrAnListF_ofFieldOpListF_eq_sum (φs : List 𝓕.CrAnField
FieldStatistic.ofList_cons_eq_mul, mul_comm] FieldStatistic.ofList_cons_eq_mul, mul_comm]
lemma summerCommute_jacobi_ofCrAnListF (φs1 φs2 φs3 : List 𝓕.CrAnFieldOp) : lemma summerCommute_jacobi_ofCrAnListF (φs1 φs2 φs3 : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs1, [ofCrAnListF φs2, ofCrAnListF φs3]ₛca]ₛca = [ofCrAnListF φs1, [ofCrAnListF φs2, ofCrAnListF φs3]ₛF]ₛF =
𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs3) • 𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs3) •
(- 𝓢(𝓕 |>ₛ φs2, 𝓕 |>ₛ φs3) • [ofCrAnListF φs3, [ofCrAnListF φs1, ofCrAnListF φs2]ₛca]ₛca - (- 𝓢(𝓕 |>ₛ φs2, 𝓕 |>ₛ φs3) • [ofCrAnListF φs3, [ofCrAnListF φs1, ofCrAnListF φs2]ₛF]ₛF -
𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs2) • [ofCrAnListF φs2, [ofCrAnListF φs3, ofCrAnListF φs1]ₛca]ₛca) := by 𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs2) • [ofCrAnListF φs2, [ofCrAnListF φs3, ofCrAnListF φs1]ₛF]ₛF) := by
repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF] repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF]
simp only [instCommGroup, map_sub, map_smul, neg_smul] simp only [instCommGroup, map_sub, map_smul, neg_smul]
repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF] repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF]
@ -501,16 +501,16 @@ lemma summerCommute_jacobi_ofCrAnListF (φs1 φs2 φs3 : List 𝓕.CrAnFieldOp)
lemma superCommuteF_grade {a b : 𝓕.FieldOpFreeAlgebra} {f1 f2 : FieldStatistic} lemma superCommuteF_grade {a b : 𝓕.FieldOpFreeAlgebra} {f1 f2 : FieldStatistic}
(ha : a ∈ statisticSubmodule f1) (hb : b ∈ statisticSubmodule f2) : (ha : a ∈ statisticSubmodule f1) (hb : b ∈ statisticSubmodule f2) :
[a, b]ₛca ∈ statisticSubmodule (f1 + f2) := by [a, b]ₛF ∈ statisticSubmodule (f1 + f2) := by
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule f2) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule f2) : Prop :=
[a, a2]ₛca ∈ statisticSubmodule (f1 + f2) [a, a2]ₛF ∈ statisticSubmodule (f1 + f2)
change p b hb change p b hb
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
obtain ⟨φs, rfl, hφs⟩ := hx obtain ⟨φs, rfl, hφs⟩ := hx
simp only [add_eq_mul, instCommGroup, p] simp only [add_eq_mul, instCommGroup, p]
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule f1) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule f1) : Prop :=
[a2, ofCrAnListF φs]ₛca ∈ statisticSubmodule (f1 + f2) [a2, ofCrAnListF φs]ₛF ∈ statisticSubmodule (f1 + f2)
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
@ -543,15 +543,15 @@ lemma superCommuteF_grade {a b : 𝓕.FieldOpFreeAlgebra} {f1 f2 : FieldStatisti
lemma superCommuteF_bosonic_bosonic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_bosonic_bosonic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule bosonic) (hb : b ∈ statisticSubmodule bosonic) : (ha : a ∈ statisticSubmodule bosonic) (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛca = a * b - b * a := by [a, b]ₛF = a * b - b * a := by
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a, a2]ₛca = a * a2 - a2 * a [a, a2]ₛF = a * a2 - a2 * a
change p b hb change p b hb
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
obtain ⟨φs, rfl, hφs⟩ := hx obtain ⟨φs, rfl, hφs⟩ := hx
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a2, ofCrAnListF φs]ₛca = a2 * ofCrAnListF φs - ofCrAnListF φs * a2 [a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs - ofCrAnListF φs * a2
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
@ -576,15 +576,15 @@ lemma superCommuteF_bosonic_bosonic {a b : 𝓕.FieldOpFreeAlgebra}
lemma superCommuteF_bosonic_fermionic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_bosonic_fermionic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule bosonic) (hb : b ∈ statisticSubmodule fermionic) : (ha : a ∈ statisticSubmodule bosonic) (hb : b ∈ statisticSubmodule fermionic) :
[a, b]ₛca = a * b - b * a := by [a, b]ₛF = a * b - b * a := by
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a, a2]ₛca = a * a2 - a2 * a [a, a2]ₛF = a * a2 - a2 * a
change p b hb change p b hb
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
obtain ⟨φs, rfl, hφs⟩ := hx obtain ⟨φs, rfl, hφs⟩ := hx
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a2, ofCrAnListF φs]ₛca = a2 * ofCrAnListF φs - ofCrAnListF φs * a2 [a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs - ofCrAnListF φs * a2
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
@ -609,15 +609,15 @@ lemma superCommuteF_bosonic_fermionic {a b : 𝓕.FieldOpFreeAlgebra}
lemma superCommuteF_fermionic_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_fermionic_bonsonic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule bosonic) : (ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛca = a * b - b * a := by [a, b]ₛF = a * b - b * a := by
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule bosonic) : Prop :=
[a, a2]ₛca = a * a2 - a2 * a [a, a2]ₛF = a * a2 - a2 * a
change p b hb change p b hb
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
obtain ⟨φs, rfl, hφs⟩ := hx obtain ⟨φs, rfl, hφs⟩ := hx
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a2, ofCrAnListF φs]ₛca = a2 * ofCrAnListF φs - ofCrAnListF φs * a2 [a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs - ofCrAnListF φs * a2
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
@ -641,7 +641,7 @@ lemma superCommuteF_fermionic_bonsonic {a b : 𝓕.FieldOpFreeAlgebra}
· exact hb · exact hb
lemma superCommuteF_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} (hb : b ∈ statisticSubmodule bosonic) : lemma superCommuteF_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛca = a * b - b * a := by [a, b]ₛF = a * b - b * a := by
rw [← bosonicProjF_add_fermionicProjF a] rw [← bosonicProjF_add_fermionicProjF a]
simp only [map_add, LinearMap.add_apply] simp only [map_add, LinearMap.add_apply]
rw [superCommuteF_bosonic_bosonic (by simp) hb, superCommuteF_fermionic_bonsonic (by simp) hb] rw [superCommuteF_bosonic_bosonic (by simp) hb, superCommuteF_fermionic_bonsonic (by simp) hb]
@ -649,7 +649,7 @@ lemma superCommuteF_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} (hb : b ∈ statist
abel abel
lemma bosonic_superCommuteF {a b : 𝓕.FieldOpFreeAlgebra} (ha : a ∈ statisticSubmodule bosonic) : lemma bosonic_superCommuteF {a b : 𝓕.FieldOpFreeAlgebra} (ha : a ∈ statisticSubmodule bosonic) :
[a, b]ₛca = a * b - b * a := by [a, b]ₛF = a * b - b * a := by
rw [← bosonicProjF_add_fermionicProjF b] rw [← bosonicProjF_add_fermionicProjF b]
simp only [map_add, LinearMap.add_apply] simp only [map_add, LinearMap.add_apply]
rw [superCommuteF_bosonic_bosonic ha (by simp), superCommuteF_bosonic_fermionic ha (by simp)] rw [superCommuteF_bosonic_bosonic ha (by simp), superCommuteF_bosonic_fermionic ha (by simp)]
@ -658,27 +658,27 @@ lemma bosonic_superCommuteF {a b : 𝓕.FieldOpFreeAlgebra} (ha : a ∈ statisti
lemma superCommuteF_bonsonic_symm {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_bonsonic_symm {a b : 𝓕.FieldOpFreeAlgebra}
(hb : b ∈ statisticSubmodule bosonic) : (hb : b ∈ statisticSubmodule bosonic) :
[a, b]ₛca = - [b, a]ₛca := by [a, b]ₛF = - [b, a]ₛF := by
rw [bosonic_superCommuteF hb, superCommuteF_bonsonic hb] rw [bosonic_superCommuteF hb, superCommuteF_bonsonic hb]
simp simp
lemma bonsonic_superCommuteF_symm {a b : 𝓕.FieldOpFreeAlgebra} lemma bonsonic_superCommuteF_symm {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule bosonic) : (ha : a ∈ statisticSubmodule bosonic) :
[a, b]ₛca = - [b, a]ₛca := by [a, b]ₛF = - [b, a]ₛF := by
rw [bosonic_superCommuteF ha, superCommuteF_bonsonic ha] rw [bosonic_superCommuteF ha, superCommuteF_bonsonic ha]
simp simp
lemma superCommuteF_fermionic_fermionic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_fermionic_fermionic {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule fermionic) : (ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule fermionic) :
[a, b]ₛca = a * b + b * a := by [a, b]ₛF = a * b + b * a := by
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a, a2]ₛca = a * a2 + a2 * a [a, a2]ₛF = a * a2 + a2 * a
change p b hb change p b hb
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
obtain ⟨φs, rfl, hφs⟩ := hx obtain ⟨φs, rfl, hφs⟩ := hx
let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop := let p (a2 : 𝓕.FieldOpFreeAlgebra) (hx : a2 ∈ statisticSubmodule fermionic) : Prop :=
[a2, ofCrAnListF φs]ₛca = a2 * ofCrAnListF φs + ofCrAnListF φs * a2 [a2, ofCrAnListF φs]ₛF = a2 * ofCrAnListF φs + ofCrAnListF φs * a2
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
· intro x hx · intro x hx
@ -703,13 +703,13 @@ lemma superCommuteF_fermionic_fermionic {a b : 𝓕.FieldOpFreeAlgebra}
lemma superCommuteF_fermionic_fermionic_symm {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_fermionic_fermionic_symm {a b : 𝓕.FieldOpFreeAlgebra}
(ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule fermionic) : (ha : a ∈ statisticSubmodule fermionic) (hb : b ∈ statisticSubmodule fermionic) :
[a, b]ₛca = [b, a]ₛca := by [a, b]ₛF = [b, a]ₛF := by
rw [superCommuteF_fermionic_fermionic ha hb] rw [superCommuteF_fermionic_fermionic ha hb]
rw [superCommuteF_fermionic_fermionic hb ha] rw [superCommuteF_fermionic_fermionic hb ha]
abel abel
lemma superCommuteF_expand_bosonicProjF_fermionicProjF (a b : 𝓕.FieldOpFreeAlgebra) : lemma superCommuteF_expand_bosonicProjF_fermionicProjF (a b : 𝓕.FieldOpFreeAlgebra) :
[a, b]ₛca = bosonicProjF a * bosonicProjF b - bosonicProjF b * bosonicProjF a + [a, b]ₛF = bosonicProjF a * bosonicProjF b - bosonicProjF b * bosonicProjF a +
bosonicProjF a * fermionicProjF b - fermionicProjF b * bosonicProjF a + bosonicProjF a * fermionicProjF b - fermionicProjF b * bosonicProjF a +
fermionicProjF a * bosonicProjF b - bosonicProjF b * fermionicProjF a + fermionicProjF a * bosonicProjF b - bosonicProjF b * fermionicProjF a +
fermionicProjF a * fermionicProjF b + fermionicProjF b * fermionicProjF a := by fermionicProjF a * fermionicProjF b + fermionicProjF b * fermionicProjF a := by
@ -722,8 +722,8 @@ lemma superCommuteF_expand_bosonicProjF_fermionicProjF (a b : 𝓕.FieldOpFreeAl
abel abel
lemma superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic (φs φs' : List 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic (φs φs' : List 𝓕.CrAnFieldOp) :
[ofCrAnListF φs, ofCrAnListF φs']ₛca ∈ statisticSubmodule bosonic [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule bosonic
[ofCrAnListF φs, ofCrAnListF φs']ₛca ∈ statisticSubmodule fermionic := by [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule fermionic := by
by_cases h1 : (𝓕 |>ₛ φs) = bosonic <;> by_cases h2 : (𝓕 |>ₛ φs') = bosonic by_cases h1 : (𝓕 |>ₛ φs) = bosonic <;> by_cases h2 : (𝓕 |>ₛ φs') = bosonic
· left · left
have h : bosonic = bosonic + bosonic := by have h : bosonic = bosonic + bosonic := by
@ -759,14 +759,14 @@ lemma superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic (φs φs' : Lis
apply ofCrAnListF_mem_statisticSubmodule_of _ _ (by simpa using h2) apply ofCrAnListF_mem_statisticSubmodule_of _ _ (by simpa using h2)
lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic (φ φ' : 𝓕.CrAnFieldOp) : lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic (φ φ' : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ, ofCrAnOpF φ']ₛca ∈ statisticSubmodule bosonic [ofCrAnOpF φ, ofCrAnOpF φ']ₛF ∈ statisticSubmodule bosonic
[ofCrAnOpF φ, ofCrAnOpF φ']ₛca ∈ statisticSubmodule fermionic := by [ofCrAnOpF φ, ofCrAnOpF φ']ₛF ∈ statisticSubmodule fermionic := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
exact superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [φ'] exact superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [φ']
lemma superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) : lemma superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca ∈ statisticSubmodule bosonic [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF ∈ statisticSubmodule bosonic
[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca ∈ statisticSubmodule fermionic := by [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF ∈ statisticSubmodule fermionic := by
rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ2 φ3 with hs | hs rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ2 φ3 with hs | hs
<;> rcases ofCrAnOpF_bosonic_or_fermionic φ1 with h1 | h1 <;> rcases ofCrAnOpF_bosonic_or_fermionic φ1 with h1 | h1
· left · left
@ -796,12 +796,12 @@ lemma superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic (φ1 φ2 φ3 :
lemma superCommuteF_bosonic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra) (φs : List 𝓕.CrAnFieldOp) lemma superCommuteF_bosonic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra) (φs : List 𝓕.CrAnFieldOp)
(ha : a ∈ statisticSubmodule bosonic) : (ha : a ∈ statisticSubmodule bosonic) :
[a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length),
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) := by ofCrAnListF (φs.drop (n + 1)) := by
let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule bosonic) : Prop := let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule bosonic) : Prop :=
[a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length),
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) ofCrAnListF (φs.drop (n + 1))
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
@ -825,12 +825,12 @@ lemma superCommuteF_bosonic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra) (φ
lemma superCommuteF_fermionic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra) lemma superCommuteF_fermionic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra)
(φs : List 𝓕.CrAnFieldOp) (ha : a ∈ statisticSubmodule fermionic) : (φs : List 𝓕.CrAnFieldOp) (ha : a ∈ statisticSubmodule fermionic) :
[a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) • [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) •
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) := by ofCrAnListF (φs.drop (n + 1)) := by
let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule fermionic) : Prop := let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule fermionic) : Prop :=
[a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) • [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) •
ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF *
ofCrAnListF (φs.drop (n + 1)) ofCrAnListF (φs.drop (n + 1))
change p a ha change p a ha
apply Submodule.span_induction (p := p) apply Submodule.span_induction (p := p)
@ -858,9 +858,9 @@ lemma superCommuteF_fermionic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra)
· exact ha · exact ha
lemma statistic_neq_of_superCommuteF_fermionic {φs φs' : List 𝓕.CrAnFieldOp} lemma statistic_neq_of_superCommuteF_fermionic {φs φs' : List 𝓕.CrAnFieldOp}
(h : [ofCrAnListF φs, ofCrAnListF φs']ₛca ∈ statisticSubmodule fermionic) : (h : [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule fermionic) :
(𝓕 |>ₛ φs) ≠ (𝓕 |>ₛ φs') [ofCrAnListF φs, ofCrAnListF φs']ₛca = 0 := by (𝓕 |>ₛ φs) ≠ (𝓕 |>ₛ φs') [ofCrAnListF φs, ofCrAnListF φs']ₛF = 0 := by
by_cases h0 : [ofCrAnListF φs, ofCrAnListF φs']ₛca = 0 by_cases h0 : [ofCrAnListF φs, ofCrAnListF φs']ₛF = 0
· simp [h0] · simp [h0]
simp only [ne_eq, h0, or_false] simp only [ne_eq, h0, or_false]
by_contra hn by_contra hn

View file

@ -161,7 +161,7 @@ lemma timeOrderF_ofFieldOpF_ofFieldOpF_not_ordered_eq_timeOrderF {φ ψ : 𝓕.F
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) : {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) :
𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = 0 := by 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF) = 0 := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF]
simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul] simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul]
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton,
@ -179,28 +179,28 @@ lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) : {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) :
𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = 0 := by 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF) = 0 := by
rw [timeOrderF_timeOrderF_right, rw [timeOrderF_timeOrderF_right,
timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h] timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h]
simp simp
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) : {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) :
𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * a) = 0 := by 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * a) = 0 := by
rw [timeOrderF_timeOrderF_left, rw [timeOrderF_timeOrderF_left,
timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h] timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h]
simp simp
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_mid lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_mid
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a b : 𝓕.FieldOpFreeAlgebra) : {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a b : 𝓕.FieldOpFreeAlgebra) :
𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = 0 := by 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) = 0 := by
rw [timeOrderF_timeOrderF_mid, rw [timeOrderF_timeOrderF_mid,
timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h] timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h]
simp simp
lemma timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel lemma timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel
{φ1 φ2 : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ1 φ2) (a : 𝓕.FieldOpFreeAlgebra) : {φ1 φ2 : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ1 φ2) (a : 𝓕.FieldOpFreeAlgebra) :
𝓣ᶠ([a, [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca]ₛca) = 0 := by 𝓣ᶠ([a, [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF]ₛF) = 0 := by
rw [← bosonicProjF_add_fermionicProjF a] rw [← bosonicProjF_add_fermionicProjF a]
simp only [map_add, LinearMap.add_apply] simp only [map_add, LinearMap.add_apply]
rw [bosonic_superCommuteF (Submodule.coe_mem (bosonicProjF a))] rw [bosonic_superCommuteF (Submodule.coe_mem (bosonicProjF a))]
@ -224,7 +224,7 @@ lemma timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel
lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel
{φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ1 φ2) {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ1 φ2)
(h13 : ¬ crAnTimeOrderRel φ1 φ3) : (h13 : ¬ crAnTimeOrderRel φ1 φ3) :
𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) = 0 := by 𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF) = 0 := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
rw [summerCommute_jacobi_ofCrAnListF] rw [summerCommute_jacobi_ofCrAnListF]
simp only [instCommGroup.eq_1, ofList_singleton, ofCrAnListF_singleton, neg_smul, map_smul, simp only [instCommGroup.eq_1, ofList_singleton, ofCrAnListF_singleton, neg_smul, map_smul,
@ -240,7 +240,7 @@ lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel
lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel' lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel'
{φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ2 φ1) {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ2 φ1)
(h13 : ¬ crAnTimeOrderRel φ3 φ1) : (h13 : ¬ crAnTimeOrderRel φ3 φ1) :
𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) = 0 := by 𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF) = 0 := by
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
rw [summerCommute_jacobi_ofCrAnListF] rw [summerCommute_jacobi_ofCrAnListF]
simp only [instCommGroup.eq_1, ofList_singleton, ofCrAnListF_singleton, neg_smul, map_smul, simp only [instCommGroup.eq_1, ofList_singleton, ofCrAnListF_singleton, neg_smul, map_smul,
@ -258,7 +258,7 @@ lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_all_not_crAnTimeOrderRel
(crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧ (crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧
crAnTimeOrderRel φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧ crAnTimeOrderRel φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧
crAnTimeOrderRel φ3 φ1 ∧ crAnTimeOrderRel φ3 φ2)) : crAnTimeOrderRel φ3 φ1 ∧ crAnTimeOrderRel φ3 φ2)) :
𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) = 0 := by 𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF) = 0 := by
simp only [not_and] at h simp only [not_and] at h
by_cases h23 : ¬ crAnTimeOrderRel φ2 φ3 by_cases h23 : ¬ crAnTimeOrderRel φ2 φ3
· simp_all only [IsEmpty.forall_iff, implies_true] · simp_all only [IsEmpty.forall_iff, implies_true]
@ -293,7 +293,7 @@ lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_all_not_crAnTimeOrderRel
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_eq_time lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_eq_time
{φ ψ : 𝓕.CrAnFieldOp} (h1 : crAnTimeOrderRel φ ψ) (h2 : crAnTimeOrderRel ψ φ) : {φ ψ : 𝓕.CrAnFieldOp} (h1 : crAnTimeOrderRel φ ψ) (h2 : crAnTimeOrderRel ψ φ) :
𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca := by 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF) = [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF := by
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF] rw [superCommuteF_ofCrAnOpF_ofCrAnOpF]
simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul] simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul]
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton,

View file

@ -66,29 +66,29 @@ def fieldOpToCreateAnnihilateTypeCongr : {i j : 𝓕.FieldOp} → i = j →
For a field specification `𝓕`, the (sigma) type `𝓕.CrAnFieldOp` For a field specification `𝓕`, the (sigma) type `𝓕.CrAnFieldOp`
corresponds to the type of creation and annihilation parts of field operators. corresponds to the type of creation and annihilation parts of field operators.
It formally defined to consist of the following elements: It formally defined to consist of the following elements:
- for each incoming asymptotic field operator `φ` in `𝓕.FieldOp` an element - For each incoming asymptotic field operator `φ` in `𝓕.FieldOp` an element
written as `⟨φ, ()⟩` in `𝓕.CrAnFieldOp`, corresponding to the creation part of `φ`. written as `⟨φ, ()⟩` in `𝓕.CrAnFieldOp`, corresponding to the creation part of `φ`.
Here `φ` has no annihilation part. (Here `()` is the unique element of `Unit`.) Here `φ` has no annihilation part. (Here `()` is the unique element of `Unit`.)
- for each position field operator `φ` in `𝓕.FieldOp` an element of `𝓕.CrAnFieldOp` - For each position field operator `φ` in `𝓕.FieldOp` an element of `𝓕.CrAnFieldOp`
written as `⟨φ, .create⟩`, corresponding to the creation part of `φ`. written as `⟨φ, .create⟩`, corresponding to the creation part of `φ`.
- for each position field operator `φ` in `𝓕.FieldOp` an element of `𝓕.CrAnFieldOp` - For each position field operator `φ` in `𝓕.FieldOp` an element of `𝓕.CrAnFieldOp`
written as `⟨φ, .annihilate⟩`, corresponding to the annihilation part of `φ`. written as `⟨φ, .annihilate⟩`, corresponding to the annihilation part of `φ`.
- for each outgoing asymptotic field operator `φ` in `𝓕.FieldOp` an element - For each outgoing asymptotic field operator `φ` in `𝓕.FieldOp` an element
written as `⟨φ, ()⟩` in `𝓕.CrAnFieldOp`, corresponding to the annihilation part of `φ`. written as `⟨φ, ()⟩` in `𝓕.CrAnFieldOp`, corresponding to the annihilation part of `φ`.
Here `φ` has no creation part. (Here `()` is the unique element of `Unit`.) Here `φ` has no creation part. (Here `()` is the unique element of `Unit`.)
As an example, if `f` corresponds to a Weyl-fermion field, it would contribute As an example, if `f` corresponds to a Weyl-fermion field, it would contribute
the following elements to `𝓕.CrAnFieldOp` the following elements to `𝓕.CrAnFieldOp`
- an element corresponding to incoming asymptotic operators for each spin `s`: `a(p, s)`. - For each spin `s`, an element corresponding to an incoming asymptotic operator: `a(p, s)`.
- an element corresponding to the creation parts of position operators for each each Lorentz - For each each Lorentz
index `a`: index `a`, an element corresponding to the creation part of a position operator:
`∑ s, ∫ d³p/(…) (xₐ (p,s) a(p, s) e ^ (-i p x))`. `∑ s, ∫ d³p/(…) (xₐ (p,s) a(p, s) e ^ (-i p x))`.
- an element corresponding to annihilation parts of position operator, - For each each Lorentz
for each each Lorentz index `a`: index `a`,an element corresponding to annihilation part of a position operator:
`∑ s, ∫ d³p/(…) (yₐ(p,s) a†(p, s) e ^ (-i p x))`. `∑ s, ∫ d³p/(…) (yₐ(p,s) a†(p, s) e ^ (-i p x))`.
- an element corresponding to outgoing asymptotic operators for each spin `s`: `a†(p, s)`. - For each spin `s`, element corresponding to an outgoing asymptotic operator: `a†(p, s)`.
-/ -/
def CrAnFieldOp : Type := Σ (s : 𝓕.FieldOp), 𝓕.fieldOpToCrAnType s def CrAnFieldOp : Type := Σ (s : 𝓕.FieldOp), 𝓕.fieldOpToCrAnType s

View file

@ -25,24 +25,25 @@ open HepLean.Fin
-/ -/
/-- Given a Wick contraction `φsΛ` for a list `φs` of `𝓕.FieldOp`, /-- Given a Wick contraction `φsΛ` for a list `φs` of `𝓕.FieldOp`,
an element `φ` of `𝓕.FieldOp`, an `i ≤ φs.length` and a `j` which is either `none` or an element `φ` of `𝓕.FieldOp`, an `i ≤ φs.length` and a `k`
in `Option φsΛ.uncontracted` i.e. is either `none` or
some element of `φsΛ.uncontracted`, the new Wick contraction some element of `φsΛ.uncontracted`, the new Wick contraction
`φsΛ.insertAndContract φ i j` is defined by inserting `φ` into `φs` after `φsΛ.insertAndContract φ i k` is defined by inserting `φ` into `φs` after
the first `i`-elements and moving the values representing the contracted pairs in `φsΛ` the first `i`-elements and moving the values representing the contracted pairs in `φsΛ`
accordingly. accordingly.
If `j` is not `none`, but rather `some j`, to this contraction is added the contraction If `k` is not `none`, but rather `some k`, to this contraction is added the contraction
of `φ` (at position `i`) with the new position of `j` after `φ` is added. of `φ` (at position `i`) with the new position of `k` after `φ` is added.
In other words, `φsΛ.insertAndContract φ i j` is formed by adding `φ` to `φs` at position `i`, In other words, `φsΛ.insertAndContract φ i k` is formed by adding `φ` to `φs` at position `i`,
and contracting `φ` with the field originally at position `j` if `j` is not `none`. and contracting `φ` with the field originally at position `k` if `k` is not `none`.
It is a Wick contraction of the list `φs.insertIdx φ i` corresponding to `φs` with `φ` inserted at It is a Wick contraction of the list `φs.insertIdx φ i` corresponding to `φs` with `φ` inserted at
position `i`. position `i`.
The notation `φsΛ ↩Λ φ i j` is used to denote `φsΛ.insertAndContract φ i j`. -/ The notation `φsΛ ↩Λ φ i k` is used to denote `φsΛ.insertAndContract φ i k`. -/
def insertAndContract {φs : List 𝓕.FieldOp} (φ : 𝓕.FieldOp) (φsΛ : WickContraction φs.length) def insertAndContract {φs : List 𝓕.FieldOp} (φ : 𝓕.FieldOp) (φsΛ : WickContraction φs.length)
(i : Fin φs.length.succ) (j : Option φsΛ.uncontracted) : (i : Fin φs.length.succ) (k : Option φsΛ.uncontracted) :
WickContraction (φs.insertIdx i φ).length := WickContraction (φs.insertIdx i φ).length :=
congr (by simp) (φsΛ.insertAndContractNat i j) congr (by simp) (φsΛ.insertAndContractNat i k)
@[inherit_doc insertAndContract] @[inherit_doc insertAndContract]
scoped[WickContraction] notation φs "↩Λ" φ:max i:max j => insertAndContract φ φs i j scoped[WickContraction] notation φs "↩Λ" φ:max i:max j => insertAndContract φ φs i j

View file

@ -34,7 +34,14 @@ def signFinset (c : WickContraction n) (i1 i2 : Fin n) : Finset (Fin n) :=
to the number of `fermionic`-`fermionic` exchanges that must be done to put to the number of `fermionic`-`fermionic` exchanges that must be done to put
contracted pairs within `φsΛ` next to one another, starting recursively contracted pairs within `φsΛ` next to one another, starting recursively
from the contracted pair from the contracted pair
whose first element occurs at the left-most position. -/ whose first element occurs at the left-most position.
As an example, if `[φ1, φ2, φ3, φ4]` correspond to fermionic fields then the sign
associated with
- `{{0, 1}}` is `1`
- `{{0, 1}, {2, 3}}` is `1`
- `{{0, 2}, {1, 3}}` is `-1`
-/
def sign (φs : List 𝓕.FieldOp) (φsΛ : WickContraction φs.length) : := def sign (φs : List 𝓕.FieldOp) (φsΛ : WickContraction φs.length) : :=
∏ (a : φsΛ.1), 𝓢(𝓕 |>ₛ φs[φsΛ.sndFieldOfContract a], ∏ (a : φsΛ.1), 𝓢(𝓕 |>ₛ φs[φsΛ.sndFieldOfContract a],
𝓕 |>ₛ ⟨φs.get, φsΛ.signFinset (φsΛ.fstFieldOfContract a) (φsΛ.sndFieldOfContract a)⟩) 𝓕 |>ₛ ⟨φs.get, φsΛ.signFinset (φsΛ.fstFieldOfContract a) (φsΛ.sndFieldOfContract a)⟩)