Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 1.81 KB

todo.md

File metadata and controls

55 lines (37 loc) · 1.81 KB

22 oct, 2024:

  • fix bug with existenials occuring in other variables' skolem function

    • rewrite the entire elim_a functionality.
    • fix issue with order of adding vs typechecking of mutually dependent skolems
  • add another assertion for ISC that quantifies over the actualy value, not just location

  • exhale order of clause witness computation bug

  • formalize masks

  • introduce fold existential witness notation

  • move injectivity check outside.

  • reorder rewrite passes to do inj checks for preds before rewriting fold/unfold maybe by adding new lemmas

  • sweep to add default triggers for every Quant

  • add forks

  • toy around with preds as macros

Type-checking:

  • Ensure that return variables are not allowed in pre-conditions

  • Check that openAU, commitAU having right number of arguments

  • Check that assertion expressions having the right format -- conditionals in ternary expr being pure, etc

  • Ensure that return variables of functions are not used in the function body

  • Ensure that predicates don't have implicit ghost args

  • Ensure that left-hand side of bindAU is well-typed (number of vars matches number of implicit args; types match, etc.)

  • Implement mask computation to check interface <-> module compatibility

  • Improve expression matching algorithm

  • Revamp witness computation code

  • Fix return proc() stmts

  • Allow parsing of map[m1][m2] expressions iirc Thomas did implement a fix for this, but he thinks it was a bit hacky.

  • Parse field reads/writes/cas/fpu separately

  • Fix missing triggers in all Expr.mk_binder calls

  • Allow types to be used as modules implementing Library.Type

===

  • Fix dependency analysis wrt auto lemmas
  • Investigate spurious "unknown"s in the middle of log files

pred(a,b) { \exists x^123, y :: }

fold pred(a_1, a_2)[x := ..., x := ]