16.3.4 Treeness Condition

We say that any 2 nodes N_i and N_j must satisfy the treeness condition expressed as the following disjunction:

          N_i \gleich N_j \vee
           N_i \domplus N_j \vee
           N_i \domplus N_j \vee  
           N_i \bot N_j

The treeness condition that must hold between Ni and Nj is realized by four concurrent disjunctions and is controlled by choice variable Cij. The latter is a finite domain variable taking a value in [1..4].

<DC: treeness condition between Ni and Nj>=
in C::1#4
thread  
   or C = 1 {Equal Ni Nj}
   [] C = 2 {StrictlyDominates Ni Nj}
   [] C = 3 {StrictlyDominates Nj Ni}
   [] C = 4 {Side Nj Ni}
   end 
end

The thread ... end statements in the code fragment cause the computation to create four new concurrent threads, one for each choice variable. This is necessary because the or statements within the new threads block until only one of their guards can be satisfiable, and we don't want this to block our entire computation.


Denys Duchier, Claire Gardent and Joachim Niehren
Version 1.3.99 (20050412)