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.

esult has TransitionSegment(cp_inp.copy, nctm_elem_inp.copy)<br />

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

exists npm_elem_inp2:new_port_map . (<br />

(npm_elem_inp2.orig.one = cp_inp.orig.Port.Model or<br />

npm_elem_inp2.orig.two = cp_inp.orig.Port.Model<br />

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

exists new_port_cinp:new MIFPort . (<br />

result has Port(cp_inp.copy, new_port_cinp) <strong>and</strong><br />

result has Model(new_port_cinp, npm_elem_inp2.copy)<br />

)) or<br />

exists ncpm_elem_inp:new_copy_port_map . (<br />

ncpm_elem_inp.orig = cp_inp.orig.Port.Model <strong>and</strong><br />

exists new_port_inp2:new MIFPort . (<br />

result has Port(cp_inp.copy, new_port_inp2) <strong>and</strong><br />

result has Model(new_port_inp2, ncpm_elem_inp.copy)<br />

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

exists nmt_cinp:new MIFTerm . (<br />

result has Pattern(cp_inp.copy, nmt_cinp) <strong>and</strong><br />

run setCopiedMIFTerm(cp_inp.orig.Pattern, nmt_cinp,<br />

new_constructor_map, new_copy_constructor_map, new_appl_map,<br />

new_copy_appl_map, new_lvcn_map, new_copy_lvcn_map)<br />

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

/* build outputs */<br />

exists new_output_map:map orig:output_map to copy:new Output . (<br />

forall nom1:new_output_map . forall nom2:new_output_map . (<br />

nom1.orig = nom2.orig equiv nom1.copy = nom2.copy<br />

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

forall mk_outp:new_output_map . (<br />

exists ntm_elem_outp:new_transition_map . (<br />

ntm_elem_outp.orig.one=mk_outp.orig.one.TransitionSegment <strong>and</strong><br />

ntm_elem_outp.orig.two=mk_outp.orig.two.TransitionSegment <strong>and</strong><br />

result has TransitionSegment(mk_outp.copy, ntm_elem_outp.copy)<br />

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

exists npm_elem_outp:new_port_map . (<br />

npm_elem_outp.orig.one = mk_outp.orig.one.Port.Model <strong>and</strong><br />

npm_elem_outp.orig.two = mk_outp.orig.two.Port.Model <strong>and</strong><br />

exists new_port_outp:new MIFPort . (<br />

result has Port(mk_outp.copy, new_port_outp) <strong>and</strong><br />

result has Model(new_port_outp, npm_elem_outp.copy)<br />

)<br />

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

exists nmt_outp:new MIFTerm . (<br />

result has Expression(mk_outp.copy, nmt_outp) <strong>and</strong><br />

run setUnifiedMIFTerm(mk_outp.orig.one.Expression,<br />

mk_outp.orig.two.Expression, nmt_outp, new_constructor_map,<br />

new_appl_map, new_lvcn_map)<br />

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

/* copy outputs */<br />

89

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!