#
99e3d4c3 |
|
06-Dec-2017 |
wenzelm <none@none> |
prefer control symbol antiquotations;
|
#
9a20f33d |
|
01-Oct-2017 |
blanchet <none@none> |
properly take quantifiers into account (cf. my Ph.D. thesis, Section 6.4.1) and offer three modes of completeness (for experiments mostly)
|
#
f9beda92 |
|
29-Aug-2017 |
blanchet <none@none> |
towards support for HO SMT-LIB
|
#
7e40ee17 |
|
20-Jun-2017 |
blanchet <none@none> |
tuning
|
#
ab86495e |
|
20-Jun-2017 |
blanchet <none@none> |
correctly unfold applied 'let's (e.g. '(let x = a in f) b') -- and removed dead code
|
#
23cb2460 |
|
04-Dec-2015 |
blanchet <none@none> |
removed needless complication for modern SMT solvers
|
#
80514171 |
|
24-Sep-2014 |
blanchet <none@none> |
interleave (co)datatypes in the right order w.r.t. dependencies
|
#
0695b7e6 |
|
17-Sep-2014 |
blanchet <none@none> |
added codatatype support for CVC4
|
#
f4f8c25c |
|
17-Sep-2014 |
blanchet <none@none> |
added interface for CVC4 extensions
|
#
ac75f5e7 |
|
27-Aug-2014 |
blanchet <none@none> |
renamed new SMT module from 'SMT2' to 'SMT' --HG-- rename : src/HOL/SMT2.thy => src/HOL/SMT.thy rename : src/HOL/Tools/SMT2/smt2_builtin.ML => src/HOL/Tools/SMT/smt_builtin.ML rename : src/HOL/Tools/SMT2/smt2_config.ML => src/HOL/Tools/SMT/smt_config.ML rename : src/HOL/Tools/SMT2/smt2_datatypes.ML => src/HOL/Tools/SMT/smt_datatypes.ML rename : src/HOL/Tools/SMT2/smt2_failure.ML => src/HOL/Tools/SMT/smt_failure.ML rename : src/HOL/Tools/SMT2/smt2_normalize.ML => src/HOL/Tools/SMT/smt_normalize.ML rename : src/HOL/Tools/SMT2/smt2_real.ML => src/HOL/Tools/SMT/smt_real.ML rename : src/HOL/Tools/SMT2/smt2_solver.ML => src/HOL/Tools/SMT/smt_solver.ML rename : src/HOL/Tools/SMT2/smt2_systems.ML => src/HOL/Tools/SMT/smt_systems.ML rename : src/HOL/Tools/SMT2/smt2_translate.ML => src/HOL/Tools/SMT/smt_translate.ML rename : src/HOL/Tools/SMT2/smt2_util.ML => src/HOL/Tools/SMT/smt_util.ML rename : src/HOL/Tools/SMT2/smtlib2.ML => src/HOL/Tools/SMT/smtlib.ML rename : src/HOL/Tools/SMT2/smtlib2_interface.ML => src/HOL/Tools/SMT/smtlib_interface.ML rename : src/HOL/Tools/SMT2/smtlib2_isar.ML => src/HOL/Tools/SMT/smtlib_isar.ML rename : src/HOL/Tools/SMT2/smtlib2_proof.ML => src/HOL/Tools/SMT/smtlib_proof.ML rename : src/HOL/Tools/SMT2/verit_isar.ML => src/HOL/Tools/SMT/verit_isar.ML rename : src/HOL/Tools/SMT2/verit_proof.ML => src/HOL/Tools/SMT/verit_proof.ML rename : src/HOL/Tools/SMT2/verit_proof_parse.ML => src/HOL/Tools/SMT/verit_proof_parse.ML rename : src/HOL/Tools/SMT2/z3_new_interface.ML => src/HOL/Tools/SMT/z3_interface.ML rename : src/HOL/Tools/SMT2/z3_new_isar.ML => src/HOL/Tools/SMT/z3_isar.ML rename : src/HOL/Tools/SMT2/z3_new_proof.ML => src/HOL/Tools/SMT/z3_proof.ML rename : src/HOL/Tools/SMT2/z3_new_real.ML => src/HOL/Tools/SMT/z3_real.ML rename : src/HOL/Tools/SMT2/z3_new_replay.ML => src/HOL/Tools/SMT/z3_replay.ML rename : src/HOL/Tools/SMT2/z3_new_replay_literals.ML => src/HOL/Tools/SMT/z3_replay_literals.ML rename : src/HOL/Tools/SMT2/z3_new_replay_methods.ML => src/HOL/Tools/SMT/z3_replay_methods.ML rename : src/HOL/Tools/SMT2/z3_new_replay_rules.ML => src/HOL/Tools/SMT/z3_replay_rules.ML rename : src/HOL/Tools/SMT2/z3_new_replay_util.ML => src/HOL/Tools/SMT/z3_replay_util.ML rename : src/HOL/Tools/Sledgehammer/sledgehammer_prover_smt2.ML => src/HOL/Tools/Sledgehammer/sledgehammer_prover_smt.ML rename : src/HOL/Word/Tools/smt2_word.ML => src/HOL/Word/Tools/smt_word.ML
|
#
678feb4f |
|
18-Apr-2012 |
blanchet <none@none> |
avoid generating syntactically invalid patterns (with "if_then_else") in SMT-LIB files
|
#
ec7020cd |
|
18-Feb-2012 |
boehmes <none@none> |
corrected treatment of applications of built-in functions to higher-order terms
|
#
05e8180b |
|
20-Jul-2011 |
boehmes <none@none> |
removed debugging facilities accidentally left in the committed code
|
#
4e6b21f6 |
|
19-Jul-2011 |
boehmes <none@none> |
generalized lambda-lifting such that it is less specifically tailored for SMT (it does not anymore dependent on any SMT-specific code)
|
#
25a19c92 |
|
20-Jul-2011 |
boehmes <none@none> |
moved lambda-lifting on terms into a separate structure (for better re-use in tools other than SMT)
|
#
9981ff6c |
|
14-Jul-2011 |
blanchet <none@none> |
allow lambda-lifting without triggers
|
#
11a716c7 |
|
26-Jun-2011 |
boehmes <none@none> |
generalized introduction of explicit application constant: consider more functions as possible witness/instance of quantifiers than before (a constant of type T1 -> T2 -> T3 should be considered to have a rank less or equal to 1 if variables of type T2 -> T3 occur bound in a problem); maintain extra-logical information when introducing explicit application; handle let-expressions properly
|
#
60990596 |
|
22-Jun-2011 |
boehmes <none@none> |
export lambda-lifting code as there is potential use for it within Sledgehammer
|
#
edea3ba8 |
|
14-Jun-2011 |
boehmes <none@none> |
slightly more general treatment of mutually recursive datatypes; treat datatype constructors and selectors similarly to built-in constants wrt. introduction of explicit application (in the same way as what is already done for eta-expansion)
|
#
dbb98dbb |
|
05-Jun-2011 |
boehmes <none@none> |
made introduction of explicit application stable under removal of vacuous facts (which only lower the rank of constants but do not participate in the proof)
|
#
1f192f29 |
|
08-Apr-2011 |
boehmes <none@none> |
fixed eta-expansion: use correct order to apply new bound variables
|
#
c53f1f37 |
|
08-Apr-2011 |
boehmes <none@none> |
unfold and eta-contract let expressions before lambda-lifting to avoid bad terms
|
#
ffc0c86a |
|
21-Feb-2011 |
boehmes <none@none> |
wrap occurrences of quantifiers in first-order terms (i.e., outside first-order formulas) in If-expressions
|
#
ead8ec93 |
|
03-Jan-2011 |
boehmes <none@none> |
re-implemented support for datatypes (including records and typedefs); added test cases for datatypes, records and typedefs
|
#
06e58f50 |
|
20-Dec-2010 |
boehmes <none@none> |
avoid ML structure aliases (especially single-letter abbreviations)
|
#
abf72b42 |
|
19-Dec-2010 |
boehmes <none@none> |
removed odd decoration of built-in symbols as Vars (instead provide built-in desctructor functions along with their inverse functions); removed odd retyping during folify (instead, keep all terms well-typed)
|
#
dacba756 |
|
17-Dec-2010 |
boehmes <none@none> |
fixed lambda-lifting: shift indices of bound variables correctly (after locking the required bound variables) and apply bound variables to the new function symbol in the right order; fixed introduction of explicit application: use explicit application for every additional argument (grouping of arguments caused confusion when translating into the intermediate format)
|
#
1c9937c3 |
|
17-Dec-2010 |
wenzelm <none@none> |
tuned;
|
#
0a1043dd |
|
16-Dec-2010 |
boehmes <none@none> |
fix lambda-lifting: take level of bound variables into account and also apply bound variables from outer scope
|
#
b5be9ea3 |
|
15-Dec-2010 |
paulson <none@none> |
made sml/nj happy
|
#
74f6a400 |
|
15-Dec-2010 |
boehmes <none@none> |
fixed introduction of explicit application function: bound variables always need explicit application if they are applied to some term
|
#
7c397a77 |
|
15-Dec-2010 |
boehmes <none@none> |
fixed eta-expansion: introduce a couple of abstractions at once
|
#
4728017d |
|
15-Dec-2010 |
boehmes <none@none> |
fixed checking and translation of weights (previously, weights occurring in terms were rejected, and weight numbers were unintended translated into Vars)
|
#
06b671a2 |
|
15-Dec-2010 |
boehmes <none@none> |
the functions term_of and prop_of are also needed in earlier stages, not only for Z3 proof reconstruction, so they really belong in SMT_Utils
|
#
5c23df44 |
|
15-Dec-2010 |
blanchet <none@none> |
workaround for bug in weight handling -- sometimes numerals got replaced by Vars and this confused the weight extractor
|
#
58e355b7 |
|
15-Dec-2010 |
boehmes <none@none> |
re-implemented eta-expansion, lambda-lifting, and explicit application on terms (exploiting the control over the term structure); abolished SMT interface concept in favor of solver classes (now also the translation configuration is stored in the context); proof reconstruction is now expected to return a theorem stating False (and hence needs to discharge all hypothetical definitions); built-in functions carry additionally their arity and their most general type; slightly generalized the definition of fun_app
|
#
2487c127 |
|
15-Dec-2010 |
boehmes <none@none> |
tuned
|
#
1e323d7a |
|
07-Dec-2010 |
boehmes <none@none> |
centralized handling of built-in types and constants; also store types and constants which are rewritten during preprocessing; interfaces are identified by classes (supporting inheritance, at least on the level of built-in symbols); removed term_eq in favor of type replacements: term-level occurrences of type bool are replaced by type term_bool (only for the translation)
|
#
a7f3a07c |
|
06-Dec-2010 |
boehmes <none@none> |
tuned
|
#
e57c3617 |
|
25-Nov-2010 |
blanchet <none@none> |
eta-reduce on the fly to prevent an exception
|
#
86580571 |
|
24-Nov-2010 |
boehmes <none@none> |
be more precise: only treat constant 'distinct' applied to an explicit list as built-in
|
#
6bf2d026 |
|
22-Nov-2010 |
boehmes <none@none> |
added support for quantifier weight annotations
|
#
bfe9574e |
|
22-Nov-2010 |
boehmes <none@none> |
share and use more utility functions; slightly reduced complexity for Z3 proof rule 'rewrite'
|
#
c982ee42 |
|
17-Nov-2010 |
boehmes <none@none> |
use the const antiquotation for constants (this checks that the constant is declared, whereas the more general term antiquotation treats undeclared names as free variable)
|
#
f110f01e |
|
29-Oct-2010 |
boehmes <none@none> |
introduced SMT.distinct as a representation of the solvers' built-in predicate; check that SMT.distinct is always applied to an explicit list
|
#
d3020384 |
|
26-Oct-2010 |
boehmes <none@none> |
keep track of theorems initially given to SMT (even if they are rewritten); provide interface to filter theorems necessary for SMT proofs
|
#
7ab94ce2 |
|
18-Sep-2010 |
boehmes <none@none> |
do not treat natural numbers as a datatype (natural numbers are considered an abstract type with a coercion to integers)
|
#
191468cb |
|
17-Sep-2010 |
boehmes <none@none> |
add full support for datatypes to the SMT interface (only used by Z3 in oracle mode so far); added store to keep track of datatype selector functions
|
#
f0a1b27a |
|
15-Sep-2010 |
boehmes <none@none> |
reverse order of datatype declarations so that declarations only depend on already declared datatypes
|
#
d03d84c6 |
|
12-Sep-2010 |
boehmes <none@none> |
added preliminary support for SMT datatypes (for now restricted to tuples and lists); only the Z3 interface (in oracle mode) makes use of it, there is especially no Z3 proof reconstruction support for datatypes yet
|
#
1ac49a6a |
|
26-May-2010 |
boehmes <none@none> |
hide constants and types introduced by SMT, simplified SMT patterns syntax, added examples for SMT patterns
|
#
5d3ecda1 |
|
12-May-2010 |
boehmes <none@none> |
layered SMT setup, adapted SMT clients, added further tests, made Z3 proof abstraction configurable
|
#
8cfb9a3f |
|
12-May-2010 |
boehmes <none@none> |
integrated SMT into the HOL image
|