History log of /seL4-l4v-master/l4v/isabelle/src/HOL/Tools/SMT/smt_translate.ML
Revision Date Author Comments
# 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