Documentation

TauCeti.ModelTheory.Infinitary.Satisfiability

Satisfiability and entailment of L_{ω₁ω} theories #

An L_{ω₁ω} theory is satisfiable when it has a nonempty model, and it entails a sentence when every nonempty model of the theory satisfies the sentence. As in Mathlib's first-order Theory.IsSatisfiable and Theory.ModelsBoundedFormula, both notions quantify over models in the fixed universe max u v of a language L : Language.{u, v}. Any nonempty model that is small in that universe, in particular any countable model, witnesses satisfiability and satisfies every entailed sentence.

Entailment is reflexive, monotone and transitive, admits cut, and is refutation of the negated conclusion. An entailed ¬ ∀ x, φ x yields the entailed ∃ x, ¬ φ x. A countable theory entails exactly what the conjunction of its sentences entails, so the entailments of a countable theory are entailments between two sentences. For first-order theories and sentences, embedded into L_{ω₁ω} by BoundedFormula.toOmega, satisfiability and entailment agree with Mathlib's first-order notions.

Main definitions #

Main results #

References #

A theory is satisfiable when it has a nonempty model in the universe max u v, the model universe of Mathlib's first-order Theory.IsSatisfiable.

Instances For

    A theory entails a sentence when every nonempty model of the theory in the universe max u v satisfies the sentence, as in Mathlib's first-order Theory.ModelsBoundedFormula.

    Instances For

      Unfolding lemma for Theoryω.IsSatisfiable.

      theorem FirstOrder.Language.Theoryω.entails_iff {L : Language} {T : L.Theoryω} {φ : L.Sentenceω} :
      T.Entails φ ↔ ∀ (M : Type (max u v)) [inst : L.Structure M] [Nonempty M], T.Model M → SentenceInf.Realize φ M

      Unfolding lemma for Theoryω.Entails.

      Satisfiability #

      A nonempty model of a theory that is small in the universe max u v, for instance a countable model in any universe, witnesses the satisfiability of the theory.

      A subtheory of a satisfiable theory is satisfiable.

      @[simp]

      The empty theory is satisfiable.

      Entailment #

      theorem FirstOrder.Language.Theoryω.entails_of_mem {L : Language} {T : L.Theoryω} {φ : L.Sentenceω} (h : φ ∈ T) :
      T.Entails φ

      A theory entails each of its sentences.

      theorem FirstOrder.Language.Theoryω.Entails.mono {L : Language} {T T' : L.Theoryω} {φ : L.Sentenceω} (h : T.Entails φ) (hT : T ⊆ T') :
      T'.Entails φ

      Entailment is monotone in the theory.

      theorem FirstOrder.Language.Theoryω.Model.of_entails {L : Language} {T T' : L.Theoryω} {M : Type (max u v)} [L.Structure M] [Nonempty M] (hM : T.Model M) (hT : ∀ ψ ∈ T', T.Entails ψ) :
      T'.Model M

      A nonempty model of T in the universe max u v is a model of every theory whose sentences T entails.

      theorem FirstOrder.Language.Theoryω.Entails.trans {L : Language} {T T' : L.Theoryω} {φ : L.Sentenceω} (h : T'.Entails φ) (hT : ∀ ψ ∈ T', T.Entails ψ) :
      T.Entails φ

      Transitivity of entailment. If T entails every sentence of T', then T entails every sentence that T' entails.

      theorem FirstOrder.Language.Theoryω.Entails.cut {L : Language} {T : L.Theoryω} {φ ψ : L.Sentenceω} (hψ : T.Entails ψ) (h : (insert ψ T).Entails φ) :
      T.Entails φ

      Cut. A sentence entailed by a theory may be used as an additional hypothesis.

      A theory entailing ¬ ∀ x, φ x entails ∃ x, ¬ φ x.

      Entailment is refutation. A theory entails a sentence exactly when the theory together with the negation of the sentence is unsatisfiable. This is the L_{ω₁ω} form of Mathlib's Theory.models_iff_not_satisfiable.

      A sentence entailed by a theory holds in every nonempty model of the theory that is small in the universe max u v, for instance in every countable model in any universe.

      A theory is satisfiable exactly when it does not entail the false sentence.

      @[simp]
      theorem FirstOrder.Language.Theoryω.entails_conjunction_iff {L : Language} {T T' : L.Theoryω} (hT' : Set.Countable T') :
      T.Entails (T'.conjunction hT') ↔ ∀ ψ ∈ T', T.Entails ψ

      A theory entails the conjunction of a countable theory exactly when it entails each of its sentences.

      Entailment between sentences #

      A sentence entails another when the theory consisting of the first sentence entails the second: every nonempty model of φ in the universe max u v satisfies ψ.

      Instances For

        Entailment between sentences is entailment by the singleton theory.

        theorem FirstOrder.Language.Sentenceω.entails_iff {L : Language} {φ ψ : L.Sentenceω} :
        φ.Entails ψ ↔ ∀ (M : Type (max u v)) [inst : L.Structure M] [Nonempty M], SentenceInf.Realize φ M → SentenceInf.Realize ψ M

        A sentence entails another when every nonempty model of the first in the universe max u v satisfies the second.

        Every sentence entails itself.

        theorem FirstOrder.Language.Sentenceω.Entails.trans {L : Language} {φ ψ χ : L.Sentenceω} (h₁ : φ.Entails ψ) (h₂ : ψ.Entails χ) :
        φ.Entails χ

        Entailment between sentences is transitive.

        A countable theory entails what its conjunction entails. This reduces the entailments of a countable theory to entailments between two sentences.

        Agreement with first-order satisfiability and entailment #

        @[simp]

        The image of a first-order theory in L_{ω₁ω} is satisfiable exactly when the first-order theory is satisfiable in the sense of Mathlib's Theory.IsSatisfiable.

        @[simp]

        The image of a first-order theory in L_{ω₁ω} entails the image of a first-order sentence exactly when the first-order theory models the sentence in the sense of Mathlib's Theory.ModelsBoundedFormula.

        @[simp]

        Entailment between the images of two first-order sentences in L_{ω₁ω} is first-order entailment in the sense of Mathlib's Theory.ModelsBoundedFormula.