-
Notifications
You must be signed in to change notification settings - Fork 20
Express device_implements_state_machine using only run1, without runUntilResp #965
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.