2025-01-27 06:20:25 +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-02-03 12:12:36 +00:00
|
|
|
|
import HepLean.PerturbationTheory.FieldOpFreeAlgebra.SuperCommute
|
2025-01-27 06:20:25 +00:00
|
|
|
|
import Mathlib.Algebra.RingQuot
|
2025-01-28 11:53:24 +00:00
|
|
|
|
import Mathlib.RingTheory.TwoSidedIdeal.Operations
|
2025-01-27 06:20:25 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
# Field operator algebra
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
namespace FieldSpecification
|
2025-02-03 11:05:43 +00:00
|
|
|
|
open FieldOpFreeAlgebra
|
2025-01-27 06:20:25 +00:00
|
|
|
|
open HepLean.List
|
|
|
|
|
open FieldStatistic
|
|
|
|
|
|
|
|
|
|
variable (𝓕 : FieldSpecification)
|
|
|
|
|
|
2025-02-10 10:59:09 +00:00
|
|
|
|
/-- The set contains the super-commutators equal to zero in the operator algebra.
|
|
|
|
|
This contains e.g. the super-commutator of two creation operators. -/
|
2025-02-03 11:05:43 +00:00
|
|
|
|
def fieldOpIdealSet : Set (FieldOpFreeAlgebra 𝓕) :=
|
2025-01-27 06:20:25 +00:00
|
|
|
|
{ x |
|
2025-02-03 11:28:14 +00:00
|
|
|
|
(∃ (φ1 φ2 φ3 : 𝓕.CrAnFieldOp),
|
2025-02-03 11:21:11 +00:00
|
|
|
|
x = [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca)
|
2025-02-03 11:28:14 +00:00
|
|
|
|
∨ (∃ (φc φc' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φc = .create) (_ : 𝓕 |>ᶜ φc' = .create),
|
2025-02-03 11:21:11 +00:00
|
|
|
|
x = [ofCrAnOpF φc, ofCrAnOpF φc']ₛca)
|
2025-02-03 11:28:14 +00:00
|
|
|
|
∨ (∃ (φa φa' : 𝓕.CrAnFieldOp) (_ : 𝓕 |>ᶜ φa = .annihilate) (_ : 𝓕 |>ᶜ φa' = .annihilate),
|
2025-02-03 11:21:11 +00:00
|
|
|
|
x = [ofCrAnOpF φa, ofCrAnOpF φa']ₛca)
|
2025-02-03 11:28:14 +00:00
|
|
|
|
∨ (∃ (φ φ' : 𝓕.CrAnFieldOp) (_ : ¬ (𝓕 |>ₛ φ) = (𝓕 |>ₛ φ')),
|
2025-02-03 11:21:11 +00:00
|
|
|
|
x = [ofCrAnOpF φ, ofCrAnOpF φ']ₛca)}
|
2025-01-27 06:20:25 +00:00
|
|
|
|
|
2025-02-04 09:58:30 +00:00
|
|
|
|
/-- For a field specification `𝓕`, the algebra `𝓕.FieldOpAlgebra` is defined as the quotient
|
2025-02-10 10:21:57 +00:00
|
|
|
|
of the free algebra `𝓕.FieldOpFreeAlgebra` by the ideal generated by
|
|
|
|
|
- `[ofCrAnOpF φc, ofCrAnOpF φc']ₛca` 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.
|
|
|
|
|
This corresponds to the condition that two annihilation operators always super-commute.
|
|
|
|
|
- `[ofCrAnOpF φ, ofCrAnOpF φ']ₛca` for `φ` and `φ'` operators with different statistics.
|
|
|
|
|
This corresponds to the condition that two operators with different statistics always
|
2025-02-10 10:51:44 +00:00
|
|
|
|
super-commute. In other words, fermions and bosons always super-commute.
|
2025-02-10 10:21:57 +00:00
|
|
|
|
- `[ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca`. This corresponds to the condition,
|
2025-02-10 10:59:09 +00:00
|
|
|
|
when combined with the conditions above, that the super-commutator is in the center of the
|
2025-02-10 10:21:57 +00:00
|
|
|
|
of the algebra.
|
|
|
|
|
-/
|
2025-01-27 06:20:25 +00:00
|
|
|
|
abbrev FieldOpAlgebra : Type := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.Quotient
|
|
|
|
|
|
|
|
|
|
namespace FieldOpAlgebra
|
|
|
|
|
variable {𝓕 : FieldSpecification}
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
/-- The instance of a setoid on `FieldOpFreeAlgebra` from the ideal `TwoSidedIdeal`. -/
|
|
|
|
|
instance : Setoid (FieldOpFreeAlgebra 𝓕) := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.toSetoid
|
2025-01-27 06:20:25 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma equiv_iff_sub_mem_ideal (x y : FieldOpFreeAlgebra 𝓕) :
|
2025-01-27 06:20:25 +00:00
|
|
|
|
x ≈ y ↔ x - y ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by
|
|
|
|
|
rw [← TwoSidedIdeal.rel_iff]
|
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-06 12:38:05 +00:00
|
|
|
|
lemma equiv_iff_exists_add (x y : FieldOpFreeAlgebra 𝓕) :
|
|
|
|
|
x ≈ y ↔ ∃ a, x = y + a ∧ a ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by
|
|
|
|
|
apply Iff.intro
|
|
|
|
|
· intro h
|
|
|
|
|
rw [equiv_iff_sub_mem_ideal] at h
|
|
|
|
|
use x - y
|
|
|
|
|
simp [h]
|
|
|
|
|
· intro h
|
|
|
|
|
obtain ⟨a, rfl, ha⟩ := h
|
|
|
|
|
rw [equiv_iff_sub_mem_ideal]
|
|
|
|
|
simp [ha]
|
|
|
|
|
|
2025-02-06 13:06:51 +00:00
|
|
|
|
/-- For a field specification `𝓕`, the projection
|
|
|
|
|
|
|
|
|
|
`𝓕.FieldOpFreeAlgebra →ₐ[ℂ] FieldOpAlgebra 𝓕`
|
|
|
|
|
|
|
|
|
|
taking each element of `𝓕.FieldOpFreeAlgebra` to its equivalence class in `FieldOpAlgebra 𝓕`. -/
|
2025-02-03 11:05:43 +00:00
|
|
|
|
def ι : FieldOpFreeAlgebra 𝓕 →ₐ[ℂ] FieldOpAlgebra 𝓕 where
|
2025-01-27 06:20:25 +00:00
|
|
|
|
toFun := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.mk'
|
|
|
|
|
map_one' := by rfl
|
|
|
|
|
map_mul' x y := by rfl
|
|
|
|
|
map_zero' := by rfl
|
|
|
|
|
map_add' x y := by rfl
|
|
|
|
|
commutes' x := by rfl
|
|
|
|
|
|
|
|
|
|
lemma ι_surjective : Function.Surjective (@ι 𝓕) := by
|
|
|
|
|
intro x
|
|
|
|
|
obtain ⟨x⟩ := x
|
|
|
|
|
use x
|
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma ι_apply (x : FieldOpFreeAlgebra 𝓕) : ι x = Quotient.mk _ x := rfl
|
2025-01-27 06:20:25 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma ι_of_mem_fieldOpIdealSet (x : FieldOpFreeAlgebra 𝓕) (hx : x ∈ 𝓕.fieldOpIdealSet) :
|
2025-01-27 06:20:25 +00:00
|
|
|
|
ι x = 0 := by
|
|
|
|
|
rw [ι_apply]
|
|
|
|
|
change ⟦x⟧ = ⟦0⟧
|
|
|
|
|
simp only [ringConGen, Quotient.eq]
|
|
|
|
|
refine RingConGen.Rel.of x 0 ?_
|
|
|
|
|
simpa using hx
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_of_create_create (φc φc' : 𝓕.CrAnFieldOp) (hφc : 𝓕 |>ᶜ φc = .create)
|
2025-02-03 11:21:11 +00:00
|
|
|
|
(hφc' : 𝓕 |>ᶜ φc' = .create) : ι [ofCrAnOpF φc, ofCrAnOpF φc']ₛca = 0 := by
|
2025-01-27 06:20:25 +00:00
|
|
|
|
apply ι_of_mem_fieldOpIdealSet
|
|
|
|
|
simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq]
|
|
|
|
|
simp only [exists_prop]
|
|
|
|
|
right
|
|
|
|
|
left
|
|
|
|
|
use φc, φc', hφc, hφc'
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_of_annihilate_annihilate (φa φa' : 𝓕.CrAnFieldOp)
|
2025-01-27 06:20:25 +00:00
|
|
|
|
(hφa : 𝓕 |>ᶜ φa = .annihilate) (hφa' : 𝓕 |>ᶜ φa' = .annihilate) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ι [ofCrAnOpF φa, ofCrAnOpF φa']ₛca = 0 := by
|
2025-01-27 06:20:25 +00:00
|
|
|
|
apply ι_of_mem_fieldOpIdealSet
|
|
|
|
|
simp only [fieldOpIdealSet, exists_and_left, Set.mem_setOf_eq]
|
|
|
|
|
simp only [exists_prop]
|
|
|
|
|
right
|
|
|
|
|
right
|
|
|
|
|
left
|
|
|
|
|
use φa, φa', hφa, hφa'
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_of_diff_statistic {φ ψ : 𝓕.CrAnFieldOp}
|
2025-02-03 11:21:11 +00:00
|
|
|
|
(h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) : ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by
|
2025-01-27 06:20:25 +00:00
|
|
|
|
apply ι_of_mem_fieldOpIdealSet
|
|
|
|
|
simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq]
|
|
|
|
|
right
|
|
|
|
|
right
|
|
|
|
|
right
|
|
|
|
|
use φ, ψ
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_zero_of_fermionic (φ ψ : 𝓕.CrAnFieldOp)
|
2025-02-03 11:21:11 +00:00
|
|
|
|
(h : [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ statisticSubmodule fermionic) :
|
|
|
|
|
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by
|
|
|
|
|
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton] at h ⊢
|
2025-01-30 05:52:50 +00:00
|
|
|
|
rcases statistic_neq_of_superCommuteF_fermionic h with h | h
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· simp only [ofCrAnListF_singleton]
|
2025-01-30 05:52:50 +00:00
|
|
|
|
apply ι_superCommuteF_of_diff_statistic
|
2025-01-28 11:53:24 +00:00
|
|
|
|
simpa using h
|
|
|
|
|
· simp [h]
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero (φ ψ : 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
[ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ statisticSubmodule bosonic ∨
|
|
|
|
|
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca = 0 := by
|
|
|
|
|
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ] [ψ] with h | h
|
|
|
|
|
· simp_all [ofCrAnListF_singleton]
|
|
|
|
|
· simp_all only [ofCrAnListF_singleton]
|
2025-01-28 11:53:24 +00:00
|
|
|
|
right
|
2025-01-30 05:52:50 +00:00
|
|
|
|
exact ι_superCommuteF_zero_of_fermionic _ _ h
|
2025-01-28 11:53:24 +00:00
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Super-commutes are in the center
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_ofCrAnOpF_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ι [ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca = 0 := by
|
2025-01-28 11:53:24 +00:00
|
|
|
|
apply ι_of_mem_fieldOpIdealSet
|
|
|
|
|
simp only [fieldOpIdealSet, exists_prop, exists_and_left, Set.mem_setOf_eq]
|
|
|
|
|
left
|
|
|
|
|
use φ1, φ2, φ3
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 φ3 : 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, ofCrAnOpF φ3]ₛca = 0 := by
|
|
|
|
|
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton, ← ofCrAnListF_singleton]
|
|
|
|
|
rcases superCommuteF_ofCrAnListF_ofCrAnListF_bosonic_or_fermionic [φ1] [φ2] with h | h
|
2025-01-30 05:52:50 +00:00
|
|
|
|
· rw [bonsonic_superCommuteF_symm h]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
simp [ofCrAnListF_singleton]
|
|
|
|
|
· rcases ofCrAnListF_bosonic_or_fermionic [φ3] with h' | h'
|
2025-01-30 05:52:50 +00:00
|
|
|
|
· rw [superCommuteF_bonsonic_symm h']
|
2025-02-03 11:21:11 +00:00
|
|
|
|
simp [ofCrAnListF_singleton]
|
2025-01-30 05:52:50 +00:00
|
|
|
|
· rw [superCommuteF_fermionic_fermionic_symm h h']
|
2025-02-03 11:21:11 +00:00
|
|
|
|
simp [ofCrAnListF_singleton]
|
2025-01-28 11:53:24 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF (φ1 φ2 : 𝓕.CrAnFieldOp)
|
|
|
|
|
(φs : List 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, ofCrAnListF φs]ₛca = 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]
|
|
|
|
|
simp [ofCrAnListF_singleton, ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF]
|
|
|
|
|
· rw [superCommuteF_fermionic_ofCrAnListF_eq_sum _ _ h]
|
|
|
|
|
simp [ofCrAnListF_singleton, ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnOpF]
|
2025-01-28 11:53:24 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_fieldOpFreeAlgebra (φ1 φ2 : 𝓕.CrAnFieldOp)
|
2025-02-03 11:21:11 +00:00
|
|
|
|
(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
|
|
|
|
|
apply (ofCrAnListFBasis.ext fun l ↦ ?_)
|
|
|
|
|
simp [ι_superCommuteF_superCommuteF_ofCrAnOpF_ofCrAnOpF_ofCrAnListF]
|
2025-01-28 11:53:24 +00:00
|
|
|
|
rw [h1]
|
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF (φ1 φ2 : 𝓕.CrAnFieldOp)
|
2025-02-03 11:21:11 +00:00
|
|
|
|
(a : 𝓕.FieldOpFreeAlgebra) : ι a * ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca -
|
|
|
|
|
ι [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca * ι a = 0 := by
|
|
|
|
|
rcases ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_zero φ1 φ2 with h | h
|
2025-01-28 11:53:24 +00:00
|
|
|
|
swap
|
|
|
|
|
· simp [h]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
trans - ι [[ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca, a]ₛca
|
2025-01-30 05:52:50 +00:00
|
|
|
|
· rw [bosonic_superCommuteF h]
|
2025-01-28 11:53:24 +00:00
|
|
|
|
simp
|
|
|
|
|
· simp
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ι_superCommuteF_ofCrAnOpF_ofCrAnOpF_mem_center (φ ψ : 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ι [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca ∈ Subalgebra.center ℂ 𝓕.FieldOpAlgebra := by
|
2025-01-28 11:53:24 +00:00
|
|
|
|
rw [Subalgebra.mem_center_iff]
|
|
|
|
|
intro a
|
|
|
|
|
obtain ⟨a, rfl⟩ := ι_surjective a
|
2025-02-03 11:21:11 +00:00
|
|
|
|
have h0 := ι_commute_fieldOpFreeAlgebra_superCommuteF_ofCrAnOpF_ofCrAnOpF φ ψ a
|
|
|
|
|
trans ι ((superCommuteF (ofCrAnOpF φ)) (ofCrAnOpF ψ)) * ι a + 0
|
2025-01-28 11:53:24 +00:00
|
|
|
|
swap
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [add_zero]
|
2025-01-28 11:53:24 +00:00
|
|
|
|
rw [← h0]
|
|
|
|
|
abel
|
|
|
|
|
|
2025-01-29 15:08:43 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
2025-02-10 10:51:44 +00:00
|
|
|
|
## The kernel of ι
|
2025-01-29 15:08:43 +00:00
|
|
|
|
-/
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma ι_eq_zero_iff_mem_ideal (x : FieldOpFreeAlgebra 𝓕) :
|
2025-01-29 15:08:43 +00:00
|
|
|
|
ι x = 0 ↔ x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by
|
|
|
|
|
rw [ι_apply]
|
|
|
|
|
change ⟦x⟧ = ⟦0⟧ ↔ _
|
|
|
|
|
simp only [ringConGen, Quotient.eq]
|
|
|
|
|
rw [TwoSidedIdeal.mem_iff]
|
|
|
|
|
simp only
|
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-05 07:22:14 +00:00
|
|
|
|
lemma bosonicProjF_mem_fieldOpIdealSet_or_zero (x : FieldOpFreeAlgebra 𝓕)
|
2025-02-03 11:42:56 +00:00
|
|
|
|
(hx : x ∈ 𝓕.fieldOpIdealSet) :
|
2025-02-05 07:22:14 +00:00
|
|
|
|
x.bosonicProjF.1 ∈ 𝓕.fieldOpIdealSet ∨ x.bosonicProjF = 0 := by
|
2025-01-29 15:08:43 +00:00
|
|
|
|
have hx' := hx
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [fieldOpIdealSet, exists_prop, Set.mem_setOf_eq] at hx
|
2025-01-29 15:08:43 +00:00
|
|
|
|
rcases hx with ⟨φ1, φ2, φ3, rfl⟩ | ⟨φc, φc', hφc, hφc', rfl⟩ | ⟨φa, φa', hφa, hφa', rfl⟩ |
|
|
|
|
|
⟨φ, φ', hdiff, rfl⟩
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic φ1 φ2 φ3 with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_fermionic _ h]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φc φc' with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_fermionic _ h]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φa φa' with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_fermionic _ h]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ φ' with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_of_mem_fermionic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
|
2025-02-05 07:22:14 +00:00
|
|
|
|
lemma fermionicProjF_mem_fieldOpIdealSet_or_zero (x : FieldOpFreeAlgebra 𝓕)
|
2025-02-03 11:42:56 +00:00
|
|
|
|
(hx : x ∈ 𝓕.fieldOpIdealSet) :
|
2025-02-05 07:22:14 +00:00
|
|
|
|
x.fermionicProjF.1 ∈ 𝓕.fieldOpIdealSet ∨ x.fermionicProjF = 0 := by
|
2025-01-29 15:08:43 +00:00
|
|
|
|
have hx' := hx
|
2025-01-30 05:35:42 +00:00
|
|
|
|
simp only [fieldOpIdealSet, exists_prop, Set.mem_setOf_eq] at hx
|
2025-01-29 15:08:43 +00:00
|
|
|
|
rcases hx with ⟨φ1, φ2, φ3, rfl⟩ | ⟨φc, φc', hφc, hφc', rfl⟩ | ⟨φa, φa', hφa, hφa', rfl⟩ |
|
|
|
|
|
⟨φ, φ', hdiff, rfl⟩
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_superCommuteF_ofCrAnOpF_bosonic_or_fermionic φ1 φ2 φ3 with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_fermionic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φc φc' with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_fermionic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φa φa' with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_fermionic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
2025-02-03 11:21:11 +00:00
|
|
|
|
· rcases superCommuteF_ofCrAnOpF_ofCrAnOpF_bosonic_or_fermionic φ φ' with h | h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· right
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_bosonic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· left
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [fermionicProjF_of_mem_fermionic _ h]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simpa using hx'
|
|
|
|
|
|
2025-02-05 07:22:14 +00:00
|
|
|
|
lemma bosonicProjF_mem_ideal (x : FieldOpFreeAlgebra 𝓕)
|
2025-02-03 11:42:56 +00:00
|
|
|
|
(hx : x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) :
|
2025-02-05 07:22:14 +00:00
|
|
|
|
x.bosonicProjF.1 ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by
|
2025-01-29 15:08:43 +00:00
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure] at hx
|
2025-02-03 11:42:56 +00:00
|
|
|
|
let p {k : Set 𝓕.FieldOpFreeAlgebra} (a : FieldOpFreeAlgebra 𝓕)
|
|
|
|
|
(h : a ∈ AddSubgroup.closure k) : Prop :=
|
2025-02-05 07:22:14 +00:00
|
|
|
|
a.bosonicProjF.1 ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet
|
2025-01-29 15:08:43 +00:00
|
|
|
|
change p x hx
|
|
|
|
|
apply AddSubgroup.closure_induction
|
|
|
|
|
· intro x hx
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [p]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
obtain ⟨a, ha, b, hb, rfl⟩ := Set.mem_mul.mp hx
|
|
|
|
|
obtain ⟨d, hd, y, hy, rfl⟩ := Set.mem_mul.mp ha
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonicProjF_mul, bosonicProjF_mul, fermionicProjF_mul]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [add_mul]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rcases fermionicProjF_mem_fieldOpIdealSet_or_zero y hy with hfy | hfy
|
|
|
|
|
<;> rcases bosonicProjF_mem_fieldOpIdealSet_or_zero y hy with hby | hby
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· apply TwoSidedIdeal.add_mem
|
|
|
|
|
apply TwoSidedIdeal.add_mem
|
|
|
|
|
· /- boson, boson, boson mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(bosonicProjF d) * ↑(bosonicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use bosonicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (bosonicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(bosonicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
|
|
|
|
· /- fermion, fermion, boson mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(fermionicProjF d) * ↑(fermionicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use fermionicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (fermionicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby, hfy]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(bosonicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
|
|
|
|
apply TwoSidedIdeal.add_mem
|
|
|
|
|
· /- boson, fermion, fermion mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(bosonicProjF d) * ↑(fermionicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use bosonicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (fermionicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby, hfy]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(fermionicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
|
|
|
|
· /- fermion, boson, fermion mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(fermionicProjF d) * ↑(bosonicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use fermionicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (bosonicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby, hfy]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(fermionicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
2025-01-29 16:41:10 +00:00
|
|
|
|
· simp only [hby, ZeroMemClass.coe_zero, mul_zero, zero_mul, zero_add, add_zero]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply TwoSidedIdeal.add_mem
|
|
|
|
|
· /- fermion, fermion, boson mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(fermionicProjF d) * ↑(fermionicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use fermionicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (fermionicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby, hfy]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(bosonicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
|
|
|
|
· /- boson, fermion, fermion mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(bosonicProjF d) * ↑(fermionicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use bosonicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (fermionicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby, hfy]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(fermionicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
2025-01-29 16:41:10 +00:00
|
|
|
|
· simp only [hfy, ZeroMemClass.coe_zero, mul_zero, zero_mul, add_zero, zero_add]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply TwoSidedIdeal.add_mem
|
|
|
|
|
· /- boson, boson, boson mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(bosonicProjF d) * ↑(bosonicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use bosonicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (bosonicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(bosonicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
|
|
|
|
· /- fermion, boson, fermion mem-/
|
|
|
|
|
rw [TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure]
|
|
|
|
|
refine Set.mem_of_mem_of_subset ?_ AddSubgroup.subset_closure
|
|
|
|
|
apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use ↑(fermionicProjF d) * ↑(bosonicProjF y)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply And.intro
|
|
|
|
|
· apply Set.mem_mul.mpr
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use fermionicProjF d
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [Set.mem_univ, mul_eq_mul_left_iff, ZeroMemClass.coe_eq_zero, true_and]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
use (bosonicProjF y).1
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp [hby, hfy]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· use ↑(fermionicProjF b)
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp
|
|
|
|
|
· simp [hfy, hby]
|
|
|
|
|
· simp [p]
|
|
|
|
|
· intro x y hx hy hpx hpy
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp_all only [map_add, Submodule.coe_add, p]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply TwoSidedIdeal.add_mem
|
2025-01-30 05:52:50 +00:00
|
|
|
|
· exact hpx
|
|
|
|
|
· exact hpy
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· intro x hx
|
|
|
|
|
simp [p]
|
|
|
|
|
|
2025-02-05 07:22:14 +00:00
|
|
|
|
lemma fermionicProjF_mem_ideal (x : FieldOpFreeAlgebra 𝓕)
|
2025-02-03 11:42:56 +00:00
|
|
|
|
(hx : x ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet) :
|
2025-02-05 07:22:14 +00:00
|
|
|
|
x.fermionicProjF.1 ∈ TwoSidedIdeal.span 𝓕.fieldOpIdealSet := by
|
|
|
|
|
have hb := bosonicProjF_mem_ideal x hx
|
2025-01-29 15:08:43 +00:00
|
|
|
|
rw [← ι_eq_zero_iff_mem_ideal] at hx hb ⊢
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [← bosonicProjF_add_fermionicProjF x] at hx
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [map_add] at hx
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp_all
|
|
|
|
|
|
2025-02-05 07:22:14 +00:00
|
|
|
|
lemma ι_eq_zero_iff_ι_bosonicProjF_fermonicProj_zero (x : FieldOpFreeAlgebra 𝓕) :
|
|
|
|
|
ι x = 0 ↔ ι x.bosonicProjF.1 = 0 ∧ ι x.fermionicProjF.1 = 0 := by
|
2025-01-29 15:08:43 +00:00
|
|
|
|
apply Iff.intro
|
|
|
|
|
· intro h
|
2025-01-30 05:52:50 +00:00
|
|
|
|
rw [ι_eq_zero_iff_mem_ideal] at h ⊢
|
2025-01-29 15:08:43 +00:00
|
|
|
|
rw [ι_eq_zero_iff_mem_ideal]
|
|
|
|
|
apply And.intro
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· exact bosonicProjF_mem_ideal x h
|
|
|
|
|
· exact fermionicProjF_mem_ideal x h
|
2025-01-29 15:08:43 +00:00
|
|
|
|
· intro h
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [← bosonicProjF_add_fermionicProjF x]
|
2025-01-29 15:08:43 +00:00
|
|
|
|
simp_all
|
|
|
|
|
|
2025-01-30 06:21:11 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Constructors
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-02-10 10:21:57 +00:00
|
|
|
|
/-- For a field specification `𝓕` and an element `φ` of `𝓕.FieldOp`,
|
|
|
|
|
`ofFieldOp φ` is defined as the element of
|
2025-02-06 13:06:51 +00:00
|
|
|
|
`𝓕.FieldOpAlgebra` given by `ι (ofFieldOpF φ)`. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def ofFieldOp (φ : 𝓕.FieldOp) : 𝓕.FieldOpAlgebra := ι (ofFieldOpF φ)
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOp_eq_ι_ofFieldOpF (φ : 𝓕.FieldOp) : ofFieldOp φ = ι (ofFieldOpF φ) := rfl
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-10 10:21:57 +00:00
|
|
|
|
/-- For a field specification `𝓕` and a list `φs` of `𝓕.FieldOp`,
|
|
|
|
|
`ofFieldOpList φs` is defined as the element of
|
2025-02-06 13:06:51 +00:00
|
|
|
|
`𝓕.FieldOpAlgebra` given by `ι (ofFieldOpListF φ)`. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def ofFieldOpList (φs : List 𝓕.FieldOp) : 𝓕.FieldOpAlgebra := ι (ofFieldOpListF φs)
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpList_eq_ι_ofFieldOpListF (φs : List 𝓕.FieldOp) :
|
2025-02-03 11:10:20 +00:00
|
|
|
|
ofFieldOpList φs = ι (ofFieldOpListF φs) := rfl
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpList_append (φs ψs : List 𝓕.FieldOp) :
|
2025-01-30 11:00:25 +00:00
|
|
|
|
ofFieldOpList (φs ++ ψs) = ofFieldOpList φs * ofFieldOpList ψs := by
|
|
|
|
|
simp only [ofFieldOpList]
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [ofFieldOpListF_append]
|
2025-01-30 11:00:25 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpList_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
|
2025-01-30 12:45:00 +00:00
|
|
|
|
ofFieldOpList (φ :: φs) = ofFieldOp φ * ofFieldOpList φs := by
|
|
|
|
|
simp only [ofFieldOpList]
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [ofFieldOpListF_cons]
|
2025-01-30 12:45:00 +00:00
|
|
|
|
simp only [map_mul]
|
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpList_singleton (φ : 𝓕.FieldOp) :
|
2025-01-30 11:00:25 +00:00
|
|
|
|
ofFieldOpList [φ] = ofFieldOp φ := by
|
2025-02-03 11:10:20 +00:00
|
|
|
|
simp only [ofFieldOpList, ofFieldOp, ofFieldOpListF_singleton]
|
2025-01-30 11:00:25 +00:00
|
|
|
|
|
2025-02-10 10:21:57 +00:00
|
|
|
|
/-- For a field specification `𝓕` and an element `φ` of `𝓕.CrAnFieldOp`,
|
|
|
|
|
`ofCrAnOp φ` is defined as the element of
|
2025-02-06 13:06:51 +00:00
|
|
|
|
`𝓕.FieldOpAlgebra` given by `ι (ofCrAnOpF φ)`. -/
|
2025-02-06 10:09:30 +00:00
|
|
|
|
def ofCrAnOp (φ : 𝓕.CrAnFieldOp) : 𝓕.FieldOpAlgebra := ι (ofCrAnOpF φ)
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-06 10:09:30 +00:00
|
|
|
|
lemma ofCrAnOp_eq_ι_ofCrAnOpF (φ : 𝓕.CrAnFieldOp) :
|
|
|
|
|
ofCrAnOp φ = ι (ofCrAnOpF φ) := rfl
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOp_eq_sum (φ : 𝓕.FieldOp) :
|
2025-02-06 10:09:30 +00:00
|
|
|
|
ofFieldOp φ = (∑ i : 𝓕.fieldOpToCrAnType φ, ofCrAnOp ⟨φ, i⟩) := by
|
2025-02-03 11:13:23 +00:00
|
|
|
|
rw [ofFieldOp, ofFieldOpF]
|
2025-01-30 11:00:25 +00:00
|
|
|
|
simp only [map_sum]
|
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-10 10:21:57 +00:00
|
|
|
|
/-- For a field specification `𝓕` and a list `φs` of `𝓕.CrAnFieldOp`,
|
|
|
|
|
`ofCrAnList φs` is defined as the element of
|
2025-02-06 13:06:51 +00:00
|
|
|
|
`𝓕.FieldOpAlgebra` given by `ι (ofCrAnListF φ)`. -/
|
2025-02-06 10:10:55 +00:00
|
|
|
|
def ofCrAnList (φs : List 𝓕.CrAnFieldOp) : 𝓕.FieldOpAlgebra := ι (ofCrAnListF φs)
|
2025-01-30 06:21:11 +00:00
|
|
|
|
|
2025-02-06 10:10:55 +00:00
|
|
|
|
lemma ofCrAnList_eq_ι_ofCrAnListF (φs : List 𝓕.CrAnFieldOp) :
|
|
|
|
|
ofCrAnList φs = ι (ofCrAnListF φs) := rfl
|
2025-01-30 06:24:17 +00:00
|
|
|
|
|
2025-02-06 10:10:55 +00:00
|
|
|
|
lemma ofCrAnList_append (φs ψs : List 𝓕.CrAnFieldOp) :
|
|
|
|
|
ofCrAnList (φs ++ ψs) = ofCrAnList φs * ofCrAnList ψs := by
|
|
|
|
|
simp only [ofCrAnList]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [ofCrAnListF_append]
|
2025-01-30 07:16:19 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-06 10:10:55 +00:00
|
|
|
|
lemma ofCrAnList_singleton (φ : 𝓕.CrAnFieldOp) :
|
|
|
|
|
ofCrAnList [φ] = ofCrAnOp φ := by
|
|
|
|
|
simp only [ofCrAnList, ofCrAnOp, ofCrAnListF_singleton]
|
2025-01-30 07:16:19 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpList_eq_sum (φs : List 𝓕.FieldOp) :
|
2025-02-06 10:10:55 +00:00
|
|
|
|
ofFieldOpList φs = ∑ s : CrAnSection φs, ofCrAnList s.1 := by
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [ofFieldOpList, ofFieldOpListF_sum]
|
2025-01-30 11:00:25 +00:00
|
|
|
|
simp only [map_sum]
|
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-06 13:06:51 +00:00
|
|
|
|
remark notation_drop := "In doc-strings we will often drop explicit applications of `ofCrAnOp`,
|
|
|
|
|
`ofCrAnList`, `ofFieldOp`, and `ofFieldOpList`"
|
|
|
|
|
|
|
|
|
|
/-- For a field specification `𝓕`, and an element `φ` of `𝓕.FieldOp`, the
|
|
|
|
|
annihilation part of `𝓕.FieldOp` as an element of `𝓕.FieldOpAlgebra`.
|
2025-02-10 10:21:57 +00:00
|
|
|
|
Thus for `φ`
|
|
|
|
|
- an incoming asymptotic state this is `0`.
|
|
|
|
|
- a position based state this is `ofCrAnOp ⟨φ, .create⟩`.
|
|
|
|
|
- an outgoing asymptotic state this is `ofCrAnOp ⟨φ, ()⟩`. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def anPart (φ : 𝓕.FieldOp) : 𝓕.FieldOpAlgebra := ι (anPartF φ)
|
2025-01-30 06:24:17 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma anPart_eq_ι_anPartF (φ : 𝓕.FieldOp) : anPart φ = ι (anPartF φ) := rfl
|
2025-01-30 06:24:17 +00:00
|
|
|
|
|
2025-01-30 07:16:19 +00:00
|
|
|
|
@[simp]
|
2025-02-06 10:06:05 +00:00
|
|
|
|
lemma anPart_negAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × (Fin 3 → ℝ)) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
anPart (FieldOp.inAsymp φ) = 0 := by
|
2025-01-30 07:16:19 +00:00
|
|
|
|
simp [anPart, anPartF]
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-06 10:06:05 +00:00
|
|
|
|
lemma anPart_position (φ : (Σ f, 𝓕.PositionLabel f) × SpaceTime) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
anPart (FieldOp.position φ) =
|
2025-02-06 10:09:30 +00:00
|
|
|
|
ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩ := by
|
|
|
|
|
simp [anPart, ofCrAnOp]
|
2025-01-30 07:16:19 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-06 10:06:05 +00:00
|
|
|
|
lemma anPart_posAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × (Fin 3 → ℝ)) :
|
2025-02-06 10:09:30 +00:00
|
|
|
|
anPart (FieldOp.outAsymp φ) = ofCrAnOp ⟨FieldOp.outAsymp φ, ()⟩ := by
|
|
|
|
|
simp [anPart, ofCrAnOp]
|
2025-01-30 07:16:19 +00:00
|
|
|
|
|
2025-02-06 13:06:51 +00:00
|
|
|
|
/-- For a field specification `𝓕`, and an element `φ` of `𝓕.FieldOp`, the
|
|
|
|
|
creation part of `𝓕.FieldOp` as an element of `𝓕.FieldOpAlgebra`.
|
2025-02-10 10:21:57 +00:00
|
|
|
|
Thus for `φ`
|
|
|
|
|
- an incoming asymptotic state this is `ofCrAnOp ⟨φ, ()⟩`.
|
|
|
|
|
- a position based state this is `ofCrAnOp ⟨φ, .create⟩`.
|
|
|
|
|
- an outgoing asymptotic state this is `0`. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def crPart (φ : 𝓕.FieldOp) : 𝓕.FieldOpAlgebra := ι (crPartF φ)
|
2025-01-30 06:24:17 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma crPart_eq_ι_crPartF (φ : 𝓕.FieldOp) : crPart φ = ι (crPartF φ) := rfl
|
2025-01-30 06:24:17 +00:00
|
|
|
|
|
2025-01-30 07:16:19 +00:00
|
|
|
|
@[simp]
|
2025-02-06 10:06:05 +00:00
|
|
|
|
lemma crPart_negAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × (Fin 3 → ℝ)) :
|
2025-02-06 10:09:30 +00:00
|
|
|
|
crPart (FieldOp.inAsymp φ) = ofCrAnOp ⟨FieldOp.inAsymp φ, ()⟩ := by
|
|
|
|
|
simp [crPart, ofCrAnOp]
|
2025-01-30 07:16:19 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-06 10:06:05 +00:00
|
|
|
|
lemma crPart_position (φ : (Σ f, 𝓕.PositionLabel f) × SpaceTime) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
crPart (FieldOp.position φ) =
|
2025-02-06 10:09:30 +00:00
|
|
|
|
ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.create⟩ := by
|
|
|
|
|
simp [crPart, ofCrAnOp]
|
2025-01-30 07:16:19 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-06 10:06:05 +00:00
|
|
|
|
lemma crPart_posAsymp (φ : (Σ f, 𝓕.AsymptoticLabel f) × (Fin 3 → ℝ)) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
crPart (FieldOp.outAsymp φ) = 0 := by
|
2025-01-30 07:16:19 +00:00
|
|
|
|
simp [crPart]
|
|
|
|
|
|
2025-02-06 13:06:51 +00:00
|
|
|
|
/-- For field specification `𝓕`, and an element `φ` of `𝓕.FieldOp` the following relation holds:
|
|
|
|
|
|
|
|
|
|
`ofFieldOp φ = crPart φ + anPart φ`
|
|
|
|
|
|
|
|
|
|
That is, every field operator splits into its creation part plus its annihilation part.
|
|
|
|
|
-/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOp_eq_crPart_add_anPart (φ : 𝓕.FieldOp) :
|
2025-01-30 11:00:25 +00:00
|
|
|
|
ofFieldOp φ = crPart φ + anPart φ := by
|
2025-02-03 11:13:23 +00:00
|
|
|
|
rw [ofFieldOp, crPart, anPart, ofFieldOpF_eq_crPartF_add_anPartF]
|
2025-01-30 11:00:25 +00:00
|
|
|
|
simp only [map_add]
|
|
|
|
|
|
2025-01-27 06:20:25 +00:00
|
|
|
|
end FieldOpAlgebra
|
|
|
|
|
end FieldSpecification
|