Operator Definition: PropagateChanges(s1, d1, s1_d1, s2, c, s2_c)
1. s1_s2 = Match(s1, s2);
2. ád1¢, d1¢_d1ñ = Delete(d1, Traverse(All(s1) - Domain(s1_s2), s1_d1));
3. ác¢, c¢_cñ =
Extract(c, Traverse(All(s2) - Range(s1_s2), s2_c));
4. c¢_d1¢ = c¢_c * Invert(s2_c) * Invert(s1_s2) * s1_d1 * Invert(d1¢_d1);
5. ád2, c¢_d2, d1¢_d2ñ = Merge(c¢, d1¢, c¢_d1¢);
6.s2_d2 = s2_c * Invert(c¢_c) * c¢_d2 +
Invert(s1_s2) * s1_d1 * Invert(d1¢_d1) * d1¢_d2;
7.
return ád2, s2_d2ñ;