structure
definition
AbsoluteFloorWitness
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Foundation.AbsoluteFloorClosure on GitHub at line 25.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
22open SpecifiabilityClosure
23
24/-- A fully named absolute-floor witness for a universe of discourse `K`. -/
25structure AbsoluteFloorWitness (K : Type*) [Nonempty K] : Prop where
26 meta_distinguishes : ∃ P Q : Prop, P ≠ Q
27 nontrivial_specifiable : Nonempty (NontrivialSpecification K)
28
29/-- The absolute-floor witness forces bare distinguishability. -/
30theorem bare_distinguishability_of_absolute_floor
31 {K : Type*} [Nonempty K] (h : AbsoluteFloorWitness K) :
32 ∃ x y : K, x ≠ y :=
33 (distinguishability_iff_nontrivial_specifiability).mpr h.nontrivial_specifiable
34
35/-- Conversely, bare distinguishability supplies the non-trivial
36specification part of the absolute-floor witness, while the meta-language
37part is theorem-backed by Route A. -/
38theorem absolute_floor_of_bare_distinguishability
39 {K : Type*} [Nonempty K] (h : ∃ x y : K, x ≠ y) :
40 AbsoluteFloorWitness K where
41 meta_distinguishes := meta_language_distinguishes_props
42 nontrivial_specifiable :=
43 (distinguishability_iff_nontrivial_specifiability).mp h
44
45/-- Bare distinguishability and the absolute-floor witness are equivalent on
46an inhabited carrier. -/
47theorem absolute_floor_iff_bare_distinguishability
48 {K : Type*} [Nonempty K] :
49 AbsoluteFloorWitness K ↔ ∃ x y : K, x ≠ y :=
50 ⟨bare_distinguishability_of_absolute_floor, absolute_floor_of_bare_distinguishability⟩
51
52/-- The minimal concrete carrier `Bool` realizes the absolute floor. -/
53theorem bool_absolute_floor : AbsoluteFloorWitness Bool :=
54 absolute_floor_of_bare_distinguishability ⟨false, true, bool_distinguishable⟩
55