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

#include "fd_to_c.h"

/* line:8 begin included code */

#include "bips_fd.h"
#define ite(i,t,e)  ((i) ? (t) : (e))

/* line:11 end   included code */

	/*-------------------------*/
	/* User constraint: x_eq_y */
	/*-------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_eq_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(x_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_eq_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(x_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_eq_y */

fd_begin_user_constraint(x_eq_y(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_eq_y_bloc_1_inst)
   fd_call_internal(x_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: x_plus_c_eq_y */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_c_eq_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(x_plus_c_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_c_eq_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(x_plus_c_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_plus_c_eq_y */

fd_begin_user_constraint(x_plus_c_eq_y(FdArg(X),FdArg(C),FdArg(Y)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_c_eq_y_bloc_1_inst)
   fd_call_internal(x_plus_c_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------*/
	/* User constraint: x_eq_y_F */
	/*---------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_eq_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(x_eq_y_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_eq_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(x_eq_y_F_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_eq_y_F */

fd_begin_user_constraint(x_eq_y_F(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_eq_y_F_bloc_1_inst)
   fd_call_internal(x_eq_y_F_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: x_plus_c_eq_y_F */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_c_eq_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(x_plus_c_eq_y_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_c_eq_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(x_plus_c_eq_y_F_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_plus_c_eq_y_F */

fd_begin_user_constraint(x_plus_c_eq_y_F(FdArg(X),FdArg(C),FdArg(Y)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_c_eq_y_F_bloc_1_inst)
   fd_call_internal(x_plus_c_eq_y_F_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: x_neq_c */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_neq_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


	/* Entry point for x_neq_c */

fd_begin_user_constraint(x_neq_c(FdArg(X),FdArg(C)))

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

   fd_before_add_constraint
   fd_call_internal(x_neq_c_bloc_1)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: x_neq_y */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_neq_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(x_neq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_neq_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(x_neq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_neq_y */

fd_begin_user_constraint(x_neq_y(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_neq_y_bloc_1_inst)
   fd_call_internal(x_neq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_plus_c_neq_y */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_c_neq_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(x_plus_c_neq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_c_neq_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(x_plus_c_neq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_plus_c_neq_y */

fd_begin_user_constraint(x_plus_c_neq_y(FdArg(X),FdArg(C),FdArg(Y)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_c_neq_y_bloc_1_inst)
   fd_call_internal(x_plus_c_neq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------*/
	/* User constraint: x_lt_y */
	/*-------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_lt_y_bloc_1)

   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(x_lt_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_lt_y_bloc_2)

   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(x_lt_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_lt_y */

fd_begin_user_constraint(x_lt_y(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_lt_y_bloc_1_inst)
   fd_call_internal(x_lt_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: x_lte_c */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_lte_c_bloc_1)

   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


	/* Entry point for x_lte_c */

fd_begin_user_constraint(x_lte_c(FdArg(X),FdArg(C)))

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

   fd_before_add_constraint
   fd_call_internal(x_lte_c_bloc_1)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: x_lte_y */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_lte_y_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_lte_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_lte_y_bloc_2)

   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(x_lte_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_lte_y */

fd_begin_user_constraint(x_lte_y(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_lte_y_bloc_1_inst)
   fd_call_internal(x_lte_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_plus_c_lte_y */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_c_lte_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)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_c_lte_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_c_lte_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,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_c_lte_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_plus_c_lte_y */

fd_begin_user_constraint(x_plus_c_lte_y(FdArg(X),FdArg(C),FdArg(Y)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_c_lte_y_bloc_1_inst)
   fd_call_internal(x_plus_c_lte_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: x_gte_c */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_gte_c_bloc_1)

   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


	/* Entry point for x_gte_c */

fd_begin_user_constraint(x_gte_c(FdArg(X),FdArg(C)))

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

   fd_before_add_constraint
   fd_call_internal(x_gte_c_bloc_1)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_plus_c_gte_y */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_c_gte_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,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_c_gte_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_c_gte_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)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_c_gte_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_plus_c_gte_y */

fd_begin_user_constraint(x_plus_c_gte_y(FdArg(X),FdArg(C),FdArg(Y)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_c_gte_y_bloc_1_inst)
   fd_call_internal(x_plus_c_gte_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: ax_eq_y */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_eq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intA)

   fd_load_min_max(minY,maxY,2)
   fd_load_int(intA,0)
   fd_tell_interval(1,DivUp(minY,intA),DivDn(maxY,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_eq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_tell_interval(2,intA*minX,intA*maxX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for ax_eq_y */

fd_begin_user_constraint(ax_eq_y(FdArg(A),FdArg(X),FdArg(Y)))

   fd_create_a_frame(3)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_fdv_in_a_frame(Y,2)

   fd_before_add_constraint
   fd_call_internal(ax_eq_y_bloc_1_inst)
   fd_call_internal(ax_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------*/
	/* User constraint: x_plus_y_eq_z */
	/*--------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_y_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minZ,maxZ,2)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(0,minZ-maxY,maxZ-minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_eq_z_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_y_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

   fd_load_min_max(minZ,maxZ,2)
   fd_load_min_max(minX,maxX,0)
   fd_tell_interval(1,minZ-maxX,maxZ-minX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_eq_z_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_plus_y_eq_z_bloc_3)

   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,minX+minY,maxX+maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_eq_z_bloc_3_inst)

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

fd_end_internal


	/* Entry point for x_plus_y_eq_z */

fd_begin_user_constraint(x_plus_y_eq_z(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_y_eq_z_bloc_1_inst)
   fd_call_internal(x_plus_y_eq_z_bloc_2_inst)
   fd_call_internal(x_plus_y_eq_z_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: ax_plus_y_eq_z */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_y_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intA)

   fd_load_min_max(minZ,maxZ,3)
   fd_load_min_max(minY,maxY,2)
   fd_load_int(intA,0)
   fd_tell_interval(1,DivUp(minZ-maxY,intA),DivDn(maxZ-minY,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_eq_z_bloc_1,1,1)
   fd_add_dependency(3,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal(ax_plus_y_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_y_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

   fd_load_min_max(minZ,maxZ,3)
   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_tell_interval(2,minZ-intA*maxX,maxZ-intA*minX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_eq_z_bloc_2,2,1)
   fd_add_dependency(3,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(ax_plus_y_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_y_eq_z_bloc_3)

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

   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_min_max(minY,maxY,2)
   fd_tell_interval(3,intA*minX+minY,intA*maxX+maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_eq_z_bloc_3,3,1)
   fd_add_dependency(1,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal(ax_plus_y_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_y_eq_z */

fd_begin_user_constraint(ax_plus_y_eq_z(FdArg(A),FdArg(X),FdArg(Y),FdArg(Z)))

   fd_create_a_frame(4)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(ax_plus_y_eq_z_bloc_1_inst)
   fd_call_internal(ax_plus_y_eq_z_bloc_2_inst)
   fd_call_internal(ax_plus_y_eq_z_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: ax_plus_by_eq_z */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_by_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intB)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intA)

   fd_load_min_max(minZ,maxZ,4)
   fd_load_int(intB,2)
   fd_load_min_max(minY,maxY,3)
   fd_load_int(intA,0)
   fd_tell_interval(1,DivUp(minZ-intB*maxY,intA),DivDn(maxZ-intB*minY,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_eq_z_bloc_1,1,1)
   fd_add_dependency(4,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(ax_plus_by_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_by_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intB)

   fd_load_min_max(minZ,maxZ,4)
   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_int(intB,2)
   fd_tell_interval(3,DivUp(minZ-intA*maxX,intB),DivDn(maxZ-intA*minX,intB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_eq_z_bloc_2,3,1)
   fd_add_dependency(4,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(ax_plus_by_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_by_eq_z_bloc_3)

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

   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_int(intB,2)
   fd_load_min_max(minY,maxY,3)
   fd_tell_interval(4,intA*minX+intB*minY,intA*maxX+intB*maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_eq_z_bloc_3,4,1)
   fd_add_dependency(1,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(ax_plus_by_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_by_eq_z */

fd_begin_user_constraint(ax_plus_by_eq_z(FdArg(A),FdArg(X),FdArg(B),FdArg(Y),FdArg(Z)))

   fd_create_a_frame(5)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_int_in_a_frame(B,2)
   fd_fdv_in_a_frame(Y,3)
   fd_fdv_in_a_frame(Z,4)

   fd_before_add_constraint
   fd_call_internal(ax_plus_by_eq_z_bloc_1_inst)
   fd_call_internal(ax_plus_by_eq_z_bloc_2_inst)
   fd_call_internal(ax_plus_by_eq_z_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------------*/
	/* User constraint: x_plus_y_plus_z_eq_t */
	/*---------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minT,maxT,3)
   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minT-maxY-maxZ,maxT-minY-minZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minT,maxT,3)
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(1,minT-maxX-maxZ,maxT-minX-minZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_3)

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

   fd_load_min_max(minT,maxT,3)
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,minT-maxX-maxY,maxT-minX-minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_4)

   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_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(3,minX+minY+minZ,maxX+maxY+maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_bloc_4_inst)

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

fd_end_internal


	/* Entry point for x_plus_y_plus_z_eq_t */

fd_begin_user_constraint(x_plus_y_plus_z_eq_t(FdArg(X),FdArg(Y),FdArg(Z),FdArg(T)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(Z,2)
   fd_fdv_in_a_frame(T,3)

   fd_before_add_constraint
   fd_call_internal(x_plus_y_plus_z_eq_t_bloc_1_inst)
   fd_call_internal(x_plus_y_plus_z_eq_t_bloc_2_inst)
   fd_call_internal(x_plus_y_plus_z_eq_t_bloc_3_inst)
   fd_call_internal(x_plus_y_plus_z_eq_t_bloc_4_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------------*/
	/* User constraint: ax_plus_y_plus_z_eq_t */
	/*----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)

   fd_load_min_max(minT,maxT,4)
   fd_load_min_max(minY,maxY,2)
   fd_load_min_max(minZ,maxZ,3)
   fd_load_int(intA,0)
   fd_tell_interval(1,DivUp(minT-maxY-maxZ,intA),DivDn(maxT-minY-minZ,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_bloc_1,1,1)
   fd_add_dependency(4,min_max)
   fd_add_dependency(2,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minT,maxT,4)
   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_min_max(minZ,maxZ,3)
   fd_tell_interval(2,minT-intA*maxX-maxZ,maxT-intA*minX-minZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_bloc_2,2,1)
   fd_add_dependency(4,min_max)
   fd_add_dependency(1,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minT,maxT,4)
   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_min_max(minY,maxY,2)
   fd_tell_interval(3,minT-intA*maxX-maxY,maxT-intA*minX-minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_bloc_3,3,1)
   fd_add_dependency(4,min_max)
   fd_add_dependency(1,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_min_max(minY,maxY,2)
   fd_load_min_max(minZ,maxZ,3)
   fd_tell_interval(4,intA*minX+minY+minZ,intA*maxX+maxY+maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_bloc_4,4,1)
   fd_add_dependency(1,min_max)
   fd_add_dependency(2,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_y_plus_z_eq_t */

fd_begin_user_constraint(ax_plus_y_plus_z_eq_t(FdArg(A),FdArg(X),FdArg(Y),FdArg(Z),FdArg(T)))

   fd_create_a_frame(5)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(Z,3)
   fd_fdv_in_a_frame(T,4)

   fd_before_add_constraint
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_1_inst)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_2_inst)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_3_inst)
   fd_call_internal(ax_plus_y_plus_z_eq_t_bloc_4_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-----------------------------------------*/
	/* User constraint: ax_plus_by_plus_z_eq_t */
	/*-----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(intB)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)

   fd_load_min_max(minT,maxT,5)
   fd_load_int(intB,2)
   fd_load_min_max(minY,maxY,3)
   fd_load_min_max(minZ,maxZ,4)
   fd_load_int(intA,0)
   fd_tell_interval(1,DivUp(minT-intB*maxY-maxZ,intA),DivDn(maxT-intB*minY-minZ,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_bloc_1,1,1)
   fd_add_dependency(5,min_max)
   fd_add_dependency(3,min_max)
   fd_add_dependency(4,min_max)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intB)

   fd_load_min_max(minT,maxT,5)
   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_min_max(minZ,maxZ,4)
   fd_load_int(intB,2)
   fd_tell_interval(3,DivUp(minT-intA*maxX-maxZ,intB),DivDn(maxT-intA*minX-minZ,intB))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_bloc_2,3,1)
   fd_add_dependency(5,min_max)
   fd_add_dependency(1,min_max)
   fd_add_dependency(4,min_max)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minT)
   fd_local_value_var(maxT)
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intB)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_min_max(minT,maxT,5)
   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_int(intB,2)
   fd_load_min_max(minY,maxY,3)
   fd_tell_interval(4,minT-intA*maxX-intB*maxY,maxT-intA*minX-intB*minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_bloc_3,4,1)
   fd_add_dependency(5,min_max)
   fd_add_dependency(1,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intB)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_int(intA,0)
   fd_load_min_max(minX,maxX,1)
   fd_load_int(intB,2)
   fd_load_min_max(minY,maxY,3)
   fd_load_min_max(minZ,maxZ,4)
   fd_tell_interval(5,intA*minX+intB*minY+minZ,intA*maxX+intB*maxY+maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_bloc_4,5,1)
   fd_add_dependency(1,min_max)
   fd_add_dependency(3,min_max)
   fd_add_dependency(4,min_max)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_by_plus_z_eq_t */

fd_begin_user_constraint(ax_plus_by_plus_z_eq_t(FdArg(A),FdArg(X),FdArg(B),FdArg(Y),FdArg(Z),FdArg(T)))

   fd_create_a_frame(6)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_int_in_a_frame(B,2)
   fd_fdv_in_a_frame(Y,3)
   fd_fdv_in_a_frame(Z,4)
   fd_fdv_in_a_frame(T,5)

   fd_before_add_constraint
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_1_inst)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_2_inst)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_3_inst)
   fd_call_internal(ax_plus_by_plus_z_eq_t_bloc_4_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------*/
	/* User constraint: ax_eq_y_F */
	/*----------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_eq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,2)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_div_value(0,intA)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_eq_y_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_eq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_mul_value(0,intA)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_eq_y_F_bloc_2_inst)

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

fd_end_internal


	/* Entry point for ax_eq_y_F */

fd_begin_user_constraint(ax_eq_y_F(FdArg(A),FdArg(X),FdArg(Y)))

   fd_create_a_frame(3)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_fdv_in_a_frame(Y,2)

   fd_before_add_constraint
   fd_call_internal(ax_eq_y_F_bloc_1_inst)
   fd_call_internal(ax_eq_y_F_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------*/
	/* User constraint: x_plus_y_eq_z_F */
	/*----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_y_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(x_plus_y_eq_z_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_y_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(x_plus_y_eq_z_F_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_plus_y_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(x_plus_y_eq_z_F_bloc_3_inst)

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

fd_end_internal


	/* Entry point for x_plus_y_eq_z_F */

fd_begin_user_constraint(x_plus_y_eq_z_F(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(x_plus_y_eq_z_F_bloc_1_inst)
   fd_call_internal(x_plus_y_eq_z_F_bloc_2_inst)
   fd_call_internal(x_plus_y_eq_z_F_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-----------------------------------*/
	/* User constraint: ax_plus_y_eq_z_F */
	/*-----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_y_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,3)
   fd_load_dom(2,2)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intA)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_eq_z_F_bloc_1,1,1)
   fd_add_dependency(3,dom)
   fd_add_dependency(2,dom)
   fd_call_internal(ax_plus_y_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_y_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,3)
   fd_load_dom(2,1)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_eq_z_F_bloc_2,2,1)
   fd_add_dependency(3,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(ax_plus_y_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_y_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_int(intA,0)
   fd_load_dom(2,2)
   fd_range_copy(0,1)
   fd_range_mul_value(0,intA)
   fd_range_copy(1,2)
   fd_range_add_range(0,1)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_eq_z_F_bloc_3,3,1)
   fd_add_dependency(1,dom)
   fd_add_dependency(2,dom)
   fd_call_internal(ax_plus_y_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_y_eq_z_F */

fd_begin_user_constraint(ax_plus_y_eq_z_F(FdArg(A),FdArg(X),FdArg(Y),FdArg(Z)))

   fd_create_a_frame(4)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(ax_plus_y_eq_z_F_bloc_1_inst)
   fd_call_internal(ax_plus_y_eq_z_F_bloc_2_inst)
   fd_call_internal(ax_plus_y_eq_z_F_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*------------------------------------*/
	/* User constraint: ax_plus_by_eq_z_F */
	/*------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_by_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intB)
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,4)
   fd_load_dom(2,3)
   fd_load_int(intB,2)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_mul_value(1,intB)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intA)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_eq_z_F_bloc_1,1,1)
   fd_add_dependency(4,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(ax_plus_by_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_by_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(intB)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,4)
   fd_load_dom(2,1)
   fd_load_int(intA,0)
   fd_load_int(intB,2)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intB)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_eq_z_F_bloc_2,3,1)
   fd_add_dependency(4,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(ax_plus_by_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_by_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(intB)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_int(intA,0)
   fd_load_dom(2,3)
   fd_load_int(intB,2)
   fd_range_copy(0,1)
   fd_range_mul_value(0,intA)
   fd_range_copy(1,2)
   fd_range_mul_value(1,intB)
   fd_range_add_range(0,1)
   fd_deallocate
   fd_tell_range(4,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_eq_z_F_bloc_3,4,1)
   fd_add_dependency(1,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(ax_plus_by_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_by_eq_z_F */

fd_begin_user_constraint(ax_plus_by_eq_z_F(FdArg(A),FdArg(X),FdArg(B),FdArg(Y),FdArg(Z)))

   fd_create_a_frame(5)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_int_in_a_frame(B,2)
   fd_fdv_in_a_frame(Y,3)
   fd_fdv_in_a_frame(Z,4)

   fd_before_add_constraint
   fd_call_internal(ax_plus_by_eq_z_F_bloc_1_inst)
   fd_call_internal(ax_plus_by_eq_z_F_bloc_2_inst)
   fd_call_internal(ax_plus_by_eq_z_F_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-----------------------------------------*/
	/* User constraint: x_plus_y_plus_z_eq_t_F */
	/*-----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

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

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_2)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

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

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_3)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

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

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_4)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

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

fd_end_internal

fd_begin_internal(x_plus_y_plus_z_eq_t_F_bloc_4_inst)

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

fd_end_internal


	/* Entry point for x_plus_y_plus_z_eq_t_F */

fd_begin_user_constraint(x_plus_y_plus_z_eq_t_F(FdArg(X),FdArg(Y),FdArg(Z),FdArg(T)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(Z,2)
   fd_fdv_in_a_frame(T,3)

   fd_before_add_constraint
   fd_call_internal(x_plus_y_plus_z_eq_t_F_bloc_1_inst)
   fd_call_internal(x_plus_y_plus_z_eq_t_F_bloc_2_inst)
   fd_call_internal(x_plus_y_plus_z_eq_t_F_bloc_3_inst)
   fd_call_internal(x_plus_y_plus_z_eq_t_F_bloc_4_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*------------------------------------------*/
	/* User constraint: ax_plus_y_plus_z_eq_t_F */
	/*------------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,4)
   fd_load_dom(3,2)
   fd_load_dom(2,3)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intA)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_F_bloc_1,1,1)
   fd_add_dependency(4,dom)
   fd_add_dependency(2,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,4)
   fd_load_dom(3,1)
   fd_load_int(intA,0)
   fd_load_dom(2,3)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_F_bloc_2,2,1)
   fd_add_dependency(4,dom)
   fd_add_dependency(1,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,4)
   fd_load_dom(3,1)
   fd_load_int(intA,0)
   fd_load_dom(2,2)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_F_bloc_3,3,1)
   fd_add_dependency(4,dom)
   fd_add_dependency(1,dom)
   fd_add_dependency(2,dom)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_int(intA,0)
   fd_load_dom(3,2)
   fd_load_dom(2,3)
   fd_range_copy(0,1)
   fd_range_mul_value(0,intA)
   fd_range_copy(1,3)
   fd_range_add_range(0,1)
   fd_range_copy(1,2)
   fd_range_add_range(0,1)
   fd_deallocate
   fd_tell_range(4,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_y_plus_z_eq_t_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_y_plus_z_eq_t_F_bloc_4,4,1)
   fd_add_dependency(1,dom)
   fd_add_dependency(2,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_y_plus_z_eq_t_F */

fd_begin_user_constraint(ax_plus_y_plus_z_eq_t_F(FdArg(A),FdArg(X),FdArg(Y),FdArg(Z),FdArg(T)))

   fd_create_a_frame(5)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_fdv_in_a_frame(Y,2)
   fd_fdv_in_a_frame(Z,3)
   fd_fdv_in_a_frame(T,4)

   fd_before_add_constraint
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_1_inst)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_2_inst)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_3_inst)
   fd_call_internal(ax_plus_y_plus_z_eq_t_F_bloc_4_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------------------*/
	/* User constraint: ax_plus_by_plus_z_eq_t_F */
	/*-------------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intB)
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,5)
   fd_load_dom(3,3)
   fd_load_int(intB,2)
   fd_load_dom(2,4)
   fd_load_int(intA,0)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_mul_value(1,intB)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intA)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_F_bloc_1,1,1)
   fd_add_dependency(5,dom)
   fd_add_dependency(3,dom)
   fd_add_dependency(4,dom)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(intB)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,5)
   fd_load_dom(3,1)
   fd_load_int(intA,0)
   fd_load_dom(2,4)
   fd_load_int(intB,2)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intB)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_F_bloc_2,3,1)
   fd_add_dependency(5,dom)
   fd_add_dependency(1,dom)
   fd_add_dependency(4,dom)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(intB)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,5)
   fd_load_dom(3,1)
   fd_load_int(intA,0)
   fd_load_dom(2,3)
   fd_load_int(intB,2)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_mul_value(1,intB)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(4,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_F_bloc_3,4,1)
   fd_add_dependency(5,dom)
   fd_add_dependency(1,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(intB)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_int(intA,0)
   fd_load_dom(3,3)
   fd_load_int(intB,2)
   fd_load_dom(2,4)
   fd_range_copy(0,1)
   fd_range_mul_value(0,intA)
   fd_range_copy(1,3)
   fd_range_mul_value(1,intB)
   fd_range_add_range(0,1)
   fd_range_copy(1,2)
   fd_range_add_range(0,1)
   fd_deallocate
   fd_tell_range(5,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(ax_plus_by_plus_z_eq_t_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(ax_plus_by_plus_z_eq_t_F_bloc_4,5,1)
   fd_add_dependency(1,dom)
   fd_add_dependency(3,dom)
   fd_add_dependency(4,dom)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for ax_plus_by_plus_z_eq_t_F */

fd_begin_user_constraint(ax_plus_by_plus_z_eq_t_F(FdArg(A),FdArg(X),FdArg(B),FdArg(Y),FdArg(Z),FdArg(T)))

   fd_create_a_frame(6)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(X,1)
   fd_int_in_a_frame(B,2)
   fd_fdv_in_a_frame(Y,3)
   fd_fdv_in_a_frame(Z,4)
   fd_fdv_in_a_frame(T,5)

   fd_before_add_constraint
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_1_inst)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_2_inst)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_3_inst)
   fd_call_internal(ax_plus_by_plus_z_eq_t_F_bloc_4_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*------------------------------------*/
	/* User constraint: zero_power_n_eq_y */
	/*------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(zero_power_n_eq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intmin_y)
   fd_local_value_var(minN)
   fd_local_value_var(maxN)
   fd_local_value_var(intmax_y)

   fd_load_min_max(minN,maxN,0)
   fd_init_local_value_var(intmin_y,Zero_Power(minN,maxN,&intmax_y))
   fd_tell_interval(1,intmin_y,intmax_y)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(zero_power_n_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(zero_power_n_eq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intmin_n)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intmax_n)

   fd_load_min_max(minY,maxY,1)
   fd_init_local_value_var(intmin_n,Zero_Find_Expon(minY,maxY,&intmax_n))
   fd_tell_interval(0,intmin_n,intmax_n)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(zero_power_n_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for zero_power_n_eq_y */

fd_begin_user_constraint(zero_power_n_eq_y(FdArg(N),FdArg(Y)))

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

   fd_before_add_constraint
   fd_call_internal(zero_power_n_eq_y_bloc_1_inst)
   fd_call_internal(zero_power_n_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: a_power_n_eq_y */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(a_power_n_eq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minN)
   fd_local_value_var(maxN)

   fd_load_int(intA,0)
   fd_load_min_max(minN,maxN,1)
   fd_tell_interval(2,Power(intA,minN),Power(intA,maxN))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(a_power_n_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(a_power_n_eq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_int(intA,0)
   fd_load_min_max(minY,maxY,2)
   fd_tell_interval(1,Find_Expon_Up(intA,minY),Find_Expon_Dn(intA,maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(a_power_n_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for a_power_n_eq_y */

fd_begin_user_constraint(a_power_n_eq_y(FdArg(A),FdArg(N),FdArg(Y)))

   fd_create_a_frame(3)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(N,1)
   fd_fdv_in_a_frame(Y,2)

   fd_before_add_constraint
   fd_call_internal(a_power_n_eq_y_bloc_1_inst)
   fd_call_internal(a_power_n_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: x_power_a_eq_y */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_power_a_eq_y_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intA)

   fd_load_min_max(minX,maxX,0)
   fd_load_int(intA,1)
   fd_tell_interval(2,Power(minX,intA),Power(maxX,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_power_a_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_power_a_eq_y_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(intA)

   fd_load_min_max(minY,maxY,2)
   fd_load_int(intA,1)
   fd_tell_interval(0,Nth_Root_Up(minY,intA),Nth_Root_Dn(maxY,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_power_a_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_power_a_eq_y */

fd_begin_user_constraint(x_power_a_eq_y(FdArg(X),FdArg(A),FdArg(Y)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Y,2)

   fd_before_add_constraint
   fd_call_internal(x_power_a_eq_y_bloc_1_inst)
   fd_call_internal(x_power_a_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: x2_eq_y */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(x2_eq_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,Sqrt_Up(minY),Sqrt_Dn(maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x2_eq_y_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x2_eq_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*minX,maxX*maxX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x2_eq_y_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x2_eq_y */

fd_begin_user_constraint(x2_eq_y(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(x2_eq_y_bloc_1_inst)
   fd_call_internal(x2_eq_y_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------*/
	/* User constraint: xy_eq_z */
	/*--------------------------*/


	/* Bloc #1 */

fd_begin_internal(xy_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,ite(maxY==0,0,DivUp(minZ,maxY)),ite(minY==0,max_integer,DivDn(maxZ,minY)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(xy_eq_z_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(xy_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(1,ite(maxX==0,0,DivUp(minZ,maxX)),ite(minX==0,max_integer,DivDn(maxZ,minX)))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(xy_eq_z_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(xy_eq_z_bloc_3)

   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,minX*minY,maxX*maxY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(xy_eq_z_bloc_3_inst)

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

fd_end_internal


	/* Entry point for xy_eq_z */

fd_begin_user_constraint(xy_eq_z(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(xy_eq_z_bloc_1_inst)
   fd_call_internal(xy_eq_z_bloc_2_inst)
   fd_call_internal(xy_eq_z_bloc_3_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-----------------------------------*/
	/* User constraint: a_power_n_eq_y_F */
	/*-----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(a_power_n_eq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_int(intA,0)
   fd_load_dom(0,1)
   fd_range_copy(1,0)
   fd_range_fct(Full_Coeff_Power_Var,0,arg_2(intA,range_arg(1)))
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(a_power_n_eq_y_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(a_power_n_eq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_int(intA,0)
   fd_load_dom(0,2)
   fd_range_copy(1,0)
   fd_range_fct(Full_Find_Expon,0,arg_2(intA,range_arg(1)))
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(a_power_n_eq_y_F_bloc_2_inst)

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

fd_end_internal


	/* Entry point for a_power_n_eq_y_F */

fd_begin_user_constraint(a_power_n_eq_y_F(FdArg(A),FdArg(N),FdArg(Y)))

   fd_create_a_frame(3)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(N,1)
   fd_fdv_in_a_frame(Y,2)

   fd_before_add_constraint
   fd_call_internal(a_power_n_eq_y_F_bloc_1_inst)
   fd_call_internal(a_power_n_eq_y_F_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-----------------------------------*/
	/* User constraint: x_power_a_eq_y_F */
	/*-----------------------------------*/


	/* Bloc #1 */

fd_begin_internal(x_power_a_eq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(0,0)
   fd_load_int(intA,1)
   fd_range_copy(1,0)
   fd_range_fct(Full_Var_Power_Coeff,0,arg_2(range_arg(1),intA))
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_power_a_eq_y_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x_power_a_eq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(0,2)
   fd_load_int(intA,1)
   fd_range_copy(1,0)
   fd_range_fct(Full_Nth_Root,0,arg_2(range_arg(1),intA))
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x_power_a_eq_y_F_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x_power_a_eq_y_F */

fd_begin_user_constraint(x_power_a_eq_y_F(FdArg(X),FdArg(A),FdArg(Y)))

   fd_create_a_frame(3)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Y,2)

   fd_before_add_constraint
   fd_call_internal(x_power_a_eq_y_F_bloc_1_inst)
   fd_call_internal(x_power_a_eq_y_F_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------*/
	/* User constraint: x2_eq_y_F */
	/*----------------------------*/


	/* Bloc #1 */

fd_begin_internal(x2_eq_y_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(0,0)
   fd_range_copy(1,0)
   fd_range_fct(Full_Var_Power_2,0,arg_1(range_arg(1)))
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x2_eq_y_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(x2_eq_y_F_bloc_2)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(0,1)
   fd_range_copy(1,0)
   fd_range_fct(Full_Sqrt_Var,0,arg_1(range_arg(1)))
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(x2_eq_y_F_bloc_2_inst)

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

fd_end_internal


	/* Entry point for x2_eq_y_F */

fd_begin_user_constraint(x2_eq_y_F(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(x2_eq_y_F_bloc_1_inst)
   fd_call_internal(x2_eq_y_F_bloc_2_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------*/
	/* User constraint: xy_eq_z_F */
	/*----------------------------*/


	/* Bloc #1 */

fd_begin_internal(xy_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(xy_eq_z_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(xy_eq_z_F_bloc_2)

   fd_local_fdv_adr

   fd_tell_interval(1,1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(xy_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(xy_eq_z_F_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(xy_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(xy_eq_z_F_bloc_4_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(xy_eq_z_F_case_group_1)

   fd_call_internal(xy_eq_z_F_bloc_2)
   fd_call_internal(xy_eq_z_F_bloc_3_inst)
   fd_call_internal(xy_eq_z_F_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(xy_eq_z_F_bloc_5)

   fd_local_fdv_adr

   fd_tell_value(0,0)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(xy_eq_z_F_bloc_6)

   fd_local_fdv_adr

   fd_tell_value(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(xy_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(minY)
   fd_local_value_var(minX)

   fd_load_min_max(minZ,maxZ,2)
   fd_load_min(minY,1)
   fd_load_min(minX,0)
   fd_test_switch_condition(minZ>0,xy_eq_z_F_case_group_1)
   fd_test_switch_condition(maxZ==0&&minY>0,xy_eq_z_F_bloc_5)
   fd_test_switch_condition(maxZ==0&&minX>0,xy_eq_z_F_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(xy_eq_z_F_switch_1_inst)

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

fd_end_internal


	/* Entry point for xy_eq_z_F */

fd_begin_user_constraint(xy_eq_z_F(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(xy_eq_z_F_bloc_1_inst)
   fd_call_internal_and_test_switch_simple(xy_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: min_x_y_eq_z */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(min_x_y_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(minY)

   fd_load_min(minX,0)
   fd_load_min(minY,1)
   fd_tell_interval(2,math_min(minX,minY),max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,min)
   fd_add_dependency(1,min)
   fd_call_internal(min_x_y_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(min_x_y_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,max)
   fd_call_internal(min_x_y_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(min_x_y_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,2)
   fd_tell_interval(0,minZ,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,min)
   fd_call_internal(min_x_y_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(min_x_y_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_bloc_4,2,1)
   fd_cf_in_a_frame(6)
   fd_add_dependency(1,max)
   fd_call_internal(min_x_y_eq_z_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(min_x_y_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,2)
   fd_tell_interval(1,minZ,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_5_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_bloc_5,1,1)
   fd_cf_in_a_frame(7)
   fd_add_dependency(2,min)
   fd_call_internal(min_x_y_eq_z_bloc_5)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(min_x_y_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_6_inst)

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

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(min_x_y_eq_z_bloc_7)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minZ,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_7_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(min_x_y_eq_z_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(min_x_y_eq_z_bloc_6_inst)
   fd_call_internal(min_x_y_eq_z_bloc_7_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(min_x_y_eq_z_bloc_8)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_8_inst)

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

fd_end_internal


	/* Bloc #9 */

fd_begin_internal(min_x_y_eq_z_bloc_9)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(1,minZ,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_bloc_9_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(min_x_y_eq_z_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(min_x_y_eq_z_bloc_8_inst)
   fd_call_internal(min_x_y_eq_z_bloc_9_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxZ)
   fd_local_value_var(minX)

   fd_load_min(minY,1)
   fd_load_max(maxZ,2)
   fd_load_min(minX,0)
   fd_test_switch_condition(minY>maxZ,min_x_y_eq_z_case_group_1)
   fd_test_switch_condition(minX>maxZ,min_x_y_eq_z_case_group_2)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_switch_1,-1,0)
   fd_add_dependency(1,min)
   fd_add_dependency(2,max)
   fd_add_dependency(0,min)
   fd_call_internal_and_test_switch(min_x_y_eq_z_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for min_x_y_eq_z */

fd_begin_user_constraint(min_x_y_eq_z(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(min_x_y_eq_z_bloc_1_inst)
   fd_call_internal(min_x_y_eq_z_bloc_2_inst)
   fd_call_internal(min_x_y_eq_z_bloc_3_inst)
   fd_call_internal(min_x_y_eq_z_bloc_4_inst)
   fd_call_internal(min_x_y_eq_z_bloc_5_inst)
   fd_call_internal_and_test_switch_simple(min_x_y_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: min_x_a_eq_z */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(min_x_a_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(intA)

   fd_load_min(minX,0)
   fd_load_int(intA,1)
   fd_tell_interval(2,math_min(minX,intA),max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,min)
   fd_call_internal(min_x_a_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(min_x_a_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(min_x_a_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,max)
   fd_call_internal(min_x_a_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(min_x_a_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,2)
   fd_tell_interval(0,minZ,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,min)
   fd_call_internal(min_x_a_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(min_x_a_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)

   fd_load_int(intA,1)
   fd_tell_interval(2,0,intA)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(min_x_a_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(min_x_a_eq_z_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(min_x_a_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minZ,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_bloc_6_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(min_x_a_eq_z_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(min_x_a_eq_z_bloc_5_inst)
   fd_call_internal(min_x_a_eq_z_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(maxZ)

   fd_load_int(intA,1)
   fd_load_max(maxZ,2)
   fd_test_switch_condition(intA>maxZ,min_x_a_eq_z_case_group_1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_switch_1,-1,0)
   fd_add_dependency(2,max)
   fd_call_internal_and_test_switch(min_x_a_eq_z_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for min_x_a_eq_z */

fd_begin_user_constraint(min_x_a_eq_z(FdArg(X),FdArg(A),FdArg(Z)))

   fd_create_a_frame(6)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Z,2)

   fd_before_add_constraint
   fd_call_internal(min_x_a_eq_z_bloc_1_inst)
   fd_call_internal(min_x_a_eq_z_bloc_2_inst)
   fd_call_internal(min_x_a_eq_z_bloc_3_inst)
   fd_call_internal(min_x_a_eq_z_bloc_4)
   fd_call_internal_and_test_switch_simple(min_x_a_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: min_x_y_eq_z_F */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(min_x_y_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_F_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(min_x_y_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(min_x_y_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_F_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,max)
   fd_call_internal(min_x_y_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(min_x_y_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,2)
   fd_tell_interval(0,minZ,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_F_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,min)
   fd_call_internal(min_x_y_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(min_x_y_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_F_bloc_4,2,1)
   fd_cf_in_a_frame(6)
   fd_add_dependency(1,max)
   fd_call_internal(min_x_y_eq_z_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(min_x_y_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,2)
   fd_tell_interval(1,minZ,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_5_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_y_eq_z_F_bloc_5,1,1)
   fd_cf_in_a_frame(7)
   fd_add_dependency(2,min)
   fd_call_internal(min_x_y_eq_z_F_bloc_5)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(min_x_y_eq_z_F_bloc_6)

   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(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_6_inst)

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

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(min_x_y_eq_z_F_bloc_7)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_7_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(min_x_y_eq_z_F_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(min_x_y_eq_z_F_bloc_6_inst)
   fd_call_internal(min_x_y_eq_z_F_bloc_7_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(min_x_y_eq_z_F_bloc_8)

   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(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_8_inst)

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

fd_end_internal


	/* Bloc #9 */

fd_begin_internal(min_x_y_eq_z_F_bloc_9)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_bloc_9_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(min_x_y_eq_z_F_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(min_x_y_eq_z_F_bloc_8_inst)
   fd_call_internal(min_x_y_eq_z_F_bloc_9_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_dom(2,2)
   fd_load_dom(0,0)
   fd_range_copy(3,1)
   fd_range_copy(1,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(3),range_arg(1)),min_x_y_eq_z_F_case_group_1)
   fd_range_copy(1,0)
   fd_range_copy(0,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(1),range_arg(0)),min_x_y_eq_z_F_case_group_2)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(min_x_y_eq_z_F_switch_1_inst)

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

fd_end_internal


	/* Entry point for min_x_y_eq_z_F */

fd_begin_user_constraint(min_x_y_eq_z_F(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(min_x_y_eq_z_F_bloc_1_inst)
   fd_call_internal(min_x_y_eq_z_F_bloc_2_inst)
   fd_call_internal(min_x_y_eq_z_F_bloc_3_inst)
   fd_call_internal(min_x_y_eq_z_F_bloc_4_inst)
   fd_call_internal(min_x_y_eq_z_F_bloc_5_inst)
   fd_call_internal_and_test_switch_simple(min_x_y_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: min_x_a_eq_z_F */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(min_x_a_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_int(intA,1)
   fd_range_copy(0,1)
   fd_range_set_value(0,intA)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_F_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,dom)
   fd_call_internal(min_x_a_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(min_x_a_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_F_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,max)
   fd_call_internal(min_x_a_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(min_x_a_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,2)
   fd_tell_interval(0,minZ,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_F_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,min)
   fd_call_internal(min_x_a_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(min_x_a_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)

   fd_load_int(intA,1)
   fd_tell_interval(2,0,intA)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(min_x_a_eq_z_F_bloc_5)

   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(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(min_x_a_eq_z_F_bloc_6)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_bloc_6_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(min_x_a_eq_z_F_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(min_x_a_eq_z_F_bloc_5_inst)
   fd_call_internal(min_x_a_eq_z_F_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(maxZ)

   fd_load_int(intA,1)
   fd_load_max(maxZ,2)
   fd_test_switch_condition(intA>maxZ,min_x_a_eq_z_F_case_group_1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(min_x_a_eq_z_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(min_x_a_eq_z_F_switch_1,-1,0)
   fd_add_dependency(2,max)
   fd_call_internal_and_test_switch(min_x_a_eq_z_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for min_x_a_eq_z_F */

fd_begin_user_constraint(min_x_a_eq_z_F(FdArg(X),FdArg(A),FdArg(Z)))

   fd_create_a_frame(6)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Z,2)

   fd_before_add_constraint
   fd_call_internal(min_x_a_eq_z_F_bloc_1_inst)
   fd_call_internal(min_x_a_eq_z_F_bloc_2_inst)
   fd_call_internal(min_x_a_eq_z_F_bloc_3_inst)
   fd_call_internal(min_x_a_eq_z_F_bloc_4)
   fd_call_internal_and_test_switch_simple(min_x_a_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: max_x_y_eq_z */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(max_x_y_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(maxX)
   fd_local_value_var(maxY)

   fd_load_max(maxX,0)
   fd_load_max(maxY,1)
   fd_tell_interval(2,0,math_max(maxX,maxY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,max)
   fd_add_dependency(1,max)
   fd_call_internal(max_x_y_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(max_x_y_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,min)
   fd_call_internal(max_x_y_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(max_x_y_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)

   fd_load_max(maxZ,2)
   fd_tell_interval(0,0,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,max)
   fd_call_internal(max_x_y_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(max_x_y_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minY)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_bloc_4,2,1)
   fd_cf_in_a_frame(6)
   fd_add_dependency(1,min)
   fd_call_internal(max_x_y_eq_z_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(max_x_y_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)

   fd_load_max(maxZ,2)
   fd_tell_interval(1,0,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_5_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_bloc_5,1,1)
   fd_cf_in_a_frame(7)
   fd_add_dependency(2,max)
   fd_call_internal(max_x_y_eq_z_bloc_5)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(max_x_y_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_6_inst)

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

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(max_x_y_eq_z_bloc_7)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minZ,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_7_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(max_x_y_eq_z_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(max_x_y_eq_z_bloc_6_inst)
   fd_call_internal(max_x_y_eq_z_bloc_7_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(max_x_y_eq_z_bloc_8)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_8_inst)

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

fd_end_internal


	/* Bloc #9 */

fd_begin_internal(max_x_y_eq_z_bloc_9)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(1,minZ,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_bloc_9_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(max_x_y_eq_z_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(max_x_y_eq_z_bloc_8_inst)
   fd_call_internal(max_x_y_eq_z_bloc_9_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxX)

   fd_load_max(maxY,1)
   fd_load_min(minZ,2)
   fd_load_max(maxX,0)
   fd_test_switch_condition(maxY<minZ,max_x_y_eq_z_case_group_1)
   fd_test_switch_condition(maxX<minZ,max_x_y_eq_z_case_group_2)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_switch_1,-1,0)
   fd_add_dependency(1,max)
   fd_add_dependency(2,min)
   fd_add_dependency(0,max)
   fd_call_internal_and_test_switch(max_x_y_eq_z_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for max_x_y_eq_z */

fd_begin_user_constraint(max_x_y_eq_z(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(max_x_y_eq_z_bloc_1_inst)
   fd_call_internal(max_x_y_eq_z_bloc_2_inst)
   fd_call_internal(max_x_y_eq_z_bloc_3_inst)
   fd_call_internal(max_x_y_eq_z_bloc_4_inst)
   fd_call_internal(max_x_y_eq_z_bloc_5_inst)
   fd_call_internal_and_test_switch_simple(max_x_y_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------*/
	/* User constraint: max_x_a_eq_z */
	/*-------------------------------*/


	/* Bloc #1 */

fd_begin_internal(max_x_a_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(maxX)
   fd_local_value_var(intA)

   fd_load_max(maxX,0)
   fd_load_int(intA,1)
   fd_tell_interval(2,0,math_max(maxX,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,max)
   fd_call_internal(max_x_a_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(max_x_a_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)

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

fd_end_internal

fd_begin_internal(max_x_a_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,min)
   fd_call_internal(max_x_a_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(max_x_a_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)

   fd_load_max(maxZ,2)
   fd_tell_interval(0,0,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,max)
   fd_call_internal(max_x_a_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(max_x_a_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)

   fd_load_int(intA,1)
   fd_tell_interval(2,intA,max_integer)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(max_x_a_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

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

fd_end_internal

fd_begin_internal(max_x_a_eq_z_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(max_x_a_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minZ,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_bloc_6_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(max_x_a_eq_z_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(max_x_a_eq_z_bloc_5_inst)
   fd_call_internal(max_x_a_eq_z_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minZ)

   fd_load_int(intA,1)
   fd_load_min(minZ,2)
   fd_test_switch_condition(intA<minZ,max_x_a_eq_z_case_group_1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_switch_1,-1,0)
   fd_add_dependency(2,min)
   fd_call_internal_and_test_switch(max_x_a_eq_z_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for max_x_a_eq_z */

fd_begin_user_constraint(max_x_a_eq_z(FdArg(X),FdArg(A),FdArg(Z)))

   fd_create_a_frame(6)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Z,2)

   fd_before_add_constraint
   fd_call_internal(max_x_a_eq_z_bloc_1_inst)
   fd_call_internal(max_x_a_eq_z_bloc_2_inst)
   fd_call_internal(max_x_a_eq_z_bloc_3_inst)
   fd_call_internal(max_x_a_eq_z_bloc_4)
   fd_call_internal_and_test_switch_simple(max_x_a_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: max_x_y_eq_z_F */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(max_x_y_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_F_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(max_x_y_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(max_x_y_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_F_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,min)
   fd_call_internal(max_x_y_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(max_x_y_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)

   fd_load_max(maxZ,2)
   fd_tell_interval(0,0,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_F_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,max)
   fd_call_internal(max_x_y_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(max_x_y_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minY)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_F_bloc_4,2,1)
   fd_cf_in_a_frame(6)
   fd_add_dependency(1,min)
   fd_call_internal(max_x_y_eq_z_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(max_x_y_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)

   fd_load_max(maxZ,2)
   fd_tell_interval(1,0,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_5_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_y_eq_z_F_bloc_5,1,1)
   fd_cf_in_a_frame(7)
   fd_add_dependency(2,max)
   fd_call_internal(max_x_y_eq_z_F_bloc_5)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(max_x_y_eq_z_F_bloc_6)

   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(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_6_inst)

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

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(max_x_y_eq_z_F_bloc_7)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_7_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(max_x_y_eq_z_F_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(max_x_y_eq_z_F_bloc_6_inst)
   fd_call_internal(max_x_y_eq_z_F_bloc_7_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(max_x_y_eq_z_F_bloc_8)

   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(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_8_inst)

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

fd_end_internal


	/* Bloc #9 */

fd_begin_internal(max_x_y_eq_z_F_bloc_9)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_bloc_9_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(max_x_y_eq_z_F_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_stop_constraint(6)
   fd_stop_constraint(7)
   fd_call_internal(max_x_y_eq_z_F_bloc_8_inst)
   fd_call_internal(max_x_y_eq_z_F_bloc_9_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,1)
   fd_load_dom(2,2)
   fd_load_dom(0,0)
   fd_range_copy(3,1)
   fd_range_copy(1,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(3),range_arg(1)),max_x_y_eq_z_F_case_group_1)
   fd_range_copy(1,0)
   fd_range_copy(0,2)
   fd_test_switch_condition(Range_Test_Null_Inter(range_arg(1),range_arg(0)),max_x_y_eq_z_F_case_group_2)
 fd_exit_point
   fd_deallocate
   fd_return

fd_end_internal

fd_begin_internal(max_x_y_eq_z_F_switch_1_inst)

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

fd_end_internal


	/* Entry point for max_x_y_eq_z_F */

fd_begin_user_constraint(max_x_y_eq_z_F(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(max_x_y_eq_z_F_bloc_1_inst)
   fd_call_internal(max_x_y_eq_z_F_bloc_2_inst)
   fd_call_internal(max_x_y_eq_z_F_bloc_3_inst)
   fd_call_internal(max_x_y_eq_z_F_bloc_4_inst)
   fd_call_internal(max_x_y_eq_z_F_bloc_5_inst)
   fd_call_internal_and_test_switch_simple(max_x_y_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------*/
	/* User constraint: max_x_a_eq_z_F */
	/*---------------------------------*/


	/* Bloc #1 */

fd_begin_internal(max_x_a_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_int(intA,1)
   fd_range_copy(0,1)
   fd_range_set_value(0,intA)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_F_bloc_1,2,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(0,dom)
   fd_call_internal(max_x_a_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(max_x_a_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)

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

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_F_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,min)
   fd_call_internal(max_x_a_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(max_x_a_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)

   fd_load_max(maxZ,2)
   fd_tell_interval(0,0,maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_F_bloc_3,0,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(2,max)
   fd_call_internal(max_x_a_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(max_x_a_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)

   fd_load_int(intA,1)
   fd_tell_interval(2,intA,max_integer)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(max_x_a_eq_z_F_bloc_5)

   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(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(max_x_a_eq_z_F_bloc_6)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_bloc_6_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(max_x_a_eq_z_F_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(max_x_a_eq_z_F_bloc_5_inst)
   fd_call_internal(max_x_a_eq_z_F_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minZ)

   fd_load_int(intA,1)
   fd_load_min(minZ,2)
   fd_test_switch_condition(intA<minZ,max_x_a_eq_z_F_case_group_1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(max_x_a_eq_z_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(max_x_a_eq_z_F_switch_1,-1,0)
   fd_add_dependency(2,min)
   fd_call_internal_and_test_switch(max_x_a_eq_z_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for max_x_a_eq_z_F */

fd_begin_user_constraint(max_x_a_eq_z_F(FdArg(X),FdArg(A),FdArg(Z)))

   fd_create_a_frame(6)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Z,2)

   fd_before_add_constraint
   fd_call_internal(max_x_a_eq_z_F_bloc_1_inst)
   fd_call_internal(max_x_a_eq_z_F_bloc_2_inst)
   fd_call_internal(max_x_a_eq_z_F_bloc_3_inst)
   fd_call_internal(max_x_a_eq_z_F_bloc_4)
   fd_call_internal_and_test_switch_simple(max_x_a_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------------*/
	/* User constraint: abs_x_minus_y_eq_z */
	/*-------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_range_interval(0,minY+minZ,maxY+maxZ)
   fd_range_interval(1,minY-maxZ,maxY-minZ)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_y_eq_z_bloc_1,0,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(1,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,2)
   fd_range_interval(0,minX+minZ,maxX+maxZ)
   fd_range_interval(1,minX-maxZ,maxX-minZ)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_y_eq_z_bloc_2,1,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,min_max)
   fd_add_dependency(2,min_max)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_3)

   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_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minY,maxY,1)
   fd_range_interval(0,minX-maxY,maxX-minY)
   fd_range_interval(1,minY-maxX,maxY-minX)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_y_eq_z_bloc_3,2,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(0,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minY+minZ,maxY+maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_4_inst)

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

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(1,minX-maxZ,maxX-minZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_6)

   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,minX-maxY,maxX-minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_6_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(abs_x_minus_y_eq_z_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_4_inst)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_5_inst)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_7)

   fd_local_fdv_adr
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,minY-maxZ,maxY-minZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_7_inst)

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

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_8)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(1,minX+minZ,maxX+maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_8_inst)

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

fd_end_internal


	/* Bloc #9 */

fd_begin_internal(abs_x_minus_y_eq_z_bloc_9)

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

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_bloc_9_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(abs_x_minus_y_eq_z_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_7_inst)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_8_inst)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_9_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_switch_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_test_switch_condition(minX>=maxY,abs_x_minus_y_eq_z_case_group_1)
   fd_test_switch_condition(minY>=maxX,abs_x_minus_y_eq_z_case_group_2)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_switch_1_inst)

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

fd_end_internal


	/* Entry point for abs_x_minus_y_eq_z */

fd_begin_user_constraint(abs_x_minus_y_eq_z(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(abs_x_minus_y_eq_z_bloc_1_inst)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_2_inst)
   fd_call_internal(abs_x_minus_y_eq_z_bloc_3_inst)
   fd_call_internal_and_test_switch_simple(abs_x_minus_y_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*-------------------------------------*/
	/* User constraint: abs_x_minus_a_eq_z */
	/*-------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(abs_x_minus_a_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_int(intA,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_range_interval(0,intA+minZ,intA+maxZ)
   fd_range_interval(1,intA-maxZ,intA-minZ)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_a_eq_z_bloc_1,0,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(2,min_max)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(abs_x_minus_a_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

   fd_allocate
   fd_load_min_max(minX,maxX,0)
   fd_load_int(intA,1)
   fd_range_interval(0,minX-intA,maxX-intA)
   fd_range_interval(1,intA-maxX,intA-minX)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_a_eq_z_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,min_max)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(abs_x_minus_a_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_int(intA,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,intA+minZ,intA+maxZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(abs_x_minus_a_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intA)

   fd_load_min_max(minX,maxX,0)
   fd_load_int(intA,1)
   fd_tell_interval(2,minX-intA,maxX-intA)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_bloc_4_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(abs_x_minus_a_eq_z_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_3_inst)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(abs_x_minus_a_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_int(intA,1)
   fd_load_min_max(minZ,maxZ,2)
   fd_tell_interval(0,intA-maxZ,intA-minZ)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(abs_x_minus_a_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minX)
   fd_local_value_var(maxX)

   fd_load_int(intA,1)
   fd_load_min_max(minX,maxX,0)
   fd_tell_interval(2,intA-maxX,intA-minX)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_bloc_6_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(abs_x_minus_a_eq_z_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_5_inst)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intA)

   fd_load_min_max(minX,maxX,0)
   fd_load_int(intA,1)
   fd_test_switch_condition(minX>=intA,abs_x_minus_a_eq_z_case_group_1)
   fd_test_switch_condition(intA>=maxX,abs_x_minus_a_eq_z_case_group_2)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_switch_1_inst)

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

fd_end_internal


	/* Entry point for abs_x_minus_a_eq_z */

fd_begin_user_constraint(abs_x_minus_a_eq_z(FdArg(X),FdArg(A),FdArg(Z)))

   fd_create_a_frame(5)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Z,2)

   fd_before_add_constraint
   fd_call_internal(abs_x_minus_a_eq_z_bloc_1_inst)
   fd_call_internal(abs_x_minus_a_eq_z_bloc_2_inst)
   fd_call_internal_and_test_switch_simple(abs_x_minus_a_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------------*/
	/* User constraint: abs_x_minus_y_eq_z_F */
	/*---------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(2,1)
   fd_load_dom(3,2)
   fd_range_copy(0,2)
   fd_range_copy(1,3)
   fd_range_add_range(0,1)
   fd_range_copy(1,2)
   fd_range_copy(2,3)
   fd_range_sub_range(1,2)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_y_eq_z_F_bloc_1,0,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(1,dom)
   fd_add_dependency(2,dom)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(2,0)
   fd_load_dom(3,2)
   fd_range_copy(0,2)
   fd_range_copy(1,3)
   fd_range_add_range(0,1)
   fd_range_copy(1,2)
   fd_range_copy(2,3)
   fd_range_sub_range(1,2)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_y_eq_z_F_bloc_2,1,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,dom)
   fd_add_dependency(2,dom)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(3,0)
   fd_load_dom(2,1)
   fd_range_copy(0,3)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_copy(2,3)
   fd_range_sub_range(1,2)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_y_eq_z_F_bloc_3,2,1)
   fd_cf_in_a_frame(5)
   fd_add_dependency(0,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_4_inst)

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

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_6)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_6_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(abs_x_minus_y_eq_z_F_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_4_inst)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_5_inst)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_7)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_7_inst)

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

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_8)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_8_inst)

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

fd_end_internal


	/* Bloc #9 */

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_9)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

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

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_bloc_9_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(abs_x_minus_y_eq_z_F_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_stop_constraint(5)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_7_inst)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_8_inst)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_9_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_switch_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_test_switch_condition(minX>=maxY,abs_x_minus_y_eq_z_F_case_group_1)
   fd_test_switch_condition(minY>=maxX,abs_x_minus_y_eq_z_F_case_group_2)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_y_eq_z_F_switch_1_inst)

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

fd_end_internal


	/* Entry point for abs_x_minus_y_eq_z_F */

fd_begin_user_constraint(abs_x_minus_y_eq_z_F(FdArg(X),FdArg(Y),FdArg(Z)))

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

   fd_before_add_constraint
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_1_inst)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_2_inst)
   fd_call_internal(abs_x_minus_y_eq_z_F_bloc_3_inst)
   fd_call_internal_and_test_switch_simple(abs_x_minus_y_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*---------------------------------------*/
	/* User constraint: abs_x_minus_a_eq_z_F */
	/*---------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(3,2)
   fd_load_int(intA,1)
   fd_range_copy(0,3)
   fd_range_add_value(0,intA)
   fd_range_interval(1,intA,intA)
   fd_range_copy(2,3)
   fd_range_sub_range(1,2)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_a_eq_z_F_bloc_1,0,1)
   fd_cf_in_a_frame(3)
   fd_add_dependency(2,dom)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(3,0)
   fd_load_int(intA,1)
   fd_range_copy(0,3)
   fd_range_sub_value(0,intA)
   fd_range_interval(1,intA,intA)
   fd_range_copy(2,3)
   fd_range_sub_range(1,2)
   fd_range_union(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_2_inst)

   fd_local_cf_pointer
   fd_create_c_frame(abs_x_minus_a_eq_z_F_bloc_2,2,1)
   fd_cf_in_a_frame(4)
   fd_add_dependency(0,dom)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_2)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)

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

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_4_inst)

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

fd_end_internal


	/* Group of case #1 */

fd_begin_internal(abs_x_minus_a_eq_z_F_case_group_1)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_3_inst)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_4_inst)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_int(intA,1)
   fd_load_dom(2,2)
   fd_range_interval(0,intA,intA)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_int(intA,1)
   fd_load_dom(2,0)
   fd_range_interval(0,intA,intA)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_bloc_6_inst)

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

fd_end_internal


	/* Group of case #2 */

fd_begin_internal(abs_x_minus_a_eq_z_F_case_group_2)

   fd_stop_constraint(3)
   fd_stop_constraint(4)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_5_inst)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(intA)

   fd_load_min_max(minX,maxX,0)
   fd_load_int(intA,1)
   fd_test_switch_condition(minX>=intA,abs_x_minus_a_eq_z_F_case_group_1)
   fd_test_switch_condition(intA>=maxX,abs_x_minus_a_eq_z_F_case_group_2)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(abs_x_minus_a_eq_z_F_switch_1_inst)

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

fd_end_internal


	/* Entry point for abs_x_minus_a_eq_z_F */

fd_begin_user_constraint(abs_x_minus_a_eq_z_F(FdArg(X),FdArg(A),FdArg(Z)))

   fd_create_a_frame(5)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(Z,2)

   fd_before_add_constraint
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_1_inst)
   fd_call_internal(abs_x_minus_a_eq_z_F_bloc_2_inst)
   fd_call_internal_and_test_switch_simple(abs_x_minus_a_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------------*/
	/* User constraint: quot_rem_x_y_r_eq_z */
	/*--------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minR)

   fd_load_min(minR,2)
   fd_tell_interval(1,minR+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_3)

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

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minR,maxR,2)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(3,DivUp(minX-maxR,maxY),DivDn(maxX-minR,minY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_4)

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

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,3)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,minX-maxZ*maxY,maxX-minZ*minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_4_inst)

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

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)
   fd_local_value_var(minR)
   fd_local_value_var(maxR)

   fd_load_min_max(minZ,maxZ,3)
   fd_load_min_max(minY,maxY,1)
   fd_load_min_max(minR,maxR,2)
   fd_tell_interval(0,minZ*minY+minR,maxZ*maxY+maxR)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxZ)

   fd_load_min(minX,0)
   fd_load_max(maxZ,3)
   fd_tell_interval(1,DivDn(minX,maxZ+1)+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_6_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_x_y_r_eq_z_bloc_6,1,1)
   fd_add_dependency(0,min)
   fd_add_dependency(3,max)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_7)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)
   fd_local_value_var(maxY)

   fd_load_max(maxZ,3)
   fd_load_max(maxY,1)
   fd_tell_interval(0,0,(maxZ+1)*maxY-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_7_inst)

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

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_8)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minR)
   fd_local_value_var(maxR)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minR,maxR,2)
   fd_load_min_max(minZ,maxZ,3)
   fd_tell_interval(1,DivUp(minX-maxR,maxZ),DivDn(maxX-minR,minZ))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_bloc_8_inst)

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

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,3)
   fd_test_switch_condition(minZ>0,quot_rem_x_y_r_eq_z_bloc_8_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_x_y_r_eq_z_switch_1,-1,0)
   fd_add_dependency(3,min)
   fd_call_internal_and_test_switch(quot_rem_x_y_r_eq_z_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for quot_rem_x_y_r_eq_z */

fd_begin_user_constraint(quot_rem_x_y_r_eq_z(FdArg(X),FdArg(Y),FdArg(R),FdArg(Z)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(R,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_1_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_2_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_3_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_4_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_5_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_6_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_bloc_7_inst)
   fd_call_internal_and_test_switch_simple(quot_rem_x_y_r_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------------*/
	/* User constraint: quot_rem_a_y_r_eq_z */
	/*--------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minR)

   fd_load_min(minR,2)
   fd_tell_interval(1,minR+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(maxZ)

   fd_load_int(intA,0)
   fd_load_max(maxZ,3)
   fd_tell_interval(1,DivDn(intA,maxZ+1)+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_bloc_3,1,1)
   fd_add_dependency(3,max)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minR)
   fd_local_value_var(maxR)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_int(intA,0)
   fd_load_min_max(minR,maxR,2)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(3,DivUp(intA-maxR,maxY),DivDn(intA-minR,minY))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_bloc_4,3,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(minY)
   fd_local_value_var(maxY)

   fd_load_int(intA,0)
   fd_load_min_max(minZ,maxZ,3)
   fd_load_min_max(minY,maxY,1)
   fd_tell_interval(2,intA-maxZ*maxY,intA-minZ*minY)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_5_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_bloc_5,2,1)
   fd_add_dependency(3,min_max)
   fd_add_dependency(1,min_max)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_5)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(minR)
   fd_local_value_var(maxR)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)

   fd_load_int(intA,0)
   fd_load_min_max(minR,maxR,2)
   fd_load_min_max(minZ,maxZ,3)
   fd_tell_interval(1,DivUp(intA-maxR,maxZ),DivDn(intA-minR,minZ))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_bloc_6_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_bloc_6,1,1)
   fd_add_dependency(2,min_max)
   fd_add_dependency(3,min_max)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,3)
   fd_test_switch_condition(minZ>0,quot_rem_a_y_r_eq_z_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_switch_1,-1,0)
   fd_add_dependency(3,min)
   fd_call_internal_and_test_switch(quot_rem_a_y_r_eq_z_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for quot_rem_a_y_r_eq_z */

fd_begin_user_constraint(quot_rem_a_y_r_eq_z(FdArg(A),FdArg(Y),FdArg(R),FdArg(Z)))

   fd_create_a_frame(4)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(R,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_1_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_2_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_3_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_4_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_bloc_5_inst)
   fd_call_internal_and_test_switch_simple(quot_rem_a_y_r_eq_z_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*--------------------------------------*/
	/* User constraint: quot_rem_x_a_r_eq_z */
	/*--------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)

   fd_load_int(intA,1)
   fd_tell_interval(2,0,intA-1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minR)
   fd_local_value_var(maxR)
   fd_local_value_var(intA)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minR,maxR,2)
   fd_load_int(intA,1)
   fd_tell_interval(3,DivUp(minX-maxR,intA),DivDn(maxX-minR,intA))
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxX)
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)

   fd_load_min_max(minX,maxX,0)
   fd_load_min_max(minZ,maxZ,3)
   fd_load_int(intA,1)
   fd_tell_interval(2,minX-maxZ*intA,maxX-minZ*intA)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(minZ)
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)
   fd_local_value_var(minR)
   fd_local_value_var(maxR)

   fd_load_min_max(minZ,maxZ,3)
   fd_load_int(intA,1)
   fd_load_min_max(minR,maxR,2)
   fd_tell_interval(0,minZ*intA+minR,maxZ*intA+maxR)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_4_inst)

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

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)

   fd_load_max(maxZ,3)
   fd_load_int(intA,1)
   fd_tell_interval(0,0,(maxZ+1)*intA-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_bloc_5_inst)

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

fd_end_internal


	/* Entry point for quot_rem_x_a_r_eq_z */

fd_begin_user_constraint(quot_rem_x_a_r_eq_z(FdArg(X),FdArg(A),FdArg(R),FdArg(Z)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(R,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(quot_rem_x_a_r_eq_z_bloc_1)
   fd_call_internal(quot_rem_x_a_r_eq_z_bloc_2_inst)
   fd_call_internal(quot_rem_x_a_r_eq_z_bloc_3_inst)
   fd_call_internal(quot_rem_x_a_r_eq_z_bloc_4_inst)
   fd_call_internal(quot_rem_x_a_r_eq_z_bloc_5_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------------*/
	/* User constraint: quot_rem_x_y_r_eq_z_F */
	/*----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minR)

   fd_load_min(minR,2)
   fd_tell_interval(1,minR+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_dom(3,2)
   fd_load_dom(2,1)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_div_range(0,1)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_dom(2,3)
   fd_load_dom(3,1)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_copy(2,3)
   fd_range_mul_range(1,2)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_4_inst)

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

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,3)
   fd_load_dom(3,1)
   fd_load_dom(2,2)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_mul_range(0,1)
   fd_range_copy(1,2)
   fd_range_add_range(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_5_inst)

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

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(minX)
   fd_local_value_var(maxZ)

   fd_load_min(minX,0)
   fd_load_max(maxZ,3)
   fd_tell_interval(1,DivDn(minX,maxZ+1)+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_6_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_x_y_r_eq_z_F_bloc_6,1,1)
   fd_add_dependency(0,min)
   fd_add_dependency(3,max)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #7 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_7)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)
   fd_local_value_var(maxY)

   fd_load_max(maxZ,3)
   fd_load_max(maxY,1)
   fd_tell_interval(0,0,(maxZ+1)*maxY-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_7_inst)

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

fd_end_internal


	/* Bloc #8 */

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_8)

   fd_local_fdv_adr
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_dom(3,2)
   fd_load_dom(2,3)
   fd_range_copy(0,1)
   fd_range_copy(1,3)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_div_range(0,1)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_bloc_8_inst)

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

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,3)
   fd_test_switch_condition(minZ>0,quot_rem_x_y_r_eq_z_F_bloc_8_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_y_r_eq_z_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_x_y_r_eq_z_F_switch_1,-1,0)
   fd_add_dependency(3,min)
   fd_call_internal_and_test_switch(quot_rem_x_y_r_eq_z_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for quot_rem_x_y_r_eq_z_F */

fd_begin_user_constraint(quot_rem_x_y_r_eq_z_F(FdArg(X),FdArg(Y),FdArg(R),FdArg(Z)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(R,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_1_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_2_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_3_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_4_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_5_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_6_inst)
   fd_call_internal(quot_rem_x_y_r_eq_z_F_bloc_7_inst)
   fd_call_internal_and_test_switch_simple(quot_rem_x_y_r_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------------*/
	/* User constraint: quot_rem_a_y_r_eq_z_F */
	/*----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(minR)

   fd_load_min(minR,2)
   fd_tell_interval(1,minR+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_1_inst)

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

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(maxY)

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

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_value_var(maxZ)

   fd_load_int(intA,0)
   fd_load_max(maxZ,3)
   fd_tell_interval(1,DivDn(intA,maxZ+1)+1,max_integer)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_3_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_F_bloc_3,1,1)
   fd_add_dependency(3,max)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_3)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_int(intA,0)
   fd_load_dom(3,2)
   fd_load_dom(2,1)
   fd_range_interval(0,intA,intA)
   fd_range_copy(1,3)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_div_range(0,1)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_4_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_F_bloc_4,3,1)
   fd_add_dependency(2,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_4)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_int(intA,0)
   fd_load_dom(2,3)
   fd_load_dom(3,1)
   fd_range_interval(0,intA,intA)
   fd_range_copy(1,2)
   fd_range_copy(2,3)
   fd_range_mul_range(1,2)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_5_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_F_bloc_5,2,1)
   fd_add_dependency(3,dom)
   fd_add_dependency(1,dom)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_5)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #6 */

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_6)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)
   fd_local_range_var(3)

   fd_allocate
   fd_load_int(intA,0)
   fd_load_dom(3,2)
   fd_load_dom(2,3)
   fd_range_interval(0,intA,intA)
   fd_range_copy(1,3)
   fd_range_sub_range(0,1)
   fd_range_copy(1,2)
   fd_range_div_range(0,1)
   fd_deallocate
   fd_tell_range(1,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_bloc_6_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_F_bloc_6,1,1)
   fd_add_dependency(2,dom)
   fd_add_dependency(3,dom)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_6)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_switch_1)

   fd_local_fdv_adr
   fd_local_value_var(minZ)

   fd_load_min(minZ,3)
   fd_test_switch_condition(minZ>0,quot_rem_a_y_r_eq_z_F_bloc_6_inst)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_a_y_r_eq_z_F_switch_1_inst)

   fd_local_cf_pointer
   fd_create_c_frame(quot_rem_a_y_r_eq_z_F_switch_1,-1,0)
   fd_add_dependency(3,min)
   fd_call_internal_and_test_switch(quot_rem_a_y_r_eq_z_F_switch_1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Entry point for quot_rem_a_y_r_eq_z_F */

fd_begin_user_constraint(quot_rem_a_y_r_eq_z_F(FdArg(A),FdArg(Y),FdArg(R),FdArg(Z)))

   fd_create_a_frame(4)
   fd_int_in_a_frame(A,0)
   fd_fdv_in_a_frame(Y,1)
   fd_fdv_in_a_frame(R,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_1_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_2_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_3_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_4_inst)
   fd_call_internal(quot_rem_a_y_r_eq_z_F_bloc_5_inst)
   fd_call_internal_and_test_switch_simple(quot_rem_a_y_r_eq_z_F_switch_1_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint


	/*----------------------------------------*/
	/* User constraint: quot_rem_x_a_r_eq_z_F */
	/*----------------------------------------*/


	/* Bloc #1 */

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_1)

   fd_local_fdv_adr
   fd_local_value_var(intA)

   fd_load_int(intA,1)
   fd_tell_interval(2,0,intA-1)
 fd_exit_point
   fd_return

fd_end_internal


	/* Bloc #2 */

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_2)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_dom(2,2)
   fd_load_int(intA,1)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_sub_range(0,1)
   fd_range_div_value(0,intA)
   fd_deallocate
   fd_tell_range(3,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_2_inst)

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

fd_end_internal


	/* Bloc #3 */

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_3)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,0)
   fd_load_dom(2,3)
   fd_load_int(intA,1)
   fd_range_copy(0,1)
   fd_range_copy(1,2)
   fd_range_mul_value(1,intA)
   fd_range_sub_range(0,1)
   fd_deallocate
   fd_tell_range(2,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_3_inst)

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

fd_end_internal


	/* Bloc #4 */

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_4)

   fd_local_fdv_adr
   fd_local_value_var(intA)
   fd_local_range_var(0)
   fd_local_range_var(1)
   fd_local_range_var(2)

   fd_allocate
   fd_load_dom(1,3)
   fd_load_int(intA,1)
   fd_load_dom(2,2)
   fd_range_copy(0,1)
   fd_range_mul_value(0,intA)
   fd_range_copy(1,2)
   fd_range_add_range(0,1)
   fd_deallocate
   fd_tell_range(0,0)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_4_inst)

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

fd_end_internal


	/* Bloc #5 */

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_5)

   fd_local_fdv_adr
   fd_local_value_var(maxZ)
   fd_local_value_var(intA)

   fd_load_max(maxZ,3)
   fd_load_int(intA,1)
   fd_tell_interval(0,0,(maxZ+1)*intA-1)
 fd_exit_point
   fd_return

fd_end_internal

fd_begin_internal(quot_rem_x_a_r_eq_z_F_bloc_5_inst)

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

fd_end_internal


	/* Entry point for quot_rem_x_a_r_eq_z_F */

fd_begin_user_constraint(quot_rem_x_a_r_eq_z_F(FdArg(X),FdArg(A),FdArg(R),FdArg(Z)))

   fd_create_a_frame(4)
   fd_fdv_in_a_frame(X,0)
   fd_int_in_a_frame(A,1)
   fd_fdv_in_a_frame(R,2)
   fd_fdv_in_a_frame(Z,3)

   fd_before_add_constraint
   fd_call_internal(quot_rem_x_a_r_eq_z_F_bloc_1)
   fd_call_internal(quot_rem_x_a_r_eq_z_F_bloc_2_inst)
   fd_call_internal(quot_rem_x_a_r_eq_z_F_bloc_3_inst)
   fd_call_internal(quot_rem_x_a_r_eq_z_F_bloc_4_inst)
   fd_call_internal(quot_rem_x_a_r_eq_z_F_bloc_5_inst)
   fd_after_add_constraint
 fd_exit_point
   fd_return

fd_end_user_constraint

