From 82fae67ba3e2633a476452739afdc87a0eb87e29 Mon Sep 17 00:00:00 2001 From: jstoobysmith <72603918+jstoobysmith@users.noreply.github.com> Date: Thu, 13 Feb 2025 10:44:15 +0000 Subject: [PATCH] refactor: Update supercommute notation --- .../FieldOpAlgebra/Basic.lean | 52 +++--- .../FieldOpAlgebra/NormalOrder/Basic.lean | 32 ++-- .../FieldOpAlgebra/NormalOrder/Lemmas.lean | 2 +- .../FieldOpAlgebra/SuperCommute.lean | 14 +- .../FieldOpAlgebra/TimeOrder.lean | 31 ++-- .../FieldOpFreeAlgebra/Basic.lean | 2 +- .../FieldOpFreeAlgebra/NormalOrder.lean | 22 +-- .../FieldOpFreeAlgebra/SuperCommute.lean | 164 +++++++++--------- .../FieldOpFreeAlgebra/TimeOrder.lean | 18 +- .../FieldSpecification/CrAnFieldOp.lean | 20 +-- .../WickContraction/InsertAndContract.lean | 19 +- .../WickContraction/Sign/Basic.lean | 9 +- 12 files changed, 197 insertions(+), 188 deletions(-) diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean index d700622..9bfa5c9 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean @@ -24,24 +24,24 @@ variable (𝓕 : FieldSpecification) def fieldOpIdealSet : Set (FieldOpFreeAlgebra 𝓕) := { x | (∃ (φ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), - x = [ofCrAnOpF φc, ofCrAnOpF φc']ₛca) + x = [ofCrAnOpF φc, ofCrAnOpF φc']ₛF) ∨ (∃ (φa φa' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φa = .annihilate) (_ : 𝓕 |>ᶜ φa' = .annihilate), - x = [ofCrAnOpF φa, ofCrAnOpF φa']ₛca) + x = [ofCrAnOpF φa, ofCrAnOpF φa']ₛF) ∨ (∃ (φ φ' : 𝓕.CrAnFieldOp) (_ : ¬ (𝓕 |>ₛ φ) = (𝓕 |>ₛ φ')), - x = [ofCrAnOpF φ, ofCrAnOpF φ']ₛca)} + x = [ofCrAnOpF φ, ofCrAnOpF φ']ₛF)} /-- For a field specification `𝓕`, the algebra `𝓕.FieldOpAlgebra` is defined as the quotient 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. -- `[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. -- `[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 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 of the algebra. -/ @@ -70,7 +70,7 @@ lemma equiv_iff_exists_add (x y : FieldOpFreeAlgebra 𝓕) : rw [equiv_iff_sub_mem_ideal] simp [ha] -/-- For a field specification `𝓕`, the projection +/-- For a field specification `𝓕`, `ι` is defined as the projection `𝓕.FieldOpFreeAlgebra →ₐ[ℂ] FieldOpAlgebra 𝓕` @@ -100,7 +100,7 @@ lemma ι_of_mem_fieldOpIdealSet (x : FieldOpFreeAlgebra 𝓕) (hx : x ∈ 𝓕.f simpa using hx 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 simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq] 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) (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 simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq] simp only [exists_prop] @@ -120,7 +120,7 @@ lemma ι_superCommuteF_of_annihilate_annihilate (φa φa' : 𝓕.CrAnFieldOp) use φa, φa', hφa, hφa' lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp} - (h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by + (h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by apply ι_of_mem_fieldOpIdealSet simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq] right @@ -129,8 +129,8 @@ lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp} use φ, ψ lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp) - (h : [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ statisticSubmodule fermionic) : - ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by + (h : [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ statisticSubmodule fermionic) : + ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] at h ⊢ rcases statistic_neq_of_superCommuteF_fermionic h with h | h · simp only [ofCrAnListF_singleton] @@ -139,8 +139,8 @@ lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp) · simp [h] lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFieldOp) : - [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ statisticSubmodule bosonic ∨ - ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by + [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF ∈ statisticSubmodule bosonic ∨ + ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF = 0 := by rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [ψ] with h | h · simp_all [ofCrAnListF_singleton] · simp_all only [ofCrAnListF_singleton] @@ -155,14 +155,14 @@ lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFie @[simp] 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 simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq] left use φ1, φ2, φ3 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] rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | 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) (φ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] rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h · rw [superCommuteF_bosonic_ofCrAnListF_eq_sum _ _ h] @@ -185,27 +185,27 @@ lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF (φ1 φ2 : @[simp] lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_fieldOpFreeAlgebra (φ1 φ2 : 𝓕.CrAnFieldOp) - (a : 𝓕.FieldOpFreeAlgebra) : ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, a]ₛca = 0 := by - change (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca) a = _ - have h1 : (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca) = 0 := by + (a : 𝓕.FieldOpFreeAlgebra) : ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, a]ₛF = 0 := by + change (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF) a = _ + have h1 : (ι.toLinearMap ∘ₗ superCommuteF [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF) = 0 := by apply (ofCrAnListFBasis.ext fun l ↦ ?_) simp [ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF] rw [h1] simp lemma ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 : 𝓕.CrAnFieldOp) - (a : 𝓕.FieldOpFreeAlgebra) : ι a * ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca - - ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca * ι a = 0 := by + (a : 𝓕.FieldOpFreeAlgebra) : ι a * ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF - + ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF * ι a = 0 := by rcases ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero φ1 φ2 with h | h swap · simp [h] - trans - ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, a]ₛca + trans - ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛF, a]ₛF · rw [bosonic_superCommuteF h] simp · simp 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] intro a obtain ⟨a, rfl⟩ := ι_surjective a diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Basic.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Basic.lean index 075df50..0c416a6 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Basic.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Basic.lean @@ -32,7 +32,7 @@ is zero. lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero (φ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' · 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 (φa φa' : 𝓕.CrAnFieldOp) (φs : List 𝓕.CrAnFieldOp) (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 ∘ₗ - mulLinearMap (ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca) = 0 := by + mulLinearMap (ofCrAnListF φs * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF) = 0 := by apply ofCrAnListFBasis.ext intro l simp only [FieldOpFreeAlgebra.ofListBasis_eq_ofList, LinearMap.coe_comp, Function.comp_apply, AlgHom.toLinearMap_apply, LinearMap.zero_apply] exact ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero φa φa' φs l 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] simp lemma ι_normalOrderF_superCommuteF_ofCrAnOpF_eq_zero_mul (φa φa' : 𝓕.CrAnFieldOp) (a b : 𝓕.FieldOpFreeAlgebra) : - ι 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca * b) = 0 := by + ι 𝓝ᶠ(a * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * b) = 0 := by rw [mul_assoc] 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 - ([ofCrAnOpF φa, ofCrAnOpF φa']ₛca * b) = 0 := by + ([ofCrAnOpF φa, ofCrAnOpF φa']ₛF * b) = 0 := by apply ofCrAnListFBasis.ext intro l 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) (φ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 [Finset.mul_sum, Finset.sum_mul] 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) (φ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] 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] @@ -107,7 +107,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnOpF_eq_zero_mul (φa : lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero_mul (φ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 [map_sum, map_sum] apply Fintype.sum_eq_zero @@ -119,7 +119,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_ofCrAnListF_eq_zero_mul lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero_mul (φs : List 𝓕.CrAnFieldOp) (a b c : 𝓕.FieldOpFreeAlgebra) : - ι 𝓝ᶠ(a * [ofCrAnListF φs, c]ₛca * b) = 0 := by + ι 𝓝ᶠ(a * [ofCrAnListF φs, c]ₛF * b) = 0 := by change (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ mulLinearMap.flip b ∘ₗ mulLinearMap a ∘ₗ superCommuteF (ofCrAnListF φs)) c = 0 have hf : (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ @@ -135,7 +135,7 @@ lemma ι_normalOrderF_superCommuteF_ofCrAnListF_eq_zero_mul @[simp] 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 ∘ₗ mulLinearMap.flip b ∘ₗ mulLinearMap a ∘ₗ superCommuteF.flip c) d = 0 have hf : (ι.toLinearMap ∘ₗ normalOrderF ∘ₗ @@ -151,25 +151,25 @@ lemma ι_normalOrderF_superCommuteF_eq_zero_mul @[simp] 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] simp @[simp] 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] simp @[simp] 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] congr 2 noncomm_ring @[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] simp diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Lemmas.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Lemmas.lean index cee072a..00a8c4c 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Lemmas.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/NormalOrder/Lemmas.lean @@ -324,7 +324,7 @@ lemma anPart_mul_normalOrder_ofFieldOpList_eq_superCommute_reorder (φ : 𝓕.Fi /-- Within a proto-operator algebra we have that -`φ * 𝓝ᶠ(φ₀φ₁…φₙ) = 𝓝ᶠ(φφ₀φ₁…φₙ) + [anpart φ, 𝓝ᶠ(φ₀φ₁…φₙ)]ₛca`. +`φ * 𝓝ᶠ(φ₀φ₁…φₙ) = 𝓝ᶠ(φφ₀φ₁…φₙ) + [anpart φ, 𝓝ᶠ(φ₀φ₁…φₙ)]ₛF`. -/ lemma ofFieldOp_mul_normalOrder_ofFieldOpList_eq_superCommute (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : ofFieldOp φ * 𝓝(ofFieldOpList φs) = diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/SuperCommute.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/SuperCommute.lean index 467190f..0a0ee23 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/SuperCommute.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/SuperCommute.lean @@ -20,13 +20,13 @@ namespace FieldOpAlgebra variable {𝓕 : FieldSpecification} 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 [ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero] at h simp_all 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 [ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero] at h 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) - (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 exact (ι_eq_zero_iff_mem_ideal b).mpr h 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 [LinearMap.sub_mem_ker_iff.mp] simp only [LinearMap.mem_ker, ← map_sub] @@ -68,10 +68,10 @@ noncomputable def superCommuteRight (a : 𝓕.FieldOpFreeAlgebra) : simp 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) : - 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) : superCommuteRight a1 = superCommuteRight a2 := by @@ -126,7 +126,7 @@ noncomputable def superCommute : FieldOpAlgebra 𝓕 →ₗ[ℂ] scoped[FieldSpecification.FieldOpAlgebra] notation "[" a "," b "]ₛ" => superCommute a b lemma superCommute_eq_ι_superCommuteF (a b : 𝓕.FieldOpFreeAlgebra) : - [ι a, ι b]ₛ = ι [a, b]ₛca := rfl + [ι a, ι b]ₛ = ι [a, b]ₛF := rfl /-! diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean index 85b65b1..ad52ae5 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean @@ -24,7 +24,7 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_eq_time_ofCrAnListF {φ1 φ2 φ3 crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧ crAnTimeOrderRel φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧ 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 let l1 := (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] rw [← mul_sub, ← mul_sub, ← mul_sub] 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) rw [mul_assoc] congr @@ -141,7 +141,7 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_eq_time_ofCrAnListF {φ1 φ2 φ3 lemma ι_timeOrderF_superCommuteF_superCommuteF_ofCrAnListF {φ1 φ2 φ3 : 𝓕.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 by_cases h : crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧ @@ -155,16 +155,16 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF_ofCrAnListF {φ1 φ2 φ3 : 𝓕. @[simp] lemma ι_timeOrderF_superCommuteF_superCommuteF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (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)) : - 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) apply Submodule.span_induction · intro x hx obtain ⟨φs, rfl⟩ := hx simp only [ofListBasis_eq_ofList, pb] 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) apply Submodule.span_induction · intro x hx @@ -184,19 +184,19 @@ lemma ι_timeOrderF_superCommuteF_superCommuteF {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} lemma ι_timeOrderF_superCommuteF_eq_time {φ ψ : 𝓕.CrAnFieldOp} (hφψ : crAnTimeOrderRel φ ψ) (hψφ : crAnTimeOrderRel ψ φ) (a b : 𝓕.FieldOpFreeAlgebra) : - ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = - ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * 𝓣ᶠ(a * b)) := by + ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) = + ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * 𝓣ᶠ(a * b)) := by let pb (b : 𝓕.FieldOpFreeAlgebra) (hc : b ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) : - Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = - ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * 𝓣ᶠ(a * b)) + Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) = + ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * 𝓣ᶠ(a * b)) change pb b (Basis.mem_span _ b) apply Submodule.span_induction · intro x hx obtain ⟨φs, rfl⟩ := hx simp only [ofListBasis_eq_ofList, map_mul, pb] let pa (a : 𝓕.FieldOpFreeAlgebra) (hc : a ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) : - Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * ofCrAnListF φs) = - ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * 𝓣ᶠ(a* ofCrAnListF φs)) + Prop := ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * ofCrAnListF φs) = + ι ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * 𝓣ᶠ(a* ofCrAnListF φs)) change pa a (Basis.mem_span _ a) apply Submodule.span_induction · intro x hx @@ -234,7 +234,7 @@ lemma ι_timeOrderF_superCommuteF_eq_time {φ ψ : 𝓕.CrAnFieldOp} rw [← sub_mul] have h1 : (ι (ofCrAnListF [φ, ψ]) - (exchangeSign (𝓕.crAnStatistics φ)) (𝓕.crAnStatistics ψ) • ι (ofCrAnListF [ψ, φ])) = - ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca := by + ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF := by rw [superCommuteF_ofCrAnOpF_ofCrAnOpF] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_append] 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} (hφψ : ¬ (crAnTimeOrderRel φ ψ ∧ crAnTimeOrderRel ψ φ)) (a b : 𝓕.FieldOpFreeAlgebra) : - ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = 0 := by + ι 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) = 0 := by rw [timeOrderF_timeOrderF_mid] have hφψ : ¬ (crAnTimeOrderRel φ ψ) ∨ ¬ (crAnTimeOrderRel ψ φ) := by 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 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. -/ lemma timeOrder_eq_maxTimeField_mul_finset (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean index 8e93545..6507eee 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean @@ -96,7 +96,7 @@ lemma ofCrAnListF_singleton (φ : 𝓕.CrAnFieldOp) : `ofCrAnOpF` of the 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 position field operator we get `ofCrAnOpF ⟨φ, .create⟩ + ofCrAnOpF ⟨φ, .annihilate⟩`. -/ def ofFieldOpF (φ : 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 := diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/NormalOrder.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/NormalOrder.lean index 29deeaa..0258d94 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/NormalOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/NormalOrder.lean @@ -239,7 +239,7 @@ lemma normalOrderF_swap_create_annihilate (φc φa : 𝓕.CrAnFieldOp) lemma normalOrderF_superCommuteF_create_annihilate (φc φa : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate) (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] rw [mul_sub, sub_mul, map_sub, ← smul_mul_assoc, ← mul_assoc, ← mul_assoc, 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) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate) (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] 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] @@ -402,9 +402,9 @@ TODO "Split the following two lemmas up into smaller parts." lemma normalOrderF_superCommuteF_ofCrAnListF_create_create_ofCrAnListF (φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = CreateAnnihilate.create) (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') • - (ofCrAnListF (createFilter φs) * [ofCrAnOpF φc, ofCrAnOpF φc']ₛca * + (ofCrAnListF (createFilter φs) * [ofCrAnOpF φc, ofCrAnOpF φc']ₛF * ofCrAnListF (createFilter φs') * ofCrAnListF (annihilateFilter (φs ++ φs'))) := by rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, mul_sub, sub_mul, map_sub] conv_lhs => @@ -463,10 +463,10 @@ lemma normalOrderF_superCommuteF_ofCrAnListF_annihilate_annihilate_ofCrAnListF (hφa : 𝓕 |>ᶜ φa = CreateAnnihilate.annihilate) (hφa' : 𝓕 |>ᶜ φa' = CreateAnnihilate.annihilate) (φ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') • (ofCrAnListF (createFilter (φs ++ φs')) - * ofCrAnListF (annihilateFilter φs) * [ofCrAnOpF φa, ofCrAnOpF φa']ₛca + * ofCrAnListF (annihilateFilter φs) * [ofCrAnOpF φa, ofCrAnOpF φa']ₛF * ofCrAnListF (annihilateFilter φs')) := by rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, mul_sub, sub_mul, map_sub] conv_lhs => @@ -533,7 +533,7 @@ lemma normalOrderF_superCommuteF_ofCrAnListF_annihilate_annihilate_ofCrAnListF -/ lemma ofCrAnListF_superCommuteF_normalOrderF_ofCrAnListF (φs φs' : List 𝓕.CrAnFieldOp) : - [ofCrAnListF φs, 𝓝ᶠ(ofCrAnListF φs')]ₛca = + [ofCrAnListF φs, 𝓝ᶠ(ofCrAnListF φs')]ₛF = ofCrAnListF φs * 𝓝ᶠ(ofCrAnListF φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofCrAnListF φs') * ofCrAnListF φs := by 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] 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') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs := by 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) : ofCrAnListF φs * 𝓝ᶠ(ofFieldOpListF φs') = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnListF φs - + [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛca := by + + [ofCrAnListF φs, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by simp [ofCrAnListF_superCommuteF_normalOrderF_ofFieldOpListF] lemma ofCrAnOpF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp) (φs' : List 𝓕.FieldOp) : ofCrAnOpF φ * 𝓝ᶠ(ofFieldOpListF φs') = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs') * ofCrAnOpF φ - + [ofCrAnOpF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛca := by + + [ofCrAnOpF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by simp [← ofCrAnListF_singleton, ofCrAnListF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF] lemma anPartF_mul_normalOrderF_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp) (φs' : List 𝓕.FieldOp) : anPartF φ * 𝓝ᶠ(ofFieldOpListF φs') = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • 𝓝ᶠ(ofFieldOpListF φs' * anPartF φ) - + [anPartF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛca := by + + [anPartF φ, 𝓝ᶠ(ofFieldOpListF φs')]ₛF := by rw [normalOrderF_mul_anPartF] match φ with | .inAsymp φ => simp diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean index 2e19473..ba7fa2e 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean @@ -29,7 +29,7 @@ open FieldStatistic `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 →ₗ[ℂ] 𝓕.FieldOpFreeAlgebra := Basis.constr ofCrAnListFBasis ℂ fun φs => @@ -37,7 +37,7 @@ noncomputable def superCommuteF : 𝓕.FieldOpFreeAlgebra →ₗ[ℂ] 𝓕.Field ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs) @[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) : - [ofCrAnListF φs, ofCrAnListF φs']ₛca = + [ofCrAnListF φs, ofCrAnListF φs']ₛF = ofCrAnListF (φs ++ φs') - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofCrAnListF (φs' ++ φs) := by rw [← ofListBasis_eq_ofList, ← ofListBasis_eq_ofList] simp only [superCommuteF, Basis.constr_basis] lemma superCommuteF_ofCrAnOpF_ofCrAnOpF (φ φ' : 𝓕.CrAnFieldOp) : - [ofCrAnOpF φ, ofCrAnOpF φ']ₛca = + [ofCrAnOpF φ, ofCrAnOpF φ']ₛF = ofCrAnOpF φ * ofCrAnOpF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofCrAnOpF φ' * ofCrAnOpF φ := by rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] 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] 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 conv_lhs => rw [ofFieldOpListF_sum] rw [map_sum] @@ -74,7 +74,7 @@ lemma superCommuteF_ofCrAnListF_ofFieldOpFsList (φcas : List 𝓕.CrAnFieldOp) simp 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 conv_lhs => rw [ofFieldOpListF_sum] 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] 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 rw [← ofFieldOpListF_singleton, superCommuteF_ofFieldOpListF_ofFieldOpFsList, ofFieldOpListF_singleton] simp 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 rw [← ofFieldOpListF_singleton, superCommuteF_ofFieldOpListF_ofFieldOpFsList, ofFieldOpListF_singleton] simp lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) : - [anPartF φ, crPartF φ']ₛca = anPartF φ * crPartF φ' - + [anPartF φ, crPartF φ']ₛF = anPartF φ * crPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * anPartF φ := by match φ, φ' with | FieldOp.inAsymp φ, _ => @@ -129,7 +129,7 @@ lemma superCommuteF_anPartF_crPartF (φ φ' : 𝓕.FieldOp) : simp [crAnStatistics, ← ofCrAnListF_append] lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) : - [crPartF φ, anPartF φ']ₛca = crPartF φ * anPartF φ' - + [crPartF φ, anPartF φ']ₛF = crPartF φ * anPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ := by match φ, φ' with | FieldOp.outAsymp φ, _ => @@ -156,7 +156,7 @@ lemma superCommuteF_crPartF_anPartF (φ φ' : 𝓕.FieldOp) : simp [crAnStatistics, ← ofCrAnListF_append] lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.FieldOp) : - [crPartF φ, crPartF φ']ₛca = crPartF φ * crPartF φ' - + [crPartF φ, crPartF φ']ₛF = crPartF φ * crPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ := by match φ, φ' with | FieldOp.outAsymp φ, _ => @@ -183,7 +183,7 @@ lemma superCommuteF_crPartF_crPartF (φ φ' : 𝓕.FieldOp) : simp [crAnStatistics, ← ofCrAnListF_append] lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.FieldOp) : - [anPartF φ, anPartF φ']ₛca = + [anPartF φ, anPartF φ']ₛF = anPartF φ * anPartF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ := by match φ, φ' with | FieldOp.inAsymp φ, _ => @@ -208,7 +208,7 @@ lemma superCommuteF_anPartF_anPartF (φ φ' : 𝓕.FieldOp) : simp [crAnStatistics, ← ofCrAnListF_append] lemma superCommuteF_crPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : - [crPartF φ, ofFieldOpListF φs]ₛca = + [crPartF φ, ofFieldOpListF φs]ₛF = crPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * crPartF φ := by match φ with @@ -224,7 +224,7 @@ lemma superCommuteF_crPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕. simp lemma superCommuteF_anPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) : - [anPartF φ, ofFieldOpListF φs]ₛca = + [anPartF φ, ofFieldOpListF φs]ₛF = anPartF φ * ofFieldOpListF φs - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs) • ofFieldOpListF φs * anPartF φ := by match φ with @@ -240,14 +240,14 @@ lemma superCommuteF_anPartF_ofFieldOpListF (φ : 𝓕.FieldOp) (φs : List 𝓕. simp [crAnStatistics] lemma superCommuteF_crPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) : - [crPartF φ, ofFieldOpF φ']ₛca = + [crPartF φ, ofFieldOpF φ']ₛF = crPartF φ * ofFieldOpF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * crPartF φ := by rw [← ofFieldOpListF_singleton, superCommuteF_crPartF_ofFieldOpListF] simp lemma superCommuteF_anPartF_ofFieldOpF (φ φ' : 𝓕.FieldOp) : - [anPartF φ, ofFieldOpF φ']ₛca = + [anPartF φ, ofFieldOpF φ']ₛF = anPartF φ * ofFieldOpF φ' - 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • ofFieldOpF φ' * anPartF φ := by 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) : 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] simp [ofCrAnListF_append] lemma ofCrAnOpF_mul_ofCrAnListF_eq_superCommuteF (φ : 𝓕.CrAnFieldOp) (φs' : List 𝓕.CrAnFieldOp) : 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] simp lemma ofFieldOpListF_mul_ofFieldOpListF_eq_superCommuteF (φs φs' : List 𝓕.FieldOp) : 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] simp lemma ofFieldOpF_mul_ofFieldOpListF_eq_superCommuteF (φ : 𝓕.FieldOp) (φs' : List 𝓕.FieldOp) : ofFieldOpF φ * ofFieldOpListF φs' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofFieldOpF φ - + [ofFieldOpF φ, ofFieldOpListF φs']ₛca := by + + [ofFieldOpF φ, ofFieldOpListF φs']ₛF := by rw [superCommuteF_ofFieldOpF_ofFieldOpFsList] simp lemma ofFieldOpListF_mul_ofFieldOpF_eq_superCommuteF (φs : List 𝓕.FieldOp) (φ : 𝓕.FieldOp) : ofFieldOpListF φs * ofFieldOpF φ = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * ofFieldOpListF φs - + [ofFieldOpListF φs, ofFieldOpF φ]ₛca := by + + [ofFieldOpListF φs, ofFieldOpF φ]ₛF := by rw [superCommuteF_ofFieldOpListF_ofFieldOpF] simp lemma crPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : crPartF φ * anPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * crPartF φ + - [crPartF φ, anPartF φ']ₛca := by + [crPartF φ, anPartF φ']ₛF := by rw [superCommuteF_crPartF_anPartF] simp @@ -303,27 +303,27 @@ lemma anPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : anPartF φ * crPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * anPartF φ + - [anPartF φ, crPartF φ']ₛca := by + [anPartF φ, crPartF φ']ₛF := by rw [superCommuteF_anPartF_crPartF] simp lemma crPartF_mul_crPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : crPartF φ * crPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • crPartF φ' * crPartF φ + - [crPartF φ, crPartF φ']ₛca := by + [crPartF φ, crPartF φ']ₛF := by rw [superCommuteF_crPartF_crPartF] simp lemma anPartF_mul_anPartF_eq_superCommuteF (φ φ' : 𝓕.FieldOp) : anPartF φ * anPartF φ' = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ') • anPartF φ' * anPartF φ + - [anPartF φ, anPartF φ']ₛca := by + [anPartF φ, anPartF φ']ₛF := by rw [superCommuteF_anPartF_anPartF] simp lemma ofCrAnListF_mul_ofFieldOpListF_eq_superCommuteF (φs : List 𝓕.CrAnFieldOp) (φs' : List 𝓕.FieldOp) : ofCrAnListF φs * ofFieldOpListF φs' = 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs') • ofFieldOpListF φs' * ofCrAnListF φs - + [ofCrAnListF φs, ofFieldOpListF φs']ₛca := by + + [ofCrAnListF φs, ofFieldOpListF φs']ₛF := by rw [superCommuteF_ofCrAnListF_ofFieldOpFsList] simp @@ -334,8 +334,8 @@ lemma ofCrAnListF_mul_ofFieldOpListF_eq_superCommuteF (φs : List 𝓕.CrAnField -/ lemma superCommuteF_ofCrAnListF_ofCrAnListF_symm (φs φs' : List 𝓕.CrAnFieldOp) : - [ofCrAnListF φs, ofCrAnListF φs']ₛca = - (- 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs')) • [ofCrAnListF φs', ofCrAnListF φs]ₛca := by + [ofCrAnListF φs, ofCrAnListF φs']ₛF = + (- 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φs')) • [ofCrAnListF φs', ofCrAnListF φs]ₛF := by rw [superCommuteF_ofCrAnListF_ofCrAnListF, superCommuteF_ofCrAnListF_ofCrAnListF, smul_sub] simp only [instCommGroup.eq_1, neg_smul, sub_neg_eq_add] rw [smul_smul] @@ -346,8 +346,8 @@ lemma superCommuteF_ofCrAnListF_ofCrAnListF_symm (φs φs' : List 𝓕.CrAnField abel lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_symm (φ φ' : 𝓕.CrAnFieldOp) : - [ofCrAnOpF φ, ofCrAnOpF φ']ₛca = - (- 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ')) • [ofCrAnOpF φ', ofCrAnOpF φ]ₛca := by + [ofCrAnOpF φ, ofCrAnOpF φ']ₛF = + (- 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φ')) • [ofCrAnOpF φ', ofCrAnOpF φ]ₛF := by rw [superCommuteF_ofCrAnOpF_ofCrAnOpF, superCommuteF_ofCrAnOpF_ofCrAnOpF] rw [smul_sub] 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) : - [ofCrAnListF φs, ofCrAnListF (φ :: φs')]ₛca = - [ofCrAnListF φs, ofCrAnOpF φ]ₛca * ofCrAnListF φs' + + [ofCrAnListF φs, ofCrAnListF (φ :: φs')]ₛF = + [ofCrAnListF φs, ofCrAnOpF φ]ₛF * ofCrAnListF φs' + 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) - • ofCrAnOpF φ * [ofCrAnListF φs, ofCrAnListF φs']ₛca := by + • ofCrAnOpF φ * [ofCrAnListF φs, ofCrAnListF φs']ₛF := by rw [superCommuteF_ofCrAnListF_ofCrAnListF] conv_rhs => lhs @@ -386,9 +386,9 @@ lemma superCommuteF_ofCrAnListF_ofCrAnListF_cons (φ : 𝓕.CrAnFieldOp) (φs φ simp only [instCommGroup, map_mul, mul_comm] lemma superCommuteF_ofCrAnListF_ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.CrAnFieldOp) - (φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, ofFieldOpListF (φ :: φs')]ₛca = - [ofCrAnListF φs, ofFieldOpF φ]ₛca * ofFieldOpListF φs' + - 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * [ofCrAnListF φs, ofFieldOpListF φs']ₛca := by + (φs' : List 𝓕.FieldOp) : [ofCrAnListF φs, ofFieldOpListF (φ :: φs')]ₛF = + [ofCrAnListF φs, ofFieldOpF φ]ₛF * ofFieldOpListF φs' + + 𝓢(𝓕 |>ₛ φs, 𝓕 |>ₛ φ) • ofFieldOpF φ * [ofCrAnListF φs, ofFieldOpListF φs']ₛF := by rw [superCommuteF_ofCrAnListF_ofFieldOpFsList] conv_rhs => 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` 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`. -/ 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) • - 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)) | [] => by 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) : (φs' : List 𝓕.FieldOp) → - [ofCrAnListF φs, ofFieldOpListF φs']ₛca = + [ofCrAnListF φs, ofFieldOpListF φs']ₛF = ∑ (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)) | [] => by 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] 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) • - (- 𝓢(𝓕 |>ₛ φs2, 𝓕 |>ₛ φs3) • [ofCrAnListF φs3, [ofCrAnListF φs1, ofCrAnListF φs2]ₛca]ₛca - - 𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs2) • [ofCrAnListF φs2, [ofCrAnListF φs3, ofCrAnListF φs1]ₛca]ₛca) := by + (- 𝓢(𝓕 |>ₛ φs2, 𝓕 |>ₛ φs3) • [ofCrAnListF φs3, [ofCrAnListF φs1, ofCrAnListF φs2]ₛF]ₛF - + 𝓢(𝓕 |>ₛ φs1, 𝓕 |>ₛ φs2) • [ofCrAnListF φs2, [ofCrAnListF φs3, ofCrAnListF φs1]ₛF]ₛF) := by repeat rw [superCommuteF_ofCrAnListF_ofCrAnListF] simp only [instCommGroup, map_sub, map_smul, neg_smul] 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} (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 := - [a, a2]ₛca ∈ statisticSubmodule (f1 + f2) + [a, a2]ₛF ∈ statisticSubmodule (f1 + f2) change p b hb apply Submodule.span_induction (p := p) · intro x hx obtain ⟨φs, rfl, hφs⟩ := hx simp only [add_eq_mul, instCommGroup, p] 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 apply Submodule.span_induction (p := p) · intro x hx @@ -543,15 +543,15 @@ lemma superCommuteF_grade {a b : 𝓕.FieldOpFreeAlgebra} {f1 f2 : FieldStatisti lemma superCommuteF_bosonic_bosonic {a b : 𝓕.FieldOpFreeAlgebra} (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 := - [a, a2]ₛca = a * a2 - a2 * a + [a, a2]ₛF = a * a2 - a2 * a change p b hb apply Submodule.span_induction (p := p) · intro x hx obtain ⟨φs, rfl, hφs⟩ := hx 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 apply Submodule.span_induction (p := p) · intro x hx @@ -576,15 +576,15 @@ lemma superCommuteF_bosonic_bosonic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_bosonic_fermionic {a b : 𝓕.FieldOpFreeAlgebra} (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 := - [a, a2]ₛca = a * a2 - a2 * a + [a, a2]ₛF = a * a2 - a2 * a change p b hb apply Submodule.span_induction (p := p) · intro x hx obtain ⟨φs, rfl, hφs⟩ := hx 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 apply Submodule.span_induction (p := p) · intro x hx @@ -609,15 +609,15 @@ lemma superCommuteF_bosonic_fermionic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_fermionic_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} (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 := - [a, a2]ₛca = a * a2 - a2 * a + [a, a2]ₛF = a * a2 - a2 * a change p b hb apply Submodule.span_induction (p := p) · intro x hx obtain ⟨φs, rfl, hφs⟩ := hx 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 apply Submodule.span_induction (p := p) · intro x hx @@ -641,7 +641,7 @@ lemma superCommuteF_fermionic_bonsonic {a b : 𝓕.FieldOpFreeAlgebra} · exact hb 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] simp only [map_add, LinearMap.add_apply] 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 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] simp only [map_add, LinearMap.add_apply] 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} (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] simp lemma bonsonic_superCommuteF_symm {a b : 𝓕.FieldOpFreeAlgebra} (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] simp lemma superCommuteF_fermionic_fermionic {a b : 𝓕.FieldOpFreeAlgebra} (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 := - [a, a2]ₛca = a * a2 + a2 * a + [a, a2]ₛF = a * a2 + a2 * a change p b hb apply Submodule.span_induction (p := p) · intro x hx obtain ⟨φs, rfl, hφs⟩ := hx 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 apply Submodule.span_induction (p := p) · intro x hx @@ -703,13 +703,13 @@ lemma superCommuteF_fermionic_fermionic {a b : 𝓕.FieldOpFreeAlgebra} lemma superCommuteF_fermionic_fermionic_symm {a b : 𝓕.FieldOpFreeAlgebra} (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 hb ha] abel 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 + fermionicProjF a * bosonicProjF b - bosonicProjF b * fermionicProjF a + fermionicProjF a * fermionicProjF b + fermionicProjF b * fermionicProjF a := by @@ -722,8 +722,8 @@ lemma superCommuteF_expand_bosonicProjF_fermionicProjF (a b : 𝓕.FieldOpFreeAl abel lemma superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic (φs φs' : List 𝓕.CrAnFieldOp) : - [ofCrAnListF φs, ofCrAnListF φs']ₛca ∈ statisticSubmodule bosonic ∨ - [ofCrAnListF φs, ofCrAnListF φs']ₛca ∈ statisticSubmodule fermionic := by + [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule bosonic ∨ + [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule fermionic := by by_cases h1 : (𝓕 |>ₛ φs) = bosonic <;> by_cases h2 : (𝓕 |>ₛ φs') = bosonic · left 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) lemma superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic (φ φ' : 𝓕.CrAnFieldOp) : - [ofCrAnOpF φ, ofCrAnOpF φ']ₛca ∈ statisticSubmodule bosonic ∨ - [ofCrAnOpF φ, ofCrAnOpF φ']ₛca ∈ statisticSubmodule fermionic := by + [ofCrAnOpF φ, ofCrAnOpF φ']ₛF ∈ statisticSubmodule bosonic ∨ + [ofCrAnOpF φ, ofCrAnOpF φ']ₛF ∈ statisticSubmodule fermionic := by rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] exact superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [φ'] 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]ₛca]ₛca ∈ statisticSubmodule fermionic := by + [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF ∈ statisticSubmodule bosonic ∨ + [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛF]ₛF ∈ statisticSubmodule fermionic := by rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ2 φ3 with hs | hs <;> rcases ofCrAnOpF_bosonic_or_fermionic φ1 with h1 | h1 · 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) (ha : a ∈ statisticSubmodule bosonic) : - [a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), - ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * + [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), + ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF * ofCrAnListF (φs.drop (n + 1)) := by let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule bosonic) : Prop := - [a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), - ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * + [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), + ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF * ofCrAnListF (φs.drop (n + 1)) change p a ha 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) (φs : List 𝓕.CrAnFieldOp) (ha : a ∈ statisticSubmodule fermionic) : - [a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) • - ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * + [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) • + ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF * ofCrAnListF (φs.drop (n + 1)) := by let p (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ statisticSubmodule fermionic) : Prop := - [a, ofCrAnListF φs]ₛca = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) • - ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛca * + [a, ofCrAnListF φs]ₛF = ∑ (n : Fin φs.length), 𝓢(fermionic, 𝓕 |>ₛ φs.take n) • + ofCrAnListF (φs.take n) * [a, ofCrAnOpF (φs.get n)]ₛF * ofCrAnListF (φs.drop (n + 1)) change p a ha apply Submodule.span_induction (p := p) @@ -858,9 +858,9 @@ lemma superCommuteF_fermionic_ofCrAnListF_eq_sum (a : 𝓕.FieldOpFreeAlgebra) · exact ha lemma statistic_neq_of_superCommuteF_fermionic {φs φs' : List 𝓕.CrAnFieldOp} - (h : [ofCrAnListF φs, ofCrAnListF φs']ₛca ∈ statisticSubmodule fermionic) : - (𝓕 |>ₛ φs) ≠ (𝓕 |>ₛ φs') ∨ [ofCrAnListF φs, ofCrAnListF φs']ₛca = 0 := by - by_cases h0 : [ofCrAnListF φs, ofCrAnListF φs']ₛca = 0 + (h : [ofCrAnListF φs, ofCrAnListF φs']ₛF ∈ statisticSubmodule fermionic) : + (𝓕 |>ₛ φs) ≠ (𝓕 |>ₛ φs') ∨ [ofCrAnListF φs, ofCrAnListF φs']ₛF = 0 := by + by_cases h0 : [ofCrAnListF φs, ofCrAnListF φs']ₛF = 0 · simp [h0] simp only [ne_eq, h0, or_false] by_contra hn diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean index a6daed3..f0b127a 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean @@ -161,7 +161,7 @@ lemma timeOrderF_ofFieldOpF_ofFieldOpF_not_ordered_eq_timeOrderF {φ ψ : 𝓕.F lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) : - 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = 0 := by + 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF) = 0 := by rw [superCommuteF_ofCrAnOpF_ofCrAnOpF] simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, @@ -179,28 +179,28 @@ lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) : - 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = 0 := by + 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF) = 0 := by rw [timeOrderF_timeOrderF_right, timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h] simp lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) : - 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * a) = 0 := by + 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * a) = 0 := by rw [timeOrderF_timeOrderF_left, timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h] simp lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_mid {φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a b : 𝓕.FieldOpFreeAlgebra) : - 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = 0 := by + 𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF * b) = 0 := by rw [timeOrderF_timeOrderF_mid, timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h] simp lemma timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel {φ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] simp only [map_add, LinearMap.add_apply] 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 {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ1 φ2) (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 [summerCommute_jacobi_ofCrAnListF] 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' {φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ2 φ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 [summerCommute_jacobi_ofCrAnListF] 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 φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧ 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 by_cases h23 : ¬ crAnTimeOrderRel φ2 φ3 · 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 {φ ψ : 𝓕.CrAnFieldOp} (h1 : crAnTimeOrderRel φ ψ) (h2 : crAnTimeOrderRel ψ φ) : - 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca := by + 𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛF) = [ofCrAnOpF φ, ofCrAnOpF ψ]ₛF := by rw [superCommuteF_ofCrAnOpF_ofCrAnOpF] simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul] rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, diff --git a/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean b/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean index ab84fc1..16fc24f 100644 --- a/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean +++ b/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean @@ -66,29 +66,29 @@ def fieldOpToCreateAnnihilateTypeCongr : {i j : 𝓕.FieldOp} → i = j → For a field specification `𝓕`, the (sigma) type `𝓕.CrAnFieldOp` corresponds to the type of creation and annihilation parts of field operators. 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 `φ`. 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 `φ`. -- 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 `φ`. -- 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 `φ`. 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 the following elements to `𝓕.CrAnFieldOp` -- an element corresponding to incoming asymptotic operators for each spin `s`: `a(p, s)`. -- an element corresponding to the creation parts of position operators for each each Lorentz - index `a`: +- For each spin `s`, an element corresponding to an incoming asymptotic operator: `a(p, s)`. +- For each each Lorentz + 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))`. -- an element corresponding to annihilation parts of position operator, - for each each Lorentz index `a`: +- For each each Lorentz + 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))`. -- 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 diff --git a/HepLean/PerturbationTheory/WickContraction/InsertAndContract.lean b/HepLean/PerturbationTheory/WickContraction/InsertAndContract.lean index 852f1d6..9c80005 100644 --- a/HepLean/PerturbationTheory/WickContraction/InsertAndContract.lean +++ b/HepLean/PerturbationTheory/WickContraction/InsertAndContract.lean @@ -25,24 +25,25 @@ open HepLean.Fin -/ /-- 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 - `φ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Λ` accordingly. - If `j` is not `none`, but rather `some j`, to this contraction is added the contraction - of `φ` (at position `i`) with the new position of `j` after `φ` is added. + 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 `k` after `φ` is added. - In other words, `φsΛ.insertAndContract φ i j` is formed by adding `φ` to `φs` at position `i`, - and contracting `φ` with the field originally at position `j` if `j` is not `none`. + In other words, `φsΛ.insertAndContract φ i k` is formed by adding `φ` to `φs` at position `i`, + 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 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) - (i : Fin φs.length.succ) (j : Option φsΛ.uncontracted) : + (i : Fin φs.length.succ) (k : Option φsΛ.uncontracted) : WickContraction (φs.insertIdx i φ).length := - congr (by simp) (φsΛ.insertAndContractNat i j) + congr (by simp) (φsΛ.insertAndContractNat i k) @[inherit_doc insertAndContract] scoped[WickContraction] notation φs "↩Λ" φ:max i:max j => insertAndContract φ φs i j diff --git a/HepLean/PerturbationTheory/WickContraction/Sign/Basic.lean b/HepLean/PerturbationTheory/WickContraction/Sign/Basic.lean index adc4c08..ddd2f8c 100644 --- a/HepLean/PerturbationTheory/WickContraction/Sign/Basic.lean +++ b/HepLean/PerturbationTheory/WickContraction/Sign/Basic.lean @@ -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 contracted pairs within `φsΛ` next to one another, starting recursively 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) : ℂ := ∏ (a : φsΛ.1), 𝓢(𝓕 |>ₛ φs[φsΛ.sndFieldOfContract a], 𝓕 |>ₛ ⟨φs.get, φsΛ.signFinset (φsΛ.fstFieldOfContract a) (φsΛ.sndFieldOfContract a)⟩)