#
4761143b |
|
10-Aug-2009 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Removed trailing whitespace from all .sml and .sig files. This affects over 900 files and was done using emacs's delete-trailing-whitespace function in batch mode. Building the system with Poly/ML and Moscow ML seems to work, so I'm hoping these changes don't break anything. Please complain if they do!
|
#
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.
|
#
8d66412d |
|
18-Oct-2008 |
Konrad Slind <konrad.slind@gmail.com> |
Added multiDefine, which can define multiple functions. If the input is a tangle of different definitions, it sorts out the order in which the definitions should be made. Example: multiDefine `(even 0 = T) /\ (even (SUC n) = odd n) /\ (fact x = if x=0 then 1 else mult x (fact (x-1))) /\ (mult x y = x * y) /\ (odd 0 = F) /\ (odd (SUC n) = even n)`;
|
#
2bea5662 |
|
03-May-2007 |
Konrad Slind <konrad.slind@gmail.com> |
Overhaul of automated termination prover. It now does a better job of guessing termination relations, using a relevance criterion to cut down the number of lexicographic combinations that are tried. It can handle DIV and MOD now, through the "termination_simps" variable, which can be added to in order to support other destructor functions. Also added DIV_LESS and MOD_LESS to arith_ss. This breaks some proofs, and I've fixed the broken ones in the standard system build. But there may still be proofs among the examples directories that will now fail. If there's a problem with this, I will happily revert.
|
#
bb896b6b |
|
30-Jan-2007 |
Konrad Slind <konrad.slind@gmail.com> |
Support for tDefine.
|
#
9d6bbbea |
|
26-Jan-2007 |
Konrad Slind <konrad.slind@gmail.com> |
Revised terminator. Please let me know of any old termination proofs that no longer go through.
|
#
9dce3c9a |
|
24-Jan-2007 |
Konrad Slind <konrad.slind@gmail.com> |
Generalized interface to Define and kin.
|
#
20133481 |
|
23-Oct-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Define now handles simple definitions defined by pattern-matching against (numeric) constants, e.g. Define `(f 0 = 1) /\ (f 1 = 1) /\ (f n = f (n-1) + f (n-2)`; But more testing/robustification needs to be done.
|
#
3493bf2c |
|
25-Sep-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Added an API version of Define. Needs some refinement yet. Uses the "verdict" type ('a,'b) verdict = PASS of 'a | FAIL of 'b to tell whether a definition attempt succeeded or not (and in which manner).
|
#
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.
|
#
8ec824d4 |
|
21-Jul-2005 |
Konrad Slind <konrad.slind@gmail.com> |
TotalDefn.primDefine now includes the "termination theorem" in its result.
|
#
ceddcab0 |
|
04-Aug-2004 |
Konrad Slind <konrad.slind@gmail.com> |
Big re-org. Have moved the "num" theories gcd and divides to be with the rest of number theory. SingleStep and TotalDefn are used in them, so I moved these also into the realm of numLib. This should make life easier, in general, since Cases_on, Induct_on, and Define then become usable in (part of) numLib development.
|