Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Spezifikationsmodule - Software and Systems Engineering - TUM
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
nlvarcopy_arg.orig = param <strong>and</strong><br />
result has Args(cp_app.copy, nlvarcopy_arg.copy,<br />
indexOf(param, cp_app.orig, "Args"))<br />
) or<br />
/* other Const incl. not-unified Constructors */<br />
result has Args(cp_app.copy, param,<br />
indexOf(param, cp_app.orig, "Args"))<br />
)) <strong>and</strong><br />
/* build inputs */<br />
exists new_input_map:map orig:input_map to copy:new Input . (<br />
forall nim1:new_input_map . forall nim2:new_input_map . (<br />
nim1.orig = nim2.orig equiv nim1.copy = nim2.copy<br />
) <strong>and</strong><br />
forall mk_inp:new_input_map . (<br />
exists ntm_elem:new_transition_map . (<br />
ntm_elem.orig.one = mk_inp.orig.one.TransitionSegment <strong>and</strong><br />
ntm_elem.orig.two = mk_inp.orig.two.TransitionSegment <strong>and</strong><br />
result has TransitionSegment(mk_inp.copy, ntm_elem.copy)<br />
) <strong>and</strong><br />
exists npm_elem_inp:new_port_map . (<br />
npm_elem_inp.orig.one = mk_inp.orig.one.Port.Model <strong>and</strong><br />
npm_elem_inp.orig.two = mk_inp.orig.two.Port.Model <strong>and</strong><br />
exists new_port_inp:new MIFPort . (<br />
result has Port(mk_inp.copy, new_port_inp) <strong>and</strong><br />
result has Model(new_port_inp, npm_elem_inp.copy)<br />
)) <strong>and</strong><br />
exists nmt_inp:new MIFTerm . (<br />
result has Pattern(mk_inp.copy, nmt_inp) <strong>and</strong><br />
run setUnifiedMIFTerm(mk_inp.orig.one.Pattern,<br />
mk_inp.orig.two.Pattern, nmt_inp, new_constructor_map,<br />
new_appl_map, new_lvcn_map)<br />
))) <strong>and</strong><br />
/* copy inputs */<br />
exists new_copy_input_map:map orig:copy_input_set<br />
to copy:new Input . (<br />
forall ncim1:new_copy_input_map .<br />
forall ncim2:new_copy_input_map . (<br />
ncim1.orig = ncim2.orig equiv ncim1.copy = ncim2.copy<br />
) <strong>and</strong><br />
forall cp_inp:new_copy_input_map . (<br />
(exists ntm_elem_inp2:new_transition_map . (<br />
(ntm_elem_inp2.orig.one = cp_inp.orig.TransitionSegment or<br />
ntm_elem_inp2.orig.two = cp_inp.orig.TransitionSegment<br />
) <strong>and</strong><br />
result has TransitionSegment(cp_inp.copy, ntm_elem_inp2.copy)<br />
) or<br />
exists nctm_elem_inp:new_copy_transition_map . (<br />
nctm_elem_inp.orig = cp_inp.orig.TransitionSegment <strong>and</strong><br />
88