814 Commits (429ddee9f516b02f2bd91cd0a2a914f4ea68504c)

Author SHA1 Message Date
Josh Berdine dd9c1cd19a [sledge] Refactor: Fol.fml to private Fol.Fml
4 years ago
Josh Berdine 258d5306fb [sledge] Refactor: Revise external Context printing API
4 years ago
Josh Berdine c440ce81fe [sledge] Refactor: Replace Formula.is_false with equal ff, similarly for tt
4 years ago
Josh Berdine f20cabf7a4 [sledge] Change: Context interface to set-of-assumptions terminology
4 years ago
Josh Berdine 4da75ad2b0 [sledge] Change: Arithmetic comparison formulas to unary
4 years ago
Josh Berdine 263f5aa8a5 [sledge] Refactor: Reorder Fol definitions
4 years ago
Josh Berdine 73adcdf8af [sledge] Change: Formula to negation-normal form
4 years ago
Josh Berdine 379fedb845 [sledge] Add: Uninterpreted predicate symbols and literals to Fol
4 years ago
Josh Berdine 8f66a20afe [sledge] Refactor: Expose Context.fold_vars instead of fold_terms
4 years ago
Josh Berdine 5c4598c2e9 [sledge] Refactor: Context.difference to Solver
4 years ago
Josh Berdine df276d7be6 [sledge] Change: Move printing of Sh context and pure part to Context
4 years ago
Josh Berdine 8ced659303 [sledge] Change: Strengthen Sh.is_false by defining ito pure_approx
4 years ago
Josh Berdine 1881e990da [sledge] Change: Strengthen Sh.pure_approx with segment loc non-null
4 years ago
Josh Berdine 96aa56507f [sledge] Change: Revise Sh handling of empty and pure approximation
4 years ago
Josh Berdine f606ac0915 [sledge] Change: Sh.pure_approx to a Formula
4 years ago
Josh Berdine 867131e964 [sledge] Change: Generalize entails_eq to implies
4 years ago
Josh Berdine c9fa894a31 [sledge] Refactor: Move difference from Equality to Context
4 years ago
Josh Berdine fbc4f704ca [sledge] Fix: Fol.of_ses to normalize Ses polynomials
4 years ago
Josh Berdine f649c3693f [sledge] Fix: Fol.ses_map to account for simplification in Fol.to_ses
4 years ago
Josh Berdine b741bcd490 [sledge] Refactor: Move diff_classes from Equality to Context
4 years ago
Josh Berdine e3cbb0f27d [sledge] Add: Uninterpreted function symbols and applications to Fol
4 years ago
Josh Berdine c122577c18 [sledge] Change: Generalize Fol functional array indices from int to term
4 years ago
Josh Berdine 48833cc63b [sledge] Refactor: Expose constructors for record Terms
4 years ago
Josh Berdine d39dd1fee2 [sledge] Add: Array hash and sexp functions
4 years ago
Josh Berdine 04f7336301 [sledge] Build: Disable warning 30
4 years ago
Josh Berdine 32206a282f [sledge] Build: Suppress compiler error message noise
4 years ago
Josh Berdine 049b62f097 [sledge] Change: Sh.compare to ignore first-order context
4 years ago
Josh Berdine 8725d5fe81 [sledge] Refactor: pretty-printing of classes out of Ses to Fol
4 years ago
Josh Berdine 58dae840d3 [sledge] Change: Improve build info slightly
4 years ago
Josh Berdine a366b388a9 [sledge] Style: Autoformat dune-project and dune-workspace files
4 years ago
Josh Berdine 7e77bad4d2 [sledge] Change: Implement Fol using a solver-independent intermediate type
4 years ago
Josh Berdine a6dabc7924 [sledge] Refactor: Separate out conversion from Llair to Fol
4 years ago
Josh Berdine 896e9602f8 [sledge] Refactor: Rename Formula.conditional to Formula.cond
4 years ago
Josh Berdine 94e8b07997 [sledge] Refactor: Rename Formula.true_ and false_ to tt and ff
4 years ago
Josh Berdine 8d2bb0ddcf [sledge] Refactor: Move Ses.Term.Var.Subst to Fol.Var.Subst
4 years ago
Josh Berdine 79a4db7771 [sledge] Refactor: Make Term and Equality independent of Var.Subst
4 years ago
Josh Berdine 9cb74ac9ac [sledge] Refactor: Move Equality replay debugging to Fol
4 years ago
Josh Berdine 0568f2ee2d [sledge] Refactor: Distinguish Fol term and formula types
4 years ago
Josh Berdine 0998ce011f [sledge] Refactor: Add `formula` alias for `term` type, and use appropriately
4 years ago
Josh Berdine 4308ca649f [sledge] Remove unnecessary hash functions
4 years ago
Josh Berdine 967185e02a [sledge] Refactor: Reduce Fol sig to needed interface
4 years ago
Josh Berdine 3d1fbf3840 [sledge] Refactor: Expand sig of Fol submodules
4 years ago
Josh Berdine 0aed6eeab6 [sledge] Refactor: Rename to use "first-order logical context" terminology
4 years ago
Josh Berdine a629486c9f [sledge] Refactor: Rename Fol.Equality to Fol.Context
4 years ago
Josh Berdine dd2e7b4782 [sledge] Refactor: Add Fol module to be used for external interface of solver
4 years ago
Josh Berdine eca73cf39b [sledge] Build: Move sledge equality solver to separate lib
4 years ago
Josh Berdine 33d59b8642 [sledge] Refactor: Add Option.Import including Monad_infix and Monad_syntax
4 years ago
Josh Berdine c7556364b7 [sledge] Change: Strengthen Term invariant that exponents are integers
4 years ago
Josh Berdine 6b44eaf2e6 [sledge] Style: set ocamlformat config break-struct = force
4 years ago
Josh Berdine d5de3f78a6 [sledge] Refactor: split Equality.diff_classes out of ppx_classes_diff
5 years ago
Josh Berdine 89f60156a9 [sledge] Change: Use conjunction instead of list of terms for Sh.pure
5 years ago
Josh Berdine 1c7b3fb1f8 [sledge] Change: Avoid double-freshening during symbolic execution
5 years ago
Josh Berdine 37c90bff57 [sledge] Fix: Include fresh vars for overwritten vars in ghosts
5 years ago
Josh Berdine 323e96d4f4 [sledge] Refactor: Add monad to manage generation of fresh vars in Exec
5 years ago
Josh Berdine fe42fc912d [sledge] Change: Minor improvement of Sh.extend_us and Sh.freshen
5 years ago
Josh Berdine 6a7fb87c58 [sledge] Change: Return domain and range with Var.Subst constructors
5 years ago
Josh Berdine dcf8866ec5 [sledge] Change: Store inverted Domain_sh.from_call.subst, and clarify
5 years ago
Josh Berdine 1214ab71b7 [sledge] Refactor: Rename to use terminology for "sized sequences"
5 years ago
Josh Berdine 52dec5f4da [sledge] Refactor: Move eq_concat out of Term
5 years ago
Josh Berdine 299d06a8fb [sledge] Refactor: Remove Term.null redundant with Term.zero
5 years ago
Josh Berdine b2b420250a [sledge] Change: Use mulq instead of mul where possible
5 years ago
Josh Berdine 9e06304069 [sledge] Refactor: Factor out accessor for polynomial constant as Term.const_of
5 years ago
Josh Berdine fd75a1135e [sledge] Refactor: Factor out destructor for Integer Terms as Term.d_int
5 years ago
Josh Berdine 834260d43f [sledge] Refactor: Term.disjuncts out of Sh.pure
5 years ago
Josh Berdine 9c8f2e4a5c [sledge] Build: Move Timer to Nonstdlib
5 years ago
Josh Berdine cfc25ab825 [sledge] Refactor: Remove Nondet Llair.Exp and Term
5 years ago
Josh Berdine dde116b040 [sledge] Change: Translate LLVM undef to register assigned by nondet
5 years ago
Josh Berdine e17f8adfe9 [sledge] Refactor: Support instruction prefix in value translation
5 years ago
Josh Berdine 4fdc2f6c76 [sledge] Build: Wrap Llair library
5 years ago
Josh Berdine f82a1c0437 [sledge] Refactor: Move Llair.t to separate Program module
5 years ago
Josh Berdine 8abad29200 [sledge] Build: Move LLAIR into separate sublibrary
5 years ago
Josh Berdine 0716b47a78 [sledge] Refactor: Strengthen signature of Reg with type equations to Exp.Reg
5 years ago
Josh Berdine 51c7e26828 [sledge] Test: Move tests for (un)signed ints from Exp_test to Term_test
5 years ago
Josh Berdine d1f8714b56 [sledge] Refactor: Move Exp.term to Term.of_exp
5 years ago
Josh Berdine dbe914e6c7 [sledge] Change: Move Exp to Term conversion to Exp.term
5 years ago
Josh Berdine 4c6ad4a2e2 [sledge] Refactor: Add global flag to Reg representation
5 years ago
Josh Berdine df3e6ded1d [sledge] Build: Promote `import` subdirectory to a toplevel `nonstdlib` library
5 years ago
Josh Berdine 529f6c9ded [sledge] Doc: Update doc of Term.map_rec_pre
5 years ago
Josh Berdine 73a0b1f81b [sledge] Build: Update to ocaml 4.10.0, dune 2.5 and core 0.14
5 years ago
Josh Berdine 5e90bc61b7 [infer] Update to core 0.14
5 years ago
Josh Berdine 143eb793af [sledge] Refactor: Add `let@`
5 years ago
Josh Berdine 4f46eb0fd7 [sledge] Refactor: Remove unused functor arg name
5 years ago
Josh Berdine 70c4db27a9 [sledge] Change: Include ocaml version in version info
5 years ago
Josh Berdine 81478df4b7 [sledge] Fix: Do not leak llvm context
5 years ago
Josh Berdine 1635c1cf96 [sledge] Style: Change to less compact ocamlformat style
5 years ago
Josh Berdine 0d73a355c9 [sledge] Refactor: Simplify Term.solve_sum code
5 years ago
Josh Berdine 967a9e1c58 [sledge] Change: Rely on llvm size computation for global initializers
5 years ago
Josh Berdine 9bbe9dbba1 [sledge] Change: Rely on llvm size_of instead of Typ.size_of from llair
5 years ago
Josh Berdine d25519ef0f [sledge] Refactor: Simplify frontend check for unimplemented vector operations
5 years ago
Josh Berdine 3e5c2ac7d2 [sledge] Change: No need to compute type of arg of assume
5 years ago
Josh Berdine 7c53cb3d76 [sledge] Test: Update expected test results
5 years ago
Josh Berdine b12c6fd3f8 [sledge] Test: Ignore **/*.ll.{out,err} files generated by test runs
5 years ago
Josh Berdine 11ecbaa0b3 [sledge] Test: Show progress bar when running tests
5 years ago
Josh Berdine 7ec66c9c1b [sledge] Test: Fix `make -C test report-invalid-results`
5 years ago
Josh Berdine 65f369cf35 [ocamlformat] Reformat repo with new version
5 years ago
Josh Berdine 9d9060d213 [sledge] Represent recursive records non-recursively
5 years ago
Josh Berdine 849c61221d [sledge] Remove Exp.size_of and Term.size_of
5 years ago
Josh Berdine 0953444c24 [sledge] Remove dead Loc.is_none
5 years ago
Josh Berdine dd3645820f [sledge] Remove Sh.var_strength, no longer used by Solver
5 years ago
Josh Berdine 148d3d366f [sledge] Cleanup ppx_trace docs
5 years ago
Josh Berdine e2eb6d094a [sledge] Fix context name in test/Makefile
5 years ago
Josh Berdine b9dedea099 [sledge] Add fmt_all target to reformat no matter what dune thinks
5 years ago
Josh Berdine 209fef2256 [sledge] Optimize conjoining fresh equalities
5 years ago
Josh Berdine 53822697f9 [sledge] Rename contexts/profiles to be more conventional
5 years ago
Josh Berdine de20da4fb6 [sledge] Rename lib to src
5 years ago
Josh Berdine 8b59dc58fc [sledge] Remove dead llmodule field from frontend translation context
5 years ago
Scott Owens d30b0959a1 [sledge sem] Add a README
5 years ago
Jules Villard 7a888170e7 [pudge] it's alive!
5 years ago
Scott Owens 49d95f40a2 [sledge sem] Adds a theorem about block processing order
5 years ago
Scott Owens 8d49b8d6ef [sledge sem] Remove some proof cheats
5 years ago
Scott Owens 9327f41880 [sledge sem] Organise the tranlation corectness proof
5 years ago
Scott Owens 2a6ababa99 [sledge sem] Rework emap invariant
5 years ago
Josh Berdine 6e4a729ab6 [sledge] Do not add simple constants to Equality relation representation
5 years ago
Josh Berdine 1b5302b4d2 [sledge] Simplify remainder of a rational by an integer
5 years ago
Josh Berdine fcd0e41ee6 [sledge] Return early for == args in Term compare and equal
5 years ago
Josh Berdine 76695690b8 [sledge] Do not simplify Mul and Div terms
5 years ago
Josh Berdine a3a6a5a6fe [sledge] Do not solve for Integer constants
5 years ago
Josh Berdine 32c5fb2837 [sledge] Do not represent Equality rep sparsely on constants
5 years ago
Josh Berdine de1689ac87 [sledge] Change And and Or terms from binary to flattened n-ary
5 years ago
Josh Berdine 87c8eb7c3a [sledge] Strengthen normalization of division
5 years ago
Josh Berdine cd72d3a82e [sledge] Simplify Term.Sum.to_term
5 years ago
Josh Berdine 2fc8bc1f84 [sledge] Export Term.map_rec_pre and add Term.fold_map_rec_pre
5 years ago
Josh Berdine 548928a839 [sledge] Strengthen Equality invariant to ensure carrier closed under subterms
5 years ago
Josh Berdine 2124be1c71 [sledge] Remove the "simplified" intermediate between interpreted and uninterpreted
5 years ago
Josh Berdine ee595f2ebf [sledge] Strengthen Equality.close to handle rep being sparse on constants
5 years ago
Josh Berdine 2f4f9801ed [sledge] Add Term.is_constant
5 years ago
Josh Berdine c91e09031f [sledge] Strengthen Equality normalization
5 years ago
Josh Berdine 0f50d3c248 [sledge] Do not solve polynomials for Mul or Div terms
5 years ago
Josh Berdine eb750ba6f9 [sledge] Avoid cyclic solutions to polynomial equations
5 years ago
Josh Berdine 1b20f02052 [sledge] Strengthen normalization of division, avoiding non-reals
5 years ago
Josh Berdine 4ea9eced05 [sledge] Improve Term.Sum.to_term
5 years ago
Josh Berdine 1a34e7eed2 [sledge] Add rational constants
5 years ago
Josh Berdine 7b33996072 [sledge] Use term height to avoid "pumpable" cyclic equations in Equality
5 years ago
Josh Berdine 6c03d88cf7 [sledge] Move Term.agg_size
5 years ago
Josh Berdine 0cee03aaa1 [sledge] Simplify identity type conversions only at initial construction
5 years ago
Josh Berdine 7e4673cbeb [sledge] Improve Equality invariant checking and debugging support
5 years ago
Josh Berdine 3c0924cf01 [sledge] Minor code improvement
5 years ago
Josh Berdine 60df5d6f3a [sledge] Fix Equality.Subst.compose to preserve physical equality
5 years ago
Josh Berdine 013b948dc4 [sledge] Rename extend to compose1 to avoid potential shadowing confusion
5 years ago
Josh Berdine fddb2fa991 [sledge] Add Map.map_endo
5 years ago
Josh Berdine ef63683a16 [sledge] Add Term.fold_map
5 years ago
Josh Berdine b35e3d30e0 [sledge] Add Map.fold_until
5 years ago
Josh Berdine b09f3774a4 [sledge] Add Qset.is_empty
5 years ago
Josh Berdine 165454e17d [sledge] Add Map and Qset operations to access top of underlying tree
5 years ago
Josh Berdine 7fdd3cccbb [sledge] Add Option.or_else
5 years ago
Josh Berdine 2aacc03880 [sledge] Remove eliminated existentials from equality relations
5 years ago
Josh Berdine 30c23f8cd6 [sledge] Fix term ordering bug between monomials and vars
5 years ago
Josh Berdine e7217ac5fe [sledge] Check equality of logical variables by id only
5 years ago
Josh Berdine c8e75e3b82 [sledge] Dump perf diagnostics and replays for slow queries to stderr
5 years ago
Josh Berdine a4e523b5b6 [sledge] Rename `*_preserves_phys_equal` to `*_endo` and clarify docs
5 years ago