seL4 / l4v

seL4 specification and proofs
https://sel4.systems
Other
492 stars 104 forks source link

support strongest-postcondition reasoning #763

Open lsf37 opened 1 month ago

lsf37 commented 1 month ago

We currently have _sp rules for a number of the basic monad constructs, and we're using them manually in some situations, e.g. to avoid case blow-up in wp reasoning or when chaining trivial steps in corres proofs.

We should:

I don't think we need a full-blown wp equivalent for sp, because we do not want to switch over to general sp reasoning or use more of it than necessary (to avoid duplicating rules for kernel functions). This issue only proposes to make those instances where it would be beneficial to use more ergonomic to use and easier to read/review.

MCS seems to have a higher use count of sp rules, so we should make sure to test the method there.

lsf37 commented 1 month ago

There is also a question about which other monads to support (e.g. error and/or reader monad), but so far most of the instances I've seen are on the plain nondet monad, so I'd vote for starting small and doing that one properly first.