theorem
proved
mp_holds
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Recognition on GitHub at line 19.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
16/-- MP: It is impossible for Nothing to recognize itself. -/
17def MP : Prop := ¬ ∃ _ : Recognize Nothing Nothing, True
18
19theorem mp_holds : MP := by
20 intro h
21 rcases h with ⟨⟨r, _⟩, _⟩
22 cases r
23
24/-- Alias used in the manuscript: "Nonexistence cannot recognize itself." -/
25abbrev NothingCannotRecognizeItself : Prop := MP
26
27/-- Direct alias proof of MP for the manuscript phrasing. -/
28theorem nothing_cannot_recognize_itself : NothingCannotRecognizeItself :=
29 mp_holds
30
31structure RecognitionStructure where
32 U : Type
33 R : U → U → Prop
34
35structure Chain (M : RecognitionStructure) where
36 n : Nat
37 f : Fin (n+1) → M.U
38 ok : ∀ i : Fin n, M.R (f i.castSucc) (f i.succ)
39
40namespace Chain
41variable {M : RecognitionStructure} (ch : Chain M)
42def head : M.U := by
43 have hpos : 0 < ch.n + 1 := Nat.succ_pos _
44 exact ch.f ⟨0, hpos⟩
45def last : M.U := by
46 have hlt : ch.n < ch.n + 1 := Nat.lt_succ_self _
47 exact ch.f ⟨ch.n, hlt⟩
48end Chain
49