Theory VM_Example
section "Separation Algebra for Virtual Memory"
theory VM_Example
imports "../Sep_Tactics" "../Map_Extra"
begin
text ‹
Example instantiation of the abstract separation algebra to the sliced-memory
model used for building a separation logic in ``Verification of Programs in
Virtual Memory Using Separation Logic'' (PhD Thesis) by Rafal Kolanski.
We wrap up the concept of physical and virtual pointers as well as value
(usually a byte), and the page table root, into a datatype for instantiation.
This avoids having to produce a hierarchy of type classes.
The result is more general than the original. It does not mention the types
of pointers or virtual memory addresses. Instead of supporting only
singleton page table roots, we now support sets so we can identify a single
0 for the monoid.
This models multiple page tables in memory, whereas the original logic was
only capable of one at a time.
›