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: remark fieldSpecification_intro := "The raw ingredients of a field theory are:
- The specification of the fields. - The specification of the fields.
- Whether each field is a boson or a fermion. - Whether each field is a boson or a fermion.
- Vertices present. - Vertices present in the Lagrangian.
- Coefficents of each vertex. - The coefficent of each vertex.
We call the first two of these ingredients the `FieldSpecification` of the theory. " 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 /-- A field specification is a type, `Fields`, elements of which are fields
statistics (fermionic or bosonic) of each field. -/ 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 structure FieldSpecification where
/-- The type of fields. This also includes anti-states. -/ /-- The type of fields. This also includes anti-states. -/
Fields : Type Fields : Type
@ -44,16 +45,16 @@ structure FieldSpecification where
namespace FieldSpecification namespace FieldSpecification
variable (𝓕 : 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 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 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 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 inductive States (𝓕 : FieldSpecification) where
| inAsymp : 𝓕.IncomingAsymptotic → 𝓕.States | inAsymp : 𝓕.IncomingAsymptotic → 𝓕.States
| position : 𝓕.PositionStates → 𝓕.States | position : 𝓕.PositionStates → 𝓕.States

View file

@ -43,6 +43,14 @@ lemma timeContract_insertAndContract_none (𝓞 : 𝓕.ProtoOperatorAlgebra)
ext a ext a
simp 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) lemma timeConract_insertAndContract_some (𝓞 : 𝓕.ProtoOperatorAlgebra)
(φ : 𝓕.States) (φs : List 𝓕.States) (φ : 𝓕.States) (φs : List 𝓕.States)
(φsΛ : WickContraction φs.length) (i : Fin φs.length.succ) (j : φsΛ.uncontracted) : (φ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) : (ht : 𝓕.timeOrderRel φ φs[k.1]) (hik : i < i.succAbove k) :
(φsΛ ↩Λ φ i (some k)).timeContract 𝓞 = (φsΛ ↩Λ φ i (some k)).timeContract 𝓞 =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (φsΛ.uncontracted.filter (fun x => x < k))⟩) 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (φsΛ.uncontracted.filter (fun x => x < k))⟩)
• (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ • (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ ((uncontractedStatesEquiv φs φsΛ) (some k)) *
((uncontractedStatesEquiv φs φsΛ) (some k)) * φsΛ.timeContract 𝓞) := by φsΛ.timeContract 𝓞) := by
rw [timeConract_insertAndContract_some] rw [timeConract_insertAndContract_some]
simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, instCommGroup.eq_1, simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, instCommGroup.eq_1,
ProtoOperatorAlgebra.contractStateAtIndex, uncontractedStatesEquiv, Equiv.optionCongr_apply, 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Λ ↩Λ φ i (some k)).timeContract 𝓞 =
𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (φsΛ.uncontracted.filter (fun x => x ≤ k))⟩) 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ⟨φs.get, (φsΛ.uncontracted.filter (fun x => x ≤ k))⟩)
• (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ • (𝓞.contractStateAtIndex φ [φsΛ]ᵘᶜ
((uncontractedStatesEquiv φs φsΛ) (some k)) * φsΛ.timeContract 𝓞) := by ((uncontractedStatesEquiv φs φsΛ) (some k)) * φsΛ.timeContract 𝓞) := by
rw [timeConract_insertAndContract_some] rw [timeConract_insertAndContract_some]
simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, instCommGroup.eq_1, simp only [Nat.succ_eq_add_one, Fin.getElem_fin, ite_mul, instCommGroup.eq_1,
ProtoOperatorAlgebra.contractStateAtIndex, uncontractedStatesEquiv, Equiv.optionCongr_apply, ProtoOperatorAlgebra.contractStateAtIndex, uncontractedStatesEquiv, Equiv.optionCongr_apply,

View file

@ -64,7 +64,10 @@ layout: default
{% endif %} {% endif %}
{% if entry.type == "remark" %} {% if entry.type == "remark" %}
<p><i>Remark:</i>{{ entry.content|markdownify }} <div style="padding: 10px; border-radius: 4px; border: 1px solid #e8e6e6;">
</p> <a href = "{{ entry.link }}" style="color: #2c5282;">Remark: {{ entry.name}} </a>
{{ entry.content|markdownify }}
</div>
<br>
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View file

@ -82,6 +82,7 @@ def NotePart.toYMLM : ((List String) × Nat × Nat) → NotePart → MetaM ((Li
let newString := s!" let newString := s!"
- type: remark - type: remark
name: \"{shortName}\" name: \"{shortName}\"
link: \"{← Name.toGitHubLink remarkInfo.fileName remarkInfo.line}\"
content: | content: |
{contentIndent}" {contentIndent}"
return ⟨x.1 ++ [newString], x.2⟩ return ⟨x.1 ++ [newString], x.2⟩
@ -125,8 +126,7 @@ def perturbationTheory : Note where
and picking up a minus sign when they are both fermionic. This concept is and picking up a minus sign when they are both fermionic. This concept is
made precise using the notion of an exchange sign, defined as:", made precise using the notion of an exchange sign, defined as:",
.name `FieldStatistic.exchangeSign, .name `FieldStatistic.exchangeSign,
.p "We use the notation `𝓢(a,b)` as shorthand for the exchange sign of .p "We use the notation `𝓢(a,b)` as shorthand for the exchange sign of `a` and `b`.",
`a` and `b`.",
.h2 "Field specifications", .h2 "Field specifications",
.name `fieldSpecification_intro, .name `fieldSpecification_intro,
.name `FieldSpecification, .name `FieldSpecification,