A blatant ripoff of Logitext, with variants implementing the propositional fragments of systems LK, LJ, two-sided classical linear logic, and one-sided classical linear logic (both forms of CLL as presented here, except that the one-sided version only allows the Axiom rule to be applied to atoms (this is currently a bug, not a feature 🙁)). Try it out: LK, LJ, CLL, RCLL.
NOTE: The {,R}CLL variant actually supports second-order quantifiers (basically, System F); need to document this.
Just like in Logitext, the fundamental interaction model is that you click on a formula to apply a rule introducing it. To apply the Axiom rule, left-click the turnstile (except in one-sided CLL, where you must click on the non-negated atom); to reset a subproof, right-click the turnstile.
There are some special cases:
- To apply contraction in LK or LJ, right-click the formula.
- To apply weakening in LK or LJ, middle-click the formula or left-click it while holding Ctrl.
- When there is more than one applicable logical rule:
- If the connective is
∧,∨,&, or⊕, click either the left or right subformula to choose between the two applicable rules. - If the connective is an exponential, right click the formula to apply contraction, click the connective itself to apply weakening, and click the operand to apply dereliction.
- If the connective is
- When the rule requires the side formulas to be split between the premises
(e.g., the left rule for
→), the conclusion will enter a mode where clicking on side formulas toggles which premise they are distributed to. To choose a new formula to introduce, you will need to explicitly cancel this mode first by right-clicking the turnstile.
Goals take the form A, ..., B |- C, ..., D where A, B, C, D are formulas;
empty lists are allowed on either side. You can also enter just A for |- A.
Any sequence of alphanumeric characters can be an atomic formula. For LK and
LJ, the connectives are ->, /\, \/, and ~ (negation), from low to high
precedence. For CLL, the connectives are -o (implication), +, &
(additives), @, * (multiplicatives), ~, !, and ?, from low to high
precedence. CLL also allows units 1, F (multiplicatives), 0, and T
(additives), which will not be parsed as atomic formulas.
The parser is a bit janky, and you may have to use more parentheses than you
should really need to (e.g., ~~P needs to be ~(~P)). Maybe I'll improve it
someday...