Enhancement Proposals - ComputerAidedLL/click-and-collect GitHub Wiki
Explicit Exchange
- Discussion: issue #11
- Goal: display explicit exchange rules in the interface
- Code: provided as an option
- Interface:
- drag and drop is restricted to hypotheses of proofs (if applied inside a proof, reset proof to this point)
- a drag and drop operation on a sequent which is not premise of an explicit exchange rule generates an exchange rule
- a drag and drop operation on a sequent which is premise of an explicit exchange rule does not generate a new rule and updates the permutation
 
- Options / Choices:
- mention the permutation in the rule name
-  use explicit exchange rules of the shape ⊢ Γ, A, Δ, Σ⟷⊢ Γ, Δ, A, Σ(thus matching each drag and drop operation)
- add colors to follow occurrences
 
Cyclic Proofs
- Goal: dealing with infinite proofs through back edges connecting a proof leaf to an identical sequent met previously during proof construction
- Interface: drag and drop a turnstile symbol to another sequent which is equal (not up to permutation since permutation is meaningful) and lower in the proof (this has to be checked)
Proof Transformations
- Discussion: issue #119
- Goal: define a special mode for proof transformations
- Interface:
- activate proof-transformation mode (which deactivates other options, keeps export, possible to come back to proof-editing mode)
- completely changes the impact of clicking on proofs: current proof is frozen
- no drag-and-drop at all
- introduces buttons (on the left?) of rules for transformations
- changes Help
 
 
- activate proof-transformation mode (which deactivates other options, keeps export, possible to come back to proof-editing mode)
- Code:
- implement each proof-transformation action defined in the interface
- check 'availability' of each proof transformation to decide if buttons should be active or not
 
- Transformations
-  axiom expansion: 3 buttons on axrules (active or not, depending on the shape of the formulas)- one-step expansion (for pairs of non atomic formulas): applies reversible rule, then non-reversible one
- full alternating expansion: iteratively applies one-step expansion (possibly a double click on one-step expansion button rather than a dedicated one)
- focused expansion
 
-  cut elimination: 3 buttons on cutrules (active or not, depending on premises)- due to the implicit exchange rules, the pattern to take into consideration is:
rule rule exchange exchange cut
- ←: commutative left- ax (left formula) / *, ax (right formula) / *, ⊤ (context) / *, ⊥ (context) / *, ⊗ (left context) / *, ⊗ (right context) / *, ⅋ (context) / *, & (context) / *, ⊕1 (context) / *, ⊕2 (context) / *, ! (context) / * (with ?-context), ?d (context) / *, ?w (context) / *, ?w (main) / * (with ?-context), ?c (context) / *, ?c (main) / * (with ?-context), cut (left context) / *, cut (right context) / *, def (context) / *
- ↑: key case- 1 / ⊥, ⊗ / ⅋, & / ⊕1, & / ⊕2, ! / ?d, def / def
- →: commutative right (cf commutative left)
- double-click on ↑: eliminates the considered cut as well as all its residuals
- full cut elimination: remove all cuts from the proof
 
- due to the implicit exchange rules, the pattern to take into consideration is:
-  reversing
-  click on a reversible connective (including !in?-context): applies the corresponding rule and do the corresponding reversing in the above proof (may require some axiom expansion steps, and modifying hypotheses as well)
- double click on a reversible connective: applies recursively reversing on sub-formulas
 
-  click on a reversible connective (including 
-  focusing
-  local focusing: click on a positive connective attracts as many positive rules as possible to itpush it up as much as possible
- global focusing: for complete proofs, generates a cut-free focused proof by rule commutations (this is atomic weapon applying almost all the other transformations)
 
-  local focusing: click on a positive connective 
-  substitution
- click on an atomic formula: opens a pop-up asking for a formula and applies substitution everywhere in the proof
 
- rule commutations: 2 buttons on (non-cut, non-ax) rules (active or not) to move the considered rule up or down
 
-  axiom expansion: 3 buttons on