Skip to content
This repository has been archived by the owner on Aug 8, 2020. It is now read-only.

larsrh/isabelle-cakeml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

isabelle-cakeml

Exporting CakeML to Isabelle with Lem

CakeML DOI AFP

Purpose

CakeML is a functional programming language with a proven-correct compiler and runtime system.

This repository contains an unofficial version of the CakeML semantics that has been exported from the Lem specifications to Isabelle. The thy/generated/CakeML folder roughly corresponds to the semantics folder in the CakeML repository.

Additionally, there are some hand-written theory files that adapt the exported code to Isabelle and port proofs from the HOL4 formalization, e.g. termination and equivalence proofs.

Instructions

Most of the files in this repository are generated automatically by the bootstrap script. It reads configuration from the versions file that specifies which repository versions of Lem and CakeML to fetch.

After the specification has been exported, it builds the theories with isabelle build.

The thy folder corresponds to the contents of the AFP entry. Both are kept in sync manually.

Contributors

The export script and hand-written source files have been written by Lars Hupel.

Lem is a project by Peter Sewell et.al. Contributors can be found on its project page and on GitHub.

CakeML is a project with many developers and contributors that can be found on its project page and on GitHub.

In particular, Fabian Immler and Johannes Åman Pohjola have contributed Isabelle mappings for constants in the Lem specification of the CakeML semantics.