-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consolidate the various approaches we have to projecting from the kernel heap #841
Comments
I support this motion, and agree that it is the most sensible first step. If we got this, would it be clear that the |
Yes, those |
Oh, I thought for some reason it also happened in non-misc lemmas. They certainly seemed to make a more common appearance. Also, looking through issues I found one that's semi-related to this: #633 |
I suppose they also do occur in lemmas with postconditions of |
Ewww. Definitely something we should keep in our sights to improve upon then. I hope the memory of our discussion about lifting rules will remain in your head in case it's ever useful, because until the pred_map/opt_map consolidation my ideas don't really help. |
We currently have at least two approaches to performing heap projections, namely the
pred_map
style, and the|>
(opt_map
) style.The
pred_map
style uses locales together with collections of simplification rules to define and reason with the heap projections, whereas|>
is a much more lightweight approach. Given the difficulty of extending thepred_map
approach to chains of heaps which have not already been defined, we do prefer the|>
approach, which has adequate and simple simplification rules, as well. We face problems especially with lemmas and goals that contain both approaches.We should consolidate on the
|>
approach. This in particular would require rewriting all the invariants for MCS given inDetSchedInvs_AI.thy
.Once we have consolidated on the
|>
approach, we should remove lemmas inDetSchedSchedule_AI.thy
in MCS which includemisc
in the name. These are lemmas which show that some function preserves all properties of a large collection of heaps. These are difficult to update when the abstract specification changes, or when invariants change. A better approach would be to show that functions preserve individual heaps (perhaps viacrunch
) and then to make greater use of lifting lemmas.More ambitious projects include
obj_at/obj_at'
in terms of|>
and|<
(opt_pred
).The text was updated successfully, but these errors were encountered: