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.
) <strong>and</strong><br />
exists npm_elem_act:new_lvar_map . (<br />
npm_elem_act.orig.one = mk_act.orig.one.LocVariable.Model <strong>and</strong><br />
npm_elem_act.orig.two = mk_act.orig.two.LocVariable.Model <strong>and</strong><br />
exists new_lvcn_act:new MIFLocVariable . (<br />
result has LocVariable(mk_act.copy, new_lvcn_act) <strong>and</strong><br />
result has Model(new_lvcn_act, npm_elem_act.copy)<br />
)) <strong>and</strong><br />
exists nmt_act:new MIFTerm . (<br />
result has Value(mk_act.copy, nmt_act) <strong>and</strong><br />
run setUnifiedMIFTerm(mk_act.orig.one.Value,<br />
mk_act.orig.two.Value, nmt_act, new_constructor_map,<br />
new_appl_map, new_lvcn_map)<br />
))) <strong>and</strong><br />
/* copy actions */<br />
exists new_copy_action_map:map orig:copy_action_set<br />
to copy:new Action . (<br />
forall ncactm1:new_copy_action_map .<br />
forall ncactm2:new_copy_action_map . (<br />
ncactm1.orig = ncactm2.orig equiv ncactm1.copy = ncactm2.copy<br />
) <strong>and</strong><br />
forall cp_act:new_copy_action_map . (<br />
(exists ntm_elem_act2:new_transition_map . (<br />
(ntm_elem_act2.orig.one = cp_act.orig.TransitionSegment or<br />
ntm_elem_act2.orig.two = cp_act.orig.TransitionSegment<br />
) <strong>and</strong><br />
result has TransitionSegment(cp_act.copy, ntm_elem_act2.copy)<br />
) or<br />
exists nctm_elem_act:new_copy_transition_map . (<br />
nctm_elem_act.orig = cp_act.orig.TransitionSegment <strong>and</strong><br />
result has TransitionSegment(cp_act.copy, nctm_elem_act.copy)<br />
)) <strong>and</strong> (<br />
exists npm_elem_act2:new_lvar_map . (<br />
(npm_elem_act2.orig.one = cp_act.orig.LocVariable.Model or<br />
npm_elem_act2.orig.two = cp_act.orig.LocVariable.Model<br />
) <strong>and</strong><br />
exists new_lvcn_cact:new MIFLocVariable . (<br />
result has LocVariable(cp_act.copy, new_lvcn_cact) <strong>and</strong><br />
result has Model(new_lvcn_cact, npm_elem_act2.copy)<br />
)) or<br />
exists ncpm_elem_act:new_copy_lvar_map . (<br />
ncpm_elem_act.orig = cp_act.orig.LocVariable.Model <strong>and</strong><br />
exists new_lvcn_act2:new MIFLocVariable . (<br />
result has LocVariable(cp_act.copy, new_lvcn_act2) <strong>and</strong><br />
result has Model(new_lvcn_act2, ncpm_elem_act.copy)<br />
))) <strong>and</strong><br />
exists nmt_cact:new MIFTerm . (<br />
result has Value(cp_act.copy, nmt_cact) <strong>and</strong><br />
run setCopiedMIFTerm(cp_act.orig.Value, nmt_cact,<br />
91