03.02.2014 Aufrufe

Spezifikationsmodule - Software and Systems Engineering - TUM

Spezifikationsmodule - Software and Systems Engineering - TUM

Spezifikationsmodule - Software and Systems Engineering - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!