Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
proofs Merge remote-tracking branch 'origin/infcomp3' into bool_unit_datatypes
testing
Holmakefile
README tweaks to semantics README
ast.lem
astScript.sml
bigStep.lem
bigStepScript.sml
cmlPtreeConversionScript.sml
compute_semanticsLib.sml
gramScript.sml Adjust grammar to allow patterns in functions.
grammar.txt Parse type abbreviations in signatures.
initialProgram.lem
initialProgramScript.sml
lexer_funScript.sml
lib.lem Slow progress fixing the type soundness proof
libScript.sml
printScript.sml
replScript.sml
semanticPrimitives.lem Merge remote-tracking branch 'origin/infcomp3' into bool_unit_datatypes
semanticPrimitivesScript.sml Add some type abbrevs to initial program
smallStep.lem removing prim. bool and unit from semantics and type system
smallStepScript.sml
standaloneScript.sml Change of approach for dealing with value restriction + inference com…
terminationScript.sml termination for v_to_char_list_def
tokenUtilsScript.sml
tokens.lem Implement character literals in expressions.
tokensScript.sml Add some type abbrevs to initial program
typeSystem.lem
typeSystemScript.sml Merge remote-tracking branch 'origin/infcomp3' into bool_unit_datatypes

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.

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.
Something went wrong with that request. Please try again.