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