History log of /seL4-l4v-master/l4v/isabelle/src/HOL/Tools/SMT/smt_normalize.ML
Revision Date Author Comments
# c93a1841 13-Apr-2019 wenzelm <none@none>

tuned signature;


# dead1326 13-Apr-2019 wenzelm <none@none>

tuned signature -- more ctyp operations;


# a4bab154 04-Jan-2019 wenzelm <none@none>

isabelle update -u control_cartouches;


# eee54cc2 11-Apr-2018 boehmes <none@none>

avoid adding unnecessary quantified lemmas when embedding natural number terms into integer terms: quantified lemmas can cause Z3 to produce complex proofs that are hard to replay in Isabelle


# fcc9e542 23-Feb-2018 wenzelm <none@none>

added HOLogic.mk_obj_eq convenience and eliminated some clones;


# 99e3d4c3 06-Dec-2017 wenzelm <none@none>

prefer control symbol antiquotations;


# 1d8a8be4 28-Jul-2017 blanchet <none@none>

introduced option for nat-as-int in SMT


# 2759308d 25-Sep-2015 wenzelm <none@none>

moved remaining display.ML to more_thm.ML;


# 3e156fd9 27-Aug-2015 blanchet <none@none>

generate proper error instead of exception if goal cannot be atomized


# 9a9cf694 05-Jul-2015 wenzelm <none@none>

simplified Thm.instantiate and derivatives: the LHS refers to non-certified variables -- this merely serves as index into already certified structures (or is ignored);


# 904e2f2f 06-Mar-2015 wenzelm <none@none>

clarified context;


# 740a17d4 06-Mar-2015 wenzelm <none@none>

Thm.cterm_of and Thm.ctyp_of operate on local context;


# 13ddea91 26-Nov-2014 wenzelm <none@none>

renamed "pairself" to "apply2", in accordance to @{apply 2};


# 1d293099 01-Sep-2014 blanchet <none@none>

ported TFL to mixture of old and new datatypes


# fb2f6a3a 01-Sep-2014 blanchet <none@none>

renamed modules defining old datatypes, as a step towards having 'datatype_new' take 'datatype's place

--HG--
rename : src/HOL/Datatype.thy => src/HOL/Old_Datatype.thy
rename : src/HOL/Tools/Function/size.ML => src/HOL/Tools/Function/old_size.ML
rename : src/HOL/Tools/Datatype/datatype.ML => src/HOL/Tools/Old_Datatype/old_datatype.ML
rename : src/HOL/Tools/Datatype/datatype_aux.ML => src/HOL/Tools/Old_Datatype/old_datatype_aux.ML
rename : src/HOL/Tools/Datatype/datatype_codegen.ML => src/HOL/Tools/Old_Datatype/old_datatype_codegen.ML
rename : src/HOL/Tools/Datatype/datatype_data.ML => src/HOL/Tools/Old_Datatype/old_datatype_data.ML
rename : src/HOL/Tools/Datatype/datatype_prop.ML => src/HOL/Tools/Old_Datatype/old_datatype_prop.ML
rename : src/HOL/Tools/Datatype/datatype_realizer.ML => src/HOL/Tools/Old_Datatype/old_datatype_realizer.ML
rename : src/HOL/Tools/Datatype/primrec.ML => src/HOL/Tools/Old_Datatype/old_primrec.ML
rename : src/HOL/Tools/Datatype/rep_datatype.ML => src/HOL/Tools/Old_Datatype/old_rep_datatype.ML


# 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


# 6032f453 19-Aug-2014 blanchet <none@none>

reduced dependency on 'Datatype' theory and ML module


# 2c8d6176 21-Mar-2014 wenzelm <none@none>

more qualified names;


# 63970edd 12-Feb-2014 blanchet <none@none>

renamed '{prod,sum,bool,unit}_case' to 'case_...'


# 47e6e8c3 31-Dec-2013 wenzelm <none@none>

proper context for norm_hhf and derived operations;
clarified tool context in some boundary cases;


# 138816de 19-Nov-2013 haftmann <none@none>

eliminiated neg_numeral in favour of - (numeral _)


# 8a995bd9 10-Nov-2013 haftmann <none@none>

simplified: negative number is trivially smaller than 2, and SMT_Builtin.is_builtin_num implies that its argument is a number


# 9bc2d09b 02-Oct-2013 blanchet <none@none>

make SMT integration slacker w.r.t. bad apples (facts)


# 0928b2db 18-Apr-2013 wenzelm <none@none>

simplifier uses proper Proof.context instead of historic type simpset;


# e26a601f 28-Mar-2013 boehmes <none@none>

new, simpler implementation of monomorphization;
old monomorphization code is still available as Legacy_Monomorphization;
modified SMT integration to use the new monomorphization code


# 9517c42e 21-Dec-2012 boehmes <none@none>

refined normalization of theorems before giving them to SMT solvers (due to recent changes in rewr_conv, the rewriting of natural-number constants might leave some of them untouched)


# 0f623881 30-Mar-2012 huffman <none@none>

move lemmas from Nat_Numeral to Int.thy and Num.thy


# 9b2025dc 27-Mar-2012 boehmes <none@none>

dropped support for List.distinct in binding to SMT solvers: only few applications benefited from this support, and in some cases the smt method fails due to its support for List.distinct


# 8bb6233a 25-Mar-2012 huffman <none@none>

merged fork with new numeral representation (see NEWS)


# 0d27b506 15-Feb-2012 wenzelm <none@none>

renamed Thm.capply to Thm.apply, and Thm.cabs to Thm.lambda in conformance with similar operations in structure Term and Logic;


# ad9e459c 11-Sep-2011 nipkow <none@none>

new fastforce replacing fastsimp - less confusing name


# e2a080b7 05-Sep-2011 boehmes <none@none>

tuned


# 372c7198 31-May-2011 boehmes <none@none>

use new monomorphizer for SMT;
simplify the monomorphizer by inlining functions and proper passing of arguments


# 6d2612c8 16-Apr-2011 wenzelm <none@none>

modernized structure Proof_Context;


# c15b6e59 01-Apr-2011 boehmes <none@none>

make configuration of (SMT) full monomorphization more flexible: turn boolean argument into a configuration option


# 05b5c98d 31-Mar-2011 boehmes <none@none>

provide a flag controlling whether all provided facts should be instantiated, possibly inventing new types (which does not work well with Sledgehammer)


# 06e58f50 20-Dec-2010 boehmes <none@none>

avoid ML structure aliases (especially single-letter abbreviations)


# d57f6756 20-Dec-2010 boehmes <none@none>

added an additional beta reduction: unfolding of special quantifiers might leave terms unnormalized wrt to beta reductions


# 9e36898a 20-Dec-2010 boehmes <none@none>

perform monomorphization during normalization: schematic numerals might be monomorphized into built-in numerals and then numeral normalization is required


# 104b9a3d 19-Dec-2010 boehmes <none@none>

only linear occurrences of multiplication are treated as built-in (SMT solvers only support linear arithmetic in general);
hide internal constants z3div and z3mod;
rewrite div/mod to z3div/z3mod instead of adding extra rules characterizing div/mod in terms of z3div/z3mod


# 1c9937c3 17-Dec-2010 wenzelm <none@none>

tuned;


# b5be9ea3 15-Dec-2010 paulson <none@none>

made sml/nj happy


# 2526badf 15-Dec-2010 boehmes <none@none>

fixed trigger inference: testing if a theorem already has a trigger was too strict;
fixed monomorphization with respect to triggers (which might occur schematically)


# 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)


# d15f02bb 15-Dec-2010 boehmes <none@none>

re-ordered SMT normalization code (eta-normalization, lambda abstractions and partial functions will be dealt with on the term level);
added simple trigger inference mechanism;
added syntactic checks for triggers and quantifier weights;
factored out the normalization of special quantifiers (used to be in the eta-normalization part);
normalization now unfolds abs/min/max (not SMT-LIB-specific);
rules for pairs and function update are not anymore added automatically to the problem;
more aggressive rewriting of natural number operations into integer operations (minimizes the number of remaining nat-int coercions);
normalizations are now managed in a class-based manner (similar to built-in symbols)


# 842af847 08-Dec-2010 boehmes <none@none>

be more flexible: store SMT built-in symbols in generic contexts (not in theory contexts)


# 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)


# 8e79902f 24-Nov-2010 boehmes <none@none>

swap names for built-in tester functions (to better reflect the intuition of what they do);
eta-expand all built-in functions (even those which are only partially supported)


# e8ea30d7 24-Nov-2010 boehmes <none@none>

instantiate elimination rules (reduces number of quantified variables, and makes such theorems better amenable for SMT solvers)


# 86580571 24-Nov-2010 boehmes <none@none>

be more precise: only treat constant 'distinct' applied to an explicit list as built-in


# 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)


# b1d1d667 07-Nov-2010 boehmes <none@none>

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)


# a3f3b71f 29-Oct-2010 boehmes <none@none>

eta-expand built-in constants; also rewrite partially applied natural number terms


# dc6b08bb 29-Oct-2010 boehmes <none@none>

optionally drop assumptions which cannot be preprocessed


# a28ebd33 29-Oct-2010 boehmes <none@none>

tuned


# 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


# 393b826c 26-Oct-2010 boehmes <none@none>

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


# 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


# 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


# b11705e1 28-Aug-2010 haftmann <none@none>

formerly unnamed infix equality now named HOL.eq


# faf264d2 12-Jul-2010 boehmes <none@none>

fixed handling of Ball/Bex: turn equalities into meta-equalities for the rewriting conversions;
added tests for Ball/Bex


# 806451a7 27-May-2010 boehmes <none@none>

renamed constant "apply" to "fun_app" (which is closer to the related "fun_upd")


# 4d41603e 15-May-2010 wenzelm <none@none>

incorporated further conversions and conversionals, after some minor tuning;


# 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