History log of /seL4-l4v-10.1.1/HOL4/examples/acl2/ml/encodeLib.sml
Revision Date Author Comments
# 8d83067c 21-Oct-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove TABs from examples


# 3c827dd8 22-Nov-2010 James Reynolds <jr291@cam.ac.uk>

More translations complete, CASE_SPLIT_CONV performs type instantiation, termination condition for strings, marginal speed up.


# aaef1410 20-Nov-2010 James Reynolds <jr291@cam.ac.uk>

Fixed problems with encode o decode = fix not completing for some termination cases when applied to nil


# e2ff25d2 19-Nov-2010 James Reynolds <jr291@cam.ac.uk>

Types based upon finite maps encode correctly and simple functions from the opsem script translate.
Some of the script has been translated in fmapExample.sml, however, translations now require conditional translation on successful evalation.


# 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!


# 938852ac 10-Sep-2008 James Reynolds <jr291@cam.ac.uk>

Final raft of compatlibility changes.


# 17f81fc0 09-Sep-2008 James Reynolds <jr291@cam.ac.uk>

Modifications to allow the translation to run under PolyML.


# 235ce263 08-Sep-2008 James Reynolds <jr291@cam.ac.uk>

Complete rework of the function encoding for ACL2. Usage of the encoding is
contained in acl2encodeLib.sig.


# 9b327ed1 07-Feb-2007 James Reynolds <jr291@cam.ac.uk>

encodeLib.sml,translateScript.sml : Modified to use 'natp' from hol_defaxioms


# 0513ac47 11-Nov-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib: Major rewrite to allow encoding of functions with partial specifications.
translateScript: Extra theorems added for better resolution of natural numbers
testEncode: Updated to test partial specifications and some extra red-black tree examples added.


# fb1a0282 26-Sep-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib: Now handles lambda abstractions and let syntax natively
Improved support for difficult recursion schemes (eg. DIV)
translateScript: Added translations for strings and characters
Definitions are now checked one by one to avoid the
'couldn't protect' error
sexp: Added support for 'let a = b and c = d in...' syntax


# bdd86b8a 19-Sep-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib.sml: Variables renamed to avoid restricted acl2 keywords


# a0984a5c 08-Sep-2006 James Reynolds <jr291@cam.ac.uk>

translateScript: Added a reduction for SUC (PRE a)
encodeLib: It's now possible to encoding HO functions such as FILTER, MAP etc... and re-use these in further definitions. Flattening these definitions into ACL2 is still unsupported however.


# 31c9a98e 14-Aug-2006 James Reynolds <jr291@cam.ac.uk>

translateScript: Modified NAT_CASE to use PRE a, which translates to (+ a (- 1)) rather than nfix (+ a (- 1)) which occasionally introduced termination problems.
encodeLib: Fixed a few type inferences bugs associated with the changes in translateScript.


# 1f2514aa 13-Aug-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib: Added two new modes of encoding functions, restricted, where the input domain is restricted (eg. ~(x = 0)), and recursive, where a recursive helper theorem is added to assist with termination in ACL2.


# 9977175d 04-Aug-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib: Now encodes theorems, also some minor improvements to type checking and resolving constraints, such as non-zero denominators for divide.
translateLib: A few minor changes, added an andl judgement


# 2286c3de 26-Jul-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib: Complete re-vamp, can now do PolyTypism, however has limited support for case functions eg. NULL

translateScript: Now uses |= for type judgements, and makes use of some new functions such as andl and implies.

translateLib: Some functions to support encoding which are used in both encodeLib and translateScript


# d7ee8dde 27-Jun-2006 Mike Gordon <mjcg@cl.cam.ac.uk>

Tidying up. Note that acl2_defsTheory replaces basic_defaxiomsTheory.


# ef674b63 20-Jun-2006 Mike Gordon <mjcg@cl.cam.ac.uk>

Getting things to work with the new improved naming scheme.
(e.g. COMMON-LISP::= is now called common_lisp_equal rather than acl2_equal,
and definitions proviously named *_acl2_defun are now stored as *_def).


# 3b81e730 25-May-2006 James Reynolds <jr291@cam.ac.uk>

encodeLib.sml: Now includes a short pre-processing step to remove lambda abstractions and let expressions
testEncode.sml: Removed the simplification as its included in the above


# 05b8d22e 25-May-2006 James Reynolds <jr291@cam.ac.uk>

File: encodeLib.sml

Provides functions to encode HOL into ACL2

File: encodeLib.sig

Signature for encodeLib.sml

File: translateScript.sml

Provides translation theorems between HOL and the sexp type.
New constants are also defined here, which must be slurped along with anything
being encoded.