Documentation

Foundation.Logic.HilbertStyle.Basic

def LO.System.cast {S : Type u_1} {F : Type u_2} [System F S] {𝓢 : S} {φ ψ : F} (e : φ = ψ) (b : 𝓢 φ) :
𝓢 ψ
Equations
def LO.System.cast! {S : Type u_1} {F : Type u_2} [System F S] {𝓢 : S} {φ ψ : F} (e : φ = ψ) (b : 𝓢 ⊢! φ) :
𝓢 ⊢! ψ
Equations
  • =
def LO.System.mdp {S : Type u_1} {F : Type u_2} {inst✝ : LogicalConnective F} {inst✝¹ : System F S} {𝓢 : S} [self : ModusPonens 𝓢] {φ ψ : F} :
𝓢 φ ψ𝓢 φ𝓢 ψ

Alias of LO.System.ModusPonens.mdp.

Equations
theorem LO.System.mdp! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] :
𝓢 ⊢! φ ψ𝓢 ⊢! φ𝓢 ⊢! ψ
@[simp]
theorem LO.System.verum! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [HasAxiomVerum 𝓢] :
𝓢 ⊢!
def LO.System.imply₁ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomImply₁ 𝓢] :
𝓢 φ ψ φ
Equations
@[simp]
theorem LO.System.imply₁! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomImply₁ 𝓢] :
𝓢 ⊢! φ ψ φ
def LO.System.imply₁' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] (h : 𝓢 φ) :
𝓢 ψ φ
Equations
theorem LO.System.imply₁'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] (d : 𝓢 ⊢! φ) :
𝓢 ⊢! ψ φ
@[deprecated LO.System.imply₁']
def LO.System.dhyp {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] (ψ : F) (b : 𝓢 φ) :
𝓢 ψ φ
Equations
def LO.System.imply₂ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomImply₂ 𝓢] :
𝓢 (φ ψ χ) (φ ψ) φ χ
Equations
@[simp]
theorem LO.System.imply₂! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! (φ ψ χ) (φ ψ) φ χ
def LO.System.imply₂' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₂ 𝓢] (d₁ : 𝓢 φ ψ χ) (d₂ : 𝓢 φ ψ) (d₃ : 𝓢 φ) :
𝓢 χ
Equations
theorem LO.System.imply₂'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₂ 𝓢] (d₁ : 𝓢 ⊢! φ ψ χ) (d₂ : 𝓢 ⊢! φ ψ) (d₃ : 𝓢 ⊢! φ) :
𝓢 ⊢! χ
class LO.System.HasAxiomAndElim {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) :
Type (max u_2 u_3)
Instances
def LO.System.and₁ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomAndElim 𝓢] :
𝓢 φ ψ φ
Equations
@[simp]
theorem LO.System.and₁! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomAndElim 𝓢] :
𝓢 ⊢! φ ψ φ
def LO.System.and₁' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 φ ψ) :
𝓢 φ
Equations
def LO.System.andLeft {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 φ ψ) :
𝓢 φ

Alias of LO.System.and₁'.

Equations
theorem LO.System.and₁'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! φ
theorem LO.System.and_left! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! φ

Alias of LO.System.and₁'!.

def LO.System.and₂ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomAndElim 𝓢] :
𝓢 φ ψ ψ
Equations
@[simp]
theorem LO.System.and₂! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomAndElim 𝓢] :
𝓢 ⊢! φ ψ ψ
def LO.System.and₂' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 φ ψ) :
𝓢 ψ
Equations
def LO.System.andRight {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 φ ψ) :
𝓢 ψ

Alias of LO.System.and₂'.

Equations
theorem LO.System.and₂'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! ψ
theorem LO.System.and_right! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] (d : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! ψ

Alias of LO.System.and₂'!.

def LO.System.and₃ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomAndInst 𝓢] :
𝓢 φ ψ φ ψ
Equations
@[simp]
theorem LO.System.and₃! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomAndInst 𝓢] :
𝓢 ⊢! φ ψ φ ψ
def LO.System.and₃' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] (d₁ : 𝓢 φ) (d₂ : 𝓢 ψ) :
𝓢 φ ψ
Equations
def LO.System.andIntro {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] (d₁ : 𝓢 φ) (d₂ : 𝓢 ψ) :
𝓢 φ ψ

Alias of LO.System.and₃'.

Equations
theorem LO.System.and₃'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] (d₁ : 𝓢 ⊢! φ) (d₂ : 𝓢 ⊢! ψ) :
𝓢 ⊢! φ ψ
theorem LO.System.and_intro! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] (d₁ : 𝓢 ⊢! φ) (d₂ : 𝓢 ⊢! ψ) :
𝓢 ⊢! φ ψ

Alias of LO.System.and₃'!.

class LO.System.HasAxiomOrInst {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) :
Type (max u_2 u_3)
Instances
def LO.System.or₁ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] :
𝓢 φ φ ψ
Equations
@[simp]
theorem LO.System.or₁! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] :
𝓢 ⊢! φ φ ψ
def LO.System.or₁' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] [ModusPonens 𝓢] (d : 𝓢 φ) :
𝓢 φ ψ
Equations
theorem LO.System.or₁'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] [ModusPonens 𝓢] (d : 𝓢 ⊢! φ) :
𝓢 ⊢! φ ψ
def LO.System.or₂ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] :
𝓢 ψ φ ψ
Equations
@[simp]
theorem LO.System.or₂! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] :
𝓢 ⊢! ψ φ ψ
def LO.System.or₂' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] [ModusPonens 𝓢] (d : 𝓢 ψ) :
𝓢 φ ψ
Equations
theorem LO.System.or₂'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomOrInst 𝓢] [ModusPonens 𝓢] (d : 𝓢 ⊢! ψ) :
𝓢 ⊢! φ ψ
class LO.System.HasAxiomOrElim {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) :
Type (max u_2 u_3)
Instances
def LO.System.or₃ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] :
𝓢 (φ χ) (ψ χ) φ ψ χ
Equations
@[simp]
theorem LO.System.or₃! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] :
𝓢 ⊢! (φ χ) (ψ χ) φ ψ χ
def LO.System.or₃'' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] [ModusPonens 𝓢] (d₁ : 𝓢 φ χ) (d₂ : 𝓢 ψ χ) :
𝓢 φ ψ χ
Equations
theorem LO.System.or₃''! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] [ModusPonens 𝓢] (d₁ : 𝓢 ⊢! φ χ) (d₂ : 𝓢 ⊢! ψ χ) :
𝓢 ⊢! φ ψ χ
def LO.System.or₃''' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] [ModusPonens 𝓢] (d₁ : 𝓢 φ χ) (d₂ : 𝓢 ψ χ) (d₃ : 𝓢 φ ψ) :
𝓢 χ
Equations
def LO.System.orCases {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] [ModusPonens 𝓢] (d₁ : 𝓢 φ χ) (d₂ : 𝓢 ψ χ) (d₃ : 𝓢 φ ψ) :
𝓢 χ

Alias of LO.System.or₃'''.

Equations
theorem LO.System.or₃'''! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] [ModusPonens 𝓢] (d₁ : 𝓢 ⊢! φ χ) (d₂ : 𝓢 ⊢! ψ χ) (d₃ : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! χ
theorem LO.System.or_cases! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [HasAxiomOrElim 𝓢] [ModusPonens 𝓢] (d₁ : 𝓢 ⊢! φ χ) (d₂ : 𝓢 ⊢! ψ χ) (d₃ : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! χ

Alias of LO.System.or₃'''!.

def LO.System.efq {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomEFQ 𝓢] :
𝓢 φ
Equations
@[simp]
theorem LO.System.efq! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomEFQ 𝓢] :
𝓢 ⊢! φ
def LO.System.efq' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomEFQ 𝓢] (b : 𝓢 ) :
𝓢 φ
Equations
theorem LO.System.efq'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomEFQ 𝓢] (h : 𝓢 ⊢! ) :
𝓢 ⊢! φ
def LO.System.lem {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomLEM 𝓢] :
𝓢 φ φ
Equations
@[simp]
theorem LO.System.lem! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomLEM 𝓢] :
𝓢 ⊢! φ φ
def LO.System.dne {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomDNE 𝓢] :
𝓢 φ φ
Equations
@[simp]
theorem LO.System.dne! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomDNE 𝓢] :
𝓢 ⊢! φ φ
def LO.System.dne' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomDNE 𝓢] (b : 𝓢 φ) :
𝓢 φ
Equations
theorem LO.System.dne'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomDNE 𝓢] (h : 𝓢 ⊢! φ) :
𝓢 ⊢! φ
def LO.System.wlem {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomWeakLEM 𝓢] :
𝓢 φ φ
Equations
@[simp]
theorem LO.System.wlem! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [HasAxiomWeakLEM 𝓢] :
𝓢 ⊢! φ φ
def LO.System.dummett {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomDummett 𝓢] :
𝓢 (φ ψ) (ψ φ)
Equations
@[simp]
theorem LO.System.dummett! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomDummett 𝓢] :
𝓢 ⊢! Axioms.Dummett φ ψ
class LO.System.HasAxiomPeirce {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) :
Type (max u_2 u_3)
Instances
def LO.System.peirce {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomPeirce 𝓢] :
𝓢 ((φ ψ) φ) φ
Equations
@[simp]
theorem LO.System.peirce! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomPeirce 𝓢] :
𝓢 ⊢! ((φ ψ) φ) φ
class LO.System.NegationEquiv {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) :
Type (max u_2 u_3)

Negation ∼φ is equivalent to φ ➝ ⊥ on system.

This is weaker asssumption than "introducing ∼φ as an abbreviation of φ ➝ ⊥" (NegAbbrev).

Instances
def LO.System.neg_equiv {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [NegationEquiv 𝓢] :
𝓢 φ (φ )
Equations
@[simp]
theorem LO.System.neg_equiv! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [NegationEquiv 𝓢] :
𝓢 ⊢! φ (φ )
class LO.System.HasAxiomElimContra {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) :
Type (max u_2 u_3)
Instances
def LO.System.elim_contra {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomElimContra 𝓢] :
𝓢 (ψ φ) φ ψ
Equations
@[simp]
theorem LO.System.elim_contra! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [HasAxiomElimContra 𝓢] :
𝓢 ⊢! (ψ φ) φ ψ
class LO.System.Intuitionistic {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] (𝓢 : S) extends LO.System.Minimal 𝓢, LO.System.HasAxiomEFQ 𝓢 :
Type (max u_2 u_3)
Instances
def LO.System.neg_equiv'.mp {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] [NegationEquiv 𝓢] :
𝓢 φ𝓢 φ
Equations
def LO.System.neg_equiv'.mpr {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] [NegationEquiv 𝓢] :
𝓢 φ 𝓢 φ
Equations
theorem LO.System.neg_equiv'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] [NegationEquiv 𝓢] :
𝓢 ⊢! φ 𝓢 ⊢! φ
def LO.System.iffIntro {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] (b₁ : 𝓢 φ ψ) (b₂ : 𝓢 ψ φ) :
𝓢 φ ψ
Equations
def LO.System.iff_intro! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] (h₁ : 𝓢 ⊢! φ ψ) (h₂ : 𝓢 ⊢! ψ φ) :
𝓢 ⊢! φ ψ
Equations
  • =
theorem LO.System.and_intro_iff {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] :
𝓢 ⊢! φ ψ 𝓢 ⊢! φ 𝓢 ⊢! ψ
theorem LO.System.iff_intro_iff {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] :
𝓢 ⊢! φ ψ 𝓢 ⊢! φ ψ 𝓢 ⊢! ψ φ
theorem LO.System.provable_iff_of_iff {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] (h : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! φ 𝓢 ⊢! ψ
@[simp]
def LO.System.imp_id! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! φ φ
Equations
  • =
def LO.System.iffId {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (φ : F) :
𝓢 φ φ
Equations
@[simp]
def LO.System.iff_id! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! φ φ
Equations
  • =
@[simp]
theorem LO.System.notbot! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] [NegationEquiv 𝓢] [HasAxiomAndElim 𝓢] :
def LO.System.mdp₁ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₂ 𝓢] (bqr : 𝓢 φ ψ χ) (bq : 𝓢 φ ψ) :
𝓢 φ χ
Equations
theorem LO.System.mdp₁! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₂ 𝓢] (hqr : 𝓢 ⊢! φ ψ χ) (hq : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! φ χ
def LO.System.mdp₂ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] {s : F} [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (bqr : 𝓢 φ ψ χ s) (bq : 𝓢 φ ψ χ) :
𝓢 φ ψ s
Equations
theorem LO.System.mdp₂! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] {s : F} [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (hqr : 𝓢 ⊢! φ ψ χ s) (hq : 𝓢 ⊢! φ ψ χ) :
𝓢 ⊢! φ ψ s
def LO.System.mdp₃ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] {s t : F} [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (bqr : 𝓢 φ ψ χ s t) (bq : 𝓢 φ ψ χ s) :
𝓢 φ ψ χ t
Equations
theorem LO.System.mdp₃! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] {s t : F} [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (hqr : 𝓢 ⊢! φ ψ χ s t) (hq : 𝓢 ⊢! φ ψ χ s) :
𝓢 ⊢! φ ψ χ t
def LO.System.mdp₄ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] {s t u : F} [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (bqr : 𝓢 φ ψ χ s t u) (bq : 𝓢 φ ψ χ s t) :
𝓢 φ ψ χ s u
Equations
theorem LO.System.mdp₄! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] {s t u : F} [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (hqr : 𝓢 ⊢! φ ψ χ s t u) (hq : 𝓢 ⊢! φ ψ χ s t) :
𝓢 ⊢! φ ψ χ s u
def LO.System.impTrans'' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (bpq : 𝓢 φ ψ) (bqr : 𝓢 ψ χ) :
𝓢 φ χ
Equations
theorem LO.System.imp_trans''! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (hpq : 𝓢 ⊢! φ ψ) (hqr : 𝓢 ⊢! ψ χ) :
𝓢 ⊢! φ χ
theorem LO.System.unprovable_imp_trans''! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (hpq : 𝓢 ⊢! φ ψ) :
𝓢 φ χ𝓢 ψ χ
def LO.System.iffTrans'' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (h₁ : 𝓢 φ ψ) (h₂ : 𝓢 ψ χ) :
𝓢 φ χ
Equations
theorem LO.System.iff_trans''! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (h₁ : 𝓢 ⊢! φ ψ) (h₂ : 𝓢 ⊢! ψ χ) :
𝓢 ⊢! φ χ
theorem LO.System.unprovable_iff! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (H : 𝓢 ⊢! φ ψ) :
𝓢 φ 𝓢 ψ
def LO.System.imply₁₁ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (φ ψ χ : F) :
𝓢 φ ψ χ φ
Equations
@[simp]
theorem LO.System.imply₁₁! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (φ ψ χ : F) :
𝓢 ⊢! φ ψ χ φ
def LO.System.implyAnd {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (bq : 𝓢 φ ψ) (br : 𝓢 φ χ) :
𝓢 φ ψ χ
Equations
theorem LO.System.imply_and! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (hq : 𝓢 ⊢! φ ψ) (hr : 𝓢 ⊢! φ χ) :
𝓢 ⊢! φ ψ χ
def LO.System.andComm {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (φ ψ : F) :
𝓢 φ ψ ψ φ
Equations
theorem LO.System.and_comm! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! φ ψ ψ φ
def LO.System.andComm' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (h : 𝓢 φ ψ) :
𝓢 ψ φ
Equations
theorem LO.System.and_comm'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (h : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! ψ φ
def LO.System.iffComm {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (φ ψ : F) :
𝓢 φ ψ ψ φ
Equations
theorem LO.System.iff_comm! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! φ ψ ψ φ
def LO.System.iffComm' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (h : 𝓢 φ ψ) :
𝓢 ψ φ
Equations
theorem LO.System.iff_comm'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (h : 𝓢 ⊢! φ ψ) :
𝓢 ⊢! ψ φ
def LO.System.andImplyIffImplyImply {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (φ ψ χ : F) :
𝓢 (φ ψ χ) (φ ψ χ)
Equations
  • One or more equations did not get rendered due to their size.
theorem LO.System.and_imply_iff_imply_imply! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! (φ ψ χ) (φ ψ χ)
def LO.System.andImplyIffImplyImply'.mp {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (d : 𝓢 φ ψ χ) :
𝓢 φ ψ χ
Equations
def LO.System.andImplyIffImplyImply'.mpr {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] (d : 𝓢 φ ψ χ) :
𝓢 φ ψ χ
Equations
theorem LO.System.and_imply_iff_imply_imply'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ ψ χ : F} [ModusPonens 𝓢] [HasAxiomAndInst 𝓢] [HasAxiomAndElim 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomImply₂ 𝓢] :
𝓢 ⊢! φ ψ χ 𝓢 ⊢! φ ψ χ
@[simp]
theorem LO.System.imply_left_verum! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [HasAxiomImply₁ 𝓢] [HasAxiomVerum 𝓢] :
𝓢 ⊢! φ
instance LO.System.instDeductiveExplosionOfModusPonensOfHasAxiomEFQ {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] [(𝓢 : S) → ModusPonens 𝓢] [(𝓢 : S) → HasAxiomEFQ 𝓢] :
Equations
def LO.System.conj₂Nth {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (Γ : List F) (n : ) (hn : n < Γ.length) :
𝓢 Γ Γ[n]
Equations
def LO.System.conj₂_nth! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (Γ : List F) (n : ) (hn : n < Γ.length) :
𝓢 ⊢! Γ Γ[n]
Equations
  • =
def LO.System.generalConj {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] [DecidableEq F] {Γ : List F} {φ : F} (h : φ Γ) :
𝓢 Γ.conj φ
Equations
theorem LO.System.generalConj! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [System.Minimal 𝓢] [DecidableEq F] {Γ : List F} (h : φ Γ) :
𝓢 ⊢! Γ.conj φ
def LO.System.conjIntro {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (Γ : List F) (b : (φ : F) → φ Γ𝓢 φ) :
𝓢 Γ.conj
Equations
def LO.System.implyConj {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (φ : F) (Γ : List F) (b : (ψ : F) → ψ Γ𝓢 φ ψ) :
𝓢 φ Γ.conj
Equations
def LO.System.conjImplyConj {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] [DecidableEq F] {Γ Δ : List F} (h : Δ Γ) :
𝓢 Γ.conj Δ.conj
Equations
def LO.System.generalConj' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] [DecidableEq F] {Γ : List F} {φ : F} (h : φ Γ) :
𝓢 Γ φ
Equations
theorem LO.System.generate_conj'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} {φ : F} [ModusPonens 𝓢] [System.Minimal 𝓢] [DecidableEq F] {Γ : List F} (h : φ Γ) :
𝓢 ⊢! Γ φ
def LO.System.conjIntro' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (Γ : List F) (b : (φ : F) → φ Γ𝓢 φ) :
𝓢 Γ
Equations
theorem LO.System.conj_intro'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] {Γ : List F} (b : φΓ, 𝓢 ⊢! φ) :
𝓢 ⊢! Γ
def LO.System.implyConj' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (φ : F) (Γ : List F) (b : (ψ : F) → ψ Γ𝓢 φ ψ) :
𝓢 φ Γ
Equations
theorem LO.System.imply_conj'! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] (φ : F) (Γ : List F) (b : ψΓ, 𝓢 ⊢! φ ψ) :
𝓢 ⊢! φ Γ
def LO.System.conjImplyConj' {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {𝓢 : S} [ModusPonens 𝓢] [System.Minimal 𝓢] [DecidableEq F] {Γ Δ : List F} (h : Δ Γ) :
𝓢 Γ Δ
Equations
def LO.System.Minimal.ofEquiv {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {G : Type u_3} {T : Type u_4} [System G T] [LogicalConnective G] (𝓢 : S) [System.Minimal 𝓢] (𝓣 : T) (f : G →ˡᶜ F) (e : (φ : G) → 𝓢 f φ 𝓣 φ) :
Equations
def LO.System.Classical.ofEquiv {S : Type u_1} {F : Type u_2} [LogicalConnective F] [System F S] {G : Type u_3} {T : Type u_4} [System G T] [LogicalConnective G] (𝓢 : S) [System.Classical 𝓢] (𝓣 : T) (f : G →ˡᶜ F) (e : (φ : G) → 𝓢 f φ 𝓣 φ) :
Equations