3) Block Mechanism 

   1. Multiple Environment 

        Since the function to approximate the real roots of uni-variate 
        equations is incorporated with the algebraic constraint solver; a 
        mechanism is needed to handle the situation in which a variable 
        may have multiple values. 

   2. Localize Failures 

        To realize search function in a committed-choice language, a 
        mechanism is needed to localize failures. 

   3. Specification of Synchoronization points between the inference engine 
      and the constraint solvers 

        To maximize or minimize a function with respect to a certain 
        set of constraints, a mechanism is needed to specify the set of 
        constraints, and to evaluate a goal with respect to the set of 
        constraints. For example, 

        
P.103 Function 1
GDCC programming examples Heron's Formula The following GDCC program deduces a property on a triangle, known as "Heron's formula" from three known properties: Pythagorean The- orem of a right-angle triangles, the formula for calculating the surface area of a triangle, and the fact that every triangle can be divided into two right-angle triangles. :- module heron. :- public tri/4. tri(A,B,C,S) :- true | alloc(0,CA,CB,H), alg#C=CA+CB, alg#CA**2+H**2=A**2, alg#CB**2+H**2=B**2, alg#H*C=S. - 103 -