η-expansion for Classical Linear Logic (CLL) #
@[irreducible]
The η-expansion of a proposition a is a Proof of {a, a⫠} that applies the axiom
only to atomic propositions.
Equations
- One or more equations did not get rendered due to their size.
- (Cslib.CLL.Proposition.atom x).expand = Cslib.CLL.Proof.ax
- (Cslib.CLL.Proposition.atomDual x).expand = Cslib.CLL.Proof.ax
- Cslib.CLL.Proposition.one.expand = Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.rwConclusion ⋯ Cslib.CLL.Proof.one.bot)
- Cslib.CLL.Proposition.bot.expand = Cslib.CLL.Proof.one.bot
- Cslib.CLL.Proposition.top.expand = Cslib.CLL.Proof.top
- Cslib.CLL.Proposition.zero.expand = Cslib.CLL.Proof.rwConclusion ⋯ Cslib.CLL.Proof.top
- (a_2.tensor b).expand = Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.parr (Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.tensor a_2.expand b.expand)))
- (a_2.parr b).expand = Cslib.CLL.Proof.parr (Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.tensor (Cslib.CLL.Proof.rwConclusion ⋯ a_2.expand) (Cslib.CLL.Proof.rwConclusion ⋯ b.expand)))
- (a_2.with b).expand = Cslib.CLL.Proof.with (Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.oplus₁ a_2.dual.expand)) (Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.oplus₂ b.dual.expand))
- a_2.quest.expand = Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.bang ⋯ (Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.quest a_2.expand)))
- a_2.bang.expand = Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.bang ⋯ (Cslib.CLL.Proof.rwConclusion ⋯ (Cslib.CLL.Proof.quest a_2.dual.expand)))
Instances For
def
Cslib.CLL.Proof.onlyAtomicAxioms
{Atom : Type u}
{Γ : Sequent Atom}
(p : Logic.InferenceSystem.derivation Γ)
:
A Proof has only atomic axioms if all its instances of the axiom treat atomic propositions.
Equations
- Cslib.CLL.Proof.ax.onlyAtomicAxioms = (true || false)
- Cslib.CLL.Proof.ax.onlyAtomicAxioms = (false || true)
- Cslib.CLL.Proof.ax.onlyAtomicAxioms = (false || false)
- (p_2.cut q).onlyAtomicAxioms = (p_2.onlyAtomicAxioms && q.onlyAtomicAxioms)
- Cslib.CLL.Proof.one.onlyAtomicAxioms = true
- p_2.bot.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- p_2.parr.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- (p_2.tensor q).onlyAtomicAxioms = (p_2.onlyAtomicAxioms && p_2.onlyAtomicAxioms)
- p_2.oplus₁.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- p_2.oplus₂.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- (p_2.with q).onlyAtomicAxioms = (p_2.onlyAtomicAxioms && q.onlyAtomicAxioms)
- Cslib.CLL.Proof.top.onlyAtomicAxioms = true
- p_2.quest.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- p_2.weaken.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- p_2.contract.onlyAtomicAxioms = p_2.onlyAtomicAxioms
- (Cslib.CLL.Proof.bang a_1 p_2).onlyAtomicAxioms = p_2.onlyAtomicAxioms
Instances For
theorem
Cslib.CLL.Proof.onlyAtomicAxioms_rwConclusion
{Atom : Type u}
{Γ Δ : Sequent Atom}
{heq : Γ = Δ}
{p : Logic.InferenceSystem.derivation Γ}
(h : onlyAtomicAxioms p = true)
:
Proof.onlyAtomicAxioms is preserved by Proof.rwConclusion.
η-expansion is correct: the proof returned by η-expansion contains only atomic axioms.