<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../unit.xsl"?>
<KIVSPEC name="divblkforward"><SPECBODY>enrich <a href="../../../specs/divblkADT+CDT/export/unit.xml">divblkADT+CDT</a> with
   
   predicates 
      R : astate × cstate;
   
   axioms 
      initialisation :  ⊦ CInits ⊆ ran(AInits ≪ R);
      finalisation :  ⊦ R ⊗ CFin ⊆ AFin;
      fin-applicability :  ⊦ dom(AFin) ≪ R = R ≫ dom(CFin);
      correctness :  ⊦ (div(AOp(i)) ≪- R) ⊗ eff(COp(i)) ⊆ eff(AOp(i)) ⊗ R;
      blk-applicability :  ⊦ dom(R ≫ blk(COp(i))) ⊆ blk(AOp(i));
      div-applicability :  ⊦ dom(R ≫ div(COp(i))) ⊆ div(AOp(i)); comment: the proof obligations for forward refinement are specified here (as axioms).
They must be proved from the standard forward simulation rules for forward simulation
(for the embedded data type) in divblkforward-is-forward;
   
end enrich</SPECBODY></KIVSPEC>