reactor: Rename anPart and crPart

This commit is contained in:
jstoobysmith 2025-01-30 06:24:17 +00:00
parent d25eab1754
commit f7e669910c
9 changed files with 252 additions and 241 deletions

View file

@ -22,8 +22,8 @@ The main structures defined in this module are:
* `ofCrAnState` - Maps a creation/annihilation state to the algebra
* `ofCrAnList` - Maps a list of creation/annihilation states to the algebra
* `ofState` - Maps a state to a sum of creation and annihilation operators
* `crPart` - The creation part of a state in the algebra
* `anPart` - The annihilation part of a state in the algebra
* `crPartF` - The creation part of a state in the algebra
* `anPartF` - The annihilation part of a state in the algebra
* `superCommuteF` - The super commutator on the algebra
The key lemmas show how these operators interact, particularly focusing on the
@ -113,55 +113,55 @@ lemma ofStateList_sum (φs : List 𝓕.States) :
/-- The algebra map taking an element of the free-state algbra to
the part of it in the creation and annihlation free algebra
spanned by creation operators. -/
def crPart : 𝓕.States → 𝓕.CrAnAlgebra := fun φ =>
def crPartF : 𝓕.States → 𝓕.CrAnAlgebra := fun φ =>
match φ with
| States.inAsymp φ => ofCrAnState ⟨States.inAsymp φ, ()⟩
| States.position φ => ofCrAnState ⟨States.position φ, CreateAnnihilate.create⟩
| States.outAsymp _ => 0
@[simp]
lemma crPart_negAsymp (φ : 𝓕.IncomingAsymptotic) :
crPart (States.inAsymp φ) = ofCrAnState ⟨States.inAsymp φ, ()⟩ := by
simp [crPart]
lemma crPartF_negAsymp (φ : 𝓕.IncomingAsymptotic) :
crPartF (States.inAsymp φ) = ofCrAnState ⟨States.inAsymp φ, ()⟩ := by
simp [crPartF]
@[simp]
lemma crPart_position (φ : 𝓕.PositionStates) :
crPart (States.position φ) =
lemma crPartF_position (φ : 𝓕.PositionStates) :
crPartF (States.position φ) =
ofCrAnState ⟨States.position φ, CreateAnnihilate.create⟩ := by
simp [crPart]
simp [crPartF]
@[simp]
lemma crPart_posAsymp (φ : 𝓕.OutgoingAsymptotic) :
crPart (States.outAsymp φ) = 0 := by
simp [crPart]
lemma crPartF_posAsymp (φ : 𝓕.OutgoingAsymptotic) :
crPartF (States.outAsymp φ) = 0 := by
simp [crPartF]
/-- The algebra map taking an element of the free-state algbra to
the part of it in the creation and annihilation free algebra
spanned by annihilation operators. -/
def anPart : 𝓕.States → 𝓕.CrAnAlgebra := fun φ =>
def anPartF : 𝓕.States → 𝓕.CrAnAlgebra := fun φ =>
match φ with
| States.inAsymp _ => 0
| States.position φ => ofCrAnState ⟨States.position φ, CreateAnnihilate.annihilate⟩
| States.outAsymp φ => ofCrAnState ⟨States.outAsymp φ, ()⟩
@[simp]
lemma anPart_negAsymp (φ : 𝓕.IncomingAsymptotic) :
anPart (States.inAsymp φ) = 0 := by
simp [anPart]
lemma anPartF_negAsymp (φ : 𝓕.IncomingAsymptotic) :
anPartF (States.inAsymp φ) = 0 := by
simp [anPartF]
@[simp]
lemma anPart_position (φ : 𝓕.PositionStates) :
anPart (States.position φ) =
lemma anPartF_position (φ : 𝓕.PositionStates) :
anPartF (States.position φ) =
ofCrAnState ⟨States.position φ, CreateAnnihilate.annihilate⟩ := by
simp [anPart]
simp [anPartF]
@[simp]
lemma anPart_posAsymp (φ : 𝓕.OutgoingAsymptotic) :
anPart (States.outAsymp φ) = ofCrAnState ⟨States.outAsymp φ, ()⟩ := by
simp [anPart]
lemma anPartF_posAsymp (φ : 𝓕.OutgoingAsymptotic) :
anPartF (States.outAsymp φ) = ofCrAnState ⟨States.outAsymp φ, ()⟩ := by
simp [anPartF]
lemma ofState_eq_crPart_add_anPart (φ : 𝓕.States) :
ofState φ = crPart φ + anPart φ := by
lemma ofState_eq_crPartF_add_anPartF (φ : 𝓕.States) :
ofState φ = crPartF φ + anPartF φ := by
rw [ofState]
cases φ with
| inAsymp φ => simp [statesToCrAnType]

View file

@ -92,28 +92,28 @@ lemma normalOrderF_mul_annihilate (φ : 𝓕.CrAnStates)
rw [← ofCrAnList_singleton, ← ofCrAnList_append, ofCrAnList_singleton,
normalOrderF_ofCrAnList_append_annihilate φ hφ]
lemma normalOrderF_crPart_mul (φ : 𝓕.States) (a : CrAnAlgebra 𝓕) :
𝓝ᶠ(crPart φ * a) =
crPart φ * 𝓝ᶠ(a) := by
lemma normalOrderF_crPartF_mul (φ : 𝓕.States) (a : CrAnAlgebra 𝓕) :
𝓝ᶠ(crPartF φ * a) =
crPartF φ * 𝓝ᶠ(a) := by
match φ with
| .inAsymp φ =>
rw [crPart]
rw [crPartF]
exact normalOrderF_create_mul ⟨States.inAsymp φ, ()⟩ rfl a
| .position φ =>
rw [crPart]
rw [crPartF]
exact normalOrderF_create_mul _ rfl _
| .outAsymp φ => simp
lemma normalOrderF_mul_anPart (φ : 𝓕.States) (a : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * anPart φ) =
𝓝ᶠ(a) * anPart φ := by
lemma normalOrderF_mul_anPartF (φ : 𝓕.States) (a : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * anPartF φ) =
𝓝ᶠ(a) * anPartF φ := by
match φ with
| .inAsymp φ => simp
| .position φ =>
rw [anPart]
rw [anPartF]
exact normalOrderF_mul_annihilate _ rfl _
| .outAsymp φ =>
rw [anPart]
rw [anPartF]
refine normalOrderF_mul_annihilate _ rfl _
/-!
@ -181,84 +181,84 @@ lemma normalOrderF_superCommuteF_annihilate_create (φc φa : 𝓕.CrAnStates)
Algebra.smul_mul_assoc, map_neg, map_smul, neg_eq_zero, smul_eq_zero]
exact Or.inr (normalOrderF_superCommuteF_create_annihilate φc φa hφc hφa ..)
lemma normalOrderF_swap_crPart_anPart (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * (crPart φ) * (anPart φ') * b) =
lemma normalOrderF_swap_crPartF_anPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * (crPartF φ) * (anPartF φ') * b) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
𝓝ᶠ(a * (anPart φ') * (crPart φ) * b) := by
𝓝ᶠ(a * (anPartF φ') * (crPartF φ) * b) := by
match φ, φ' with
| _, .inAsymp φ' => simp
| .outAsymp φ, _ => simp
| .position φ, .position φ' =>
simp only [crPart_position, anPart_position, instCommGroup.eq_1]
simp only [crPartF_position, anPartF_position, instCommGroup.eq_1]
rw [normalOrderF_swap_create_annihlate]
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
rfl; rfl
| .inAsymp φ, .outAsymp φ' =>
simp only [crPart_negAsymp, anPart_posAsymp, instCommGroup.eq_1]
simp only [crPartF_negAsymp, anPartF_posAsymp, instCommGroup.eq_1]
rw [normalOrderF_swap_create_annihlate]
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
rfl; rfl
| .inAsymp φ, .position φ' =>
simp only [crPart_negAsymp, anPart_position, instCommGroup.eq_1]
simp only [crPartF_negAsymp, anPartF_position, instCommGroup.eq_1]
rw [normalOrderF_swap_create_annihlate]
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
rfl; rfl
| .position φ, .outAsymp φ' =>
simp only [crPart_position, anPart_posAsymp, instCommGroup.eq_1]
simp only [crPartF_position, anPartF_posAsymp, instCommGroup.eq_1]
rw [normalOrderF_swap_create_annihlate]
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
rfl; rfl
/-!
## Normal ordering for an anPart and crPart
## Normal ordering for an anPartF and crPartF
Using the results from above.
-/
lemma normalOrderF_swap_anPart_crPart (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * (anPart φ) * (crPart φ') * b) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • 𝓝ᶠ(a * (crPart φ') *
(anPart φ) * b) := by
simp [normalOrderF_swap_crPart_anPart, smul_smul]
lemma normalOrderF_swap_anPartF_crPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * (anPartF φ) * (crPartF φ') * b) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • 𝓝ᶠ(a * (crPartF φ') *
(anPartF φ) * b) := by
simp [normalOrderF_swap_crPartF_anPartF, smul_smul]
lemma normalOrderF_superCommuteF_crPart_anPart (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
lemma normalOrderF_superCommuteF_crPartF_anPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * superCommuteF
(crPart φ) (anPart φ') * b) = 0 := by
(crPartF φ) (anPartF φ') * b) = 0 := by
match φ, φ' with
| _, .inAsymp φ' => simp
| .outAsymp φ', _ => simp
| .position φ, .position φ' =>
rw [crPart_position, anPart_position]
rw [crPartF_position, anPartF_position]
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
| .inAsymp φ, .outAsymp φ' =>
rw [crPart_negAsymp, anPart_posAsymp]
rw [crPartF_negAsymp, anPartF_posAsymp]
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
| .inAsymp φ, .position φ' =>
rw [crPart_negAsymp, anPart_position]
rw [crPartF_negAsymp, anPartF_position]
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
| .position φ, .outAsymp φ' =>
rw [crPart_position, anPart_posAsymp]
rw [crPartF_position, anPartF_posAsymp]
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
lemma normalOrderF_superCommuteF_anPart_crPart (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
lemma normalOrderF_superCommuteF_anPartF_crPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
𝓝ᶠ(a * superCommuteF
(anPart φ) (crPart φ') * b) = 0 := by
(anPartF φ) (crPartF φ') * b) = 0 := by
match φ, φ' with
| .inAsymp φ', _ => simp
| _, .outAsymp φ' => simp
| .position φ, .position φ' =>
rw [anPart_position, crPart_position]
rw [anPartF_position, crPartF_position]
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
| .outAsymp φ', .inAsymp φ =>
simp only [anPart_posAsymp, crPart_negAsymp]
simp only [anPartF_posAsymp, crPartF_negAsymp]
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
| .position φ', .inAsymp φ =>
simp only [anPart_position, crPart_negAsymp]
simp only [anPartF_position, crPartF_negAsymp]
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
| .outAsymp φ, .position φ' =>
simp only [anPart_posAsymp, crPart_position]
simp only [anPartF_posAsymp, crPartF_position]
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
/-!
@ -268,53 +268,53 @@ lemma normalOrderF_superCommuteF_anPart_crPart (φ φ' : 𝓕.States) (a b : CrA
-/
@[simp]
lemma normalOrderF_crPart_mul_crPart (φ φ' : 𝓕.States) :
𝓝ᶠ(crPart φ * crPart φ') =
crPart φ * crPart φ' := by
rw [normalOrderF_crPart_mul]
conv_lhs => rw [← mul_one (crPart φ')]
rw [normalOrderF_crPart_mul, normalOrderF_one]
lemma normalOrderF_crPartF_mul_crPartF (φ φ' : 𝓕.States) :
𝓝ᶠ(crPartF φ * crPartF φ') =
crPartF φ * crPartF φ' := by
rw [normalOrderF_crPartF_mul]
conv_lhs => rw [← mul_one (crPartF φ')]
rw [normalOrderF_crPartF_mul, normalOrderF_one]
simp
@[simp]
lemma normalOrderF_anPart_mul_anPart (φ φ' : 𝓕.States) :
𝓝ᶠ(anPart φ * anPart φ') =
anPart φ * anPart φ' := by
rw [normalOrderF_mul_anPart]
conv_lhs => rw [← one_mul (anPart φ)]
rw [normalOrderF_mul_anPart, normalOrderF_one]
lemma normalOrderF_anPartF_mul_anPartF (φ φ' : 𝓕.States) :
𝓝ᶠ(anPartF φ * anPartF φ') =
anPartF φ * anPartF φ' := by
rw [normalOrderF_mul_anPartF]
conv_lhs => rw [← one_mul (anPartF φ)]
rw [normalOrderF_mul_anPartF, normalOrderF_one]
simp
@[simp]
lemma normalOrderF_crPart_mul_anPart (φ φ' : 𝓕.States) :
𝓝ᶠ(crPart φ * anPart φ') =
crPart φ * anPart φ' := by
rw [normalOrderF_crPart_mul]
conv_lhs => rw [← one_mul (anPart φ')]
rw [normalOrderF_mul_anPart, normalOrderF_one]
lemma normalOrderF_crPartF_mul_anPartF (φ φ' : 𝓕.States) :
𝓝ᶠ(crPartF φ * anPartF φ') =
crPartF φ * anPartF φ' := by
rw [normalOrderF_crPartF_mul]
conv_lhs => rw [← one_mul (anPartF φ')]
rw [normalOrderF_mul_anPartF, normalOrderF_one]
simp
@[simp]
lemma normalOrderF_anPart_mul_crPart (φ φ' : 𝓕.States) :
𝓝ᶠ(anPart φ * crPart φ') =
lemma normalOrderF_anPartF_mul_crPartF (φ φ' : 𝓕.States) :
𝓝ᶠ(anPartF φ * crPartF φ') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
(crPart φ' * anPart φ) := by
conv_lhs => rw [← one_mul (anPart φ * crPart φ')]
conv_lhs => rw [← mul_one (1 * (anPart φ *
crPart φ'))]
rw [← mul_assoc, normalOrderF_swap_anPart_crPart]
(crPartF φ' * anPartF φ) := by
conv_lhs => rw [← one_mul (anPartF φ * crPartF φ')]
conv_lhs => rw [← mul_one (1 * (anPartF φ *
crPartF φ'))]
rw [← mul_assoc, normalOrderF_swap_anPartF_crPartF]
simp
lemma normalOrderF_ofState_mul_ofState (φ φ' : 𝓕.States) :
𝓝ᶠ(ofState φ * ofState φ') =
crPart φ * crPart φ' +
crPartF φ * crPartF φ' +
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
(crPart φ' * anPart φ) +
crPart φ * anPart φ' +
anPart φ * anPart φ' := by
rw [ofState_eq_crPart_add_anPart, ofState_eq_crPart_add_anPart, mul_add, add_mul, add_mul]
simp only [map_add, normalOrderF_crPart_mul_crPart, normalOrderF_anPart_mul_crPart,
instCommGroup.eq_1, normalOrderF_crPart_mul_anPart, normalOrderF_anPart_mul_anPart]
(crPartF φ' * anPartF φ) +
crPartF φ * anPartF φ' +
anPartF φ * anPartF φ' := by
rw [ofState_eq_crPartF_add_anPartF, ofState_eq_crPartF_add_anPartF, mul_add, add_mul, add_mul]
simp only [map_add, normalOrderF_crPartF_mul_crPartF, normalOrderF_anPartF_mul_crPartF,
instCommGroup.eq_1, normalOrderF_crPartF_mul_anPartF, normalOrderF_anPartF_mul_anPartF]
abel
/-!
@ -495,12 +495,12 @@ lemma ofCrAnState_mul_normalOrderF_ofStateList_eq_superCommuteF (φ : 𝓕.CrAnS
+ [ofCrAnState φ, 𝓝ᶠ(ofStateList φs')]ₛca := by
simp [← ofCrAnList_singleton, ofCrAnList_mul_normalOrderF_ofStateList_eq_superCommuteF]
lemma anPart_mul_normalOrderF_ofStateList_eq_superCommuteF (φ : 𝓕.States)
lemma anPartF_mul_normalOrderF_ofStateList_eq_superCommuteF (φ : 𝓕.States)
(φs' : List 𝓕.States) :
anPart φ * 𝓝ᶠ(ofStateList φs') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofStateList φs' * anPart φ)
+ [anPart φ, 𝓝ᶠ(ofStateList φs')]ₛca := by
rw [normalOrderF_mul_anPart]
anPartF φ * 𝓝ᶠ(ofStateList φs') =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofStateList φs' * anPartF φ)
+ [anPartF φ, 𝓝ᶠ(ofStateList φs')]ₛca := by
rw [normalOrderF_mul_anPartF]
match φ with
| .inAsymp φ => simp
| .position φ => simp [ofCrAnState_mul_normalOrderF_ofStateList_eq_superCommuteF, crAnStatistics]

View file

@ -95,163 +95,163 @@ lemma superCommuteF_ofStateList_ofState (φs : List 𝓕.States) (φ : 𝓕.Stat
rw [← ofStateList_singleton, superCommuteF_ofStateList_ofStatesList, ofStateList_singleton]
simp
lemma superCommuteF_anPart_crPart (φ φ' : 𝓕.States) :
[anPart φ, crPart φ']ₛca =
anPart φ * crPart φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPart φ' * anPart φ := by
lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.States) :
[anPartF φ, crPartF φ']ₛca =
anPartF φ * crPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * anPartF φ := by
match φ, φ' with
| States.inAsymp φ, _ =>
simp
| _, States.outAsymp φ =>
simp only [crPart_posAsymp, map_zero, mul_zero, instCommGroup.eq_1, smul_zero, zero_mul,
simp only [crPartF_posAsymp, map_zero, mul_zero, instCommGroup.eq_1, smul_zero, zero_mul,
sub_self]
| States.position φ, States.position φ' =>
simp only [anPart_position, crPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_position, crPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.outAsymp φ, States.position φ' =>
simp only [anPart_posAsymp, crPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_posAsymp, crPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.position φ, States.inAsymp φ' =>
simp only [anPart_position, crPart_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_position, crPartF_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp only [List.singleton_append, instCommGroup.eq_1, crAnStatistics,
FieldStatistic.ofList_singleton, Function.comp_apply, crAnStatesToStates_prod, ←
ofCrAnList_append]
| States.outAsymp φ, States.inAsymp φ' =>
simp only [anPart_posAsymp, crPart_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_posAsymp, crPartF_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
lemma superCommuteF_crPart_anPart (φ φ' : 𝓕.States) :
[crPart φ, anPart φ']ₛca =
crPart φ * anPart φ' -
lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.States) :
[crPartF φ, anPartF φ']ₛca =
crPartF φ * anPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
anPart φ' * crPart φ := by
anPartF φ' * crPartF φ := by
match φ, φ' with
| States.outAsymp φ, _ =>
simp only [crPart_posAsymp, map_zero, LinearMap.zero_apply, zero_mul, instCommGroup.eq_1,
simp only [crPartF_posAsymp, map_zero, LinearMap.zero_apply, zero_mul, instCommGroup.eq_1,
mul_zero, sub_self]
| _, States.inAsymp φ =>
simp only [anPart_negAsymp, map_zero, mul_zero, instCommGroup.eq_1, smul_zero, zero_mul,
simp only [anPartF_negAsymp, map_zero, mul_zero, instCommGroup.eq_1, smul_zero, zero_mul,
sub_self]
| States.position φ, States.position φ' =>
simp only [crPart_position, anPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_position, anPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.position φ, States.outAsymp φ' =>
simp only [crPart_position, anPart_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_position, anPartF_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.inAsymp φ, States.position φ' =>
simp only [crPart_negAsymp, anPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_negAsymp, anPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.inAsymp φ, States.outAsymp φ' =>
simp only [crPart_negAsymp, anPart_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_negAsymp, anPartF_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
lemma superCommuteF_crPart_crPart (φ φ' : 𝓕.States) :
[crPart φ, crPart φ']ₛca =
crPart φ * crPart φ' -
lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.States) :
[crPartF φ, crPartF φ']ₛca =
crPartF φ * crPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
crPart φ' * crPart φ := by
crPartF φ' * crPartF φ := by
match φ, φ' with
| States.outAsymp φ, _ =>
simp only [crPart_posAsymp, map_zero, LinearMap.zero_apply, zero_mul, instCommGroup.eq_1,
simp only [crPartF_posAsymp, map_zero, LinearMap.zero_apply, zero_mul, instCommGroup.eq_1,
mul_zero, sub_self]
| _, States.outAsymp φ =>
simp only [crPart_posAsymp, map_zero, mul_zero, instCommGroup.eq_1, smul_zero, zero_mul, sub_self]
simp only [crPartF_posAsymp, map_zero, mul_zero, instCommGroup.eq_1, smul_zero, zero_mul, sub_self]
| States.position φ, States.position φ' =>
simp only [crPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.position φ, States.inAsymp φ' =>
simp only [crPart_position, crPart_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_position, crPartF_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.inAsymp φ, States.position φ' =>
simp only [crPart_negAsymp, crPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_negAsymp, crPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.inAsymp φ, States.inAsymp φ' =>
simp only [crPart_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
lemma superCommuteF_anPart_anPart (φ φ' : 𝓕.States) :
[anPart φ, anPart φ']ₛca =
anPart φ * anPart φ' -
lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.States) :
[anPartF φ, anPartF φ']ₛca =
anPartF φ * anPartF φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
anPart φ' * anPart φ := by
anPartF φ' * anPartF φ := by
match φ, φ' with
| States.inAsymp φ, _ =>
simp
| _, States.inAsymp φ =>
simp
| States.position φ, States.position φ' =>
simp only [anPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.position φ, States.outAsymp φ' =>
simp only [anPart_position, anPart_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_position, anPartF_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.outAsymp φ, States.position φ' =>
simp only [anPart_posAsymp, anPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_posAsymp, anPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
| States.outAsymp φ, States.outAsymp φ' =>
simp only [anPart_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofCrAnList]
simp [crAnStatistics, ← ofCrAnList_append]
lemma superCommuteF_crPart_ofStateList (φ : 𝓕.States) (φs : List 𝓕.States) :
[crPart φ, ofStateList φs]ₛca =
crPart φ * ofStateList φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofStateList φs *
crPart φ := by
lemma superCommuteF_crPartF_ofStateList (φ : 𝓕.States) (φs : List 𝓕.States) :
[crPartF φ, ofStateList φs]ₛca =
crPartF φ * ofStateList φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofStateList φs *
crPartF φ := by
match φ with
| States.inAsymp φ =>
simp only [crPart_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_negAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofStatesList]
simp [crAnStatistics]
| States.position φ =>
simp only [crPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [crPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofStatesList]
simp [crAnStatistics]
| States.outAsymp φ =>
simp
lemma superCommuteF_anPart_ofStateList (φ : 𝓕.States) (φs : List 𝓕.States) :
[anPart φ, ofStateList φs]ₛca =
anPart φ * ofStateList φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) •
ofStateList φs * anPart φ := by
lemma superCommuteF_anPartF_ofStateList (φ : 𝓕.States) (φs : List 𝓕.States) :
[anPartF φ, ofStateList φs]ₛca =
anPartF φ * ofStateList φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) •
ofStateList φs * anPartF φ := by
match φ with
| States.inAsymp φ =>
simp
| States.position φ =>
simp only [anPart_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_position, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofStatesList]
simp [crAnStatistics]
| States.outAsymp φ =>
simp only [anPart_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
simp only [anPartF_posAsymp, instCommGroup.eq_1, Algebra.smul_mul_assoc]
rw [← ofCrAnList_singleton, superCommuteF_ofCrAnList_ofStatesList]
simp [crAnStatistics]
lemma superCommuteF_crPart_ofState (φ φ' : 𝓕.States) :
[crPart φ, ofState φ']ₛca =
crPart φ * ofState φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofState φ' * crPart φ := by
rw [← ofStateList_singleton, superCommuteF_crPart_ofStateList]
lemma superCommuteF_crPartF_ofState (φ φ' : 𝓕.States) :
[crPartF φ, ofState φ']ₛca =
crPartF φ * ofState φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofState φ' * crPartF φ := by
rw [← ofStateList_singleton, superCommuteF_crPartF_ofStateList]
simp
lemma superCommuteF_anPart_ofState (φ φ' : 𝓕.States) :
[anPart φ, ofState φ']ₛca =
anPart φ * ofState φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofState φ' * anPart φ := by
rw [← ofStateList_singleton, superCommuteF_anPart_ofStateList]
lemma superCommuteF_anPartF_ofState (φ φ' : 𝓕.States) :
[anPartF φ, ofState φ']ₛca =
anPartF φ * ofState φ' -
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofState φ' * anPartF φ := by
rw [← ofStateList_singleton, superCommuteF_anPartF_ofStateList]
simp
/-!
@ -292,32 +292,32 @@ lemma ofStateList_mul_ofState_eq_superCommuteF (φs : List 𝓕.States) (φ :
rw [superCommuteF_ofStateList_ofState]
simp
lemma crPart_mul_anPart_eq_superCommuteF (φ φ' : 𝓕.States) :
crPart φ * anPart φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPart φ' * crPart φ +
[crPart φ, anPart φ']ₛca := by
rw [superCommuteF_crPart_anPart]
lemma crPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.States) :
crPartF φ * anPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ +
[crPartF φ, anPartF φ']ₛca := by
rw [superCommuteF_crPartF_anPartF]
simp
lemma anPart_mul_crPart_eq_superCommuteF (φ φ' : 𝓕.States) :
anPart φ * crPart φ' =
lemma anPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.States) :
anPartF φ * crPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
crPart φ' * anPart φ +
[anPart φ, crPart φ']ₛca := by
rw [superCommuteF_anPart_crPart]
crPartF φ' * anPartF φ +
[anPartF φ, crPartF φ']ₛca := by
rw [superCommuteF_anPartF_crPartF]
simp
lemma crPart_mul_crPart_eq_superCommuteF (φ φ' : 𝓕.States) :
crPart φ * crPart φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPart φ' * crPart φ +
[crPart φ, crPart φ']ₛca := by
rw [superCommuteF_crPart_crPart]
lemma crPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.States) :
crPartF φ * crPartF φ' =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ +
[crPartF φ, crPartF φ']ₛca := by
rw [superCommuteF_crPartF_crPartF]
simp
lemma anPart_mul_anPart_eq_superCommuteF (φ φ' : 𝓕.States) :
anPart φ * anPart φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPart φ' * anPart φ +
[anPart φ, anPart φ']ₛca := by
rw [superCommuteF_anPart_anPart]
lemma anPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.States) :
anPartF φ * anPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ +
[anPartF φ, anPartF φ']ₛca := by
rw [superCommuteF_anPartF_anPartF]
simp
lemma ofCrAnList_mul_ofStateList_eq_superCommuteF (φs : List 𝓕.CrAnStates) (φs' : List 𝓕.States) :

View file

@ -450,5 +450,16 @@ def ofCrAnFieldOpList (φs : List 𝓕.CrAnStates) : 𝓕.FieldOpAlgebra := ι (
lemma ofCrAnFieldOpList_eq_ι_ofCrAnList (φs : List 𝓕.CrAnStates) :
ofCrAnFieldOpList φs = ι (ofCrAnList φs) := rfl
/-- The annihilation part of a state. -/
def anPart (φ : 𝓕.States) : 𝓕.FieldOpAlgebra := ι (anPartF φ)
lemma anPart_eq_ι_anPartF (φ : 𝓕.States) : anPart φ = ι (anPartF φ) := rfl
/-- The creation part of a state. -/
def crPart (φ : 𝓕.States) : 𝓕.FieldOpAlgebra := ι (crPartF φ)
lemma crPart_eq_ι_crPartF (φ : 𝓕.States) : crPart φ = ι (crPartF φ) := rfl
end FieldOpAlgebra
end FieldSpecification

View file

@ -59,17 +59,17 @@ lemma crAnF_superCommuteF_ofCrAnState_ofState_mem_center (φ : 𝓕.CrAnStates)
intro x _
exact 𝓞.superCommuteF_crAn_center φ ⟨ψ, x⟩
lemma crAnF_superCommuteF_anPart_ofState_mem_center (φ ψ : 𝓕.States) :
𝓞.crAnF [anPart φ, ofState ψ]ₛca ∈ Subalgebra.center 𝓞.A := by
lemma crAnF_superCommuteF_anPartF_ofState_mem_center (φ ψ : 𝓕.States) :
𝓞.crAnF [anPartF φ, ofState ψ]ₛca ∈ Subalgebra.center 𝓞.A := by
match φ with
| States.inAsymp _ =>
simp only [anPart_negAsymp, map_zero, LinearMap.zero_apply]
simp only [anPartF_negAsymp, map_zero, LinearMap.zero_apply]
exact Subalgebra.zero_mem (Subalgebra.center 𝓞.A)
| States.position φ =>
simp only [anPart_position]
simp only [anPartF_position]
exact 𝓞.crAnF_superCommuteF_ofCrAnState_ofState_mem_center _ _
| States.outAsymp _ =>
simp only [anPart_posAsymp]
simp only [anPartF_posAsymp]
exact 𝓞.crAnF_superCommuteF_ofCrAnState_ofState_mem_center _ _
lemma crAnF_superCommuteF_ofCrAnState_ofState_diff_grade_zero (φ : 𝓕.CrAnStates) (ψ : 𝓕.States)
@ -81,18 +81,18 @@ lemma crAnF_superCommuteF_ofCrAnState_ofState_diff_grade_zero (φ : 𝓕.CrAnSta
apply 𝓞.superCommuteF_different_statistics
simpa [crAnStatistics] using h
lemma crAnF_superCommuteF_anPart_ofState_diff_grade_zero (φ ψ : 𝓕.States)
lemma crAnF_superCommuteF_anPartF_ofState_diff_grade_zero (φ ψ : 𝓕.States)
(h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) :
𝓞.crAnF [anPart φ, ofState ψ]ₛca = 0 := by
𝓞.crAnF [anPartF φ, ofState ψ]ₛca = 0 := by
match φ with
| States.inAsymp _ =>
simp
| States.position φ =>
simp only [anPart_position]
simp only [anPartF_position]
apply 𝓞.crAnF_superCommuteF_ofCrAnState_ofState_diff_grade_zero _ _ _
simpa [crAnStatistics] using h
| States.outAsymp _ =>
simp only [anPart_posAsymp]
simp only [anPartF_posAsymp]
apply 𝓞.crAnF_superCommuteF_ofCrAnState_ofState_diff_grade_zero _ _
simpa [crAnStatistics] using h
@ -104,58 +104,58 @@ lemma crAnF_superCommuteF_ofState_ofState_mem_center (φ ψ : 𝓕.States) :
intro x _
exact crAnF_superCommuteF_ofCrAnState_ofState_mem_center 𝓞 ⟨φ, x⟩ ψ
lemma crAnF_superCommuteF_anPart_anPart (φ ψ : 𝓕.States) :
𝓞.crAnF [anPart φ, anPart ψ]ₛca = 0 := by
lemma crAnF_superCommuteF_anPartF_anPartF (φ ψ : 𝓕.States) :
𝓞.crAnF [anPartF φ, anPartF ψ]ₛca = 0 := by
match φ, ψ with
| _, States.inAsymp _ =>
simp
| States.inAsymp _, _ =>
simp
| States.position φ, States.position ψ =>
simp only [anPart_position]
simp only [anPartF_position]
rw [𝓞.superCommuteF_annihilate_annihilate]
rfl
rfl
| States.position φ, States.outAsymp _ =>
simp only [anPart_position, anPart_posAsymp]
simp only [anPartF_position, anPartF_posAsymp]
rw [𝓞.superCommuteF_annihilate_annihilate]
rfl
rfl
| States.outAsymp _, States.outAsymp _ =>
simp only [anPart_posAsymp]
simp only [anPartF_posAsymp]
rw [𝓞.superCommuteF_annihilate_annihilate]
rfl
rfl
| States.outAsymp _, States.position _ =>
simp only [anPart_posAsymp, anPart_position]
simp only [anPartF_posAsymp, anPartF_position]
rw [𝓞.superCommuteF_annihilate_annihilate]
rfl
rfl
lemma crAnF_superCommuteF_crPart_crPart (φ ψ : 𝓕.States) :
𝓞.crAnF [crPart φ, crPart ψ]ₛca = 0 := by
lemma crAnF_superCommuteF_crPartF_crPartF (φ ψ : 𝓕.States) :
𝓞.crAnF [crPartF φ, crPartF ψ]ₛca = 0 := by
match φ, ψ with
| _, States.outAsymp _ =>
simp
| States.outAsymp _, _ =>
simp
| States.position φ, States.position ψ =>
simp only [crPart_position]
simp only [crPartF_position]
rw [𝓞.superCommuteF_create_create]
rfl
rfl
| States.position φ, States.inAsymp _ =>
simp only [crPart_position, crPart_negAsymp]
simp only [crPartF_position, crPartF_negAsymp]
rw [𝓞.superCommuteF_create_create]
rfl
rfl
| States.inAsymp _, States.inAsymp _ =>
simp only [crPart_negAsymp]
simp only [crPartF_negAsymp]
rw [𝓞.superCommuteF_create_create]
rfl
rfl
| States.inAsymp _, States.position _ =>
simp only [crPart_negAsymp, crPart_position]
simp only [crPartF_negAsymp, crPartF_position]
rw [𝓞.superCommuteF_create_create]
rfl
rfl

View file

@ -211,37 +211,37 @@ lemma crAnF_normalOrderF_ofCrAnState_ofStatesList_swap (φ : 𝓕.CrAnStates)
rw [← ofCrAnList_singleton, ofCrAnList_mul_ofStateList_eq_superCommuteF]
simp
lemma crAnF_normalOrderF_anPart_ofStatesList_swap (φ : 𝓕.States)
lemma crAnF_normalOrderF_anPartF_ofStatesList_swap (φ : 𝓕.States)
(φ' : List 𝓕.States) :
𝓞.crAnF (normalOrderF (anPart φ * ofStateList φ')) =
𝓞.crAnF (normalOrderF (anPartF φ * ofStateList φ')) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
𝓞.crAnF (normalOrderF (ofStateList φ' * anPart φ)) := by
𝓞.crAnF (normalOrderF (ofStateList φ' * anPartF φ)) := by
match φ with
| .inAsymp φ =>
simp
| .position φ =>
simp only [anPart_position, instCommGroup.eq_1]
simp only [anPartF_position, instCommGroup.eq_1]
rw [crAnF_normalOrderF_ofCrAnState_ofStatesList_swap]
rfl
| .outAsymp φ =>
simp only [anPart_posAsymp, instCommGroup.eq_1]
simp only [anPartF_posAsymp, instCommGroup.eq_1]
rw [crAnF_normalOrderF_ofCrAnState_ofStatesList_swap]
rfl
lemma crAnF_normalOrderF_ofStatesList_anPart_swap (φ : 𝓕.States) (φ' : List 𝓕.States) :
𝓞.crAnF (normalOrderF (ofStateList φ' * anPart φ))
lemma crAnF_normalOrderF_ofStatesList_anPartF_swap (φ : 𝓕.States) (φ' : List 𝓕.States) :
𝓞.crAnF (normalOrderF (ofStateList φ' * anPartF φ))
= 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
𝓞.crAnF (normalOrderF (anPart φ * ofStateList φ')) := by
rw [crAnF_normalOrderF_anPart_ofStatesList_swap]
𝓞.crAnF (normalOrderF (anPartF φ * ofStateList φ')) := by
rw [crAnF_normalOrderF_anPartF_ofStatesList_swap]
simp [smul_smul, FieldStatistic.exchangeSign_mul_self]
lemma crAnF_normalOrderF_ofStatesList_mul_anPart_swap (φ : 𝓕.States)
lemma crAnF_normalOrderF_ofStatesList_mul_anPartF_swap (φ : 𝓕.States)
(φ' : List 𝓕.States) :
𝓞.crAnF (normalOrderF (ofStateList φ') * anPart φ) =
𝓞.crAnF (normalOrderF (ofStateList φ') * anPartF φ) =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
𝓞.crAnF (normalOrderF (anPart φ * ofStateList φ')) := by
rw [← normalOrderF_mul_anPart]
rw [crAnF_normalOrderF_ofStatesList_anPart_swap]
𝓞.crAnF (normalOrderF (anPartF φ * ofStateList φ')) := by
rw [← normalOrderF_mul_anPartF]
rw [crAnF_normalOrderF_ofStatesList_anPartF_swap]
/-!
@ -300,25 +300,25 @@ lemma crAnF_ofCrAnState_superCommuteF_normalOrderF_ofStateList_eq_sum (φ : 𝓕
/--
Within a proto-operator algebra we have that
`[anPart φ, 𝓝ᶠ(φs)] = ∑ i, sᵢ • [anPart φ, φᵢ]ₛca * 𝓝ᶠ(φ₀…φᵢ₋₁φᵢ₊₁…φₙ)`
`[anPartF φ, 𝓝ᶠ(φs)] = ∑ i, sᵢ • [anPartF φ, φᵢ]ₛca * 𝓝ᶠ(φ₀…φᵢ₋₁φᵢ₊₁…φₙ)`
where `sᵢ` is the exchange sign for `φ` and `φ₀…φᵢ₋₁`.
The origin of this result is
- `superCommuteF_ofCrAnList_ofCrAnList_eq_sum`
-/
lemma crAnF_anPart_superCommuteF_normalOrderF_ofStateList_eq_sum (φ : 𝓕.States) (φs : List 𝓕.States) :
𝓞.crAnF ([anPart φ, 𝓝ᶠ(φs)]ₛca) =
lemma crAnF_anPartF_superCommuteF_normalOrderF_ofStateList_eq_sum (φ : 𝓕.States) (φs : List 𝓕.States) :
𝓞.crAnF ([anPartF φ, 𝓝ᶠ(φs)]ₛca) =
∑ n : Fin φs.length, 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ (φs.take n)) •
𝓞.crAnF ([anPart φ, ofState φs[n]]ₛca) * 𝓞.crAnF 𝓝ᶠ(φs.eraseIdx n) := by
𝓞.crAnF ([anPartF φ, ofState φs[n]]ₛca) * 𝓞.crAnF 𝓝ᶠ(φs.eraseIdx n) := by
match φ with
| .inAsymp φ =>
simp
| .position φ =>
simp only [anPart_position, instCommGroup.eq_1, Fin.getElem_fin, Algebra.smul_mul_assoc]
simp only [anPartF_position, instCommGroup.eq_1, Fin.getElem_fin, Algebra.smul_mul_assoc]
rw [crAnF_ofCrAnState_superCommuteF_normalOrderF_ofStateList_eq_sum]
simp [crAnStatistics]
| .outAsymp φ =>
simp only [anPart_posAsymp, instCommGroup.eq_1, Fin.getElem_fin, Algebra.smul_mul_assoc]
simp only [anPartF_posAsymp, instCommGroup.eq_1, Fin.getElem_fin, Algebra.smul_mul_assoc]
rw [crAnF_ofCrAnState_superCommuteF_normalOrderF_ofStateList_eq_sum]
simp [crAnStatistics]
@ -329,17 +329,17 @@ lemma crAnF_anPart_superCommuteF_normalOrderF_ofStateList_eq_sum (φ : 𝓕.Stat
-/
/--
Within a proto-operator algebra we have that
`anPart φ * 𝓝ᶠ(φ₀φ₁…φₙ) = 𝓝ᶠ((anPart φ)φ₀φ₁…φₙ) + [anpart φ, 𝓝ᶠ(φ₀φ₁…φₙ)]ₛca`.
`anPartF φ * 𝓝ᶠ(φ₀φ₁…φₙ) = 𝓝ᶠ((anPartF φ)φ₀φ₁…φₙ) + [anpart φ, 𝓝ᶠ(φ₀φ₁…φₙ)]ₛca`.
-/
lemma crAnF_anPart_mul_normalOrderF_ofStatesList_eq_superCommuteF (φ : 𝓕.States)
lemma crAnF_anPartF_mul_normalOrderF_ofStatesList_eq_superCommuteF (φ : 𝓕.States)
(φ' : List 𝓕.States) :
𝓞.crAnF (anPart φ * normalOrderF (ofStateList φ')) =
𝓞.crAnF (normalOrderF (anPart φ * ofStateList φ')) +
𝓞.crAnF ([anPart φ, normalOrderF (ofStateList φ')]ₛca) := by
rw [anPart_mul_normalOrderF_ofStateList_eq_superCommuteF]
𝓞.crAnF (anPartF φ * normalOrderF (ofStateList φ')) =
𝓞.crAnF (normalOrderF (anPartF φ * ofStateList φ')) +
𝓞.crAnF ([anPartF φ, normalOrderF (ofStateList φ')]ₛca) := by
rw [anPartF_mul_normalOrderF_ofStateList_eq_superCommuteF]
simp only [instCommGroup.eq_1, map_add, map_smul]
congr
rw [crAnF_normalOrderF_anPart_ofStatesList_swap]
rw [crAnF_normalOrderF_anPartF_ofStatesList_swap]
/--
Within a proto-operator algebra we have that
@ -348,13 +348,13 @@ Within a proto-operator algebra we have that
lemma crAnF_ofState_mul_normalOrderF_ofStatesList_eq_superCommuteF (φ : 𝓕.States)
(φs : List 𝓕.States) : 𝓞.crAnF (ofState φ * 𝓝ᶠ(φs)) =
𝓞.crAnF (normalOrderF (ofState φ * ofStateList φs)) +
𝓞.crAnF ([anPart φ, 𝓝ᶠ(φs)]ₛca) := by
conv_lhs => rw [ofState_eq_crPart_add_anPart]
rw [add_mul, map_add, crAnF_anPart_mul_normalOrderF_ofStatesList_eq_superCommuteF, ← add_assoc,
← normalOrderF_crPart_mul, ← map_add]
𝓞.crAnF ([anPartF φ, 𝓝ᶠ(φs)]ₛca) := by
conv_lhs => rw [ofState_eq_crPartF_add_anPartF]
rw [add_mul, map_add, crAnF_anPartF_mul_normalOrderF_ofStatesList_eq_superCommuteF, ← add_assoc,
← normalOrderF_crPartF_mul, ← map_add]
conv_lhs =>
lhs
rw [← map_add, ← add_mul, ← ofState_eq_crPart_add_anPart]
rw [← map_add, ← add_mul, ← ofState_eq_crPartF_add_anPartF]
/-- In the expansion of `ofState φ * normalOrderF (ofStateList φs)` the element
of `𝓞.A` associated with contracting `φ` with the (optional) `n`th element of `φs`. -/
@ -363,11 +363,11 @@ noncomputable def contractStateAtIndex (φ : 𝓕.States) (φs : List 𝓕.State
match n with
| none => 1
| some n => 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ (φs.take n)) •
𝓞.crAnF ([anPart φ, ofState φs[n]]ₛca)
𝓞.crAnF ([anPartF φ, ofState φs[n]]ₛca)
/--
Within a proto-operator algebra,
`φ * N(φ₀φ₁…φₙ) = N(φφ₀φ₁…φₙ) + ∑ i, (sᵢ • [anPart φ, φᵢ]ₛ) * N(φ₀φ₁…φᵢ₋₁φᵢ₊₁…φₙ)`,
`φ * N(φ₀φ₁…φₙ) = N(φφ₀φ₁…φₙ) + ∑ i, (sᵢ • [anPartF φ, φᵢ]ₛ) * N(φ₀φ₁…φᵢ₋₁φᵢ₊₁…φₙ)`,
where `sₙ` is the exchange sign for `φ` and `φ₀φ₁…φᵢ₋₁`.
-/
lemma crAnF_ofState_mul_normalOrderF_ofStatesList_eq_sum (φ : 𝓕.States)
@ -377,7 +377,7 @@ lemma crAnF_ofState_mul_normalOrderF_ofStatesList_eq_sum (φ : 𝓕.States)
contractStateAtIndex φ φs n *
𝓞.crAnF (normalOrderF (ofStateList (HepLean.List.optionEraseZ φs φ n))) := by
rw [crAnF_ofState_mul_normalOrderF_ofStatesList_eq_superCommuteF]
rw [crAnF_anPart_superCommuteF_normalOrderF_ofStateList_eq_sum]
rw [crAnF_anPartF_superCommuteF_normalOrderF_ofStateList_eq_sum]
simp only [instCommGroup.eq_1, Fin.getElem_fin, Algebra.smul_mul_assoc, contractStateAtIndex,
Fintype.sum_option, one_mul]
rfl

View file

@ -35,15 +35,15 @@ lemma timeContract_eq_smul (φ ψ : 𝓕.States) : 𝓞.timeContract φ ψ =
+ (-1 : ) • 𝓝ᶠ(ofState φ * ofState ψ)) := by rfl
lemma timeContract_of_timeOrderRel (φ ψ : 𝓕.States) (h : timeOrderRel φ ψ) :
𝓞.timeContract φ ψ = 𝓞.crAnF ([anPart φ, ofState ψ]ₛca) := by
𝓞.timeContract φ ψ = 𝓞.crAnF ([anPartF φ, ofState ψ]ₛca) := by
conv_rhs =>
rw [ofState_eq_crPart_add_anPart]
rw [map_add, map_add, crAnF_superCommuteF_anPart_anPart, superCommuteF_anPart_crPart]
rw [ofState_eq_crPartF_add_anPartF]
rw [map_add, map_add, crAnF_superCommuteF_anPartF_anPartF, superCommuteF_anPartF_crPartF]
simp only [timeContract, instCommGroup.eq_1, Algebra.smul_mul_assoc, add_zero]
rw [timeOrderF_ofState_ofState_ordered h]
rw [normalOrderF_ofState_mul_ofState]
simp only [instCommGroup.eq_1]
rw [ofState_eq_crPart_add_anPart, ofState_eq_crPart_add_anPart]
rw [ofState_eq_crPartF_add_anPartF, ofState_eq_crPartF_add_anPartF]
simp only [mul_add, add_mul]
abel_nf
@ -61,11 +61,11 @@ lemma timeContract_of_not_timeOrderRel (φ ψ : 𝓕.States) (h : ¬ timeOrderRe
lemma timeContract_mem_center (φ ψ : 𝓕.States) : 𝓞.timeContract φ ψ ∈ Subalgebra.center 𝓞.A := by
by_cases h : timeOrderRel φ ψ
· rw [timeContract_of_timeOrderRel _ _ _ h]
exact 𝓞.crAnF_superCommuteF_anPart_ofState_mem_center _ _
exact 𝓞.crAnF_superCommuteF_anPartF_ofState_mem_center _ _
· rw [timeContract_of_not_timeOrderRel _ _ _ h]
refine Subalgebra.smul_mem (Subalgebra.center 𝓞.A) ?_ 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ)
rw [timeContract_of_timeOrderRel]
exact 𝓞.crAnF_superCommuteF_anPart_ofState_mem_center _ _
exact 𝓞.crAnF_superCommuteF_anPartF_ofState_mem_center _ _
have h1 := IsTotal.total (r := 𝓕.timeOrderRel) φ ψ
simp_all
@ -73,11 +73,11 @@ lemma timeContract_zero_of_diff_grade (φ ψ : 𝓕.States) (h : (𝓕 |>ₛ φ)
𝓞.timeContract φ ψ = 0 := by
by_cases h1 : timeOrderRel φ ψ
· rw [timeContract_of_timeOrderRel _ _ _ h1]
rw [crAnF_superCommuteF_anPart_ofState_diff_grade_zero]
rw [crAnF_superCommuteF_anPartF_ofState_diff_grade_zero]
exact h
· rw [timeContract_of_not_timeOrderRel _ _ _ h1]
rw [timeContract_of_timeOrderRel _ _ _]
rw [crAnF_superCommuteF_anPart_ofState_diff_grade_zero]
rw [crAnF_superCommuteF_anPartF_ofState_diff_grade_zero]
simp only [instCommGroup.eq_1, smul_zero]
exact h.symm
have ht := IsTotal.total (r := 𝓕.timeOrderRel) φ ψ

View file

@ -88,7 +88,7 @@ lemma timeConract_insertAndContract_some_eq_mul_contractStateAtIndex_lt
· simp only [hik, ↓reduceIte, MulMemClass.coe_mul]
rw [𝓞.timeContract_of_timeOrderRel]
trans (1 : ) • (𝓞.crAnF ((CrAnAlgebra.superCommuteF
(CrAnAlgebra.anPart φ)) (CrAnAlgebra.ofState φs[k.1])) *
(CrAnAlgebra.anPartF φ)) (CrAnAlgebra.ofState φs[k.1])) *
↑(timeContract 𝓞 φsΛ))
· simp
simp only [smul_smul]

View file

@ -245,14 +245,14 @@ lemma wick_term_some_eq_wick_term_optionEraseZ (φ : 𝓕.States) (φs : List
· simp only [h1, ↓reduceIte, MulMemClass.coe_mul]
rw [timeContract_zero_of_diff_grade]
simp only [zero_mul, smul_zero]
rw [crAnF_superCommuteF_anPart_ofState_diff_grade_zero]
rw [crAnF_superCommuteF_anPartF_ofState_diff_grade_zero]
simp only [zero_mul, smul_zero]
exact hg
exact hg
· simp only [h1, ↓reduceIte, MulMemClass.coe_mul]
rw [timeContract_zero_of_diff_grade]
simp only [zero_mul, smul_zero]
rw [crAnF_superCommuteF_anPart_ofState_diff_grade_zero]
rw [crAnF_superCommuteF_anPartF_ofState_diff_grade_zero]
simp only [zero_mul, smul_zero]
exact hg
exact fun a => hg (id (Eq.symm a))