<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../unit.xsl"?>
<KIVSPEC name="simulation"><SPECBODY>enrich <a href="../../../specs/Protocol-refines-Atomic/export/unit.xml">Protocol-refines-Atomic</a> , 
       <a href="../../../specs/synchasg/export/unit.xml">synchasg</a> with comment: This specification defines the simulation relation, and proves
the main forward and backward simulation lemmas.;
   
   predicates 
      R1 : U × V;
      Input1 : I × J;
      Output1 : O × P;
   
   axioms 
      R1-def :  ⊦ R1(u, v) ↔ (∃ pa, n. n ≤ # pa ∧ MPath(pa) ∧ pa[n] = v ∧ (SA(pa) &lt; n ⊃ RF(u, v); RP(u, v))); used for : s, ls;
      Input1-def :  ⊦ Input1(i, j) ↔ (∃ pa. MPath(pa) ∧ pa[SA(pa)]i = j ∧ Input(i, inputs(pa)));
      Output1-def :  ⊦ Output1(o, p) ↔ (∃ pa. pa[SA(pa)]o = p ∧ MPath(pa) ∧ Output(o, outputs(pa)));
   
end enrich</SPECBODY></KIVSPEC>
