Pith. sign in

IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.QuotientSelection

IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/QuotientSelection.lean · 119 lines · 12 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1/-
   2  PrimitiveRecognitionCalculus/QuotientSelection.lean
   3
   4  Phase 7 of the Delta-Native Analysis frontier: when is a permitted quotient
   5  physically forced?
   6
   7  Pure distinction does not identify distinct orbits; quotients are permitted but
   8  not native. Physics, by contrast, identifies states under symmetry: gauge
   9  equivalence, phase identification, charge sectors, projective Hilbert space. The
  10  bridge is recognition. A quotient becomes forced exactly when no admissible
  11  observable can distinguish the two states.
  12
  13  This module formalizes that. Given a family of observables on a state space, two
  14  states are observationally equivalent when every observable returns the same
  15  value on them. The physically forced quotient is the quotient by that relation.
  16
  17  What is proved:
  18
  19  * `ObsEquiv` is an equivalence relation (`obsSetoid`);
  20  * `forced_iff` : two states are identified in the quotient iff observationally
  21                   equivalent (the quotient is exactly the indistinguishability
  22                   collapse, nothing more, nothing less);
  23  * `observable_descends` : every admissible observable factors through the
  24                   quotient (the universal property: the quotient loses no
  25                   observable information);
  26  * `proj_injective_of_separating` : a separating observable family forces the
  27                   trivial quotient (no gauge), so gauge appears precisely when
  28                   observables fail to separate;
  29  * `gauge_from_indistinguishability` : the headline. Indistinguishability under
  30                   all admissible observables is exactly the physically forced
  31                   identification.
  32
  33  This is the Delta origin of gauge symmetry: the quotient is not primitive, it is
  34  forced by the absence of a distinguishing recognition act.
  35
  36  No project-local axioms. No sorry.
  37-/
  38
  39import Mathlib
  40
  41namespace IndisputableMonolith
  42namespace Foundation
  43namespace PrimitiveRecognitionCalculus
  44namespace QuotientSelection
  45
  46variable {X C : Type*}
  47
  48/-- Two states are observationally equivalent under the observable family `F`
  49when every observable in `F` returns the same value on them. -/
  50def ObsEquiv (F : Set (X → C)) (x y : X) : Prop := ∀ f ∈ F, f x = f y
  51
  52theorem obsEquiv_refl (F : Set (X → C)) (x : X) : ObsEquiv F x x := fun _ _ => rfl
  53
  54theorem obsEquiv_symm (F : Set (X → C)) {x y : X} (h : ObsEquiv F x y) : ObsEquiv F y x :=
  55  fun f hf => (h f hf).symm
  56
  57theorem obsEquiv_trans (F : Set (X → C)) {x y z : X}
  58    (hxy : ObsEquiv F x y) (hyz : ObsEquiv F y z) : ObsEquiv F x z :=
  59  fun f hf => (hxy f hf).trans (hyz f hf)
  60
  61/-- Observational equivalence packaged as a `Setoid`. -/
  62def obsSetoid (F : Set (X → C)) : Setoid X where
  63  r := ObsEquiv F
  64  iseqv := ⟨obsEquiv_refl F, obsEquiv_symm F, obsEquiv_trans F⟩
  65
  66/-- The physically forced quotient: the state space modulo indistinguishability. -/
  67abbrev PhysicalQuotient (F : Set (X → C)) : Type _ := Quotient (obsSetoid F)
  68
  69/-- The projection sending a state to its physical (gauge) class. -/
  70def proj (F : Set (X → C)) : X → PhysicalQuotient F := Quotient.mk (obsSetoid F)
  71
  72/-- **The quotient is exactly the indistinguishability collapse.** Two states map
  73to the same physical class iff no admissible observable separates them. The
  74forced quotient adds no identifications beyond indistinguishability and omits
  75none. -/
  76theorem forced_iff (F : Set (X → C)) (x y : X) :
  77    proj F x = proj F y ↔ ObsEquiv F x y :=
  78  Quotient.eq
  79
  80/-- **Universal property.** Every admissible observable descends to the quotient:
  81there is a function on physical classes agreeing with the observable on every
  82state. The quotient loses no observable information. -/
  83theorem observable_descends (F : Set (X → C)) (f : X → C) (hf : f ∈ F) :
  84    ∃ g : PhysicalQuotient F → C, ∀ x, g (proj F x) = f x := by
  85  refine ⟨Quotient.lift f (fun a b hab => hab f hf), ?_⟩
  86  intro x
  87  rfl
  88
  89/-- **No gauge from a separating family.** If the observable family separates
  90states, the projection is injective: the forced quotient is trivial. Gauge
  91identification appears precisely when the observables fail to separate. -/
  92theorem proj_injective_of_separating (F : Set (X → C))
  93    (hsep : ∀ x y, ObsEquiv F x y → x = y) : Function.Injective (proj F) := by
  94  intro x y h
  95  exact hsep x y ((forced_iff F x y).mp h)
  96
  97/-- Indistinguishable states are identified in the quotient. -/
  98theorem identified_of_obsEquiv (F : Set (X → C)) {x y : X} (h : ObsEquiv F x y) :
  99    proj F x = proj F y :=
 100  (forced_iff F x y).mpr h
 101
 102/-- **Phase 7 headline: gauge from indistinguishability.** The physically forced
 103quotient identifies two states iff no admissible observable distinguishes them
 104(`forced_iff`); every observable still descends to it (`observable_descends`); and
 105when observables separate, the quotient collapses to the identity
 106(`proj_injective_of_separating`). Quotient is not a native operation of
 107distinction; it is forced exactly by the absence of a distinguishing recognition
 108act. -/
 109theorem gauge_from_indistinguishability (F : Set (X → C)) :
 110    (∀ x y : X, proj F x = proj F y ↔ ObsEquiv F x y)
 111      ∧ (∀ f ∈ F, ∃ g : PhysicalQuotient F → C, ∀ x, g (proj F x) = f x)
 112      ∧ ((∀ x y, ObsEquiv F x y → x = y) → Function.Injective (proj F)) :=
 113  ⟨forced_iff F, fun f hf => observable_descends F f hf, proj_injective_of_separating F⟩
 114
 115end QuotientSelection
 116end PrimitiveRecognitionCalculus
 117end Foundation
 118end IndisputableMonolith
 119

source mirrored from github.com/jonwashburn/shape-of-logic