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.

)) <strong>and</strong><br />

/* copy constructors not merged */<br />

exists new_copy_constructor_map:map orig:copy_constructor_set<br />

to copy:new Constructor . (<br />

forall nccm1:new_copy_constructor_map .<br />

forall nccm2:new_copy_constructor_map . (<br />

nccm1.orig = nccm2.orig equiv nccm1.copy = nccm2.copy<br />

) <strong>and</strong><br />

forall cp_cons:new_copy_constructor_map . (<br />

result has Name(cp_cons.copy, cp_cons.orig.Name) <strong>and</strong><br />

result has Consts(new_dtd_module, cp_cons.copy) <strong>and</strong><br />

exists ntm_elem_ccons:new_typedef_map . (<br />

(cp_cons.orig.DataDef = ntm_elem_ccons.orig.one or<br />

cp_cons.orig.DataDef = ntm_elem_ccons.orig.two<br />

) <strong>and</strong><br />

result has Constructors(ntm_elem_ccons.copy, cp_cons.copy)<br />

)) <strong>and</strong><br />

/* build selectors */<br />

exists new_selector_map:map orig:selector_map<br />

to copy:new Selector . (<br />

forall nselm1:new_selector_map .<br />

forall nselm2:new_selector_map . (<br />

nselm1.orig = nselm2.orig equiv nselm1.copy = nselm2.copy<br />

) <strong>and</strong><br />

forall mk_sels:new_selector_map . (<br />

result has Name(mk_sels.copy,<br />

concat(mk_sels.orig.one.Name,mk_sels.orig.two.Name)) <strong>and</strong><br />

result has Consts(new_dtd_module, mk_sels.copy) <strong>and</strong><br />

exists ncm_elem_sels:new_constructor_map . (<br />

mk_sels.orig.one.Constructor = ncm_elem_sels.orig.one <strong>and</strong><br />

mk_sels.orig.two.Constructor = ncm_elem_sels.orig.two <strong>and</strong><br />

result has Selectors(ncm_elem_sels.copy, mk_sels.copy,<br />

indexOf(mk_sels.orig.one,<br />

mk_sels.orig.one.Constructor, "Selectors"))<br />

) <strong>and</strong><br />

exists ntappl1:new TAppl . (<br />

exists tcnst1:TConst . (<br />

tcnst1.Name = "->" <strong>and</strong><br />

result has THead(ntappl1, tcnst1)<br />

) <strong>and</strong><br />

exists ntcm1_elem_sels:new_tconst_map . (<br />

mk_sels.orig.one.Constructor.DataDef =<br />

ntcm1_elem_sels.orig.one <strong>and</strong><br />

mk_sels.orig.two.Constructor.DataDef =<br />

ntcm1_elem_sels.orig.two <strong>and</strong><br />

result has TArgs(ntappl1, ntcm1_elem_sels.copy, 0)<br />

) <strong>and</strong><br />

exists ntcm2_elem_sels:new_tconst_map . (<br />

80

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!