refactor: improve remarks

This commit is contained in:
jstoobysmith 2025-01-24 13:48:00 +00:00
parent c7bd59c981
commit 7738be4443
4 changed files with 27 additions and 15 deletions

View file

@ -28,13 +28,14 @@ These states carry the same field statistic as the field they are derived from.
remark fieldSpecification_intro := "The raw ingredients of a field theory are:
- The specification of the fields.
- Whether each field is a boson or a fermion.
- Vertices present.
- Coefficents of each vertex.
- Vertices present in the Lagrangian.
- The coefficent of each vertex.
We call the first two of these ingredients the `FieldSpecification` of the theory. "
/-- A field specification is a type of fields plus a specification of the
statistics (fermionic or bosonic) of each field. -/
/-- A field specification is a type, `Fields`, elements of which are fields
present in a theory, and a map `statistics` from `Fields` to `FieldStatistic` which
identifies each field as a boson or a fermion. -/
structure FieldSpecification where
/-- The type of fields. This also includes anti-states. -/
Fields : Type
@ -44,16 +45,16 @@ structure FieldSpecification where
namespace FieldSpecification
variable (𝓕 : FieldSpecification)
/-- Incoming asymptotic states are specified by a field and a momentum. -/
/-- An incoming asymptotic state is a field and a momentum. -/
def IncomingAsymptotic : Type := 𝓕.Fields × Lorentz.Contr 4
/-- Outgoing asymptotic states are specified by a field and a momentum. -/
/-- An outgoing asymptotic states is a field and a momentum. -/
def OutgoingAsymptotic : Type := 𝓕.Fields × Lorentz.Contr 4
/-- States specified by a field and a space-time position. -/
/-- A position state is a field and a space-time position. -/
def PositionStates : Type := 𝓕.Fields × SpaceTime
/-- The combination of asymptotic states and position states. -/
/-- The type States is the inductive type combining the asymptotic states and position states. -/
inductive States (𝓕 : FieldSpecification) where
| inAsymp : 𝓕.IncomingAsymptotic → 𝓕.States
| position : 𝓕.PositionStates → 𝓕.States

View file

@ -43,6 +43,14 @@ lemma timeContract_insertAndContract_none (𝓞 : 𝓕.ProtoOperatorAlgebra)
ext a
simp
/-- For `φsΛ` a Wick contraction for `φs = φ₀…φₙ`, the time contraction
`(φsΛ ↩Λ φ i (some j)).timeContract 𝓞` is equal to the multiple of
- the time contraction of `φ` with `φⱼ` if `i < i.succAbove j` else
`φⱼ` with `φ`.
- `φsΛ.timeContract 𝓞`.
This follows from the fact that `(φsΛ ↩Λ φ i (some j))` has one more contracted pair than `φsΛ`,
corresponding to `φ` contracted with `φⱼ`. The order depends on whether we insert `φ` before
or after `φⱼ`. -/
lemma timeConract_insertAndContract_some (𝓞 : 𝓕.ProtoOperatorAlgebra)
(φ : 𝓕.States) (φs : List 𝓕.States)
(φsΛ : WickContraction φs.length) (i : Fin φs.length.succ) (j : φsΛ.uncontracted) :
@ -69,8 +77,8 @@ lemma timeConract_insertAndContract_some_eq_mul_contractStateAtIndex_lt
(ht : 𝓕.timeOrderRel φ φs[k.1]) (hik : i < i.succAbove k) :
(φsΛ ↩Λ φ i (some k)).timeContract 𝓞 =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (φsΛ.uncontracted.filter (fun x => x < k))⟩)
• (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ
((uncontractedStatesEquiv φs φsΛ) (some k)) * φsΛ.timeContract 𝓞) := by
• (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedStatesEquiv φs φsΛ) (some k)) *
φsΛ.timeContract 𝓞) := by
rw [timeConract_insertAndContract_some]
simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, instCommGroup.eq_1,
ProtoOperatorAlgebra.contractStateAtIndex, uncontractedStatesEquiv, Equiv.optionCongr_apply,
@ -105,7 +113,7 @@ lemma timeConract_insertAndContract_some_eq_mul_contractStateAtIndex_not_lt
(φsΛ ↩Λ φ i (some k)).timeContract 𝓞 =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (φsΛ.uncontracted.filter (fun x => x ≤ k))⟩)
• (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ
((uncontractedStatesEquiv φs φsΛ) (some k)) * φsΛ.timeContract 𝓞) := by
((uncontractedStatesEquiv φs φsΛ) (some k)) * φsΛ.timeContract 𝓞) := by
rw [timeConract_insertAndContract_some]
simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, instCommGroup.eq_1,
ProtoOperatorAlgebra.contractStateAtIndex, uncontractedStatesEquiv, Equiv.optionCongr_apply,