PhysLean/HepLean/PerturbationTheory/FieldOpAlgebra/TimeContraction.lean

188 lines
7.1 KiB
Text
Raw Normal View History

2025-01-30 11:00: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-05 08:52:14 +00:00
import HepLean.PerturbationTheory.FieldOpAlgebra.NormalOrder.Lemmas
2025-02-03 12:12:36 +00:00
import HepLean.PerturbationTheory.FieldOpAlgebra.TimeOrder
2025-01-30 11:00:25 +00:00
/-!
# Time contractions
We define the state algebra of a field structure to be the free algebra
generated by the states.
-/
namespace FieldSpecification
variable {𝓕 : FieldSpecification}
2025-02-03 11:05:43 +00:00
open FieldOpFreeAlgebra
2025-01-30 11:00:25 +00:00
noncomputable section
namespace FieldOpAlgebra
open FieldStatistic
2025-02-07 09:56:37 +00:00
/-- For a field specification `𝓕`, and `φ` and `ψ` elements of `𝓕.FieldOp`, the element of
`𝓕.FieldOpAlgebra`, `timeContract φ ψ` is defined to be `𝓣(φψ) - 𝓝(φψ)`. -/
2025-02-03 11:28:14 +00:00
def timeContract (φ ψ : 𝓕.FieldOp) : 𝓕.FieldOpAlgebra :=
2025-01-30 11:00:25 +00:00
𝓣(ofFieldOp φ * ofFieldOp ψ) - 𝓝(ofFieldOp φ * ofFieldOp ψ)
2025-02-03 11:28:14 +00:00
lemma timeContract_eq_smul (φ ψ : 𝓕.FieldOp) : timeContract φ ψ =
2025-01-30 11:00:25 +00:00
𝓣(ofFieldOp φ * ofFieldOp ψ) + (-1 : ) • 𝓝(ofFieldOp φ * ofFieldOp ψ) := by rfl
2025-02-07 09:56:37 +00:00
/-- For a field specification `𝓕`, and `φ` and `ψ` elements of `𝓕.FieldOp`, if
`φ` and `ψ` are time-ordered then
2025-02-07 10:34:48 +00:00
`timeContract φ ψ = [anPart φ, ofFieldOp ψ]ₛ`. -/
2025-02-03 11:28:14 +00:00
lemma timeContract_of_timeOrderRel (φ ψ : 𝓕.FieldOp) (h : timeOrderRel φ ψ) :
2025-01-30 11:00:25 +00:00
timeContract φ ψ = [anPart φ, ofFieldOp ψ]ₛ := by
conv_rhs =>
rw [ofFieldOp_eq_crPart_add_anPart]
2025-01-30 11:08:10 +00:00
rw [map_add, superCommute_anPart_anPart, superCommute_anPart_crPart]
2025-01-30 11:00:25 +00:00
simp only [timeContract, instCommGroup.eq_1, Algebra.smul_mul_assoc, add_zero]
rw [timeOrder_ofFieldOp_ofFieldOp_ordered h]
rw [normalOrder_ofFieldOp_mul_ofFieldOp]
simp only [instCommGroup.eq_1]
rw [ofFieldOp_eq_crPart_add_anPart, ofFieldOp_eq_crPart_add_anPart]
simp only [mul_add, add_mul]
abel_nf
2025-02-03 11:28:14 +00:00
lemma timeContract_of_not_timeOrderRel (φ ψ : 𝓕.FieldOp) (h : ¬ timeOrderRel φ ψ) :
2025-01-30 11:00:25 +00:00
timeContract φ ψ = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ) • timeContract ψ φ := by
rw [timeContract_eq_smul]
simp only [Int.reduceNeg, one_smul, map_add]
rw [normalOrder_ofFieldOp_ofFieldOp_swap]
rw [timeOrder_ofFieldOp_ofFieldOp_not_ordered_eq_timeOrder h]
rw [timeContract_eq_smul]
simp only [instCommGroup.eq_1, map_smul, map_add, smul_add]
rw [smul_smul, smul_smul, mul_comm]
2025-02-07 09:56:37 +00:00
/-- For a field specification `𝓕`, and `φ` and `ψ` elements of `𝓕.FieldOp`, if
`φ` and `ψ` are not time-ordered then
2025-02-07 10:34:48 +00:00
`timeContract φ ψ = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ) • [anPart ψ, ofFieldOp φ]ₛ`. -/
2025-02-03 11:28:14 +00:00
lemma timeContract_of_not_timeOrderRel_expand (φ ψ : 𝓕.FieldOp) (h : ¬ timeOrderRel φ ψ) :
2025-02-01 11:51:06 +00:00
timeContract φ ψ = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ) • [anPart ψ, ofFieldOp φ]ₛ := by
rw [timeContract_of_not_timeOrderRel _ _ h]
rw [timeContract_of_timeOrderRel _ _ _]
have h1 := IsTotal.total (r := 𝓕.timeOrderRel) φ ψ
simp_all
2025-02-07 09:56:37 +00:00
/-- For a field specification `𝓕`, and `φ` and `ψ` elements of `𝓕.FieldOp`, then
`timeContract φ ψ` is in the center of `𝓕.FieldOpAlgebra`. -/
2025-02-03 11:28:14 +00:00
lemma timeContract_mem_center (φ ψ : 𝓕.FieldOp) :
2025-01-30 11:00:25 +00:00
timeContract φ ψ ∈ Subalgebra.center 𝓕.FieldOpAlgebra := by
by_cases h : timeOrderRel φ ψ
· rw [timeContract_of_timeOrderRel _ _ h]
exact superCommute_anPart_ofFieldOp_mem_center φ ψ
· rw [timeContract_of_not_timeOrderRel _ _ h]
refine Subalgebra.smul_mem (Subalgebra.center _) ?_ 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ)
rw [timeContract_of_timeOrderRel]
exact superCommute_anPart_ofFieldOp_mem_center _ _
have h1 := IsTotal.total (r := 𝓕.timeOrderRel) φ ψ
simp_all
2025-02-03 11:28:14 +00:00
lemma timeContract_zero_of_diff_grade (φ ψ : 𝓕.FieldOp) (h : (𝓕 |>ₛ φ) ≠ (𝓕 |>ₛ ψ)) :
2025-01-30 11:00:25 +00:00
timeContract φ ψ = 0 := by
by_cases h1 : timeOrderRel φ ψ
· rw [timeContract_of_timeOrderRel _ _ h1]
2025-02-03 11:13:23 +00:00
rw [superCommute_anPart_ofFieldOpF_diff_grade_zero]
2025-01-30 11:00:25 +00:00
exact h
· rw [timeContract_of_not_timeOrderRel _ _ h1]
rw [timeContract_of_timeOrderRel _ _ _]
2025-02-03 11:13:23 +00:00
rw [superCommute_anPart_ofFieldOpF_diff_grade_zero]
2025-01-30 11:00:25 +00:00
simp only [instCommGroup.eq_1, smul_zero]
exact h.symm
have ht := IsTotal.total (r := 𝓕.timeOrderRel) φ ψ
simp_all
2025-02-03 11:28:14 +00:00
lemma normalOrder_timeContract (φ ψ : 𝓕.FieldOp) :
2025-01-31 16:02:02 +00:00
𝓝(timeContract φ ψ) = 0 := by
by_cases h : timeOrderRel φ ψ
· rw [timeContract_of_timeOrderRel _ _ h]
simp
· rw [timeContract_of_not_timeOrderRel _ _ h]
2025-02-03 05:39:48 +00:00
simp only [instCommGroup.eq_1, map_smul, smul_eq_zero]
2025-01-31 16:02:02 +00:00
have h1 : timeOrderRel ψ φ := by
have ht : timeOrderRel φ ψ timeOrderRel ψ φ := IsTotal.total (r := 𝓕.timeOrderRel) φ ψ
simp_all
rw [timeContract_of_timeOrderRel _ _ h1]
simp
2025-02-03 11:28:14 +00:00
lemma timeOrder_timeContract_eq_time_mid {φ ψ : 𝓕.FieldOp}
2025-02-01 11:51:06 +00:00
(h1 : timeOrderRel φ ψ) (h2 : timeOrderRel ψ φ) (a b : 𝓕.FieldOpAlgebra) :
2025-02-03 05:39:48 +00:00
𝓣(a * timeContract φ ψ * b) = timeContract φ ψ * 𝓣(a * b) := by
2025-02-01 11:51:06 +00:00
rw [timeContract_of_timeOrderRel _ _ h1]
rw [ofFieldOp_eq_sum]
2025-02-03 05:39:48 +00:00
simp only [map_sum, Finset.mul_sum, Finset.sum_mul]
2025-02-01 11:51:06 +00:00
congr
funext x
match φ with
| .inAsymp φ =>
simp
| .position φ =>
simp only [anPart_position, instCommGroup.eq_1]
apply timeOrder_superCommute_eq_time_mid _ _
2025-02-03 05:39:48 +00:00
simp only [crAnTimeOrderRel, h1]
2025-02-01 11:51:06 +00:00
simp [crAnTimeOrderRel, h2]
| .outAsymp φ =>
simp only [anPart_posAsymp, instCommGroup.eq_1]
apply timeOrder_superCommute_eq_time_mid _ _
2025-02-03 05:39:48 +00:00
simp only [crAnTimeOrderRel, h1]
2025-02-01 11:51:06 +00:00
simp [crAnTimeOrderRel, h2]
2025-02-03 11:28:14 +00:00
lemma timeOrder_timeContract_eq_time_left {φ ψ : 𝓕.FieldOp}
2025-02-01 11:51:06 +00:00
(h1 : timeOrderRel φ ψ) (h2 : timeOrderRel ψ φ) (b : 𝓕.FieldOpAlgebra) :
2025-02-03 05:39:48 +00:00
𝓣(timeContract φ ψ * b) = timeContract φ ψ * 𝓣(b) := by
2025-02-01 11:51:06 +00:00
trans 𝓣(1 * timeContract φ ψ * b)
2025-02-03 05:39:48 +00:00
simp only [one_mul]
2025-02-01 11:51:06 +00:00
rw [timeOrder_timeContract_eq_time_mid h1 h2]
simp
2025-02-03 11:28:14 +00:00
lemma timeOrder_timeContract_neq_time {φ ψ : 𝓕.FieldOp}
2025-02-01 11:51:06 +00:00
(h1 : ¬ (timeOrderRel φ ψ ∧ timeOrderRel ψ φ)) :
𝓣(timeContract φ ψ) = 0 := by
by_cases h2 : timeOrderRel φ ψ
2025-02-03 05:39:48 +00:00
· simp_all only [true_and]
2025-02-01 11:51:06 +00:00
rw [timeContract_of_timeOrderRel _ _ h2]
2025-02-03 05:39:48 +00:00
simp only
2025-02-01 11:51:06 +00:00
rw [ofFieldOp_eq_sum]
2025-02-03 05:39:48 +00:00
simp only [map_sum]
2025-02-01 11:51:06 +00:00
apply Finset.sum_eq_zero
intro x hx
match φ with
| .inAsymp φ =>
simp
| .position φ =>
simp only [anPart_position, instCommGroup.eq_1]
apply timeOrder_superCommute_neq_time
simp_all [crAnTimeOrderRel]
| .outAsymp φ =>
simp only [anPart_posAsymp, instCommGroup.eq_1]
apply timeOrder_superCommute_neq_time
simp_all [crAnTimeOrderRel]
· rw [timeContract_of_not_timeOrderRel_expand _ _ h2]
2025-02-03 05:39:48 +00:00
simp only [instCommGroup.eq_1, map_smul, smul_eq_zero]
2025-02-01 11:51:06 +00:00
right
rw [ofFieldOp_eq_sum]
2025-02-03 05:39:48 +00:00
simp only [map_sum]
2025-02-01 11:51:06 +00:00
apply Finset.sum_eq_zero
intro x hx
match ψ with
| .inAsymp ψ =>
simp
| .position ψ =>
simp only [anPart_position, instCommGroup.eq_1]
apply timeOrder_superCommute_neq_time
simp_all [crAnTimeOrderRel]
| .outAsymp ψ =>
simp only [anPart_posAsymp, instCommGroup.eq_1]
apply timeOrder_superCommute_neq_time
simp_all [crAnTimeOrderRel]
2025-01-30 11:00:25 +00:00
end FieldOpAlgebra
end
end FieldSpecification