Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #967 from CakeML/lpr_arm8
ARM8 version of LPR checker & proof
- Loading branch information
Showing
10 changed files
with
648 additions
and
13 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
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 |
---|---|---|
@@ -1,21 +1,14 @@ | ||
INCLUDES = $(CAKEMLDIR)/misc $(CAKEMLDIR)/basis $(CAKEMLDIR)/compiler .. | ||
CLINE_OPTIONS = | ||
|
||
all: $(DEFAULT_TARGETS) README.md exec | ||
all: $(DEFAULT_TARGETS) README.md | ||
.PHONY: all | ||
|
||
README_SOURCES = $(wildcard *Script.sml) $(wildcard *Lib.sml) $(wildcard *Syntax.sml) | ||
DIRS = $(wildcard */) | ||
README.md: $(CAKEMLDIR)/developers/readme_gen readmePrefix $(patsubst %,%readmePrefix,$(DIRS)) $(README_SOURCES) | ||
$(protect $(CAKEMLDIR)/developers/readme_gen) $(README_SOURCES) | ||
|
||
ifndef CC | ||
CC=gcc | ||
endif | ||
lpr_array.S: *lpr_arrayCompileScript.sml | ||
lpr_ramsey.S: *lpr_arrayRamseyCompileScript.sml | ||
cake_lpr_array: lpr_array.S $(CAKEMLDIR)/basis/basis_ffi.o | ||
$(CC) $< $(protect $(CAKEMLDIR)/basis/basis_ffi.o) $(GCCFLAGS) -o $@ | ||
|
||
exec: cake_lpr_array | ||
.PHONY: exec | ||
cake_lpr.S: *lpr_arrayCompileScript.sml | ||
cake_lpr_arm8.S: *lpr_arrayCompileARM8Script.sml | ||
cake_lpr_ramsey.S: *lpr_arrayRamseyCompileScript.sml |
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
11 changes: 11 additions & 0 deletions
11
examples/lpr_checker/array/compilation/lpr_arrayCompileARM8Script.sml
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,11 @@ | ||
(* | ||
Compiles the lpr example by evaluation inside the logic of HOL | ||
*) | ||
open preamble compilationLib lpr_arrayFullProgTheory | ||
|
||
val _ = new_theory "lpr_arrayCompileARM8" | ||
|
||
val lpr_array_compiled = save_thm("lpr_array_compiled", | ||
compile_arm8 "cake_lpr_arm8" check_unsat_prog_def); | ||
|
||
val _ = export_theory (); |
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
15 changes: 15 additions & 0 deletions
15
examples/lpr_checker/array/compilation/proofsARM8/Holmakefile
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,15 @@ | ||
INCLUDES = $(CAKEMLDIR)/misc $(CAKEMLDIR)/semantics/proofs\ | ||
$(CAKEMLDIR)/compiler/backend/proofs\ | ||
$(HOLDIR)/examples/l3-machine-code/arm8/asl-equiv \ | ||
$(CAKEMLDIR)/compiler/encoders/arm8_asl \ | ||
$(CAKEMLDIR)/compiler/encoders/arm8_asl/proofs\ | ||
$(CAKEMLDIR)/compiler/backend/arm8_asl \ | ||
.. ../.. | ||
|
||
all: $(DEFAULT_TARGETS) README.md | ||
.PHONY: all | ||
|
||
README_SOURCES = $(wildcard *Script.sml) $(wildcard *Lib.sml) $(wildcard *Syntax.sml) | ||
DIRS = $(wildcard */) | ||
README.md: $(CAKEMLDIR)/developers/readme_gen readmePrefix $(patsubst %,%readmePrefix,$(DIRS)) $(README_SOURCES) | ||
$(protect $(CAKEMLDIR)/developers/readme_gen) $(README_SOURCES) |
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,7 @@ | ||
Prove end-to-end correctness theorem for LPR checker with arrays | ||
against ARM8 model | ||
|
||
[lpr_arrayProofARM8Script.sml](lpr_arrayProofARM8Script.sml): | ||
Compose the semantics theorem and the compiler correctness | ||
theorem with the compiler evaluation theorem to produce end-to-end | ||
correctness theorem that reaches final machine code. |
Oops, something went wrong.