A proof is cut-free if it does not contain any applications of rule cut.
Equations
- Cslib.CLL.Proof.ax.cutFree = true
- Cslib.CLL.Proof.one.cutFree = true
- p_2.bot.cutFree = p_2.cutFree
- p_2.parr.cutFree = p_2.cutFree
- (p_2.tensor q).cutFree = (p_2.cutFree && q.cutFree)
- p_2.oplus₁.cutFree = p_2.cutFree
- p_2.oplus₂.cutFree = p_2.cutFree
- (p_2.with q).cutFree = (p_2.cutFree && q.cutFree)
- Cslib.CLL.Proof.top.cutFree = true
- p_2.quest.cutFree = p_2.cutFree
- p_2.weaken.cutFree = p_2.cutFree
- p_2.contract.cutFree = p_2.cutFree
- (Cslib.CLL.Proof.bang a_1 p_2).cutFree = p_2.cutFree
- (a_1.cut a_2).cutFree = false
Instances For
@[reducible, inline]
A CutFreeProof is a Proof without cuts (applications of Proof.cut).
Equations
- Cslib.CLL.CutFreeProof Γ = { q : Cslib.CLL.Proof Γ // q.cutFree = true }