Documentation

Foundation.Logic.Semantics

Basic definitions and properties of semantics-related notions #

This file defines the semantics of formulas based on Tarski's truth definitions. Also provides 𝓜 characterization of compactness.

Main Definitions #

Notation #

class LO.Semantics (M : Type u_1) (F : outParam (Type u_2)) :
Type (max u_1 u_2)

Semantics M F denotes semantics of formulae F for models M`

  • Models : MFProp
Instances
    @[reducible, inline]
    abbrev LO.Semantics.NotModels {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) (φ : F) :

    The negation of 𝓜 ⊧ φ

    Equations
    Instances For

      Tarski's truth definitions #

      class LO.Semantics.Top (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] :

      Tarski's truth definition for .

      • models_verum (𝓜 : M) : 𝓜
      Instances
        class LO.Semantics.Bot (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] :

        Tarski's truth definition for .

        • models_falsum (𝓜 : M) : ¬𝓜
        Instances
          class LO.Semantics.And (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] :

          Tarski's truth definition for .

          Instances
            class LO.Semantics.Or (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] :

            Tarski's truth definition for .

            Instances
              class LO.Semantics.Imp (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] :

              Tarski's truth definition for 🡒.

              • models_imply {𝓜 : M} {φ ψ : F} : 𝓜 φ 🡒 ψ 𝓜 φ𝓜 ψ
              Instances
                class LO.Semantics.Not (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] :

                Tarski's truth definition for .

                Instances

                  Tarski's truth definitions.

                  Instances
                    @[simp]
                    theorem LO.Semantics.models_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {φ ψ : F} :
                    𝓜 φ 🡘 ψ (𝓜 φ 𝓜 ψ)
                    @[simp]
                    theorem LO.Semantics.models_list_conj {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {l : List F} :
                    𝓜 l.conj φl, 𝓜 φ
                    @[simp]
                    theorem LO.Semantics.models_list_conj₂ {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {l : List F} :
                    𝓜 l φl, 𝓜 φ
                    @[simp]
                    theorem LO.Semantics.models_list_conj' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {α : Type u_3} {l : List α} {ι : αF} :
                    𝓜 List.conj' ι l il, 𝓜 ι i
                    @[simp]
                    theorem LO.Semantics.models_finset_conj {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {s : Finset F} :
                    𝓜 s.conj φs, 𝓜 φ
                    @[simp]
                    theorem LO.Semantics.models_finset_conj' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {α : Type u_3} {s : Finset α} {ι : αF} :
                    𝓜 s.conj' ι is, 𝓜 ι i
                    @[simp]
                    theorem LO.Semantics.models_list_disj {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {l : List F} :
                    𝓜 l.disj φl, 𝓜 φ
                    @[simp]
                    theorem LO.Semantics.models_list_disj₂ {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {l : List F} :
                    𝓜 l φl, 𝓜 φ
                    @[simp]
                    theorem LO.Semantics.models_list_disj' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {α : Type u_3} {l : List α} {ι : αF} :
                    𝓜 List.disj' ι l il, 𝓜 ι i
                    @[simp]
                    theorem LO.Semantics.models_finset_disj {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {s : Finset F} :
                    𝓜 s.disj φs, 𝓜 φ
                    @[simp]
                    theorem LO.Semantics.models_finset_disj' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] {𝓜 : M} {α : Type u_3} {s : Finset α} {ι : αF} :
                    𝓜 s.disj' ι is, 𝓜 ι i

                    A semantics and satisfiability over a set of formulas #

                    class LO.Semantics.ModelsSet {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) (T : Set F) :

                    𝓜 ⊧* T denotes 𝓜 ⊧ φ for all φ in T.

                    • models_set φ : F : φ T𝓜 φ
                    Instances
                      def LO.Semantics.Valid (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] (φ : F) :
                      Equations
                      Instances For
                        def LO.Semantics.Satisfiable (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] (T : Set F) :
                        Equations
                        Instances For
                          def LO.Semantics.models (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] (T : Set F) :
                          Set M

                          A set of models satisfies set of formulae T.

                          Equations
                          Instances For
                            def LO.Semantics.theory {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                            Set F

                            A set of formulae satisfied by model 𝓜.

                            Equations
                            Instances For
                              class LO.Semantics.Meaningful {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                              • exists_unmodels : ∃ (φ : F), 𝓜 φ
                              Instances
                                instance LO.Semantics.instMeaningfulOfBot {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Semantics.Bot M] (𝓜 : M) :
                                theorem LO.Semantics.meaningful_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {𝓜 : M} :
                                Meaningful 𝓜 ∃ (φ : F), 𝓜 φ
                                theorem LO.Semantics.not_meaningful_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                                ¬Meaningful 𝓜 ∀ (φ : F), 𝓜 φ
                                theorem LO.Semantics.modelsSet_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {𝓜 : M} {T : Set F} :
                                𝓜 ⊧* T ∀ ⦃φ : F⦄, φ T𝓜 φ
                                @[simp]
                                theorem LO.Semantics.modelsTheory_theory {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                                𝓜 ⊧* theory 𝓜
                                @[simp]
                                theorem LO.Semantics.theory_satisfiable {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                                theorem LO.Semantics.not_satisfiable_finset {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] [DecidableEq F] (t : Finset F) :
                                ¬Satisfiable M t Valid M (Finset.image (fun (x : F) => x) t).disj
                                @[simp]
                                theorem LO.Semantics.satisfiable_conj₂ {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] [DecidableEq F] (l : List F) :
                                @[simp]
                                theorem LO.Semantics.satisfiable_fconj {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] [DecidableEq F] (s : Finset F) :
                                theorem LO.Semantics.satisfiableSet_iff_models_nonempty {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} :
                                theorem LO.Semantics.ModelsSet.models {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {φ : F} {T : Set F} (𝓜 : M) [𝓜 ⊧* T] (hf : φ T) :
                                𝓜 φ
                                theorem LO.Semantics.ModelsSet.of_subset {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T U : Set F} {𝓜 : M} (h : 𝓜 ⊧* U) (ss : T U) :
                                𝓜 ⊧* T
                                theorem LO.Semantics.ModelsSet.of_subset' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T U : Set F} {𝓜 : M} [𝓜 ⊧* U] (ss : T U) :
                                𝓜 ⊧* T
                                instance LO.Semantics.ModelsSet.empty' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                                𝓜 ⊧*
                                @[simp]
                                theorem LO.Semantics.ModelsSet.empty {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] (𝓜 : M) :
                                𝓜 ⊧*
                                @[simp]
                                theorem LO.Semantics.ModelsSet.singleton_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {φ : F} {𝓜 : M} :
                                𝓜 ⊧* {φ} 𝓜 φ
                                @[simp]
                                theorem LO.Semantics.ModelsSet.insert_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} {φ : F} {𝓜 : M} :
                                𝓜 ⊧* insert φ T 𝓜 φ 𝓜 ⊧* T
                                @[simp]
                                theorem LO.Semantics.ModelsSet.union_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T U : Set F} {𝓜 : M} :
                                𝓜 ⊧* T U 𝓜 ⊧* T 𝓜 ⊧* U
                                @[simp]
                                theorem LO.Semantics.ModelsSet.image_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {ι : Type u_3} {φ : ιF} {A : Set ι} {𝓜 : M} :
                                𝓜 ⊧* φ '' A iA, 𝓜 φ i
                                @[simp]
                                theorem LO.Semantics.ModelsSet.range_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {ι : Sort u_3} {φ : ιF} {𝓜 : M} :
                                𝓜 ⊧* Set.range φ ∀ (i : ι), 𝓜 φ i
                                @[simp]
                                theorem LO.Semantics.ModelsSet.setOf_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {P : FProp} {𝓜 : M} :
                                𝓜 ⊧* setOf P ∀ (φ : F), P φ𝓜 φ
                                theorem LO.Semantics.valid_neg_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Tarski M] (φ : F) :
                                theorem LO.Semantics.Satisfiable.of_subset {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T U : Set F} (h : Satisfiable M U) (ss : T U) :
                                @[implicit_reducible]
                                instance LO.Semantics.instSet (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] :
                                Equations
                                @[simp]
                                theorem LO.Semantics.empty_models (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] (φ : F) :
                                φ

                                Logical consequence

                                def LO.Semantics.Consequence (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] (T : Set F) (φ : F) :

                                The logical conseqence.

                                Equations
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    theorem LO.Semantics.set_models_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {φ : F} {s : Set M} :
                                    s φ 𝓜s, 𝓜 φ
                                    instance LO.Semantics.instTopSet {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [Semantics.Top M] :
                                    theorem LO.Semantics.set_meaningful_iff_nonempty {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [LogicalConnective F] [∀ (𝓜 : M), Meaningful 𝓜] {s : Set M} :
                                    theorem LO.Semantics.meaningful_iff_satisfiableSet {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} [LogicalConnective F] [∀ (𝓜 : M), Meaningful 𝓜] :
                                    theorem LO.Semantics.consequence_iff {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} {φ : F} :
                                    T ⊨[M] φ ∀ {𝓜 : M}, 𝓜 ⊧* T𝓜 φ
                                    theorem LO.Semantics.consequence_iff' {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} {φ : F} :
                                    T ⊨[M] φ ∀ (𝓜 : M) [𝓜 ⊧* T], 𝓜 φ
                                    theorem LO.Semantics.consequence_iff_not_satisfiable {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} [LogicalConnective F] [Tarski M] {φ : F} :
                                    T ⊨[M] φ ¬Satisfiable M (insert (φ) T)
                                    theorem LO.Semantics.weakening {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T U : Set F} {φ : F} (h : T ⊨[M] φ) (ss : T U) :
                                    U ⊨[M] φ
                                    theorem LO.Semantics.of_mem {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] {T : Set F} {φ : F} (h : φ T) :
                                    T ⊨[M] φ

                                    Compactness

                                    def LO.Cumulative {F : Type u_2} (T : Set F) :

                                    A cumulative sequence of sets.

                                    Equations
                                    Instances For
                                      theorem LO.Cumulative.subset_of_le {F : Type u_2} {T : Set F} (H : Cumulative T) {s₁ s₂ : } (h : s₁ s₂) :
                                      T s₁ T s₂
                                      theorem LO.Cumulative.finset_mem {F : Type u_2} {T : Set F} (H : Cumulative T) {u : Finset F} (hu : u ⋃ (s : ), T s) :
                                      ∃ (s : ), u T s
                                      class LO.Compact (M : Type u_1) {F : Type u_2} [𝓢 : Semantics M F] :

                                      A Semantics M F is compact if, for any set of formulas, the satisfiability of the set is equivalent to the satisfiability of every finite subset of it.

                                      Instances
                                        theorem LO.Compact.conseq_compact {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [Compact M] {T : Set F} [LogicalConnective F] [Semantics.Tarski M] [DecidableEq F] {φ : F} :
                                        T ⊨[M] φ ∃ (u : Finset F), u T u ⊨[M] φ
                                        theorem LO.Compact.compact_cumulative {M : Type u_1} {F : Type u_2} [𝓢 : Semantics M F] [Compact M] {T : Set F} (hT : Cumulative T) :
                                        Semantics.Satisfiable M (⋃ (s : ), T s) ∀ (s : ), Semantics.Satisfiable M (T s)