/* C file generated for /home/bruxelles/diaz/GNU-Prolog/src/BipsFD/fd_bool_fd.fd */

#include "fd_to_c.h"

/* line:8 begin included code */

#define not(x)   (1 - (x))
#define and(x,y) ((x) & (y))
#define or(x,y)  ((x) | (y))
#define xor(x,y) ((x) ^ (y))
#define eqv(x,y) (not(xor(x,y)))
#define impl(x,y)(not(x) | (y))

/* line:15 end   included code */

	/*-----------------------------*/
	/* User constraint: not_x_eq_b */
	/*-----------------------------*/


	/* Bloc #1 */

fd_begin_internal(not_x_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valB)

   fd_load_val(valB,1)
   fd_tell_value(0,not(valB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(not_x_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(not_x_eq_b_bloc_1,0,1)
   fd_add_dependency(1,val)
   fd_call_internal(not_x_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(not_x_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valX)

   fd_load_val(valX,0)
   fd_tell_value(1,not(valX))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(not_x_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(not_x_eq_b_bloc_2,1,1)
   fd_add_dependency(0,val)
   fd_call_internal(not_x_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for not_x_eq_b */

fd_begin_user_constraint(not_x_eq_b(FdArg(X),FdArg(B)))

   fd_create_a_frame(2)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(B,1)

   fd_before_add_constraint
   fd_call_internal(not_x_eq_b_bloc_1_inst)
   fd_call_internal(not_x_eq_b_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_equiv_y_eq_b */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_equiv_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(valY)

   fd_load_val(valX,0)
   fd_load_val(valY,1)
   fd_tell_value(2,eqv(valX,valY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_equiv_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_equiv_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,val)
   fd_add_dependency(1,val)
   fd_call_internal(x_equiv_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_equiv_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valY)
   fd_local_value_var(valB)

   fd_load_val(valY,1)
   fd_load_val(valB,2)
   fd_tell_value(0,eqv(valY,valB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_equiv_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_equiv_y_eq_b_bloc_2,0,1)
   fd_add_dependency(1,val)
   fd_add_dependency(2,val)
   fd_call_internal(x_equiv_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_equiv_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(valB)

   fd_load_val(valX,0)
   fd_load_val(valB,2)
   fd_tell_value(1,eqv(valX,valB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_equiv_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_equiv_y_eq_b_bloc_3,1,1)
   fd_add_dependency(0,val)
   fd_add_dependency(2,val)
   fd_call_internal(x_equiv_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_equiv_y_eq_b */

fd_begin_user_constraint(x_equiv_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_equiv_y_eq_b_bloc_1_inst)
   fd_call_internal(x_equiv_y_eq_b_bloc_2_inst)
   fd_call_internal(x_equiv_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: x_nequiv_y_eq_b */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_nequiv_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(valY)

   fd_load_val(valX,0)
   fd_load_val(valY,1)
   fd_tell_value(2,xor(valX,valY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nequiv_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nequiv_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,val)
   fd_add_dependency(1,val)
   fd_call_internal(x_nequiv_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_nequiv_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valY)
   fd_local_value_var(valB)

   fd_load_val(valY,1)
   fd_load_val(valB,2)
   fd_tell_value(0,xor(valY,valB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nequiv_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nequiv_y_eq_b_bloc_2,0,1)
   fd_add_dependency(1,val)
   fd_add_dependency(2,val)
   fd_call_internal(x_nequiv_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_nequiv_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(valB)

   fd_load_val(valX,0)
   fd_load_val(valB,2)
   fd_tell_value(1,xor(valX,valB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nequiv_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nequiv_y_eq_b_bloc_3,1,1)
   fd_add_dependency(0,val)
   fd_add_dependency(2,val)
   fd_call_internal(x_nequiv_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_nequiv_y_eq_b */

fd_begin_user_constraint(x_nequiv_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_nequiv_y_eq_b_bloc_1_inst)
   fd_call_internal(x_nequiv_y_eq_b_bloc_2_inst)
   fd_call_internal(x_nequiv_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_imply_y_eq_b */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_imply_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,or(not(maxX),minY),or(not(minX),maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_imply_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_imply_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(x_imply_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_imply_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_max(maxY,1)
   fd_tell_interval(0,not(maxB),or(not(minB),maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_imply_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_imply_y_eq_b_bloc_2,0,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,max)
   fd_call_internal(x_imply_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_imply_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)

   fd_load_min_max(minB,maxB,2)
   fd_load_min(minX,0)
   fd_tell_interval(1,and(minB,minX),maxB)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_imply_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_imply_y_eq_b_bloc_3,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min)
   fd_call_internal(x_imply_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_imply_y_eq_b */

fd_begin_user_constraint(x_imply_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_imply_y_eq_b_bloc_1_inst)
   fd_call_internal(x_imply_y_eq_b_bloc_2_inst)
   fd_call_internal(x_imply_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_imply_y_eq_1 */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_imply_y_eq_1_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

   fd_load_max(maxY,1)
   fd_tell_interval(0,0,maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_imply_y_eq_1_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_imply_y_eq_1_bloc_1,0,1)
   fd_add_dependency(1,max)
   fd_call_internal(x_imply_y_eq_1_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_imply_y_eq_1_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)

   fd_load_min(minX,0)
   fd_tell_interval(1,minX,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_imply_y_eq_1_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_imply_y_eq_1_bloc_2,1,1)
   fd_add_dependency(0,min)
   fd_call_internal(x_imply_y_eq_1_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_imply_y_eq_1 */

fd_begin_user_constraint(x_imply_y_eq_1(FdArg(X),FdArg(Y)))

   fd_create_a_frame(2)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)

   fd_before_add_constraint
   fd_call_internal(x_imply_y_eq_1_bloc_1_inst)
   fd_call_internal(x_imply_y_eq_1_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: x_nimply_y_eq_b */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_nimply_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,and(minX,not(maxY)),and(maxX,not(minY)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nimply_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nimply_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(x_nimply_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_nimply_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_max(maxY,1)
   fd_tell_interval(0,minB,or(maxB,maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nimply_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nimply_y_eq_b_bloc_2,0,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,max)
   fd_call_internal(x_nimply_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_nimply_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)

   fd_load_min_max(minB,maxB,2)
   fd_load_min(minX,0)
   fd_tell_interval(1,and(not(maxB),minX),not(minB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nimply_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nimply_y_eq_b_bloc_3,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min)
   fd_call_internal(x_nimply_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_nimply_y_eq_b */

fd_begin_user_constraint(x_nimply_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_nimply_y_eq_b_bloc_1_inst)
   fd_call_internal(x_nimply_y_eq_b_bloc_2_inst)
   fd_call_internal(x_nimply_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: x_and_y_eq_b */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_and_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,and(minX,minY),and(maxX,maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_and_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_and_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(x_and_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_and_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minY)

   fd_load_min_max(minB,maxB,2)
   fd_load_min(minY,1)
   fd_tell_interval(0,minB,or(maxB,not(minY)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_and_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_and_y_eq_b_bloc_2,0,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,min)
   fd_call_internal(x_and_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_and_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)

   fd_load_min_max(minB,maxB,2)
   fd_load_min(minX,0)
   fd_tell_interval(1,minB,or(maxB,not(minX)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_and_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_and_y_eq_b_bloc_3,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min)
   fd_call_internal(x_and_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_and_y_eq_b */

fd_begin_user_constraint(x_and_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_and_y_eq_b_bloc_1_inst)
   fd_call_internal(x_and_y_eq_b_bloc_2_inst)
   fd_call_internal(x_and_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: x_and_y_eq_0 */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_and_y_eq_0_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)

   fd_load_min(minY,1)
   fd_tell_interval(0,0,not(minY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_and_y_eq_0_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_and_y_eq_0_bloc_1,0,1)
   fd_add_dependency(1,min)
   fd_call_internal(x_and_y_eq_0_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_and_y_eq_0_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)

   fd_load_min(minX,0)
   fd_tell_interval(1,0,not(minX))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_and_y_eq_0_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_and_y_eq_0_bloc_2,1,1)
   fd_add_dependency(0,min)
   fd_call_internal(x_and_y_eq_0_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_and_y_eq_0 */

fd_begin_user_constraint(x_and_y_eq_0(FdArg(X),FdArg(Y)))

   fd_create_a_frame(2)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)

   fd_before_add_constraint
   fd_call_internal(x_and_y_eq_0_bloc_1_inst)
   fd_call_internal(x_and_y_eq_0_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: x_nand_y_eq_b */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_nand_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,or(not(maxX),not(maxY)),or(not(minX),not(minY)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nand_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nand_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(x_nand_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_nand_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minY)

   fd_load_min_max(minB,maxB,2)
   fd_load_min(minY,1)
   fd_tell_interval(0,not(maxB),or(not(minB),not(minY)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nand_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nand_y_eq_b_bloc_2,0,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,min)
   fd_call_internal(x_nand_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_nand_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)

   fd_load_min_max(minB,maxB,2)
   fd_load_min(minX,0)
   fd_tell_interval(1,not(maxB),or(not(minB),not(minX)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nand_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nand_y_eq_b_bloc_3,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min)
   fd_call_internal(x_nand_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_nand_y_eq_b */

fd_begin_user_constraint(x_nand_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_nand_y_eq_b_bloc_1_inst)
   fd_call_internal(x_nand_y_eq_b_bloc_2_inst)
   fd_call_internal(x_nand_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*------------------------------*/
	/* User constraint: x_or_y_eq_b */
	/*------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_or_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,or(minX,minY),or(maxX,maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_or_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_or_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(x_or_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_or_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_max(maxY,1)
   fd_tell_interval(0,and(minB,not(maxY)),maxB)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_or_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_or_y_eq_b_bloc_2,0,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,max)
   fd_call_internal(x_or_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_or_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(maxX)

   fd_load_min_max(minB,maxB,2)
   fd_load_max(maxX,0)
   fd_tell_interval(1,and(minB,not(maxX)),maxB)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_or_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_or_y_eq_b_bloc_3,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,max)
   fd_call_internal(x_or_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_or_y_eq_b */

fd_begin_user_constraint(x_or_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_or_y_eq_b_bloc_1_inst)
   fd_call_internal(x_or_y_eq_b_bloc_2_inst)
   fd_call_internal(x_or_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*------------------------------*/
	/* User constraint: x_or_y_eq_1 */
	/*------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_or_y_eq_1_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

   fd_load_max(maxY,1)
   fd_tell_interval(0,not(maxY),1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_or_y_eq_1_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_or_y_eq_1_bloc_1,0,1)
   fd_add_dependency(1,max)
   fd_call_internal(x_or_y_eq_1_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_or_y_eq_1_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

   fd_load_max(maxX,0)
   fd_tell_interval(1,not(maxX),1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_or_y_eq_1_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_or_y_eq_1_bloc_2,1,1)
   fd_add_dependency(0,max)
   fd_call_internal(x_or_y_eq_1_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_or_y_eq_1 */

fd_begin_user_constraint(x_or_y_eq_1(FdArg(X),FdArg(Y)))

   fd_create_a_frame(2)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)

   fd_before_add_constraint
   fd_call_internal(x_or_y_eq_1_bloc_1_inst)
   fd_call_internal(x_or_y_eq_1_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: x_nor_y_eq_b */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_nor_y_eq_b_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,and(not(maxX),not(maxY)),and(not(minX),not(minY)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nor_y_eq_b_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nor_y_eq_b_bloc_1,2,1)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(x_nor_y_eq_b_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_nor_y_eq_b_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_max(maxY,1)
   fd_tell_interval(0,and(not(maxB),not(maxY)),not(minB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nor_y_eq_b_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nor_y_eq_b_bloc_2,0,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,max)
   fd_call_internal(x_nor_y_eq_b_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_nor_y_eq_b_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(maxX)

   fd_load_min_max(minB,maxB,2)
   fd_load_max(maxX,0)
   fd_tell_interval(1,and(not(maxB),not(maxX)),not(minB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_nor_y_eq_b_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(x_nor_y_eq_b_bloc_3,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,max)
   fd_call_internal(x_nor_y_eq_b_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for x_nor_y_eq_b */

fd_begin_user_constraint(x_nor_y_eq_b(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal(x_nor_y_eq_b_bloc_1_inst)
   fd_call_internal(x_nor_y_eq_b_bloc_2_inst)
   fd_call_internal(x_nor_y_eq_b_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: truth_x_eq_c */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_eq_c_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_not_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_eq_c_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_eq_c_bloc_3)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_eq_c_bloc_4)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_c_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_test_switch_condition(maxB==0,truth_x_eq_c_bloc_1)
   fd_test_switch_condition(minB==1,truth_x_eq_c_bloc_2)
   fd_test_switch_condition(minX>intC || maxX<intC,truth_x_eq_c_bloc_3)
   fd_test_switch_condition(minX==intC&&maxX==intC,truth_x_eq_c_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_c_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_c_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_call_internal_and_test_switch(truth_x_eq_c_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_eq_c */

fd_begin_user_constraint(truth_x_eq_c(FdArg(X),FdArg(C),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_eq_c_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: truth_x_eq_y */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_eq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valY)

   fd_load_val(valY,1)
   fd_tell_not_value(0,valY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_bloc_1,0,1)
   fd_add_dependency(1,val)
   fd_call_internal(truth_x_eq_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_eq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valX)

   fd_load_val(valX,0)
   fd_tell_not_value(1,valX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_bloc_2,1,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_eq_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_eq_y_case_group_1)

   fd_call_internal(truth_x_eq_y_bloc_1_inst)
   fd_call_internal(truth_x_eq_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_eq_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(0,minY,maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_bloc_3,0,1)
   fd_add_dependency(1,min_max)
   fd_call_internal(truth_x_eq_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_eq_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

   fd_load_min_max(minX,maxX,0)
   fd_tell_interval(1,minX,maxX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_bloc_4,1,1)
   fd_add_dependency(0,min_max)
   fd_call_internal(truth_x_eq_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_eq_y_case_group_2)

   fd_call_internal(truth_x_eq_y_bloc_3_inst)
   fd_call_internal(truth_x_eq_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_eq_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_eq_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_test_switch_condition(maxB==0,truth_x_eq_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_eq_y_case_group_2)
   fd_test_switch_condition(minX>maxY || maxX<minY,truth_x_eq_y_bloc_5)
   fd_test_switch_condition(minX==maxY&&maxX==minY,truth_x_eq_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal_and_test_switch(truth_x_eq_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_eq_y */

fd_begin_user_constraint(truth_x_eq_y(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_eq_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------------*/
	/* User constraint: truth_x_plus_c_eq_y */
	/*--------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_plus_c_eq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valY)
   fd_local_value_var(intC)

   fd_load_val(valY,2)
   fd_load_int(intC,1)
   fd_tell_not_value(0,valY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_bloc_1,0,1)
   fd_add_dependency(2,val)
   fd_call_internal(truth_x_plus_c_eq_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_plus_c_eq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(intC)

   fd_load_val(valX,0)
   fd_load_int(intC,1)
   fd_tell_not_value(2,valX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_bloc_2,2,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_plus_c_eq_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_plus_c_eq_y_case_group_1)

   fd_call_internal(truth_x_plus_c_eq_y_bloc_1_inst)
   fd_call_internal(truth_x_plus_c_eq_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_plus_c_eq_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intC)

   fd_load_min_max(minY,maxY,2)
   fd_load_int(intC,1)
   fd_tell_interval(0,minY-intC,maxY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_bloc_3,0,1)
   fd_add_dependency(2,min_max)
   fd_call_internal(truth_x_plus_c_eq_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_plus_c_eq_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_tell_interval(2,minX+intC,maxX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_bloc_4,2,1)
   fd_add_dependency(0,min_max)
   fd_call_internal(truth_x_plus_c_eq_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_plus_c_eq_y_case_group_2)

   fd_call_internal(truth_x_plus_c_eq_y_bloc_3_inst)
   fd_call_internal(truth_x_plus_c_eq_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_plus_c_eq_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(3,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_plus_c_eq_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(3,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,3)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_load_min_max(minY,maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_plus_c_eq_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_plus_c_eq_y_case_group_2)
   fd_test_switch_condition(minX+intC>maxY || maxX+intC<minY,truth_x_plus_c_eq_y_bloc_5)
   fd_test_switch_condition(minX+intC==maxY&&maxX+intC==minY,truth_x_plus_c_eq_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_switch_1,-1,0)
   fd_add_dependency(3,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal_and_test_switch(truth_x_plus_c_eq_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_plus_c_eq_y */

fd_begin_user_constraint(truth_x_plus_c_eq_y(FdArg(X),FdArg(C),FdArg(Y),FdArg(B)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(B,3)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_plus_c_eq_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: truth_x_eq_c_F */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_eq_c_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_not_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_eq_c_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_eq_c_F_bloc_3)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_eq_c_F_bloc_4)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_c_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_min_max(minB,maxB,2)
   fd_load_dom(1,0)
   fd_min_of_range(minX,1)
   fd_max_of_range(maxX,1)
   fd_load_int(intC,1)
   fd_test_switch_condition(maxB==0,truth_x_eq_c_F_bloc_1)
   fd_test_switch_condition(minB==1,truth_x_eq_c_F_bloc_2)
   fd_range_copy(0,1)
   fd_test_switch_condition(Range_Test_Value(range_arg(0),intC)==0,truth_x_eq_c_F_bloc_3)
   fd_test_switch_condition(minX==intC&&maxX==intC,truth_x_eq_c_F_bloc_4)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_c_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_c_F_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,dom)
   fd_call_internal_and_test_switch(truth_x_eq_c_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_eq_c_F */

fd_begin_user_constraint(truth_x_eq_c_F(FdArg(X),FdArg(C),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_eq_c_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: truth_x_eq_y_F */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_eq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valY)

   fd_load_val(valY,1)
   fd_tell_not_value(0,valY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_F_bloc_1,0,1)
   fd_add_dependency(1,val)
   fd_call_internal(truth_x_eq_y_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_eq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valX)

   fd_load_val(valX,0)
   fd_tell_not_value(1,valX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_F_bloc_2,1,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_eq_y_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_eq_y_F_case_group_1)

   fd_call_internal(truth_x_eq_y_F_bloc_1_inst)
   fd_call_internal(truth_x_eq_y_F_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_eq_y_F_bloc_3)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,1)
   fd_range_copy(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_F_bloc_3,0,1)
   fd_add_dependency(1,dom)
   fd_call_internal(truth_x_eq_y_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_eq_y_F_bloc_4)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,0)
   fd_range_copy(0,1)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_F_bloc_4,1,1)
   fd_add_dependency(0,dom)
   fd_call_internal(truth_x_eq_y_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_eq_y_F_case_group_2)

   fd_call_internal(truth_x_eq_y_F_bloc_3_inst)
   fd_call_internal(truth_x_eq_y_F_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_eq_y_F_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_eq_y_F_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_min_max(minB,maxB,2)
   fd_load_dom(0,0)
   fd_min_of_range(minX,0)
   fd_max_of_range(maxX,0)
   fd_load_dom(2,1)
   fd_min_of_range(minY,2)
   fd_max_of_range(maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_eq_y_F_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_eq_y_F_case_group_2)
   fd_range_copy(1,0)
   fd_range_copy(0,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(1),range_arg(0)),truth_x_eq_y_F_bloc_5)
   fd_test_switch_condition(minX==maxY&&maxX==minY,truth_x_eq_y_F_bloc_6)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(truth_x_eq_y_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_eq_y_F_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,dom)
   fd_add_dependency(1,dom)
   fd_call_internal_and_test_switch(truth_x_eq_y_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_eq_y_F */

fd_begin_user_constraint(truth_x_eq_y_F(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_eq_y_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------------*/
	/* User constraint: truth_x_plus_c_eq_y_F */
	/*----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(valY)
   fd_local_value_var(intC)

   fd_load_val(valY,2)
   fd_load_int(intC,1)
   fd_tell_not_value(0,valY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_F_bloc_1,0,1)
   fd_add_dependency(2,val)
   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(intC)

   fd_load_val(valX,0)
   fd_load_int(intC,1)
   fd_tell_not_value(2,valX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_F_bloc_2,2,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_plus_c_eq_y_F_case_group_1)

   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_1_inst)
   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intC)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,2)
   fd_load_int(intC,1)
   fd_range_copy(0,1)
   fd_range_sub_value(0,intC)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_F_bloc_3,0,1)
   fd_add_dependency(2,dom)
   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intC)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_int(intC,1)
   fd_range_copy(0,1)
   fd_range_add_value(0,intC)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_F_bloc_4,2,1)
   fd_add_dependency(0,dom)
   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_plus_c_eq_y_F_case_group_2)

   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_3_inst)
   fd_call_internal(truth_x_plus_c_eq_y_F_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(3,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_plus_c_eq_y_F_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(3,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_min_max(minB,maxB,3)
   fd_load_dom(0,0)
   fd_min_of_range(minX,0)
   fd_max_of_range(maxX,0)
   fd_load_int(intC,1)
   fd_load_dom(2,2)
   fd_min_of_range(minY,2)
   fd_max_of_range(maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_plus_c_eq_y_F_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_plus_c_eq_y_F_case_group_2)
   fd_range_copy(1,0)
   fd_range_add_value(1,intC)
   fd_range_copy(0,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(1),range_arg(0)),truth_x_plus_c_eq_y_F_bloc_5)
   fd_test_switch_condition(minX+intC==maxY&&maxX+intC==minY,truth_x_plus_c_eq_y_F_bloc_6)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_eq_y_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_eq_y_F_switch_1,-1,0)
   fd_add_dependency(3,min_max)
   fd_add_dependency(0,dom)
   fd_add_dependency(2,dom)
   fd_call_internal_and_test_switch(truth_x_plus_c_eq_y_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_plus_c_eq_y_F */

fd_begin_user_constraint(truth_x_plus_c_eq_y_F(FdArg(X),FdArg(C),FdArg(Y),FdArg(B)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(B,3)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_plus_c_eq_y_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: truth_x_neq_c */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_neq_c_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_neq_c_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_not_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_neq_c_bloc_3)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_neq_c_bloc_4)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_c_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_test_switch_condition(maxB==0,truth_x_neq_c_bloc_1)
   fd_test_switch_condition(minB==1,truth_x_neq_c_bloc_2)
   fd_test_switch_condition(minX==intC&&maxX==intC,truth_x_neq_c_bloc_3)
   fd_test_switch_condition(minX>intC || maxX<intC,truth_x_neq_c_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_c_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_c_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_call_internal_and_test_switch(truth_x_neq_c_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_neq_c */

fd_begin_user_constraint(truth_x_neq_c(FdArg(X),FdArg(C),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_neq_c_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: truth_x_neq_y */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_neq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(0,minY,maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_bloc_1,0,1)
   fd_add_dependency(1,min_max)
   fd_call_internal(truth_x_neq_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_neq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

   fd_load_min_max(minX,maxX,0)
   fd_tell_interval(1,minX,maxX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_bloc_2,1,1)
   fd_add_dependency(0,min_max)
   fd_call_internal(truth_x_neq_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_neq_y_case_group_1)

   fd_call_internal(truth_x_neq_y_bloc_1_inst)
   fd_call_internal(truth_x_neq_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_neq_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(valY)

   fd_load_val(valY,1)
   fd_tell_not_value(0,valY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_bloc_3,0,1)
   fd_add_dependency(1,val)
   fd_call_internal(truth_x_neq_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_neq_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(valX)

   fd_load_val(valX,0)
   fd_tell_not_value(1,valX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_bloc_4,1,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_neq_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_neq_y_case_group_2)

   fd_call_internal(truth_x_neq_y_bloc_3_inst)
   fd_call_internal(truth_x_neq_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_neq_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_neq_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_test_switch_condition(maxB==0,truth_x_neq_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_neq_y_case_group_2)
   fd_test_switch_condition(minX==maxY&&maxX==minY,truth_x_neq_y_bloc_5)
   fd_test_switch_condition(minX>maxY || maxX<minY,truth_x_neq_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal_and_test_switch(truth_x_neq_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_neq_y */

fd_begin_user_constraint(truth_x_neq_y(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_neq_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------------*/
	/* User constraint: truth_x_plus_c_neq_y */
	/*---------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_plus_c_neq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intC)

   fd_load_min_max(minY,maxY,2)
   fd_load_int(intC,1)
   fd_tell_interval(0,minY-intC,maxY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_bloc_1,0,1)
   fd_add_dependency(2,min_max)
   fd_call_internal(truth_x_plus_c_neq_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_plus_c_neq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_tell_interval(2,minX+intC,maxX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_bloc_2,2,1)
   fd_add_dependency(0,min_max)
   fd_call_internal(truth_x_plus_c_neq_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_plus_c_neq_y_case_group_1)

   fd_call_internal(truth_x_plus_c_neq_y_bloc_1_inst)
   fd_call_internal(truth_x_plus_c_neq_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_plus_c_neq_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(valY)
   fd_local_value_var(intC)

   fd_load_val(valY,2)
   fd_load_int(intC,1)
   fd_tell_not_value(0,valY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_bloc_3,0,1)
   fd_add_dependency(2,val)
   fd_call_internal(truth_x_plus_c_neq_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_plus_c_neq_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(intC)

   fd_load_val(valX,0)
   fd_load_int(intC,1)
   fd_tell_not_value(2,valX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_bloc_4,2,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_plus_c_neq_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_plus_c_neq_y_case_group_2)

   fd_call_internal(truth_x_plus_c_neq_y_bloc_3_inst)
   fd_call_internal(truth_x_plus_c_neq_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_plus_c_neq_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(3,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_plus_c_neq_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(3,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,3)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_load_min_max(minY,maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_plus_c_neq_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_plus_c_neq_y_case_group_2)
   fd_test_switch_condition(minX+intC==maxY&&maxX+intC==minY,truth_x_plus_c_neq_y_bloc_5)
   fd_test_switch_condition(minX+intC>maxY || maxX+intC<minY,truth_x_plus_c_neq_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_switch_1,-1,0)
   fd_add_dependency(3,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal_and_test_switch(truth_x_plus_c_neq_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_plus_c_neq_y */

fd_begin_user_constraint(truth_x_plus_c_neq_y(FdArg(X),FdArg(C),FdArg(Y),FdArg(B)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(B,3)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_plus_c_neq_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: truth_x_neq_c_F */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_neq_c_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_neq_c_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_not_value(0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_neq_c_F_bloc_3)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_neq_c_F_bloc_4)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_c_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_min_max(minB,maxB,2)
   fd_load_dom(1,0)
   fd_min_of_range(minX,1)
   fd_max_of_range(maxX,1)
   fd_load_int(intC,1)
   fd_test_switch_condition(maxB==0,truth_x_neq_c_F_bloc_1)
   fd_test_switch_condition(minB==1,truth_x_neq_c_F_bloc_2)
   fd_test_switch_condition(minX==intC&&maxX==intC,truth_x_neq_c_F_bloc_3)
   fd_range_copy(0,1)
   fd_test_switch_condition(Range_Test_Value(range_arg(0),intC)==0,truth_x_neq_c_F_bloc_4)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_c_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_c_F_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,dom)
   fd_call_internal_and_test_switch(truth_x_neq_c_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_neq_c_F */

fd_begin_user_constraint(truth_x_neq_c_F(FdArg(X),FdArg(C),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_neq_c_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: truth_x_neq_y_F */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_neq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,1)
   fd_range_copy(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_F_bloc_1,0,1)
   fd_add_dependency(1,dom)
   fd_call_internal(truth_x_neq_y_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_neq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,0)
   fd_range_copy(0,1)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_F_bloc_2,1,1)
   fd_add_dependency(0,dom)
   fd_call_internal(truth_x_neq_y_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_neq_y_F_case_group_1)

   fd_call_internal(truth_x_neq_y_F_bloc_1_inst)
   fd_call_internal(truth_x_neq_y_F_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_neq_y_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(valY)

   fd_load_val(valY,1)
   fd_tell_not_value(0,valY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_F_bloc_3,0,1)
   fd_add_dependency(1,val)
   fd_call_internal(truth_x_neq_y_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_neq_y_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(valX)

   fd_load_val(valX,0)
   fd_tell_not_value(1,valX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_F_bloc_4,1,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_neq_y_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_neq_y_F_case_group_2)

   fd_call_internal(truth_x_neq_y_F_bloc_3_inst)
   fd_call_internal(truth_x_neq_y_F_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_neq_y_F_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_neq_y_F_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_min_max(minB,maxB,2)
   fd_load_dom(0,0)
   fd_min_of_range(minX,0)
   fd_max_of_range(maxX,0)
   fd_load_dom(2,1)
   fd_min_of_range(minY,2)
   fd_max_of_range(maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_neq_y_F_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_neq_y_F_case_group_2)
   fd_test_switch_condition(minX==maxY&&maxX==minY,truth_x_neq_y_F_bloc_5)
   fd_range_copy(1,0)
   fd_range_copy(0,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(1),range_arg(0)),truth_x_neq_y_F_bloc_6)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(truth_x_neq_y_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_neq_y_F_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,dom)
   fd_add_dependency(1,dom)
   fd_call_internal_and_test_switch(truth_x_neq_y_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_neq_y_F */

fd_begin_user_constraint(truth_x_neq_y_F(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_neq_y_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-----------------------------------------*/
	/* User constraint: truth_x_plus_c_neq_y_F */
	/*-----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,2)
   fd_load_int(intC,1)
   fd_range_copy(0,1)
   fd_range_sub_value(0,intC)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_F_bloc_1,0,1)
   fd_add_dependency(2,dom)
   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_int(intC,1)
   fd_range_copy(0,1)
   fd_range_add_value(0,intC)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_F_bloc_2,2,1)
   fd_add_dependency(0,dom)
   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_plus_c_neq_y_F_case_group_1)

   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_1_inst)
   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(valY)
   fd_local_value_var(intC)

   fd_load_val(valY,2)
   fd_load_int(intC,1)
   fd_tell_not_value(0,valY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_F_bloc_3,0,1)
   fd_add_dependency(2,val)
   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(valX)
   fd_local_value_var(intC)

   fd_load_val(valX,0)
   fd_load_int(intC,1)
   fd_tell_not_value(2,valX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_F_bloc_4,2,1)
   fd_add_dependency(0,val)
   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_plus_c_neq_y_F_case_group_2)

   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_3_inst)
   fd_call_internal(truth_x_plus_c_neq_y_F_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(3,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_plus_c_neq_y_F_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(3,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_min_max(minB,maxB,3)
   fd_load_dom(0,0)
   fd_min_of_range(minX,0)
   fd_max_of_range(maxX,0)
   fd_load_int(intC,1)
   fd_load_dom(2,2)
   fd_min_of_range(minY,2)
   fd_max_of_range(maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_plus_c_neq_y_F_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_plus_c_neq_y_F_case_group_2)
   fd_test_switch_condition(minX+intC==maxY&&maxX+intC==minY,truth_x_plus_c_neq_y_F_bloc_5)
   fd_range_copy(1,0)
   fd_range_add_value(1,intC)
   fd_range_copy(0,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(1),range_arg(0)),truth_x_plus_c_neq_y_F_bloc_6)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_neq_y_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_neq_y_F_switch_1,-1,0)
   fd_add_dependency(3,min_max)
   fd_add_dependency(0,dom)
   fd_add_dependency(2,dom)
   fd_call_internal_and_test_switch(truth_x_plus_c_neq_y_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_plus_c_neq_y_F */

fd_begin_user_constraint(truth_x_plus_c_neq_y_F(FdArg(X),FdArg(C),FdArg(Y),FdArg(B)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(B,3)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_plus_c_neq_y_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: truth_x_lt_y */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_lt_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)

   fd_load_min(minY,1)
   fd_tell_interval(0,minY,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lt_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lt_y_bloc_1,0,1)
   fd_add_dependency(1,min)
   fd_call_internal(truth_x_lt_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_lt_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

   fd_load_max(maxX,0)
   fd_tell_interval(1,0,maxX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lt_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lt_y_bloc_2,1,1)
   fd_add_dependency(0,max)
   fd_call_internal(truth_x_lt_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_lt_y_case_group_1)

   fd_call_internal(truth_x_lt_y_bloc_1_inst)
   fd_call_internal(truth_x_lt_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_lt_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

   fd_load_max(maxY,1)
   fd_tell_interval(0,0,maxY-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lt_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lt_y_bloc_3,0,1)
   fd_add_dependency(1,max)
   fd_call_internal(truth_x_lt_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_lt_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minX)

   fd_load_min(minX,0)
   fd_tell_interval(1,minX+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lt_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lt_y_bloc_4,1,1)
   fd_add_dependency(0,min)
   fd_call_internal(truth_x_lt_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_lt_y_case_group_2)

   fd_call_internal(truth_x_lt_y_bloc_3_inst)
   fd_call_internal(truth_x_lt_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_lt_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_lt_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lt_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_test_switch_condition(maxB==0,truth_x_lt_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_lt_y_case_group_2)
   fd_test_switch_condition(minX>=maxY,truth_x_lt_y_bloc_5)
   fd_test_switch_condition(maxX<minY,truth_x_lt_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lt_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lt_y_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal_and_test_switch(truth_x_lt_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_lt_y */

fd_begin_user_constraint(truth_x_lt_y(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_lt_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: truth_x_lte_c */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_lte_c_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_interval(0,intC+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_lte_c_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_interval(0,0,intC)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_lte_c_bloc_3)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_lte_c_bloc_4)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_c_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_test_switch_condition(maxB==0,truth_x_lte_c_bloc_1)
   fd_test_switch_condition(minB==1,truth_x_lte_c_bloc_2)
   fd_test_switch_condition(minX>intC,truth_x_lte_c_bloc_3)
   fd_test_switch_condition(maxX<=intC,truth_x_lte_c_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_c_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lte_c_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_call_internal_and_test_switch(truth_x_lte_c_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_lte_c */

fd_begin_user_constraint(truth_x_lte_c(FdArg(X),FdArg(C),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_lte_c_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: truth_x_lte_y */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_lte_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)

   fd_load_min(minY,1)
   fd_tell_interval(0,minY+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lte_y_bloc_1,0,1)
   fd_add_dependency(1,min)
   fd_call_internal(truth_x_lte_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_lte_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

   fd_load_max(maxX,0)
   fd_tell_interval(1,0,maxX-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lte_y_bloc_2,1,1)
   fd_add_dependency(0,max)
   fd_call_internal(truth_x_lte_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_lte_y_case_group_1)

   fd_call_internal(truth_x_lte_y_bloc_1_inst)
   fd_call_internal(truth_x_lte_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_lte_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

   fd_load_max(maxY,1)
   fd_tell_interval(0,0,maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lte_y_bloc_3,0,1)
   fd_add_dependency(1,max)
   fd_call_internal(truth_x_lte_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_lte_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minX)

   fd_load_min(minX,0)
   fd_tell_interval(1,minX,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lte_y_bloc_4,1,1)
   fd_add_dependency(0,min)
   fd_call_internal(truth_x_lte_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_lte_y_case_group_2)

   fd_call_internal(truth_x_lte_y_bloc_3_inst)
   fd_call_internal(truth_x_lte_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_lte_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_lte_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_test_switch_condition(maxB==0,truth_x_lte_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_lte_y_case_group_2)
   fd_test_switch_condition(minX>maxY,truth_x_lte_y_bloc_5)
   fd_test_switch_condition(maxX<=minY,truth_x_lte_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_lte_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_lte_y_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal_and_test_switch(truth_x_lte_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_lte_y */

fd_begin_user_constraint(truth_x_lte_y(FdArg(X),FdArg(Y),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_lte_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------------*/
	/* User constraint: truth_x_plus_c_lte_y */
	/*---------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_plus_c_lte_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(intC)

   fd_load_min(minY,2)
   fd_load_int(intC,1)
   fd_tell_interval(0,minY-intC+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_lte_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_lte_y_bloc_1,0,1)
   fd_add_dependency(2,min)
   fd_call_internal(truth_x_plus_c_lte_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_plus_c_lte_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_max(maxX,0)
   fd_load_int(intC,1)
   fd_tell_interval(2,0,maxX+intC-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_lte_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_lte_y_bloc_2,2,1)
   fd_add_dependency(0,max)
   fd_call_internal(truth_x_plus_c_lte_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_plus_c_lte_y_case_group_1)

   fd_call_internal(truth_x_plus_c_lte_y_bloc_1_inst)
   fd_call_internal(truth_x_plus_c_lte_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_plus_c_lte_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxY)
   fd_local_value_var(intC)

   fd_load_max(maxY,2)
   fd_load_int(intC,1)
   fd_tell_interval(0,0,maxY-intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_lte_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_lte_y_bloc_3,0,1)
   fd_add_dependency(2,max)
   fd_call_internal(truth_x_plus_c_lte_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_plus_c_lte_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(intC)

   fd_load_min(minX,0)
   fd_load_int(intC,1)
   fd_tell_interval(2,minX+intC,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_lte_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_lte_y_bloc_4,2,1)
   fd_add_dependency(0,min)
   fd_call_internal(truth_x_plus_c_lte_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_plus_c_lte_y_case_group_2)

   fd_call_internal(truth_x_plus_c_lte_y_bloc_3_inst)
   fd_call_internal(truth_x_plus_c_lte_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_plus_c_lte_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(3,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_plus_c_lte_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(3,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_lte_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,3)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_load_min_max(minY,maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_plus_c_lte_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_plus_c_lte_y_case_group_2)
   fd_test_switch_condition(minX+intC>maxY,truth_x_plus_c_lte_y_bloc_5)
   fd_test_switch_condition(maxX+intC<=minY,truth_x_plus_c_lte_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_lte_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_lte_y_switch_1,-1,0)
   fd_add_dependency(3,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal_and_test_switch(truth_x_plus_c_lte_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_plus_c_lte_y */

fd_begin_user_constraint(truth_x_plus_c_lte_y(FdArg(X),FdArg(C),FdArg(Y),FdArg(B)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(B,3)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_plus_c_lte_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: truth_x_gte_c */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_gte_c_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_interval(0,0,intC-1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_gte_c_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intC)

   fd_load_int(intC,1)
   fd_tell_interval(0,intC,max_integer)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_gte_c_bloc_3)

   fd_local_fdv_adr

   fd_tell_value(2,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_gte_c_bloc_4)

   fd_local_fdv_adr

   fd_tell_value(2,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_gte_c_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_min_max(minB,maxB,2)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_test_switch_condition(maxB==0,truth_x_gte_c_bloc_1)
   fd_test_switch_condition(minB==1,truth_x_gte_c_bloc_2)
   fd_test_switch_condition(maxX<intC,truth_x_gte_c_bloc_3)
   fd_test_switch_condition(minX>=intC,truth_x_gte_c_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_gte_c_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_gte_c_switch_1,-1,0)
   fd_add_dependency(2,min_max)
   fd_add_dependency(0,min_max)
   fd_call_internal_and_test_switch(truth_x_gte_c_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_gte_c */

fd_begin_user_constraint(truth_x_gte_c(FdArg(X),FdArg(C),FdArg(B)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(B,2)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_gte_c_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------------*/
	/* User constraint: truth_x_plus_c_gte_y */
	/*---------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(truth_x_plus_c_gte_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(maxY)
   fd_local_value_var(intC)

   fd_load_max(maxY,2)
   fd_load_int(intC,1)
   fd_tell_interval(0,0,maxY-intC-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_gte_y_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_gte_y_bloc_1,0,1)
   fd_add_dependency(2,max)
   fd_call_internal(truth_x_plus_c_gte_y_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(truth_x_plus_c_gte_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(intC)

   fd_load_min(minX,0)
   fd_load_int(intC,1)
   fd_tell_interval(2,minX+intC+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_gte_y_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_gte_y_bloc_2,2,1)
   fd_add_dependency(0,min)
   fd_call_internal(truth_x_plus_c_gte_y_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(truth_x_plus_c_gte_y_case_group_1)

   fd_call_internal(truth_x_plus_c_gte_y_bloc_1_inst)
   fd_call_internal(truth_x_plus_c_gte_y_bloc_2_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(truth_x_plus_c_gte_y_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(intC)

   fd_load_min(minY,2)
   fd_load_int(intC,1)
   fd_tell_interval(0,minY-intC,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_gte_y_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_gte_y_bloc_3,0,1)
   fd_add_dependency(2,min)
   fd_call_internal(truth_x_plus_c_gte_y_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(truth_x_plus_c_gte_y_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(maxX)
   fd_local_value_var(intC)

   fd_load_max(maxX,0)
   fd_load_int(intC,1)
   fd_tell_interval(2,0,maxX+intC)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_gte_y_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_gte_y_bloc_4,2,1)
   fd_add_dependency(0,max)
   fd_call_internal(truth_x_plus_c_gte_y_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(truth_x_plus_c_gte_y_case_group_2)

   fd_call_internal(truth_x_plus_c_gte_y_bloc_3_inst)
   fd_call_internal(truth_x_plus_c_gte_y_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(truth_x_plus_c_gte_y_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(3,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(truth_x_plus_c_gte_y_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(3,1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_gte_y_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minB)
   fd_local_value_var(maxB)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intC)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minB,maxB,3)
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intC,1)
   fd_load_min_max(minY,maxY,2)
   fd_test_switch_condition(maxB==0,truth_x_plus_c_gte_y_case_group_1)
   fd_test_switch_condition(minB==1,truth_x_plus_c_gte_y_case_group_2)
   fd_test_switch_condition(maxX+intC<minY,truth_x_plus_c_gte_y_bloc_5)
   fd_test_switch_condition(minX+intC>=maxY,truth_x_plus_c_gte_y_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(truth_x_plus_c_gte_y_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(truth_x_plus_c_gte_y_switch_1,-1,0)
   fd_add_dependency(3,min_max)
   fd_add_dependency(0,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal_and_test_switch(truth_x_plus_c_gte_y_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for truth_x_plus_c_gte_y */

fd_begin_user_constraint(truth_x_plus_c_gte_y(FdArg(X),FdArg(C),FdArg(Y),FdArg(B)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(C,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(B,3)

   fd_before_add_constraint
   fd_call_internal_and_test_switch_simple(truth_x_plus_c_gte_y_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint

