Results on propositional theories #
In this file we prove the expected results that IPL Atom is an intuitionistic theory, and
CPL Atom is a classical theory. We provide derived rules for common intuitionistic and classical
proof patterns.
@[implicit_reducible]
instance
Cslib.Logic.PL.Theory.instIsIntuitionisticIPL
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
:
IsIntuitionistic Atom ↑(IPL Atom)
Equations
- Cslib.Logic.PL.Theory.instIsIntuitionisticIPL = { efq := fun (A : Cslib.Logic.PL.Proposition Atom) => Cslib.Logic.PL.Theory.Derivation.ax ⋯ }
def
Cslib.Logic.PL.Theory.IsIntuitionistic.efqCtx
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsIntuitionistic Atom ↑T]
(Γ : Ctx Atom)
(A : Proposition Atom)
:
Derivation of efq in an arbitrary context.
Equations
Instances For
def
Cslib.Logic.PL.Theory.IsIntuitionistic.efqRule
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsIntuitionistic Atom ↑T]
(Γ : Ctx Atom)
(A : Proposition Atom)
(D : InferenceSystem.derivation ↑T (Γ, ⊥))
:
Efq as a derived rule.
Equations
Instances For
def
Cslib.Logic.PL.Theory.IsIntuitionistic.contra
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsIntuitionistic Atom ↑T]
{Γ : Ctx Atom}
(A B : Proposition Atom)
(hΓ : A ∈ Γ)
(hΓ' : A.neg ∈ Γ)
:
Prove any proposition from contradictory hypotheses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implicit_reducible]
instance
Cslib.Logic.PL.Theory.instIsClassicalCPL
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
:
IsClassical Atom ↑(CPL Atom)
Equations
- Cslib.Logic.PL.Theory.instIsClassicalCPL = { dne := fun (A : Cslib.Logic.PL.Proposition Atom) => Cslib.Logic.PL.Theory.Derivation.ax ⋯ }
def
Cslib.Logic.PL.Theory.IsClassical.byContra
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsClassical Atom ↑T]
{Γ : Ctx Atom}
{A : Proposition Atom}
(D : InferenceSystem.derivation ↑T (insert A.neg Γ, ⊥))
:
Proof by contradiction as a derived rule.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implicit_reducible]
instance
Cslib.Logic.PL.Theory.instIsIntuitionisticOfIsClassical
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsClassical Atom ↑T]
:
IsIntuitionistic Atom ↑T
Equations
- One or more equations did not get rendered due to their size.
def
Cslib.Logic.PL.Theory.IsClassical.lem
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsClassical Atom ↑T]
(A : Proposition Atom)
:
InferenceSystem.derivation (↑T) (A.or A.neg)
Law of excluded middle in a classical theory.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Cslib.Logic.PL.Theory.IsClassical.pierce
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
{T : Theory Atom}
[IsClassical Atom ↑T]
(A B : Proposition Atom)
:
InferenceSystem.derivation (↑T) (((A.impl B).impl A).impl A)
Pierce's law in a classical theory.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The axiom system consisting of instances of LEM.
Equations
- Cslib.Logic.PL.Theory.LEM Atom = {x : Cslib.Logic.PL.Proposition Atom | ∃ (A : Cslib.Logic.PL.Proposition Atom), A.or A.neg = x}
Instances For
The axiom system consisting of instances of Pierce's law.
Equations
- Cslib.Logic.PL.Theory.Pierce Atom = {x : Cslib.Logic.PL.Proposition Atom | ∃ (A : Cslib.Logic.PL.Proposition Atom) (B : Cslib.Logic.PL.Proposition Atom), ((A.impl B).impl A).impl A = x}
Instances For
@[implicit_reducible]
instance
Cslib.Logic.PL.Theory.instIsClassicalLEM
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
:
IsClassical Atom ↑(LEM Atom ∪ IPL Atom)
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
instance
Cslib.Logic.PL.Theory.instIsClassicalPierce
{Atom : Type u}
[DecidableEq Atom]
[Bot Atom]
:
IsClassical Atom ↑(Pierce Atom ∪ IPL Atom)
Equations
- One or more equations did not get rendered due to their size.