Express device_implements_state_machine using only run1, without runUntilResp#965
Express device_implements_state_machine using only run1, without runUntilResp#965fshaked merged 16 commits intoproject-oak:mainfrom
Conversation
without using runUntilResp, so that each condition talks only about one cycle, which should be closer to Cava specs
Note that some proofs are Admitted because I'm not sure how to handle tl_inflight_ops
|
@jadephilipoom, notice that I use the invariant-spec in the big proof in |
| postcondition := | ||
| fun (input : denote_type (input_of inner)) repr | ||
| (output : denote_type (output_of inner)) => | ||
| let repr' := inner_spec_step input repr in |
There was a problem hiding this comment.
I wonder how common it is that postcondition contains let repr' := update input repr in ... and whether that would justify making it an argument of postcondition.
The d2h can be retrieved by calling last_d2h.
This PR includes @samuelgruetter's #960 (which should probably be closed without merging).
Fix the problems of
runUntilResp, discussed in #960.Change the IncrWait end2end proof to use the invariant-spec.
Fix TL: save the address of the outstanding request, instead of using the address from the input (which might change).
Fix TL spec.
Split the IncrWait device file to cava+spec, and end2end proof.