theorem
proved
protocolFalsifiable_all
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Foundation.OptionAEmpiricalProtocol on GitHub at line 42.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
all -
all -
all -
A -
ProtocolFalsifiable -
CombinationID -
datasetClass -
failureMode -
predictedObservable -
A -
A -
all
used by
formal source
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
69 intro a b h
70 apply datasetClass_injective
71 exact congrArg ProtocolSpec.dataset h
72