History log of /seL4-l4v-10.1.1/HOL4/src/thm/Overlay.sml
Revision Date Author Comments
# cc8f983f 29-Aug-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Promote more functions from Isabelle Library into Portable

- enclose l r mid is "just" an application of string concatenation,
but is useful when partially applied to two arguments
- filter_out is filter with the sense of the predicate flipped
- ? provides a compact way of writing "if b then f x else x"

Finally, move fold_product from Library to Graph, where it is used.
This library function is effectively a fold over a cross product of
two lists + an accumulator. It's nice not to have to compute the
cross product explicitly, but it's a bit too exotic for me. I grepped
for uses of it in the Isabelle sources, and even there it's used only
6 times.


# d6727ef5 26-Aug-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Add "flipped" versions of apfst, apsnd and uncurry (from Isabelle)

These are "flipped" infixes just as |> is a flipped application
operator.

Thus

pair |>> f

is the same as

apfst f pair

||> is apsnd, and ||-> is uncurry. The latter has definition

fun (x,y) ||-> f = f x y

This is a prelude to better incorporation of the concurrent futures
implementation currently stashed in portableML/poly/fromIsabelle,
which is in turn work towards github issue #575.


# b72e391c 20-Mar-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Move smpp to Portable - get everything up to arithmeticScript working


# a80bef55 13-Mar-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Updated as far as type_grammar.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


# aa9f83cb 09-Jan-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Standard and experimental kernels now share Thm.sml implementation

It should now be possible to have the logging kernel work over either
implementation of terms, and to delete its copy of Type, Term etc.