#
b5024ad4 |
|
04-Jul-2018 |
Mario Xerxes _Castelán Castro_ <marioxcc@example.org> |
Move without loss of generality tacticals to new library.
|
#
1795b9e9 |
|
07-Jun-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement easier API entrypoints to get at case_eq theorems Closes #345
|
#
ce33a148 |
|
28-Apr-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Document changes to by and new subgoal tactic Also make sure that the latter (and its alias, sg) are available through the bossLib signature.
|
#
55622e44 |
|
24-Apr-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Get core HOL to build with new definition of "by" Progress with github issue #407
|
#
1c653e3e |
|
06-Feb-2017 |
Thomas Tuerk <thomas@tuerk-brechen.de> |
implement simple quantifier heuristics The quantifier heuristics library is powerful, but often slow. The unwind conversions are fast, but have serious restrictions. This commits adds simple quantifier heuristics. They are based on the techniques developed for quantifier heuristics library, but only search gap guesses that don't contain free variables. Some very limited experiments suggest that it is similarly fast as unwind. It can handle all the cases unwind can handle. However, it supports also a much richer syntax. Moreover, it can instantiate in addition to universal and existential quantifiers also unique existential quantifiers, eliminate select and some. Moreover, it knows about pairs and lists.
|
#
fa81d70b |
|
28-Jul-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Rename pat_assum to pat_x_assum; provide pat_assum To be consistent with naming conventions elsewhere, change the name of qpat_assum (and PAT_ASSUM, and Q.PAT_ASSUM) to include an extra _x_ (or _X_), indicating that the matching assumption is pulled out of the assumption list. Use the old names to provide a version that doesn't pull the assumption out of the list. Again, seeking consistency with other similar tactics, make variable names that appear in the pattern and the goal be forced to have the type that they have in the goal.
|
#
37b9b33b |
|
19-Jun-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement Q.RENAME_TAC / bossLib.rename This tactic is more powerful than rename1 as it allows multiple patterns to be matched at once, and without regard to the initial goal's free variables (which might otherwise cause unpredictable clashes).
|
#
6ffd8b6b |
|
16-Jun-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Rename: qcase_tac/rename1; Q.FIND_CASE_TAC/Q.RENAME1_TAC This use of the "case" substring was just confusing given things like Cases_on. The "1" is there because I want to now implement a more general version that - deals with the issue (identified in the .doc file), where existing names in the goal can still get in the way; and - allows multiple subterms to be matched and renamed as a unit Though seemingly independent, the second feature is really needed if the first is to be done: implementing the first will require all the free variables in a goal to be renamed away (to genvars, I expect), and then it's impossible to ground particular matches against known free variables.
|
#
fb38579a |
|
22-Mar-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement and document new split_pair_case_tac
|
#
90c025a2 |
|
22-Mar-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add new pairarg_tac for splitting pairs Documented in .doc file. From CakeML.
|
#
e28c677a |
|
20-Mar-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Define special backtracking cases of pat_assum In particular, the "pattern" is a single term or quotation that has to either be the head constant of the assumption or the head of the lhs of the assumption. Unlike pat_assum as it stands currently, the behaviour backtracks (à la first_assum) if the theorem-tactic doesn't succeed with the first assumption found. Versions come in "copy assumption" and "cut assumption" versions, just like first_assum and first_x_assum.
|
#
c2670491 |
|
17-Jan-2016 |
Ramana Kumar <ramana@member.fsf.org> |
add lowercase subterm-abbrev tactics to bossLib. closes #81
|
#
f38cb011 |
|
17-Jan-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move kall_tac to bossLib Closes #274
|
#
84cc1436 |
|
13-Jan-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
All l/case short simp tacs use LET_ss + ARITH_ss This means that fs and rfs pick up LET_ss and ARITH_ss, making them indistinguishable from the 'l' versions.
|
#
48e341c9 |
|
14-Jan-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
More l/case names into bossLib Work on #274
|
#
bc485680 |
|
14-Jan-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Corrections for last commit
|
#
822cc4d1 |
|
07-Jan-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move more tactics from lcsymtacs to bossLib Work on #274
|
#
b67a219a |
|
05-Sep-2015 |
Thomas Tuerk <thomas@tuerk-brechen.de> |
pattern_matches: add to bossLib
|
#
5b282aae |
|
06-Dec-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
More moving lcsymtacs implementations elsewhere Eventually lcsymtacs will just be a bunch of 'open' declarations, and then people won't bother to include it at all.
|
#
d7a48af9 |
|
29-Aug-2015 |
Thomas Tuerk <thomas@tuerk-brechen.de> |
add quantHeuristicsLib abbreviations to bossLib
|
#
146d6645 |
|
20-Aug-2015 |
Andrea Condoluci <andreacondoluci@gmail.com> |
Start porting llists to Hol_coreln
|
#
7e9d8a2a |
|
19-Aug-2015 |
Andrea Condoluci <andreacondoluci@gmail.com> |
update
|
#
eda9ab55 |
|
19-Aug-2015 |
Andrea Condoluci <andreacondoluci@gmail.com> |
towards co-mpletion
|
#
00cde98c |
|
29-Jan-2015 |
Konrad Slind <konrad.slind@gmail.com> |
fixed Scott's TFL bug on tc-extraction for higher order combinators like pair_cmp.
|
#
2905920b |
|
31-Mar-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Make new Datatype definition function available in bossLib
|
#
6aba5baa |
|
03-Mar-2014 |
Ramana Kumar <ramana@member.fsf.org> |
export derived new_specification from bossLib
|
#
97ce3c47 |
|
25-Apr-2013 |
Michael Norrish <michael.norrish@nicta.com.au> |
Implement new suffices_by tactic in BasicProvers and bossLib. Closes #116.
|
#
d40f8f63 |
|
23-Oct-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add IN_UNION to list_ss; handles set(l1 ++ l2) being rewritten. This is progress with #52.
|
#
b415adb1 |
|
22-Oct-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add IN_INSERT and NOT_IN_EMPTY to list_ss. This allows simplification of MEM terms to work in all circumstances. For example, if the term is MEM x (FRONT [y]) the simplification works like x IN set (FRONT [y]) ^^^^^^^^^^^^^^^^^^^^ --> x IN set (FRONT [y]) ^^^^^^^^^^^^^^^ --> x IN set (FRONT [y]) ^^^^^^^^^ --> x IN set [] ^^ --> x IN set [] ^^^^^^ --> x IN EMPTY and the simplifier's theorem for MEM x [] (= x IN set []) never gets to fire. This is progress with #52.
|
#
97ce5167 |
|
30-May-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
define cheat tactic for unfinished proofs
|
#
193978fd |
|
05-Apr-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
expose PairCases_on in bossLib
|
#
af3c0f71 |
|
17-Sep-2010 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add zDefine -- this is a version of Define that doesn't add definitions to computeLib.the_compset. Supports using derived theorems for evaluation.
|
#
7b73c8d7 |
|
16-Jul-2010 |
Konrad Slind <konrad.slind@gmail.com> |
src/num/theories/SingleStep.{sig,sml} is gone. The defininitions of Cases, Cases_on, Induct, Induct_on, CASE_TAC (and co.) are now in basicProof/BasicProvers. completeInduct_on and measureInduct_on are now in numLib. recInduct is now in src/tfl/Induction.sml. All these are collected in bossLib, so the changes should be invisible to ordinary users. SingleStep.*.doc has been changed accordingly. BasicProvers.NORM_TAC should now automatically perform all case splits (from if-then-else expressions as well as case expression) arising anywhere in the goal.
|
#
a828d758 |
|
13-Jun-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add xHol_reln, allowing user to specify 'stem', by analogy with xDefine.
|
#
2a29c74d |
|
26-Mar-2010 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Added a few more operations for working with simpsets and simpset fragments. In particular, added the facility to remove named fragments from a simpset. This is done fairly crudely -- the new simpset is simply rebuilt using all of the remaining fragments. This enables you do do things like: - SIMP_CONV (simpLib.remove_ssfrags (srw_ss()) ["word arith"]) [] ``...`` and - val ss = diminish_srw_ss ["word arith","word logic"]; - e (SRW_TAC [] []); - val _ = augment_srw_ss ss; Doing this will re-order the fragments, which I believe can affect behaviour? diminish_srw_ss isn't persistent -- not sure if that is good or not. The new operations are: > val name_ss : string -> ssfrag -> ssfrag (* Give a name to a fragment. *) > val named_merge_ss : string -> ssfrag list -> ssfrag (* A version of merge_ss that allows users to name the merged fragment. *) > val std_conv_ss : stdconvdata -> ssfrag where type stdconvdata = { name: string, pats: term list, conv: conv } (* A simplified interface to conv_ss. For conversions with: no side-conditions, trace level 2 and for a list of "variable only" keys. *) > partition_ssfrags : string list -> ssfrag list -> (ssfrag list * ssfrag list) (* Partition a simpset fragment list: lhs for fragments in a list of names and rhs for those not in the list. *) > remove_ssfrags : simpset -> string list -> simpset (* Remove named fragments from a simpset. *) > diminish_srw_ss : string list -> simpLib.ssfrag list (* Remove named fragments from srw_ss. Returns removed fragments. *)
|
#
980a9639 |
|
22-Jul-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Implement congruence-based controls for rewriting with the simplifier, to make it easier to rewrite only on the left or right of a top-level relational symbol. (Strictly, this effect persists recursively down into a term; I don't think this is likely to be an issue, particularly with equality, which I think is the major use-case.) Now there is an alternative to CONV_TAC (LAND_CONV (SIMP_CONV std_ss [...])) (writing the above has become practically automatic for me, but I can't help but wince if forced to show it to a new user). Instead, try SIMP_TAC std_ss [..., SimpLHS] assuming the top-level operator is indeed an equality. If it's not an equality, use SimpL ``op`` instead. Will write documentation tomorrow. Demonstrate use, often in conjunction with Once, in arithmeticScript.
|
#
a1d7def4 |
|
05-May-2009 |
Konrad Slind <konrad.slind@gmail.com> |
Additions to multiset and primeFactor theories. Fixed definition of PRIMES sequence in dividesTheory. Also added misc. theorems to arithmetic. Some amount of meaningless shuffling about.
|
#
2dfce014 |
|
24-Feb-2009 |
Konrad Slind <konrad.slind@gmail.com> |
Several changes in order to start making emitML a bit more usable. 1. pred_setLib is now loaded by bossLib. 2. Many applications of emitML will just use the "standard" background provided by the ML code generated from the theories available when bossLib is loaded: bools, funs, pairs, sums, nums, lists, and sets. To access these, you don't have to do anything other than just load and/or open "emitLib". To load other pre-built emitML support for theories like words, bags, etc. which are not loaded by bossLib, you have to explicitly load the relevant "emit" theories, e.g. words_emitTheory 3. src/emit/theories has now been lifted into src/emit. So EmitML, emitLib, and all the basic x_emitScript.sml stuff lives in the same directory. This was just because I didn't bother to figure out how (or if) it is possible to compile part of emit then enter and compile all of emit/theories, then return and compile the rest of emit which depends on the theories. If that scenario is possible with the right Holmakefile, then possibly the previous directory structure should be restored. 4. The dependency of EmitML on integers has been eliminated. So examples/ordinalScript.sml builds again. 5. The reference cell EmitML.reshape_thm_hook can be used to stick standard pre-processing for theorems.
|
#
8654de63 |
|
07-Feb-2009 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Attempt to tidy up (fix) EmitML and finish off the transition that Scott started. EmitML has been moved to the end of the build sequence. "Hooks" have been eliminated and all EmitML related stuff has been removed from the various theory directories. All code for generating ML/Caml is now self-contained within src/emit. I've not tested the generated Caml code but the SML seems to build fine. The directories: src/theoryML src/theoryOcaml src/emitScript have been replaced by src/emit/theories/ML src/emit/theories/Caml src/emit/theories
|
#
45056468 |
|
19-Jun-2008 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Update to EmitTeX. Some functions have been renamed and some help entries have been added. EmitTeX is no longer included in bossLib and is instead loaded using end-init-boss.sml.
|
#
c76376ed |
|
29-Apr-2008 |
Konrad Slind <konrad.slind@gmail.com> |
Additional functionality for abbreviations. 1. The labels library has been merged into markerLib and the src/labels directory eliminated. 2. Have added markerSyntax structure. 3. Operations on abbrevs used to all be in structure Q, even those that didn't deal with quotations (like UNABBREV_ALL_TAC). Now markerLib provides all abbrev. operations and these take terms. Operations that benefit from quotes, e.g., ABBREV_TAC, MATCH_ABBREV_TAC, etc. are still to be found in Q. 4. Abbrevs are kept reduced by the simplifiers and there is a REABBREV_TAC which can be separately called. This sorts abbrevs topologically, so that they get restored in a sensible order. 5. For situations where one wants to get rid of all abbrevs, apply a tactic, and then restore the abbrevs, there is WITHOUT_ABBREVS: tactic->tactic. 6. Have added a simple topological sort to Lib. 7. Updated proofs in the src directories, and also in examples/lambda.
|
#
ec2041c1 |
|
23-Apr-2008 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Moved EmitML code to a new directory src/emit. Added a new structure EmitTeX. This allows HOL theories to be printed as LaTeX source. Added both of these structures to help/src/Keepers.sml
|
#
af282e86 |
|
07-May-2007 |
Konrad Slind <konrad.slind@gmail.com> |
Added entrypoint for tDefine, version of Define that takes a tactic to prove termination.
|
#
b458dfe5 |
|
12-Sep-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change to the inductive relations definition code to support a global, and updated "monoset", which can be updated as theories load, thereby invisibly increasing the capabilities of Hol_reln. Also simplify the implementation of derive_strong_induction, and move the entrypoint to IndDefLib. New test in src/IndDef/selftest.sml wouldn't have passed before (I believe). It is more onerous than Peter's original monoset example, which didn't feature recursion under the EVERY operator. Documented in Description and release notes. Still to update theories with appropriate calls to export_mono. (export_mono and export_rewrites are now part of bossLib's interface.)
|
#
ad57a8a3 |
|
10-Mar-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Upgrading Define so that it proves more termination goals. Generates lex. combinations and tries them out, so gets some more ordinary recursions. Gets all iterated primitive recursions. Also has been taught about some operations on words (so recursion from w to w-1w will terminate, for example). Let me know of any bugs/slowdowns, etc.
|
#
d8e57a78 |
|
16-Feb-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add more aggressive normalisation of multiplicative expressions to ARITH_ss. Also provide old_arith_ss values for scripts that don't want this new behaviour. Update proofs to go through again. Some should be a bit more robust in the face of future changes to arith_ss. Others just punt and refer to old_arith_ss.
|
#
014f6140 |
|
15-Feb-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Changed the TypeBase to be indexed by types. Originally it was indexed by a single string (representing the type operator), then Michael changed it to a pair of strings (precise representation of the type operator). The latest change allows non-datatypes to be added to the TypeBase. This will allow case analysis and termination proofs to be supported for non-datatypes. I reckon there are still a few bugs left after the massive revision, so you might want to wait a while before upgrading.
|
#
eb3b62e6 |
|
03-Nov-2005 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
arith_ss can now be built by just adding the decision procedure to std_ss (as the rewrites are already there).
|
#
87d811e7 |
|
03-Nov-2005 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Moved a whole bunch of "obvious" arithmetic rewrites into std_ss. This simpset already does arithmetic on ground terms (2 + 3 = 5, sort of thing), and it seems silly to have it not prove 0 <= x, and other simple things like this. The change does break some proofs, which I have fixed.
|
#
04a0544f |
|
04-Apr-2005 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
These systems purport to provide multiple logical decision procedures, but under the hood, they're really all the same.
|
#
b189e194 |
|
26-Mar-2005 |
Konrad Slind <konrad.slind@gmail.com> |
Finally added METIS_TAC and METIS_PROVE to bossLib. Consequently, they will be available by default.
|
#
f4803465 |
|
04-Aug-2004 |
Konrad Slind <konrad.slind@gmail.com> |
More big re-org consequences.
|
#
c5bbd307 |
|
04-Jul-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Numerous minor changes associated with various things, most having to do with exporting ML.
|
#
da9876b5 |
|
02-Oct-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fixes for a couple of infelicities: * bool_ss didn't ever treat LETs (why?), so my incompatibility blurb wasn't accurate. I had messed with the behaviour of PAIR_ss though, and this was unnecessary. The new arrangement of things changes only the behaviour of the srw_ss. * Yesterday's solution for computing with lets would allow a subsitutiion to occur even before the argument to the let had been simplified. The new scheme uses a congruence rule to evaluate the sub-expressions, and after doing so, wraps the value in an I tag. Then the various LET_{foo,bar,baz} theorems can fire and cause a substitution to occur. The presence of the I encodes "I have been looked at by the simplifier". I want this because I want to have tags that indicate likely "value-hood" such that a whole expression can be substituted at once, but I don't want to not get a chance to simplify that expression first. Imagine, for example, that NUMERAL could occasionally occur wrapped around expressions that weren't already values. Then the theorem |- LET f (NUMERAL x) = f (NUMERAL x) would cause the pending computation x to be distributed willy-nilly around the body of f, potentially causing us to have to simplify it multiple times. In the new scheme, the theorem above isn't used. Instead we have |- LET f (I (NUMERAL x)) = f (NUMERAL x) and by requiring the presence of the I, the reduction won't happen until the simplifier has looked at x. Now, this shouldn't happen with numerals, but it might well happen with other tags I'm planning to use. So there you go.
|
#
ca0a8d5e |
|
29-Sep-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
A new approach to handling LETs for the stateful rewriter. Introduces an incompatibility in that bool_ss no longer rewrites LET f x to f x (std_ss still does though). The new strategy is: Don't put LET_THM into any of the simpsets, but rather put in specialised versions of this that allow "values" to be substituted into the body. Thus ``let v = e1 in e2`` will only reduce to e2[e1/v] when e1 has been reduced to a proper value. Better, allow partial substitution to happen when e1 has become partially value-like. For example, if we get to let v = SUC e in v + v and e isn't necessarily evaluated, we can still move this to let v = e in SUC v + SUC v The rewrite for this is |- LET f (SUC e) = LET (\v. f (SUC v)) e Comparable rewrites for constructors of any type are easy to state and prove. Arguably, these theorems should be generated when new types are defined, and stored in the TypeBase. Because I know Konrad will be (is already?) messing with the TypeBase to support ML lifting, I haven't done this for Hol_datatype (it's not quite so easy to see how to capture the notion of "record value"). I have written the appropriate theorems for the obivous built-in types. This strategy gives the simplifier a notion of "value" that is different from "can't reduce any more by the given rewrites" (which is what CBV_CONV uses). The problem with CBV_CONV, or a congruence rule that always performs the reduction from LET f e to f e is that you can get big explosions in term size, which is particularly bad if you are doing symbolic evaluation. Have fixed problems arising in probability (which was using its own version of std_ss, and those places where srw_ss() is being used. The examples/lambda directory uses SRW_TAC pretty extensively, so there are fixes required there. The easiest way is to just put LET_THM back into the stateful simpset and to forget about it. The general problem with the stateful system as it stands is that it is very easy to put things into it, but impossible to pull them out. Isabelle has some way of doing this that might be worth looking into.
|
#
3a907f5b |
|
04-Aug-2003 |
Konrad Slind <konrad.slind@gmail.com> |
Make sure all the relevant ML structures load with bossLib.
|
#
4c622e92 |
|
31-Jul-2003 |
Konrad Slind <konrad.slind@gmail.com> |
Make sure that various xSyntax structures are loaded by bossLib.
|
#
d94b8bf3 |
|
01-Jul-2003 |
Konrad Slind <konrad.slind@gmail.com> |
Support for rewriting annotations.
|
#
ebb3ef4f |
|
06-Feb-2003 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added COMBIN_ss to std_ss. This will break proofs in prob until Joe fixes them. (I love this; responsibility free check-ins :-)
|
#
8fb63bf0 |
|
13-Nov-2002 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
The dependency hack in bitsScript.sml is moved to bossLib.sml. Also extended to cover changes to optionTheory.
|
#
4cd281d5 |
|
03-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modify TypeBases so that they can store conversions as well as theorems in a tyinfo's "simpls_of" slot. This is then used to implement a conversion for enumerated type equalities. Previously, we just used a rewrite directly, which meant that something of the form (x = C10) might turn into the rather ugly (foo_to_num x = 11). Now, the rewrite is only applied to equalities between constants. Some comments in the .sig files in Datatype, RecordType and EnumType hopefully also make it clearer what the weird string results are doing, and how they get added into theory files.
|
#
8c70db33 |
|
13-Aug-2002 |
Joe Hurd <joe@gilith.com> |
Moved CASE_TAC, an intelligent case-splitting tactic, to SingleStep, and made it visible in bossLib.
|
#
80e7de0f |
|
13-Aug-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Cause standard simpset fragments to be automatically added to the stateful rewriter as the relevant theories are loaded, rather than waiting for bossLib to come and along and do it after the fact. Strictly speaking, in the case of numSimps and pairSimps it is still necessary to load these two rather than just the base theories. This is because the simpset fragments in these cases are more than just rewrites but include 'real code' (REDUCE_CONV and GEN_BETA_CONV respectively). Still, rather this than having to load bossLib.
|
#
ad749b2a |
|
29-Jul-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix for bug #585828.
|
#
3199033e |
|
29-May-2002 |
Konrad Slind <konrad.slind@gmail.com> |
Fixing recInduct in SingleStep.sml, adding RESTR_EVAL thingies to bossLib, adding distinction between "strip_pair" and "spine_pair" in pairSyntax, and other minor things.
|
#
75372e93 |
|
28-May-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Overlay.sml now exports infix declarations for the "standard" infixes, taken from std.prelude. This means that the infix component of the standard Script boilerplate is unnecessary. Updated Manual documentation to reflect this. Changed combinScript and examples/ind_def/clScript.sml just to show that it worked.
|
#
d5ea6975 |
|
28-Feb-2002 |
Konrad Slind <konrad.slind@gmail.com> |
Added VAR_EQ_TAC to BasicProvers. It eliminates assumptions of the form v = M or M = v (provided v doesn't occur as a proper subterm of M). The other changes are just messing about.
|
#
e80476bd |
|
27-Feb-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modified to directly export more of the simplifier's interface.
|
#
650f3796 |
|
17-Dec-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Made srw_ss and augment_srw_ss visible in bossLib.
|
#
8b7f3ae3 |
|
23-Nov-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Minor changes.
|
#
9afa5c60 |
|
20-Sep-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix needed given changes to names of list simpset fragements.
|
#
75e6bfb9 |
|
18-Jun-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Changing arithLib to numLib.
|
#
affa774c |
|
14-Jun-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
New SRW_TAC tactic (stateful RW_TAC) implemented.
|
#
e5b3b9b3 |
|
12-Jun-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modified definition of std_ss to include REDUCE_ss. Also made it explicitly depend on sumSimps.SUM_ss, which didn't exist when the definition was first made (I guess).
|
#
cfdc1706 |
|
11-Apr-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modifications caused by change of TypeBase signature.
|
#
a561918d |
|
16-Mar-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Revised type of EVAL to be a conv.
|
#
7f0e3796 |
|
13-Mar-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added new "on" forward proof thingie to SingleStep. It's more primitive than "by" because it allows the user to pick the thm_tactic that gets applied to the goal after it's proved (by forces STRIP_ASSUME_TAC). Also modified arith_ss to include REDUCE_ss to do arithmetic calculation as part of the simpset.
|
#
d51d6cd4 |
|
10-Feb-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Adapting to underlying changes.
|
#
77efd725 |
|
04-Feb-2001 |
Konrad Slind <konrad.slind@gmail.com> |
New work aimed at making a single global EVAL function, with an underlying compset.
|
#
eff4cf4b |
|
05-Jan-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Added mutual datatypes to those handled by Induct. Also added Hol_reln to top-level interface. Will probably incoporate that into Define.
|
#
18821a2d |
|
27-Dec-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Upgrade to DECIDE and DECIDE_TAC: now tautologies are handled.
|
#
94daa080 |
|
20-Nov-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Preliminary upgrade to work in Kan. 0.
|
#
6c7a6748 |
|
22-Mar-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Deleted ind_suffix and def_suffix.
|
#
15e4ee01 |
|
20-Mar-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Deleted inclusion of standard congruences for higher order recursion on lists. These are now included when listTheory is loaded.
|
#
563bb664 |
|
17-Mar-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Slight changes to follow removal of Tfl structure.
|
#
b90e0ddf |
|
09-Mar-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Eliminated the "Context" structure from tflLib; instead, use the "Tfl" structure, which now contains the functions from Context.
|
#
0d5790ed |
|
12-Feb-2000 |
Konrad Slind <konrad.slind@gmail.com> |
Uhh.
|
#
b5b137e1 |
|
03-Jan-2000 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modified definition of std_ss to use new OPTION_ss value rather than it construct it itself.
|
#
5da57efe |
|
09-Dec-1999 |
Bruno Barras <barras@lix.polytechnique.fr> |
Removed the ugly boolean of add_thms and from_list. Use lazyfy_thm or strictify_thm instead. Modified examples accordingly.
|
#
db40c627 |
|
08-Dec-1999 |
Bruno Barras <barras@lix.polytechnique.fr> |
added initial_rws
|
#
224f1c42 |
|
02-Dec-1999 |
Konrad Slind <konrad.slind@gmail.com> |
The standard basic simplification set is now called "std_ss". I also made "bool_ss" not be part of bossLib (to avoid confusion). Since bossLib brings in a quite rich theory structure, there doesn't seem to be any need for bool_ss to be there as well as std_ss.
|
#
944b2e95 |
|
29-Nov-1999 |
Konrad Slind <konrad.slind@gmail.com> |
General re-organization to push down functionality from bossLib into lower depths of system.
|
#
9e2db11e |
|
08-Nov-1999 |
Konrad Slind <konrad.slind@gmail.com> |
New entrypoint `recInduct' for applying recursion induction. I have to think about the name for this, since it can just as well be used for just about any induction theorem.
|
#
9d840c7a |
|
08-Nov-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Many changes, having to do with getting a proper interface for proving termination. test.Define is a big list of examples of function definitions.
|
#
5f9334f3 |
|
18-Oct-1999 |
Konrad Slind <konrad.slind@gmail.com> |
bossLib has been broken up into simpler components that require less resources to load induvidually. BasicProvers provides PROVE_TAC and RW_TAC (loads in bool+combin) QuotedDef provides a high-level definition interface SingleStep provides high-level interactive proof steps (for case analysis, induction, etc.) Another point about SingleStep is that its operations use quotations and this enables the use of the context (the current goal, typically) in order to constrain the types of free variables in the quotation.
|
#
76e20d6f |
|
27-Sep-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Preprocessing of Define improved in case where it deals with an antiquotation.
|
#
c98b74aa |
|
27-Sep-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Revision to PROVE, PROVE_TAC, and ZAP_TAC: boolean conditionals are blown away by expanding with boolTheory.COND_EXPAND. This allows more proofs to go through (MESON doesn't handle conditionals well).
|
#
52009d13 |
|
22-Sep-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Upgrade to bossLib.Define.
|
#
3337b6a3 |
|
18-Aug-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Halts.{sig,sml} : Moved to tflLib bossLib.{sig,sml} : primDefine is gone, replaced by Hol_fun, which is more powerful and more robust. It returns something of type "defn", which is a type declared in tfl/src/Defn.sml. Changes to Define. It now handles a wider class of functions, (mutual and nested recursions and schemas (which may be mutual and/or nested)) and is more robust. Define ` ... ` operates as follows: 1. It creates a bindstem for the definition to be made. 2. It makes the definition, using Hol_fun. 3. It attempts to prove termination. If this fails, then Define fails. 4. Otherwise, if the definition is not recursive or is primitive recursive, the defining equations alone are returned. 5. Else, the definition is not a trivial recursion, and the following steps are made: 5a. The induction theorem is stored under bindname_ind 5b. The recursion equations are stored under bindname Then the recursion equations are returned to the user. Since Define generates names to store definitions and induction theorems under, it (currently) exhibits bizarre behaviour with functions with non-alphanumeric names. This will be fixed. In the meantime, use Hol_fun. Define also does the wrong thing with schematic definitions; again, use Hol_fun.
|
#
5179ac49 |
|
28-Jul-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modified PROVE_TAC to rewrite out restricted forall and exists, making it "Do the Right Thing" where theorems and goals using those quantifiers are about.
|
#
03bb9e42 |
|
22-Jul-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Changes to accomodate new look portableML.
|
#
46d60852 |
|
15-Jul-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Corrected addition of sum size function to TypeBase.
|
#
58859517 |
|
15-Jul-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Updated to add a size function to sum type in TypeBase.
|
#
0e5fa862 |
|
02-Jul-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Cosmetic changes.
|
#
1ee50e3a |
|
02-Jul-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Added error message for when Induct_on is attempted on something with variable type.
|
#
0058df84 |
|
28-Jun-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fixed to bring it up to date with Taupo release 0. (Changes have come across from parse_branch development.)
|
#
b5bd8c62 |
|
28-May-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Fix so that loading bossLib doesn't result in "inventing new type variables" message.
|
#
5c63922f |
|
25-May-1999 |
Konrad Slind <konrad.slind@gmail.com> |
Moved size functions for option datatype from option --- option doesn't know about numbers, so have to do in bossLib.
|
#
caf74236 |
|
29-Apr-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Initial revision
|