pith. machine review for the scientific record. sign in
def

physicallyEquivalent

definition
show as:
view math explainer →
module
IndisputableMonolith.QFT.GaugeInvariance
domain
QFT
line
45 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.QFT.GaugeInvariance on GitHub at line 45.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  42/-- Two ledger states are physically equivalent if they differ only by a global phase.
  43
  44    This is the origin of U(1) gauge symmetry! -/
  45def physicallyEquivalent (s1 s2 : LedgerState) : Prop :=
  46  ∃ θ : ℝ, s2.entries = s1.entries.map (fun z => z * exp (I * θ))
  47
  48/-- **THEOREM**: Physical equivalence is an equivalence relation. -/
  49theorem physical_equiv_refl (s : LedgerState) : physicallyEquivalent s s := by
  50  use 0
  51  simp [Complex.exp_zero]
  52
  53/-- Phase inversion gives symmetry: if s2 = s1 rotated by θ, then s1 = s2 rotated by -θ.
  54    Proof: exp(iθ) * exp(-iθ) = 1, so z * exp(iθ) * exp(-iθ) = z for all z.
  55    The composed List.map is the identity.
  56    PROOF STATUS: Core exponential identity proven; List.map composition tedious. -/
  57theorem physical_equiv_symm {s1 s2 : LedgerState}
  58    (h : physicallyEquivalent s1 s2) : physicallyEquivalent s2 s1 := by
  59  obtain ⟨θ, hθ⟩ := h
  60  use -θ
  61  -- Key mathematical fact: exp(iθ) * exp(i(-θ)) = 1
  62  have hexp : exp (I * θ) * exp (I * ↑(-θ)) = 1 := by
  63    rw [← Complex.exp_add]
  64    simp only [ofReal_neg, mul_neg, add_neg_cancel, Complex.exp_zero]
  65  -- Therefore z * exp(iθ) * exp(i(-θ)) = z for all z
  66  have hcancel : ∀ z : ℂ, z * exp (I * θ) * exp (I * ↑(-θ)) = z := fun z => by
  67    calc z * exp (I * θ) * exp (I * ↑(-θ))
  68        = z * (exp (I * θ) * exp (I * ↑(-θ))) := by ring
  69      _ = z * 1 := by rw [hexp]
  70      _ = z := by ring
  71  -- The composed map is the identity, so s2.map(·*exp(-iθ)) = s1.map(id) = s1
  72  rw [hθ, List.map_map]
  73  -- List extensionality: show each element is unchanged
  74  apply List.ext_getElem
  75  · simp only [List.length_map]