[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,

Specification ops
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