History log of /seL4-l4v-master/HOL4/src/list/src/selftest.sml
Revision Date Author Comments
# e99f87f3 26-May-2020 Michael Norrish <michael.norrish@data61.csiro.au>

Tweak 'using' to now handle unnamed monomorphic theorem arguments


# 43663798 25-May-2020 Michael Norrish <michael.norrish@data61.csiro.au>

Allow Induct_on & Cases_on to use different theorems with 'using'

The using function is infix on tactics; other tactics can grab 'using'
theorems if they want to try, using the markerLib.maybe_using
entrypoint.


# 1c36c25c 11-Jun-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Handle more constants in list_compset

With some regression tests.

Closes #548


# 4d125108 30-Apr-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix pretty-printing of list-forms

Issue was that pretty-printing blocks need to be around the list
delimiters (and included elements), not around just the elements with
the delimiters outermost. The block_info field of the listspec
constructor is now ignored when these are printed; instead the binfo
is lifted (by term_grammar.add_listform) to the rule in which the
listspec appears.

Closes #529


# 1e0d2028 11-Apr-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Re-implement Datatype package with TypeBase sexps (not adjoin)


# 5adde8cf 11-Apr-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Test EVAL of GENLIST in list selftest


# 191976e2 25-Mar-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Add regression test for printing of multi-line lists


# 1e9e2856 05-Dec-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Make sure recent new constants (from CakeML) are in compsets

In particular, oHD and oEL (aka LLOOKUP need to appear).


# 70e6ee11 10-Aug-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Switch order of listform/::-as-infix declarations in listScript

This ensures that list-forms are preferred when possible.

Previously the preference for list-forms was hard-coded into the
pretty-printing code; now the most recent rule is preferred. Of
course, if you write “h::t” that's how it will be printed, as the
listform rule doesn't apply.


# 1babf183 26-Jul-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Allow list-form syntax to be input with trailing separators

E.g.,

> Datatype `rcd = <| fld1 : num ; fld2 : num list |>`;
<<HOL message: Defined type: "rcd">>
val it = (): unit

> ``<| fld1 := 3; fld2 := [2;3;]; |>``;
val it = “<|fld1 := 3; fld2 := [2; 3]|>”: term

With test-cases over list syntax (implicitly testing
listSyntax.mk_list and some others).

Closes #439


# f1e16dff 10-Oct-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Properly enable case-expr p/printing overloads

This had been made the responsibility of the process that stored
TypeBase information, but that didn't interact properly with the
user-delta approach to storing grammar changes. Now the persistent
overloads are emitted separately.


# ebe5102e 28-Aug-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Add another FOLDR_CONV test


# 07875637 28-Aug-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix ALL_CONV case of FOLDR_CONV; add tests


# 5954c68f 14-Aug-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix listLib.FLAT_CONV

Include some tests.

Closes #358


# 33115004 07-Aug-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Reimplement/fix listLib.EL_CONV, providing tests

Closes #357


# 744f9a3b 21-Apr-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix many selftests to have prettier output


# a945e13f 18-Feb-2014 Michael Norrish <Michael.Norrish@nicta.com.au>

Make listTheory's (short-lived) SINGL constant an overload to ``\x. [x]``

It's nice to have SINGL to hand as an abbreviation for the above
abstraction (particularly as writing the abstraction will usually
require enclosing parentheses, lifting the character count to 9,
compared to SINGL's 5). But one doesn't want to see SINGL 3, when [3]
is so much nicer.

Use the new feature "ignore-for-printing" feature of overload_on (see
ac4806d), so this happens. Somewhat sadly, this does mean that
although one can write MAP SINGL l, one will get back MAP (\x. [x]) l.


# ac4806d9 18-Feb-2014 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement "ignore overloads for printing" feature.

Demonstrate with change to list, so that ``~MEM a l`` prints that way
rather than as ``a NOTIN set l``. Selftest checks this, and also that
``x NOTIN {2;3;4}`` continues to print the right way.

Closes #95.


# 14578620 04-Mar-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

New test demonstrating a bug in LIST_EQ_SIMP_CONV.


# 71f60b68 13-Jan-2008 Michael Norrish <Michael.Norrish@nicta.com.au>

* Add TAKE and DROP constants to listTheory, along with a few simple theorems
about them
* Make FIRSTN and BUTFIRSTN in rich_listTheory aliases for the above,
though the constants are now more defined than they were
* Preserve theorem forms in rich_listTheory
* Preserve FIRSTN_CONV and BUTFIRSTN_CONV behaviours (adding selftest too)