Documentation

LeanPool.Incompleteness.Foundation.Logic.LogicSymbol

Logic Symbols #

This file defines structure that has logical connectives $\top, \bot, \land, \lor, \to, \lnot$ and their homomorphisms.

Main Definitions #

class LO.Tilde (α : Type u_1) :
Type u_1

Imported declaration from the Incompleteness formalization.

  • tilde : αα

    Imported declaration from the Incompleteness formalization.

Instances
    class LO.Arrow (α : Type u_1) :
    Type u_1

    Imported declaration from the Incompleteness formalization.

    • arrow : ααα

      Imported declaration from the Incompleteness formalization.

    Instances
      class LO.Wedge (α : Type u_1) :
      Type u_1

      Imported declaration from the Incompleteness formalization.

      • wedge : ααα

        Imported declaration from the Incompleteness formalization.

      Instances
        class LO.Vee (α : Type u_1) :
        Type u_1

        Imported declaration from the Incompleteness formalization.

        • vee : ααα

          Imported declaration from the Incompleteness formalization.

        Instances
          class LO.LogicalConnective (α : Type u_1) extends Top α, Bot α, LO.Tilde α, LO.Arrow α, LO.Wedge α, LO.Vee α :
          Type u_1

          Imported declaration from the Incompleteness formalization.

          Instances

            Imported declaration from the Incompleteness formalization.

            Equations
            Instances For

              Imported declaration from the Incompleteness formalization.

              Equations
              Instances For

                Imported declaration from the Incompleteness formalization.

                Equations
                Instances For

                  Imported declaration from the Incompleteness formalization.

                  Equations
                  Instances For
                    class LO.DeMorgan (F : Type u_1) [LogicalConnective F] :

                    Imported declaration from the Incompleteness formalization.

                    Instances
                      class LO.NegAbbrev (F : Type u_1) [Tilde F] [Arrow F] [Bot F] :

                      Introducing ∼φ as an abbreviation of φ ==> ⊥.

                      Instances
                        @[match_pattern]
                        def LO.LogicalConnective.iff {α : Type u_1} [LogicalConnective α] (a b : α) :
                        α

                        Imported declaration from the Incompleteness formalization.

                        Equations
                        Instances For

                          Imported declaration from the Incompleteness formalization.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[reducible]
                            Equations
                            @[simp]
                            @[simp]
                            theorem LO.LogicalConnective.Prop.arrow_eq (φ ψ : Prop) :
                            φ ==> ψ = (φψ)

                            Imported declaration from the Incompleteness formalization.

                            @[simp]
                            theorem LO.LogicalConnective.Prop.and_eq (φ ψ : Prop) :
                            φ ψ = (φ ψ)
                            @[simp]
                            theorem LO.LogicalConnective.Prop.or_eq (φ ψ : Prop) :
                            φ ψ = (φ ψ)
                            @[simp]
                            theorem LO.LogicalConnective.Prop.iff_eq (φ ψ : Prop) :
                            φ <=> ψ = (φ ψ)
                            class LO.LogicalConnective.HomClass (F : Type u_1) (α : outParam (Type u_2)) (β : outParam (Type u_3)) [LogicalConnective α] [LogicalConnective β] [FunLike F α β] :

                            Imported declaration from the Incompleteness formalization.

                            • map_top (f : F) : f =
                            • map_bot (f : F) : f =
                            • map_neg (f : F) (φ : α) : f (φ) = f φ
                            • map_imply (f : F) (φ ψ : α) : f (φ ==> ψ) = f φ ==> f ψ
                            • map_and (f : F) (φ ψ : α) : f (φ ψ) = f φ f ψ
                            • map_or (f : F) (φ ψ : α) : f (φ ψ) = f φ f ψ
                            Instances
                              @[implicit_reducible]
                              instance LO.LogicalConnective.HomClass.instCoeFunForall (F : Type u_1) (α : outParam (Type u_2)) (β : outParam (Type u_3)) [FunLike F α β] :
                              CoeFun F fun (x : F) => αβ
                              Equations
                              @[simp]
                              theorem LO.LogicalConnective.HomClass.map_iff (F : Type u_1) (α : outParam (Type u_2)) (β : outParam (Type u_3)) [LogicalConnective α] [LogicalConnective β] [FunLike F α β] [HomClass F α β] (f : F) (a b : α) :
                              f (a <=> b) = f a <=> f b
                              structure LO.LogicalConnective.Hom (α : Type u_1) (β : Type u_2) [LogicalConnective α] [LogicalConnective β] :
                              Type (max u_1 u_2)

                              Imported declaration from the Incompleteness formalization.

                              Instances For

                                Imported declaration from the Incompleteness formalization.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[implicit_reducible]
                                  instance LO.LogicalConnective.Hom.instFunLike {α : Type u_1} {β : Type u_2} [LogicalConnective α] [LogicalConnective β] :
                                  FunLike (α →ˡᶜ β) α β
                                  Equations
                                  theorem LO.LogicalConnective.Hom.ext {α : Type u_1} {β : Type u_2} [LogicalConnective α] [LogicalConnective β] (f g : α →ˡᶜ β) (h : ∀ (x : α), f x = g x) :
                                  f = g
                                  theorem LO.LogicalConnective.Hom.ext_iff {α : Type u_1} {β : Type u_2} [LogicalConnective α] [LogicalConnective β] {f g : α →ˡᶜ β} :
                                  f = g ∀ (x : α), f x = g x

                                  Imported declaration from the Incompleteness formalization.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem LO.LogicalConnective.Hom.app_id {α : Type u_1} [LogicalConnective α] (a : α) :
                                    Hom.id a = a
                                    def LO.LogicalConnective.Hom.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [LogicalConnective α] [LogicalConnective β] [LogicalConnective γ] (g : β →ˡᶜ γ) (f : α →ˡᶜ β) :
                                    α →ˡᶜ γ

                                    Imported declaration from the Incompleteness formalization.

                                    Equations
                                    • g.comp f = { toTr := g f, map_top' := , map_bot' := , map_neg' := , map_imply' := , map_and' := , map_or' := }
                                    Instances For
                                      @[simp]
                                      theorem LO.LogicalConnective.Hom.app_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [LogicalConnective α] [LogicalConnective β] [LogicalConnective γ] (g : β →ˡᶜ γ) (f : α →ˡᶜ β) (a : α) :
                                      (g.comp f) a = g (f a)

                                      Imported declaration from the Incompleteness formalization.

                                      • verum : C
                                      • falsum : C
                                      • and {f g : F} : C fC gC (f g)
                                      • or {f g : F} : C fC gC (f g)
                                      Instances

                                        Imported declaration from the Incompleteness formalization.

                                        • and {f g : F} : C fC gC (f g)
                                        • or {f g : F} : C fC gC (f g)
                                        • not {f : F} : C fC (f)
                                        • imply {f g : F} : C fC gC (f ==> g)
                                        Instances
                                          class LO.Tilde.Subclosed {F : Type u_1} [Tilde F] (C : FProp) :

                                          Imported declaration from the Incompleteness formalization.

                                          • tilde_closed {φ : F} : C (φ)C φ
                                          Instances
                                            class LO.Arrow.Subclosed {F : Type u_1} [Arrow F] (C : FProp) :

                                            Imported declaration from the Incompleteness formalization.

                                            • arrow_closed {φ ψ : F} : C (φ ==> ψ)C φ C ψ
                                            Instances
                                              class LO.Wedge.Subclosed {F : Type u_1} [Wedge F] (C : FProp) :

                                              Imported declaration from the Incompleteness formalization.

                                              • wedge_closed {φ ψ : F} : C (φ ψ)C φ C ψ
                                              Instances
                                                class LO.Vee.Subclosed {F : Type u_1} [Vee F] (C : FProp) :

                                                Imported declaration from the Incompleteness formalization.

                                                • vee_closed {φ ψ : F} : C (φ ψ)C φ C ψ
                                                Instances

                                                  Imported declaration from the Incompleteness formalization.

                                                  Instances
                                                    def LO.conjLt {α : Type u_1} [LogicalConnective α] (φ : α) :
                                                    α

                                                    Imported declaration from the Incompleteness formalization.

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem LO.conjLt_zero {α : Type u_1} [LogicalConnective α] (φ : α) :
                                                      conjLt φ 0 =
                                                      @[simp]
                                                      theorem LO.conjLt_succ {α : Type u_1} [LogicalConnective α] (φ : α) (k : ) :
                                                      conjLt φ (k + 1) = φ k conjLt φ k
                                                      @[simp]
                                                      theorem LO.hom_conj_prop {α : Type u_1} [LogicalConnective α] {F : Type u_3} {k : } [FunLike F α Prop] [LogicalConnective.HomClass F α Prop] (f : F) (φ : α) :
                                                      f (conjLt φ k) i < k, f (φ i)
                                                      def LO.disjLt {α : Type u_1} [LogicalConnective α] (φ : α) :
                                                      α

                                                      Imported declaration from the Incompleteness formalization.

                                                      Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem LO.disjLt_zero {α : Type u_1} [LogicalConnective α] (φ : α) :
                                                        disjLt φ 0 =
                                                        @[simp]
                                                        theorem LO.disjLt_succ {α : Type u_1} [LogicalConnective α] (φ : α) (k : ) :
                                                        disjLt φ (k + 1) = φ k disjLt φ k
                                                        @[simp]
                                                        theorem LO.hom_disj_prop {α : Type u_1} [LogicalConnective α] {F : Type u_3} {k : } [FunLike F α Prop] [LogicalConnective.HomClass F α Prop] (f : F) (φ : α) :
                                                        f (disjLt φ k) i < k, f (φ i)
                                                        def Matrix.conjVec {α : Type u_1} [LO.LogicalConnective α] {n : } :
                                                        (Fin nα)α

                                                        Imported declaration from the Incompleteness formalization.

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem Matrix.conj_nil {α : Type u_1} [LO.LogicalConnective α] (v : Fin 0α) :
                                                          @[simp]
                                                          theorem Matrix.conj_cons {α : Type u_1} [LO.LogicalConnective α] {n : } {a : α} {v : Fin nα} :
                                                          conjVec (a :> v) = a conjVec v
                                                          @[simp]
                                                          theorem Matrix.conj_hom_prop {α : Type u_1} [LO.LogicalConnective α] {F : Type u_2} {n : } [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (v : Fin nα) :
                                                          f (conjVec v) = ∀ (i : Fin n), f (v i)
                                                          theorem Matrix.hom_conj {β : Type u_3} {α : Type u_1} [LO.LogicalConnective α] [LO.LogicalConnective β] {F : Type u_2} {n : } [FunLike F α β] [LO.LogicalConnective.HomClass F α β] (f : F) (v : Fin nα) :
                                                          f (conjVec v) = conjVec (f v)
                                                          theorem Matrix.hom_conj₂ {β : Type u_3} {α : Type u_1} [LO.LogicalConnective α] [LO.LogicalConnective β] {F : Type u_2} {n : } [FunLike F α β] [LO.LogicalConnective.HomClass F α β] (f : F) (v : Fin nα) :
                                                          f (conjVec v) = conjVec fun (i : Fin n) => f (v i)
                                                          def Matrix.disj {α : Type u_1} [LO.LogicalConnective α] {n : } :
                                                          (Fin nα)α

                                                          Imported declaration from the Incompleteness formalization.

                                                          Equations
                                                          Instances For
                                                            @[simp]
                                                            theorem Matrix.disj_nil {α : Type u_1} [LO.LogicalConnective α] (v : Fin 0α) :
                                                            @[simp]
                                                            theorem Matrix.disj_cons {α : Type u_1} [LO.LogicalConnective α] {n : } {a : α} {v : Fin nα} :
                                                            disj (a :> v) = a disj v
                                                            @[simp]
                                                            theorem Matrix.disj_hom_prop {α : Type u_1} [LO.LogicalConnective α] {F : Type u_2} {n : } [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (v : Fin nα) :
                                                            f (disj v) = ∃ (i : Fin n), f (v i)
                                                            theorem Matrix.hom_disj {β : Type u_3} {α : Type u_1} [LO.LogicalConnective α] [LO.LogicalConnective β] {F : Type u_2} {n : } [FunLike F α β] [LO.LogicalConnective.HomClass F α β] (f : F) (v : Fin nα) :
                                                            f (disj v) = disj (f v)
                                                            theorem Matrix.hom_disj' {β : Type u_3} {α : Type u_1} [LO.LogicalConnective α] [LO.LogicalConnective β] {F : Type u_2} {n : } [FunLike F α β] [LO.LogicalConnective.HomClass F α β] (f : F) (v : Fin nα) :
                                                            f (disj v) = disj fun (i : Fin n) => f (v i)
                                                            def List.conj {α : Type u_1} [LO.LogicalConnective α] :
                                                            List αα

                                                            Imported declaration from the Incompleteness formalization.

                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              @[simp]
                                                              theorem List.conj_cons {α : Type u_1} [LO.LogicalConnective α] {a : α} {as : List α} :
                                                              (a :: as).conj = a as.conj
                                                              theorem List.map_conj {α : Type u_1} [LO.LogicalConnective α] {F : Type u_2} [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (l : List α) :
                                                              f l.conj al, f a
                                                              theorem List.map_conj_append {α : Type u_1} [LO.LogicalConnective α] {F : Type u_2} [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (l₁ l₂ : List α) :
                                                              f (l₁ ++ l₂).conj f (l₁.conj l₂.conj)
                                                              def List.disj {α : Type u_1} [LO.LogicalConnective α] :
                                                              List αα

                                                              Imported declaration from the Incompleteness formalization.

                                                              Equations
                                                              Instances For
                                                                @[simp]
                                                                @[simp]
                                                                theorem List.disj_cons {α : Type u_1} [LO.LogicalConnective α] {a : α} {as : List α} :
                                                                (a :: as).disj = a as.disj
                                                                theorem List.map_disj {α : Type u_1} [LO.LogicalConnective α] {F : Type u_2} [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (l : List α) :
                                                                f l.disj al, f a
                                                                theorem List.map_disj_append {α : Type u_1} [LO.LogicalConnective α] {F : Type u_2} [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (l₁ l₂ : List α) :
                                                                f (l₁ ++ l₂).disj f (l₁.disj l₂.disj)
                                                                def List.conj₂ {F : Type u} [LO.LogicalConnective F] :
                                                                List FF

                                                                Remark: [φ].conj₂ = φφ ⋏ ⊤ = [φ].conj

                                                                Equations
                                                                Instances For

                                                                  Imported declaration from the Incompleteness formalization.

                                                                  Equations
                                                                  Instances For
                                                                    @[simp]
                                                                    theorem List.conj₂_singleton {F : Type u} [LO.LogicalConnective F] {φ : F} :
                                                                    [φ] = φ
                                                                    @[simp]
                                                                    theorem List.conj₂_doubleton {F : Type u} [LO.LogicalConnective F] {φ ψ : F} :
                                                                    [φ, ψ] = φ ψ
                                                                    @[simp]
                                                                    theorem List.conj₂_cons_nonempty {F : Type u} [LO.LogicalConnective F] {a : F} {as : List F} (h : as [] := by assumption) :
                                                                    (a :: as) = a as
                                                                    def List.disj₂ {F : Type u} [LO.LogicalConnective F] :
                                                                    List FF

                                                                    Remark: [φ].disj = φφ ⋎ ⊥ = [φ].disj

                                                                    Equations
                                                                    Instances For

                                                                      Imported declaration from the Incompleteness formalization.

                                                                      Equations
                                                                      Instances For
                                                                        @[simp]
                                                                        theorem List.disj₂_singleton {F : Type u} [LO.LogicalConnective F] {φ : F} :
                                                                        [φ] = φ
                                                                        @[simp]
                                                                        theorem List.disj₂_doubleton {F : Type u} [LO.LogicalConnective F] {φ ψ : F} :
                                                                        [φ, ψ] = φ ψ
                                                                        @[simp]
                                                                        theorem List.disj₂_cons_nonempty {F : Type u} [LO.LogicalConnective F] {a : F} {as : List F} (h : as [] := by assumption) :
                                                                        (a :: as) = a as
                                                                        noncomputable def Finset.conj {α : Type u_1} [LO.LogicalConnective α] (s : Finset α) :
                                                                        α

                                                                        Imported declaration from the Incompleteness formalization.

                                                                        Equations
                                                                        Instances For
                                                                          theorem Finset.map_conj {α : Type u_2} [LO.LogicalConnective α] {F : Type u_1} [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (s : Finset α) :
                                                                          f s.conj as, f a
                                                                          theorem Finset.map_conj_union {α : Type u_2} [LO.LogicalConnective α] {F : Type u_1} [DecidableEq α] [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (s₁ s₂ : Finset α) :
                                                                          f (s₁ s₂).conj f (s₁.conj s₂.conj)
                                                                          noncomputable def Finset.disj {α : Type u_1} [LO.LogicalConnective α] (s : Finset α) :
                                                                          α

                                                                          Imported declaration from the Incompleteness formalization.

                                                                          Equations
                                                                          Instances For
                                                                            theorem Finset.map_disj {α : Type u_2} [LO.LogicalConnective α] {F : Type u_1} [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (s : Finset α) :
                                                                            f s.disj as, f a
                                                                            theorem Finset.map_disj_union {α : Type u_2} [LO.LogicalConnective α] {F : Type u_1} [DecidableEq α] [FunLike F α Prop] [LO.LogicalConnective.HomClass F α Prop] (f : F) (s₁ s₂ : Finset α) :
                                                                            f (s₁ s₂).disj f (s₁.disj s₂.disj)