Infinitary Logic #
This library formalizes infinitary logic, including:
- L∞ω: Infinitary logic with arbitrary conjunctions/disjunctions
- Lω₁ω: Countable infinitary logic (countable conjunctions/disjunctions)
- Scott sentences and Scott rank for characterizing countable structures
Main Results #
- Every countable structure in a relational countable language has a Scott sentence that characterizes it up to isomorphism.
- The Scott rank of a countable structure is a countable ordinal (< ω₁).
- L∞ω is the union of all Lκω for cardinals κ; Lω₁ω = L(ℵ₁)ω.
The unconditional API is recovered via countableRefinementHypothesis (proved in
Scott/RefinementCount.lean). Conditional _of variants taking
CountableRefinementHypothesis as a hypothesis are also available.
Import Bundles #
import InfinitaryLogic loads the sorry-free surface (InfinitaryLogic.All).
For narrower entry points:
InfinitaryLogic.Core: syntax, semantics, Scott analysis, Karp's theoremInfinitaryLogic.Countable: model existence, Löwenheim-Skolem, Hanf, counting, EM chainInfinitaryLogic.Admissible: admissible fragments, Barwise compactness, proof systemInfinitaryLogic.Descriptive: descriptive set theory of model classesInfinitaryLogic.Conditional: the Silver chain and the Morley–Hanf chain (both proved; the directory name is historical)InfinitaryLogic.Everything: everything includingConditional/and the legacy off-path modules (not sorry-free)
Organization #
L∞ω (Linf/) #
Linf/Syntax.lean: Syntax of L∞ω formulas with arbitrary index typesLinf/Semantics.lean: Semantics (Realize)Linf/Operations.lean: Operations (relabel, castLE, subst, FO embedding)Linf/Countability.lean: IsCountable and IsKappa predicates
Lω₁ω (Lomega1omega/) #
Lomega1omega/Syntax.lean: Syntax of Lω₁ω formulas with ℕ-indexed connectivesLomega1omega/Semantics.lean: Semantics (Realize)Lomega1omega/Operations.lean: Operations (relabel, castLE, subst)Lomega1omega/Embedding.lean: Embeddings between Lω₁ω and L∞ω
Scott sentences (Scott/) #
Scott/AtomicDiagram.lean: Atomic types for relational languagesScott/BackAndForth.lean: Back-and-forth equivalenceScott/Formula.lean: Scott formula constructionScott/Code.lean: LEGACY/off-path countable formula codes (FormulaCode; the Scott pipeline is decoupled from this bridge — kept for its public API, reachable viaEverythingonly)Scott/Sentence.lean: Scott sentence and characterization theorem (_ofvariants)Scott/RefinementCount.lean: CRH theorem + unconditional Sentence-level wrappersScott/Rank.lean: Scott rank definition and boundsScott/QuantifierRank.lean: Quantifier rank bounds on Scott formulasScott/Height.lean: Scott height, canonical Scott sentence, sr/SR
Karp's theorem (Karp/) #
Karp/PotentialIso.lean: Potential isomorphism definitionKarp/Theorem.lean: Karp's theorem (potential iso ↔ L∞ω-equivalence)Karp/CountableCorollary.lean: Countable structures corollary
Methods (Methods/) #
Methods/Henkin/ConsistencyProperty.lean: Consistency property axioms (C0)-(C7)Methods/Henkin/Construction.lean: Henkin construction infrastructure (maximal consistent sets)Methods/Henkin/ModelExistence.lean: Model existence theoremMethods/Henkin/Completeness.lean: Karp completeness and omitting typesMethods/Henkin/SatisfiableConsistencyProperty.lean: ConsistencyPropertyEq from model + naming functionMethods/EM/Indiscernible.lean: Lω₁ω-indiscernible sequences API (restrict, reindex, pair/unary invariance)Methods/EM/Template.lean: Ehrenfeucht–Mostowski templates — bridge between indiscernible sequences and EM stretchingMethods/EM/Realization.lean: template → L[[J]]-theory bridge; finite satisfiability oftemplateTheory h.template Jin the source indiscernibleMethods/EM/Extraction.lean: extraction of indiscernible sequences (Ramsey side of the EM chain)Methods/EM/FragmentAdapter.lean: admissible-fragment adapter theorems (_of_fragment,_of_fullFragment,_of_compact; imported by theAdmissiblebundle)Methods/TailIndiscernible.lean: neutral bare definition ofIsLomega1omegaIndiscernibleOnTail(EM-free, shared byTailAdapterand the localEMContextre-base)Methods/EM/TailAdapter.lean: tail-indiscernibility variants (tail templates, finite satisfiability, stretching) built on the neutralIsLomega1omegaIndiscernibleOnTail- WIP frontier (non-default
InfinitaryLogicWIPtarget, excluded fromAll/Everything):Methods/Skolem.lean,Methods/SkolemColimit.lean,Methods/SkolemClosure.lean(theskolemStage/skolemColimtower and the countable staged familyΓ*),Methods/EMTermModel.lean(EM term model, staged truth lemmatruthLemmaStage),Methods/LocalEMSupport.lean,Methods/LocalSkolem.lean,Methods/LocalTower.lean,Methods/LocalColimit.lean,Methods/LocalEMFamily.lean,Methods/LocalEMExtraction.lean,Methods/LocalEMContext.lean,Methods/LocalEMTruth.lean(countable family-restricted re-base: shared generic support,localSkolem, theLlocal/Γlocaltower withskolemNeed, the countable colimitlocalColimwith cocone andΓlocalColim, the countable atom/deForm familyΓEMlocal, the tail-extraction bridge, the generic deep-interpretation semantic layer, theLocalEMEqquotient carrier +Λ[[J]]-Structure(LocalEMContext), the concrete instantiationexists_localEMContext, and the local Skolem-witness transportLocalEMTruth)
Model theory (ModelTheory/) #
ModelTheory/LowenheimSkolem.lean: Downward Löwenheim-Skolem for Lω₁ωModelTheory/Hanf.lean: Hanf numbers; the Morley-Hanf bound itself ismorley_hanfinConditional/MorleyHanfSchemaDischarge.leanModelTheory/HanfSpectrum.lean(+HanfSpectrum/): the sharpness half — bounded-spectrum witnesses (countable spectrum, powerset, the Exercise 5.3 beth ladder over the von Neumann hierarchy) and the exact Hanf numberLomega1omegaHanfNumber_eq_beth_omega1ModelTheory/InfinitaryTypes.lean/ModelTheory/SmallModels.lean: complete infinitary types, smallness, and the small-model theoremexists_small_model_of_hasArbLargeModels(Marker Thm 11.2; engine inMethods/LocalEM*,Methods/HighlyTransitive*,Methods/UniformCollapse.lean)ModelTheory/CountingModels.lean: Scott rank and model countingModelTheory/CountingCountable.lean: Counting theorem for all countable modelsModelTheory/MorleyCounting.lean: Morley's counting theorem (≤ ℵ₁ or 2^ℵ₀)
Admissible sets (Admissible/) #
Admissible/Fragment.lean:AdmissibleFragmentCore(closure properties) +FiniteCompactFragment(core + finite-subset compactness)Admissible/Barwise/Data.lean:BarwiseCompactnessData— literature-faithful Barwise compactness interface with A-coded subtheoriesAdmissible/Barwise/ProofSystem.lean: Derivability in admissible-fragment proof systemAdmissible/Barwise/Soundness.lean: Soundness of the proof systemAdmissible/Barwise/ConsistencyBridge.lean: Bridge from AConsistent to ConsistencyPropertyEqAdmissible/WithConstants.lean:admissibleFragmentOfUniv— admissible fragment from a bare compactness hypothesisAdmissible/Compactness.lean: Barwise compactness and completenessAdmissible/Nadel.lean: Nadel bound on Scott height
Descriptive set theory (Descriptive/) #
Descriptive/StructureSpace.lean: Coding space for countable structures on ℕDescriptive/Measurable.lean: Measurable space structure on the coding spaceDescriptive/Topology.lean: Topological structure on the coding spaceDescriptive/Polish.lean: Polish space and standard Borel space instancesDescriptive/SatisfactionBorel.lean: Borel complexity of Lω₁ω satisfactionDescriptive/BFEquivBorel.lean: Borel complexity of BF-equivalenceDescriptive/IsomorphismBorel.lean: Isomorphism is Borel under bounded Scott heightDescriptive/ModelClassStandardBorel.lean: Model classes are standard BorelDescriptive/CountingDichotomy.lean: Conditional counting dichotomy (Silver–Burgess)Descriptive/SatisfactionBorelOn.lean: Generic satisfaction measurability for carrier-parametric spacesDescriptive/FiniteCarrier.lean: Finite-carrier counting via permutation orbits; combined dichotomyDescriptive/CantorAntichain.lean: Cantor-scheme antichain extraction (completeness-free core)Descriptive/Mycielski.lean: Mycielski's theoremDescriptive/KuratowskiUlam.lean: Kuratowski–UlamDescriptive/GSGraph.lean: theG_SgraphsDescriptive/G0Dichotomy.lean: the classical G₀ dichotomyDescriptive/G0Fusion.lean: G₀ fusion machinery
Combinatorics (Combinatorics/) #
Combinatorics/InfiniteRamsey.lean: n-ary infinite Ramsey on ℕ (infinite_ramsey_nat_arity)Combinatorics/InfiniteRamseyFamily.lean: family/diagonal version (infinite_ramsey_nat_family) — a finished reusable result; no longer on themorley_hanfroute (injective sequences are already seed-indiscernible)Combinatorics/PairErdosRadoGeneral.lean,Combinatorics/EndHomogeneousErdosRado.lean,Combinatorics/FiniteArityErdosRadoInduction.lean: the bounded finite-arity Erdős–Rado chain (finiteArityHomogeneousUpTo_beth_stage) — the combinatorial engine ofmorley_hanf's Marker certification (on theInfinitaryLogicWIPtarget and the endpoint's dependency cone)- the exploratory all-arities ladder
Combinatorics/ErdosRado.lean(false target in ZFC) is preserved on thearchive/legacy-erdos-radobranch, not in the tree
Conditional (Conditional/) #
Conditional/MorleyHanfTransfer.lean: the Morley–Hanf reduction chain (historical conditional forms; extraction side discharged bymorleyHanfExtractionTail_holds)Conditional/MorleyHanfSchemaDischarge.lean:MorleySeedTailTemplateRealizableproved via the schema completion; the unconditional endpointmorley_hanfConditional/SilverBurgess.lean: Silver–Burgess dichotomy (sorry-free)Conditional/GandyHarrington.lean: Silver-for-Borel via Gandy–Harrington-style core (gandy_harrington_for_relation, sorry-free, axiom-clean)Conditional/SilverCategoryRoute.lean: Silver's theorem via Miller's classical category route (Mycielski + KU + G₀ fusion)