Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
call testSelectorType(mk_sels.orig.one,<br />
ntcm2_elem_sels.orig.one.TConst) <strong>and</strong><br />
call testSelectorType(mk_sels.orig.two,<br />
ntcm2_elem_sels.orig.two.TConst) <strong>and</strong><br />
result has TArgs(ntappl1, ntcm2_elem_sels.copy, 1)<br />
)<br />
<strong>and</strong> result has DefinedType(mk_sels.copy, ntappl1)<br />
)) <strong>and</strong><br />
/* copy selectors */<br />
exists new_copy_selector_map: map orig:copy_selector_set<br />
to copy:new Selector . (<br />
forall cselm1:new_copy_selector_map .<br />
forall cselm2:new_copy_selector_map . (<br />
cselm1.orig = cselm2.orig equiv cselm1.copy = cselm2.copy<br />
) <strong>and</strong><br />
forall cp_sels:new_copy_selector_map . (<br />
result has Name(cp_sels.copy, cp_sels.orig.Name) <strong>and</strong><br />
result has Consts(new_dtd_module, cp_sels.copy) <strong>and</strong><br />
exists nccm_elem_sels:new_copy_constructor_map . (<br />
cp_sels.orig.Constructor = nccm_elem_sels.orig <strong>and</strong><br />
result has Selectors(nccm_elem_sels.copy, cp_sels.copy,<br />
indexOf(cp_sels.orig,<br />
cp_sels.orig.Constructor, "Selectors"))<br />
) <strong>and</strong><br />
exists ntappl2:new TAppl . (<br />
exists tcnst2:TConst . (<br />
tcnst2.Name = "->" <strong>and</strong><br />
result has THead(ntappl2, tcnst2)<br />
) <strong>and</strong><br />
exists ntcm3_elem_sels:new_tconst_map . (<br />
(cp_sels.orig.Constructor.DataDef =<br />
ntcm3_elem_sels.orig.one or<br />
cp_sels.orig.Constructor.DataDef =<br />
ntcm3_elem_sels.orig.two<br />
) <strong>and</strong><br />
result has TArgs(ntappl2, ntcm3_elem_sels.copy, 0)<br />
) <strong>and</strong><br />
exists tcnst3:TConst . (<br />
call testSelectorType(cp_sels.orig, tcnst3) <strong>and</strong><br />
result has TArgs(ntappl2, tcnst3, 1)<br />
) <strong>and</strong><br />
result has DefinedType(cp_sels.copy, ntappl2)<br />
)) <strong>and</strong><br />
/* build states */<br />
exists new_state_map:map orig:state_map to copy:new State . (<br />
forall nsm1:new_state_map . forall nsm2:new_state_map . (<br />
nsm1.orig = nsm2.orig equiv nsm1.copy = nsm2.copy<br />
) <strong>and</strong><br />
81