DynBindModelExamples: Difference between revisions
| Line 118: | Line 118: | ||
===Calculating <math>\beta_{S_2}</math>=== | ===Calculating <math>\beta_{S_2}</math>=== | ||
Lets calculate the easy part first: | |||
<math> | |||
\beta_{S_2}\left( C_1 \mapsto C_1 \right) = | |||
\beta_{S_1}\left( C_1 \mapsto C_1 \right) = \left\{ f_1 \mapsto f_1, g_1 \mapsto g_1\right\} | |||
</math> | |||
<math> | |||
\beta_{S_2}\left( C_2 \mapsto C_1 \right) = \emptyset | |||
</math> | |||
The next least difficult thing we can calculate is: | |||
<math> | |||
\beta_{S_2}\left( C_2 \mapsto C_2 \right) | |||
= | |||
\mbox{id} \left( \mbox{dom} \left( \tau_2 \right) \right) | |||
\, \cup \, | |||
\mbox {UNION} \ b \, \cdot \, \left(b \in \alpha_2 | |||
\ |\ | |||
\beta_{ S_{1} } \left( b \mapsto b \right) \ll \eta_{2, b}\right) | |||
</math> | |||
For this we give a reminder on the union and override operator. | |||
<math>\mbox{UNION} \ x \cdot \left(x \in S \ |\ T \right)</math> | |||
is equivalent to: | |||
<math>\exists x \cdot \left(x \in S \ \land\ E \in T \right)</math> | |||
As an example: | |||
<math>\mbox{UNION} \ x \cdot \left(x \in \left\{ 1, 2, 3\right\} \ |\ \left\{ x, x \times x \right\} \right)</math> | |||
is equivalent to: | |||
<math>\left\{ 1, 2, 3, 4, 9\right\}</math> | |||
Revision as of 22:14, 6 October 2006
This page shows
Example 1
The system
In this example we are studying a symple system with three classes that contains both renaming and selects:
class C1 feature f1 do ... end g1 do ... end end |
class C2 inherit B rename f1 as f2, g1 as g2 redefine f2, g2 end feature f2 do ... end g2 do ... end end |
class C3 inherit C2 select f1 end C1 redefine f1, g1 select g1 end feature f1 do ... end g1 do ... end end |
This system is defined by:
The naming function
We proceed by calculating the naming function. According to its definition we have to do that incrementaly. Meaning that we first calculate then and finally .
Calculating
Since contains only one class it is sufficient to define . According to the definition:
We can forget about the right part of the union since has no base classes. So we need to calculate: . To do so we give a little reminder on the identity and domain operators:
This done we calculate:
So we get:
Calculating
Lets calculate the easy part first:
The next least difficult thing we can calculate is:
For this we give a reminder on the union and override operator.
is equivalent to:
As an example:
is equivalent to: