1. Constraint Decomposition Method
Consider the constraint y>=(x-7/2)^2-1/4   with x in [0,3], y in [-1,1]:
   a) Associate primitive narrowing functions to the constraint to narrow the domains of x and y.
   Primitive constraints:
      | y>=(x-7/2)^2-1/4	with x = [0,3], y = [-1,1]
   <=>
      | y>=z-1/4		with x = [0,3], y = [-1,1], z = [-oo, +oo]
      | z=(x-7/2)^2
   <=>
      | y>=z-1/4		with x = [0,3], y = [-1,1], z = [-oo, +oo], w = [-oo, +oo], v = [-oo, +oo]
      | z=w*u
      | w=x-7/2
      | u=x-7/2
   Narrowing functions:
      Fy>=z-1/4: _f_0:(z)->((z-0.25)-[-oo,0])
      Fz<=y+1/4: _f_1:(y)->((y+0.25)+[-oo,0])
      Fz=w*u: _f_2:(w,u)->(w*u)
      Fw=z/u: _f_3:(z,u)->(z/u)
      Fu=z/w: _f_4:(z,w)->(z/w)
      Fw=x-7/2: _f_5:(x)->(x-3.5)
      Fx=w+7/2: _f_6:(w)->(w+3.5)
      Fu=x-7/2: _f_7:(x)->(x-3.5)
      Fx=u+7/2: _f_8:(u)->(u+3.5)
   b) Compute the fixed-point obtained by the successive application of the above narrowing functions.
   Initial domains: x = [0, 3] y = [-1, 1] z = [ ENTIRE ] w = [ ENTIRE ] u = [ ENTIRE ]
      Fy>=z-1/4: y <- [-1, 1] & [ ENTIRE ] = [-1, 1]
      Fz<=y+1/4: z <- [ ENTIRE ] & [-inf, 1.25] = [-inf, 1.25]
      Fz=w*u: z <- [-inf, 1.25] & [ ENTIRE ] = [-inf, 1.25]
      Fw=z/u: w <- [ ENTIRE ] & [ ENTIRE ] = [ ENTIRE ]
      Fu=z/w: u <- [ ENTIRE ] & [ ENTIRE ] = [ ENTIRE ]
      Fw=x-7/2: w <- [ ENTIRE ] & [-3.5, -0.5] = [-3.5, -0.5]
      Fx=w+7/2: x <- [0, 3] & [-0, 3] = [0, 3]
      Fu=x-7/2: u <- [ ENTIRE ] & [-3.5, -0.5] = [-3.5, -0.5]
      Fx=u+7/2: x <- [0, 3] & [-0, 3] = [-3.5, -0.5]
   New domains: x = [0, 3] y = [-1, 1] z = [-inf, 1.25] w = [-3.5, -0.5] u = [-3.5, -0.5]
      Fy>=z-1/4: y <- [-1, 1] & [ ENTIRE ] = [-1, 1]
      Fz<=y+1/4: z <- [-inf, 1.25] & [-inf, 1.25] = [-inf, 1.25]
      Fz=w*u: z <- [-inf, 1.25] & [0.25, 12.25] = [0.25, 1.25]
      Fw=z/u: w <- [-3.5, -0.5] & [-2.5, -0.0714286] = [-2.5, -0.5]
      Fu=z/w: u <- [-3.5, -0.5] & [-2.5, -0.1] = [-2.5, -0.5]
      Fw=x-7/2: w <- [-2.5, -0.5] & [-3.5, -0.5] = [-2.5, -0.5]
      Fx=w+7/2: x <- [0, 3] & [1, 3] = [1, 3]
      Fu=x-7/2: u <- [-2.5, -0.5] & [-2.5, -0.5] = [-2.5, -0.5]
      Fx=u+7/2: x <- [1, 3] & [1, 3] = [-2.5, -0.5]
   New domains: x = [1, 3] y = [-1, 1] z = [0.25, 1.25] w = [-2.5, -0.5] u = [-2.5, -0.5]
      Fy>=z-1/4: y <- [-1, 1] & [-0, inf] = [-0, 1]
      Fz<=y+1/4: z <- [0.25, 1.25] & [-inf, 1.25] = [0.25, 1.25]
      Fz=w*u: z <- [0.25, 1.25] & [0.25, 6.25] = [0.25, 1.25]
      Fw=z/u: w <- [-2.5, -0.5] & [-2.5, -0.1] = [-2.5, -0.5]
      Fu=z/w: u <- [-2.5, -0.5] & [-2.5, -0.1] = [-2.5, -0.5]
      Fw=x-7/2: w <- [-2.5, -0.5] & [-2.5, -0.5] = [-2.5, -0.5]
      Fx=w+7/2: x <- [1, 3] & [1, 3] = [1, 3]
      Fu=x-7/2: u <- [-2.5, -0.5] & [-2.5, -0.5] = [-2.5, -0.5]
      Fx=u+7/2: x <- [1, 3] & [1, 3] = [-2.5, -0.5]
   New domains: x = [1, 3] y = [-0, 1] z = [0.25, 1.25] w = [-2.5, -0.5] u = [-2.5, -0.5]
      Fy>=z-1/4: y <- [-0, 1] & [-0, inf] = [-0, 1]
      Fz<=y+1/4: z <- [0.25, 1.25] & [-inf, 1.25] = [0.25, 1.25]
      Fz=w*u: z <- [0.25, 1.25] & [0.25, 6.25] = [0.25, 1.25]
      Fw=z/u: w <- [-2.5, -0.5] & [-2.5, -0.1] = [-2.5, -0.5]
      Fu=z/w: u <- [-2.5, -0.5] & [-2.5, -0.1] = [-2.5, -0.5]
      Fw=x-7/2: w <- [-2.5, -0.5] & [-2.5, -0.5] = [-2.5, -0.5]
      Fx=w+7/2: x <- [1, 3] & [1, 3] = [1, 3]
      Fu=x-7/2: u <- [-2.5, -0.5] & [-2.5, -0.5] = [-2.5, -0.5]
      Fx=u+7/2: x <- [1, 3] & [1, 3] = [-2.5, -0.5]
   Fixed point: x = [1, 3] y = [-0, 1] z = [0.25, 1.25] w = [-2.5, -0.5] u = [-2.5, -0.5]

2. Constraint Newton Method
Consider the constraint  x^5-3x^3+4x-1=y with x in [0, 0.5], y in [0, 1]. 
Use the constraint Newton method to reduce the domain of x.
   before constraint Newton method: x = [0, 0.5] y = [0, 1]
   --- narrowBounds: [0, 0.5] f: _f_9:(x)->((((x^5-(3*x^3))+(4*x))-1)-[0,1])
   x: [0, 0.5] -> [0.263387, 0.5]
   --- narrowBounds: [0, 1] f: _f_10:(y)->([-0.320184,0.976434]-y)
   y: [0, 1] -> [0, 0.976434]
   --- narrowBounds: [0.263387, 0.5] f: _f_11:(x)->((((x^5-(3*x^3))+(4*x))-1)-[0,0.976434])
   --- narrowBounds: [0, 0.976434] f: _f_12:(y)->([-0.320184,0.976434]-y)
   after constraint Newton method: x = [0.263387, 0.5] y = [0, 0.976434]

3. Revise Procedures
Consider the constraint  x^5-3x^3+4x-1=y with x in [0, 0.5], y in [0, 1]. 
Compute the box obtained by applying HC4-revise.
   f: _f_13:(x,y)->((((x^5-(3*x^3))+(4*x))-1)-y)
   c: ((((x^5-(3*x^3))+(4*x))-1)-y)=0
   before HC4: x = [0, 0.5] y = [0, 1]
    after HC4: x = [0.25431, 0.5] y = [0, 0.982758]

4. Reformulation-Linearization
Use the reformulation-linearization technique to linearize the following system within the box [0,4]x[0,4]:
   x^2+y^2=10 ; 0.4y-0.1x^2=0
   x^2 -> z 
       | L1(z,0) : z >= 2(0)x - 0^2 = 0 
       | L1(z,4) : z >= 2(4)x - 4^2 = 8x - 16 
       | L2(z) : z <= (0+4)x - 0*4 = 4x 
   y^2 -> w 
       | L1(w,0) : w >= 2(0)x - 0^2 = 0 
       | L1(w,4) : w >= 2(4)x - 4^2 = 8x - 16 
       | L2(w) : w <= (0+4)x - 0*4 = 4x 
   Linear Constraints:
      ((z+w)-10)=0
      ((0.4*y)-(0.1*z))=0
      z>=0
      ((z-(8*x))+16)>=0
      (z-(4*x))<=0
      w>=0
      ((w-(8*y))+16)>=0
      (w-(4*y))<=0
   before LP: x = [0, 4] y = [0, 4] z = [0, 16] w = [0, 16]
    after LP: x = [1.25, 3.08333] y = [1.25, 2.16667] z = [5, 8.66667] w = [1.33333, 5]
