aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/HTLgenspec.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-04-06 23:08:03 +0100
committerYann Herklotz <git@yannherklotz.com>2021-04-06 23:08:03 +0100
commit23a2a2fb2916a7ecb240aa51686bbe049f8418e4 (patch)
treef5f9cf0001bbd44cfaab7d70f3c169b8275be15d /src/hls/HTLgenspec.v
parent873162771e87c6c358dc07e58bc0bd3a08f9a00e (diff)
downloadvericert-23a2a2fb2916a7ecb240aa51686bbe049f8418e4.tar.gz
vericert-23a2a2fb2916a7ecb240aa51686bbe049f8418e4.zip
Finish load and store proof, but broke top-level
Diffstat (limited to 'src/hls/HTLgenspec.v')
-rw-r--r--src/hls/HTLgenspec.v8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/hls/HTLgenspec.v b/src/hls/HTLgenspec.v
index 7cb6d8c..6a10fa2 100644
--- a/src/hls/HTLgenspec.v
+++ b/src/hls/HTLgenspec.v
@@ -178,12 +178,12 @@ Hint Constructors tr_code : htlspec.
Inductive tr_module (f : RTL.function) : module -> Prop :=
tr_module_intro :
- forall data control fin rtrn st stk stk_len m start rst clk scldecls arrdecls wf,
+ forall data control fin rtrn st stk stk_len m start rst clk scldecls arrdecls wf1 wf2 wf3,
m = (mkmodule f.(RTL.fn_params)
data
control
f.(RTL.fn_entrypoint)
- st stk stk_len fin rtrn start rst clk scldecls arrdecls None wf) ->
+ st stk stk_len fin rtrn start rst clk scldecls arrdecls None wf1 wf2 wf3) ->
(forall pc i, Maps.PTree.get pc f.(RTL.fn_code) = Some i ->
tr_code f.(RTL.fn_code) pc i data control fin rtrn st stk) ->
stk_len = Z.to_nat (f.(RTL.fn_stacksize) / 4) ->
@@ -648,5 +648,9 @@ Proof.
replace (st_datapath s10) with (st_datapath s3) by congruence.
replace (st_st s10) with (st_st s3) by congruence.
eapply iter_expand_instr_spec; eauto with htlspec.
+ rewrite H5. rewrite H7. apply EQ2.
apply PTree.elements_complete.
+ eauto with htlspec.
+ erewrite <- collect_declare_freshreg_trans; try eassumption.
+ lia.
Qed.