1165 Commits (f7278e53aff328fa409f0e38cd723594ccc2085b)

Author SHA1 Message Date
Josh Berdine b6ffeb179f [sledge] Cleanup and tracing in Trm and Arith
4 years ago
Josh Berdine 9945cc9495 [sledge] Fix type of List.iter
4 years ago
Josh Berdine f5e051f58a [sledge] Add replay debugging for Context.dnf
4 years ago
Josh Berdine 34d1eeb5dc [sledge] Uniformly include representatives in equality classes
4 years ago
Josh Berdine 2f0c4af2dd [sledge] Reorder Context definitions
4 years ago
Josh Berdine 1ddb5fb249 [sledge] Represent equality classes explicitly
4 years ago
Josh Berdine 999710fbb7 [sledge] Change Map.to_list to return bindings in order
4 years ago
Josh Berdine 1c43a7fe3d [sledge] Simplify Context.Subst.compose1
4 years ago
Josh Berdine aeba96a3c7 [sledge] Refactor theory solver into separate module
4 years ago
Josh Berdine 757e44ca50 [sledge] Simplify Context as wrt is unneeded when no_fresh is true
4 years ago
Josh Berdine caae7515e8 [sledge] Rework first-order solver to use a list of pending equations
4 years ago
Josh Berdine 01c8024a50 [sledge] Simplify use of solve_extract in Context.solve_for_vars
4 years ago
Josh Berdine 440aed0f09 [sledge] Strengthen Context.invariant
4 years ago
Josh Berdine 1a9737dbe5 [sledge] Factor out representation of equality classes into Context.Cls
4 years ago
Josh Berdine 9b4059b07c [sledge] Do not normalize class members
4 years ago
Josh Berdine 81f77cf7bd [sledge] Strengthen Context.solve_for_vars on uninterpreted functions
4 years ago
Josh Berdine 5c5a1cc581 [sledge] Add support for dumping and replaying solver queries
4 years ago
Josh Berdine 11c8ba21be [sledge] Allow more flexibility in Trace.trace breaking
4 years ago
Josh Berdine 93abf301c9 [sledge] Fix type of List.filter
4 years ago
Josh Berdine 2d67fd0fa4 [sledge] Add Trm.Set.pp
4 years ago
Josh Berdine 0ebc74ae8c [sledge] Add Set.Provide_pp
4 years ago
Josh Berdine 8943e0eb6d [sledge] Simplify Sh.pp_us
4 years ago
Josh Berdine e154e38439 [sledge] Factor out common code around calls of Dom.exec_assume
4 years ago
Josh Berdine dc3d67d5cc [sledge] Update tests
4 years ago
Josh Berdine af980bafa0 [sledge] Add number of solver steps to reported statistics
4 years ago
Josh Berdine 13f3933927 [sledge] Test infra fixes and improvements
4 years ago
Josh Berdine c25f5feafb [sledge] Compile debug mode with optimization enabled
4 years ago
Josh Berdine a4abda70e9 [sledge] Strengthen Sh.is_unsat
4 years ago
Josh Berdine 8ff88bf22f [sledge] Check is_unsat of stem in Sh.simplify
4 years ago
Josh Berdine cecd3db59f [sledge] Fix bug in Sh.simplify
4 years ago
Josh Berdine c10ccafd43 [sledge] Add fast path to Context.partition_valid for empty existentials
4 years ago
Josh Berdine d6c8f6aafd [sledge] Add fast path to Context.Subst.compose for empty
4 years ago
Josh Berdine 63a8f22eef [sledge] Optimize Context.Subst.compose1
4 years ago
Josh Berdine 9e373fb68c [sledge] Generalize Context.Subst.compose to support shadowed bindings
4 years ago
Josh Berdine 5f8989fc39 [sledge] Revise quantifier elimination of disjunctive formulas
4 years ago
Josh Berdine 8f40a85cd8 [sledge] Refactor QE in Sh.simplify to simplify Context interface
4 years ago
Josh Berdine d574b14dc7 [sledge] Improve Sh.simplify using stronger Context.elim
4 years ago
Josh Berdine 1c37a0f146 [sledge] Generalize Context.elim and make it more robust
4 years ago
Josh Berdine 7f835bf80a [sledge] Fix Context.fold_uses_of
4 years ago
Josh Berdine ee177a980d [sledge] Fix type of Context.fold_uses_of
4 years ago
Josh Berdine d72d83bfb4 [sledge] Freshen nested existentials also wrt ancestor universals
4 years ago
Josh Berdine e9fd3b603d [sledge] Add fast path to Sh.simplify for unsat formulas
4 years ago
Josh Berdine d8d8f947d7 [sledge] Delay unsat check in exec_assume until after simplify
4 years ago
Josh Berdine df37767a93 [sledge] Detect unsat symbolic heaps earlier during simplification
4 years ago
Josh Berdine 69a979612b [sledge] Use unsat context and ff pure constraints in unsat symbolic heaps
4 years ago
Josh Berdine c065e6f384 [sledge] Additional tracing
4 years ago
Josh Berdine a18165c553 [sledge] Improve tracing
4 years ago
Josh Berdine 0879afe950 [sledge] Remove dead Domain.is_false
4 years ago
Josh Berdine edb60837b3 [sledge] Rename Sh.is_false to is_unsat
4 years ago
Josh Berdine a7b547ccdf [sledge] Fix Context.apply_subst to preserve rest of representation
4 years ago
Josh Berdine e0312f1274 [sledge] Add fast path for applying an empty substitution
4 years ago
Josh Berdine 3800a050f1 [sledge] Eliminate jumps to jumps
4 years ago
Josh Berdine 1e4e650dec [sledge] Change execution options from a record to a module
4 years ago
Josh Berdine 453068fa53 [sledge] Revise Control flow exploration algorithm
4 years ago
Josh Berdine bb52f96ded [sledge] Fix a fresh name clash when solving extract equations
4 years ago
Josh Berdine 77c630b7f4 [sledge] Normalize pure constraints when conjoining to a symbolic heap
4 years ago
Josh Berdine 481774c115 [sledge] Model operator new[](unsigned long)
4 years ago
Josh Berdine 10087c6281 [sledge] Strengthen spec of mallctl
4 years ago
Josh Berdine e7e1020e36 [sledge] Fix scope on return in case actual return clashes with formals
4 years ago
Josh Berdine 16a9b9f7d2 [sledge] Fix translation of alloca
4 years ago
Josh Berdine d33cecfa33 [sledge] Fix in Sh.simplify
4 years ago
Josh Berdine 86d129847c [sledge] Strengthen Arithmetic.solve_zero_eq
4 years ago
Josh Berdine 2726079a63 [sledge] Handle whether to follow exceptional control flow at model compilation
4 years ago
Josh Berdine c9185ae607 [sledge] Add __llair_unreachable intrinsic for use in model code
4 years ago
Josh Berdine 4605f505ce [sledge] Strengthen dynamic resolution of indirect calls
4 years ago
Josh Berdine 5c5126474e [sledge] Statically resolve known function calls
4 years ago
Josh Berdine 9e3ca541e8 [sledge] Revise name generation for return blocks of void-returning functions
4 years ago
Josh Berdine c346c5ec7f [sledge] Convert memset, memcpy, and memmov to intrinsics
4 years ago
Josh Berdine 6e5e127380 [sledge] Enable translation of intrinsic instructions for llvm intrinsics
4 years ago
Josh Berdine 31744dcfbf [sledge] Remove support for intrinsic functions
4 years ago
Josh Berdine 87ee0df07d [sledge] Convert intrinsic functions to instructions
4 years ago
Josh Berdine 1fddf1a5d0 [sledge] Add Exec.intrinsic for intrinsic instructions
4 years ago
Josh Berdine 4bae1ec07e [sledge] Rename exec_intrinsic to exec_intrinsic_func
4 years ago
Josh Berdine 9a07d6a778 [sledge] Reuse the translation of instruction intrinsics for Invoke
4 years ago
Josh Berdine f7894a3378 [sledge] Factor out computation of number of actuals for Call and Invoke
4 years ago
Josh Berdine 0603a7616b [sledge] Factor our Frontend normalization of callees
4 years ago
Josh Berdine 0fba102370 [sledge] Generate Intrinsic instructions in the frontend
4 years ago
Josh Berdine e9aff56bbc [sledge] Factor out Frontend translation of "instruction" intrinsics
4 years ago
Josh Berdine 074f668c00 [sledge] Add Intrinsic instruction
4 years ago
Josh Berdine c063a91c7c [sledge] Add Option.flat_map
4 years ago
Josh Berdine 2b89fa531a [sledge] Add CCBijection to Nonstdlib
4 years ago
Josh Berdine bb4c1e1133 [sledge] Represent function formal parameters and actual arguments in order
4 years ago
Josh Berdine b9bb3ca220 [sledge] Add Iter.fold_map and folding_map
4 years ago
Josh Berdine f835e46308 [sledge] Fix form of failure in interval analysis
4 years ago
Josh Berdine 78eb85bcf4 [sledge] Fix scope when entering scope of a local shadowed by a callee
4 years ago
Josh Berdine 02625ac1ce [sledge] Add coverage statistics to test report
4 years ago
Josh Berdine 558921e494 [sledge] Allow -bound flag to be overridden in test Makefile
4 years ago
Josh Berdine 0b1760af24 [sledge] Add compare, equal, and hash to core Llair types
4 years ago
Josh Berdine 8fc7e5ef58 [sledge] Move handling of realpath to the frontend and cli
4 years ago
Josh Berdine f4c2c8be7c [sledge] Translate __llair_choice intrinsic to nondet
4 years ago
Josh Berdine d34dd02ee1 [sledge] Fix over-aggressive normalization in Trm._Extract
4 years ago
Josh Berdine b46baac684 [sledge] Auto-scale numbers in test report
4 years ago
Josh Berdine b0e37f3cbb [sledge] Fix trace spec parsing of functions starting with underscore
4 years ago
Josh Berdine de2ea63d40 [sledge] Fix vocabulary handling of symbolic execution of multi-spec insts
4 years ago
Josh Berdine fe93dd754e [sledge] Improve the option and file naming of binary vs text llair output
4 years ago
Josh Berdine f02952c003 [sledge] Rename Sh.seg.seq to cnt
4 years ago
Josh Berdine f284425cb7 [sledge] Rename some unary predicates with is_-prefixes
4 years ago
Josh Berdine 6970741f27 [sledge] Add arg labels on Trm constructors to avoid confusion
4 years ago
Josh Berdine 2118ebd923 [sledge] Use the size of a global's type instead of maintaining separately
4 years ago
Josh Berdine 4916aee050 [sledge] Revise Context.classify to detect more atomic terms
4 years ago
Josh Berdine c31e7f2ee7 [sledge] Treat Splat as interpreted
4 years ago
Josh Berdine 5138c0eb15 [sledge] Refactor the theory cases of the equality solver for clarity
4 years ago
Josh Berdine 23b5571029 [sledge] Normalize Splat 0 to 0
4 years ago
Josh Berdine d2b78bbd79 [sledge] Improve term printing, avoid misidentification of string constants
4 years ago
Josh Berdine a8feaa4262 [sledge] Add missing case to sequence theory solver
4 years ago
Josh Berdine 1d974c0587 [sledge] Use an actual uninterpreted function in Sh tests
4 years ago
Josh Berdine ee7b77cfb1 [sledge] Distinguish globals and functions from variables
4 years ago
Josh Berdine 8e09e86295 [sledge] Creating summaries does not require the globals
4 years ago
Josh Berdine 0aebb07757 [sledge] Identify intrinsics using strings instead of variables
4 years ago
Josh Berdine f821ca9634 [sledge] Base implementation of localization on atoms instead of vars
4 years ago
Josh Berdine d0ac9cb557 [sledge] Simplify term and formula iterators
4 years ago
Josh Berdine fac4bc9dfa [sledge] Remove redundant Frontend function
4 years ago
Josh Berdine fb094ab046 [sledge] Detect and fail invoke instrs that call inline asm
4 years ago
Josh Berdine 4326d56f24 [sledge] Only demangle names starting with _Z
4 years ago
Josh Berdine fc2695ce88 [sledge] Add LLAIR expression form for globals
4 years ago
Josh Berdine 6899cd1a60 [sledge] Rename Global to GlobalDefn
4 years ago
Josh Berdine 55dfce6f88 [sledge] Add LLAIR expression form for function names
4 years ago
Josh Berdine 60eed3fbad [sledge] Fix generation of sledge-help.txt
4 years ago
Josh Berdine aacdbc060a [sledge] Remove record theory from backend, encode using sequence theory
4 years ago
Josh Berdine aa307294a5 [sledge] Eliminate recursive records
4 years ago
Josh Berdine 0c17ac4281 [sledge] Add check that frontend preserves sizes of types
4 years ago
Josh Berdine e415b8f22e [sledge] Change Typ.is_sized to remove hack for opaque types
4 years ago
Josh Berdine 639bda69e7 [sledge] Add byte-offsets of struct fields to Llair.Typ.t
4 years ago
Josh Berdine 18c908423a [sledge] Remove 'packed' field from Llair types
4 years ago
Josh Berdine a40cd07c7d [sledge] Classify issues translating type sizes as `todo` instead of `fail`
4 years ago
Josh Berdine d768e74416 [sledge] Do not translate LLVM vector types
4 years ago
Josh Berdine d542c7b7b2 [sledge] Protect against nonexistent paths in debug info
4 years ago
Josh Berdine f00ee99c2c [sledge] Improve test Makefile
4 years ago
Josh Berdine 6da7dbbdd1 [sledge] Fix sledge llvm translate command
4 years ago
Josh Berdine 72ba7c4faa [sledge] Remove dead Arith representation fold operations
4 years ago
Josh Berdine 1a4363627c [sledge] Revise Arith.map to use maximal non-interpreted subterms
4 years ago
Josh Berdine 6f4dcfbdd9 [sledge] Add the embedding of arithmetic into terms to the arithmetic interface
4 years ago
Josh Berdine 10e921bcec [sledge] Refine Arith.classify to distinguish interpreted and uninterpreted
4 years ago
Josh Berdine 0e3868c35f [sledge] Minor code simplification in Trm.map
4 years ago
Josh Berdine 82581e4074 [sledge] Fix existential mishandling in Sh.simplify
4 years ago
Josh Berdine 169ee34371 [sledge] Drop fresh variables that do not appear in the solution
4 years ago
Josh Berdine bfbd39c2a7 [sledge] Interpret conversions between float types as identity
4 years ago
Josh Berdine 868a8b8526 [sledge] Interpret conversions between pointer types as identity
4 years ago
Josh Berdine 855461700e [sledge] Minor code simplification in Domain_sh.retn
4 years ago
Josh Berdine a1a913e626 [sledge] Improve name of convert function symbols
4 years ago
Josh Berdine 0f060b1779 [sledge] Fix Sh.star when formulas can be false without unsat context
4 years ago
Josh Berdine e057756e04 [sledge] Improve sledge report
4 years ago
Josh Berdine 29af15cdd1 [sledge] Add Containers.Ord
4 years ago
Josh Berdine 8dc7635251 [sledge] Add handler for Ctrl-C
4 years ago
Josh Berdine 22f17140f0 [sledge] Minor exception optimizations
4 years ago
Josh Berdine 7f9afea411 [sledge] Run debug code when printing is not enabled
4 years ago
Josh Berdine 52b511d053 [sledge] Improve backtraces of invariant violation and replay exceptions
4 years ago
Josh Berdine 51a16621aa [sledge] Fix unintended quoting of symbol names
4 years ago
Josh Berdine 7a9fe91846 [sledge] Strengthen normalization by flattening nested And and Or formulas
4 years ago
Josh Berdine 93145cf4e6 [sledge] Minor simplification of implementation of Sh.norm_
4 years ago
Josh Berdine 8dc0a422e1 [sledge] Make API of Term constant destructors uniform
4 years ago
Josh Berdine 889f4cb666 [sledge] Document sequence and record term constructors
4 years ago
Josh Berdine 9cd5b02171 [sledge] Change Context API to use Term instead of Trm
4 years ago
Josh Berdine ca67dfb801 [sledge] Reorganize first-order logic support into separate library
4 years ago
Josh Berdine 03c2a6f118 [sledge] Switch Fol.Context from using Ses.Equality to Context
4 years ago
Josh Berdine ca9acdb915 [sledge] Port Ses equality solver to Fol term and formula representation
4 years ago
Josh Berdine fcc27cf7a2 [sledge] Expose Formula.t = Fml.t
4 years ago
Josh Berdine b5b4cdd6a8 [sledge] Add Term.get_trm
4 years ago
Josh Berdine 82826db011 [sledge] Add Trm.height
4 years ago
Josh Berdine 8381e149a3 [sledge] Add Trm.fv
4 years ago
Josh Berdine 84234b7d37 [sledge] Add Var.of_trm
4 years ago
Josh Berdine 4756316217 [sledge] Add Term.map_trms
4 years ago
Josh Berdine 6f5f42b3e3 [sledge] Add Trm.map
4 years ago
Josh Berdine 414b4fcaea [sledge] Add Trm.Map
4 years ago
Josh Berdine 96ee17897c [sledge] Add Trm.pp_diff and expose Trm.pp
4 years ago
Josh Berdine 402bb5f59b [sledge] Simplify Var.strength type
4 years ago
Josh Berdine 48dcd01547 [sledge] Strengthen normalization of And and Or formulas
4 years ago
Josh Berdine 4473c6a193 [sledge] Move Formula.fold_dnf to Fml
4 years ago
Josh Berdine cc3f76b0ad [sledge] Strengthen normalization of conditional terms
4 years ago
Josh Berdine b1b79a3fed [sledge] Fix Arithmetic.map
4 years ago
Josh Berdine 6ea7d26d78 [sledge] Improve printing
4 years ago
Josh Berdine 849c5c3ab5 [sledge] Add Map.partition_map
4 years ago
Josh Berdine 1da536ebe5 [sledge] Change to normal argument order for Set.mem
4 years ago
Josh Berdine 54f6b9e974 [sledge] Add iterator of subterms of Trm.t
4 years ago
Josh Berdine e4749098b2 [sledge] Add Arithmetic.solve_zero_eq
4 years ago
Josh Berdine f007b774f4 [sledge] Do not expose the internal Fml interface
4 years ago
Josh Berdine 21f3287e42 [sledge] Do not expose the internal Trm interface
4 years ago
Josh Berdine 194127eb4b [sledge] Move additional Fol representation operations to Trm and Fml
4 years ago
Josh Berdine dd19e11949 [sledge] Rename Fol core types to follow convention
4 years ago
Josh Berdine 1643bf1c50 [sledge] Factor core Fol modules into separate modules
4 years ago
Josh Berdine 90675ca33a [sledge] Improve Monad interface
4 years ago
Josh Berdine 50e4fc3e8c [sledge] Replace fold_vars with an iterator in Fol
4 years ago
Josh Berdine 4bca4f238e [sledge] Add Fol normalization of sequence terms
4 years ago
Josh Berdine 6b2f0a4a1e [sledge] Strengthen normalization of arithmetic equalities
4 years ago
Josh Berdine 04a9a06870 [sledge] Omit true from conjunction and false from disjunction
4 years ago
Josh Berdine 4a59f053fa [sledge] Improve printing
4 years ago
Josh Berdine 3b4c7ab41f [sledge] Move normalization of literals out of Propositional
4 years ago
Josh Berdine 2083e3ee86 [sledge] Minor simplifications using Set and Map iterators
4 years ago
Josh Berdine 920c553902 [sledge] Change type of fold functions for improved composition
4 years ago
Josh Berdine ec4cb61db3 [sledge] Shift to a more standard Set API
4 years ago
Josh Berdine 46abb011cb [sledge] Do not reverse Map.to_iter
4 years ago
Josh Berdine 4780b92584 [sledge] Shift to a more standard Map API
4 years ago
Josh Berdine 01bf695fa3 [sledge] Do not set -error-style short
4 years ago
Josh Berdine 917e57a5cf [sledge] Simplify equal_or_opposite to eval_iff
4 years ago
Josh Berdine f29f5cfb6b [sledge] Factor Fol.Fml out into a separate module
4 years ago
Josh Berdine e8b94baae2 [sledge] Normalize And and Or formulas wrt ACUZ
4 years ago
Josh Berdine 6ddb9fe1b8 [sledge] Avoid use of polymorphic compare default arguments in nonstdlib
4 years ago
Josh Berdine 5574c5e078 [sledge] Replace uses of Base.With_return with Iterators
4 years ago
Josh Berdine 1697382344 [sledge] Switch IArray from Core_kernel.Array to NS.Array
4 years ago
Josh Berdine 9959fbb478 [sledge] Switch from Base.Array to Containers.Array
4 years ago