Documentation

Cslib.Logics.Propositional.Defs

Propositions and theories #

Main definitions #

Notation #

We introduce notation for the logical connectives: ⊥ ⊤ ∧ ∨ → ¬ for, respectively, falsum, verum, conjunction, disjunction, implication and negation.

inductive Cslib.Logic.PL.Proposition (Atom : Type u) :

Propositions.

Instances For
    def Cslib.Logic.PL.instDecidableEqProposition.decEq {Atom✝ : Type u_1} [DecidableEq Atom✝] (x✝ x✝¹ : Proposition Atom✝) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      @[implicit_reducible]
      instance Cslib.Logic.PL.instBEqProposition {Atom✝ : Type u_1} [BEq Atom✝] :
      BEq (Proposition Atom✝)
      Equations
      @[implicit_reducible]
      instance Cslib.Logic.PL.instInhabitedOfBot {Atom : Type u} [Bot Atom] :
      Equations
      @[reducible, inline]
      abbrev Cslib.Logic.PL.Proposition.neg {Atom : Type u} [Bot Atom] :
      Proposition AtomProposition Atom

      We view negation as a defined connective ~A := A → ⊥

      Equations
      Instances For
        @[reducible, inline]

        A fixed choice of a derivable proposition (of course any two are equivalent).

        Equations
        Instances For

          We view negation as a defined connective ~A := A → ⊥

          Equations
          Instances For
            @[implicit_reducible]
            Equations
            • One or more equations did not get rendered due to their size.
            @[reducible, inline]
            abbrev Cslib.Logic.PL.Theory (Atom : Type u_1) :
            Type u_1

            Theories are arbitrary sets of propositions.

            Equations
            Instances For
              def Cslib.Logic.PL.Theory.subst {Atom Atom' : Type u} (T : Theory Atom) (f : AtomProposition Atom') :
              Theory Atom'

              Extend a substitution from Proposition to Theory.

              Equations
              Instances For
                @[implicit_reducible]
                Equations
                @[reducible, inline]
                abbrev Cslib.Logic.PL.Theory.MPL {Atom : Type u} :
                Theory Atom

                The empty theory corresponds to minimal propositional logic.

                Equations
                Instances For
                  @[reducible, inline]
                  abbrev Cslib.Logic.PL.Theory.IPL {Atom : Type u} [Bot Atom] :
                  Theory Atom

                  Intuitionistic propositional logic adds the principle of explosion (ex falso quodlibet).

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev Cslib.Logic.PL.Theory.CPL {Atom : Type u} [Bot Atom] :
                    Theory Atom

                    Classical logic further adds double negation elimination.

                    Equations
                    Instances For
                      class Cslib.Logic.PL.Theory.IsIntuitionistic {Atom : Type u} [Bot Atom] (T : Theory Atom) :

                      A theory is intuitionistic if it validates ex falso quodlibet.

                      Instances
                        class Cslib.Logic.PL.Theory.IsClassical {Atom : Type u} [Bot Atom] (T : Theory Atom) :

                        A theory is classical if it validates double-negation elimination.

                        Instances
                          theorem Cslib.Logic.PL.Theory.instIsClassicalExtention {Atom : Type u} [Bot Atom] {T T' : Theory Atom} [T.IsClassical] (h : T T') :
                          @[reducible]

                          Attach a bottom element to a theory T, and the principle of explosion for that bottom.

                          Equations
                          Instances For