src/HOL/Tools/SMT/smt_solver.ML
Thu, 26 Jul 2012 10:48:03 +0200 Sledgehammer already has its own ways of reporting and recovering from crashes in external provers -- no need to additionally print scores of warnings (cf. 4b0daca2bf88)
Wed, 30 May 2012 23:10:42 +0200 introduced option "z3_with_extensions" to control whether Z3's support for nonlinear arithmetic and datatypes should be enabled (including potential proof reconstruction failures)
Mon, 23 Apr 2012 21:44:36 +0200 more standard method setup;
Tue, 27 Mar 2012 16:59:13 +0300 renamed "smt_fixed" to "smt_read_only_certificates"
Thu, 01 Mar 2012 10:12:58 +0100 fine-tune intended failure of smt method when the chosen SMT solver is not installed: restrict failures to true invocations of the SMT solver and don't fail for runs based on certificates
Wed, 29 Feb 2012 17:43:41 +0100 SMT fails if the chosen SMT solver is not installed
Wed, 15 Feb 2012 23:19:30 +0100 renamed Thm.capply to Thm.apply, and Thm.cabs to Thm.lambda in conformance with similar operations in structure Term and Logic;
Tue, 14 Feb 2012 19:18:57 +0100 normalized aliases;
Mon, 02 May 2011 16:33:21 +0200 added Attrib.setup_config_XXX conveniences, with implicit setup of the background theory;
Fri, 08 Apr 2011 19:04:08 +0200 check if negating the goal is possible (avoids CTERM exception for Pure propositions)
Mon, 14 Feb 2011 10:40:43 +0100 more explicit errors to inform users about problems related to SMT solvers;
Mon, 17 Jan 2011 17:45:52 +0100 made Z3 the default SMT solver again
Mon, 10 Jan 2011 17:39:54 +0100 dropped superfluous error message
Sat, 08 Jan 2011 17:14:48 +0100 misc tuning and comments based on review of Theory_Data, Proof_Data, Generic_Data usage;
Thu, 06 Jan 2011 17:51:56 +0100 differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
Mon, 20 Dec 2010 22:02:57 +0100 avoid ML structure aliases (especially single-letter abbreviations)
Mon, 20 Dec 2010 08:17:23 +0100 perform monomorphization during normalization: schematic numerals might be monomorphized into built-in numerals and then numeral normalization is required
Fri, 17 Dec 2010 15:30:43 +0100 run the SMT relevance filter only once, then run the normalization/monomorphization code once _per class_ of SMT solvers
Fri, 17 Dec 2010 12:10:08 +0100 make timeout part of the SMT filter's tail
Fri, 17 Dec 2010 12:02:46 +0100 split "smt_filter" into head and tail
Wed, 15 Dec 2010 10:12:48 +0100 fixed proof reconstruction for lambda-lifted problems (which broke when the lambda-lifting code was changed to operate on terms instead of on theorems)
Wed, 15 Dec 2010 10:12:44 +0100 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 re-ordered SMT normalization code (eta-normalization, lambda abstractions and partial functions will be dealt with on the term level);
Wed, 15 Dec 2010 08:39:24 +0100 moved SMT classes and dictionary functions to SMT_Utils
Wed, 15 Dec 2010 08:39:24 +0100 added option to modify the random seed of SMT solvers
Tue, 07 Dec 2010 15:55:35 +0100 merged
Tue, 07 Dec 2010 15:01:37 +0100 tuned
Tue, 07 Dec 2010 14:53:12 +0100 centralized handling of built-in types and constants;
Tue, 07 Dec 2010 09:58:52 +0100 make SML/NJ happy
Mon, 06 Dec 2010 11:25:21 +0100 have SMT solvers report the number of facts that they should have by default in Sledgehammer -- the information might not seem to belong there but it also belongs nowhere else, for how is Sledgehammer to know how different solvers deal with hundreds of facts?
Mon, 06 Dec 2010 10:32:39 +0100 return all facts for CVC3 and Yices, since there is no proof parsing / unsat core extraction
Fri, 03 Dec 2010 18:27:21 +0100 export more information about available SMT solvers
Tue, 30 Nov 2010 18:22:43 +0100 split up Z3 models into constraints on free variables and constant definitions;
Tue, 23 Nov 2010 18:28:09 +0100 try Metis to reconstruct SMT proofs, to increase success rate and reduce dependency on (often remote) SMT solvers or certificates
Wed, 17 Nov 2010 08:14:56 +0100 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)
Wed, 17 Nov 2010 08:14:55 +0100 keep input and output files used to communicate with the SMT solver (for debugging purposes mainly)
Mon, 15 Nov 2010 22:23:28 +0100 renamed SMT failure: Abnormal_Termination is indeed more appropriate than Solver_Crashed
Mon, 15 Nov 2010 22:23:26 +0100 honour timeouts which are not rounded to full seconds
Mon, 15 Nov 2010 17:35:57 +0100 trace more solver output before raising an exception due to a non-zero return code (avoids truncating potential counterexamples produced by Z3)
Fri, 12 Nov 2010 17:28:43 +0100 check the return code of the SMT solver and raise an exception if the prover failed
Fri, 12 Nov 2010 15:56:10 +0100 turned SMT counterexamples into verbose messages (they had been swallowed before, following the state of smt_trace -- which is off by default), because they might be useful for the user
Mon, 08 Nov 2010 12:13:51 +0100 return the process return code along with the process outputs
Mon, 08 Nov 2010 12:13:44 +0100 better modularization: moved SMT configuration options and diagnostics as well as SMT failure and exception into separate structures (both of which are loaded first and consequently are available to other SMT structures)
Thu, 04 Nov 2010 18:01:55 +0100 simulate more closely the behaviour of the tactic
Wed, 03 Nov 2010 16:44:38 +0100 standardize timeout value based on reals
Fri, 29 Oct 2010 18:17:09 +0200 optionally drop assumptions which cannot be preprocessed
Fri, 29 Oct 2010 18:17:06 +0200 clarified error message
Tue, 26 Oct 2010 17:35:54 +0200 use proper context
Tue, 26 Oct 2010 17:35:52 +0200 trace assumptions before giving them to the SMT solver
Tue, 26 Oct 2010 17:35:51 +0200 capture out-of-memory warnings of Z3 and turn them into proper exceptions; be more precise about SMT solver run-time: return NONE instead of ~1
Tue, 26 Oct 2010 17:35:49 +0200 honor choice of either local or remote SMT solver only for smt_filter and keep default behaviour for the SMT tactic; omit messages when running smt_filter
Tue, 26 Oct 2010 11:51:09 +0200 optionally force the remote version of an SMT solver to be executed
Tue, 26 Oct 2010 11:49:36 +0200 tuned
Tue, 26 Oct 2010 11:49:23 +0200 added a mode to only filter assumptions used in a Z3 proof (in which no proof reconstruction is performed)
Tue, 26 Oct 2010 11:45:12 +0200 joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
Tue, 26 Oct 2010 11:39:26 +0200 keep track of theorems initially given to SMT (even if they are rewritten); provide interface to filter theorems necessary for SMT proofs
Fri, 01 Oct 2010 10:25:36 +0200 chop_while replace drop_while and take_while
Thu, 30 Sep 2010 18:37:29 +0200 take_while, drop_while
Fri, 17 Sep 2010 10:52:35 +0200 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
Fri, 27 Aug 2010 17:59:40 +0200 more antiquotations;