def
definition
ProtocolFalsifiable
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Foundation.OptionAEmpiricalProtocol on GitHub at line 38.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
FailureMode -
CombinationID -
datasetClass -
DatasetClass -
failureMode -
FailureMode -
predictedObservable -
PredictedObservable -
FailureMode -
FailureMode
used by
formal source
35
36/-- A combination is protocol-falsifiable when it has a dataset class, a
37predicted observable, and a failure mode in the registry. -/
38def ProtocolFalsifiable (c : CombinationID) : Prop :=
39 ∃ d : DatasetClass, ∃ o : PredictedObservable, ∃ f : FailureMode,
40 datasetClass c = d ∧ predictedObservable c = o ∧ failureMode c = f
41
42theorem protocolFalsifiable_all (c : CombinationID) :
43 ProtocolFalsifiable c := by
44 unfold ProtocolFalsifiable
45 exact ⟨datasetClass c, predictedObservable c, failureMode c, rfl, rfl, rfl⟩
46
47/-- A concrete protocol record matches a combination when all three fields agree. -/
48def ProtocolMatches (c : CombinationID) (p : ProtocolSpec) : Prop :=
49 p.dataset = datasetClass c ∧
50 p.observable = predictedObservable c ∧
51 p.failure = failureMode c
52
53theorem protocolSpec_matches (c : CombinationID) :
54 ProtocolMatches c (protocolSpec c) := by
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