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

uniqueProtocolSpec

proved
show as:
view math explainer →
module
IndisputableMonolith.Foundation.OptionAEmpiricalProtocol
domain
Foundation
line
58 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Foundation.OptionAEmpiricalProtocol on GitHub at line 58.

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

  55  simp [ProtocolMatches, protocolSpec]
  56
  57/-- Each implemented combination has a unique empirical protocol record. -/
  58theorem uniqueProtocolSpec (c : CombinationID) :
  59    ∃! p : ProtocolSpec, ProtocolMatches c p := by
  60  refine ⟨protocolSpec c, protocolSpec_matches c, ?_⟩
  61  intro p hp
  62  rcases p with ⟨d, o, f⟩
  63  rcases hp with ⟨hd, ho, hf⟩
  64  simp [protocolSpec] at hd ho hf ⊢
  65  exact ⟨hd, ho, hf⟩
  66
  67/-- Distinct combinations have distinct protocol records. -/
  68theorem protocolSpec_injective : Function.Injective protocolSpec := by
  69  intro a b h
  70  apply datasetClass_injective
  71  exact congrArg ProtocolSpec.dataset h
  72
  73/-- Equality of empirical protocols is exactly equality of combinations. -/
  74theorem protocolSpec_eq_iff (a b : CombinationID) :
  75    protocolSpec a = protocolSpec b ↔ a = b := by
  76  constructor
  77  · intro h
  78    exact protocolSpec_injective h
  79  · intro h
  80    rw [h]
  81
  82/-- Distinct combinations have distinct complete empirical protocols. -/
  83theorem protocolSpec_ne_of_ne {a b : CombinationID} (h : a ≠ b) :
  84    protocolSpec a ≠ protocolSpec b := by
  85  intro hp
  86  exact h (protocolSpec_injective hp)
  87
  88theorem c1_c3_protocol_distinct :