Permalink
..
Failed to load latest commit information.
alt_semantics Fix bigSmallEquivTheory for new string copy operations Jul 11, 2017
ffi Improve root directory organisation Jun 29, 2017
proofs Fix semantics/proofs Jul 31, 2017
.gitignore Use sed-like hack to add grammar ancestry to astScript Oct 6, 2016
Holmakefile Move fpSem to lem file, add FP to source semantics Jul 31, 2017
README add a README entry for funBigStep.lem Sep 2, 2015
addancs.sml Use sed-like hack to add grammar ancestry to astScript Oct 6, 2016
ast.lem Move fpSem to lem file, add FP to source semantics Jul 31, 2017
astPP.sml Improve bring_fwd_ctors in astPP Sep 2, 2017
astScript.sml Move fpSem to lem file, add FP to source semantics Jul 31, 2017
astSyntax.sml Implement the cf normalise pass as an ML function May 22, 2017
cmlPtreeConversionScript.sml Parse "op ref" as an expression Jun 21, 2017
evaluate.lem Add locations to declarations Apr 6, 2017
evaluateScript.sml Add locations to declarations Apr 6, 2017
fpSem.lem Move fpSem to lem file, add FP to source semantics Jul 31, 2017
fpSemScript.sml Move fpSem to lem file, add FP to source semantics Jul 31, 2017
gramScript.sml Parse "op ref" as an expression Jun 21, 2017
grammar.txt Parse type abbreviations in signatures. Aug 5, 2014
lexer_funScript.sml Attempt to remove accidental reals from lexer Aug 23, 2017
namespace.lem Fix up compute libs for namespaces Feb 18, 2017
namespacePropsScript.sml Move namespaceProps up one level Feb 19, 2017
namespaceScript.sml Fix up compute libs for namespaces Feb 18, 2017
primTypes.lem Reoder true,false to false,true in primTypes Aug 26, 2017
primTypesScript.sml Reoder true,false to false,true in primTypes Aug 26, 2017
readmePrefix Make readme_gen deal with subdirs and lem files Nov 17, 2016
semanticPrimitives.lem Move fpSem to lem file, add FP to source semantics Jul 31, 2017
semanticPrimitivesScript.sml Move fpSem to lem file, add FP to source semantics Jul 31, 2017
semanticPrimitivesSyntax.sml Start fixing ml_translatorLib Jan 15, 2017
semanticsComputeLib.sig Fix up compute libs for namespaces Feb 18, 2017
semanticsComputeLib.sml Adjust grammar + cmlPtreeConversion to allow "Haskell" constructors Jun 1, 2017
semanticsLib.sig Move conversions on semantic primitives to their own lib Dec 12, 2016
semanticsLib.sml Merge remote-tracking branch 'origin/master' into basis Feb 24, 2017
semanticsScript.sml Make semantics' notion of parse deterministic Mar 27, 2017
terminationScript.sml Merge remote-tracking branch 'origin/master' into strcat Jul 3, 2017
tokenUtilsScript.sml Turn on tight_equality() in miscTheory May 31, 2017
tokens.lem Handle "ref" specially. Jun 15, 2017
tokensScript.sml Verify shallow (unrolled) memcopy forward and backward Jul 8, 2017
typeSystem.lem Move fpSem to lem file, add FP to source semantics Jul 31, 2017
typeSystemScript.sml Move fpSem to lem file, add FP to source semantics Jul 31, 2017

README

The semantics of CakeML

The *.lem files are specified in Lem source
(http://www.cs.kent.ac.uk/~sao/lem/), and the corresponding *Script.sml files
are the HOL source generated from them by Lem.

lib.lem
    Setup some HOL library in Lem, and define environments and lookup.

lexer_funScript.sml
    A functional specification of a lexing from strings to token lists.

tokens.lem
    The tokens.

tokenUtilsScript.sml
    Some theorems about tokens that the grammar needs.

gramScript.sml
    The grammar that specifies how token lists should be converted to concrete
    syntax trees

cmlPtreeConversionScript.sml
    Functions to convert the concrete syntax tree into a parsing AST. Removes
    some syntactic sugar.

ast.lem
    Defines the AST.

typeSystem.lem
    Specifies the type system.

semanticPrimitives.lem
    Definitions of semantic primitives (e.g., values, and functions for doing
    primitive operations) that are use in both the big-step and small-step
    semantics.

smallStep.lem
    A small-step semantics based on the CEKS machine. Only for expressions.

bigStep.lem
    A big-step semantics.  For modules, definitions, and expressions.
    The big-step and small-step semantics are proven equivalent in the
    metatheory directory.

funBigStep.lem
    A clocked functional version of the big-step semantics. (This version will
    eventually be used as the main semantics.)

terminationScript.sml
    Termination proofs for recursive functions defined in the .lem files.

initialProgram.lem
    CakeML ASTs that define the initial basis environment.

printScript.sml
    Specifies printing of results.

replScript.sml
    Pulls everything together into a semantics for the CakeML REPL.

standaloneScript.sml
    Pulls everything together into a semantics for whole CakeML programs.

proofs/
    Proofs of basic properties of the semantics, including determinism and a
    clocked interpreter.