-
Notifications
You must be signed in to change notification settings - Fork 81
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
74 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
An extended worked example on using HOL and CakeML to write verified programs, | ||
that was presented as a tutorial on CakeML at PLDI and ICFP in 2017. | ||
|
||
[arith_exp_demoScript.sml](arith_exp_demoScript.sml): | ||
A demonstration of interaction with HOL: a simple datatype for arithmetic | ||
expressions. | ||
|
||
[simple_bstProgScript.sml](simple_bstProgScript.sml): | ||
Using the CakeML translator to produce a verified deep embedding of the | ||
simple BST implementation. | ||
|
||
[simple_bstScript.sml](simple_bstScript.sml): | ||
Simple binary search tree. | ||
|
||
[solutions](solutions): | ||
This directory contains solutions for the tutorial. | ||
|
||
[splitwordsScript.sml](splitwordsScript.sml): | ||
A high-level specification of words and frequencies | ||
|
||
[wordcountCompileScript.sml](wordcountCompileScript.sml): | ||
Compile the wordcount program to machine code by evaluation of the compiler | ||
in the logic. | ||
|
||
[wordcountProgScript.sml](wordcountProgScript.sml): | ||
Simple wordcount program, to demonstrate use of CF. | ||
|
||
[wordcountProofScript.sml](wordcountProofScript.sml): | ||
Constructs the end-to-end correctness theorem for wordcount example | ||
by composing the application-specific correctness theorem, the | ||
compiler evaluation theorem and the compiler correctness theorem. | ||
|
||
[wordfreqCompileScript.sml](wordfreqCompileScript.sml): | ||
Compile the wordfreq program to machine code by evaluation of the compiler in | ||
the logic. | ||
|
||
[wordfreqProgScript.sml](wordfreqProgScript.sml): | ||
The CakeML program implementing the word frequency application. | ||
This is produced by a combination of translation and CF verification. | ||
|
||
[wordfreqProofScript.sml](wordfreqProofScript.sml): | ||
Constructs the end-to-end correctness theorem for wordfreq example | ||
by composing the application-specific correctness theorem, the | ||
compiler evaluation theorem and the compiler correctness theorem. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
This directory contains solutions for the tutorial. | ||
|
||
[simple_bstScript.sml](simple_bstScript.sml): | ||
Simple binary search tree. | ||
|
||
[splitwordsScript.sml](splitwordsScript.sml): | ||
A high-level specification of words and frequencies | ||
|
||
[wordfreqCompileScript.sml](wordfreqCompileScript.sml): | ||
Compile the wordfreq program to machine code by evaluation of the compiler in | ||
the logic. | ||
|
||
[wordfreqProgScript.sml](wordfreqProgScript.sml): | ||
The CakeML program implementing the word frequency application. | ||
This is produced by a combination of translation and CF verification. | ||
|
||
[wordfreqProofScript.sml](wordfreqProofScript.sml): | ||
Constructs the end-to-end correctness theorem for wordfreq example | ||
by composing the application-specific correctness theorem, the | ||
compiler evaluation theorem and the compiler correctness theorem. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters