Logic Symbols #
This file defines structure that has logical connectives
Main Definitions #
LO.LogicalConnective
is defined so thatLO.LogicalConnective F
is a type that has logical connectives .LO.LogicalConnective.Hom
is defined so thatf : F →ˡᶜ G
is a homomorphism fromF
toG
, i.e., a function that preserves logical connectives.
- tilde : α → α
- arrow : α → α → α
Instances
- wedge : α → α → α
- vee : α → α → α
class
LO.LogicalConnective
(α : Type u_1)
extends Top α, Bot α, LO.Tilde α, LO.Arrow α, LO.Wedge α, LO.Vee α :
Type u_1
Instances
- LO.FirstOrder.Arith.HierarchySymbol.Semiformula.instLogicalConnectiveMkDeltaSigmaPiDelta
- LO.FirstOrder.Semiformula.instLogicalConnective
- LO.FirstOrder.Semiformulaᵢ.instLogicalConnective
- LO.IntProp.Formula.instLogicalConnective
- LO.LogicalConnective.PropLogicSymbols
- LO.Propositional.Classical.Formula.instLogicalConnective
- LO.instLogicalConnectiveOfLCWQ
Equations
- LO.«term∼_» = Lean.ParserDescr.node `LO.«term∼_» 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∼") (Lean.ParserDescr.cat `term 75))
Equations
- LO.«term_➝_» = Lean.ParserDescr.trailingNode `LO.«term_➝_» 60 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ➝ ") (Lean.ParserDescr.cat `term 60))
Equations
- LO.«term_⋏_» = Lean.ParserDescr.trailingNode `LO.«term_⋏_» 69 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⋏ ") (Lean.ParserDescr.cat `term 69))
Equations
- LO.«term_⋎_» = Lean.ParserDescr.trailingNode `LO.«term_⋎_» 68 69 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⋎ ") (Lean.ParserDescr.cat `term 68))
@[match_pattern]
Equations
- One or more equations did not get rendered due to their size.
@[reducible]
class
LO.LogicalConnective.HomClass
(F : Type u_1)
(α : outParam (Type u_2))
(β : outParam (Type u_3))
[LogicalConnective α]
[LogicalConnective β]
[FunLike F α β]
:
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
- LO.LogicalConnective.HomClass.instCoeFunForall F α β = { coe := DFunLike.coe }
@[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 : α)
:
structure
LO.LogicalConnective.Hom
(α : Type u_1)
(β : Type u_2)
[LogicalConnective α]
[LogicalConnective β]
:
Type (max u_1 u_2)
- toTr : α → β
Equations
- One or more equations did not get rendered due to their size.
instance
LO.LogicalConnective.Hom.instFunLike
{α : Type u_1}
{β : Type u_2}
[LogicalConnective α]
[LogicalConnective β]
:
Equations
- LO.LogicalConnective.Hom.instFunLike = { coe := LO.LogicalConnective.Hom.toTr, coe_injective' := ⋯ }
instance
LO.LogicalConnective.Hom.instCoeFunForall
{α : Type u_1}
{β : Type u_2}
[LogicalConnective α]
[LogicalConnective β]
:
theorem
LO.LogicalConnective.Hom.ext
{α : Type u_1}
{β : Type u_2}
[LogicalConnective α]
[LogicalConnective β]
(f g : α →ˡᶜ β)
(h : ∀ (x : α), f x = g x)
:
f = g
instance
LO.LogicalConnective.Hom.instHomClass
{α : Type u_1}
{β : Type u_2}
[LogicalConnective α]
[LogicalConnective β]
:
Equations
- LO.LogicalConnective.Hom.id = { toTr := id, map_top' := ⋯, map_bot' := ⋯, map_neg' := ⋯, map_imply' := ⋯, map_and' := ⋯, map_or' := ⋯ }
@[simp]
def
LO.LogicalConnective.Hom.comp
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[LogicalConnective α]
[LogicalConnective β]
[LogicalConnective γ]
(g : β →ˡᶜ γ)
(f : α →ˡᶜ β)
:
α →ˡᶜ γ
@[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)
class
LO.LogicalConnective.Closed
{F : Type u_4}
[LogicalConnective F]
(C : F → Prop)
extends LO.LogicalConnective.AndOrClosed C :
class
LO.LogicalConnective.Subclosed
{F : Type u_1}
[LogicalConnective F]
(C : F → Prop)
extends LO.Tilde.Subclosed C, LO.Arrow.Subclosed C, LO.Wedge.Subclosed C, LO.Vee.Subclosed C :
Instances
@[simp]
@[simp]
theorem
LO.hom_conj_prop
{α : Type u_1}
[LogicalConnective α]
{F : Type u_3}
{k : ℕ}
[FunLike F α Prop]
[LogicalConnective.HomClass F α Prop]
(f : F)
(φ : ℕ → α)
:
@[simp]
@[simp]
theorem
LO.hom_disj_prop
{α : Type u_1}
[LogicalConnective α]
{F : Type u_3}
{k : ℕ}
[FunLike F α Prop]
[LogicalConnective.HomClass F α Prop]
(f : F)
(φ : ℕ → α)
:
Equations
- Matrix.conj x_2 = ⊤
- Matrix.conj v = v 0 ⋏ Matrix.conj (Matrix.vecTail v)
@[simp]
@[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 → α)
:
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 → α)
:
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 → α)
:
Equations
- Matrix.disj x_2 = ⊥
- Matrix.disj v = v 0 ⋎ Matrix.disj (Matrix.vecTail v)
@[simp]
@[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 → α)
:
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 → α)
:
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 → α)
:
@[simp]
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 ↔ ∀ a ∈ l, 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 α)
:
@[simp]
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 ↔ ∃ a ∈ l, 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 α)
:
Equations
- List.«term⋀_» = Lean.ParserDescr.node `List.«term⋀_» 80 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋀") (Lean.ParserDescr.cat `term 80))
@[simp]
Equations
- List.«term⋁_» = Lean.ParserDescr.node `List.«term⋁_» 80 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋁") (Lean.ParserDescr.cat `term 80))
@[simp]
Equations
- s.conj = s.toList.conj
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 ↔ ∀ a ∈ s, 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 α)
:
Equations
- s.disj = s.toList.disj
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 ↔ ∃ a ∈ s, 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 α)
: