Lω₁ω Syntax #
This file defines the syntax of the infinitary logic Lω₁ω, which extends first-order logic with countable conjunctions and disjunctions.
Main Definitions #
FirstOrder.Language.BoundedFormulaω: The type of Lω₁ω formulas with free variables inαand bound variables inFin n.FirstOrder.Language.Formulaω: Formulas with no bound variables.FirstOrder.Language.Sentenceω: Sentences (formulas with no free variables).
Implementation Notes #
The formulas are defined inductively with constructors for the standard first-order connectives
plus ℕ-indexed conjunction (iInf) and disjunction (iSup). The einf and esup variants
handle general countable indices via Encodable.
The derived connectives (and, or, ex) are defined classically via De Morgan laws.
This matches Mathlib's BoundedFormula conventions and ensures compatibility with
classical semantics.
Lω₁ω bounded formulas: first-order formulas extended with countable conjunctions and
disjunctions. BoundedFormulaω L α n has free variables indexed by α and n bound variables.
- falsum
{L : Language}
{α : Type u'}
{n : ℕ}
: L.BoundedFormulaω α n
The false formula.
- equal
{L : Language}
{α : Type u'}
{n : ℕ}
(t₁ t₂ : L.Term (α ⊕ Fin n))
: L.BoundedFormulaω α n
Equality of two terms.
- rel
{L : Language}
{α : Type u'}
{n l : ℕ}
(R : L.Relations l)
(ts : Fin l → L.Term (α ⊕ Fin n))
: L.BoundedFormulaω α n
A relation applied to terms.
- imp
{L : Language}
{α : Type u'}
{n : ℕ}
(φ ψ : L.BoundedFormulaω α n)
: L.BoundedFormulaω α n
Implication between formulas.
- all
{L : Language}
{α : Type u'}
{n : ℕ}
(φ : L.BoundedFormulaω α (n + 1))
: L.BoundedFormulaω α n
Universal quantification.
- iSup
{L : Language}
{α : Type u'}
{n : ℕ}
(φs : ℕ → L.BoundedFormulaω α n)
: L.BoundedFormulaω α n
ℕ-indexed disjunction (supremum). Use
esupfor general countable indices. - iInf
{L : Language}
{α : Type u'}
{n : ℕ}
(φs : ℕ → L.BoundedFormulaω α n)
: L.BoundedFormulaω α n
ℕ-indexed conjunction (infimum). Use
einffor general countable indices.
Instances For
Lω₁ω formulas with no bound variables in scope.
Equations
- L.Formulaω α = L.BoundedFormulaω α 0
Instances For
Equations
The true formula, defined as ¬⊥.
Equations
Instances For
Negation of a formula.
Instances For
Conjunction of two formulas, defined via De Morgan.
Instances For
Disjunction of two formulas.
Instances For
Existential quantification.
Instances For
Biconditional between formulas.
Instances For
Indexed conjunction over any Encodable type. This extends iInf from ℕ-indexed
to general countable indices by encoding.
Equations
- FirstOrder.Language.BoundedFormulaω.einf φs = FirstOrder.Language.BoundedFormulaω.iInf fun (k : ℕ) => match Encodable.decode k with | some i => φs i | none => ⊤
Instances For
Indexed disjunction over any Encodable type. This extends iSup from ℕ-indexed
to general countable indices by encoding.
Equations
- FirstOrder.Language.BoundedFormulaω.esup φs = FirstOrder.Language.BoundedFormulaω.iSup fun (k : ℕ) => match Encodable.decode k with | some i => φs i | none => ⊥
Instances For
Equations
- Lomega1omega.«term_⟹ω_» = Lean.ParserDescr.trailingNode `Lomega1omega.«term_⟹ω_» 62 63 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⟹ω ") (Lean.ParserDescr.cat `term 62))
Instances For
Equations
- Lomega1omega.«term∀'ω_» = Lean.ParserDescr.node `Lomega1omega.«term∀'ω_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∀'ω ") (Lean.ParserDescr.cat `term 110))
Instances For
Equations
- Lomega1omega.«term∼ω_» = Lean.ParserDescr.node `Lomega1omega.«term∼ω_» 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∼ω") (Lean.ParserDescr.cat `term 1023))
Instances For
Equations
- Lomega1omega.«term∃'ω_» = Lean.ParserDescr.node `Lomega1omega.«term∃'ω_» 110 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∃'ω ") (Lean.ParserDescr.cat `term 110))
Instances For
Equations
- Lomega1omega.«term_⇔ω_» = Lean.ParserDescr.trailingNode `Lomega1omega.«term_⇔ω_» 61 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇔ω ") (Lean.ParserDescr.cat `term 62))