[Imprint][Data Privacy Statement][E-Mail]
Back to main index.
View the specification.
View theorem base summary,
View theorem base listing,
the used properties by spec,
the dependency list,
the symbol table,
enrich
separation
with
procedures alloc : ref × heap nonfunctional nondeterministic;
alloc# refset : ref × heap nonfunctional nondeterministic;
read ref × heap : : obj ;
write ref × obj : heap nonfunctional ;
free ref : heap nonfunctional ;
variables r : ref;
o : obj;
h : heap;
hP : heap → bool;
rs : refset;
axioms
read-known : ((r => o0 * hP))(h) ⊦ ⟪read(r, h; o1)⟫ (o0 = o1);
read-unknown : ((r =>_ * hP))(h) ⊦ ⟪read(r, h; o)⟫ true;
write-known : ((r => o0 * hP))(h) ⊦ ⟪write(r, o1; h)⟫ ((r => o1 * hP))(h);
write-unknown : ((r =>_ * hP))(h) ⊦ ⟪write(r, o; h)⟫ ((r => o * hP))(h);
alloc : hP(h) ⊦ ⟪alloc(; r, h)⟫ ((r =>_ * hP))(h);
alloc-refset : hP(h), dom h ⊆ rs ⊦ ⟪alloc#(rs; r, h)⟫ (((r =>_ * hP))(h) ∧ ¬ r ∈ rs);
free-unknown : ((r =>_ * hP))(h) ⊦ ⟪free(r; h)⟫ hP(h);
free-known : ((r => o * hP))(h) ⊦ ⟪free(r; h)⟫ hP(h);
end enrich