def
definition
physicallyEquivalent
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.QFT.GaugeInvariance on GitHub at line 45.
browse module
All declarations in this module, on Recognition.
explainer page
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]