#
19da86c7 |
|
03-Jun-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Provide a delete_trailing_wspace : string -> string function in Lib
|
#
ddc8d59b |
|
06-May-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add binding for option_compare in Lib
|
#
03b1a5d4 |
|
14-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Progress through Parse.sml
|
#
3f252166 |
|
13-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Work towards use of PolyML.pretty type for most pretty-printing Compiles up to src/parse under Poly/ML
|
#
1e48d44b |
|
04-Oct-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add syntax/ops to make set manipulations easier
|
#
bd27d877 |
|
27-Sep-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Remove some early code assuming term is an equality type
|
#
76099c66 |
|
26-Sep-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add an op_assoc to Lib (by analogy with other op_ functions)
|
#
c554f74b |
|
15-Feb-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Ensure HOL4 works with fixed-width integers under Poly/ML. Integers under Poly/ML 5.6.1 are likely to be fixed-width by default (up until now they've always been arbitrary precision). Some changes were needed to cope with this: - The Arbint and Artbnum structures effectively assumed Int.int = IntInf.int. - The Standard ML structure Time is based on LargeInt.int and not Int.int. Code for printing times has been re-implemented using the Date structure. - The smart-configure.sml file used the Overflow exception to distinguish between Moscow ML and Poly/ML. This test is now based on a difference in the printing of General.Fail exceptions.
|
#
904bab9d |
|
07-Jan-2015 |
Michael Norrish <michael.norrish@nicta.com.au> |
Move useful apnth function to Lib Also make it raise a HOL_ERR rather than a Bind error if the index is negative or greater than the length of the list.
|
#
7cf2a687 |
|
21-Aug-2012 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add extra term/syntax functions to HolKernel. Also tweak definition of HolKernel.find_terms. The new definition of find_terms may or may not be quicker. The new functions are: list_mk_icomb (a type instantiating version of list_mk_comb) mk_monop (this is essentially a curried version of boolSyntax.mk_icomb) mk_binop mk_triop mk_quadop syntax_fns (This is taken from bitSyntax and provides a quick way to define syntax functions. Designed to work with the "mk" functions above.)
|
#
af84d146 |
|
12-Aug-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Revise more of Parse's pretty-printing APIs. In particular, remove a bunch of entry-points with names matching *backend_string* and print_backend*. The objective with these was to accompany things like term_to_string (which printed to a raw_terminal backend) with a printer that printed to the current backend. This is now easy enough to do with ppstring pp_term and print o ppstring pp_term The flip of the current_backend reference so that it points at "raw_terminal" can now also be done with the rawterm_pp function. The other convenience entry-points that have gone, for the moment, are those that did all of the above while also removing certain specified overloads. Because pp_term_without_overloads_on is still present, you have to make do with print (ppstring (pp_term_without_overloads_on ["/\\"]) ``p /\ q``); or rawterm_pp (ppstring (pp_term_without_overloads_on ["/\\"])) ``p /\ q``; Closes #13. I will open a fresh issue to do with making the last two use-cases slightly easier to deal with.
|
#
06487daa |
|
12-Jul-2012 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
To successfully link to HTML documentation, a space is required before colons in sig files. I'd call this feature a bug.
|
#
ad9b0411 |
|
12-Jul-2012 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Try to standardise the formatting of Lib code. The changes should hopefully improve code legibility. Have attempted to follow the style guide at http://mlton.org/SyntacticConventions.
|
#
fa41c55f |
|
03-Sep-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
Add a lex_cmp to Lib and stop using an ad-hoc definition in OpenTheoryMap
|
#
a5a9cf4c |
|
13-Feb-2011 |
Ramana Kumar <ramana.kumar@gmail.com> |
Add a n(log n) and linear time topsorts to Lib Requires input as a dictionary/vector of adjacency lists, whereas the existing quadratic topsort just takes a list and a partial order on its elements.
|
#
3153f9a3 |
|
01-Oct-2010 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Added functions triple and quadruple for creating tuples.
|
#
da53f928 |
|
30-Sep-2010 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Added functions to turn lists into tuples (with length checking). Lib.single documented.
|
#
af911436 |
|
17-Sep-2010 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Removed itotal from Lib. Please DO NOT use handle _ in your code! Exception Interrupt should (almost) never be handled without being re-raised. Note that Lib.total already does the right thing.
|
#
c33aeb1f |
|
16-Sep-2010 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Added functions rpair : 'a -> 'b -> 'b * 'a and swap : 'a * 'b -> 'b * 'a to Lib. These are occasionally useful when working with pairs in SML.
|
#
fd1efab9 |
|
31-Jul-2010 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Removed Lib.gather. Use {Lib,List}.filter instead.
|
#
2a04a09d |
|
17-Jun-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move 4 copies of mapshape in src/bool to Lib. Also tidy up more of those non-exhaustive match warnings.
|
#
15bc0ac5 |
|
26-May-2010 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add support for keeping track of real time. This gives more realistic timings when external tools are being invoked, e.g. the SAT tools in HolSatLib.
|
#
1c6c611a |
|
25-Oct-2009 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Functions apfst and apsnd added. These apply a function to the first (second, respectively) component of a pair.
|
#
48003cc9 |
|
27-Jul-2009 |
Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk> |
An extended version of get_first was added. get_first gets a function f:'a -> 'b option and a list l:'a list. It then returns valOf (f e) for the first element e of l for which f is not NULL. The new function first_opt is very similar, however, f now gets the position of the element in the original list as well.
|
#
8aff21d0 |
|
09-Apr-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add extremely useful |> combinator (stolen from the standard Isabelle library). Instead of writing (f o g o h o j) x or f (g (h (j x))) both of which are painful, write x |> j |> h |> g where there is a more natural flow from left-to-right: "starting with x, we first apply j, then h, then g".
|
#
e8de5b3a |
|
13-Feb-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a version of List.all for strings to the standard library.
|
#
6d8ad9d0 |
|
08-Feb-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a variant of Konrad's trypluck, and document it. Also adjust some Lib code to use the Basis library's List.revAppend.
|
#
18abbe1d |
|
06-Feb-2009 |
Konrad Slind <konrad.slind@gmail.com> |
Fix to bug spotted by Anthony, whereby the induction theorem for functions defined by pattern-matching on literals was failing to be proved. Misc. simplifications to TFL code plus adding "trypluck" to Lib.
|
#
775a6995 |
|
05-Feb-2009 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add some useful functions get_first : ('a -> 'b option) -> 'a list -> 'b option bool_compare : bool * bool -> order flip_cmp : ('a * 'a -> order) -> ('a * 'a -> order) The get_first function is useful if you want to find the guy that can be transformed successfully by some function, and you want the result of the transformation, not the input to it. (Otherwise, you'd use List.find (isSome o f).) The get_first name is taken from Isabelle's standard library (I've used it multiple times under different names throughout HOL). bool_compare should be in the Basis Library but isn't.
|
#
6b16cc6b |
|
04-Feb-2009 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Combinators A and B removed (dead code, not used anywhere).
|
#
2e046e8c |
|
03-Feb-2009 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Added fold_map and separate.
|
#
549d87b7 |
|
02-Nov-2008 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a new utility function, unprefix, which removes a putative prefix from a string, or raises an error if it's not a prefix. (There is a function of the same name and behaviour in the Isabelle library.ML.)
|
#
8389ab25 |
|
29-Apr-2008 |
Scott Owens <Scott.Owens@cl.cam.ac.uk> |
Rename Lib.concat to Lib.strcat so that when Lib is opened (via HolKernel) in an interactive session, the SML pervasive concat isn't shadowed.
|
#
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.
|
#
73cc7af4 |
|
06-Dec-2007 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a mapi function to accompany the similar appi.
|
#
04f699d7 |
|
19-Dec-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Random other bits deemed useful.
|
#
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.
|
#
7082f576 |
|
25-Sep-2006 |
Konrad Slind <konrad.slind@gmail.com> |
In Feedback, changed some errors into warnings. This lets some files get reloaded via cut-and-paste after being "load"ed. Helps for debugging. In Lib: added itotal, which is like total, except it also catches Interrupt and turns it into NONE. Also added a type of "verdicts", used for the "failure monad". We should gather all the monads used in the system somewhere (probably in prekernel).
|
#
a2f6a343 |
|
21-Sep-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Another useful function (the sort of thing that should be in the Basis library but isn't) for working with comparison functions.
|
#
c47a0848 |
|
22-Jun-2006 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Add a version of app that passes in the index of the list-element being operated on.
|
#
38875485 |
|
02-May-2005 |
Scott Owens <Scott.Owens@cl.cam.ac.uk> |
For portability, the frag datatype and constructors should come from the Portable structure and be exported to the top level by opening the Lib structure.
|
#
aabaa835 |
|
23-Aug-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Some more useful manipulations on compare functions (these really should be in the Basis library).
|
#
80d72112 |
|
16-Aug-2004 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Pretty significant "refactoring" of the early source code. All the stuff that was in common between 0 and experimental-kernel moves into a new prekernel directory. This can be thought of as the kernel utilities directory, full of code that is not quite portableML because it's fairly HOL specific, but that isn't really part of the core implementation of types, terms and theorems. (Also add a new pair_compare function to Lib.)
|