2025-01-20 15:17:48 +00:00
|
|
|
|
/-
|
|
|
|
|
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
|
|
|
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
|
|
|
Authors: Joseph Tooby-Smith
|
|
|
|
|
-/
|
2025-01-21 06:11:47 +00:00
|
|
|
|
import HepLean.PerturbationTheory.FieldSpecification.NormalOrder
|
2025-01-20 15:17:48 +00:00
|
|
|
|
import HepLean.PerturbationTheory.Algebras.CrAnAlgebra.SuperCommute
|
|
|
|
|
import HepLean.PerturbationTheory.Koszul.KoszulSign
|
|
|
|
|
/-!
|
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
# Normal Ordering in the CrAnAlgebra
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
In the module
|
|
|
|
|
`HepLean.PerturbationTheory.FieldSpecification.NormalOrder`
|
|
|
|
|
we defined the normal ordering of a list of `CrAnStates`.
|
|
|
|
|
In this module we extend the normal ordering to a linear map on `CrAnAlgebra`.
|
|
|
|
|
|
|
|
|
|
We derive properties of this normal ordering.
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
namespace FieldSpecification
|
|
|
|
|
variable {𝓕 : FieldSpecification}
|
2025-01-20 15:17:48 +00:00
|
|
|
|
open FieldStatistic
|
|
|
|
|
|
|
|
|
|
namespace CrAnAlgebra
|
|
|
|
|
|
|
|
|
|
noncomputable section
|
|
|
|
|
|
|
|
|
|
/-- The linear map on the free creation and annihlation
|
|
|
|
|
algebra defined as the map taking
|
|
|
|
|
a list of CrAnStates to the normal-ordered list of states multiplied by
|
|
|
|
|
the sign corresponding to the number of fermionic-fermionic
|
|
|
|
|
exchanges done in ordering. -/
|
2025-01-30 06:00:18 +00:00
|
|
|
|
def normalOrderF : CrAnAlgebra 𝓕 →ₗ[ℂ] CrAnAlgebra 𝓕 :=
|
2025-01-20 15:17:48 +00:00
|
|
|
|
Basis.constr ofCrAnListBasis ℂ fun φs =>
|
|
|
|
|
normalOrderSign φs • ofCrAnList (normalOrderList φs)
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
@[inherit_doc normalOrderF]
|
|
|
|
|
scoped[FieldSpecification.CrAnAlgebra] notation "𝓝ᶠ(" a ")" => normalOrderF a
|
2025-01-23 15:06:11 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_ofCrAnList (φs : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnList φs) = normalOrderSign φs • ofCrAnList (normalOrderList φs) := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [← ofListBasis_eq_ofList, normalOrderF, Basis.constr_basis]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma ofCrAnList_eq_normalOrderF (φs : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
ofCrAnList (normalOrderList φs) = normalOrderSign φs • 𝓝ᶠ(ofCrAnList φs) := by
|
2025-01-30 11:08:10 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderList, smul_smul, normalOrderSign,
|
|
|
|
|
Wick.koszulSign_mul_self, one_smul]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_one : normalOrderF (𝓕 := 𝓕) 1 = 1 := by
|
|
|
|
|
rw [← ofCrAnList_nil, normalOrderF_ofCrAnList, normalOrderSign_nil, normalOrderList_nil,
|
2025-01-23 01:44:02 +01:00
|
|
|
|
ofCrAnList_nil, one_smul]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 05:39:48 +00:00
|
|
|
|
lemma normalOrderF_normalOrderF_mid (a b c : 𝓕.CrAnAlgebra) :
|
|
|
|
|
𝓝ᶠ(a * b * c) = 𝓝ᶠ(a * 𝓝ᶠ(b) * c) := by
|
2025-01-31 16:02:02 +00:00
|
|
|
|
let pc (c : 𝓕.CrAnAlgebra) (hc : c ∈ Submodule.span ℂ (Set.range ofCrAnListBasis)) :
|
|
|
|
|
Prop := 𝓝ᶠ(a * b * c) = 𝓝ᶠ(a * 𝓝ᶠ(b) * c)
|
|
|
|
|
change pc c (Basis.mem_span _ c)
|
|
|
|
|
apply Submodule.span_induction
|
|
|
|
|
· intro x hx
|
|
|
|
|
obtain ⟨φs, rfl⟩ := hx
|
|
|
|
|
simp only [ofListBasis_eq_ofList, pc]
|
|
|
|
|
let pb (b : 𝓕.CrAnAlgebra) (hb : b ∈ Submodule.span ℂ (Set.range ofCrAnListBasis)) :
|
|
|
|
|
Prop := 𝓝ᶠ(a * b * ofCrAnList φs) = 𝓝ᶠ(a * 𝓝ᶠ(b) * ofCrAnList φs)
|
|
|
|
|
change pb b (Basis.mem_span _ b)
|
|
|
|
|
apply Submodule.span_induction
|
|
|
|
|
· intro x hx
|
|
|
|
|
obtain ⟨φs', rfl⟩ := hx
|
|
|
|
|
simp only [ofListBasis_eq_ofList, pb]
|
|
|
|
|
let pa (a : 𝓕.CrAnAlgebra) (ha : a ∈ Submodule.span ℂ (Set.range ofCrAnListBasis)) :
|
|
|
|
|
Prop := 𝓝ᶠ(a * ofCrAnList φs' * ofCrAnList φs) = 𝓝ᶠ(a * 𝓝ᶠ(ofCrAnList φs') * ofCrAnList φs)
|
|
|
|
|
change pa a (Basis.mem_span _ a)
|
|
|
|
|
apply Submodule.span_induction
|
|
|
|
|
· intro x hx
|
|
|
|
|
obtain ⟨φs'', rfl⟩ := hx
|
|
|
|
|
simp only [ofListBasis_eq_ofList, pa]
|
|
|
|
|
rw [normalOrderF_ofCrAnList]
|
|
|
|
|
simp only [← ofCrAnList_append, Algebra.mul_smul_comm,
|
|
|
|
|
Algebra.smul_mul_assoc, map_smul]
|
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderF_ofCrAnList, smul_smul]
|
|
|
|
|
congr 1
|
|
|
|
|
· simp only [normalOrderSign, normalOrderList]
|
|
|
|
|
rw [Wick.koszulSign_of_append_eq_insertionSort, mul_comm]
|
|
|
|
|
· congr 1
|
|
|
|
|
simp only [normalOrderList]
|
|
|
|
|
rw [HepLean.List.insertionSort_append_insertionSort_append]
|
|
|
|
|
· simp [pa]
|
|
|
|
|
· intro x y hx hy h1 h2
|
|
|
|
|
simp_all [pa, add_mul]
|
|
|
|
|
· intro x hx h
|
|
|
|
|
simp_all [pa]
|
|
|
|
|
· simp [pb]
|
|
|
|
|
· intro x y hx hy h1 h2
|
|
|
|
|
simp_all [pb, mul_add, add_mul]
|
|
|
|
|
· intro x hx h
|
|
|
|
|
simp_all [pb]
|
|
|
|
|
· simp [pc]
|
|
|
|
|
· intro x y hx hy h1 h2
|
|
|
|
|
simp_all [pc, mul_add]
|
|
|
|
|
· intro x hx h hp
|
|
|
|
|
simp_all [pc]
|
|
|
|
|
|
|
|
|
|
lemma normalOrderF_normalOrderF_right (a b : 𝓕.CrAnAlgebra) : 𝓝ᶠ(a * b) = 𝓝ᶠ(a * 𝓝ᶠ(b)) := by
|
|
|
|
|
trans 𝓝ᶠ(a * b * 1)
|
|
|
|
|
· simp
|
|
|
|
|
· rw [normalOrderF_normalOrderF_mid]
|
|
|
|
|
simp
|
|
|
|
|
|
|
|
|
|
lemma normalOrderF_normalOrderF_left (a b : 𝓕.CrAnAlgebra) : 𝓝ᶠ(a * b) = 𝓝ᶠ(𝓝ᶠ(a) * b) := by
|
|
|
|
|
trans 𝓝ᶠ(1 * a * b)
|
|
|
|
|
· simp
|
|
|
|
|
· rw [normalOrderF_normalOrderF_mid]
|
|
|
|
|
simp
|
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Normal ordering with a creation operator on the left or annihilation on the right
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_ofCrAnList_cons_create (φ : 𝓕.CrAnStates)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.create) (φs : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnList (φ :: φs)) = ofCrAnState φ * 𝓝ᶠ(ofCrAnList φs) := by
|
2025-01-30 11:08:10 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderSign_cons_create φ hφ,
|
|
|
|
|
normalOrderList_cons_create φ hφ φs]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [ofCrAnList_cons, normalOrderF_ofCrAnList, mul_smul_comm]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_create_mul (φ : 𝓕.CrAnStates)
|
2025-01-23 15:06:11 +00:00
|
|
|
|
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.create) (a : CrAnAlgebra 𝓕) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnState φ * a) = ofCrAnState φ * 𝓝ᶠ(a) := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
change (normalOrderF ∘ₗ mulLinearMap (ofCrAnState φ)) a =
|
|
|
|
|
(mulLinearMap (ofCrAnState φ) ∘ₗ normalOrderF) a
|
2025-01-23 01:44:02 +01:00
|
|
|
|
refine LinearMap.congr_fun (ofCrAnListBasis.ext fun l ↦ ?_) a
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [mulLinearMap, LinearMap.coe_mk, AddHom.coe_mk, ofListBasis_eq_ofList,
|
|
|
|
|
LinearMap.coe_comp, Function.comp_apply]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [← ofCrAnList_cons, normalOrderF_ofCrAnList_cons_create φ hφ]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_ofCrAnList_append_annihilate (φ : 𝓕.CrAnStates)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.annihilate) (φs : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnList (φs ++ [φ])) = 𝓝ᶠ(ofCrAnList φs) * ofCrAnState φ := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderSign_append_annihlate φ hφ φs,
|
2025-01-23 01:44:02 +01:00
|
|
|
|
normalOrderList_append_annihilate φ hφ φs, ofCrAnList_append, ofCrAnList_singleton,
|
2025-01-30 06:00:18 +00:00
|
|
|
|
normalOrderF_ofCrAnList, smul_mul_assoc]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_mul_annihilate (φ : 𝓕.CrAnStates)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(hφ : 𝓕 |>ᶜ φ = CreateAnnihilate.annihilate)
|
2025-01-27 12:19:21 +00:00
|
|
|
|
(a : CrAnAlgebra 𝓕) : 𝓝ᶠ(a * ofCrAnState φ) = 𝓝ᶠ(a) * ofCrAnState φ := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
change (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnState φ)) a =
|
|
|
|
|
(mulLinearMap.flip (ofCrAnState φ) ∘ₗ normalOrderF) a
|
2025-01-23 01:44:02 +01:00
|
|
|
|
refine LinearMap.congr_fun (ofCrAnListBasis.ext fun l ↦ ?_) a
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [mulLinearMap, ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply,
|
|
|
|
|
LinearMap.flip_apply, LinearMap.coe_mk, AddHom.coe_mk]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rw [← ofCrAnList_singleton, ← ofCrAnList_append, ofCrAnList_singleton,
|
2025-01-30 06:00:18 +00:00
|
|
|
|
normalOrderF_ofCrAnList_append_annihilate φ hφ]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma normalOrderF_crPartF_mul (φ : 𝓕.States) (a : CrAnAlgebra 𝓕) :
|
|
|
|
|
𝓝ᶠ(crPartF φ * a) =
|
|
|
|
|
crPartF φ * 𝓝ᶠ(a) := by
|
2025-01-22 06:26:28 +00:00
|
|
|
|
match φ with
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .inAsymp φ =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [crPartF]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_create_mul ⟨States.inAsymp φ, ()⟩ rfl a
|
2025-01-22 06:26:28 +00:00
|
|
|
|
| .position φ =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [crPartF]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_create_mul _ rfl _
|
2025-01-23 14:22:25 +00:00
|
|
|
|
| .outAsymp φ => simp
|
2025-01-22 06:26:28 +00:00
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma normalOrderF_mul_anPartF (φ : 𝓕.States) (a : CrAnAlgebra 𝓕) :
|
|
|
|
|
𝓝ᶠ(a * anPartF φ) =
|
|
|
|
|
𝓝ᶠ(a) * anPartF φ := by
|
2025-01-22 06:26:28 +00:00
|
|
|
|
match φ with
|
2025-01-23 14:22:25 +00:00
|
|
|
|
| .inAsymp φ => simp
|
2025-01-22 06:26:28 +00:00
|
|
|
|
| .position φ =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [anPartF]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_mul_annihilate _ rfl _
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .outAsymp φ =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [anPartF]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
refine normalOrderF_mul_annihilate _ rfl _
|
2025-01-22 06:26:28 +00:00
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Normal ordering for an adjacent creation and annihliation state
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
The main result of this section is `normalOrderF_superCommuteF_annihilate_create`.
|
2025-01-22 06:26:28 +00:00
|
|
|
|
-/
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_swap_create_annihlate_ofCrAnList_ofCrAnList (φc φa : 𝓕.CrAnStates)
|
2025-01-22 06:26:28 +00:00
|
|
|
|
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(φs φs' : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnList φs' * ofCrAnState φc * ofCrAnState φa * ofCrAnList φs) = 𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa) •
|
|
|
|
|
𝓝ᶠ(ofCrAnList φs' * ofCrAnState φa * ofCrAnState φc * ofCrAnList φs) := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [mul_assoc, mul_assoc, ← ofCrAnList_cons, ← ofCrAnList_cons, ← ofCrAnList_append]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderSign_swap_create_annihlate φc φa hφc hφa]
|
|
|
|
|
rw [normalOrderList_swap_create_annihlate φc φa hφc hφa, ← smul_smul, ← normalOrderF_ofCrAnList]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [ofCrAnList_append, ofCrAnList_cons, ofCrAnList_cons]
|
|
|
|
|
noncomm_ring
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_swap_create_annihlate_ofCrAnList (φc φa : 𝓕.CrAnStates)
|
2025-01-22 06:26:28 +00:00
|
|
|
|
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(φs : List 𝓕.CrAnStates) (a : 𝓕.CrAnAlgebra) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnList φs * ofCrAnState φc * ofCrAnState φa * a) = 𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa) •
|
|
|
|
|
𝓝ᶠ(ofCrAnList φs * ofCrAnState φa * ofCrAnState φc * a) := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
change (normalOrderF ∘ₗ mulLinearMap (ofCrAnList φs * ofCrAnState φc * ofCrAnState φa)) a =
|
|
|
|
|
(smulLinearMap _ ∘ₗ normalOrderF ∘ₗ
|
2025-01-20 15:17:48 +00:00
|
|
|
|
mulLinearMap (ofCrAnList φs * ofCrAnState φa * ofCrAnState φc)) a
|
2025-01-23 01:44:02 +01:00
|
|
|
|
refine LinearMap.congr_fun (ofCrAnListBasis.ext fun l ↦ ?_) a
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [mulLinearMap, LinearMap.coe_mk, AddHom.coe_mk, ofListBasis_eq_ofList,
|
|
|
|
|
LinearMap.coe_comp, Function.comp_apply, instCommGroup.eq_1]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_swap_create_annihlate_ofCrAnList_ofCrAnList φc φa hφc hφa]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rfl
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_swap_create_annihlate (φc φa : 𝓕.CrAnStates)
|
2025-01-22 08:57:46 +00:00
|
|
|
|
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(a b : 𝓕.CrAnAlgebra) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(a * ofCrAnState φc * ofCrAnState φa * b) = 𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa) •
|
|
|
|
|
𝓝ᶠ(a * ofCrAnState φa * ofCrAnState φc * b) := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [mul_assoc, mul_assoc, mul_assoc, mul_assoc]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
change (normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnState φc * (ofCrAnState φa * b))) a =
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(smulLinearMap (𝓢(𝓕 |>ₛ φc, 𝓕 |>ₛ φa)) ∘ₗ
|
2025-01-30 06:00:18 +00:00
|
|
|
|
normalOrderF ∘ₗ mulLinearMap.flip (ofCrAnState φa * (ofCrAnState φc * b))) a
|
2025-01-23 01:44:02 +01:00
|
|
|
|
refine LinearMap.congr_fun (ofCrAnListBasis.ext fun l ↦ ?_) _
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [mulLinearMap, ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply,
|
2025-01-23 01:44:02 +01:00
|
|
|
|
LinearMap.flip_apply, LinearMap.coe_mk, AddHom.coe_mk, instCommGroup.eq_1, ← mul_assoc,
|
2025-01-30 06:00:18 +00:00
|
|
|
|
normalOrderF_swap_create_annihlate_ofCrAnList φc φa hφc hφa]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rfl
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_superCommuteF_create_annihilate (φc φa : 𝓕.CrAnStates)
|
2025-01-22 06:26:28 +00:00
|
|
|
|
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(a b : 𝓕.CrAnAlgebra) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(a * [ofCrAnState φc, ofCrAnState φa]ₛca * b) = 0 := by
|
2025-01-30 05:52:50 +00:00
|
|
|
|
simp only [superCommuteF_ofCrAnState_ofCrAnState, instCommGroup.eq_1, Algebra.smul_mul_assoc]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rw [mul_sub, sub_mul, map_sub, ← smul_mul_assoc, ← mul_assoc, ← mul_assoc,
|
2025-01-30 06:00:18 +00:00
|
|
|
|
normalOrderF_swap_create_annihlate φc φa hφc hφa]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
simp
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_superCommuteF_annihilate_create (φc φa : 𝓕.CrAnStates)
|
2025-01-22 06:26:28 +00:00
|
|
|
|
(hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(a b : 𝓕.CrAnAlgebra) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(a * [ofCrAnState φa, ofCrAnState φc]ₛca * b) = 0 := by
|
2025-01-30 05:52:50 +00:00
|
|
|
|
rw [superCommuteF_ofCrAnState_ofCrAnState_symm]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
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]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact Or.inr (normalOrderF_superCommuteF_create_annihilate φc φa hφc hφa ..)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma normalOrderF_swap_crPartF_anPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
|
|
|
|
|
𝓝ᶠ(a * (crPartF φ) * (anPartF φ') * b) =
|
2025-01-20 15:17:48 +00:00
|
|
|
|
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
|
2025-01-30 06:24:17 +00:00
|
|
|
|
𝓝ᶠ(a * (anPartF φ') * (crPartF φ) * b) := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
match φ, φ' with
|
2025-01-23 14:22:25 +00:00
|
|
|
|
| _, .inAsymp φ' => simp
|
|
|
|
|
| .outAsymp φ, _ => simp
|
2025-01-20 15:17:48 +00:00
|
|
|
|
| .position φ, .position φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [crPartF_position, anPartF_position, instCommGroup.eq_1]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_swap_create_annihlate]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rfl; rfl
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .inAsymp φ, .outAsymp φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [crPartF_negAsymp, anPartF_posAsymp, instCommGroup.eq_1]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_swap_create_annihlate]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rfl; rfl
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .inAsymp φ, .position φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [crPartF_negAsymp, anPartF_position, instCommGroup.eq_1]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_swap_create_annihlate]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rfl; rfl
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .position φ, .outAsymp φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [crPartF_position, anPartF_posAsymp, instCommGroup.eq_1]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_swap_create_annihlate]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, crAnStatistics, Function.comp_apply, crAnStatesToStates_prod]
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rfl; rfl
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
## Normal ordering for an anPartF and crPartF
|
2025-01-22 06:26:28 +00:00
|
|
|
|
|
|
|
|
|
Using the results from above.
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
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]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma normalOrderF_superCommuteF_crPartF_anPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
|
2025-01-30 05:52:50 +00:00
|
|
|
|
𝓝ᶠ(a * superCommuteF
|
2025-01-30 06:24:17 +00:00
|
|
|
|
(crPartF φ) (anPartF φ') * b) = 0 := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
match φ, φ' with
|
2025-01-23 14:22:25 +00:00
|
|
|
|
| _, .inAsymp φ' => simp
|
|
|
|
|
| .outAsymp φ', _ => simp
|
2025-01-20 15:17:48 +00:00
|
|
|
|
| .position φ, .position φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [crPartF_position, anPartF_position]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .inAsymp φ, .outAsymp φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [crPartF_negAsymp, anPartF_posAsymp]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .inAsymp φ, .position φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [crPartF_negAsymp, anPartF_position]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .position φ, .outAsymp φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [crPartF_position, anPartF_posAsymp]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_create_annihilate _ _ rfl rfl ..
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma normalOrderF_superCommuteF_anPartF_crPartF (φ φ' : 𝓕.States) (a b : CrAnAlgebra 𝓕) :
|
2025-01-30 05:52:50 +00:00
|
|
|
|
𝓝ᶠ(a * superCommuteF
|
2025-01-30 06:24:17 +00:00
|
|
|
|
(anPartF φ) (crPartF φ') * b) = 0 := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
match φ, φ' with
|
2025-01-23 14:22:25 +00:00
|
|
|
|
| .inAsymp φ', _ => simp
|
|
|
|
|
| _, .outAsymp φ' => simp
|
2025-01-20 15:17:48 +00:00
|
|
|
|
| .position φ, .position φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
rw [anPartF_position, crPartF_position]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .outAsymp φ', .inAsymp φ =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [anPartF_posAsymp, crPartF_negAsymp]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .position φ', .inAsymp φ =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [anPartF_position, crPartF_negAsymp]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
|
2025-01-23 10:46:50 +00:00
|
|
|
|
| .outAsymp φ, .position φ' =>
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp only [anPartF_posAsymp, crPartF_position]
|
2025-01-30 06:00:18 +00:00
|
|
|
|
exact normalOrderF_superCommuteF_annihilate_create _ _ rfl rfl ..
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## The normal ordering of a product of two states
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-01-30 06:24:17 +00:00
|
|
|
|
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]
|
2025-01-22 06:26:28 +00:00
|
|
|
|
simp
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-01-30 06:24:17 +00:00
|
|
|
|
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]
|
2025-01-22 06:26:28 +00:00
|
|
|
|
simp
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-01-30 06:24:17 +00:00
|
|
|
|
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]
|
2025-01-22 06:26:28 +00:00
|
|
|
|
simp
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma normalOrderF_anPartF_mul_crPartF (φ φ' : 𝓕.States) :
|
|
|
|
|
𝓝ᶠ(anPartF φ * crPartF φ') =
|
2025-01-22 06:26:28 +00:00
|
|
|
|
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
|
2025-01-30 06:24:17 +00:00
|
|
|
|
(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]
|
2025-01-22 06:26:28 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_ofState_mul_ofState (φ φ' : 𝓕.States) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofState φ * ofState φ') =
|
2025-01-30 06:24:17 +00:00
|
|
|
|
crPartF φ * crPartF φ' +
|
2025-01-22 06:26:28 +00:00
|
|
|
|
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') •
|
2025-01-30 06:24:17 +00:00
|
|
|
|
(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]
|
2025-01-22 06:26:28 +00:00
|
|
|
|
abel
|
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Normal order with super commutors
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-22 10:32:39 +00:00
|
|
|
|
TODO "Split the following two lemmas up into smaller parts."
|
2025-01-22 06:26:28 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_superCommuteF_ofCrAnList_create_create_ofCrAnList
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(φc φc' : 𝓕.CrAnStates) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create)
|
|
|
|
|
(hφc' : 𝓕 |>ᶜ φc' = CreateAnnihilate.create) (φs φs' : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
(𝓝ᶠ(ofCrAnList φs * [ofCrAnState φc, ofCrAnState φc']ₛca * ofCrAnList φs')) =
|
2025-01-20 15:17:48 +00:00
|
|
|
|
normalOrderSign (φs ++ φc' :: φc :: φs') •
|
2025-01-23 15:06:11 +00:00
|
|
|
|
(ofCrAnList (createFilter φs) * [ofCrAnState φc, ofCrAnState φc']ₛca *
|
2025-01-20 15:17:48 +00:00
|
|
|
|
ofCrAnList (createFilter φs') * ofCrAnList (annihilateFilter (φs ++ φs'))) := by
|
2025-01-30 05:52:50 +00:00
|
|
|
|
rw [superCommuteF_ofCrAnState_ofCrAnState, mul_sub, sub_mul, map_sub]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
lhs; rhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, ← ofCrAnList_append, ← ofCrAnList_append,
|
|
|
|
|
← ofCrAnList_append]
|
|
|
|
|
conv_lhs =>
|
|
|
|
|
lhs
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderList_eq_createFilter_append_annihilateFilter]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [createFilter_append, createFilter_append, createFilter_append,
|
|
|
|
|
createFilter_singleton_create _ hφc, createFilter_singleton_create _ hφc']
|
|
|
|
|
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
|
|
|
|
|
annihilateFilter_singleton_create _ hφc, annihilateFilter_singleton_create _ hφc']
|
|
|
|
|
enter [2, 1, 2]
|
|
|
|
|
simp only [List.singleton_append, List.append_assoc, List.cons_append, List.append_nil,
|
|
|
|
|
instCommGroup.eq_1, Algebra.smul_mul_assoc, Algebra.mul_smul_comm, map_smul]
|
|
|
|
|
rw [← annihilateFilter_append]
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rhs; rhs
|
|
|
|
|
rw [smul_mul_assoc, Algebra.mul_smul_comm, smul_mul_assoc]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rhs
|
|
|
|
|
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, ← ofCrAnList_append, ← ofCrAnList_append,
|
|
|
|
|
← ofCrAnList_append]
|
|
|
|
|
conv_lhs =>
|
|
|
|
|
rhs
|
|
|
|
|
rw [map_smul]
|
|
|
|
|
rhs
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderList_eq_createFilter_append_annihilateFilter]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [createFilter_append, createFilter_append, createFilter_append,
|
|
|
|
|
createFilter_singleton_create _ hφc, createFilter_singleton_create _ hφc']
|
|
|
|
|
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
|
|
|
|
|
annihilateFilter_singleton_create _ hφc, annihilateFilter_singleton_create _ hφc']
|
|
|
|
|
enter [2, 1, 2]
|
|
|
|
|
simp only [List.singleton_append, List.append_assoc, List.cons_append, instCommGroup.eq_1,
|
|
|
|
|
List.append_nil, Algebra.smul_mul_assoc]
|
|
|
|
|
rw [← annihilateFilter_append]
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
lhs; lhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rhs; rhs; lhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp
|
|
|
|
|
rw [normalOrderSign_swap_create_create φc φc' hφc hφc']
|
|
|
|
|
rw [smul_smul, mul_comm, ← smul_smul]
|
|
|
|
|
rw [← smul_sub, ofCrAnList_append, ofCrAnList_append, ofCrAnList_append]
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rhs; rhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [ofCrAnList_append, ofCrAnList_append, ofCrAnList_append]
|
|
|
|
|
rw [← smul_mul_assoc, ← smul_mul_assoc, ← Algebra.mul_smul_comm]
|
2025-01-23 01:47:25 +01:00
|
|
|
|
rw [← sub_mul, ← sub_mul, ← mul_sub, ofCrAnList_append, ofCrAnList_singleton,
|
|
|
|
|
ofCrAnList_singleton]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [ofCrAnList_append, ofCrAnList_singleton, ofCrAnList_singleton, smul_mul_assoc]
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma normalOrderF_superCommuteF_ofCrAnList_annihilate_annihilate_ofCrAnList
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(φa φa' : 𝓕.CrAnStates)
|
|
|
|
|
(hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate)
|
|
|
|
|
(hφa' : 𝓕 |>ᶜ φa' = CreateAnnihilate.annihilate)
|
|
|
|
|
(φs φs' : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
𝓝ᶠ(ofCrAnList φs * [ofCrAnState φa, ofCrAnState φa']ₛca * ofCrAnList φs') =
|
2025-01-20 15:17:48 +00:00
|
|
|
|
normalOrderSign (φs ++ φa' :: φa :: φs') •
|
|
|
|
|
(ofCrAnList (createFilter (φs ++ φs'))
|
2025-01-24 05:19:04 +00:00
|
|
|
|
* ofCrAnList (annihilateFilter φs) * [ofCrAnState φa, ofCrAnState φa']ₛca
|
2025-01-20 15:17:48 +00:00
|
|
|
|
* ofCrAnList (annihilateFilter φs')) := by
|
2025-01-30 05:52:50 +00:00
|
|
|
|
rw [superCommuteF_ofCrAnState_ofCrAnState, mul_sub, sub_mul, map_sub]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
lhs; rhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, ← ofCrAnList_append, ← ofCrAnList_append,
|
|
|
|
|
← ofCrAnList_append]
|
|
|
|
|
conv_lhs =>
|
|
|
|
|
lhs
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderList_eq_createFilter_append_annihilateFilter]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [createFilter_append, createFilter_append, createFilter_append,
|
|
|
|
|
createFilter_singleton_annihilate _ hφa, createFilter_singleton_annihilate _ hφa']
|
|
|
|
|
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
|
|
|
|
|
annihilateFilter_singleton_annihilate _ hφa, annihilateFilter_singleton_annihilate _ hφa']
|
|
|
|
|
enter [2, 1, 1]
|
|
|
|
|
simp only [List.singleton_append, List.append_assoc, List.cons_append, List.append_nil,
|
|
|
|
|
instCommGroup.eq_1, Algebra.smul_mul_assoc, Algebra.mul_smul_comm, map_smul]
|
|
|
|
|
rw [← createFilter_append]
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rhs; rhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [smul_mul_assoc]
|
|
|
|
|
rw [Algebra.mul_smul_comm, smul_mul_assoc]
|
|
|
|
|
rhs
|
|
|
|
|
rw [← ofCrAnList_singleton, ← ofCrAnList_singleton, ← ofCrAnList_append, ← ofCrAnList_append,
|
|
|
|
|
← ofCrAnList_append]
|
|
|
|
|
conv_lhs =>
|
|
|
|
|
rhs
|
|
|
|
|
rw [map_smul]
|
|
|
|
|
rhs
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [normalOrderF_ofCrAnList, normalOrderList_eq_createFilter_append_annihilateFilter]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [createFilter_append, createFilter_append, createFilter_append,
|
|
|
|
|
createFilter_singleton_annihilate _ hφa, createFilter_singleton_annihilate _ hφa']
|
|
|
|
|
rw [annihilateFilter_append, annihilateFilter_append, annihilateFilter_append,
|
|
|
|
|
annihilateFilter_singleton_annihilate _ hφa, annihilateFilter_singleton_annihilate _ hφa']
|
|
|
|
|
enter [2, 1, 1]
|
|
|
|
|
simp only [List.singleton_append, List.append_assoc, List.cons_append, instCommGroup.eq_1,
|
|
|
|
|
List.append_nil, Algebra.smul_mul_assoc]
|
|
|
|
|
rw [← createFilter_append]
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
lhs; lhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rhs; rhs; lhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp
|
|
|
|
|
rw [normalOrderSign_swap_annihilate_annihilate φa φa' hφa hφa']
|
|
|
|
|
rw [smul_smul, mul_comm, ← smul_smul]
|
|
|
|
|
rw [← smul_sub, ofCrAnList_append, ofCrAnList_append, ofCrAnList_append]
|
|
|
|
|
conv_lhs =>
|
2025-01-23 01:44:02 +01:00
|
|
|
|
rhs; rhs
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [ofCrAnList_append, ofCrAnList_append, ofCrAnList_append]
|
|
|
|
|
rw [← Algebra.mul_smul_comm, ← smul_mul_assoc, ← Algebra.mul_smul_comm]
|
|
|
|
|
rw [← mul_sub, ← sub_mul, ← mul_sub]
|
|
|
|
|
apply congrArg
|
|
|
|
|
conv_rhs => rw [mul_assoc, mul_assoc]
|
|
|
|
|
apply congrArg
|
|
|
|
|
rw [mul_assoc]
|
|
|
|
|
apply congrArg
|
|
|
|
|
rw [ofCrAnList_append, ofCrAnList_singleton, ofCrAnList_singleton]
|
|
|
|
|
rw [ofCrAnList_append, ofCrAnList_singleton, ofCrAnList_singleton, smul_mul_assoc]
|
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
/-!
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
## Super commututators involving a normal order.
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
-/
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma ofCrAnList_superCommuteF_normalOrderF_ofCrAnList (φs φs' : List 𝓕.CrAnStates) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
[ofCrAnList φs, 𝓝ᶠ(ofCrAnList φs')]ₛca =
|
|
|
|
|
ofCrAnList φs * 𝓝ᶠ(ofCrAnList φs') -
|
|
|
|
|
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofCrAnList φs') * ofCrAnList φs := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
simp [normalOrderF_ofCrAnList, map_smul, superCommuteF_ofCrAnList_ofCrAnList, ofCrAnList_append,
|
2025-01-20 15:17:48 +00:00
|
|
|
|
smul_sub, smul_smul, mul_comm]
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma ofCrAnList_superCommuteF_normalOrderF_ofStateList (φs : List 𝓕.CrAnStates)
|
2025-01-27 12:19:21 +00:00
|
|
|
|
(φs' : List 𝓕.States) : [ofCrAnList φs, 𝓝ᶠ(ofStateList φs')]ₛca =
|
|
|
|
|
ofCrAnList φs * 𝓝ᶠ(ofStateList φs') -
|
|
|
|
|
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofStateList φs') * ofCrAnList φs := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [ofStateList_sum, map_sum, Finset.mul_sum, Finset.smul_sum, Finset.sum_mul,
|
|
|
|
|
← Finset.sum_sub_distrib, map_sum]
|
|
|
|
|
congr
|
|
|
|
|
funext n
|
2025-01-30 06:00:18 +00:00
|
|
|
|
rw [ofCrAnList_superCommuteF_normalOrderF_ofCrAnList,
|
2025-01-20 15:17:48 +00:00
|
|
|
|
CrAnSection.statistics_eq_state_statistics]
|
|
|
|
|
|
2025-01-22 06:26:28 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Multiplications with normal order written in terms of super commute.
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma ofCrAnList_mul_normalOrderF_ofStateList_eq_superCommuteF (φs : List 𝓕.CrAnStates)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(φs' : List 𝓕.States) :
|
2025-01-27 12:19:21 +00:00
|
|
|
|
ofCrAnList φs * 𝓝ᶠ(ofStateList φs') =
|
|
|
|
|
𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofStateList φs') * ofCrAnList φs
|
|
|
|
|
+ [ofCrAnList φs, 𝓝ᶠ(ofStateList φs')]ₛca := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
simp [ofCrAnList_superCommuteF_normalOrderF_ofStateList]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:00:18 +00:00
|
|
|
|
lemma ofCrAnState_mul_normalOrderF_ofStateList_eq_superCommuteF (φ : 𝓕.CrAnStates)
|
2025-01-27 16:13:54 +00:00
|
|
|
|
(φs' : List 𝓕.States) : ofCrAnState φ * 𝓝ᶠ(ofStateList φs') =
|
|
|
|
|
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofStateList φs') * ofCrAnState φ
|
2025-01-27 12:19:21 +00:00
|
|
|
|
+ [ofCrAnState φ, 𝓝ᶠ(ofStateList φs')]ₛca := by
|
2025-01-30 06:00:18 +00:00
|
|
|
|
simp [← ofCrAnList_singleton, ofCrAnList_mul_normalOrderF_ofStateList_eq_superCommuteF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-30 06:24:17 +00:00
|
|
|
|
lemma anPartF_mul_normalOrderF_ofStateList_eq_superCommuteF (φ : 𝓕.States)
|
2025-01-20 15:17:48 +00:00
|
|
|
|
(φs' : List 𝓕.States) :
|
2025-01-30 06:24:17 +00:00
|
|
|
|
anPartF φ * 𝓝ᶠ(ofStateList φs') =
|
|
|
|
|
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofStateList φs' * anPartF φ)
|
|
|
|
|
+ [anPartF φ, 𝓝ᶠ(ofStateList φs')]ₛca := by
|
|
|
|
|
rw [normalOrderF_mul_anPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
match φ with
|
2025-01-23 14:22:25 +00:00
|
|
|
|
| .inAsymp φ => simp
|
2025-01-30 06:00:18 +00:00
|
|
|
|
| .position φ => simp [ofCrAnState_mul_normalOrderF_ofStateList_eq_superCommuteF, crAnStatistics]
|
|
|
|
|
| .outAsymp φ => simp [ofCrAnState_mul_normalOrderF_ofStateList_eq_superCommuteF, crAnStatistics]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end CrAnAlgebra
|
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
end FieldSpecification
|