Skip to content
Snippets Groups Projects
  1. Oct 08, 2024
  2. Oct 04, 2024
  3. Oct 03, 2024
  4. Jul 22, 2024
  5. Jun 18, 2024
    • Sankalp Gambhir's avatar
      Dependency and Scala Upgrades (#221) · 712da949
      Sankalp Gambhir authored
      * More sensible multi line strings, up scalafmt version
      
      * Upgrade sbt version
      
      * Upgrade sbt plugins
      
      * Upgrade Scala version to 3.3.3
      
      * Update library dependencies
      
      * Expose library main classes
      
      * Remove infinite loop (?)
      
      * Uncomment examples, move Goeland examples to separate object
      
      * Scala fmt
      
      * Comment SimpleTautology
      712da949
  6. Apr 19, 2024
    • Simon Guilloud's avatar
      Egraph (#220) · cbec1558
      Simon Guilloud authored
      Add a tactic called "Congruence".
      This tactic tries to prove a sequent by congruence.
      Consider the congruence closure of all terms and formulas in the sequent, with respect to all === and <=> left of the sequent.
      The sequent is provable by congruence if one of the following conditions is met:
      - The right side contains an equality s === t or equivalence a <=> b provable in the congruence closure.
      - The left side contains an negated equality !(s === t) or equivalence !(a <=> b) provable in the congruence closure.
      - There is a formula a on the left and b on the right such that a and b are congruent.
      - There are two formulas a and !b on the left such that a and b are congruent.
      - There are two formulas a and !b on the right such that a and b are congruent.
      - The sequent is Ol-valid without equality reasoning
      Note that complete congruence closure modulo OL is an open problem.
      
      The tactic uses an egraph datastructure to compute the congruence closure.
      The egraph itselfs relies on two underlying union-find datastructure, one for terms and one for formulas.
      The union-finds are equiped with an explain method that produces a path between any two elements in the same equivalence class.
      Each edge of the path can come from an external equality, or be the consequence of congruence.
      The tactic uses uses this path to produce needed proofs.
      cbec1558
  7. Apr 18, 2024
  8. Apr 08, 2024
  9. Mar 04, 2024
    • Marcin Wojnarowski's avatar
      Small corrections to Lisa manual (#213) · 73bc04b9
      Marcin Wojnarowski authored
      * Swap 'or' and 'and' in ligature column typo
      
      * Add missing tautology tactic reference
      
      * Fix other small typos in manual
      
      * Fix alignment in kernel chapter
      
      * Typos in prooflib and set theory
      
      * Regenerate lisa manual
      73bc04b9
  10. Mar 02, 2024
  11. Feb 06, 2024
    • Simon Guilloud's avatar
      Add option for draft (#207) · e27962d9
      Simon Guilloud authored
      * Implement draft option.
      
      While developing proofs and theories, can activate a draft option that will only check the current worked-on file and assume without checking any external theorem. This prevents having to verify the whole library at every run.
      e27962d9
  12. Jan 09, 2024
  13. Jan 08, 2024
    • Simon Guilloud's avatar
      Lattices (#204) · fe84b0b5
      Simon Guilloud authored
      typeset lattices example and solutions, improvements to pretty printing
      fe84b0b5
    • Simon Guilloud's avatar
      Substitution bellow quantifier (#203) · a60b942b
      Simon Guilloud authored
      * Add the file CHANGES.md
      
      * tracking inconsistencies
      
      * implement a first version of substeq2
      
      * tracking a bug
      
      * 2-version works
      
      * removed all version, renamed versions 2 to normal. All seems to work (including Recursion.scala). Haven't run tests yet, nor tested on function substitutions
      
      * All tests and the library work. Added sanity checks for substitution steps.
      
      * Add tests
      
      * scalafix, scalafmt
      
      * update CHANGES.md
      
      * "of" for quantified facts has been implemented and tested.
      
      * manual and changelist updated,  order between forall and free instantiation swapped. scalafix, scalafmt.
      
      * correct typos
      a60b942b
  14. Dec 28, 2023
  15. Dec 20, 2023
    • Simon Guilloud's avatar
      Introduce local definitions and comprehensions (#199) · a978b46a
      Simon Guilloud authored
      This PR introduces methods witness, t.replace, t.collect, t.map and t.filter. Update of the manual, describing how those work, along with some corrections to the statement of axioms ot match LISA's presentation. Include test cases using each, and proved some required theorems. Fix an error in the reconstruction of OL-normalized formulas used in some tactics.
      a978b46a
  16. Dec 07, 2023
  17. Dec 06, 2023
  18. Dec 04, 2023
  19. Dec 02, 2023
    • Simon Guilloud's avatar
      Another Tableaux Improvement (#195) · d776964f
      Simon Guilloud authored
      * Add colors to Branch representation in Tableaux, try to optimize it.
      
      * Improves Tableau with a weight-based heuristic for picking substitution. Also improve printing of Branches with colors, for additional reading clarity when debugging.
      
      * scalafix, scalafmt
      d776964f
    • SimonGuilloud's avatar
      Atomics, improve lisa.fol.FOL's logic and simplify it (#194) · 70059505
      SimonGuilloud authored
      * Renamed some elements of the formula hierarchy using the word "atomic"
      
      * removed the match type for ***. Instead, use opaque types and extension methods. Should be a bit more efficient and less prone to dotty bugs
      
      * remove ***. Only ** left
      
      * removing apply for sequences (use applyUnsafe)
      
      * mostly good but one theorem doesn't pass anymore
      
      * everything goes, no more *** (i.e. no match type)
      
      * progress
      
      * PredKer
      
      * mend
      
      * ConstantAtomicLabel, AtomicFormula
      
      * All atomic renaming completed
      
      * back to compile
      
      * finished tests, removed ConsOrPred
      
      * next step: Removes contravariant labels and terms and formulas extending |->
      
      * finish predicates, compiles
      
      * progress, Binders to sort and organize, some renaming to do in other files. Can remove - in labels.
      
      * finished cleaning and uniformizing definitions in Commons.scala, adapted other files accordingly. Compiles, tests passes, formated.
      
      * re-checked some warning, removed some redundant type checks.
      
      * fix substituteUnsafe2
      
      * Add "lisa-sets / compile" and "lisa-examples / compile" to the CI.
      70059505
  20. Nov 27, 2023
  21. Nov 24, 2023
    • SimonGuilloud's avatar
      Reorganize (#191) · 1411eac6
      SimonGuilloud authored
      Reorganize and clean up files: Remove old unussed files, move the root project to lisa-sets, change lisa.mathematics to lisa.maths, some more.
      
      
      1411eac6
  22. Nov 20, 2023
    • SimonGuilloud's avatar
      Update README.md · 99f8370d
      SimonGuilloud authored
      99f8370d
    • SimonGuilloud's avatar
      Save proofs (#187) · aef926bd
      SimonGuilloud authored
          -Add ids to terms like for formulas
          -Add serialization of proofs. Theorems can be serialized to binary files and loaded back on later run.
          -On my machine, running everything up to Recursion.scala takes 19s instead of 24s.
          -Does no hash consing, but simple optimizations to proof size (remove consecutive rewrites, flatten subproofs)
          -Cleans up the distinction between fullName (with the whole path, should be unique) and name (just the last part, possibly duplicate across different files/domains).
          -Good completion of documentation in WithTheorems
          -checkProofs does not print proofs of more thant 100 steps now.
          -fixed an indexing bug in ShrinkProof.flattenProof
          -Suite of tests for serialization, export then load a collection of theorems.
          -Push suite of tests for Tableaux tactic that were missing.
      aef926bd
  23. Nov 15, 2023
  24. Nov 08, 2023
    • xgampx's avatar
    • SimonGuilloud's avatar
      Small tactic improvement (#185) · cb85012f
      SimonGuilloud authored
      * improved printing, allow return in TacticSubproof
      
      * weird issues
      
      * fix bugs, improve printing andextractor paterns
      
      * scalafix, scalafmt
      
      * Fix small bug in asFront
      cb85012f
    • SimonGuilloud's avatar
      Proof checker fix (#183) · a1b378cd
      SimonGuilloud authored
      
      * super condensed propositional tableau with eqChecker data
      
      * work on princess
      
      * Start working on princess-lisa
      
      * Continued work on princess integration
      
      * more tinkering
      
      * trying some tableau implementation
      
      * continue work on ATP
      
      * Mostly working, problem with test 14 (with functions).
      
      * test 14 does pass (make variables names unique)
      
      * improvements on Tableau
      
      * Proof production is completely correct!
      
      * pruning implemented
      
      * Tableau integreated as a tactic. Working on all theorems of the Quantifiers file, except for those with equality
      
      * integrating tests
      
      * Integrated tests
      
      * clean some files
      
      * scalafix, scalafmt
      
      * fix unsoundness in Cut, LeftOr, RightAnd and RightIff proof checking. Correct Tableau prover accordingly.
      
      * Adapt cut proof checking
      
      * Adapt LeftOr proof checking
      
      * Adapt RightAnd proof checking
      
      * Adapting RightIff proof checking and better reporting
      
      * scalafmt
      
      * scalafix, scalafmt
      
      ---------
      
      Co-authored-by: default avatarSankalp Gambhir <sankalp.gambhir47@gmail.com>
      a1b378cd
    • SimonGuilloud's avatar
      Put list example files in a different branch (#180) · 13eb8604
      SimonGuilloud authored
      * Put list example files in a different branch
      
      * 2 exercises
      
      * Merge, remove ref to Lab4
      13eb8604
    • SimonGuilloud's avatar
      Tableau (#181) · 5e1e8651
      SimonGuilloud authored
      * super condensed propositional tableau with eqChecker data
      
      * work on princess
      
      * Start working on princess-lisa
      
      * Continued work on princess integration
      
      * more tinkering
      
      * trying some tableau implementation
      
      * continue work on ATP
      
      * Mostly working, problem with test 14 (with functions).
      
      * test 14 does pass (make variables names unique)
      
      * improvements on Tableau
      
      * Proof production is completely correct!
      
      * pruning implemented
      
      * Tableau integreated as a tactic. Working on all theorems of the Quantifiers file, except for those with equality
      
      * integrating tests
      
      * Integrated tests
      
      * clean some files
      
      * scalafix, scalafmt
      5e1e8651
  25. Oct 05, 2023
    • SimonGuilloud's avatar
      Manual (#179) · 49d235fe
      SimonGuilloud authored
      * Starting a layer of abstraction.
      
      * swrdgv
      
      * sedgf
      
      * ONgoing work. FOL structure mostly implemented, substitutions ongoing.
      
      * continued
      
      * further changes
      
      * LisaObject has a self type being self
      
      * More improvements on substitution
      
      * More work
      
      * multivar substitution
      
      * improvements to MapProofTest
      
      * finished fol, need to do prooflib
      
      * started work on prooflib, cut plenty unused code in Library.scala
      
      * more work on substitutions
      
      * updated WithTheorems
      
      * finished BasicSteptactics and substitutions
      
      * more corrections of tactics using unifier
      
      * fixed F and K imports
      
      * finished PrrofHelpers and definitions. Definitions possibly not final
      
      * Done most of the simpleDeducedSteps
      
      * ongoing work on types
      
      * added doc in Common.scala
      
      * more doc, some simplification
      
      * more doc and simplification of unneeded parts
      
      * fixed some export issues. Commented some tests. translation left for the future.
      
      * remove some debug code
      
      * add missing files
      
      * continue F integration. FInished with Set theory library files, now doing CommonTactics.scala (part is Dario's work).
      
      * simplifier remaining
      
      * renaming and mroe compatibility
      
      * more adaptations
      
      * merge build.sbt
      
      * fixing
      
      * transforming unification to Front
      
      * weird issues with match types and dotty
      
      * Compiles..? Need to simplify use of Arity in formula labels now. Finger crossed.
      
      * add missing files
      
      * still compiles
      
      * Term**0 |-> Term
      
      * Does not compile (dotty crash). Possibly due to covariant schematic labels.
      
      * Labels are contravariant
      
      * Weird "inherits conflicting instances of non-variant base trait LisaObject"
      
      * structure seems to work; Constant extends ConstantFunctionSymbol[0], issue with case class (has to reimplement).
      
      * back to the "common super type with case classes" structure
      
      * finished predicates, compiles. Connector left
      
      * Finished datastructure. TODO: Underlyings, Arity, uncomment asFront
      
      * Compiles, checked arity and underlyings (mostly)
      
      * Rehabilited asFront. Next stop, Substitution.
      
      * porting unificationUtils
      
      * half of unificationUtils done. Need to make Common even closer structure to kernel (variableFormula extends PredicateFormula)
      
      * progress through unification
      
      * compiles, progressing
      
      * safe for reset
      
      * only applySubst remaining.
      Note: given
      ```scala
      val s: Seq[(Variable, Term)]
      ```
      `s.toMap` crashes dotty. Instead, do `Map(s*)`.
      
      * Substitution done, everything compiles.
      
      * rehabilited commented function
      
      * utils tests compiles and pass.
      
      * Finished setTheorzLibrary, close to finish OLPropositionalSolver
      
      * Quantifiers.scala work, completed BasicProofTactic, implemented printing of terms and formulas
      
      * progress on compilation and run of SetTheory.scala
      
      * ordinals1 works
      
      * Everything works, even example package. Some tests are still commentated. Simplified a couple proofs.
      
      * Small improvements
      
      * Ready for demo
      
      * scalafix, scalafmt
      
      * git add
      
      * Add a Quick User Guide as chapter 1 of the reference manual
      
      * small changes to manual
      
      * update colors and date
      
      * git add quickguide.tex
      
      * small manual update
      
      * Add a section on special characters (unicode and ligatures), spellcheck.
      49d235fe
Loading