NF weak partition development: Flypitch4.Henkin.
Directed colimits of languages #
These are fieldwise (and then indexwise) colimits of types. For the Henkin construction, the directed type is always ℕ' (carrier = ℕ : Type 0), so we can use a single universe u for the language symbols.
Restrict to n-ary function family
Equations
Instances For
Restrict to n-ary relation family
Equations
Instances For
The colimit language
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical map from stage i into the colimit language
Equations
- NFChoice.Fol.canonicalMapLanguage i = { onFunction := fun {n : ℕ} => NFChoice.colimit.canonicalMap i, onRelation := fun {n : ℕ} => NFChoice.colimit.canonicalMap i }
Instances For
The colimit is itself a cocone
Equations
- NFChoice.Fol.coconeOfColimitLanguage F = { vertex := NFChoice.Fol.colimitLanguage F, map := NFChoice.Fol.canonicalMapLanguage, h_compat := ⋯ }
Instances For
The Henkin construction #
Inductive type of function symbols for one Henkin step.
inc embeds L-symbols; wit introduces witness constants.
- inc {L : Language} {n : ℕ} : L.functions n → HenkinLanguageFunctions L n
- wit {L : Language} : boundedFormula L 1 → HenkinLanguageFunctions L 0
Instances For
One Henkin step on languages
Equations
- NFChoice.Fol.henkinLanguageStep L = { functions := NFChoice.Fol.HenkinLanguageFunctions L, relations := L.relations }
Instances For
Flypitch construction wit', retained by the first-order soundness and completeness
development.
Instances For
Flypitch construction henkin_language_inclusion, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.henkinLanguageInclusion = { onFunction := fun {x : ℕ} (f : L.functions x) => NFChoice.Fol.HenkinLanguageFunctions.inc f, onRelation := fun {x : ℕ} => id }
Instances For
wit_property and henkin_theory_step #
The witnessing sentence: (∃ᵇf) → f[c/0]
Equations
Instances For
One Henkin step on theories
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Henkin extension of a consistent theory is consistent
Henkin language chain #
Objects of the Henkin language chain
Equations
Instances For
Transition maps of the Henkin language chain
Equations
- One or more equations did not get rendered due to their size.
- NFChoice.Fol.henkinLanguageChainMaps L x✝ 0 H = ⋯ ▸ NFChoice.Fol.Lhom.id (NFChoice.Fol.henkinLanguageChainObjects x✝)
Instances For
Functoriality of the Henkin language chain maps
The Henkin language chain as a directed diagram of languages
Equations
- NFChoice.Fol.henkinLanguageChain = { obj := NFChoice.Fol.henkinLanguageChainObjects, mor := fun {x y : ℕ} (H : x ≤ y) => NFChoice.Fol.henkinLanguageChainMaps L x y H, h_mor := ⋯ }
Instances For
The limit language L_∞ #
The colimit of the Henkin language chain
Instances For
Canonical inclusion L_m → L_∞
Instances For
Directed diagrams of terms and formulas #
Chain of preterms at level l
Equations
- One or more equations did not get rendered due to their size.
Instances For
Chain of preformulas at level l
Equations
- One or more equations did not get rendered due to their size.
Instances For
Chain of bounded preterms at bound n, level l
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction henkin_bounded_term_chain', retained by the first-order soundness
and completeness development.
Instances For
Chain of bounded preformulas at bound n, level l
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flypitch construction henkin_bounded_formula_chain', retained by the first-order soundness
and completeness development.
Instances For
Cocones with vertex L_∞ #
L_∞ is a cocone over the diagram of languages
Equations
Instances For
Cocone over the preterm chain with vertex preterm (L_∞ L) l
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cocone over the preformula chain with vertex @preformula (L_∞ L) l
Equations
- NFChoice.Fol.coconeOfFormulaLInfty l = { vertex := NFChoice.Fol.preformula l, map := fun (i : ℕ'.carrier) => (NFChoice.Fol.henkinLanguageCanonicalMap i).onFormula, h_compat := ⋯ }
Instances For
Cocone over the bounded term chain with vertex bounded_preterm (L_∞ L) n l
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cocone over the bounded formula chain (Task 16b, #
src/henkin.lean:452-499)
Cocone over the bounded preformula chain with vertex bounded_preformula (L_∞ L) n l
Equations
- One or more equations did not get rendered due to their size.
Instances For
bounded_formula (L_∞ L) 1 is naturally a cocone over the diagram of bounded_formulas
Equations
- One or more equations did not get rendered due to their size.
Instances For
Comparison maps (universal maps from colimits to L_∞) #
Flypitch construction term_comparison, retained by the first-order soundness and
completeness development.
Instances For
Flypitch construction formula_comparison, retained by the first-order soundness and
completeness development.
Instances For
Flypitch construction bounded_term_comparison, retained by the first-order soundness and
completeness development.
Instances For
Flypitch construction bounded_term'_comparison, retained by the first-order soundness and
completeness development.
Instances For
Flypitch construction bounded_formula_comparison, retained by the first-order soundness
and completeness development.
Instances For
Flypitch construction bounded_formula'_comparison, retained by the first-order soundness
and completeness development.
Instances For
Bijectivity of comparison maps (src/henkin.lean:508-655) #
Flypitch construction equiv_bounded_formula_comparison, retained by the first-order
soundness and completeness development.
Equations
Instances For
Henkin theory chain (src/henkin.lean:661-734) #
The Henkin theory chain: T_n = Henkin^n step applied to T
Equations
Instances For
has_enough_constants (from src/fol.lean:2482) #
A theory has enough constants if every bounded formula has a Henkin witness
Equations
- One or more equations did not get rendered due to their size.
Instances For
ι: pushing T_n into Theory L_∞ #
Given T_n from henkin_theory_chain, ι T_n is the expansion of T_n to an L_infty theory
Equations
Instances For
Monotonicity: ι is increasing (src/henkin.lean:736-751) #
T_infty: the henkinization (src/henkin.lean:753-774) #
T_infty is the henkinization of T; we define it to be the union ⋃ (n : ℕ), ι(T n).
Equations
- NFChoice.Fol.TInfty T = ⋃ (n : ℕ), NFChoice.Fol.ι n
Instances For
Flypitch construction henkin_language, retained by the first-order soundness and
completeness development.
Equations
Instances For
Flypitch construction henkin_language_over, retained by the first-order soundness and
completeness development.
Instances For
Flypitch construction henkinization, retained by the first-order soundness and
completeness development.
Equations
Instances For
wit_infty: find a Henkin witness in henkinization #
(src/henkin.lean:778-783)
Flypitch construction wit_infty, retained by the first-order soundness and completeness
development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
henkinization has enough constants #
(src/henkin.lean:785-831)
Directed union infrastructure (src/henkin.lean:833-874) #
For every n, T_n as a Theory_over (ι T 0)
Equations
- NFChoice.Fol.henkinTheoryOver T hT n = ⟨NFChoice.Fol.ι n, ⋯⟩
Instances For
Flypitch construction henkin_theory_schain, retained by the first-order soundness and
completeness development.
Equations
- NFChoice.Fol.henkinTheorySchain T hT = {T' : NFChoice.Fol.TheoryOver (NFChoice.Fol.ι 0) ⋯ | ∃ (k : ℕ), NFChoice.Fol.ι k = ↑T'}
Instances For
Completion of henkinization (src/henkin.lean:891-911) #
The core completion: henkinization extends to a complete consistent theory
Equations
Instances For
The completed henkinization theory
Equations
Instances For
The completed theory contains the henkinization
The completed theory is consistent
The completed theory is complete
The completed theory is Henkin
Helpers for the term model (ported from #
src/fol.lean:2445-2498)
If T is complete and T ⊢ₛ' f, then f ∈ T
If T is complete and T ⊬ₛ' f, then T ⊢ₛ' bd_not f
If T is complete, T ⊢ₛ' (bd_imp φ ψ) follows from (T ⊢ₛ' φ → T ⊢ₛ' ψ)
Given a complete Henkin theory, universal failure yields a counterexample
Term model construction (src/fol.lean:2500-2559) #
The term equality relation: t₁ ~ t₂ iff T ⊢ₛ' t₁ ≃ t₂
Equations
- NFChoice.Fol.term_rel T t₁ t₂ = T.sprovable (NFChoice.Fol.bd_equal t₁ t₂)
Instances For
The term equality setoid
Equations
- NFChoice.Fol.term_setoid T = { r := NFChoice.Fol.term_rel T, iseqv := ⋯ }
Instances For
The carrier of the term model: closed terms modulo provable equality
Equations
Instances For
The function interpretation helper for the term model
Equations
- NFChoice.Fol.term_model_fun' T t ts = Quotient.mk'' (NFChoice.Fol.bdApps t ts)
Instances For
Helper: term_model_fun' is compatible with term_rel on each argument
The function interpretation in the term model, using quotient_lift
Equations
- NFChoice.Fol.term_model_fun T t ts = NFChoice.DVec.quotientLift (NFChoice.Fol.term_model_fun' T t) ⋯ ts
Instances For
The relation interpretation helper
Equations
- NFChoice.Fol.term_model_rel' T f ts = T.sprovable (NFChoice.Fol.bdAppsRel f ts)
Instances For
Helper: term_model_rel' is compatible with term_rel on each argument
The relation interpretation in the term model
Equations
- NFChoice.Fol.term_model_rel T f ts = NFChoice.DVec.quotientLift (NFChoice.Fol.term_model_rel' T f) ⋯ ts
Instances For
Term model and main completeness theorem #
term_model of a complete Henkin theory (src/fol.lean:2559-2562)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Canonical quotient map from closed terms to the term model
Equations
Instances For
Realization in the term model (src/fol.lean:2568-2627) #
Structural recursion on a bounded_preformula L 0 l for the
term-model iff,
parameterized by an external IH on smaller quantifier-counts.
Implemented via direct structural pattern matching on `f` to
avoid issues
with `induction` on a non-variable index `n = 0`.
The term model satisfies T (src/fol.lean:2672)
The reduct of the term model of the complete henkinization satisfies T
Given ψ ∈ T, the term model satisfies ψ