2025-01-20 15:17:48 +00:00
|
|
|
|
/-
|
|
|
|
|
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
|
|
|
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
|
|
|
Authors: Joseph Tooby-Smith
|
|
|
|
|
-/
|
2025-01-21 06:11:47 +00:00
|
|
|
|
import HepLean.PerturbationTheory.FieldSpecification.TimeOrder
|
2025-02-03 12:12:36 +00:00
|
|
|
|
import HepLean.PerturbationTheory.FieldOpFreeAlgebra.SuperCommute
|
2025-01-20 15:17:48 +00:00
|
|
|
|
import HepLean.PerturbationTheory.Koszul.KoszulSign
|
|
|
|
|
/-!
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
# Time Ordering in the FieldOpFreeAlgebra
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
namespace FieldSpecification
|
|
|
|
|
variable {𝓕 : FieldSpecification}
|
2025-01-27 11:12:48 +00:00
|
|
|
|
open FieldStatistic
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
namespace FieldOpFreeAlgebra
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-27 11:12:48 +00:00
|
|
|
|
noncomputable section
|
2025-01-23 14:18:02 +00:00
|
|
|
|
open HepLean.List
|
2025-01-27 11:12:48 +00:00
|
|
|
|
/-!
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-27 11:12:48 +00:00
|
|
|
|
## Time order
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-27 11:12:48 +00:00
|
|
|
|
-/
|
|
|
|
|
|
2025-02-06 13:28:52 +00:00
|
|
|
|
/-- For a field specification `𝓕`, `timeOrderF` is the linear map
|
2025-02-12 06:14:11 +00:00
|
|
|
|
|
2025-02-06 13:28:52 +00:00
|
|
|
|
`FieldOpFreeAlgebra 𝓕 →ₗ[ℂ] FieldOpFreeAlgebra 𝓕`
|
2025-02-12 06:14:11 +00:00
|
|
|
|
|
2025-02-06 13:28:52 +00:00
|
|
|
|
defined by its action on the basis `ofCrAnListF φs`, taking
|
2025-02-12 06:14:11 +00:00
|
|
|
|
`ofCrAnListF φs` to
|
|
|
|
|
|
|
|
|
|
`crAnTimeOrderSign φs • ofCrAnListF (crAnTimeOrderList φs)`.
|
|
|
|
|
|
2025-02-10 10:21:57 +00:00
|
|
|
|
That is, `timeOrderF` time-orders the field operators and multiplies by the sign of the
|
|
|
|
|
time order.
|
2025-02-06 13:28:52 +00:00
|
|
|
|
|
|
|
|
|
The notation `𝓣ᶠ(a)` is used for `timeOrderF a` -/
|
2025-02-03 11:05:43 +00:00
|
|
|
|
def timeOrderF : FieldOpFreeAlgebra 𝓕 →ₗ[ℂ] FieldOpFreeAlgebra 𝓕 :=
|
2025-02-03 11:21:11 +00:00
|
|
|
|
Basis.constr ofCrAnListFBasis ℂ fun φs =>
|
|
|
|
|
crAnTimeOrderSign φs • ofCrAnListF (crAnTimeOrderList φs)
|
2025-01-27 11:12:48 +00:00
|
|
|
|
|
2025-01-30 06:06:22 +00:00
|
|
|
|
@[inherit_doc timeOrderF]
|
2025-02-03 11:05:43 +00:00
|
|
|
|
scoped[FieldSpecification.FieldOpFreeAlgebra] notation "𝓣ᶠ(" a ")" => timeOrderF a
|
2025-01-27 11:12:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_ofCrAnListF (φs : List 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ(ofCrAnListF φs) = crAnTimeOrderSign φs • ofCrAnListF (crAnTimeOrderList φs) := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [← ofListBasis_eq_ofList]
|
2025-01-30 06:06:22 +00:00
|
|
|
|
simp only [timeOrderF, Basis.constr_basis]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:42:56 +00:00
|
|
|
|
lemma timeOrderF_timeOrderF_mid (a b c : 𝓕.FieldOpFreeAlgebra) :
|
|
|
|
|
𝓣ᶠ(a * b * c) = 𝓣ᶠ(a * 𝓣ᶠ(b) * c) := by
|
2025-02-03 11:21:11 +00:00
|
|
|
|
let pc (c : 𝓕.FieldOpFreeAlgebra) (hc : c ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) :
|
2025-01-29 12:09:02 +00:00
|
|
|
|
Prop := 𝓣ᶠ(a * b * c) = 𝓣ᶠ(a * 𝓣ᶠ(b) * c)
|
|
|
|
|
change pc c (Basis.mem_span _ c)
|
|
|
|
|
apply Submodule.span_induction
|
|
|
|
|
· intro x hx
|
|
|
|
|
obtain ⟨φs, rfl⟩ := hx
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [ofListBasis_eq_ofList, pc]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
let pb (b : 𝓕.FieldOpFreeAlgebra) (hb : b ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) :
|
|
|
|
|
Prop := 𝓣ᶠ(a * b * ofCrAnListF φs) = 𝓣ᶠ(a * 𝓣ᶠ(b) * ofCrAnListF φs)
|
2025-01-29 12:09:02 +00:00
|
|
|
|
change pb b (Basis.mem_span _ b)
|
|
|
|
|
apply Submodule.span_induction
|
|
|
|
|
· intro x hx
|
|
|
|
|
obtain ⟨φs', rfl⟩ := hx
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [ofListBasis_eq_ofList, pb]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
let pa (a : 𝓕.FieldOpFreeAlgebra) (ha : a ∈ Submodule.span ℂ (Set.range ofCrAnListFBasis)) :
|
2025-02-03 11:42:56 +00:00
|
|
|
|
Prop := 𝓣ᶠ(a * ofCrAnListF φs' * ofCrAnListF φs) =
|
|
|
|
|
𝓣ᶠ(a * 𝓣ᶠ(ofCrAnListF φs') * ofCrAnListF φs)
|
2025-01-29 12:09:02 +00:00
|
|
|
|
change pa a (Basis.mem_span _ a)
|
|
|
|
|
apply Submodule.span_induction
|
|
|
|
|
· intro x hx
|
|
|
|
|
obtain ⟨φs'', rfl⟩ := hx
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [ofListBasis_eq_ofList, pa]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_ofCrAnListF]
|
|
|
|
|
simp only [← ofCrAnListF_append, Algebra.mul_smul_comm,
|
2025-01-29 12:09:02 +00:00
|
|
|
|
Algebra.smul_mul_assoc, map_smul]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_ofCrAnListF, timeOrderF_ofCrAnListF, smul_smul]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
congr 1
|
2025-01-29 16:06:28 +00:00
|
|
|
|
· simp only [crAnTimeOrderSign, crAnTimeOrderList]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
rw [Wick.koszulSign_of_append_eq_insertionSort, mul_comm]
|
|
|
|
|
· congr 1
|
|
|
|
|
simp only [crAnTimeOrderList]
|
|
|
|
|
rw [insertionSort_append_insertionSort_append]
|
|
|
|
|
· simp [pa]
|
|
|
|
|
· intro x y hx hy h1 h2
|
|
|
|
|
simp_all [pa, add_mul]
|
|
|
|
|
· intro x hx h
|
|
|
|
|
simp_all [pa]
|
|
|
|
|
· simp [pb]
|
|
|
|
|
· intro x y hx hy h1 h2
|
|
|
|
|
simp_all [pb, mul_add, add_mul]
|
|
|
|
|
· intro x hx h
|
|
|
|
|
simp_all [pb]
|
|
|
|
|
· simp [pc]
|
|
|
|
|
· intro x y hx hy h1 h2
|
|
|
|
|
simp_all [pc, mul_add]
|
|
|
|
|
· intro x hx h hp
|
|
|
|
|
simp_all [pc]
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma timeOrderF_timeOrderF_right (a b : 𝓕.FieldOpFreeAlgebra) : 𝓣ᶠ(a * b) = 𝓣ᶠ(a * 𝓣ᶠ(b)) := by
|
2025-01-29 12:09:02 +00:00
|
|
|
|
trans 𝓣ᶠ(a * b * 1)
|
|
|
|
|
· simp
|
2025-01-30 06:06:22 +00:00
|
|
|
|
· rw [timeOrderF_timeOrderF_mid]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma timeOrderF_timeOrderF_left (a b : 𝓕.FieldOpFreeAlgebra) : 𝓣ᶠ(a * b) = 𝓣ᶠ(𝓣ᶠ(a) * b) := by
|
2025-01-29 12:09:02 +00:00
|
|
|
|
trans 𝓣ᶠ(1 * a * b)
|
|
|
|
|
· simp
|
2025-01-30 06:06:22 +00:00
|
|
|
|
· rw [timeOrderF_timeOrderF_mid]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_ofFieldOpListF (φs : List 𝓕.FieldOp) :
|
2025-02-03 11:10:20 +00:00
|
|
|
|
𝓣ᶠ(ofFieldOpListF φs) = timeOrderSign φs • ofFieldOpListF (timeOrderList φs) := by
|
2025-01-27 11:12:48 +00:00
|
|
|
|
conv_lhs =>
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [ofFieldOpListF_sum, map_sum]
|
2025-01-27 11:12:48 +00:00
|
|
|
|
enter [2, x]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_ofCrAnListF]
|
2025-01-27 11:26:02 +00:00
|
|
|
|
simp only [crAnTimeOrderSign_crAnSection]
|
2025-01-27 11:12:48 +00:00
|
|
|
|
rw [← Finset.smul_sum]
|
|
|
|
|
congr
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [ofFieldOpListF_sum, sum_crAnSections_timeOrder]
|
2025-01-27 11:12:48 +00:00
|
|
|
|
rfl
|
|
|
|
|
|
2025-02-03 11:10:20 +00:00
|
|
|
|
lemma timeOrderF_ofFieldOpListF_nil : timeOrderF (𝓕 := 𝓕) (ofFieldOpListF []) = 1 := by
|
|
|
|
|
rw [timeOrderF_ofFieldOpListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp [timeOrderSign, Wick.koszulSign, timeOrderList]
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 11:42:56 +00:00
|
|
|
|
lemma timeOrderF_ofFieldOpListF_singleton (φ : 𝓕.FieldOp) :
|
|
|
|
|
𝓣ᶠ(ofFieldOpListF [φ]) = ofFieldOpListF [φ] := by
|
2025-02-03 11:10:20 +00:00
|
|
|
|
simp [timeOrderF_ofFieldOpListF, timeOrderSign, timeOrderList]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_ofFieldOpF_ofFieldOpF_ordered {φ ψ : 𝓕.FieldOp} (h : timeOrderRel φ ψ) :
|
2025-02-03 11:13:23 +00:00
|
|
|
|
𝓣ᶠ(ofFieldOpF φ * ofFieldOpF ψ) = ofFieldOpF φ * ofFieldOpF ψ := by
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [← ofFieldOpListF_singleton, ← ofFieldOpListF_singleton, ← ofFieldOpListF_append,
|
|
|
|
|
timeOrderF_ofFieldOpListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [List.singleton_append]
|
|
|
|
|
rw [timeOrderSign_pair_ordered h, timeOrderList_pair_ordered h]
|
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_ofFieldOpF_ofFieldOpF_not_ordered {φ ψ : 𝓕.FieldOp} (h : ¬ timeOrderRel φ ψ) :
|
2025-02-03 11:13:23 +00:00
|
|
|
|
𝓣ᶠ(ofFieldOpF φ * ofFieldOpF ψ) = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ) • ofFieldOpF ψ * ofFieldOpF φ := by
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [← ofFieldOpListF_singleton, ← ofFieldOpListF_singleton,
|
|
|
|
|
← ofFieldOpListF_append, timeOrderF_ofFieldOpListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [List.singleton_append, instCommGroup.eq_1, Algebra.smul_mul_assoc]
|
|
|
|
|
rw [timeOrderSign_pair_not_ordered h, timeOrderList_pair_not_ordered h]
|
2025-02-03 11:10:20 +00:00
|
|
|
|
simp [← ofFieldOpListF_append]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_ofFieldOpF_ofFieldOpF_not_ordered_eq_timeOrderF {φ ψ : 𝓕.FieldOp}
|
2025-01-30 11:08:10 +00:00
|
|
|
|
(h : ¬ timeOrderRel φ ψ) :
|
2025-02-03 11:13:23 +00:00
|
|
|
|
𝓣ᶠ(ofFieldOpF φ * ofFieldOpF ψ) = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ) • 𝓣ᶠ(ofFieldOpF ψ * ofFieldOpF φ) := by
|
|
|
|
|
rw [timeOrderF_ofFieldOpF_ofFieldOpF_not_ordered h]
|
|
|
|
|
rw [timeOrderF_ofFieldOpF_ofFieldOpF_ordered]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc]
|
|
|
|
|
have hx := IsTotal.total (r := timeOrderRel) ψ φ
|
|
|
|
|
simp_all
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = 0 := by
|
|
|
|
|
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF]
|
2025-01-27 16:13:54 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton,
|
|
|
|
|
← ofCrAnListF_append, ← ofCrAnListF_append, timeOrderF_ofCrAnListF, timeOrderF_ofCrAnListF]
|
2025-01-27 16:13:54 +00:00
|
|
|
|
simp only [List.singleton_append]
|
|
|
|
|
rw [crAnTimeOrderSign_pair_not_ordered h, crAnTimeOrderList_pair_not_ordered h]
|
|
|
|
|
rw [sub_eq_zero, smul_smul]
|
|
|
|
|
have h1 := IsTotal.total (r := crAnTimeOrderRel) φ ψ
|
|
|
|
|
congr
|
|
|
|
|
· rw [crAnTimeOrderSign_pair_ordered, exchangeSign_symm]
|
|
|
|
|
simp only [instCommGroup.eq_1, mul_one]
|
|
|
|
|
simp_all
|
|
|
|
|
· rw [crAnTimeOrderList_pair_ordered]
|
|
|
|
|
simp_all
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = 0 := by
|
2025-01-30 06:06:22 +00:00
|
|
|
|
rw [timeOrderF_timeOrderF_right,
|
2025-02-03 11:21:11 +00:00
|
|
|
|
timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a : 𝓕.FieldOpFreeAlgebra) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * a) = 0 := by
|
2025-01-30 06:06:22 +00:00
|
|
|
|
rw [timeOrderF_timeOrderF_left,
|
2025-02-03 11:21:11 +00:00
|
|
|
|
timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_mid
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ ψ : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ ψ) (a b : 𝓕.FieldOpFreeAlgebra) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ(a * [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca * b) = 0 := by
|
2025-01-30 06:06:22 +00:00
|
|
|
|
rw [timeOrderF_timeOrderF_mid,
|
2025-02-03 11:21:11 +00:00
|
|
|
|
timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel h]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ1 φ2 : 𝓕.CrAnFieldOp} (h : ¬ crAnTimeOrderRel φ1 φ2) (a : 𝓕.FieldOpFreeAlgebra) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([a, [ofCrAnOpF φ1, ofCrAnOpF φ2]ₛca]ₛca) = 0 := by
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [← bosonicProjF_add_fermionicProjF a]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [map_add, LinearMap.add_apply]
|
2025-02-05 07:22:14 +00:00
|
|
|
|
rw [bosonic_superCommuteF (Submodule.coe_mem (bosonicProjF a))]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [map_sub]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left h]
|
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right h]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [sub_self, zero_add]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [← 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 [superCommuteF_bonsonic h']
|
2025-02-03 11:21:11 +00:00
|
|
|
|
simp only [ofCrAnListF_singleton, map_sub]
|
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left h]
|
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right h]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
2025-02-05 07:22:14 +00:00
|
|
|
|
· rw [superCommuteF_fermionic_fermionic (Submodule.coe_mem (fermionicProjF a)) h']
|
2025-02-03 11:21:11 +00:00
|
|
|
|
simp only [ofCrAnListF_singleton, map_add]
|
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_left h]
|
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_not_crAnTimeOrderRel_right h]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ1 φ2)
|
2025-01-29 12:09:02 +00:00
|
|
|
|
(h13 : ¬ crAnTimeOrderRel φ1 φ3) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) = 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,
|
2025-01-29 16:41:10 +00:00
|
|
|
|
map_sub, map_neg, smul_eq_zero]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
right
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel h12]
|
|
|
|
|
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF_symm φ3]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [smul_zero, neg_zero, instCommGroup.eq_1, neg_smul, map_neg, map_smul, smul_neg,
|
|
|
|
|
sub_neg_eq_add, zero_add, smul_eq_zero]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel h13]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel'
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ1 φ2 φ3 : 𝓕.CrAnFieldOp} (h12 : ¬ crAnTimeOrderRel φ2 φ1)
|
2025-01-29 12:09:02 +00:00
|
|
|
|
(h13 : ¬ crAnTimeOrderRel φ3 φ1) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) = 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,
|
2025-01-29 16:41:10 +00:00
|
|
|
|
map_sub, map_neg, smul_eq_zero]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
right
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF_symm φ1]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, neg_smul, map_neg, map_smul, smul_neg, neg_neg]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel h12]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [smul_zero, zero_sub, neg_eq_zero, smul_eq_zero]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel h13]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_all_not_crAnTimeOrderRel
|
2025-02-03 11:28:14 +00:00
|
|
|
|
(φ1 φ2 φ3 : 𝓕.CrAnFieldOp) (h : ¬
|
2025-01-29 16:06:28 +00:00
|
|
|
|
(crAnTimeOrderRel φ1 φ2 ∧ crAnTimeOrderRel φ1 φ3 ∧
|
2025-01-29 12:09:02 +00:00
|
|
|
|
crAnTimeOrderRel φ2 φ1 ∧ crAnTimeOrderRel φ2 φ3 ∧
|
|
|
|
|
crAnTimeOrderRel φ3 φ1 ∧ crAnTimeOrderRel φ3 φ2)) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([ofCrAnOpF φ1, [ofCrAnOpF φ2, ofCrAnOpF φ3]ₛca]ₛca) = 0 := by
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [not_and] at h
|
2025-01-29 12:09:02 +00:00
|
|
|
|
by_cases h23 : ¬ crAnTimeOrderRel φ2 φ3
|
2025-01-29 16:41:10 +00:00
|
|
|
|
· simp_all only [IsEmpty.forall_iff, implies_true]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel h23]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp_all only [Decidable.not_not, forall_const]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
by_cases h32 : ¬ crAnTimeOrderRel φ3 φ2
|
2025-01-29 16:41:10 +00:00
|
|
|
|
· simp_all only [not_false_eq_true, implies_true]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF_symm]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, neg_smul, map_neg, map_smul, neg_eq_zero, smul_eq_zero]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_superCommuteF_ofCrAnOpF_not_crAnTimeOrderRel h32]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
simp
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp_all only [imp_false, Decidable.not_not]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
by_cases h12 : ¬ crAnTimeOrderRel φ1 φ2
|
|
|
|
|
· have h13 : ¬ crAnTimeOrderRel φ1 φ3 := by
|
|
|
|
|
intro h13
|
|
|
|
|
apply h12
|
|
|
|
|
exact IsTrans.trans φ1 φ3 φ2 h13 h32
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel h12 h13]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp_all only [Decidable.not_not, forall_const]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
have h13 : crAnTimeOrderRel φ1 φ3 := IsTrans.trans φ1 φ2 φ3 h12 h23
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp_all only [forall_const]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
by_cases h21 : ¬ crAnTimeOrderRel φ2 φ1
|
2025-01-29 16:41:10 +00:00
|
|
|
|
· simp_all only [IsEmpty.forall_iff]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
have h31 : ¬ crAnTimeOrderRel φ3 φ1 := by
|
|
|
|
|
intro h31
|
|
|
|
|
apply h21
|
|
|
|
|
exact IsTrans.trans φ2 φ3 φ1 h23 h31
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [timeOrderF_superCommuteF_ofCrAnOpF_superCommuteF_not_crAnTimeOrderRel' h21 h31]
|
2025-01-29 16:41:10 +00:00
|
|
|
|
simp_all only [Decidable.not_not, forall_const]
|
2025-01-29 12:09:02 +00:00
|
|
|
|
refine False.elim (h ?_)
|
|
|
|
|
exact IsTrans.trans φ3 φ2 φ1 h32 h21
|
|
|
|
|
|
2025-02-03 11:21:11 +00:00
|
|
|
|
lemma timeOrderF_superCommuteF_ofCrAnOpF_ofCrAnOpF_eq_time
|
2025-02-03 11:28:14 +00:00
|
|
|
|
{φ ψ : 𝓕.CrAnFieldOp} (h1 : crAnTimeOrderRel φ ψ) (h2 : crAnTimeOrderRel ψ φ) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
𝓣ᶠ([ofCrAnOpF φ, ofCrAnOpF ψ]ₛca) = [ofCrAnOpF φ, ofCrAnOpF ψ]ₛca := by
|
|
|
|
|
rw [superCommuteF_ofCrAnOpF_ofCrAnOpF]
|
2025-01-27 16:13:54 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, Algebra.smul_mul_assoc, map_sub, map_smul]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
rw [← ofCrAnListF_singleton, ← ofCrAnListF_singleton,
|
|
|
|
|
← ofCrAnListF_append, ← ofCrAnListF_append, timeOrderF_ofCrAnListF, timeOrderF_ofCrAnListF]
|
2025-01-27 16:13:54 +00:00
|
|
|
|
simp only [List.singleton_append]
|
|
|
|
|
rw [crAnTimeOrderSign_pair_ordered h1, crAnTimeOrderList_pair_ordered h1,
|
|
|
|
|
crAnTimeOrderSign_pair_ordered h2, crAnTimeOrderList_pair_ordered h2]
|
|
|
|
|
simp
|
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Interaction with maxTimeField
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-23 14:31:03 +00:00
|
|
|
|
/-- In the state algebra time, ordering obeys `T(φ₀φ₁…φₙ) = s * φᵢ * T(φ₀φ₁…φᵢ₋₁φᵢ₊₁…φₙ)`
|
|
|
|
|
where `φᵢ` is the state
|
2025-01-23 14:18:02 +00:00
|
|
|
|
which has maximum time and `s` is the exchange sign of `φᵢ` and `φ₀φ₁…φᵢ₋₁`. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_eq_maxTimeField_mul (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
|
2025-02-03 11:10:20 +00:00
|
|
|
|
𝓣ᶠ(ofFieldOpListF (φ :: φs)) =
|
2025-01-20 15:17:48 +00:00
|
|
|
|
𝓢(𝓕 |>ₛ maxTimeField φ φs, 𝓕 |>ₛ (φ :: φs).take (maxTimeFieldPos φ φs)) •
|
2025-02-03 11:13:23 +00:00
|
|
|
|
ofFieldOpF (maxTimeField φ φs) * 𝓣ᶠ(ofFieldOpListF (eraseMaxTimeField φ φs)) := by
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [timeOrderF_ofFieldOpListF, timeOrderList_eq_maxTimeField_timeOrderList]
|
|
|
|
|
rw [ofFieldOpListF_cons, timeOrderF_ofFieldOpListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
simp only [instCommGroup.eq_1, Algebra.mul_smul_comm, Algebra.smul_mul_assoc, smul_smul]
|
|
|
|
|
congr
|
|
|
|
|
rw [timerOrderSign_of_eraseMaxTimeField, mul_assoc]
|
|
|
|
|
simp
|
|
|
|
|
|
2025-01-23 14:31:03 +00:00
|
|
|
|
/-- In the state algebra time, ordering obeys `T(φ₀φ₁…φₙ) = s * φᵢ * T(φ₀φ₁…φᵢ₋₁φᵢ₊₁…φₙ)`
|
|
|
|
|
where `φᵢ` is the state
|
2025-01-23 14:18:02 +00:00
|
|
|
|
which has maximum time and `s` is the exchange sign of `φᵢ` and `φ₀φ₁…φᵢ₋₁`.
|
|
|
|
|
Here `s` is written using finite sets. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma timeOrderF_eq_maxTimeField_mul_finset (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
|
2025-02-03 11:10:20 +00:00
|
|
|
|
𝓣ᶠ(ofFieldOpListF (φ :: φs)) = 𝓢(𝓕 |>ₛ maxTimeField φ φs, 𝓕 |>ₛ ⟨(eraseMaxTimeField φ φs).get,
|
2025-01-23 14:18:02 +00:00
|
|
|
|
(Finset.filter (fun x =>
|
|
|
|
|
(maxTimeFieldPosFin φ φs).succAbove x < maxTimeFieldPosFin φ φs) Finset.univ)⟩) •
|
2025-02-03 11:13:23 +00:00
|
|
|
|
ofFieldOpF (maxTimeField φ φs) * 𝓣ᶠ(ofFieldOpListF (eraseMaxTimeField φ φs)) := by
|
2025-01-30 06:06:22 +00:00
|
|
|
|
rw [timeOrderF_eq_maxTimeField_mul]
|
2025-01-23 14:18:02 +00:00
|
|
|
|
congr 3
|
|
|
|
|
apply FieldStatistic.ofList_perm
|
|
|
|
|
nth_rewrite 1 [← List.finRange_map_get (φ :: φs)]
|
|
|
|
|
simp only [List.length_cons, eraseMaxTimeField, insertionSortDropMinPos]
|
|
|
|
|
rw [eraseIdx_get, ← List.map_take, ← List.map_map]
|
|
|
|
|
refine List.Perm.map (φ :: φs).get ?_
|
|
|
|
|
apply (List.perm_ext_iff_of_nodup _ _).mpr
|
|
|
|
|
· intro i
|
|
|
|
|
simp only [List.length_cons, maxTimeFieldPos, mem_take_finrange, Fin.val_fin_lt, List.mem_map,
|
|
|
|
|
Finset.mem_sort, Finset.mem_filter, Finset.mem_univ, true_and, Function.comp_apply]
|
|
|
|
|
refine Iff.intro (fun hi => ?_) (fun h => ?_)
|
|
|
|
|
· have h2 := (maxTimeFieldPosFin φ φs).2
|
|
|
|
|
simp only [eraseMaxTimeField, insertionSortDropMinPos, List.length_cons, Nat.succ_eq_add_one,
|
|
|
|
|
maxTimeFieldPosFin, insertionSortMinPosFin] at h2
|
|
|
|
|
use ⟨i, by omega⟩
|
|
|
|
|
apply And.intro
|
|
|
|
|
· simp only [Fin.succAbove, List.length_cons, Fin.castSucc_mk, maxTimeFieldPosFin,
|
|
|
|
|
insertionSortMinPosFin, Nat.succ_eq_add_one, Fin.mk_lt_mk, Fin.val_fin_lt, Fin.succ_mk]
|
|
|
|
|
rw [Fin.lt_def]
|
|
|
|
|
split
|
|
|
|
|
· simp only [Fin.val_fin_lt]
|
|
|
|
|
omega
|
|
|
|
|
· omega
|
|
|
|
|
· simp only [Fin.succAbove, List.length_cons, Fin.castSucc_mk, Fin.succ_mk, Fin.ext_iff,
|
|
|
|
|
Fin.coe_cast]
|
|
|
|
|
split
|
|
|
|
|
· simp
|
|
|
|
|
· simp_all [Fin.lt_def]
|
|
|
|
|
· obtain ⟨j, h1, h2⟩ := h
|
|
|
|
|
subst h2
|
|
|
|
|
simp only [Fin.lt_def, Fin.coe_cast]
|
|
|
|
|
exact h1
|
|
|
|
|
· exact List.Sublist.nodup (List.take_sublist _ _) <|
|
|
|
|
|
List.nodup_finRange (φs.length + 1)
|
|
|
|
|
· refine List.Nodup.map ?_ ?_
|
|
|
|
|
· refine Function.Injective.comp ?hf.hg Fin.succAbove_right_injective
|
|
|
|
|
exact Fin.cast_injective (eraseIdx_length (φ :: φs) (insertionSortMinPos timeOrderRel φ φs))
|
|
|
|
|
· exact Finset.sort_nodup (fun x1 x2 => x1 ≤ x2)
|
|
|
|
|
(Finset.filter (fun x => (maxTimeFieldPosFin φ φs).succAbove x < maxTimeFieldPosFin φ φs)
|
|
|
|
|
Finset.univ)
|
|
|
|
|
|
2025-01-20 15:17:48 +00:00
|
|
|
|
end
|
2025-01-27 11:12:48 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
end FieldOpFreeAlgebra
|
2025-01-27 11:12:48 +00:00
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
end FieldSpecification
|