src/HOL/Tools/SMT/smt_translate.ML
Wed, 17 Nov 2021 15:09:10 +0100 fleury generate problems with correct logic for veriT
Wed, 20 Oct 2021 18:13:17 +0200 wenzelm discontinued obsolete "val extend = I" for data slots;
Tue, 28 Sep 2021 22:14:02 +0200 wenzelm clarified antiquotations;
Wed, 06 Dec 2017 20:43:09 +0100 wenzelm prefer control symbol antiquotations;
Sun, 01 Oct 2017 15:01:39 +0200 blanchet properly take quantifiers into account (cf. my Ph.D. thesis, Section 6.4.1) and offer three modes of completeness (for experiments mostly)
Tue, 29 Aug 2017 18:30:23 +0200 blanchet towards support for HO SMT-LIB
Tue, 20 Jun 2017 14:41:35 +0200 blanchet tuning
Tue, 20 Jun 2017 14:33:45 +0200 blanchet correctly unfold applied 'let's (e.g. '(let x = a in f) b') -- and removed dead code
Fri, 04 Dec 2015 14:15:16 +0100 blanchet removed needless complication for modern SMT solvers
Wed, 24 Sep 2014 15:46:25 +0200 blanchet interleave (co)datatypes in the right order w.r.t. dependencies
Wed, 17 Sep 2014 17:32:27 +0200 blanchet added codatatype support for CVC4
Wed, 17 Sep 2014 16:53:39 +0200 blanchet added interface for CVC4 extensions
Thu, 28 Aug 2014 00:40:38 +0200 blanchet renamed new SMT module from 'SMT2' to 'SMT'
Wed, 18 Apr 2012 10:53:28 +0200 blanchet avoid generating syntactically invalid patterns (with "if_then_else") in SMT-LIB files
Sat, 18 Feb 2012 23:43:21 +0100 boehmes corrected treatment of applications of built-in functions to higher-order terms
Wed, 20 Jul 2011 15:09:53 +0200 boehmes removed debugging facilities accidentally left in the committed code
Wed, 20 Jul 2011 12:23:20 +0200 boehmes generalized lambda-lifting such that it is less specifically tailored for SMT (it does not anymore dependent on any SMT-specific code)
Wed, 20 Jul 2011 09:23:12 +0200 boehmes moved lambda-lifting on terms into a separate structure (for better re-use in tools other than SMT)
Thu, 14 Jul 2011 17:29:30 +0200 blanchet allow lambda-lifting without triggers
Sun, 26 Jun 2011 19:10:02 +0200 boehmes 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);
Wed, 22 Jun 2011 15:07:03 +0200 boehmes export lambda-lifting code as there is potential use for it within Sledgehammer
Tue, 14 Jun 2011 13:50:54 +0200 boehmes slightly more general treatment of mutually recursive datatypes;
Sun, 05 Jun 2011 15:00:17 +0200 boehmes 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)
Fri, 08 Apr 2011 19:04:08 +0200 boehmes fixed eta-expansion: use correct order to apply new bound variables
Fri, 08 Apr 2011 19:04:08 +0200 boehmes unfold and eta-contract let expressions before lambda-lifting to avoid bad terms
Mon, 21 Feb 2011 09:14:48 +0100 boehmes wrap occurrences of quantifiers in first-order terms (i.e., outside first-order formulas) in If-expressions
Mon, 03 Jan 2011 16:22:08 +0100 boehmes re-implemented support for datatypes (including records and typedefs);
Mon, 20 Dec 2010 22:02:57 +0100 boehmes avoid ML structure aliases (especially single-letter abbreviations)
Sun, 19 Dec 2010 18:54:29 +0100 boehmes removed odd decoration of built-in symbols as Vars (instead provide built-in desctructor functions along with their inverse functions);
Fri, 17 Dec 2010 18:15:56 +0100 wenzelm merged
Fri, 17 Dec 2010 14:36:33 +0100 boehmes 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;
Fri, 17 Dec 2010 13:12:58 +0100 wenzelm tuned;
Thu, 16 Dec 2010 13:54:17 +0100 boehmes merged
Thu, 16 Dec 2010 13:34:28 +0100 boehmes fix lambda-lifting: take level of bound variables into account and also apply bound variables from outer scope
Thu, 16 Dec 2010 12:33:06 +0100 boehmes fixed introduction of explicit application function: bound variables always need explicit application if they are applied to some term
Thu, 16 Dec 2010 12:07:36 +0100 boehmes fixed eta-expansion: introduce a couple of abstractions at once
Thu, 16 Dec 2010 12:19:00 +0000 paulson merged
Thu, 16 Dec 2010 12:05:00 +0000 paulson made sml/nj happy
Wed, 15 Dec 2010 16:32:45 +0100 boehmes fixed checking and translation of weights (previously, weights occurring in terms were rejected, and weight numbers were unintended translated into Vars)
Wed, 15 Dec 2010 16:29:56 +0100 boehmes 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
Wed, 15 Dec 2010 14:29:04 +0100 blanchet workaround for bug in weight handling -- sometimes numerals got replaced by Vars and this confused the weight extractor
Wed, 15 Dec 2010 10:12:44 +0100 boehmes re-implemented eta-expansion, lambda-lifting, and explicit application on terms (exploiting the control over the term structure);
Wed, 15 Dec 2010 08:39:24 +0100 boehmes tuned
Tue, 07 Dec 2010 14:53:12 +0100 boehmes centralized handling of built-in types and constants;
Mon, 06 Dec 2010 15:38:02 +0100 boehmes tuned
Thu, 25 Nov 2010 14:58:20 +0100 blanchet eta-reduce on the fly to prevent an exception
Wed, 24 Nov 2010 10:39:58 +0100 boehmes be more precise: only treat constant 'distinct' applied to an explicit list as built-in
Mon, 22 Nov 2010 23:37:00 +0100 boehmes added support for quantifier weight annotations
Mon, 22 Nov 2010 15:45:43 +0100 boehmes share and use more utility functions;
Wed, 17 Nov 2010 08:14:56 +0100 boehmes 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)
Fri, 29 Oct 2010 18:17:04 +0200 boehmes introduced SMT.distinct as a representation of the solvers' built-in predicate; check that SMT.distinct is always applied to an explicit list
Tue, 26 Oct 2010 11:39:26 +0200 boehmes keep track of theorems initially given to SMT (even if they are rewritten); provide interface to filter theorems necessary for SMT proofs
Sun, 19 Sep 2010 00:29:13 +0200 boehmes do not treat natural numbers as a datatype (natural numbers are considered an abstract type with a coercion to integers)
Fri, 17 Sep 2010 10:52:35 +0200 boehmes 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
Thu, 16 Sep 2010 06:49:46 +0200 boehmes reverse order of datatype declarations so that declarations only depend on already declared datatypes
Mon, 13 Sep 2010 06:02:47 +0200 boehmes 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
Wed, 26 May 2010 15:34:47 +0200 boehmes hide constants and types introduced by SMT,
Wed, 12 May 2010 23:54:04 +0200 boehmes layered SMT setup, adapted SMT clients, added further tests, made Z3 proof abstraction configurable
Wed, 12 May 2010 23:54:02 +0200 boehmes integrated SMT into the HOL image
less more (0) tip