/*
** Automatically generated from `const_prop.m'
** by the Mercury compiler,
** version rotd-2023-03-31
** configured for x86_64-pc-linux-gnu.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=2
** UNBOXED_FLOAT=no
** UNBOXED_INT64S=no
** PREGENERATED_DIST=yes
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


// :- module transform_hlds.const_prop.
// :- implementation.

/*
INIT mercury__transform_hlds__const_prop__init
ENDINIT
*/

#include "transform_hlds.const_prop.mih"


#include "array.mih"
#include "assoc_list.mih"
#include "bimap.mih"
#include "bitmap.mih"
#include "bool.mih"
#include "builtin.mih"
#include "char.mih"
#include "check_hlds.mih"
#include "construct.mih"
#include "cord.mih"
#include "counter.mih"
#include "deconstruct.mih"
#include "enum.mih"
#include "float.mih"
#include "getopt.mih"
#include "hlds.mih"
#include "int.mih"
#include "int16.mih"
#include "int32.mih"
#include "int64.mih"
#include "int8.mih"
#include "io.mih"
#include "libs.mih"
#include "list.mih"
#include "map.mih"
#include "maybe.mih"
#include "mdbcomp.mih"
#include "one_or_more.mih"
#include "one_or_more_map.mih"
#include "ops.mih"
#include "pair.mih"
#include "parse_tree.mih"
#include "pretty_printer.mih"
#include "private_builtin.mih"
#include "set.mih"
#include "set_ordlist.mih"
#include "stream.mih"
#include "string.mih"
#include "term.mih"
#include "term_context.mih"
#include "time.mih"
#include "transform_hlds.mih"
#include "tree234.mih"
#include "type_desc.mih"
#include "uint.mih"
#include "uint16.mih"
#include "uint32.mih"
#include "uint64.mih"
#include "uint8.mih"
#include "unit.mih"
#include "univ.mih"
#include "varset.mih"
#include "check_hlds.mode_errors.mih"
#include "check_hlds.mode_info.mih"
#include "hlds.goal_mode.mih"
#include "hlds.hlds_class.mih"
#include "hlds.hlds_data.mih"
#include "hlds.hlds_goal.mih"
#include "hlds.hlds_llds.mih"
#include "hlds.hlds_module.mih"
#include "hlds.hlds_pred.mih"
#include "hlds.instmap.mih"
#include "hlds.make_goal.mih"
#include "libs.globals.mih"
#include "libs.int_emu.mih"
#include "libs.op_mode.mih"
#include "libs.optimization_options.mih"
#include "libs.options.mih"
#include "libs.trace_params.mih"
#include "libs.uint_emu.mih"
#include "mdbcomp.feedback.mih"
#include "mdbcomp.goal_path.mih"
#include "mdbcomp.prim_data.mih"
#include "mdbcomp.sym_name.mih"
#include "parse_tree.prog_data.mih"
#include "parse_tree.prog_data_foreign.mih"
#include "parse_tree.prog_data_pragma.mih"
#include "parse_tree.prog_item.mih"
#include "parse_tree.prog_rename.mih"
#include "parse_tree.prog_type.mih"
#include "parse_tree.set_of_var.mih"
#include "parse_tree.var_table.mih"




static const MR_FA_PseudoTypeInfo_Struct1 transform_hlds__const_prop__term__pti_var_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_FA_TypeInfo_Struct1 transform_hlds__const_prop__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_PseudoTypeInfo transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_hlds_info_0_0[3];

static const MR_ConstString transform_hlds__const_prop__transform_hlds__const_prop__field_names_arg_hlds_info_0_0[3];

static const MR_DuFunctorDesc transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_hlds_info_0_0;

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_hlds_info_0_0[1];

static const MR_DuPtagLayout transform_hlds__const_prop__transform_hlds__const_prop__du_ptag_ordered_arg_hlds_info_0[1];

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_name_ordered_arg_hlds_info_0[1];

static const MR_Integer transform_hlds__const_prop__transform_hlds__const_prop__functor_number_map_arg_hlds_info_0[1];

static const MR_PseudoTypeInfo transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_val_0_0[1];

static const MR_DuFunctorDesc transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_0;

static const MR_PseudoTypeInfo transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_val_0_1[1];

static const MR_DuFunctorDesc transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_1;

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_val_0_0[1];

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_val_0_1[1];

static const MR_DuPtagLayout transform_hlds__const_prop__transform_hlds__const_prop__du_ptag_ordered_arg_val_0[2];

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_name_ordered_arg_val_0[2];

static const MR_Integer transform_hlds__const_prop__transform_hlds__const_prop__functor_number_map_arg_val_0[2];

static MR_Word MR_CALL 
transform_hlds__const_prop__IntroducedFrom__func__evaluate_call__89__1_3_f_0(
  MR_Word VarTable_12,
  MR_Word InstMap_13,
  MR_Word LambdaHeadVar__1_27);

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_val_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_val_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_hlds_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_Box MR_CALL 
transform_hlds__const_prop__evaluate_call_10_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_call_2_8_p_0(
  MR_Word Globals_9,
  MR_String ModuleName_10,
  MR_String Pred_11,
  MR_Integer ModeNum_12,
  MR_Word Args_13,
  MR_Word * GoalExpr_14,
  MR_Word STATE_VARIABLE_GoalInfo_0_21,
  MR_Word * STATE_VARIABLE_GoalInfo_22);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_semidet_call_5_p_0(
  MR_String HeadVar__1_1,
  MR_String HeadVar__2_2,
  MR_Integer HeadVar__3_3,
  MR_Word Args_4,
  MR_Word * Result_5);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_test_5_p_0(
  MR_String ModuleName_6,
  MR_String PredName_7,
  MR_Integer ModeNum_8,
  MR_Word Args_9,
  MR_Word * Result_10);

static MR_bool MR_CALL 
transform_hlds__const_prop__eval_unify_3_p_0(
  MR_Word X_4,
  MR_Word Y_5,
  MR_Word * Result_6);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_7_p_0(
  MR_Word Globals_8,
  MR_String ModuleName_9,
  MR_String ProcName_10,
  MR_Integer ModeNum_11,
  MR_Word Args_12,
  MR_Word * OutputArg_13,
  MR_Word * OutputArgVal_14);

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_115_116_114_105_110_103_95_51_95_95_91_49_93_95_48_8_p_0(
  MR_String ProcName_10,
  MR_Integer ModeNum_11,
  MR_Word X_12,
  MR_Word Y_13,
  MR_Word Z_14,
  MR_Word * OutputArg_15,
  MR_Word * HeadVar__8_8);

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_102_108_111_97_116_95_51_95_95_91_49_93_95_48_8_p_0(
  MR_String ProcName_10,
  MR_Integer ModeNum_11,
  MR_Word X_12,
  MR_Word Y_13,
  MR_Word Z_14,
  MR_Word * OutputArg_15,
  MR_Word * HeadVar__8_8);

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_115_116_114_105_110_103_95_50_95_95_91_49_93_95_48_7_p_0(
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * OutputArgVal_14);

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_102_108_111_97_116_95_50_95_95_91_49_93_95_48_7_p_0(
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_3_mode_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_3_mode_1_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_3_mode_0_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_3_mode_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_hlds_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_3_mode_1_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_3_mode_0_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_1_6_p_0(
  MR_Word Globals_7,
  MR_String ProcName_8,
  MR_Integer ModeNum_9,
  MR_Word X_10,
  MR_Word * OutputArg_11,
  MR_Word * ConsId_12);

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_1_6_p_0(
  MR_Word Globals_7,
  MR_String ProcName_8,
  MR_Integer ModeNum_9,
  MR_Word X_10,
  MR_Word * OutputArg_11,
  MR_Word * HeadVar__6_6);

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_hlds_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_hlds_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_val_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_val_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);


static /* final */ const MR_Box transform_hlds__const_prop_scalar_common_1[3][2];

static /* final */ const MR_Box transform_hlds__const_prop_scalar_common_4[1][7];


struct transform_hlds__const_prop__vector_common_type_2_0_s {
  const MR_String transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0;
  const MR_Integer transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1;
};

static /* final */ const struct transform_hlds__const_prop__vector_common_type_2_0_s transform_hlds__const_prop_vector_common_2[68];

struct transform_hlds__const_prop__vector_common_type_3_0_s {
  const MR_String transform_hlds__const_prop__vector_common_type_3_0__vct_3_f_0;
};

static /* final */ const struct transform_hlds__const_prop__vector_common_type_3_0_s transform_hlds__const_prop_vector_common_3[64];



static /* final */ const MR_Box transform_hlds__const_prop_scalar_common_1[3][2] = {
  /* row   0 */
  {
    ((MR_Box) (&mercury__term__term__type_ctor_info_var_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0))
  },
  /* row   1 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0))
  },
  /* row   2 */
  {
    ((MR_Box) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
};

static /* final */ const MR_Box transform_hlds__const_prop_scalar_common_4[1][7] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 4)),
    ((MR_Box) (&parse_tree__var_table__parse_tree__var_table__type_ctor_info_var_table_0)),
    ((MR_Box) (&hlds__instmap__hlds__instmap__type_ctor_info_instmap_0)),
    ((MR_Box) (&transform_hlds__const_prop__term__pti_var_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0)),
    ((MR_Box) (&transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_hlds_info_0))
  },
};


static /* final */ const struct transform_hlds__const_prop__vector_common_type_2_0_s transform_hlds__const_prop_vector_common_2[68] = {
  /* row   0 */
  {
    (MR_String) "+",
    (MR_Integer) 0
  },
  /* row   1 */
  {
    (MR_String) "-",
    (MR_Integer) 1
  },
  /* row   2 */
  {
    (MR_String) "\\",
    (MR_Integer) 2
  },
  /* row   3 */
  {
    (MR_String) "floor_to_multiple_of_bits_per_int",
    (MR_Integer) 3
  },
  /* row   4 */
  {
    (MR_String) "quot_bits_per_int",
    (MR_Integer) 4
  },
  /* row   5 */
  {
    (MR_String) "rem_bits_per_int",
    (MR_Integer) 5
  },
  /* row   6 */
  {
    (MR_String) "times_bits_per_int",
    (MR_Integer) 6
  },
  /* row   7 */
  {
    (MR_String) "<<u",
    (MR_Integer) 0
  },
  /* row   8 */
  {
    (MR_String) ">>u",
    (MR_Integer) 1
  },
  /* row   9 */
  {
    (MR_String) "unchecked_left_ushift",
    (MR_Integer) 0
  },
  /* row  10 */
  {
    (MR_String) "unchecked_right_ushift",
    (MR_Integer) 1
  },
  /* row  11 */
  {
    (MR_String) "<<",
    (MR_Integer) 0
  },
  /* row  12 */
  {
    (MR_String) ">>",
    (MR_Integer) 1
  },
  /* row  13 */
  {
    (MR_String) "unchecked_left_shift",
    (MR_Integer) 0
  },
  /* row  14 */
  {
    (MR_String) "unchecked_right_shift",
    (MR_Integer) 1
  },
  /* row  15 */
  {
    (MR_String) "*",
    (MR_Integer) 0
  },
  /* row  16 */
  {
    (MR_String) "+",
    (MR_Integer) 1
  },
  /* row  17 */
  {
    (MR_String) "-",
    (MR_Integer) 2
  },
  /* row  18 */
  {
    (MR_String) "/",
    (MR_Integer) 3
  },
  /* row  19 */
  {
    (MR_String) "unchecked_quotient",
    (MR_Integer) 4
  },
  /* row  20 */
  {
    (MR_String) "float",
    (MR_Integer) 0
  },
  /* row  21 */
  {
    (MR_String) "int",
    (MR_Integer) 1
  },
  /* row  22 */
  {
    (MR_String) "string",
    (MR_Integer) 2
  },
  /* row  23 */
  {
    (MR_String) "uint",
    (MR_Integer) 3
  },
  /* row  24 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  25 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  26 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  27 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  28 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  29 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  30 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  31 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  32 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  33 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  34 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  35 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  36 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  37 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  38 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  39 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  40 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  41 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  42 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  43 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  44 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  45 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  46 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  47 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  48 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  49 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  50 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  51 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  52 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  53 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  54 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  55 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  56 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  57 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  58 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  59 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  60 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  61 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  62 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  63 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
  /* row  64 */
  {
    (MR_String) "<",
    (MR_Integer) 0
  },
  /* row  65 */
  {
    (MR_String) "=<",
    (MR_Integer) 1
  },
  /* row  66 */
  {
    (MR_String) ">",
    (MR_Integer) 2
  },
  /* row  67 */
  {
    (MR_String) ">=",
    (MR_Integer) 3
  },
};

static /* final */ const struct transform_hlds__const_prop__vector_common_type_3_0_s transform_hlds__const_prop_vector_common_3[64] = {
  /* row   0 */   { NULL },
  /* row   1 */   { NULL },
  /* row   2 */   { NULL },
  /* row   3 */   { (MR_String) "uint32" },
  /* row   4 */   { NULL },
  /* row   5 */   { NULL },
  /* row   6 */   { NULL },
  /* row   7 */   { (MR_String) "int16" },
  /* row   8 */   { (MR_String) "int" },
  /* row   9 */   { NULL },
  /* row  10 */   { NULL },
  /* row  11 */   { NULL },
  /* row  12 */   { NULL },
  /* row  13 */   { (MR_String) "uint8" },
  /* row  14 */   { (MR_String) "private_builtin" },
  /* row  15 */   { NULL },
  /* row  16 */   { NULL },
  /* row  17 */   { NULL },
  /* row  18 */   { NULL },
  /* row  19 */   { NULL },
  /* row  20 */   { (MR_String) "uint" },
  /* row  21 */   { NULL },
  /* row  22 */   { NULL },
  /* row  23 */   { (MR_String) "int8" },
  /* row  24 */   { NULL },
  /* row  25 */   { NULL },
  /* row  26 */   { NULL },
  /* row  27 */   { NULL },
  /* row  28 */   { (MR_String) "uint64" },
  /* row  29 */   { NULL },
  /* row  30 */   { NULL },
  /* row  31 */   { NULL },
  /* row  32 */   { NULL },
  /* row  33 */   { (MR_String) "uint16" },
  /* row  34 */   { NULL },
  /* row  35 */   { (MR_String) "float" },
  /* row  36 */   { NULL },
  /* row  37 */   { (MR_String) "int32" },
  /* row  38 */   { NULL },
  /* row  39 */   { NULL },
  /* row  40 */   { NULL },
  /* row  41 */   { NULL },
  /* row  42 */   { NULL },
  /* row  43 */   { NULL },
  /* row  44 */   { NULL },
  /* row  45 */   { NULL },
  /* row  46 */   { NULL },
  /* row  47 */   { NULL },
  /* row  48 */   { (MR_String) "int64" },
  /* row  49 */   { NULL },
  /* row  50 */   { NULL },
  /* row  51 */   { NULL },
  /* row  52 */   { NULL },
  /* row  53 */   { NULL },
  /* row  54 */   { NULL },
  /* row  55 */   { NULL },
  /* row  56 */   { NULL },
  /* row  57 */   { NULL },
  /* row  58 */   { NULL },
  /* row  59 */   { NULL },
  /* row  60 */   { NULL },
  /* row  61 */   { NULL },
  /* row  62 */   { NULL },
  /* row  63 */   { NULL },
};


#include "array.mh"
#include "bitmap.mh"
#include "io.mh"
#include "string.mh"
#include "time.mh"
#include "io.stream_ops.mh"



static const MR_FA_PseudoTypeInfo_Struct1 transform_hlds__const_prop__term__pti_var_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__term__term__type_ctor_info_var_1,
  {
    (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0)
  }
};

static const MR_FA_TypeInfo_Struct1 transform_hlds__const_prop__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__term__term__type_ctor_info_var_1,
  {
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0)
  }
};

static const MR_PseudoTypeInfo transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_hlds_info_0_0[3] = {
  (MR_PseudoTypeInfo) (&transform_hlds__const_prop__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0)
};

static const MR_ConstString transform_hlds__const_prop__transform_hlds__const_prop__field_names_arg_hlds_info_0_0[3] = {
  (MR_String) "arg_var",
  (MR_String) "arg_type",
  (MR_String) "arg_inst"
};

static const MR_DuFunctorDesc transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_hlds_info_0_0 = {
  (MR_String) "arg_hlds_info",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_hlds_info_0_0,
  transform_hlds__const_prop__transform_hlds__const_prop__field_names_arg_hlds_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_hlds_info_0_0[1] = {
  &transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_hlds_info_0_0
};

static const MR_DuPtagLayout transform_hlds__const_prop__transform_hlds__const_prop__du_ptag_ordered_arg_hlds_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_hlds_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_name_ordered_arg_hlds_info_0[1] = {
  &transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_hlds_info_0_0
};

static const MR_Integer transform_hlds__const_prop__transform_hlds__const_prop__functor_number_map_arg_hlds_info_0[1] = {
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_hlds_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (transform_hlds__const_prop____Unify____arg_hlds_info_0_0_10001)),
  ((MR_Box) (transform_hlds__const_prop____Compare____arg_hlds_info_0_0_10001)),
  (MR_String) "transform_hlds.const_prop",
  (MR_String) "arg_hlds_info",
  { transform_hlds__const_prop__transform_hlds__const_prop__du_name_ordered_arg_hlds_info_0 },
  { transform_hlds__const_prop__transform_hlds__const_prop__du_ptag_ordered_arg_hlds_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  transform_hlds__const_prop__transform_hlds__const_prop__functor_number_map_arg_hlds_info_0,

};

static const MR_PseudoTypeInfo transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_val_0_0[1] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_cons_id_0)
};

static const MR_DuFunctorDesc transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_0 = {
  (MR_String) "const",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(0),
  transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_val_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_val_0_1[1] = {
  (MR_PseudoTypeInfo) (&transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_hlds_info_0)
};

static const MR_DuFunctorDesc transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_1 = {
  (MR_String) "var",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE_DIRECT_ARG,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(1),
  transform_hlds__const_prop__transform_hlds__const_prop__field_types_arg_val_0_1,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_val_0_0[1] = {
  &transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_1
};

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_val_0_1[1] = {
  &transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_0
};

static const MR_DuPtagLayout transform_hlds__const_prop__transform_hlds__const_prop__du_ptag_ordered_arg_val_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE_DIRECT_ARG,
    transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_val_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    transform_hlds__const_prop__transform_hlds__const_prop__du_stag_ordered_arg_val_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr transform_hlds__const_prop__transform_hlds__const_prop__du_name_ordered_arg_val_0[2] = {
  &transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_0,
  &transform_hlds__const_prop__transform_hlds__const_prop__du_functor_desc_arg_val_0_1
};

static const MR_Integer transform_hlds__const_prop__transform_hlds__const_prop__functor_number_map_arg_val_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_val_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (transform_hlds__const_prop____Unify____arg_val_0_0_10001)),
  ((MR_Box) (transform_hlds__const_prop____Compare____arg_val_0_0_10001)),
  (MR_String) "transform_hlds.const_prop",
  (MR_String) "arg_val",
  { transform_hlds__const_prop__transform_hlds__const_prop__du_name_ordered_arg_val_0 },
  { transform_hlds__const_prop__transform_hlds__const_prop__du_ptag_ordered_arg_val_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  transform_hlds__const_prop__transform_hlds__const_prop__functor_number_map_arg_val_0,

};

static MR_Word MR_CALL 
transform_hlds__const_prop__IntroducedFrom__func__evaluate_call__89__1_3_f_0(
  MR_Word VarTable_12,
  MR_Word InstMap_13,
  MR_Word LambdaHeadVar__1_27)
{
  MR_Word LambdaHeadVar__2_28;
  MR_Word Type_22;
  MR_Word Inst_23;

  parse_tree__var_table__lookup_var_type_3_p_0(VarTable_12, LambdaHeadVar__1_27, &Type_22);
  hlds__instmap__instmap_lookup_var_3_p_0(InstMap_13, LambdaHeadVar__1_27, &Inst_23);
  {
    LambdaHeadVar__2_28 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, LambdaHeadVar__2_28, 0) = ((MR_Box) (LambdaHeadVar__1_27));
    MR_hl_field(0, LambdaHeadVar__2_28, 1) = ((MR_Box) (Type_22));
    MR_hl_field(0, LambdaHeadVar__2_28, 2) = ((MR_Box) (Inst_23));
  }
  return LambdaHeadVar__2_28;
}

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_val_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1))
  {
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, (MR_Integer) 0))));

    if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
    {
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, (MR_Integer) 0))));

      parse_tree__prog_data____Compare____cons_id_0_0(HeadVar__1_1, Var_16, ArgY1_5);
    }
    else
      *HeadVar__1_1 = (MR_Integer) 1;
  }
  else
  {
    MR_Word Var_17 = (MR_Word) ((MR_Word) (HeadVar__2_2));

    if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
      *HeadVar__1_1 = (MR_Integer) 2;
    else
    {
      MR_Word ArgY1_11 = (MR_Word) ((MR_Word) (HeadVar__3_3));

      transform_hlds__const_prop____Compare____arg_hlds_info_0_0(HeadVar__1_1, Var_17, ArgY1_11);
    }
  }
}

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_val_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if (((MR_tag((MR_Word) HeadVar__1_1)) == (MR_Integer) 1))
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, (MR_Integer) 0))));
    MR_Word ArgY1_4;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
    if (succeeded)
    {
      ArgY1_4 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, (MR_Integer) 0))));
      succeeded = parse_tree__prog_data____Unify____cons_id_0_0(ArgX1_3, ArgY1_4);
    }
  }
  else
  {
    MR_Word ArgX1_5 = (MR_Word) ((MR_Word) (HeadVar__1_1));
    MR_Word ArgY1_6;
    MR_Integer CastX_16;
    MR_Integer CastY_17;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
    if (succeeded)
    {
      ArgY1_6 = (MR_Word) ((MR_Word) (HeadVar__2_2));
      CastX_16 = (MR_Integer) (ArgX1_5);
      CastY_17 = (MR_Integer) (ArgY1_6);
      succeeded = (CastX_16 == CastY_17);
      if (succeeded)
        succeeded = MR_TRUE;
      else
      {
        MR_Word ArgX1_10 = ((MR_Word) ((MR_hl_field(0, ArgX1_5, (MR_Integer) 0))));
        MR_Word ArgY1_11 = ((MR_Word) ((MR_hl_field(0, ArgY1_6, (MR_Integer) 0))));
        MR_Word ArgX2_12 = ((MR_Word) ((MR_hl_field(0, ArgX1_5, (MR_Integer) 1))));
        MR_Word ArgY2_13 = ((MR_Word) ((MR_hl_field(0, ArgY1_6, (MR_Integer) 1))));
        MR_Word ArgX3_14 = ((MR_Word) ((MR_hl_field(0, ArgX1_5, (MR_Integer) 2))));
        MR_Word ArgY3_15 = ((MR_Word) ((MR_hl_field(0, ArgY1_6, (MR_Integer) 2))));

        succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&transform_hlds__const_prop_scalar_common_1[0]), ((MR_Box) (ArgX1_10)), ((MR_Box) (ArgY1_11)));
        if (succeeded)
        {
          succeeded = parse_tree__prog_data____Unify____mer_type_0_0(ArgX2_12, ArgY2_13);
          if (succeeded)
            succeeded = parse_tree__prog_data____Unify____mer_inst_0_0(ArgX3_14, ArgY3_15);
        }
      }
    }
  }
  return succeeded;
}

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_hlds_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 2))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&transform_hlds__const_prop_scalar_common_1[0]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      parse_tree__prog_data____Compare____mer_type_0_0(&SubResult2_9, ArgX2_7, ArgY2_8);
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        parse_tree__prog_data____Compare____mer_inst_0_0(HeadVar__1_1, ArgX3_10, ArgY3_11);
    }
  }
}

static MR_Box MR_CALL 
transform_hlds__const_prop__evaluate_call_10_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_Word conv0_LambdaHeadVar__2_28;

  conv0_LambdaHeadVar__2_28 = transform_hlds__const_prop__IntroducedFrom__func__evaluate_call__89__1_3_f_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 4)))), ((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_LambdaHeadVar__2_28));
  return wrapper_arg_2;
}

MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_call_10_p_0(
  MR_Word Globals_11,
  MR_Word VarTable_12,
  MR_Word InstMap_13,
  MR_String ModuleName_14,
  MR_String ProcName_15,
  MR_Integer ModeNum_16,
  MR_Word Args_17,
  MR_Word * GoalExpr_18,
  MR_Word STATE_VARIABLE_GoalInfo_0_25,
  MR_Word * STATE_VARIABLE_GoalInfo_26)
{
  MR_bool succeeded;
  MR_Word LookupArgs_20;
  MR_Word ArgHldsInfos_24;

  {
    LookupArgs_20 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, LookupArgs_20, 0) = ((MR_Box) (&transform_hlds__const_prop_scalar_common_4[0]));
    MR_hl_field(0, LookupArgs_20, 1) = ((MR_Box) (transform_hlds__const_prop__evaluate_call_10_p_0_1));
    MR_hl_field(0, LookupArgs_20, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, LookupArgs_20, 3) = ((MR_Box) (VarTable_12));
    MR_hl_field(0, LookupArgs_20, 4) = ((MR_Box) (InstMap_13));
  }
  ArgHldsInfos_24 = mercury__list__map_2_f_0((MR_Word) (&transform_hlds__const_prop_scalar_common_1[0]), (MR_Word) (&transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_hlds_info_0), LookupArgs_20, Args_17);
  succeeded = transform_hlds__const_prop__evaluate_call_2_8_p_0(Globals_11, ModuleName_14, ProcName_15, ModeNum_16, ArgHldsInfos_24, GoalExpr_18, STATE_VARIABLE_GoalInfo_0_25, STATE_VARIABLE_GoalInfo_26);
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_call_2_8_p_0(
  MR_Word Globals_9,
  MR_String ModuleName_10,
  MR_String Pred_11,
  MR_Integer ModeNum_12,
  MR_Word Args_13,
  MR_Word * GoalExpr_14,
  MR_Word STATE_VARIABLE_GoalInfo_0_21,
  MR_Word * STATE_VARIABLE_GoalInfo_22)
{
  MR_bool succeeded;
  MR_Word OutputArg_16;
  MR_Word Cons_17;

  succeeded = transform_hlds__const_prop__evaluate_det_call_7_p_0(Globals_9, ModuleName_10, Pred_11, ModeNum_12, Args_13, &OutputArg_16, &Cons_17);
  if (succeeded)
  {
    MR_Word Delta0_36;
    MR_Word Inst_37;
    MR_Word Delta_38;
    MR_Word Var_41;
    MR_Word Var_42;
    MR_Word Var_45;
    MR_Word STATE_VARIABLE_GoalInfo_22_46;
    MR_Word Goal_50;
    MR_Word Var_52;
    MR_Word Var_53;

    Var_52 = mercury__term_context__dummy_context_0_f_0();
    Var_53 = ((MR_Word) ((MR_hl_field(0, OutputArg_16, (MR_Integer) 0))));
    hlds__make_goal__make_const_construction_4_p_0(Var_52, Var_53, Cons_17, &Goal_50);
    *GoalExpr_14 = ((MR_Word) ((MR_hl_field(0, Goal_50, (MR_Integer) 0))));
    Delta0_36 = hlds__hlds_goal__goal_info_get_instmap_delta_1_f_0(STATE_VARIABLE_GoalInfo_0_21);
    {
      Var_42 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_42, 0) = ((MR_Box) (Cons_17));
      MR_hl_field(0, Var_42, 1) = ((MR_Box) ((MR_Unsigned) 0U));
    }
    {
      Var_41 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, Var_41, 0) = ((MR_Box) (Var_42));
      MR_hl_field(1, Var_41, 1) = ((MR_Box) ((MR_Unsigned) 0U));
    }
    {
      Inst_37 = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(3, Inst_37, 0) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(3, Inst_37, 1) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
      MR_hl_field(3, Inst_37, 2) = ((MR_Box) ((MR_Unsigned) 4U));
      MR_hl_field(3, Inst_37, 3) = ((MR_Box) (Var_41));
    }
    Var_45 = ((MR_Word) ((MR_hl_field(0, OutputArg_16, (MR_Integer) 0))));
    hlds__instmap__instmap_delta_set_var_4_p_0(Var_45, Inst_37, Delta0_36, &Delta_38);
    hlds__hlds_goal__goal_info_set_instmap_delta_3_p_0(Delta_38, STATE_VARIABLE_GoalInfo_0_21, &STATE_VARIABLE_GoalInfo_22_46);
    hlds__hlds_goal__goal_info_set_determinism_3_p_0((MR_Integer) 0, STATE_VARIABLE_GoalInfo_22_46, STATE_VARIABLE_GoalInfo_22);
    succeeded = MR_TRUE;
  }
  else
  {
    MR_Word Succeeded_18;

    succeeded = transform_hlds__const_prop__evaluate_test_5_p_0(ModuleName_10, Pred_11, ModeNum_12, Args_13, &Succeeded_18);
    if (succeeded)
    {
      switch (Succeeded_18) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          *GoalExpr_14 = hlds__make_goal__fail_goal_expr_0_f_0();
          break;
        case (MR_Integer) 1:
          *GoalExpr_14 = hlds__make_goal__true_goal_expr_0_f_0();
          break;
      }
      *STATE_VARIABLE_GoalInfo_22 = STATE_VARIABLE_GoalInfo_0_21;
      succeeded = MR_TRUE;
    }
    else
    {
      MR_Word Result_19;

      succeeded = transform_hlds__const_prop__evaluate_semidet_call_5_p_0(ModuleName_10, Pred_11, ModeNum_12, Args_13, &Result_19);
      if (succeeded)
      {
        if ((Result_19 == (MR_Word) ((MR_Unsigned) 0U)))
        {
          *GoalExpr_14 = hlds__make_goal__fail_goal_expr_0_f_0();
          *STATE_VARIABLE_GoalInfo_22 = STATE_VARIABLE_GoalInfo_0_21;
        }
        else
        {
          MR_Word Var_33 = ((MR_Word) ((MR_hl_field(1, Result_19, (MR_Integer) 0))));
          MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_33, (MR_Integer) 1))));
          MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_33, (MR_Integer) 0))));

          if (((MR_tag((MR_Word) Var_34)) == (MR_Integer) 1))
          {
            MR_Word Cons_31 = ((MR_Word) ((MR_hl_field(1, Var_34, (MR_Integer) 0))));
            MR_Word Delta0_56;
            MR_Word Inst_57;
            MR_Word Delta_58;
            MR_Word Var_61;
            MR_Word Var_62;
            MR_Word Var_65;
            MR_Word STATE_VARIABLE_GoalInfo_22_66;
            MR_Word Goal_70;
            MR_Word Var_72;
            MR_Word Var_73;

            Var_72 = mercury__term_context__dummy_context_0_f_0();
            Var_73 = ((MR_Word) ((MR_hl_field(0, Var_35, (MR_Integer) 0))));
            hlds__make_goal__make_const_construction_4_p_0(Var_72, Var_73, Cons_31, &Goal_70);
            *GoalExpr_14 = ((MR_Word) ((MR_hl_field(0, Goal_70, (MR_Integer) 0))));
            Delta0_56 = hlds__hlds_goal__goal_info_get_instmap_delta_1_f_0(STATE_VARIABLE_GoalInfo_0_21);
            {
              Var_62 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
              MR_hl_field(0, Var_62, 0) = ((MR_Box) (Cons_31));
              MR_hl_field(0, Var_62, 1) = ((MR_Box) ((MR_Unsigned) 0U));
            }
            {
              Var_61 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
              MR_hl_field(1, Var_61, 0) = ((MR_Box) (Var_62));
              MR_hl_field(1, Var_61, 1) = ((MR_Box) ((MR_Unsigned) 0U));
            }
            {
              Inst_57 = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL));
              MR_hl_field(3, Inst_57, 0) = ((MR_Box) ((MR_Unsigned) 0U));
              MR_hl_field(3, Inst_57, 1) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
              MR_hl_field(3, Inst_57, 2) = ((MR_Box) ((MR_Unsigned) 4U));
              MR_hl_field(3, Inst_57, 3) = ((MR_Box) (Var_61));
            }
            Var_65 = ((MR_Word) ((MR_hl_field(0, Var_35, (MR_Integer) 0))));
            hlds__instmap__instmap_delta_set_var_4_p_0(Var_65, Inst_57, Delta0_56, &Delta_58);
            hlds__hlds_goal__goal_info_set_instmap_delta_3_p_0(Delta_58, STATE_VARIABLE_GoalInfo_0_21, &STATE_VARIABLE_GoalInfo_22_66);
            hlds__hlds_goal__goal_info_set_determinism_3_p_0((MR_Integer) 0, STATE_VARIABLE_GoalInfo_22_66, STATE_VARIABLE_GoalInfo_22);
          }
          else
          {
            MR_Word InputArg_20 = (MR_Word) ((MR_Word) (Var_34));
            MR_Word Delta0_76;
            MR_Word Delta_77;
            MR_Word Var_78;
            MR_Word Var_79;
            MR_Word STATE_VARIABLE_GoalInfo_16_80;
            MR_Word OutVar_86 = ((MR_Word) ((MR_hl_field(0, Var_35, (MR_Integer) 0))));
            MR_Word InVar_87 = ((MR_Word) ((MR_hl_field(0, InputArg_20, (MR_Integer) 0))));
            MR_Word Inst_88 = ((MR_Word) ((MR_hl_field(0, InputArg_20, (MR_Integer) 2))));
            MR_Word UnifyMode_89;
            MR_Word Var_96;
            MR_Word Var_97;

            {
              UnifyMode_89 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
              MR_hl_field(0, UnifyMode_89, 0) = ((MR_Box) ((MR_Unsigned) 0U));
              MR_hl_field(0, UnifyMode_89, 1) = ((MR_Box) (Inst_88));
              MR_hl_field(0, UnifyMode_89, 2) = ((MR_Box) (Inst_88));
              MR_hl_field(0, UnifyMode_89, 3) = ((MR_Box) (Inst_88));
            }
            {
              Var_96 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
              MR_hl_field(0, Var_96, 0) = ((MR_Box) (InVar_87));
            }
            {
              Var_97 = (MR_Word) MR_mkword(2, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
              MR_hl_field(2, Var_97, 0) = ((MR_Box) (OutVar_86));
              MR_hl_field(2, Var_97, 1) = ((MR_Box) (InVar_87));
            }
            {
              MR_Word base;
              base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL));
              *GoalExpr_14 = base;
              MR_hl_field(1, base, 0) = ((MR_Box) (OutVar_86));
              MR_hl_field(1, base, 1) = ((MR_Box) (Var_96));
              MR_hl_field(1, base, 2) = ((MR_Box) (UnifyMode_89));
              MR_hl_field(1, base, 3) = ((MR_Box) (Var_97));
              MR_hl_field(1, base, 4) = ((MR_Box) (&transform_hlds__const_prop_scalar_common_1[2]));
            }
            Delta0_76 = hlds__hlds_goal__goal_info_get_instmap_delta_1_f_0(STATE_VARIABLE_GoalInfo_0_21);
            Var_78 = ((MR_Word) ((MR_hl_field(0, Var_35, (MR_Integer) 0))));
            Var_79 = ((MR_Word) ((MR_hl_field(0, InputArg_20, (MR_Integer) 2))));
            hlds__instmap__instmap_delta_set_var_4_p_0(Var_78, Var_79, Delta0_76, &Delta_77);
            hlds__hlds_goal__goal_info_set_instmap_delta_3_p_0(Delta_77, STATE_VARIABLE_GoalInfo_0_21, &STATE_VARIABLE_GoalInfo_16_80);
            hlds__hlds_goal__goal_info_set_determinism_3_p_0((MR_Integer) 0, STATE_VARIABLE_GoalInfo_16_80, STATE_VARIABLE_GoalInfo_22);
          }
        }
        succeeded = MR_TRUE;
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_semidet_call_5_p_0(
  MR_String HeadVar__1_1,
  MR_String HeadVar__2_2,
  MR_Integer HeadVar__3_3,
  MR_Word Args_4,
  MR_Word * Result_5)
{
  while (MR_TRUE)
  {
    MR_bool succeeded;

    // setup for model_semi tailcalls optimized into a loop
    ;
    if ((strcmp(HeadVar__1_1, (MR_String) "builtin") == 0))
    {
      MR_String Var_8;
      MR_String Var_9;
      MR_Integer Var_10;
      MR_String next_value_of_HeadVar__1_1;
      MR_String next_value_of_HeadVar__2_2;
      MR_Integer next_value_of_HeadVar__3_3;

      succeeded = (strcmp(HeadVar__2_2, (MR_String) "dynamic_cast") == 0);
      if (succeeded)
      {
        succeeded = (HeadVar__3_3 == (MR_Integer) 0);
        if (succeeded)
        {
          Var_8 = (MR_String) "private_builtin";
          Var_9 = (MR_String) "typed_unify";
          Var_10 = (MR_Integer) 1;
          // direct tailcall eliminated
          ;
          next_value_of_HeadVar__1_1 = Var_8;
          next_value_of_HeadVar__2_2 = Var_9;
          next_value_of_HeadVar__3_3 = Var_10;
          HeadVar__1_1 = next_value_of_HeadVar__1_1;
          HeadVar__2_2 = next_value_of_HeadVar__2_2;
          HeadVar__3_3 = next_value_of_HeadVar__3_3;
          continue;
        }
      }
    }
    else
    if ((strcmp(HeadVar__1_1, (MR_String) "private_builtin") == 0))
    {
      MR_Word TypeOfX_14;
      MR_Word TypeOfY_15;
      MR_Word X_16;
      MR_Word Y_17;
      MR_Word Var_19;
      MR_Word Var_20;
      MR_Word Var_21;
      MR_Word Var_22;
      MR_Word TypeInfo_36_54;
      MR_Word Var_33;
      MR_Word Var_52;

      succeeded = (strcmp(HeadVar__2_2, (MR_String) "typed_unify") == 0);
      if (succeeded)
      {
        succeeded = (HeadVar__3_3 == (MR_Integer) 1);
        if (succeeded)
        {
          succeeded = (Args_4 != (MR_Word) ((MR_Unsigned) 0U));
          if (succeeded)
          {
            TypeOfX_14 = ((MR_Word) ((MR_hl_field(1, Args_4, (MR_Integer) 0))));
            Var_19 = ((MR_Word) ((MR_hl_field(1, Args_4, (MR_Integer) 1))));
            succeeded = (Var_19 != (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              TypeOfY_15 = ((MR_Word) ((MR_hl_field(1, Var_19, (MR_Integer) 0))));
              Var_20 = ((MR_Word) ((MR_hl_field(1, Var_19, (MR_Integer) 1))));
              succeeded = (Var_20 != (MR_Word) ((MR_Unsigned) 0U));
              if (succeeded)
              {
                X_16 = ((MR_Word) ((MR_hl_field(1, Var_20, (MR_Integer) 0))));
                Var_21 = ((MR_Word) ((MR_hl_field(1, Var_20, (MR_Integer) 1))));
                succeeded = (Var_21 != (MR_Word) ((MR_Unsigned) 0U));
                if (succeeded)
                {
                  Y_17 = ((MR_Word) ((MR_hl_field(1, Var_21, (MR_Integer) 0))));
                  Var_22 = ((MR_Word) ((MR_hl_field(1, Var_21, (MR_Integer) 1))));
                  succeeded = (Var_22 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_33 = ((MR_Word) ((MR_hl_field(0, TypeOfX_14, (MR_Integer) 0))));
                    Var_52 = ((MR_Word) ((MR_hl_field(0, TypeOfY_15, (MR_Integer) 0))));
                    TypeInfo_36_54 = (MR_Word) (&transform_hlds__const_prop_scalar_common_1[0]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_36_54, ((MR_Box) (Var_33)), ((MR_Box) (Var_52)));
                    if (succeeded)
                    {
                      MR_Word Var_23;
                      MR_Word Var_24 = (MR_Word) ((MR_Word) (X_16));

                      {
                        Var_23 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
                        MR_hl_field(0, Var_23, 0) = ((MR_Box) (Y_17));
                        MR_hl_field(0, Var_23, 1) = ((MR_Box) (Var_24));
                      }
                      {
                        MR_Word base;
                        base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                        *Result_5 = base;
                        MR_hl_field(1, base, 0) = ((MR_Box) (Var_23));
                      }
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      MR_Word XCtor_27;
                      MR_Word XArgVars_28;
                      MR_Word YCtor_31;
                      MR_Word YArgVars_32;
                      MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, TypeOfX_14, (MR_Integer) 2))));
                      MR_Word Var_35;
                      MR_Word Var_36;
                      MR_Word Var_37;
                      MR_Word Var_38;
                      MR_Word Var_39;
                      MR_Word Var_40;
                      MR_Word Var_41;
                      MR_Word Result0_62;
                      MR_Word TypeInfo_38_56;

                      succeeded = ((((MR_tag((MR_Word) Var_34)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_34, (MR_Integer) 0)))) == (MR_Integer) 0)));
                      if (succeeded)
                      {
                        Var_35 = ((MR_Word) ((MR_hl_field(3, Var_34, (MR_Integer) 3))));
                        succeeded = (Var_35 != (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          Var_36 = ((MR_Word) ((MR_hl_field(1, Var_35, (MR_Integer) 0))));
                          Var_37 = ((MR_Word) ((MR_hl_field(1, Var_35, (MR_Integer) 1))));
                          succeeded = (Var_37 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            XCtor_27 = ((MR_Word) ((MR_hl_field(0, Var_36, (MR_Integer) 0))));
                            XArgVars_28 = ((MR_Word) ((MR_hl_field(0, Var_36, (MR_Integer) 1))));
                            Var_38 = ((MR_Word) ((MR_hl_field(0, TypeOfY_15, (MR_Integer) 2))));
                            succeeded = ((((MR_tag((MR_Word) Var_38)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_38, (MR_Integer) 0)))) == (MR_Integer) 0)));
                            if (succeeded)
                            {
                              Var_39 = ((MR_Word) ((MR_hl_field(3, Var_38, (MR_Integer) 3))));
                              succeeded = (Var_39 != (MR_Word) ((MR_Unsigned) 0U));
                              if (succeeded)
                              {
                                Var_40 = ((MR_Word) ((MR_hl_field(1, Var_39, (MR_Integer) 0))));
                                Var_41 = ((MR_Word) ((MR_hl_field(1, Var_39, (MR_Integer) 1))));
                                succeeded = (Var_41 == (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  YCtor_31 = ((MR_Word) ((MR_hl_field(0, Var_40, (MR_Integer) 0))));
                                  YArgVars_32 = ((MR_Word) ((MR_hl_field(0, Var_40, (MR_Integer) 1))));
                                  succeeded = parse_tree__prog_data____Unify____cons_id_0_0(XCtor_27, YCtor_31);
                                  if (succeeded)
                                  {
                                    TypeInfo_38_56 = (MR_Word) (&transform_hlds__const_prop_scalar_common_1[1]);
                                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_38_56, ((MR_Box) (XArgVars_28)), ((MR_Box) (YArgVars_32)));
                                  }
                                  if (succeeded)
                                  {
                                    Result0_62 = (MR_Integer) 1;
                                    succeeded = MR_TRUE;
                                  }
                                  else
                                  {
                                    succeeded = parse_tree__prog_data____Unify____cons_id_0_0(XCtor_27, YCtor_31);
                                    succeeded = !(succeeded);
                                    if (!(succeeded))
                                    {
                                      MR_Integer Var_42;
                                      MR_Integer Var_53;

                                      Var_42 = mercury__list__length_1_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0), XArgVars_28);
                                      Var_53 = mercury__list__length_1_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0), YArgVars_32);
                                      succeeded = (Var_42 != Var_53);
                                    }
                                    if (succeeded)
                                    {
                                      Result0_62 = (MR_Integer) 0;
                                      succeeded = MR_TRUE;
                                    }
                                  }
                                  if (succeeded)
                                  {
                                    switch (Result0_62) {
                                      default: /*NOTREACHED*/ MR_assert(0);
                                      case (MR_Integer) 0:
                                        *Result_5 = (MR_Word) ((MR_Unsigned) 0U);
                                        break;
                                      case (MR_Integer) 1:
                                        {
                                          MR_Word Var_58;
                                          MR_Word Var_59 = (MR_Word) ((MR_Word) (X_16));

                                          {
                                            Var_58 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
                                            MR_hl_field(0, Var_58, 0) = ((MR_Box) (Y_17));
                                            MR_hl_field(0, Var_58, 1) = ((MR_Box) (Var_59));
                                          }
                                          {
                                            MR_Word base;
                                            base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                                            *Result_5 = base;
                                            MR_hl_field(1, base, 0) = ((MR_Box) (Var_58));
                                          }
                                        }
                                        break;
                                    }
                                    succeeded = MR_TRUE;
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    else
      succeeded = MR_FALSE;
    return succeeded;
    break;
  }
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_test_5_p_0(
  MR_String ModuleName_6,
  MR_String PredName_7,
  MR_Integer ModeNum_8,
  MR_Word Args_9,
  MR_Word * Result_10)
{
  MR_bool succeeded = (Args_9 != (MR_Word) ((MR_Unsigned) 0U));
  MR_Word Var_806;
  MR_Word Var_807;
  MR_Word Var_808;
  MR_Word Var_809;
  MR_Integer slot_44;
  MR_String str_45;

  if (succeeded)
  {
    Var_807 = ((MR_Word) ((MR_hl_field(1, Args_9, (MR_Integer) 0))));
    Var_806 = ((MR_Word) ((MR_hl_field(1, Args_9, (MR_Integer) 1))));
    succeeded = (Var_806 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_809 = ((MR_Word) ((MR_hl_field(1, Var_806, (MR_Integer) 0))));
      Var_808 = ((MR_Word) ((MR_hl_field(1, Var_806, (MR_Integer) 1))));
      succeeded = (ModeNum_8 == (MR_Integer) 0);
      if (succeeded)
      {
        // hashed string jump switch
        ;
        // compute the hash value of the input string
        ;
        slot_44 = ((MR_hash_string6(ModuleName_6)) & (MR_Integer) 63);
        // no collisions; no hash chain loop
        ;
        // lookup the string for this hash slot
        ;
        str_45 = ((&transform_hlds__const_prop_vector_common_3[0 + slot_44]))->transform_hlds__const_prop__vector_common_type_3_0__vct_3_f_0;
        // did we find a match?
        ;
        if ((((str_45 != NULL)) && ((strcmp(str_45, ModuleName_6) == 0))))
        {
          // we found a match; dispatch to the corresponding code
          ;
          switch (slot_44) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 3:
              {
                // case "uint32"
                ;
                {
                  MR_Integer lo_32;
                  MR_Integer hi_33;
                  MR_Integer mid_34;
                  MR_Integer result_35;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    // binary string jump switch
                    ;
                    lo_32 = (MR_Integer) 0;
                    hi_33 = (MR_Integer) 3;
                    do
                    {
                      mid_34 = (((MR_Integer) ((MR_Unsigned) lo_32 + (MR_Unsigned) hi_33)) / (MR_Integer) 2);
                      result_35 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[56 + mid_34]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                      if ((result_35 == (MR_Integer) 0))
                      {
                        switch (((&transform_hlds__const_prop_vector_common_2[56 + mid_34]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                          default: /*NOTREACHED*/ MR_assert(0);
                          case (MR_Integer) 0:
                            {
                              // case "<"
                              ;
                              {
                                MR_Word Var_346 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_347;
                                MR_Word Var_348;
                                MR_Word Var_349;
                                MR_Word Var_350;
                                MR_Word Var_351;
                                MR_Word FunctorY_617;
                                uint32_t YVal_619;

                                succeeded = ((((MR_tag((MR_Word) Var_346)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_346, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_347 = ((MR_Word) ((MR_hl_field(3, Var_346, (MR_Integer) 3))));
                                  succeeded = (Var_347 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_348 = ((MR_Word) ((MR_hl_field(1, Var_347, (MR_Integer) 0))));
                                    Var_350 = ((MR_Word) ((MR_hl_field(1, Var_347, (MR_Integer) 1))));
                                    FunctorY_617 = ((MR_Word) ((MR_hl_field(0, Var_348, (MR_Integer) 0))));
                                    Var_349 = ((MR_Word) ((MR_hl_field(0, Var_348, (MR_Integer) 1))));
                                    succeeded = (Var_349 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_350 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_617)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_617, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_351 = ((MR_Word) ((MR_hl_field(3, FunctorY_617, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_351)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_351, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                          if (succeeded)
                                          {
                                            YVal_619 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_351, (MR_Integer) 1)));
                                            succeeded = (YVal_619 == UINT32_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_352 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_353;
                                              MR_Word Var_354;
                                              MR_Word Var_355;
                                              MR_Word Var_356;
                                              MR_Word Var_357;
                                              MR_Word FunctorX_612;
                                              uint32_t XVal_613;

                                              succeeded = ((((MR_tag((MR_Word) Var_352)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_352, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_353 = ((MR_Word) ((MR_hl_field(3, Var_352, (MR_Integer) 3))));
                                                succeeded = (Var_353 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_354 = ((MR_Word) ((MR_hl_field(1, Var_353, (MR_Integer) 0))));
                                                  Var_356 = ((MR_Word) ((MR_hl_field(1, Var_353, (MR_Integer) 1))));
                                                  FunctorX_612 = ((MR_Word) ((MR_hl_field(0, Var_354, (MR_Integer) 0))));
                                                  Var_355 = ((MR_Word) ((MR_hl_field(0, Var_354, (MR_Integer) 1))));
                                                  succeeded = (Var_355 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_356 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_612)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_612, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_357 = ((MR_Word) ((MR_hl_field(3, FunctorX_612, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_357)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_357, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                                        if (succeeded)
                                                        {
                                                          XVal_613 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_357, (MR_Integer) 1)));
                                                          succeeded = (XVal_613 < YVal_619);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 1:
                            {
                              // case "=<"
                              ;
                              {
                                MR_Word Var_358 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_359;
                                MR_Word Var_360;
                                MR_Word Var_361;
                                MR_Word Var_362;
                                MR_Word Var_363;
                                MR_Word FunctorX_624;
                                uint32_t XVal_626;

                                succeeded = ((((MR_tag((MR_Word) Var_358)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_358, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_359 = ((MR_Word) ((MR_hl_field(3, Var_358, (MR_Integer) 3))));
                                  succeeded = (Var_359 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_360 = ((MR_Word) ((MR_hl_field(1, Var_359, (MR_Integer) 0))));
                                    Var_362 = ((MR_Word) ((MR_hl_field(1, Var_359, (MR_Integer) 1))));
                                    FunctorX_624 = ((MR_Word) ((MR_hl_field(0, Var_360, (MR_Integer) 0))));
                                    Var_361 = ((MR_Word) ((MR_hl_field(0, Var_360, (MR_Integer) 1))));
                                    succeeded = (Var_361 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_362 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_624)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_624, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_363 = ((MR_Word) ((MR_hl_field(3, FunctorX_624, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_363)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_363, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                          if (succeeded)
                                          {
                                            XVal_626 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_363, (MR_Integer) 1)));
                                            succeeded = (XVal_626 == UINT32_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_364 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_365;
                                              MR_Word Var_366;
                                              MR_Word Var_367;
                                              MR_Word Var_368;
                                              MR_Word Var_369;
                                              MR_Word FunctorY_620;
                                              uint32_t YVal_621;

                                              succeeded = ((((MR_tag((MR_Word) Var_364)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_364, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_365 = ((MR_Word) ((MR_hl_field(3, Var_364, (MR_Integer) 3))));
                                                succeeded = (Var_365 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_366 = ((MR_Word) ((MR_hl_field(1, Var_365, (MR_Integer) 0))));
                                                  Var_368 = ((MR_Word) ((MR_hl_field(1, Var_365, (MR_Integer) 1))));
                                                  FunctorY_620 = ((MR_Word) ((MR_hl_field(0, Var_366, (MR_Integer) 0))));
                                                  Var_367 = ((MR_Word) ((MR_hl_field(0, Var_366, (MR_Integer) 1))));
                                                  succeeded = (Var_367 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_368 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_620)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_620, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_369 = ((MR_Word) ((MR_hl_field(3, FunctorY_620, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_369)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_369, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                                        if (succeeded)
                                                        {
                                                          YVal_621 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_369, (MR_Integer) 1)));
                                                          succeeded = (XVal_626 <= YVal_621);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 2:
                            {
                              // case ">"
                              ;
                              {
                                MR_Word Var_370 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_371;
                                MR_Word Var_372;
                                MR_Word Var_373;
                                MR_Word Var_374;
                                MR_Word Var_375;
                                MR_Word FunctorX_632;
                                uint32_t XVal_634;

                                succeeded = ((((MR_tag((MR_Word) Var_370)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_370, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_371 = ((MR_Word) ((MR_hl_field(3, Var_370, (MR_Integer) 3))));
                                  succeeded = (Var_371 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_372 = ((MR_Word) ((MR_hl_field(1, Var_371, (MR_Integer) 0))));
                                    Var_374 = ((MR_Word) ((MR_hl_field(1, Var_371, (MR_Integer) 1))));
                                    FunctorX_632 = ((MR_Word) ((MR_hl_field(0, Var_372, (MR_Integer) 0))));
                                    Var_373 = ((MR_Word) ((MR_hl_field(0, Var_372, (MR_Integer) 1))));
                                    succeeded = (Var_373 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_374 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_632)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_632, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_375 = ((MR_Word) ((MR_hl_field(3, FunctorX_632, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_375)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_375, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                          if (succeeded)
                                          {
                                            XVal_634 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_375, (MR_Integer) 1)));
                                            succeeded = (XVal_634 == UINT32_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_376 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_377;
                                              MR_Word Var_378;
                                              MR_Word Var_379;
                                              MR_Word Var_380;
                                              MR_Word Var_381;
                                              MR_Word FunctorY_628;
                                              uint32_t YVal_629;

                                              succeeded = ((((MR_tag((MR_Word) Var_376)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_376, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_377 = ((MR_Word) ((MR_hl_field(3, Var_376, (MR_Integer) 3))));
                                                succeeded = (Var_377 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_378 = ((MR_Word) ((MR_hl_field(1, Var_377, (MR_Integer) 0))));
                                                  Var_380 = ((MR_Word) ((MR_hl_field(1, Var_377, (MR_Integer) 1))));
                                                  FunctorY_628 = ((MR_Word) ((MR_hl_field(0, Var_378, (MR_Integer) 0))));
                                                  Var_379 = ((MR_Word) ((MR_hl_field(0, Var_378, (MR_Integer) 1))));
                                                  succeeded = (Var_379 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_380 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_628)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_628, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_381 = ((MR_Word) ((MR_hl_field(3, FunctorY_628, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_381)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_381, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                                        if (succeeded)
                                                        {
                                                          YVal_629 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_381, (MR_Integer) 1)));
                                                          succeeded = (XVal_634 > YVal_629);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 3:
                            {
                              // case ">="
                              ;
                              {
                                MR_Word Var_382 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_383;
                                MR_Word Var_384;
                                MR_Word Var_385;
                                MR_Word Var_386;
                                MR_Word Var_387;
                                MR_Word FunctorY_641;
                                uint32_t YVal_643;

                                succeeded = ((((MR_tag((MR_Word) Var_382)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_382, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_383 = ((MR_Word) ((MR_hl_field(3, Var_382, (MR_Integer) 3))));
                                  succeeded = (Var_383 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_384 = ((MR_Word) ((MR_hl_field(1, Var_383, (MR_Integer) 0))));
                                    Var_386 = ((MR_Word) ((MR_hl_field(1, Var_383, (MR_Integer) 1))));
                                    FunctorY_641 = ((MR_Word) ((MR_hl_field(0, Var_384, (MR_Integer) 0))));
                                    Var_385 = ((MR_Word) ((MR_hl_field(0, Var_384, (MR_Integer) 1))));
                                    succeeded = (Var_385 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_386 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_641)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_641, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_387 = ((MR_Word) ((MR_hl_field(3, FunctorY_641, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_387)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_387, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                          if (succeeded)
                                          {
                                            YVal_643 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_387, (MR_Integer) 1)));
                                            succeeded = (YVal_643 == UINT32_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_388 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_389;
                                              MR_Word Var_390;
                                              MR_Word Var_391;
                                              MR_Word Var_392;
                                              MR_Word Var_393;
                                              MR_Word FunctorX_636;
                                              uint32_t XVal_637;

                                              succeeded = ((((MR_tag((MR_Word) Var_388)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_388, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_389 = ((MR_Word) ((MR_hl_field(3, Var_388, (MR_Integer) 3))));
                                                succeeded = (Var_389 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_390 = ((MR_Word) ((MR_hl_field(1, Var_389, (MR_Integer) 0))));
                                                  Var_392 = ((MR_Word) ((MR_hl_field(1, Var_389, (MR_Integer) 1))));
                                                  FunctorX_636 = ((MR_Word) ((MR_hl_field(0, Var_390, (MR_Integer) 0))));
                                                  Var_391 = ((MR_Word) ((MR_hl_field(0, Var_390, (MR_Integer) 1))));
                                                  succeeded = (Var_391 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_392 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_636)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_636, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_393 = ((MR_Word) ((MR_hl_field(3, FunctorX_636, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_393)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_393, (MR_Integer) 0)))) == (MR_Integer) 4)));
                                                        if (succeeded)
                                                        {
                                                          XVal_637 = ((uint32_t) (MR_Word) (MR_hl_field(3, Var_393, (MR_Integer) 1)));
                                                          succeeded = (XVal_637 >= YVal_643);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                        }
                        // jump out of search loop
                        ;
                        goto label_8;
                      }
                      else
                      if ((result_35 < (MR_Integer) 0))
                        hi_33 = (MR_Integer) ((MR_Unsigned) mid_34 - (MR_Unsigned) 1);
                      else
                        lo_32 = (MR_Integer) ((MR_Unsigned) mid_34 + (MR_Unsigned) 1);
                    }
                    while ((lo_32 <= hi_33));
                    succeeded = MR_FALSE;
                  label_8:;
                  }
                }
              }
              break;
            case (MR_Integer) 7:
              {
                // case "int16"
                ;
                {
                  MR_Word Var_154;
                  MR_Word Var_155;
                  MR_Word Var_156;
                  MR_Word Var_157;
                  MR_Word Var_158;
                  MR_Word Var_159;
                  MR_Word Var_160;
                  MR_Word Var_161;
                  MR_Word Var_162;
                  MR_Word Var_163;
                  MR_Word Var_164;
                  MR_Word Var_165;
                  MR_Word FunctorX_470;
                  MR_Word FunctorY_471;
                  int16_t XVal_472;
                  int16_t YVal_473;
                  MR_Integer lo_8;
                  MR_Integer hi_9;
                  MR_Integer mid_10;
                  MR_Integer result_11;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_154 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                    succeeded = ((((MR_tag((MR_Word) Var_154)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_154, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      Var_155 = ((MR_Word) ((MR_hl_field(3, Var_154, (MR_Integer) 3))));
                      succeeded = (Var_155 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Var_156 = ((MR_Word) ((MR_hl_field(1, Var_155, (MR_Integer) 0))));
                        Var_158 = ((MR_Word) ((MR_hl_field(1, Var_155, (MR_Integer) 1))));
                        FunctorX_470 = ((MR_Word) ((MR_hl_field(0, Var_156, (MR_Integer) 0))));
                        Var_157 = ((MR_Word) ((MR_hl_field(0, Var_156, (MR_Integer) 1))));
                        succeeded = (Var_157 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          succeeded = (Var_158 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            Var_159 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                            succeeded = ((((MR_tag((MR_Word) Var_159)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_159, (MR_Integer) 0)))) == (MR_Integer) 0)));
                            if (succeeded)
                            {
                              Var_160 = ((MR_Word) ((MR_hl_field(3, Var_159, (MR_Integer) 3))));
                              succeeded = (Var_160 != (MR_Word) ((MR_Unsigned) 0U));
                              if (succeeded)
                              {
                                Var_161 = ((MR_Word) ((MR_hl_field(1, Var_160, (MR_Integer) 0))));
                                Var_163 = ((MR_Word) ((MR_hl_field(1, Var_160, (MR_Integer) 1))));
                                FunctorY_471 = ((MR_Word) ((MR_hl_field(0, Var_161, (MR_Integer) 0))));
                                Var_162 = ((MR_Word) ((MR_hl_field(0, Var_161, (MR_Integer) 1))));
                                succeeded = (Var_162 == (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  succeeded = (Var_163 == (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    succeeded = ((((MR_tag((MR_Word) FunctorX_470)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_470, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                    if (succeeded)
                                    {
                                      Var_164 = ((MR_Word) ((MR_hl_field(3, FunctorX_470, (MR_Integer) 1))));
                                      succeeded = ((((MR_tag((MR_Word) Var_164)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_164, (MR_Integer) 0)))) == (MR_Integer) 1)));
                                      if (succeeded)
                                      {
                                        XVal_472 = ((int16_t) (MR_Word) (MR_hl_field(3, Var_164, (MR_Integer) 1)));
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_471)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_471, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_165 = ((MR_Word) ((MR_hl_field(3, FunctorY_471, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_165)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_165, (MR_Integer) 0)))) == (MR_Integer) 1)));
                                          if (succeeded)
                                          {
                                            YVal_473 = ((int16_t) (MR_Word) (MR_hl_field(3, Var_165, (MR_Integer) 1)));
                                            // binary string jump switch
                                            ;
                                            lo_8 = (MR_Integer) 0;
                                            hi_9 = (MR_Integer) 3;
                                            do
                                            {
                                              mid_10 = (((MR_Integer) ((MR_Unsigned) lo_8 + (MR_Unsigned) hi_9)) / (MR_Integer) 2);
                                              result_11 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[32 + mid_10]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                                              if ((result_11 == (MR_Integer) 0))
                                              {
                                                switch (((&transform_hlds__const_prop_vector_common_2[32 + mid_10]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                                  default: /*NOTREACHED*/ MR_assert(0);
                                                  case (MR_Integer) 0:
                                                    {
                                                      // case "<"
                                                      ;
                                                      succeeded = (XVal_472 < YVal_473);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 1:
                                                    {
                                                      // case "=<"
                                                      ;
                                                      succeeded = (XVal_472 <= YVal_473);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 2:
                                                    {
                                                      // case ">"
                                                      ;
                                                      succeeded = (XVal_472 > YVal_473);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 3:
                                                    {
                                                      // case ">="
                                                      ;
                                                      succeeded = (XVal_472 >= YVal_473);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                }
                                                // jump out of search loop
                                                ;
                                                goto label_2;
                                              }
                                              else
                                              if ((result_11 < (MR_Integer) 0))
                                                hi_9 = (MR_Integer) ((MR_Unsigned) mid_10 - (MR_Unsigned) 1);
                                              else
                                                lo_8 = (MR_Integer) ((MR_Unsigned) mid_10 + (MR_Unsigned) 1);
                                            }
                                            while ((lo_8 <= hi_9));
                                            succeeded = MR_FALSE;
                                          label_2:;
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 8:
              {
                // case "int"
                ;
                {
                  MR_Word FunctorX_15;
                  MR_Word FunctorY_18;
                  MR_Integer XVal_19;
                  MR_Integer YVal_20;
                  MR_Word Var_126;
                  MR_Word Var_127;
                  MR_Word Var_128;
                  MR_Word Var_129;
                  MR_Word Var_130;
                  MR_Word Var_131;
                  MR_Word Var_132;
                  MR_Word Var_133;
                  MR_Word Var_134;
                  MR_Word Var_135;
                  MR_Word Var_136;
                  MR_Word Var_137;
                  MR_Integer lo_4;
                  MR_Integer hi_5;
                  MR_Integer mid_6;
                  MR_Integer result_7;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_126 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                    succeeded = ((((MR_tag((MR_Word) Var_126)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_126, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      Var_127 = ((MR_Word) ((MR_hl_field(3, Var_126, (MR_Integer) 3))));
                      succeeded = (Var_127 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Var_128 = ((MR_Word) ((MR_hl_field(1, Var_127, (MR_Integer) 0))));
                        Var_130 = ((MR_Word) ((MR_hl_field(1, Var_127, (MR_Integer) 1))));
                        FunctorX_15 = ((MR_Word) ((MR_hl_field(0, Var_128, (MR_Integer) 0))));
                        Var_129 = ((MR_Word) ((MR_hl_field(0, Var_128, (MR_Integer) 1))));
                        succeeded = (Var_129 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          succeeded = (Var_130 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            Var_131 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                            succeeded = ((((MR_tag((MR_Word) Var_131)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_131, (MR_Integer) 0)))) == (MR_Integer) 0)));
                            if (succeeded)
                            {
                              Var_132 = ((MR_Word) ((MR_hl_field(3, Var_131, (MR_Integer) 3))));
                              succeeded = (Var_132 != (MR_Word) ((MR_Unsigned) 0U));
                              if (succeeded)
                              {
                                Var_133 = ((MR_Word) ((MR_hl_field(1, Var_132, (MR_Integer) 0))));
                                Var_135 = ((MR_Word) ((MR_hl_field(1, Var_132, (MR_Integer) 1))));
                                FunctorY_18 = ((MR_Word) ((MR_hl_field(0, Var_133, (MR_Integer) 0))));
                                Var_134 = ((MR_Word) ((MR_hl_field(0, Var_133, (MR_Integer) 1))));
                                succeeded = (Var_134 == (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  succeeded = (Var_135 == (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    succeeded = ((((MR_tag((MR_Word) FunctorX_15)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_15, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                    if (succeeded)
                                    {
                                      Var_136 = ((MR_Word) ((MR_hl_field(3, FunctorX_15, (MR_Integer) 1))));
                                      succeeded = ((MR_tag((MR_Word) Var_136)) == (MR_Integer) 0);
                                      if (succeeded)
                                      {
                                        XVal_19 = ((MR_Integer) ((MR_hl_field(0, Var_136, (MR_Integer) 0))));
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_18)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_18, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_137 = ((MR_Word) ((MR_hl_field(3, FunctorY_18, (MR_Integer) 1))));
                                          succeeded = ((MR_tag((MR_Word) Var_137)) == (MR_Integer) 0);
                                          if (succeeded)
                                          {
                                            YVal_20 = ((MR_Integer) ((MR_hl_field(0, Var_137, (MR_Integer) 0))));
                                            // binary string jump switch
                                            ;
                                            lo_4 = (MR_Integer) 0;
                                            hi_5 = (MR_Integer) 3;
                                            do
                                            {
                                              mid_6 = (((MR_Integer) ((MR_Unsigned) lo_4 + (MR_Unsigned) hi_5)) / (MR_Integer) 2);
                                              result_7 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[28 + mid_6]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                                              if ((result_7 == (MR_Integer) 0))
                                              {
                                                switch (((&transform_hlds__const_prop_vector_common_2[28 + mid_6]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                                  default: /*NOTREACHED*/ MR_assert(0);
                                                  case (MR_Integer) 0:
                                                    {
                                                      // case "<"
                                                      ;
                                                      succeeded = (XVal_19 < YVal_20);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 1:
                                                    {
                                                      // case "=<"
                                                      ;
                                                      succeeded = (XVal_19 <= YVal_20);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 2:
                                                    {
                                                      // case ">"
                                                      ;
                                                      succeeded = (XVal_19 > YVal_20);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 3:
                                                    {
                                                      // case ">="
                                                      ;
                                                      succeeded = (XVal_19 >= YVal_20);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                }
                                                // jump out of search loop
                                                ;
                                                goto label_1;
                                              }
                                              else
                                              if ((result_7 < (MR_Integer) 0))
                                                hi_5 = (MR_Integer) ((MR_Unsigned) mid_6 - (MR_Unsigned) 1);
                                              else
                                                lo_4 = (MR_Integer) ((MR_Unsigned) mid_6 + (MR_Unsigned) 1);
                                            }
                                            while ((lo_4 <= hi_5));
                                            succeeded = MR_FALSE;
                                          label_1:;
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 13:
              {
                // case "uint8"
                ;
                {
                  MR_Integer lo_40;
                  MR_Integer hi_41;
                  MR_Integer mid_42;
                  MR_Integer result_43;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    // binary string jump switch
                    ;
                    lo_40 = (MR_Integer) 0;
                    hi_41 = (MR_Integer) 3;
                    do
                    {
                      mid_42 = (((MR_Integer) ((MR_Unsigned) lo_40 + (MR_Unsigned) hi_41)) / (MR_Integer) 2);
                      result_43 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[64 + mid_42]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                      if ((result_43 == (MR_Integer) 0))
                      {
                        switch (((&transform_hlds__const_prop_vector_common_2[64 + mid_42]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                          default: /*NOTREACHED*/ MR_assert(0);
                          case (MR_Integer) 0:
                            {
                              // case "<"
                              ;
                              {
                                MR_Word Var_246 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_247;
                                MR_Word Var_248;
                                MR_Word Var_249;
                                MR_Word Var_250;
                                MR_Word Var_251;
                                MR_Word FunctorY_533;
                                uint8_t YVal_535;

                                succeeded = ((((MR_tag((MR_Word) Var_246)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_246, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_247 = ((MR_Word) ((MR_hl_field(3, Var_246, (MR_Integer) 3))));
                                  succeeded = (Var_247 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_248 = ((MR_Word) ((MR_hl_field(1, Var_247, (MR_Integer) 0))));
                                    Var_250 = ((MR_Word) ((MR_hl_field(1, Var_247, (MR_Integer) 1))));
                                    FunctorY_533 = ((MR_Word) ((MR_hl_field(0, Var_248, (MR_Integer) 0))));
                                    Var_249 = ((MR_Word) ((MR_hl_field(0, Var_248, (MR_Integer) 1))));
                                    succeeded = (Var_249 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_250 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_533)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_533, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_251 = ((MR_Word) ((MR_hl_field(3, FunctorY_533, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_251)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_251, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                          if (succeeded)
                                          {
                                            YVal_535 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_251, (MR_Integer) 1)));
                                            succeeded = (YVal_535 == UINT8_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_252 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_253;
                                              MR_Word Var_254;
                                              MR_Word Var_255;
                                              MR_Word Var_256;
                                              MR_Word Var_257;
                                              MR_Word FunctorX_528;
                                              uint8_t XVal_529;

                                              succeeded = ((((MR_tag((MR_Word) Var_252)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_252, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_253 = ((MR_Word) ((MR_hl_field(3, Var_252, (MR_Integer) 3))));
                                                succeeded = (Var_253 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_254 = ((MR_Word) ((MR_hl_field(1, Var_253, (MR_Integer) 0))));
                                                  Var_256 = ((MR_Word) ((MR_hl_field(1, Var_253, (MR_Integer) 1))));
                                                  FunctorX_528 = ((MR_Word) ((MR_hl_field(0, Var_254, (MR_Integer) 0))));
                                                  Var_255 = ((MR_Word) ((MR_hl_field(0, Var_254, (MR_Integer) 1))));
                                                  succeeded = (Var_255 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_256 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_528)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_528, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_257 = ((MR_Word) ((MR_hl_field(3, FunctorX_528, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_257)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_257, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                                        if (succeeded)
                                                        {
                                                          XVal_529 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_257, (MR_Integer) 1)));
                                                          succeeded = (XVal_529 < YVal_535);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 1:
                            {
                              // case "=<"
                              ;
                              {
                                MR_Word Var_258 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_259;
                                MR_Word Var_260;
                                MR_Word Var_261;
                                MR_Word Var_262;
                                MR_Word Var_263;
                                MR_Word FunctorX_540;
                                uint8_t XVal_542;

                                succeeded = ((((MR_tag((MR_Word) Var_258)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_258, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_259 = ((MR_Word) ((MR_hl_field(3, Var_258, (MR_Integer) 3))));
                                  succeeded = (Var_259 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_260 = ((MR_Word) ((MR_hl_field(1, Var_259, (MR_Integer) 0))));
                                    Var_262 = ((MR_Word) ((MR_hl_field(1, Var_259, (MR_Integer) 1))));
                                    FunctorX_540 = ((MR_Word) ((MR_hl_field(0, Var_260, (MR_Integer) 0))));
                                    Var_261 = ((MR_Word) ((MR_hl_field(0, Var_260, (MR_Integer) 1))));
                                    succeeded = (Var_261 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_262 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_540)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_540, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_263 = ((MR_Word) ((MR_hl_field(3, FunctorX_540, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_263)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_263, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                          if (succeeded)
                                          {
                                            XVal_542 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_263, (MR_Integer) 1)));
                                            succeeded = (XVal_542 == UINT8_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_264 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_265;
                                              MR_Word Var_266;
                                              MR_Word Var_267;
                                              MR_Word Var_268;
                                              MR_Word Var_269;
                                              MR_Word FunctorY_536;
                                              uint8_t YVal_537;

                                              succeeded = ((((MR_tag((MR_Word) Var_264)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_264, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_265 = ((MR_Word) ((MR_hl_field(3, Var_264, (MR_Integer) 3))));
                                                succeeded = (Var_265 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_266 = ((MR_Word) ((MR_hl_field(1, Var_265, (MR_Integer) 0))));
                                                  Var_268 = ((MR_Word) ((MR_hl_field(1, Var_265, (MR_Integer) 1))));
                                                  FunctorY_536 = ((MR_Word) ((MR_hl_field(0, Var_266, (MR_Integer) 0))));
                                                  Var_267 = ((MR_Word) ((MR_hl_field(0, Var_266, (MR_Integer) 1))));
                                                  succeeded = (Var_267 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_268 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_536)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_536, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_269 = ((MR_Word) ((MR_hl_field(3, FunctorY_536, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_269)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_269, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                                        if (succeeded)
                                                        {
                                                          YVal_537 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_269, (MR_Integer) 1)));
                                                          succeeded = (XVal_542 <= YVal_537);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 2:
                            {
                              // case ">"
                              ;
                              {
                                MR_Word Var_270 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_271;
                                MR_Word Var_272;
                                MR_Word Var_273;
                                MR_Word Var_274;
                                MR_Word Var_275;
                                MR_Word FunctorX_548;
                                uint8_t XVal_550;

                                succeeded = ((((MR_tag((MR_Word) Var_270)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_270, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_271 = ((MR_Word) ((MR_hl_field(3, Var_270, (MR_Integer) 3))));
                                  succeeded = (Var_271 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_272 = ((MR_Word) ((MR_hl_field(1, Var_271, (MR_Integer) 0))));
                                    Var_274 = ((MR_Word) ((MR_hl_field(1, Var_271, (MR_Integer) 1))));
                                    FunctorX_548 = ((MR_Word) ((MR_hl_field(0, Var_272, (MR_Integer) 0))));
                                    Var_273 = ((MR_Word) ((MR_hl_field(0, Var_272, (MR_Integer) 1))));
                                    succeeded = (Var_273 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_274 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_548)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_548, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_275 = ((MR_Word) ((MR_hl_field(3, FunctorX_548, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_275)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_275, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                          if (succeeded)
                                          {
                                            XVal_550 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_275, (MR_Integer) 1)));
                                            succeeded = (XVal_550 == UINT8_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_276 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_277;
                                              MR_Word Var_278;
                                              MR_Word Var_279;
                                              MR_Word Var_280;
                                              MR_Word Var_281;
                                              MR_Word FunctorY_544;
                                              uint8_t YVal_545;

                                              succeeded = ((((MR_tag((MR_Word) Var_276)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_276, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_277 = ((MR_Word) ((MR_hl_field(3, Var_276, (MR_Integer) 3))));
                                                succeeded = (Var_277 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_278 = ((MR_Word) ((MR_hl_field(1, Var_277, (MR_Integer) 0))));
                                                  Var_280 = ((MR_Word) ((MR_hl_field(1, Var_277, (MR_Integer) 1))));
                                                  FunctorY_544 = ((MR_Word) ((MR_hl_field(0, Var_278, (MR_Integer) 0))));
                                                  Var_279 = ((MR_Word) ((MR_hl_field(0, Var_278, (MR_Integer) 1))));
                                                  succeeded = (Var_279 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_280 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_544)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_544, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_281 = ((MR_Word) ((MR_hl_field(3, FunctorY_544, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_281)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_281, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                                        if (succeeded)
                                                        {
                                                          YVal_545 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_281, (MR_Integer) 1)));
                                                          succeeded = (XVal_550 > YVal_545);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 3:
                            {
                              // case ">="
                              ;
                              {
                                MR_Word Var_282 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_283;
                                MR_Word Var_284;
                                MR_Word Var_285;
                                MR_Word Var_286;
                                MR_Word Var_287;
                                MR_Word FunctorY_557;
                                uint8_t YVal_559;

                                succeeded = ((((MR_tag((MR_Word) Var_282)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_282, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_283 = ((MR_Word) ((MR_hl_field(3, Var_282, (MR_Integer) 3))));
                                  succeeded = (Var_283 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_284 = ((MR_Word) ((MR_hl_field(1, Var_283, (MR_Integer) 0))));
                                    Var_286 = ((MR_Word) ((MR_hl_field(1, Var_283, (MR_Integer) 1))));
                                    FunctorY_557 = ((MR_Word) ((MR_hl_field(0, Var_284, (MR_Integer) 0))));
                                    Var_285 = ((MR_Word) ((MR_hl_field(0, Var_284, (MR_Integer) 1))));
                                    succeeded = (Var_285 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_286 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_557)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_557, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_287 = ((MR_Word) ((MR_hl_field(3, FunctorY_557, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_287)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_287, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                          if (succeeded)
                                          {
                                            YVal_559 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_287, (MR_Integer) 1)));
                                            succeeded = (YVal_559 == UINT8_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_288 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_289;
                                              MR_Word Var_290;
                                              MR_Word Var_291;
                                              MR_Word Var_292;
                                              MR_Word Var_293;
                                              MR_Word FunctorX_552;
                                              uint8_t XVal_553;

                                              succeeded = ((((MR_tag((MR_Word) Var_288)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_288, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_289 = ((MR_Word) ((MR_hl_field(3, Var_288, (MR_Integer) 3))));
                                                succeeded = (Var_289 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_290 = ((MR_Word) ((MR_hl_field(1, Var_289, (MR_Integer) 0))));
                                                  Var_292 = ((MR_Word) ((MR_hl_field(1, Var_289, (MR_Integer) 1))));
                                                  FunctorX_552 = ((MR_Word) ((MR_hl_field(0, Var_290, (MR_Integer) 0))));
                                                  Var_291 = ((MR_Word) ((MR_hl_field(0, Var_290, (MR_Integer) 1))));
                                                  succeeded = (Var_291 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_292 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_552)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_552, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_293 = ((MR_Word) ((MR_hl_field(3, FunctorX_552, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_293)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_293, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                                        if (succeeded)
                                                        {
                                                          XVal_553 = ((uint8_t) (MR_Word) (MR_hl_field(3, Var_293, (MR_Integer) 1)));
                                                          succeeded = (XVal_553 >= YVal_559);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                        }
                        // jump out of search loop
                        ;
                        goto label_10;
                      }
                      else
                      if ((result_43 < (MR_Integer) 0))
                        hi_41 = (MR_Integer) ((MR_Unsigned) mid_42 - (MR_Unsigned) 1);
                      else
                        lo_40 = (MR_Integer) ((MR_Unsigned) mid_42 + (MR_Unsigned) 1);
                    }
                    while ((lo_40 <= hi_41));
                    succeeded = MR_FALSE;
                  label_10:;
                  }
                }
              }
              break;
            case (MR_Integer) 14:
              {
                // case "private_builtin"
                ;
                {
                  MR_Word Result0_123;
                  MR_Word Var_460;
                  MR_Word Var_461;
                  MR_Word X_700;
                  MR_Word Y_701;

                  succeeded = (strcmp(PredName_7, (MR_String) "typed_unify") == 0);
                  if (succeeded)
                  {
                    succeeded = (Var_808 != (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      X_700 = ((MR_Word) ((MR_hl_field(1, Var_808, (MR_Integer) 0))));
                      Var_460 = ((MR_Word) ((MR_hl_field(1, Var_808, (MR_Integer) 1))));
                      succeeded = (Var_460 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Y_701 = ((MR_Word) ((MR_hl_field(1, Var_460, (MR_Integer) 0))));
                        Var_461 = ((MR_Word) ((MR_hl_field(1, Var_460, (MR_Integer) 1))));
                        succeeded = (Var_461 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          succeeded = transform_hlds__const_prop__eval_unify_3_p_0(Var_807, Var_809, &Result0_123);
                          if (succeeded)
                            switch (Result0_123) {
                              default: /*NOTREACHED*/ MR_assert(0);
                              case (MR_Integer) 0:
                                {
                                  *Result_10 = (MR_Integer) 0;
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 1:
                                succeeded = transform_hlds__const_prop__eval_unify_3_p_0(X_700, Y_701, Result_10);
                                break;
                            }
                        }
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 20:
              {
                // case "uint"
                ;
                {
                  MR_Integer lo_24;
                  MR_Integer hi_25;
                  MR_Integer mid_26;
                  MR_Integer result_27;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    // binary string jump switch
                    ;
                    lo_24 = (MR_Integer) 0;
                    hi_25 = (MR_Integer) 3;
                    do
                    {
                      mid_26 = (((MR_Integer) ((MR_Unsigned) lo_24 + (MR_Unsigned) hi_25)) / (MR_Integer) 2);
                      result_27 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[48 + mid_26]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                      if ((result_27 == (MR_Integer) 0))
                      {
                        switch (((&transform_hlds__const_prop_vector_common_2[48 + mid_26]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                          default: /*NOTREACHED*/ MR_assert(0);
                          case (MR_Integer) 0:
                            {
                              // case "<"
                              ;
                              {
                                MR_Word Var_196 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_197;
                                MR_Word Var_198;
                                MR_Word Var_199;
                                MR_Word Var_200;
                                MR_Word Var_201;
                                MR_Word FunctorY_491;
                                MR_Unsigned YVal_493;

                                succeeded = ((((MR_tag((MR_Word) Var_196)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_196, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_197 = ((MR_Word) ((MR_hl_field(3, Var_196, (MR_Integer) 3))));
                                  succeeded = (Var_197 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_198 = ((MR_Word) ((MR_hl_field(1, Var_197, (MR_Integer) 0))));
                                    Var_200 = ((MR_Word) ((MR_hl_field(1, Var_197, (MR_Integer) 1))));
                                    FunctorY_491 = ((MR_Word) ((MR_hl_field(0, Var_198, (MR_Integer) 0))));
                                    Var_199 = ((MR_Word) ((MR_hl_field(0, Var_198, (MR_Integer) 1))));
                                    succeeded = (Var_199 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_200 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_491)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_491, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_201 = ((MR_Word) ((MR_hl_field(3, FunctorY_491, (MR_Integer) 1))));
                                          succeeded = ((MR_tag((MR_Word) Var_201)) == (MR_Integer) 1);
                                          if (succeeded)
                                          {
                                            YVal_493 = ((MR_Unsigned) ((MR_hl_field(1, Var_201, (MR_Integer) 0))));
                                            succeeded = (YVal_493 == (MR_Unsigned) 0U);
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_202 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_203;
                                              MR_Word Var_204;
                                              MR_Word Var_205;
                                              MR_Word Var_206;
                                              MR_Word Var_207;
                                              MR_Word FunctorX_486;
                                              MR_Unsigned XVal_487;

                                              succeeded = ((((MR_tag((MR_Word) Var_202)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_202, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_203 = ((MR_Word) ((MR_hl_field(3, Var_202, (MR_Integer) 3))));
                                                succeeded = (Var_203 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_204 = ((MR_Word) ((MR_hl_field(1, Var_203, (MR_Integer) 0))));
                                                  Var_206 = ((MR_Word) ((MR_hl_field(1, Var_203, (MR_Integer) 1))));
                                                  FunctorX_486 = ((MR_Word) ((MR_hl_field(0, Var_204, (MR_Integer) 0))));
                                                  Var_205 = ((MR_Word) ((MR_hl_field(0, Var_204, (MR_Integer) 1))));
                                                  succeeded = (Var_205 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_206 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_486)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_486, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_207 = ((MR_Word) ((MR_hl_field(3, FunctorX_486, (MR_Integer) 1))));
                                                        succeeded = ((MR_tag((MR_Word) Var_207)) == (MR_Integer) 1);
                                                        if (succeeded)
                                                        {
                                                          XVal_487 = ((MR_Unsigned) ((MR_hl_field(1, Var_207, (MR_Integer) 0))));
                                                          succeeded = (XVal_487 < YVal_493);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 1:
                            {
                              // case "=<"
                              ;
                              {
                                MR_Word Var_208 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_209;
                                MR_Word Var_210;
                                MR_Word Var_211;
                                MR_Word Var_212;
                                MR_Word Var_213;
                                MR_Word FunctorX_498;
                                MR_Unsigned XVal_500;

                                succeeded = ((((MR_tag((MR_Word) Var_208)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_208, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_209 = ((MR_Word) ((MR_hl_field(3, Var_208, (MR_Integer) 3))));
                                  succeeded = (Var_209 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_210 = ((MR_Word) ((MR_hl_field(1, Var_209, (MR_Integer) 0))));
                                    Var_212 = ((MR_Word) ((MR_hl_field(1, Var_209, (MR_Integer) 1))));
                                    FunctorX_498 = ((MR_Word) ((MR_hl_field(0, Var_210, (MR_Integer) 0))));
                                    Var_211 = ((MR_Word) ((MR_hl_field(0, Var_210, (MR_Integer) 1))));
                                    succeeded = (Var_211 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_212 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_498)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_498, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_213 = ((MR_Word) ((MR_hl_field(3, FunctorX_498, (MR_Integer) 1))));
                                          succeeded = ((MR_tag((MR_Word) Var_213)) == (MR_Integer) 1);
                                          if (succeeded)
                                          {
                                            XVal_500 = ((MR_Unsigned) ((MR_hl_field(1, Var_213, (MR_Integer) 0))));
                                            succeeded = (XVal_500 == (MR_Unsigned) 0U);
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_214 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_215;
                                              MR_Word Var_216;
                                              MR_Word Var_217;
                                              MR_Word Var_218;
                                              MR_Word Var_219;
                                              MR_Word FunctorY_494;
                                              MR_Unsigned YVal_495;

                                              succeeded = ((((MR_tag((MR_Word) Var_214)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_214, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_215 = ((MR_Word) ((MR_hl_field(3, Var_214, (MR_Integer) 3))));
                                                succeeded = (Var_215 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_216 = ((MR_Word) ((MR_hl_field(1, Var_215, (MR_Integer) 0))));
                                                  Var_218 = ((MR_Word) ((MR_hl_field(1, Var_215, (MR_Integer) 1))));
                                                  FunctorY_494 = ((MR_Word) ((MR_hl_field(0, Var_216, (MR_Integer) 0))));
                                                  Var_217 = ((MR_Word) ((MR_hl_field(0, Var_216, (MR_Integer) 1))));
                                                  succeeded = (Var_217 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_218 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_494)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_494, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_219 = ((MR_Word) ((MR_hl_field(3, FunctorY_494, (MR_Integer) 1))));
                                                        succeeded = ((MR_tag((MR_Word) Var_219)) == (MR_Integer) 1);
                                                        if (succeeded)
                                                        {
                                                          YVal_495 = ((MR_Unsigned) ((MR_hl_field(1, Var_219, (MR_Integer) 0))));
                                                          succeeded = (XVal_500 <= YVal_495);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 2:
                            {
                              // case ">"
                              ;
                              {
                                MR_Word Var_220 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_221;
                                MR_Word Var_222;
                                MR_Word Var_223;
                                MR_Word Var_224;
                                MR_Word Var_225;
                                MR_Word FunctorX_506;
                                MR_Unsigned XVal_508;

                                succeeded = ((((MR_tag((MR_Word) Var_220)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_220, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_221 = ((MR_Word) ((MR_hl_field(3, Var_220, (MR_Integer) 3))));
                                  succeeded = (Var_221 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_222 = ((MR_Word) ((MR_hl_field(1, Var_221, (MR_Integer) 0))));
                                    Var_224 = ((MR_Word) ((MR_hl_field(1, Var_221, (MR_Integer) 1))));
                                    FunctorX_506 = ((MR_Word) ((MR_hl_field(0, Var_222, (MR_Integer) 0))));
                                    Var_223 = ((MR_Word) ((MR_hl_field(0, Var_222, (MR_Integer) 1))));
                                    succeeded = (Var_223 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_224 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_506)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_506, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_225 = ((MR_Word) ((MR_hl_field(3, FunctorX_506, (MR_Integer) 1))));
                                          succeeded = ((MR_tag((MR_Word) Var_225)) == (MR_Integer) 1);
                                          if (succeeded)
                                          {
                                            XVal_508 = ((MR_Unsigned) ((MR_hl_field(1, Var_225, (MR_Integer) 0))));
                                            succeeded = (XVal_508 == (MR_Unsigned) 0U);
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_226 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_227;
                                              MR_Word Var_228;
                                              MR_Word Var_229;
                                              MR_Word Var_230;
                                              MR_Word Var_231;
                                              MR_Word FunctorY_502;
                                              MR_Unsigned YVal_503;

                                              succeeded = ((((MR_tag((MR_Word) Var_226)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_226, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_227 = ((MR_Word) ((MR_hl_field(3, Var_226, (MR_Integer) 3))));
                                                succeeded = (Var_227 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_228 = ((MR_Word) ((MR_hl_field(1, Var_227, (MR_Integer) 0))));
                                                  Var_230 = ((MR_Word) ((MR_hl_field(1, Var_227, (MR_Integer) 1))));
                                                  FunctorY_502 = ((MR_Word) ((MR_hl_field(0, Var_228, (MR_Integer) 0))));
                                                  Var_229 = ((MR_Word) ((MR_hl_field(0, Var_228, (MR_Integer) 1))));
                                                  succeeded = (Var_229 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_230 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_502)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_502, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_231 = ((MR_Word) ((MR_hl_field(3, FunctorY_502, (MR_Integer) 1))));
                                                        succeeded = ((MR_tag((MR_Word) Var_231)) == (MR_Integer) 1);
                                                        if (succeeded)
                                                        {
                                                          YVal_503 = ((MR_Unsigned) ((MR_hl_field(1, Var_231, (MR_Integer) 0))));
                                                          succeeded = (XVal_508 > YVal_503);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 3:
                            {
                              // case ">="
                              ;
                              {
                                MR_Word Var_232 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_233;
                                MR_Word Var_234;
                                MR_Word Var_235;
                                MR_Word Var_236;
                                MR_Word Var_237;
                                MR_Word FunctorY_515;
                                MR_Unsigned YVal_517;

                                succeeded = ((((MR_tag((MR_Word) Var_232)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_232, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_233 = ((MR_Word) ((MR_hl_field(3, Var_232, (MR_Integer) 3))));
                                  succeeded = (Var_233 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_234 = ((MR_Word) ((MR_hl_field(1, Var_233, (MR_Integer) 0))));
                                    Var_236 = ((MR_Word) ((MR_hl_field(1, Var_233, (MR_Integer) 1))));
                                    FunctorY_515 = ((MR_Word) ((MR_hl_field(0, Var_234, (MR_Integer) 0))));
                                    Var_235 = ((MR_Word) ((MR_hl_field(0, Var_234, (MR_Integer) 1))));
                                    succeeded = (Var_235 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_236 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_515)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_515, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_237 = ((MR_Word) ((MR_hl_field(3, FunctorY_515, (MR_Integer) 1))));
                                          succeeded = ((MR_tag((MR_Word) Var_237)) == (MR_Integer) 1);
                                          if (succeeded)
                                          {
                                            YVal_517 = ((MR_Unsigned) ((MR_hl_field(1, Var_237, (MR_Integer) 0))));
                                            succeeded = (YVal_517 == (MR_Unsigned) 0U);
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_238 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_239;
                                              MR_Word Var_240;
                                              MR_Word Var_241;
                                              MR_Word Var_242;
                                              MR_Word Var_243;
                                              MR_Word FunctorX_510;
                                              MR_Unsigned XVal_511;

                                              succeeded = ((((MR_tag((MR_Word) Var_238)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_238, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_239 = ((MR_Word) ((MR_hl_field(3, Var_238, (MR_Integer) 3))));
                                                succeeded = (Var_239 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_240 = ((MR_Word) ((MR_hl_field(1, Var_239, (MR_Integer) 0))));
                                                  Var_242 = ((MR_Word) ((MR_hl_field(1, Var_239, (MR_Integer) 1))));
                                                  FunctorX_510 = ((MR_Word) ((MR_hl_field(0, Var_240, (MR_Integer) 0))));
                                                  Var_241 = ((MR_Word) ((MR_hl_field(0, Var_240, (MR_Integer) 1))));
                                                  succeeded = (Var_241 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_242 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_510)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_510, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_243 = ((MR_Word) ((MR_hl_field(3, FunctorX_510, (MR_Integer) 1))));
                                                        succeeded = ((MR_tag((MR_Word) Var_243)) == (MR_Integer) 1);
                                                        if (succeeded)
                                                        {
                                                          XVal_511 = ((MR_Unsigned) ((MR_hl_field(1, Var_243, (MR_Integer) 0))));
                                                          succeeded = (XVal_511 >= YVal_517);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                        }
                        // jump out of search loop
                        ;
                        goto label_6;
                      }
                      else
                      if ((result_27 < (MR_Integer) 0))
                        hi_25 = (MR_Integer) ((MR_Unsigned) mid_26 - (MR_Unsigned) 1);
                      else
                        lo_24 = (MR_Integer) ((MR_Unsigned) mid_26 + (MR_Unsigned) 1);
                    }
                    while ((lo_24 <= hi_25));
                    succeeded = MR_FALSE;
                  label_6:;
                  }
                }
              }
              break;
            case (MR_Integer) 23:
              {
                // case "int8"
                ;
                {
                  MR_Word Var_140;
                  MR_Word Var_141;
                  MR_Word Var_142;
                  MR_Word Var_143;
                  MR_Word Var_144;
                  MR_Word Var_145;
                  MR_Word Var_146;
                  MR_Word Var_147;
                  MR_Word Var_148;
                  MR_Word Var_149;
                  MR_Word Var_150;
                  MR_Word Var_151;
                  MR_Word FunctorX_464;
                  MR_Word FunctorY_465;
                  int8_t XVal_466;
                  int8_t YVal_467;
                  MR_Integer lo_20;
                  MR_Integer hi_21;
                  MR_Integer mid_22;
                  MR_Integer result_23;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_140 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                    succeeded = ((((MR_tag((MR_Word) Var_140)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_140, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      Var_141 = ((MR_Word) ((MR_hl_field(3, Var_140, (MR_Integer) 3))));
                      succeeded = (Var_141 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Var_142 = ((MR_Word) ((MR_hl_field(1, Var_141, (MR_Integer) 0))));
                        Var_144 = ((MR_Word) ((MR_hl_field(1, Var_141, (MR_Integer) 1))));
                        FunctorX_464 = ((MR_Word) ((MR_hl_field(0, Var_142, (MR_Integer) 0))));
                        Var_143 = ((MR_Word) ((MR_hl_field(0, Var_142, (MR_Integer) 1))));
                        succeeded = (Var_143 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          succeeded = (Var_144 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            Var_145 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                            succeeded = ((((MR_tag((MR_Word) Var_145)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_145, (MR_Integer) 0)))) == (MR_Integer) 0)));
                            if (succeeded)
                            {
                              Var_146 = ((MR_Word) ((MR_hl_field(3, Var_145, (MR_Integer) 3))));
                              succeeded = (Var_146 != (MR_Word) ((MR_Unsigned) 0U));
                              if (succeeded)
                              {
                                Var_147 = ((MR_Word) ((MR_hl_field(1, Var_146, (MR_Integer) 0))));
                                Var_149 = ((MR_Word) ((MR_hl_field(1, Var_146, (MR_Integer) 1))));
                                FunctorY_465 = ((MR_Word) ((MR_hl_field(0, Var_147, (MR_Integer) 0))));
                                Var_148 = ((MR_Word) ((MR_hl_field(0, Var_147, (MR_Integer) 1))));
                                succeeded = (Var_148 == (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  succeeded = (Var_149 == (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    succeeded = ((((MR_tag((MR_Word) FunctorX_464)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_464, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                    if (succeeded)
                                    {
                                      Var_150 = ((MR_Word) ((MR_hl_field(3, FunctorX_464, (MR_Integer) 1))));
                                      succeeded = ((MR_tag((MR_Word) Var_150)) == (MR_Integer) 2);
                                      if (succeeded)
                                      {
                                        XVal_466 = ((int8_t) (MR_Word) (MR_hl_field(2, Var_150, (MR_Integer) 0)));
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_465)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_465, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_151 = ((MR_Word) ((MR_hl_field(3, FunctorY_465, (MR_Integer) 1))));
                                          succeeded = ((MR_tag((MR_Word) Var_151)) == (MR_Integer) 2);
                                          if (succeeded)
                                          {
                                            YVal_467 = ((int8_t) (MR_Word) (MR_hl_field(2, Var_151, (MR_Integer) 0)));
                                            // binary string jump switch
                                            ;
                                            lo_20 = (MR_Integer) 0;
                                            hi_21 = (MR_Integer) 3;
                                            do
                                            {
                                              mid_22 = (((MR_Integer) ((MR_Unsigned) lo_20 + (MR_Unsigned) hi_21)) / (MR_Integer) 2);
                                              result_23 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[44 + mid_22]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                                              if ((result_23 == (MR_Integer) 0))
                                              {
                                                switch (((&transform_hlds__const_prop_vector_common_2[44 + mid_22]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                                  default: /*NOTREACHED*/ MR_assert(0);
                                                  case (MR_Integer) 0:
                                                    {
                                                      // case "<"
                                                      ;
                                                      succeeded = (XVal_466 < YVal_467);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 1:
                                                    {
                                                      // case "=<"
                                                      ;
                                                      succeeded = (XVal_466 <= YVal_467);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 2:
                                                    {
                                                      // case ">"
                                                      ;
                                                      succeeded = (XVal_466 > YVal_467);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 3:
                                                    {
                                                      // case ">="
                                                      ;
                                                      succeeded = (XVal_466 >= YVal_467);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                }
                                                // jump out of search loop
                                                ;
                                                goto label_5;
                                              }
                                              else
                                              if ((result_23 < (MR_Integer) 0))
                                                hi_21 = (MR_Integer) ((MR_Unsigned) mid_22 - (MR_Unsigned) 1);
                                              else
                                                lo_20 = (MR_Integer) ((MR_Unsigned) mid_22 + (MR_Unsigned) 1);
                                            }
                                            while ((lo_20 <= hi_21));
                                            succeeded = MR_FALSE;
                                          label_5:;
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 28:
              {
                // case "uint64"
                ;
                {
                  MR_Integer lo_36;
                  MR_Integer hi_37;
                  MR_Integer mid_38;
                  MR_Integer result_39;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    // binary string jump switch
                    ;
                    lo_36 = (MR_Integer) 0;
                    hi_37 = (MR_Integer) 3;
                    do
                    {
                      mid_38 = (((MR_Integer) ((MR_Unsigned) lo_36 + (MR_Unsigned) hi_37)) / (MR_Integer) 2);
                      result_39 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[60 + mid_38]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                      if ((result_39 == (MR_Integer) 0))
                      {
                        switch (((&transform_hlds__const_prop_vector_common_2[60 + mid_38]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                          default: /*NOTREACHED*/ MR_assert(0);
                          case (MR_Integer) 0:
                            {
                              // case "<"
                              ;
                              {
                                MR_Word Var_396 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_397;
                                MR_Word Var_398;
                                MR_Word Var_399;
                                MR_Word Var_400;
                                MR_Word Var_401;
                                MR_Word FunctorY_659;
                                uint64_t YVal_661;

                                succeeded = ((((MR_tag((MR_Word) Var_396)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_396, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_397 = ((MR_Word) ((MR_hl_field(3, Var_396, (MR_Integer) 3))));
                                  succeeded = (Var_397 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_398 = ((MR_Word) ((MR_hl_field(1, Var_397, (MR_Integer) 0))));
                                    Var_400 = ((MR_Word) ((MR_hl_field(1, Var_397, (MR_Integer) 1))));
                                    FunctorY_659 = ((MR_Word) ((MR_hl_field(0, Var_398, (MR_Integer) 0))));
                                    Var_399 = ((MR_Word) ((MR_hl_field(0, Var_398, (MR_Integer) 1))));
                                    succeeded = (Var_399 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_400 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_659)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_659, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_401 = ((MR_Word) ((MR_hl_field(3, FunctorY_659, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_401)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_401, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                          if (succeeded)
                                          {
                                            YVal_661 = MR_unbox_uint64((MR_hl_field(3, Var_401, (MR_Integer) 1)));
                                            succeeded = (YVal_661 == UINT64_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_402 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_403;
                                              MR_Word Var_404;
                                              MR_Word Var_405;
                                              MR_Word Var_406;
                                              MR_Word Var_407;
                                              MR_Word FunctorX_654;
                                              uint64_t XVal_655;

                                              succeeded = ((((MR_tag((MR_Word) Var_402)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_402, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_403 = ((MR_Word) ((MR_hl_field(3, Var_402, (MR_Integer) 3))));
                                                succeeded = (Var_403 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_404 = ((MR_Word) ((MR_hl_field(1, Var_403, (MR_Integer) 0))));
                                                  Var_406 = ((MR_Word) ((MR_hl_field(1, Var_403, (MR_Integer) 1))));
                                                  FunctorX_654 = ((MR_Word) ((MR_hl_field(0, Var_404, (MR_Integer) 0))));
                                                  Var_405 = ((MR_Word) ((MR_hl_field(0, Var_404, (MR_Integer) 1))));
                                                  succeeded = (Var_405 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_406 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_654)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_654, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_407 = ((MR_Word) ((MR_hl_field(3, FunctorX_654, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_407)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_407, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                                        if (succeeded)
                                                        {
                                                          XVal_655 = MR_unbox_uint64((MR_hl_field(3, Var_407, (MR_Integer) 1)));
                                                          succeeded = (XVal_655 < YVal_661);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 1:
                            {
                              // case "=<"
                              ;
                              {
                                MR_Word Var_408 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_409;
                                MR_Word Var_410;
                                MR_Word Var_411;
                                MR_Word Var_412;
                                MR_Word Var_413;
                                MR_Word FunctorX_666;
                                uint64_t XVal_668;

                                succeeded = ((((MR_tag((MR_Word) Var_408)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_408, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_409 = ((MR_Word) ((MR_hl_field(3, Var_408, (MR_Integer) 3))));
                                  succeeded = (Var_409 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_410 = ((MR_Word) ((MR_hl_field(1, Var_409, (MR_Integer) 0))));
                                    Var_412 = ((MR_Word) ((MR_hl_field(1, Var_409, (MR_Integer) 1))));
                                    FunctorX_666 = ((MR_Word) ((MR_hl_field(0, Var_410, (MR_Integer) 0))));
                                    Var_411 = ((MR_Word) ((MR_hl_field(0, Var_410, (MR_Integer) 1))));
                                    succeeded = (Var_411 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_412 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_666)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_666, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_413 = ((MR_Word) ((MR_hl_field(3, FunctorX_666, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_413)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_413, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                          if (succeeded)
                                          {
                                            XVal_668 = MR_unbox_uint64((MR_hl_field(3, Var_413, (MR_Integer) 1)));
                                            succeeded = (XVal_668 == UINT64_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_414 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_415;
                                              MR_Word Var_416;
                                              MR_Word Var_417;
                                              MR_Word Var_418;
                                              MR_Word Var_419;
                                              MR_Word FunctorY_662;
                                              uint64_t YVal_663;

                                              succeeded = ((((MR_tag((MR_Word) Var_414)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_414, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_415 = ((MR_Word) ((MR_hl_field(3, Var_414, (MR_Integer) 3))));
                                                succeeded = (Var_415 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_416 = ((MR_Word) ((MR_hl_field(1, Var_415, (MR_Integer) 0))));
                                                  Var_418 = ((MR_Word) ((MR_hl_field(1, Var_415, (MR_Integer) 1))));
                                                  FunctorY_662 = ((MR_Word) ((MR_hl_field(0, Var_416, (MR_Integer) 0))));
                                                  Var_417 = ((MR_Word) ((MR_hl_field(0, Var_416, (MR_Integer) 1))));
                                                  succeeded = (Var_417 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_418 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_662)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_662, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_419 = ((MR_Word) ((MR_hl_field(3, FunctorY_662, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_419)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_419, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                                        if (succeeded)
                                                        {
                                                          YVal_663 = MR_unbox_uint64((MR_hl_field(3, Var_419, (MR_Integer) 1)));
                                                          succeeded = (XVal_668 <= YVal_663);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 2:
                            {
                              // case ">"
                              ;
                              {
                                MR_Word Var_420 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_421;
                                MR_Word Var_422;
                                MR_Word Var_423;
                                MR_Word Var_424;
                                MR_Word Var_425;
                                MR_Word FunctorX_674;
                                uint64_t XVal_676;

                                succeeded = ((((MR_tag((MR_Word) Var_420)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_420, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_421 = ((MR_Word) ((MR_hl_field(3, Var_420, (MR_Integer) 3))));
                                  succeeded = (Var_421 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_422 = ((MR_Word) ((MR_hl_field(1, Var_421, (MR_Integer) 0))));
                                    Var_424 = ((MR_Word) ((MR_hl_field(1, Var_421, (MR_Integer) 1))));
                                    FunctorX_674 = ((MR_Word) ((MR_hl_field(0, Var_422, (MR_Integer) 0))));
                                    Var_423 = ((MR_Word) ((MR_hl_field(0, Var_422, (MR_Integer) 1))));
                                    succeeded = (Var_423 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_424 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_674)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_674, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_425 = ((MR_Word) ((MR_hl_field(3, FunctorX_674, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_425)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_425, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                          if (succeeded)
                                          {
                                            XVal_676 = MR_unbox_uint64((MR_hl_field(3, Var_425, (MR_Integer) 1)));
                                            succeeded = (XVal_676 == UINT64_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_426 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_427;
                                              MR_Word Var_428;
                                              MR_Word Var_429;
                                              MR_Word Var_430;
                                              MR_Word Var_431;
                                              MR_Word FunctorY_670;
                                              uint64_t YVal_671;

                                              succeeded = ((((MR_tag((MR_Word) Var_426)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_426, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_427 = ((MR_Word) ((MR_hl_field(3, Var_426, (MR_Integer) 3))));
                                                succeeded = (Var_427 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_428 = ((MR_Word) ((MR_hl_field(1, Var_427, (MR_Integer) 0))));
                                                  Var_430 = ((MR_Word) ((MR_hl_field(1, Var_427, (MR_Integer) 1))));
                                                  FunctorY_670 = ((MR_Word) ((MR_hl_field(0, Var_428, (MR_Integer) 0))));
                                                  Var_429 = ((MR_Word) ((MR_hl_field(0, Var_428, (MR_Integer) 1))));
                                                  succeeded = (Var_429 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_430 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_670)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_670, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_431 = ((MR_Word) ((MR_hl_field(3, FunctorY_670, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_431)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_431, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                                        if (succeeded)
                                                        {
                                                          YVal_671 = MR_unbox_uint64((MR_hl_field(3, Var_431, (MR_Integer) 1)));
                                                          succeeded = (XVal_676 > YVal_671);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 3:
                            {
                              // case ">="
                              ;
                              {
                                MR_Word Var_432 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_433;
                                MR_Word Var_434;
                                MR_Word Var_435;
                                MR_Word Var_436;
                                MR_Word Var_437;
                                MR_Word FunctorY_683;
                                uint64_t YVal_685;

                                succeeded = ((((MR_tag((MR_Word) Var_432)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_432, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_433 = ((MR_Word) ((MR_hl_field(3, Var_432, (MR_Integer) 3))));
                                  succeeded = (Var_433 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_434 = ((MR_Word) ((MR_hl_field(1, Var_433, (MR_Integer) 0))));
                                    Var_436 = ((MR_Word) ((MR_hl_field(1, Var_433, (MR_Integer) 1))));
                                    FunctorY_683 = ((MR_Word) ((MR_hl_field(0, Var_434, (MR_Integer) 0))));
                                    Var_435 = ((MR_Word) ((MR_hl_field(0, Var_434, (MR_Integer) 1))));
                                    succeeded = (Var_435 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_436 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_683)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_683, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_437 = ((MR_Word) ((MR_hl_field(3, FunctorY_683, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_437)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_437, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                          if (succeeded)
                                          {
                                            YVal_685 = MR_unbox_uint64((MR_hl_field(3, Var_437, (MR_Integer) 1)));
                                            succeeded = (YVal_685 == UINT64_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_438 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_439;
                                              MR_Word Var_440;
                                              MR_Word Var_441;
                                              MR_Word Var_442;
                                              MR_Word Var_443;
                                              MR_Word FunctorX_678;
                                              uint64_t XVal_679;

                                              succeeded = ((((MR_tag((MR_Word) Var_438)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_438, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_439 = ((MR_Word) ((MR_hl_field(3, Var_438, (MR_Integer) 3))));
                                                succeeded = (Var_439 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_440 = ((MR_Word) ((MR_hl_field(1, Var_439, (MR_Integer) 0))));
                                                  Var_442 = ((MR_Word) ((MR_hl_field(1, Var_439, (MR_Integer) 1))));
                                                  FunctorX_678 = ((MR_Word) ((MR_hl_field(0, Var_440, (MR_Integer) 0))));
                                                  Var_441 = ((MR_Word) ((MR_hl_field(0, Var_440, (MR_Integer) 1))));
                                                  succeeded = (Var_441 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_442 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_678)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_678, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_443 = ((MR_Word) ((MR_hl_field(3, FunctorX_678, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_443)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_443, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                                        if (succeeded)
                                                        {
                                                          XVal_679 = MR_unbox_uint64((MR_hl_field(3, Var_443, (MR_Integer) 1)));
                                                          succeeded = (XVal_679 >= YVal_685);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                        }
                        // jump out of search loop
                        ;
                        goto label_9;
                      }
                      else
                      if ((result_39 < (MR_Integer) 0))
                        hi_37 = (MR_Integer) ((MR_Unsigned) mid_38 - (MR_Unsigned) 1);
                      else
                        lo_36 = (MR_Integer) ((MR_Unsigned) mid_38 + (MR_Unsigned) 1);
                    }
                    while ((lo_36 <= hi_37));
                    succeeded = MR_FALSE;
                  label_9:;
                  }
                }
              }
              break;
            case (MR_Integer) 33:
              {
                // case "uint16"
                ;
                {
                  MR_Integer lo_28;
                  MR_Integer hi_29;
                  MR_Integer mid_30;
                  MR_Integer result_31;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    // binary string jump switch
                    ;
                    lo_28 = (MR_Integer) 0;
                    hi_29 = (MR_Integer) 3;
                    do
                    {
                      mid_30 = (((MR_Integer) ((MR_Unsigned) lo_28 + (MR_Unsigned) hi_29)) / (MR_Integer) 2);
                      result_31 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[52 + mid_30]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                      if ((result_31 == (MR_Integer) 0))
                      {
                        switch (((&transform_hlds__const_prop_vector_common_2[52 + mid_30]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                          default: /*NOTREACHED*/ MR_assert(0);
                          case (MR_Integer) 0:
                            {
                              // case "<"
                              ;
                              {
                                MR_Word Var_296 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_297;
                                MR_Word Var_298;
                                MR_Word Var_299;
                                MR_Word Var_300;
                                MR_Word Var_301;
                                MR_Word FunctorY_575;
                                uint16_t YVal_577;

                                succeeded = ((((MR_tag((MR_Word) Var_296)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_296, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_297 = ((MR_Word) ((MR_hl_field(3, Var_296, (MR_Integer) 3))));
                                  succeeded = (Var_297 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_298 = ((MR_Word) ((MR_hl_field(1, Var_297, (MR_Integer) 0))));
                                    Var_300 = ((MR_Word) ((MR_hl_field(1, Var_297, (MR_Integer) 1))));
                                    FunctorY_575 = ((MR_Word) ((MR_hl_field(0, Var_298, (MR_Integer) 0))));
                                    Var_299 = ((MR_Word) ((MR_hl_field(0, Var_298, (MR_Integer) 1))));
                                    succeeded = (Var_299 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_300 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_575)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_575, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_301 = ((MR_Word) ((MR_hl_field(3, FunctorY_575, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_301)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_301, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                          if (succeeded)
                                          {
                                            YVal_577 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_301, (MR_Integer) 1)));
                                            succeeded = (YVal_577 == UINT16_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_302 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_303;
                                              MR_Word Var_304;
                                              MR_Word Var_305;
                                              MR_Word Var_306;
                                              MR_Word Var_307;
                                              MR_Word FunctorX_570;
                                              uint16_t XVal_571;

                                              succeeded = ((((MR_tag((MR_Word) Var_302)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_302, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_303 = ((MR_Word) ((MR_hl_field(3, Var_302, (MR_Integer) 3))));
                                                succeeded = (Var_303 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_304 = ((MR_Word) ((MR_hl_field(1, Var_303, (MR_Integer) 0))));
                                                  Var_306 = ((MR_Word) ((MR_hl_field(1, Var_303, (MR_Integer) 1))));
                                                  FunctorX_570 = ((MR_Word) ((MR_hl_field(0, Var_304, (MR_Integer) 0))));
                                                  Var_305 = ((MR_Word) ((MR_hl_field(0, Var_304, (MR_Integer) 1))));
                                                  succeeded = (Var_305 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_306 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_570)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_570, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_307 = ((MR_Word) ((MR_hl_field(3, FunctorX_570, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_307)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_307, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                                        if (succeeded)
                                                        {
                                                          XVal_571 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_307, (MR_Integer) 1)));
                                                          succeeded = (XVal_571 < YVal_577);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 1:
                            {
                              // case "=<"
                              ;
                              {
                                MR_Word Var_308 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_309;
                                MR_Word Var_310;
                                MR_Word Var_311;
                                MR_Word Var_312;
                                MR_Word Var_313;
                                MR_Word FunctorX_582;
                                uint16_t XVal_584;

                                succeeded = ((((MR_tag((MR_Word) Var_308)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_308, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_309 = ((MR_Word) ((MR_hl_field(3, Var_308, (MR_Integer) 3))));
                                  succeeded = (Var_309 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_310 = ((MR_Word) ((MR_hl_field(1, Var_309, (MR_Integer) 0))));
                                    Var_312 = ((MR_Word) ((MR_hl_field(1, Var_309, (MR_Integer) 1))));
                                    FunctorX_582 = ((MR_Word) ((MR_hl_field(0, Var_310, (MR_Integer) 0))));
                                    Var_311 = ((MR_Word) ((MR_hl_field(0, Var_310, (MR_Integer) 1))));
                                    succeeded = (Var_311 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_312 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_582)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_582, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_313 = ((MR_Word) ((MR_hl_field(3, FunctorX_582, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_313)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_313, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                          if (succeeded)
                                          {
                                            XVal_584 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_313, (MR_Integer) 1)));
                                            succeeded = (XVal_584 == UINT16_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_314 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_315;
                                              MR_Word Var_316;
                                              MR_Word Var_317;
                                              MR_Word Var_318;
                                              MR_Word Var_319;
                                              MR_Word FunctorY_578;
                                              uint16_t YVal_579;

                                              succeeded = ((((MR_tag((MR_Word) Var_314)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_314, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_315 = ((MR_Word) ((MR_hl_field(3, Var_314, (MR_Integer) 3))));
                                                succeeded = (Var_315 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_316 = ((MR_Word) ((MR_hl_field(1, Var_315, (MR_Integer) 0))));
                                                  Var_318 = ((MR_Word) ((MR_hl_field(1, Var_315, (MR_Integer) 1))));
                                                  FunctorY_578 = ((MR_Word) ((MR_hl_field(0, Var_316, (MR_Integer) 0))));
                                                  Var_317 = ((MR_Word) ((MR_hl_field(0, Var_316, (MR_Integer) 1))));
                                                  succeeded = (Var_317 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_318 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_578)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_578, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_319 = ((MR_Word) ((MR_hl_field(3, FunctorY_578, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_319)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_319, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                                        if (succeeded)
                                                        {
                                                          YVal_579 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_319, (MR_Integer) 1)));
                                                          succeeded = (XVal_584 <= YVal_579);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 2:
                            {
                              // case ">"
                              ;
                              {
                                MR_Word Var_320 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                MR_Word Var_321;
                                MR_Word Var_322;
                                MR_Word Var_323;
                                MR_Word Var_324;
                                MR_Word Var_325;
                                MR_Word FunctorX_590;
                                uint16_t XVal_592;

                                succeeded = ((((MR_tag((MR_Word) Var_320)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_320, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_321 = ((MR_Word) ((MR_hl_field(3, Var_320, (MR_Integer) 3))));
                                  succeeded = (Var_321 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_322 = ((MR_Word) ((MR_hl_field(1, Var_321, (MR_Integer) 0))));
                                    Var_324 = ((MR_Word) ((MR_hl_field(1, Var_321, (MR_Integer) 1))));
                                    FunctorX_590 = ((MR_Word) ((MR_hl_field(0, Var_322, (MR_Integer) 0))));
                                    Var_323 = ((MR_Word) ((MR_hl_field(0, Var_322, (MR_Integer) 1))));
                                    succeeded = (Var_323 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_324 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorX_590)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_590, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_325 = ((MR_Word) ((MR_hl_field(3, FunctorX_590, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_325)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_325, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                          if (succeeded)
                                          {
                                            XVal_592 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_325, (MR_Integer) 1)));
                                            succeeded = (XVal_592 == UINT16_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 0;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_326 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                              MR_Word Var_327;
                                              MR_Word Var_328;
                                              MR_Word Var_329;
                                              MR_Word Var_330;
                                              MR_Word Var_331;
                                              MR_Word FunctorY_586;
                                              uint16_t YVal_587;

                                              succeeded = ((((MR_tag((MR_Word) Var_326)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_326, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_327 = ((MR_Word) ((MR_hl_field(3, Var_326, (MR_Integer) 3))));
                                                succeeded = (Var_327 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_328 = ((MR_Word) ((MR_hl_field(1, Var_327, (MR_Integer) 0))));
                                                  Var_330 = ((MR_Word) ((MR_hl_field(1, Var_327, (MR_Integer) 1))));
                                                  FunctorY_586 = ((MR_Word) ((MR_hl_field(0, Var_328, (MR_Integer) 0))));
                                                  Var_329 = ((MR_Word) ((MR_hl_field(0, Var_328, (MR_Integer) 1))));
                                                  succeeded = (Var_329 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_330 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorY_586)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_586, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_331 = ((MR_Word) ((MR_hl_field(3, FunctorY_586, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_331)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_331, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                                        if (succeeded)
                                                        {
                                                          YVal_587 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_331, (MR_Integer) 1)));
                                                          succeeded = (XVal_592 > YVal_587);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                          case (MR_Integer) 3:
                            {
                              // case ">="
                              ;
                              {
                                MR_Word Var_332 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                                MR_Word Var_333;
                                MR_Word Var_334;
                                MR_Word Var_335;
                                MR_Word Var_336;
                                MR_Word Var_337;
                                MR_Word FunctorY_599;
                                uint16_t YVal_601;

                                succeeded = ((((MR_tag((MR_Word) Var_332)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_332, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                if (succeeded)
                                {
                                  Var_333 = ((MR_Word) ((MR_hl_field(3, Var_332, (MR_Integer) 3))));
                                  succeeded = (Var_333 != (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    Var_334 = ((MR_Word) ((MR_hl_field(1, Var_333, (MR_Integer) 0))));
                                    Var_336 = ((MR_Word) ((MR_hl_field(1, Var_333, (MR_Integer) 1))));
                                    FunctorY_599 = ((MR_Word) ((MR_hl_field(0, Var_334, (MR_Integer) 0))));
                                    Var_335 = ((MR_Word) ((MR_hl_field(0, Var_334, (MR_Integer) 1))));
                                    succeeded = (Var_335 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_336 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_599)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_599, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_337 = ((MR_Word) ((MR_hl_field(3, FunctorY_599, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_337)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_337, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                          if (succeeded)
                                          {
                                            YVal_601 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_337, (MR_Integer) 1)));
                                            succeeded = (YVal_601 == UINT16_C(0));
                                            if (succeeded)
                                            {
                                              *Result_10 = (MR_Integer) 1;
                                              succeeded = MR_TRUE;
                                            }
                                            else
                                            {
                                              MR_Word Var_338 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                                              MR_Word Var_339;
                                              MR_Word Var_340;
                                              MR_Word Var_341;
                                              MR_Word Var_342;
                                              MR_Word Var_343;
                                              MR_Word FunctorX_594;
                                              uint16_t XVal_595;

                                              succeeded = ((((MR_tag((MR_Word) Var_338)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_338, (MR_Integer) 0)))) == (MR_Integer) 0)));
                                              if (succeeded)
                                              {
                                                Var_339 = ((MR_Word) ((MR_hl_field(3, Var_338, (MR_Integer) 3))));
                                                succeeded = (Var_339 != (MR_Word) ((MR_Unsigned) 0U));
                                                if (succeeded)
                                                {
                                                  Var_340 = ((MR_Word) ((MR_hl_field(1, Var_339, (MR_Integer) 0))));
                                                  Var_342 = ((MR_Word) ((MR_hl_field(1, Var_339, (MR_Integer) 1))));
                                                  FunctorX_594 = ((MR_Word) ((MR_hl_field(0, Var_340, (MR_Integer) 0))));
                                                  Var_341 = ((MR_Word) ((MR_hl_field(0, Var_340, (MR_Integer) 1))));
                                                  succeeded = (Var_341 == (MR_Word) ((MR_Unsigned) 0U));
                                                  if (succeeded)
                                                  {
                                                    succeeded = (Var_342 == (MR_Word) ((MR_Unsigned) 0U));
                                                    if (succeeded)
                                                    {
                                                      succeeded = ((((MR_tag((MR_Word) FunctorX_594)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_594, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                                      if (succeeded)
                                                      {
                                                        Var_343 = ((MR_Word) ((MR_hl_field(3, FunctorX_594, (MR_Integer) 1))));
                                                        succeeded = ((((MR_tag((MR_Word) Var_343)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_343, (MR_Integer) 0)))) == (MR_Integer) 2)));
                                                        if (succeeded)
                                                        {
                                                          XVal_595 = ((uint16_t) (MR_Word) (MR_hl_field(3, Var_343, (MR_Integer) 1)));
                                                          succeeded = (XVal_595 >= YVal_601);
                                                          if (succeeded)
                                                            *Result_10 = (MR_Integer) 1;
                                                          else
                                                            *Result_10 = (MR_Integer) 0;
                                                          succeeded = MR_TRUE;
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                            break;
                        }
                        // jump out of search loop
                        ;
                        goto label_7;
                      }
                      else
                      if ((result_31 < (MR_Integer) 0))
                        hi_29 = (MR_Integer) ((MR_Unsigned) mid_30 - (MR_Unsigned) 1);
                      else
                        lo_28 = (MR_Integer) ((MR_Unsigned) mid_30 + (MR_Unsigned) 1);
                    }
                    while ((lo_28 <= hi_29));
                    succeeded = MR_FALSE;
                  label_7:;
                  }
                }
              }
              break;
            case (MR_Integer) 35:
              {
                // case "float"
                ;
                {
                  MR_Word Var_446;
                  MR_Word Var_447;
                  MR_Word Var_448;
                  MR_Word Var_449;
                  MR_Word Var_450;
                  MR_Word Var_451;
                  MR_Word Var_452;
                  MR_Word Var_453;
                  MR_Word Var_454;
                  MR_Word Var_455;
                  MR_Word Var_456;
                  MR_Word Var_457;
                  MR_Float XVal_698;
                  MR_Float YVal_699;
                  MR_Integer lo_0;
                  MR_Integer hi_1;
                  MR_Integer mid_2;
                  MR_Integer result_3;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_446 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                    succeeded = ((((MR_tag((MR_Word) Var_446)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_446, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      Var_447 = ((MR_Word) ((MR_hl_field(3, Var_446, (MR_Integer) 3))));
                      succeeded = (Var_447 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Var_448 = ((MR_Word) ((MR_hl_field(1, Var_447, (MR_Integer) 0))));
                        Var_451 = ((MR_Word) ((MR_hl_field(1, Var_447, (MR_Integer) 1))));
                        Var_449 = ((MR_Word) ((MR_hl_field(0, Var_448, (MR_Integer) 0))));
                        Var_450 = ((MR_Word) ((MR_hl_field(0, Var_448, (MR_Integer) 1))));
                        succeeded = ((((MR_tag((MR_Word) Var_449)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_449, (MR_Integer) 0)))) == (MR_Integer) 6)));
                        if (succeeded)
                        {
                          XVal_698 = MR_unbox_float((MR_hl_field(3, Var_449, (MR_Integer) 1)));
                          succeeded = (Var_450 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            succeeded = (Var_451 == (MR_Word) ((MR_Unsigned) 0U));
                            if (succeeded)
                            {
                              Var_452 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                              succeeded = ((((MR_tag((MR_Word) Var_452)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_452, (MR_Integer) 0)))) == (MR_Integer) 0)));
                              if (succeeded)
                              {
                                Var_453 = ((MR_Word) ((MR_hl_field(3, Var_452, (MR_Integer) 3))));
                                succeeded = (Var_453 != (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  Var_454 = ((MR_Word) ((MR_hl_field(1, Var_453, (MR_Integer) 0))));
                                  Var_457 = ((MR_Word) ((MR_hl_field(1, Var_453, (MR_Integer) 1))));
                                  Var_455 = ((MR_Word) ((MR_hl_field(0, Var_454, (MR_Integer) 0))));
                                  Var_456 = ((MR_Word) ((MR_hl_field(0, Var_454, (MR_Integer) 1))));
                                  succeeded = ((((MR_tag((MR_Word) Var_455)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_455, (MR_Integer) 0)))) == (MR_Integer) 6)));
                                  if (succeeded)
                                  {
                                    YVal_699 = MR_unbox_float((MR_hl_field(3, Var_455, (MR_Integer) 1)));
                                    succeeded = (Var_456 == (MR_Word) ((MR_Unsigned) 0U));
                                    if (succeeded)
                                    {
                                      succeeded = (Var_457 == (MR_Word) ((MR_Unsigned) 0U));
                                      if (succeeded)
                                      {
                                        // binary string jump switch
                                        ;
                                        lo_0 = (MR_Integer) 0;
                                        hi_1 = (MR_Integer) 3;
                                        do
                                        {
                                          mid_2 = (((MR_Integer) ((MR_Unsigned) lo_0 + (MR_Unsigned) hi_1)) / (MR_Integer) 2);
                                          result_3 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[24 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                                          if ((result_3 == (MR_Integer) 0))
                                          {
                                            switch (((&transform_hlds__const_prop_vector_common_2[24 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                              default: /*NOTREACHED*/ MR_assert(0);
                                              case (MR_Integer) 0:
                                                {
                                                  // case "<"
                                                  ;
                                                  succeeded = (XVal_698 < YVal_699);
                                                  if (succeeded)
                                                    *Result_10 = (MR_Integer) 1;
                                                  else
                                                    *Result_10 = (MR_Integer) 0;
                                                  succeeded = MR_TRUE;
                                                }
                                                break;
                                              case (MR_Integer) 1:
                                                {
                                                  // case "=<"
                                                  ;
                                                  succeeded = (XVal_698 <= YVal_699);
                                                  if (succeeded)
                                                    *Result_10 = (MR_Integer) 1;
                                                  else
                                                    *Result_10 = (MR_Integer) 0;
                                                  succeeded = MR_TRUE;
                                                }
                                                break;
                                              case (MR_Integer) 2:
                                                {
                                                  // case ">"
                                                  ;
                                                  succeeded = (XVal_698 > YVal_699);
                                                  if (succeeded)
                                                    *Result_10 = (MR_Integer) 1;
                                                  else
                                                    *Result_10 = (MR_Integer) 0;
                                                  succeeded = MR_TRUE;
                                                }
                                                break;
                                              case (MR_Integer) 3:
                                                {
                                                  // case ">="
                                                  ;
                                                  succeeded = (XVal_698 >= YVal_699);
                                                  if (succeeded)
                                                    *Result_10 = (MR_Integer) 1;
                                                  else
                                                    *Result_10 = (MR_Integer) 0;
                                                  succeeded = MR_TRUE;
                                                }
                                                break;
                                            }
                                            // jump out of search loop
                                            ;
                                            goto label_0;
                                          }
                                          else
                                          if ((result_3 < (MR_Integer) 0))
                                            hi_1 = (MR_Integer) ((MR_Unsigned) mid_2 - (MR_Unsigned) 1);
                                          else
                                            lo_0 = (MR_Integer) ((MR_Unsigned) mid_2 + (MR_Unsigned) 1);
                                        }
                                        while ((lo_0 <= hi_1));
                                        succeeded = MR_FALSE;
                                      label_0:;
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 37:
              {
                // case "int32"
                ;
                {
                  MR_Word Var_168;
                  MR_Word Var_169;
                  MR_Word Var_170;
                  MR_Word Var_171;
                  MR_Word Var_172;
                  MR_Word Var_173;
                  MR_Word Var_174;
                  MR_Word Var_175;
                  MR_Word Var_176;
                  MR_Word Var_177;
                  MR_Word Var_178;
                  MR_Word Var_179;
                  MR_Word FunctorX_476;
                  MR_Word FunctorY_477;
                  int32_t XVal_478;
                  int32_t YVal_479;
                  MR_Integer lo_12;
                  MR_Integer hi_13;
                  MR_Integer mid_14;
                  MR_Integer result_15;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_168 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                    succeeded = ((((MR_tag((MR_Word) Var_168)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_168, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      Var_169 = ((MR_Word) ((MR_hl_field(3, Var_168, (MR_Integer) 3))));
                      succeeded = (Var_169 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Var_170 = ((MR_Word) ((MR_hl_field(1, Var_169, (MR_Integer) 0))));
                        Var_172 = ((MR_Word) ((MR_hl_field(1, Var_169, (MR_Integer) 1))));
                        FunctorX_476 = ((MR_Word) ((MR_hl_field(0, Var_170, (MR_Integer) 0))));
                        Var_171 = ((MR_Word) ((MR_hl_field(0, Var_170, (MR_Integer) 1))));
                        succeeded = (Var_171 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          succeeded = (Var_172 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            Var_173 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                            succeeded = ((((MR_tag((MR_Word) Var_173)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_173, (MR_Integer) 0)))) == (MR_Integer) 0)));
                            if (succeeded)
                            {
                              Var_174 = ((MR_Word) ((MR_hl_field(3, Var_173, (MR_Integer) 3))));
                              succeeded = (Var_174 != (MR_Word) ((MR_Unsigned) 0U));
                              if (succeeded)
                              {
                                Var_175 = ((MR_Word) ((MR_hl_field(1, Var_174, (MR_Integer) 0))));
                                Var_177 = ((MR_Word) ((MR_hl_field(1, Var_174, (MR_Integer) 1))));
                                FunctorY_477 = ((MR_Word) ((MR_hl_field(0, Var_175, (MR_Integer) 0))));
                                Var_176 = ((MR_Word) ((MR_hl_field(0, Var_175, (MR_Integer) 1))));
                                succeeded = (Var_176 == (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  succeeded = (Var_177 == (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    succeeded = ((((MR_tag((MR_Word) FunctorX_476)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_476, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                    if (succeeded)
                                    {
                                      Var_178 = ((MR_Word) ((MR_hl_field(3, FunctorX_476, (MR_Integer) 1))));
                                      succeeded = ((((MR_tag((MR_Word) Var_178)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_178, (MR_Integer) 0)))) == (MR_Integer) 3)));
                                      if (succeeded)
                                      {
                                        XVal_478 = ((int32_t) (MR_Word) (MR_hl_field(3, Var_178, (MR_Integer) 1)));
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_477)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_477, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_179 = ((MR_Word) ((MR_hl_field(3, FunctorY_477, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_179)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_179, (MR_Integer) 0)))) == (MR_Integer) 3)));
                                          if (succeeded)
                                          {
                                            YVal_479 = ((int32_t) (MR_Word) (MR_hl_field(3, Var_179, (MR_Integer) 1)));
                                            // binary string jump switch
                                            ;
                                            lo_12 = (MR_Integer) 0;
                                            hi_13 = (MR_Integer) 3;
                                            do
                                            {
                                              mid_14 = (((MR_Integer) ((MR_Unsigned) lo_12 + (MR_Unsigned) hi_13)) / (MR_Integer) 2);
                                              result_15 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[36 + mid_14]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                                              if ((result_15 == (MR_Integer) 0))
                                              {
                                                switch (((&transform_hlds__const_prop_vector_common_2[36 + mid_14]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                                  default: /*NOTREACHED*/ MR_assert(0);
                                                  case (MR_Integer) 0:
                                                    {
                                                      // case "<"
                                                      ;
                                                      succeeded = (XVal_478 < YVal_479);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 1:
                                                    {
                                                      // case "=<"
                                                      ;
                                                      succeeded = (XVal_478 <= YVal_479);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 2:
                                                    {
                                                      // case ">"
                                                      ;
                                                      succeeded = (XVal_478 > YVal_479);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 3:
                                                    {
                                                      // case ">="
                                                      ;
                                                      succeeded = (XVal_478 >= YVal_479);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                }
                                                // jump out of search loop
                                                ;
                                                goto label_3;
                                              }
                                              else
                                              if ((result_15 < (MR_Integer) 0))
                                                hi_13 = (MR_Integer) ((MR_Unsigned) mid_14 - (MR_Unsigned) 1);
                                              else
                                                lo_12 = (MR_Integer) ((MR_Unsigned) mid_14 + (MR_Unsigned) 1);
                                            }
                                            while ((lo_12 <= hi_13));
                                            succeeded = MR_FALSE;
                                          label_3:;
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 48:
              {
                // case "int64"
                ;
                {
                  MR_Word Var_182;
                  MR_Word Var_183;
                  MR_Word Var_184;
                  MR_Word Var_185;
                  MR_Word Var_186;
                  MR_Word Var_187;
                  MR_Word Var_188;
                  MR_Word Var_189;
                  MR_Word Var_190;
                  MR_Word Var_191;
                  MR_Word Var_192;
                  MR_Word Var_193;
                  MR_Word FunctorX_482;
                  MR_Word FunctorY_483;
                  int64_t XVal_484;
                  int64_t YVal_485;
                  MR_Integer lo_16;
                  MR_Integer hi_17;
                  MR_Integer mid_18;
                  MR_Integer result_19;

                  succeeded = (Var_808 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_182 = ((MR_Word) ((MR_hl_field(0, Var_807, (MR_Integer) 2))));
                    succeeded = ((((MR_tag((MR_Word) Var_182)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_182, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      Var_183 = ((MR_Word) ((MR_hl_field(3, Var_182, (MR_Integer) 3))));
                      succeeded = (Var_183 != (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        Var_184 = ((MR_Word) ((MR_hl_field(1, Var_183, (MR_Integer) 0))));
                        Var_186 = ((MR_Word) ((MR_hl_field(1, Var_183, (MR_Integer) 1))));
                        FunctorX_482 = ((MR_Word) ((MR_hl_field(0, Var_184, (MR_Integer) 0))));
                        Var_185 = ((MR_Word) ((MR_hl_field(0, Var_184, (MR_Integer) 1))));
                        succeeded = (Var_185 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          succeeded = (Var_186 == (MR_Word) ((MR_Unsigned) 0U));
                          if (succeeded)
                          {
                            Var_187 = ((MR_Word) ((MR_hl_field(0, Var_809, (MR_Integer) 2))));
                            succeeded = ((((MR_tag((MR_Word) Var_187)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_187, (MR_Integer) 0)))) == (MR_Integer) 0)));
                            if (succeeded)
                            {
                              Var_188 = ((MR_Word) ((MR_hl_field(3, Var_187, (MR_Integer) 3))));
                              succeeded = (Var_188 != (MR_Word) ((MR_Unsigned) 0U));
                              if (succeeded)
                              {
                                Var_189 = ((MR_Word) ((MR_hl_field(1, Var_188, (MR_Integer) 0))));
                                Var_191 = ((MR_Word) ((MR_hl_field(1, Var_188, (MR_Integer) 1))));
                                FunctorY_483 = ((MR_Word) ((MR_hl_field(0, Var_189, (MR_Integer) 0))));
                                Var_190 = ((MR_Word) ((MR_hl_field(0, Var_189, (MR_Integer) 1))));
                                succeeded = (Var_190 == (MR_Word) ((MR_Unsigned) 0U));
                                if (succeeded)
                                {
                                  succeeded = (Var_191 == (MR_Word) ((MR_Unsigned) 0U));
                                  if (succeeded)
                                  {
                                    succeeded = ((((MR_tag((MR_Word) FunctorX_482)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_482, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                    if (succeeded)
                                    {
                                      Var_192 = ((MR_Word) ((MR_hl_field(3, FunctorX_482, (MR_Integer) 1))));
                                      succeeded = ((((MR_tag((MR_Word) Var_192)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_192, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                      if (succeeded)
                                      {
                                        XVal_484 = MR_unbox_int64((MR_hl_field(3, Var_192, (MR_Integer) 1)));
                                        succeeded = ((((MR_tag((MR_Word) FunctorY_483)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_483, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                        if (succeeded)
                                        {
                                          Var_193 = ((MR_Word) ((MR_hl_field(3, FunctorY_483, (MR_Integer) 1))));
                                          succeeded = ((((MR_tag((MR_Word) Var_193)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_193, (MR_Integer) 0)))) == (MR_Integer) 5)));
                                          if (succeeded)
                                          {
                                            YVal_485 = MR_unbox_int64((MR_hl_field(3, Var_193, (MR_Integer) 1)));
                                            // binary string jump switch
                                            ;
                                            lo_16 = (MR_Integer) 0;
                                            hi_17 = (MR_Integer) 3;
                                            do
                                            {
                                              mid_18 = (((MR_Integer) ((MR_Unsigned) lo_16 + (MR_Unsigned) hi_17)) / (MR_Integer) 2);
                                              result_19 = MR_strcmp(PredName_7, ((&transform_hlds__const_prop_vector_common_2[40 + mid_18]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                                              if ((result_19 == (MR_Integer) 0))
                                              {
                                                switch (((&transform_hlds__const_prop_vector_common_2[40 + mid_18]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                                  default: /*NOTREACHED*/ MR_assert(0);
                                                  case (MR_Integer) 0:
                                                    {
                                                      // case "<"
                                                      ;
                                                      succeeded = (XVal_484 < YVal_485);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 1:
                                                    {
                                                      // case "=<"
                                                      ;
                                                      succeeded = (XVal_484 <= YVal_485);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 2:
                                                    {
                                                      // case ">"
                                                      ;
                                                      succeeded = (XVal_484 > YVal_485);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                  case (MR_Integer) 3:
                                                    {
                                                      // case ">="
                                                      ;
                                                      succeeded = (XVal_484 >= YVal_485);
                                                      if (succeeded)
                                                        *Result_10 = (MR_Integer) 1;
                                                      else
                                                        *Result_10 = (MR_Integer) 0;
                                                      succeeded = MR_TRUE;
                                                    }
                                                    break;
                                                }
                                                // jump out of search loop
                                                ;
                                                goto label_4;
                                              }
                                              else
                                              if ((result_19 < (MR_Integer) 0))
                                                hi_17 = (MR_Integer) ((MR_Unsigned) mid_18 - (MR_Unsigned) 1);
                                              else
                                                lo_16 = (MR_Integer) ((MR_Unsigned) mid_18 + (MR_Unsigned) 1);
                                            }
                                            while ((lo_16 <= hi_17));
                                            succeeded = MR_FALSE;
                                          label_4:;
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              break;
          }
          // jump out of search loop
          ;
          goto label_11;
        }
        succeeded = MR_FALSE;
      label_11:;
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__eval_unify_3_p_0(
  MR_Word X_4,
  MR_Word Y_5,
  MR_Word * Result_6)
{
  MR_bool succeeded;
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, X_4, (MR_Integer) 0))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Y_5, (MR_Integer) 0))));

  succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&transform_hlds__const_prop_scalar_common_1[0]), ((MR_Box) (Var_15)), ((MR_Box) (Var_34)));
  if (succeeded)
  {
    *Result_6 = (MR_Integer) 1;
    succeeded = MR_TRUE;
  }
  else
  {
    MR_Word XCtor_9;
    MR_Word XArgVars_10;
    MR_Word YCtor_13;
    MR_Word YArgVars_14;
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, X_4, (MR_Integer) 2))));
    MR_Word Var_17;
    MR_Word Var_18;
    MR_Word Var_19;
    MR_Word Var_20;
    MR_Word Var_21;
    MR_Word Var_22;
    MR_Word Var_23;
    MR_Word TypeInfo_38_38;

    succeeded = ((((MR_tag((MR_Word) Var_16)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_16, (MR_Integer) 0)))) == (MR_Integer) 0)));
    if (succeeded)
    {
      Var_17 = ((MR_Word) ((MR_hl_field(3, Var_16, (MR_Integer) 3))));
      succeeded = (Var_17 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_18 = ((MR_Word) ((MR_hl_field(1, Var_17, (MR_Integer) 0))));
        Var_19 = ((MR_Word) ((MR_hl_field(1, Var_17, (MR_Integer) 1))));
        succeeded = (Var_19 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          XCtor_9 = ((MR_Word) ((MR_hl_field(0, Var_18, (MR_Integer) 0))));
          XArgVars_10 = ((MR_Word) ((MR_hl_field(0, Var_18, (MR_Integer) 1))));
          Var_20 = ((MR_Word) ((MR_hl_field(0, Y_5, (MR_Integer) 2))));
          succeeded = ((((MR_tag((MR_Word) Var_20)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_20, (MR_Integer) 0)))) == (MR_Integer) 0)));
          if (succeeded)
          {
            Var_21 = ((MR_Word) ((MR_hl_field(3, Var_20, (MR_Integer) 3))));
            succeeded = (Var_21 != (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              Var_22 = ((MR_Word) ((MR_hl_field(1, Var_21, (MR_Integer) 0))));
              Var_23 = ((MR_Word) ((MR_hl_field(1, Var_21, (MR_Integer) 1))));
              succeeded = (Var_23 == (MR_Word) ((MR_Unsigned) 0U));
              if (succeeded)
              {
                YCtor_13 = ((MR_Word) ((MR_hl_field(0, Var_22, (MR_Integer) 0))));
                YArgVars_14 = ((MR_Word) ((MR_hl_field(0, Var_22, (MR_Integer) 1))));
                succeeded = parse_tree__prog_data____Unify____cons_id_0_0(XCtor_9, YCtor_13);
                if (succeeded)
                {
                  TypeInfo_38_38 = (MR_Word) (&transform_hlds__const_prop_scalar_common_1[1]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_38_38, ((MR_Box) (XArgVars_10)), ((MR_Box) (YArgVars_14)));
                }
                if (succeeded)
                {
                  *Result_6 = (MR_Integer) 1;
                  succeeded = MR_TRUE;
                }
                else
                {
                  succeeded = parse_tree__prog_data____Unify____cons_id_0_0(XCtor_9, YCtor_13);
                  succeeded = !(succeeded);
                  if (!(succeeded))
                  {
                    MR_Integer Var_24;
                    MR_Integer Var_35;

                    Var_24 = mercury__list__length_1_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0), XArgVars_10);
                    Var_35 = mercury__list__length_1_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0), YArgVars_14);
                    succeeded = (Var_24 != Var_35);
                  }
                  if (succeeded)
                  {
                    *Result_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_7_p_0(
  MR_Word Globals_8,
  MR_String ModuleName_9,
  MR_String ProcName_10,
  MR_Integer ModeNum_11,
  MR_Word Args_12,
  MR_Word * OutputArg_13,
  MR_Word * OutputArgVal_14)
{
  MR_bool succeeded = (Args_12 != (MR_Word) ((MR_Unsigned) 0U));
  MR_Word Var_99;
  MR_Word Var_100;
  MR_Integer lo_0;
  MR_Integer hi_1;
  MR_Integer mid_2;
  MR_Integer result_3;

  if (succeeded)
  {
    Var_100 = ((MR_Word) ((MR_hl_field(1, Args_12, (MR_Integer) 0))));
    Var_99 = ((MR_Word) ((MR_hl_field(1, Args_12, (MR_Integer) 1))));
    // binary string jump switch
    ;
    lo_0 = (MR_Integer) 0;
    hi_1 = (MR_Integer) 3;
    do
    {
      mid_2 = (((MR_Integer) ((MR_Unsigned) lo_0 + (MR_Unsigned) hi_1)) / (MR_Integer) 2);
      result_3 = MR_strcmp(ModuleName_9, ((&transform_hlds__const_prop_vector_common_2[20 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
      if ((result_3 == (MR_Integer) 0))
      {
        switch (((&transform_hlds__const_prop_vector_common_2[20 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            {
              // case "float"
              ;
              {
                MR_Word Var_101;
                MR_Word Var_102;

                succeeded = (Var_99 != (MR_Word) ((MR_Unsigned) 0U));
                if (succeeded)
                {
                  Var_102 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 0))));
                  Var_101 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 1))));
                  if ((Var_101 == (MR_Word) ((MR_Unsigned) 0U)))
                    succeeded = transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_102_108_111_97_116_95_50_95_95_91_49_93_95_48_7_p_0(ProcName_10, ModeNum_11, Var_100, Var_102, OutputArg_13, OutputArgVal_14);
                  else
                  {
                    MR_Word Z_17 = ((MR_Word) ((MR_hl_field(1, Var_101, (MR_Integer) 0))));
                    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(1, Var_101, (MR_Integer) 1))));

                    succeeded = (Var_23 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                      succeeded = transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_102_108_111_97_116_95_51_95_95_91_49_93_95_48_8_p_0(ProcName_10, ModeNum_11, Var_100, Var_102, Z_17, OutputArg_13, OutputArgVal_14);
                  }
                }
              }
            }
            break;
          case (MR_Integer) 1:
            {
              // case "int"
              ;
              if ((Var_99 == (MR_Word) ((MR_Unsigned) 0U)))
                succeeded = transform_hlds__const_prop__evaluate_det_call_int_1_6_p_0(Globals_8, ProcName_10, ModeNum_11, Var_100, OutputArg_13, OutputArgVal_14);
              else
              {
                MR_Word Var_103 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 1))));
                MR_Word Var_104 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 0))));

                if ((Var_103 == (MR_Word) ((MR_Unsigned) 0U)))
                  succeeded = transform_hlds__const_prop__evaluate_det_call_int_2_7_p_0(Globals_8, ProcName_10, ModeNum_11, Var_100, Var_104, OutputArg_13, OutputArgVal_14);
                else
                {
                  MR_Word Z_27 = ((MR_Word) ((MR_hl_field(1, Var_103, (MR_Integer) 0))));
                  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(1, Var_103, (MR_Integer) 1))));

                  succeeded = (Var_30 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                    switch (ModeNum_11) {
                      default:
                        succeeded = MR_FALSE;
                        break;
                      case (MR_Integer) 0:
                        succeeded = transform_hlds__const_prop__evaluate_det_call_int_3_mode_0_7_p_0(Globals_8, ProcName_10, Var_100, Var_104, Z_27, OutputArg_13, OutputArgVal_14);
                        break;
                      case (MR_Integer) 1:
                        succeeded = transform_hlds__const_prop__evaluate_det_call_int_3_mode_1_7_p_0(Globals_8, ProcName_10, Var_100, Var_104, Z_27, OutputArg_13, OutputArgVal_14);
                        break;
                      case (MR_Integer) 2:
                        succeeded = transform_hlds__const_prop__evaluate_det_call_int_3_mode_2_7_p_0(Globals_8, ProcName_10, Var_100, Var_104, Z_27, OutputArg_13, OutputArgVal_14);
                        break;
                    }
                }
              }
            }
            break;
          case (MR_Integer) 2:
            {
              // case "string"
              ;
              {
                MR_Word Var_105;
                MR_Word Var_106;

                succeeded = (Var_99 != (MR_Word) ((MR_Unsigned) 0U));
                if (succeeded)
                {
                  Var_106 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 0))));
                  Var_105 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 1))));
                  if ((Var_105 == (MR_Word) ((MR_Unsigned) 0U)))
                    succeeded = transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_115_116_114_105_110_103_95_50_95_95_91_49_93_95_48_7_p_0(ProcName_10, ModeNum_11, Var_100, Var_106, OutputArg_13, OutputArgVal_14);
                  else
                  {
                    MR_Word Z_47 = ((MR_Word) ((MR_hl_field(1, Var_105, (MR_Integer) 0))));
                    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(1, Var_105, (MR_Integer) 1))));

                    succeeded = (Var_50 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                      succeeded = transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_115_116_114_105_110_103_95_51_95_95_91_49_93_95_48_8_p_0(ProcName_10, ModeNum_11, Var_100, Var_106, Z_47, OutputArg_13, OutputArgVal_14);
                  }
                }
              }
            }
            break;
          case (MR_Integer) 3:
            {
              // case "uint"
              ;
              if ((Var_99 == (MR_Word) ((MR_Unsigned) 0U)))
                succeeded = transform_hlds__const_prop__evaluate_det_call_uint_1_6_p_0(Globals_8, ProcName_10, ModeNum_11, Var_100, OutputArg_13, OutputArgVal_14);
              else
              {
                MR_Word Var_107 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 1))));
                MR_Word Var_108 = ((MR_Word) ((MR_hl_field(1, Var_99, (MR_Integer) 0))));

                if ((Var_107 == (MR_Word) ((MR_Unsigned) 0U)))
                  succeeded = transform_hlds__const_prop__evaluate_det_call_uint_2_7_p_0(Globals_8, ProcName_10, ModeNum_11, Var_100, Var_108, OutputArg_13, OutputArgVal_14);
                else
                {
                  MR_Word Z_67 = ((MR_Word) ((MR_hl_field(1, Var_107, (MR_Integer) 0))));
                  MR_Word Var_70 = ((MR_Word) ((MR_hl_field(1, Var_107, (MR_Integer) 1))));

                  succeeded = (Var_70 == (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                    switch (ModeNum_11) {
                      default:
                        succeeded = MR_FALSE;
                        break;
                      case (MR_Integer) 0:
                        succeeded = transform_hlds__const_prop__evaluate_det_call_uint_3_mode_0_7_p_0(Globals_8, ProcName_10, Var_100, Var_108, Z_67, OutputArg_13, OutputArgVal_14);
                        break;
                      case (MR_Integer) 1:
                        succeeded = transform_hlds__const_prop__evaluate_det_call_uint_3_mode_1_7_p_0(Globals_8, ProcName_10, Var_100, Var_108, Z_67, OutputArg_13, OutputArgVal_14);
                        break;
                      case (MR_Integer) 2:
                        succeeded = transform_hlds__const_prop__evaluate_det_call_uint_3_mode_2_7_p_0(Globals_8, ProcName_10, Var_100, Var_108, Z_67, OutputArg_13, OutputArgVal_14);
                        break;
                    }
                }
              }
            }
            break;
        }
        // jump out of search loop
        ;
        goto label_0;
      }
      else
      if ((result_3 < (MR_Integer) 0))
        hi_1 = (MR_Integer) ((MR_Unsigned) mid_2 - (MR_Unsigned) 1);
      else
        lo_0 = (MR_Integer) ((MR_Unsigned) mid_2 + (MR_Unsigned) 1);
    }
    while ((lo_0 <= hi_1));
    succeeded = MR_FALSE;
  label_0:;
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_115_116_114_105_110_103_95_51_95_95_91_49_93_95_48_8_p_0(
  MR_String ProcName_10,
  MR_Integer ModeNum_11,
  MR_Word X_12,
  MR_Word Y_13,
  MR_Word Z_14,
  MR_Word * OutputArg_15,
  MR_Word * HeadVar__8_8)
{
  MR_bool succeeded;
  MR_String OutputArgVal_16;
  MR_String XVal_19;
  MR_String YVal_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;

  if ((strcmp(ProcName_10, (MR_String) "++") == 0))
    succeeded = MR_TRUE;
  else
  if ((strcmp(ProcName_10, (MR_String) "append") == 0))
    succeeded = MR_TRUE;
  else
    succeeded = MR_FALSE;
  if (succeeded)
  {
    succeeded = (ModeNum_11 == (MR_Integer) 0);
    if (succeeded)
    {
      Var_23 = ((MR_Word) ((MR_hl_field(0, X_12, (MR_Integer) 2))));
      succeeded = ((((MR_tag((MR_Word) Var_23)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_23, (MR_Integer) 0)))) == (MR_Integer) 0)));
      if (succeeded)
      {
        Var_24 = ((MR_Word) ((MR_hl_field(3, Var_23, (MR_Integer) 3))));
        succeeded = (Var_24 != (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          Var_25 = ((MR_Word) ((MR_hl_field(1, Var_24, (MR_Integer) 0))));
          Var_28 = ((MR_Word) ((MR_hl_field(1, Var_24, (MR_Integer) 1))));
          Var_26 = ((MR_Word) ((MR_hl_field(0, Var_25, (MR_Integer) 0))));
          Var_27 = ((MR_Word) ((MR_hl_field(0, Var_25, (MR_Integer) 1))));
          succeeded = ((((MR_tag((MR_Word) Var_26)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_26, (MR_Integer) 0)))) == (MR_Integer) 8)));
          if (succeeded)
          {
            XVal_19 = ((MR_String) ((MR_hl_field(3, Var_26, (MR_Integer) 1))));
            succeeded = (Var_27 == (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              succeeded = (Var_28 == (MR_Word) ((MR_Unsigned) 0U));
              if (succeeded)
              {
                Var_29 = ((MR_Word) ((MR_hl_field(0, Y_13, (MR_Integer) 2))));
                succeeded = ((((MR_tag((MR_Word) Var_29)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_29, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_30 = ((MR_Word) ((MR_hl_field(3, Var_29, (MR_Integer) 3))));
                  succeeded = (Var_30 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_31 = ((MR_Word) ((MR_hl_field(1, Var_30, (MR_Integer) 0))));
                    Var_34 = ((MR_Word) ((MR_hl_field(1, Var_30, (MR_Integer) 1))));
                    Var_32 = ((MR_Word) ((MR_hl_field(0, Var_31, (MR_Integer) 0))));
                    Var_33 = ((MR_Word) ((MR_hl_field(0, Var_31, (MR_Integer) 1))));
                    succeeded = ((((MR_tag((MR_Word) Var_32)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_32, (MR_Integer) 0)))) == (MR_Integer) 8)));
                    if (succeeded)
                    {
                      YVal_22 = ((MR_String) ((MR_hl_field(3, Var_32, (MR_Integer) 1))));
                      succeeded = (Var_33 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = (Var_34 == (MR_Word) ((MR_Unsigned) 0U));
                        if (succeeded)
                        {
                          *OutputArg_15 = Z_14;
                          OutputArgVal_16 = mercury__string__f_43_43_2_f_0(XVal_19, YVal_22);
                          {
                            MR_Word base;
                            base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                            *HeadVar__8_8 = base;
                            MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 8U));
                            MR_hl_field(3, base, 1) = ((MR_Box) (OutputArgVal_16));
                          }
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_102_108_111_97_116_95_51_95_95_91_49_93_95_48_8_p_0(
  MR_String ProcName_10,
  MR_Integer ModeNum_11,
  MR_Word X_12,
  MR_Word Y_13,
  MR_Word Z_14,
  MR_Word * OutputArg_15,
  MR_Word * HeadVar__8_8)
{
  MR_bool succeeded = (ModeNum_11 == (MR_Integer) 0);
  MR_Float OutputArgVal_16;
  MR_Float XVal_19;
  MR_Float YVal_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Integer lo_0;
  MR_Integer hi_1;
  MR_Integer mid_2;
  MR_Integer result_3;

  if (succeeded)
  {
    Var_23 = ((MR_Word) ((MR_hl_field(0, X_12, (MR_Integer) 2))));
    succeeded = ((((MR_tag((MR_Word) Var_23)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_23, (MR_Integer) 0)))) == (MR_Integer) 0)));
    if (succeeded)
    {
      Var_24 = ((MR_Word) ((MR_hl_field(3, Var_23, (MR_Integer) 3))));
      succeeded = (Var_24 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_25 = ((MR_Word) ((MR_hl_field(1, Var_24, (MR_Integer) 0))));
        Var_28 = ((MR_Word) ((MR_hl_field(1, Var_24, (MR_Integer) 1))));
        Var_26 = ((MR_Word) ((MR_hl_field(0, Var_25, (MR_Integer) 0))));
        Var_27 = ((MR_Word) ((MR_hl_field(0, Var_25, (MR_Integer) 1))));
        succeeded = ((((MR_tag((MR_Word) Var_26)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_26, (MR_Integer) 0)))) == (MR_Integer) 6)));
        if (succeeded)
        {
          XVal_19 = MR_unbox_float((MR_hl_field(3, Var_26, (MR_Integer) 1)));
          succeeded = (Var_27 == (MR_Word) ((MR_Unsigned) 0U));
          if (succeeded)
          {
            succeeded = (Var_28 == (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              Var_29 = ((MR_Word) ((MR_hl_field(0, Y_13, (MR_Integer) 2))));
              succeeded = ((((MR_tag((MR_Word) Var_29)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_29, (MR_Integer) 0)))) == (MR_Integer) 0)));
              if (succeeded)
              {
                Var_30 = ((MR_Word) ((MR_hl_field(3, Var_29, (MR_Integer) 3))));
                succeeded = (Var_30 != (MR_Word) ((MR_Unsigned) 0U));
                if (succeeded)
                {
                  Var_31 = ((MR_Word) ((MR_hl_field(1, Var_30, (MR_Integer) 0))));
                  Var_34 = ((MR_Word) ((MR_hl_field(1, Var_30, (MR_Integer) 1))));
                  Var_32 = ((MR_Word) ((MR_hl_field(0, Var_31, (MR_Integer) 0))));
                  Var_33 = ((MR_Word) ((MR_hl_field(0, Var_31, (MR_Integer) 1))));
                  succeeded = ((((MR_tag((MR_Word) Var_32)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_32, (MR_Integer) 0)))) == (MR_Integer) 6)));
                  if (succeeded)
                  {
                    YVal_22 = MR_unbox_float((MR_hl_field(3, Var_32, (MR_Integer) 1)));
                    succeeded = (Var_33 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      succeeded = (Var_34 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        *OutputArg_15 = Z_14;
                        // binary string jump switch
                        ;
                        lo_0 = (MR_Integer) 0;
                        hi_1 = (MR_Integer) 4;
                        do
                        {
                          mid_2 = (((MR_Integer) ((MR_Unsigned) lo_0 + (MR_Unsigned) hi_1)) / (MR_Integer) 2);
                          result_3 = MR_strcmp(ProcName_10, ((&transform_hlds__const_prop_vector_common_2[15 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                          if ((result_3 == (MR_Integer) 0))
                          {
                            switch (((&transform_hlds__const_prop_vector_common_2[15 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                              default: /*NOTREACHED*/ MR_assert(0);
                              case (MR_Integer) 0:
                                {
                                  // case "*"
                                  ;
                                  OutputArgVal_16 = (XVal_19 * YVal_22);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 1:
                                {
                                  // case "+"
                                  ;
                                  OutputArgVal_16 = (XVal_19 + YVal_22);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 2:
                                {
                                  // case "-"
                                  ;
                                  OutputArgVal_16 = (XVal_19 - YVal_22);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 3:
                                {
                                  // case "/"
                                  ;
                                  succeeded = (YVal_22 == ((MR_Float) 0.0000000000000000));
                                  succeeded = !(succeeded);
                                  if (succeeded)
                                  {
                                    OutputArgVal_16 = mercury__float__f_slash_2_f_0(XVal_19, YVal_22);
                                    succeeded = MR_TRUE;
                                  }
                                }
                                break;
                              case (MR_Integer) 4:
                                {
                                  // case "unchecked_quotient"
                                  ;
                                  succeeded = (YVal_22 == ((MR_Float) 0.0000000000000000));
                                  succeeded = !(succeeded);
                                  if (succeeded)
                                  {
                                    OutputArgVal_16 = (XVal_19 / YVal_22);
                                    succeeded = MR_TRUE;
                                  }
                                }
                                break;
                            }
                            // jump out of search loop
                            ;
                            goto label_0;
                          }
                          else
                          if ((result_3 < (MR_Integer) 0))
                            hi_1 = (MR_Integer) ((MR_Unsigned) mid_2 - (MR_Unsigned) 1);
                          else
                            lo_0 = (MR_Integer) ((MR_Unsigned) mid_2 + (MR_Unsigned) 1);
                        }
                        while ((lo_0 <= hi_1));
                        succeeded = MR_FALSE;
                      label_0:;
                        if (succeeded)
                        {
                          {
                            MR_Word base;
                            base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                            *HeadVar__8_8 = base;
                            MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 6U));
                            MR_hl_field(3, base, 1) = MR_box_float(OutputArgVal_16);
                          }
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_115_116_114_105_110_103_95_50_95_95_91_49_93_95_48_7_p_0(
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * OutputArgVal_14)
{
  MR_bool succeeded;
  MR_String XVal_17;
  MR_Integer CodePointCountX_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;

  if ((strcmp(ProcName_9, (MR_String) "count_codepoints") == 0))
    succeeded = MR_TRUE;
  else
  if ((strcmp(ProcName_9, (MR_String) "count_code_points") == 0))
    succeeded = MR_TRUE;
  else
    succeeded = MR_FALSE;
  if (succeeded)
  {
    succeeded = (ModeNum_10 == (MR_Integer) 0);
    if (succeeded)
    {
      Var_19 = ((MR_Word) ((MR_hl_field(0, X_11, (MR_Integer) 2))));
      succeeded = ((((MR_tag((MR_Word) Var_19)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_19, (MR_Integer) 0)))) == (MR_Integer) 0)));
      if (succeeded)
      {
        Var_20 = ((MR_Word) ((MR_hl_field(3, Var_19, (MR_Integer) 3))));
        succeeded = (Var_20 != (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          Var_21 = ((MR_Word) ((MR_hl_field(1, Var_20, (MR_Integer) 0))));
          Var_24 = ((MR_Word) ((MR_hl_field(1, Var_20, (MR_Integer) 1))));
          Var_22 = ((MR_Word) ((MR_hl_field(0, Var_21, (MR_Integer) 0))));
          Var_23 = ((MR_Word) ((MR_hl_field(0, Var_21, (MR_Integer) 1))));
          succeeded = ((((MR_tag((MR_Word) Var_22)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_22, (MR_Integer) 0)))) == (MR_Integer) 8)));
          if (succeeded)
          {
            XVal_17 = ((MR_String) ((MR_hl_field(3, Var_22, (MR_Integer) 1))));
            succeeded = (Var_23 == (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              succeeded = (Var_24 == (MR_Word) ((MR_Unsigned) 0U));
              if (succeeded)
              {
                *OutputArg_13 = Y_12;
                CodePointCountX_18 = mercury__string__count_code_points_1_f_0(XVal_17);
                {
                  Var_25 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
                  MR_hl_field(0, Var_25, 0) = ((MR_Box) (CodePointCountX_18));
                }
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *OutputArgVal_14 = base;
                  MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                  MR_hl_field(3, base, 1) = ((MR_Box) (Var_25));
                }
                succeeded = MR_TRUE;
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_118_97_108_117_97_116_101_95_100_101_116_95_99_97_108_108_95_102_108_111_97_116_95_50_95_95_91_49_93_95_48_7_p_0(
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded = (ModeNum_10 == (MR_Integer) 0);
  MR_Float OutputArgVal_14;
  MR_Word Var_37;
  MR_Word Var_40;
  MR_Word Var_43;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Float Var_47;

  if (succeeded)
  {
    Var_37 = ((MR_Word) ((MR_hl_field(0, X_11, (MR_Integer) 2))));
    succeeded = ((((MR_tag((MR_Word) Var_37)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_37, (MR_Integer) 0)))) == (MR_Integer) 0)));
    if (succeeded)
    {
      Var_40 = ((MR_Word) ((MR_hl_field(3, Var_37, (MR_Integer) 3))));
      succeeded = (Var_40 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_44 = ((MR_Word) ((MR_hl_field(1, Var_40, (MR_Integer) 0))));
        Var_43 = ((MR_Word) ((MR_hl_field(1, Var_40, (MR_Integer) 1))));
        succeeded = (Var_43 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          Var_46 = ((MR_Word) ((MR_hl_field(0, Var_44, (MR_Integer) 0))));
          Var_45 = ((MR_Word) ((MR_hl_field(0, Var_44, (MR_Integer) 1))));
          succeeded = (Var_45 == (MR_Word) ((MR_Unsigned) 0U));
          if (succeeded)
          {
            succeeded = ((((MR_tag((MR_Word) Var_46)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_46, (MR_Integer) 0)))) == (MR_Integer) 6)));
            if (succeeded)
            {
              Var_47 = MR_unbox_float((MR_hl_field(3, Var_46, (MR_Integer) 1)));
              if ((strcmp(ProcName_9, (MR_String) "+") == 0))
              {
                *OutputArg_13 = Y_12;
                OutputArgVal_14 = Var_47;
                succeeded = MR_TRUE;
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "-") == 0))
              {
                *OutputArg_13 = Y_12;
                OutputArgVal_14 = (((MR_Float) 0.0000000000000000) - Var_47);
                succeeded = MR_TRUE;
              }
              else
                succeeded = MR_FALSE;
              if (succeeded)
              {
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *HeadVar__7_7 = base;
                  MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 6U));
                  MR_hl_field(3, base, 1) = MR_box_float(OutputArgVal_14);
                }
                succeeded = MR_TRUE;
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_3_mode_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded;
  MR_Unsigned OutputArgVal_14;
  MR_Word Var_34;
  MR_Word Var_94 = ((MR_Word) ((MR_hl_field(0, Z_12, (MR_Integer) 2))));
  MR_Word Var_97;
  MR_Word Var_100;
  MR_Word Var_101;
  MR_Word Var_102;
  MR_Word Var_103;
  MR_Word Var_104;
  MR_Unsigned Var_105;

  succeeded = ((((MR_tag((MR_Word) Var_94)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_94, (MR_Integer) 0)))) == (MR_Integer) 0)));
  if (succeeded)
  {
    Var_97 = ((MR_Word) ((MR_hl_field(3, Var_94, (MR_Integer) 3))));
    succeeded = (Var_97 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_101 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 0))));
      Var_100 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 1))));
      succeeded = (Var_100 == (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_103 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 0))));
        Var_102 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 1))));
        succeeded = (Var_102 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          succeeded = ((((MR_tag((MR_Word) Var_103)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_103, (MR_Integer) 0)))) == (MR_Integer) 5)));
          if (succeeded)
          {
            Var_104 = ((MR_Word) ((MR_hl_field(3, Var_103, (MR_Integer) 1))));
            succeeded = ((MR_tag((MR_Word) Var_104)) == (MR_Integer) 1);
            if (succeeded)
            {
              Var_105 = ((MR_Unsigned) ((MR_hl_field(1, Var_104, (MR_Integer) 0))));
              if ((strcmp(ProcName_9, (MR_String) "+") == 0))
              {
                MR_Word FunctorX_17;
                MR_Unsigned XVal_21;
                MR_Word BitsPerUInt_23;
                MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
                MR_Word Var_36;
                MR_Word Var_37;
                MR_Word Var_38;
                MR_Word Var_39;
                MR_Word Var_45;
                MR_Word Var_47;
                MR_Word Var_48;

                succeeded = ((((MR_tag((MR_Word) Var_35)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_35, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_36 = ((MR_Word) ((MR_hl_field(3, Var_35, (MR_Integer) 3))));
                  succeeded = (Var_36 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_37 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 0))));
                    Var_39 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 1))));
                    succeeded = (Var_39 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorX_17 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 0))));
                      Var_38 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 1))));
                      succeeded = (Var_38 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorX_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_45 = ((MR_Word) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_45)) == (MR_Integer) 1);
                          if (succeeded)
                          {
                            XVal_21 = ((MR_Unsigned) ((MR_hl_field(1, Var_45, (MR_Integer) 0))));
                            *OutputArg_13 = Y_11;
                            Var_47 = (MR_Integer) 271;
                            Var_48 = (MR_Integer) 0;
                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_47, Var_48);
                            if (succeeded)
                            {
                              libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &BitsPerUInt_23);
                              succeeded = libs__uint_emu__minus_4_p_0(BitsPerUInt_23, Var_105, XVal_21, &OutputArgVal_14);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "-") == 0))
              {
                MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
                MR_Word Var_50;
                MR_Word Var_51;
                MR_Word Var_52;
                MR_Word Var_53;
                MR_Word Var_59;
                MR_Word Var_61;
                MR_Word Var_62;
                MR_Word FunctorX_75;
                MR_Unsigned XVal_77;
                MR_Word BitsPerUInt_79;

                succeeded = ((((MR_tag((MR_Word) Var_49)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_49, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_50 = ((MR_Word) ((MR_hl_field(3, Var_49, (MR_Integer) 3))));
                  succeeded = (Var_50 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_51 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 0))));
                    Var_53 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 1))));
                    succeeded = (Var_53 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorX_75 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 0))));
                      Var_52 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 1))));
                      succeeded = (Var_52 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorX_75)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_75, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_59 = ((MR_Word) ((MR_hl_field(3, FunctorX_75, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_59)) == (MR_Integer) 1);
                          if (succeeded)
                          {
                            XVal_77 = ((MR_Unsigned) ((MR_hl_field(1, Var_59, (MR_Integer) 0))));
                            *OutputArg_13 = Y_11;
                            Var_61 = (MR_Integer) 271;
                            Var_62 = (MR_Integer) 0;
                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_61, Var_62);
                            if (succeeded)
                            {
                              libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &BitsPerUInt_79);
                              succeeded = libs__uint_emu__minus_4_p_0(BitsPerUInt_79, XVal_77, Var_105, &OutputArgVal_14);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "xor") == 0))
              {
                MR_Word FunctorY_30;
                MR_Unsigned YVal_33;
                MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
                MR_Word Var_64;
                MR_Word Var_65;
                MR_Word Var_66;
                MR_Word Var_67;
                MR_Word Var_73;

                succeeded = ((((MR_tag((MR_Word) Var_63)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_63, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_64 = ((MR_Word) ((MR_hl_field(3, Var_63, (MR_Integer) 3))));
                  succeeded = (Var_64 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_65 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 0))));
                    Var_67 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 1))));
                    succeeded = (Var_67 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorY_30 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 0))));
                      Var_66 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 1))));
                      succeeded = (Var_66 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorY_30)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_30, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_73 = ((MR_Word) ((MR_hl_field(3, FunctorY_30, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_73)) == (MR_Integer) 1);
                          if (succeeded)
                          {
                            YVal_33 = ((MR_Unsigned) ((MR_hl_field(1, Var_73, (MR_Integer) 0))));
                            *OutputArg_13 = X_10;
                            OutputArgVal_14 = (YVal_33 ^ Var_105);
                            succeeded = MR_TRUE;
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
                succeeded = MR_FALSE;
              if (succeeded)
              {
                {
                  Var_34 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_34, 0) = ((MR_Box) (OutputArgVal_14));
                }
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *HeadVar__7_7 = base;
                  MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                  MR_hl_field(3, base, 1) = ((MR_Box) (Var_34));
                }
                succeeded = MR_TRUE;
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_3_mode_1_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded;
  MR_Unsigned OutputArgVal_14;
  MR_Word Var_34;
  MR_Word Var_94 = ((MR_Word) ((MR_hl_field(0, Z_12, (MR_Integer) 2))));
  MR_Word Var_97;
  MR_Word Var_100;
  MR_Word Var_101;
  MR_Word Var_102;
  MR_Word Var_103;
  MR_Word Var_104;
  MR_Unsigned Var_105;

  succeeded = ((((MR_tag((MR_Word) Var_94)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_94, (MR_Integer) 0)))) == (MR_Integer) 0)));
  if (succeeded)
  {
    Var_97 = ((MR_Word) ((MR_hl_field(3, Var_94, (MR_Integer) 3))));
    succeeded = (Var_97 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_101 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 0))));
      Var_100 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 1))));
      succeeded = (Var_100 == (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_103 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 0))));
        Var_102 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 1))));
        succeeded = (Var_102 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          succeeded = ((((MR_tag((MR_Word) Var_103)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_103, (MR_Integer) 0)))) == (MR_Integer) 5)));
          if (succeeded)
          {
            Var_104 = ((MR_Word) ((MR_hl_field(3, Var_103, (MR_Integer) 1))));
            succeeded = ((MR_tag((MR_Word) Var_104)) == (MR_Integer) 1);
            if (succeeded)
            {
              Var_105 = ((MR_Unsigned) ((MR_hl_field(1, Var_104, (MR_Integer) 0))));
              if ((strcmp(ProcName_9, (MR_String) "+") == 0))
              {
                MR_Word FunctorY_17;
                MR_Unsigned YVal_21;
                MR_Word BitsPerUInt_23;
                MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
                MR_Word Var_36;
                MR_Word Var_37;
                MR_Word Var_38;
                MR_Word Var_39;
                MR_Word Var_45;
                MR_Word Var_47;
                MR_Word Var_48;

                succeeded = ((((MR_tag((MR_Word) Var_35)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_35, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_36 = ((MR_Word) ((MR_hl_field(3, Var_35, (MR_Integer) 3))));
                  succeeded = (Var_36 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_37 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 0))));
                    Var_39 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 1))));
                    succeeded = (Var_39 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorY_17 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 0))));
                      Var_38 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 1))));
                      succeeded = (Var_38 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorY_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_45 = ((MR_Word) ((MR_hl_field(3, FunctorY_17, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_45)) == (MR_Integer) 1);
                          if (succeeded)
                          {
                            YVal_21 = ((MR_Unsigned) ((MR_hl_field(1, Var_45, (MR_Integer) 0))));
                            *OutputArg_13 = X_10;
                            Var_47 = (MR_Integer) 271;
                            Var_48 = (MR_Integer) 0;
                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_47, Var_48);
                            if (succeeded)
                            {
                              libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &BitsPerUInt_23);
                              succeeded = libs__uint_emu__minus_4_p_0(BitsPerUInt_23, Var_105, YVal_21, &OutputArgVal_14);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "-") == 0))
              {
                MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
                MR_Word Var_50;
                MR_Word Var_51;
                MR_Word Var_52;
                MR_Word Var_53;
                MR_Word Var_59;
                MR_Word Var_61;
                MR_Word Var_62;
                MR_Word FunctorY_75;
                MR_Unsigned YVal_77;
                MR_Word BitsPerUInt_79;

                succeeded = ((((MR_tag((MR_Word) Var_49)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_49, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_50 = ((MR_Word) ((MR_hl_field(3, Var_49, (MR_Integer) 3))));
                  succeeded = (Var_50 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_51 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 0))));
                    Var_53 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 1))));
                    succeeded = (Var_53 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorY_75 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 0))));
                      Var_52 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 1))));
                      succeeded = (Var_52 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorY_75)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_75, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_59 = ((MR_Word) ((MR_hl_field(3, FunctorY_75, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_59)) == (MR_Integer) 1);
                          if (succeeded)
                          {
                            YVal_77 = ((MR_Unsigned) ((MR_hl_field(1, Var_59, (MR_Integer) 0))));
                            *OutputArg_13 = X_10;
                            Var_61 = (MR_Integer) 271;
                            Var_62 = (MR_Integer) 0;
                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_61, Var_62);
                            if (succeeded)
                            {
                              libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &BitsPerUInt_79);
                              succeeded = libs__uint_emu__plus_4_p_0(BitsPerUInt_79, YVal_77, Var_105, &OutputArgVal_14);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "xor") == 0))
              {
                MR_Word FunctorX_30;
                MR_Unsigned XVal_33;
                MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
                MR_Word Var_64;
                MR_Word Var_65;
                MR_Word Var_66;
                MR_Word Var_67;
                MR_Word Var_73;

                succeeded = ((((MR_tag((MR_Word) Var_63)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_63, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_64 = ((MR_Word) ((MR_hl_field(3, Var_63, (MR_Integer) 3))));
                  succeeded = (Var_64 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_65 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 0))));
                    Var_67 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 1))));
                    succeeded = (Var_67 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorX_30 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 0))));
                      Var_66 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 1))));
                      succeeded = (Var_66 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorX_30)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_30, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_73 = ((MR_Word) ((MR_hl_field(3, FunctorX_30, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_73)) == (MR_Integer) 1);
                          if (succeeded)
                          {
                            XVal_33 = ((MR_Unsigned) ((MR_hl_field(1, Var_73, (MR_Integer) 0))));
                            *OutputArg_13 = Y_11;
                            OutputArgVal_14 = (XVal_33 ^ Var_105);
                            succeeded = MR_TRUE;
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
                succeeded = MR_FALSE;
              if (succeeded)
              {
                {
                  Var_34 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_34, 0) = ((MR_Box) (OutputArgVal_14));
                }
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *HeadVar__7_7 = base;
                  MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                  MR_hl_field(3, base, 1) = ((MR_Box) (Var_34));
                }
                succeeded = MR_TRUE;
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_3_mode_0_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded;
  MR_Unsigned OutputArgVal_14;
  MR_Word FunctorX_17;
  MR_Word FunctorY_20;
  MR_Unsigned XVal_21;
  MR_Word ConstY_22;
  MR_Word Var_25;
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_35;
  MR_Word Var_36;

  succeeded = ((((MR_tag((MR_Word) Var_26)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_26, (MR_Integer) 0)))) == (MR_Integer) 0)));
  if (succeeded)
  {
    Var_27 = ((MR_Word) ((MR_hl_field(3, Var_26, (MR_Integer) 3))));
    succeeded = (Var_27 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_28 = ((MR_Word) ((MR_hl_field(1, Var_27, (MR_Integer) 0))));
      Var_30 = ((MR_Word) ((MR_hl_field(1, Var_27, (MR_Integer) 1))));
      succeeded = (Var_30 == (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        FunctorX_17 = ((MR_Word) ((MR_hl_field(0, Var_28, (MR_Integer) 0))));
        Var_29 = ((MR_Word) ((MR_hl_field(0, Var_28, (MR_Integer) 1))));
        succeeded = (Var_29 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          Var_31 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
          succeeded = ((((MR_tag((MR_Word) Var_31)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_31, (MR_Integer) 0)))) == (MR_Integer) 0)));
          if (succeeded)
          {
            Var_32 = ((MR_Word) ((MR_hl_field(3, Var_31, (MR_Integer) 3))));
            succeeded = (Var_32 != (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              Var_33 = ((MR_Word) ((MR_hl_field(1, Var_32, (MR_Integer) 0))));
              Var_35 = ((MR_Word) ((MR_hl_field(1, Var_32, (MR_Integer) 1))));
              succeeded = (Var_35 == (MR_Word) ((MR_Unsigned) 0U));
              if (succeeded)
              {
                FunctorY_20 = ((MR_Word) ((MR_hl_field(0, Var_33, (MR_Integer) 0))));
                Var_34 = ((MR_Word) ((MR_hl_field(0, Var_33, (MR_Integer) 1))));
                succeeded = (Var_34 == (MR_Word) ((MR_Unsigned) 0U));
                if (succeeded)
                {
                  succeeded = ((((MR_tag((MR_Word) FunctorX_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
                  if (succeeded)
                  {
                    Var_36 = ((MR_Word) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 1))));
                    succeeded = ((MR_tag((MR_Word) Var_36)) == (MR_Integer) 1);
                    if (succeeded)
                    {
                      XVal_21 = ((MR_Unsigned) ((MR_hl_field(1, Var_36, (MR_Integer) 0))));
                      succeeded = ((((MR_tag((MR_Word) FunctorY_20)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_20, (MR_Integer) 0)))) == (MR_Integer) 5)));
                      if (succeeded)
                      {
                        ConstY_22 = ((MR_Word) ((MR_hl_field(3, FunctorY_20, (MR_Integer) 1))));
                        if (((MR_tag((MR_Word) ConstY_22)) == (MR_Integer) 0))
                        {
                          MR_Integer YVal_41 = ((MR_Integer) ((MR_hl_field(0, ConstY_22, (MR_Integer) 0))));
                          MR_Word BitsPerUInt_42;
                          MR_Integer lo_0;
                          MR_Integer hi_1;
                          MR_Integer mid_2;
                          MR_Integer result_3;

                          succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                          if (succeeded)
                          {
                            libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &BitsPerUInt_42);
                            // binary string jump switch
                            ;
                            lo_0 = (MR_Integer) 0;
                            hi_1 = (MR_Integer) 3;
                            do
                            {
                              mid_2 = (((MR_Integer) ((MR_Unsigned) lo_0 + (MR_Unsigned) hi_1)) / (MR_Integer) 2);
                              result_3 = MR_strcmp(ProcName_9, ((&transform_hlds__const_prop_vector_common_2[11 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                              if ((result_3 == (MR_Integer) 0))
                              {
                                switch (((&transform_hlds__const_prop_vector_common_2[11 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                  default: /*NOTREACHED*/ MR_assert(0);
                                  case (MR_Integer) 0:
                                    {
                                      // case "<<", "unchecked_left_shift"
                                      ;
                                      succeeded = libs__uint_emu__left_shift_4_p_0(BitsPerUInt_42, XVal_21, YVal_41, &OutputArgVal_14);
                                    }
                                    break;
                                  case (MR_Integer) 1:
                                    {
                                      // case ">>", "unchecked_right_shift"
                                      ;
                                      succeeded = libs__uint_emu__right_shift_4_p_0(BitsPerUInt_42, XVal_21, YVal_41, &OutputArgVal_14);
                                    }
                                    break;
                                }
                                // jump out of search loop
                                ;
                                goto label_0;
                              }
                              else
                              if ((result_3 < (MR_Integer) 0))
                                hi_1 = (MR_Integer) ((MR_Unsigned) mid_2 - (MR_Unsigned) 1);
                              else
                                lo_0 = (MR_Integer) ((MR_Unsigned) mid_2 + (MR_Unsigned) 1);
                            }
                            while ((lo_0 <= hi_1));
                            succeeded = MR_FALSE;
                          label_0:;
                          }
                        }
                        else
                        if (((MR_tag((MR_Word) ConstY_22)) == (MR_Integer) 1))
                        {
                          MR_Unsigned YVal_23 = ((MR_Unsigned) ((MR_hl_field(1, ConstY_22, (MR_Integer) 0))));

                          {
                            MR_Integer case_num_5 = (MR_Integer) -1;

                            switch (MR_nth_code_unit(ProcName_9, 0)) {
                              case (MR_Integer) 42:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "*"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 43:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "+"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 45:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "-"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 47:
                                switch (MR_nth_code_unit(ProcName_9, 1)) {
                                  case (MR_Integer) 0:
                                    case_num_5 = (MR_Integer) 0;
                                    break;
                                  case (MR_Integer) 47:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "//"))
                                      case_num_5 = (MR_Integer) 0;
                                    break;
                                  case (MR_Integer) 92:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "/\\"))
                                      case_num_5 = (MR_Integer) 1;
                                    break;
                                }
                                break;
                              case (MR_Integer) 60:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "<<u"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 62:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) ">>u"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 92:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "\\/"))
                                  case_num_5 = (MR_Integer) 2;
                                break;
                              case (MR_Integer) 109:
                                switch (MR_nth_code_unit(ProcName_9, 1)) {
                                  case (MR_Integer) 105:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "minus"))
                                      case_num_5 = (MR_Integer) 0;
                                    break;
                                  case (MR_Integer) 111:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "mod"))
                                      case_num_5 = (MR_Integer) 0;
                                    break;
                                }
                                break;
                              case (MR_Integer) 112:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "plus"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 114:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "rem"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 116:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "times"))
                                  case_num_5 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 117:
                                if (((((((((((((((((((MR_nth_code_unit(ProcName_9, 1)) == (MR_Integer) 110)) && (((MR_nth_code_unit(ProcName_9, 2)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 3)) == (MR_Integer) 104)))) && (((MR_nth_code_unit(ProcName_9, 4)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 5)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 6)) == (MR_Integer) 107)))) && (((MR_nth_code_unit(ProcName_9, 7)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 8)) == (MR_Integer) 100)))) && (((MR_nth_code_unit(ProcName_9, 9)) == (MR_Integer) 95))))
                                  switch (MR_nth_code_unit(ProcName_9, 10)) {
                                    case (MR_Integer) 108:
                                      if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_left_ushift"))
                                        case_num_5 = (MR_Integer) 0;
                                      break;
                                    case (MR_Integer) 113:
                                      if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_quotient"))
                                        case_num_5 = (MR_Integer) 0;
                                      break;
                                    case (MR_Integer) 114:
                                      switch (MR_nth_code_unit(ProcName_9, 11)) {
                                        case (MR_Integer) 101:
                                          if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_rem"))
                                            case_num_5 = (MR_Integer) 0;
                                          break;
                                        case (MR_Integer) 105:
                                          if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_right_ushift"))
                                            case_num_5 = (MR_Integer) 0;
                                          break;
                                      }
                                      break;
                                  }
                                break;
                              case (MR_Integer) 120:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "xor"))
                                  case_num_5 = (MR_Integer) 3;
                                break;
                            }
                            switch (case_num_5) {
                              default:
                                succeeded = MR_FALSE;
                                break;
                              case (MR_Integer) 0:
                                {
                                  // case "*", "+", "-", "/", "//", "<<u", ">>u", "minus", "mod", "plus", "rem", "times", "unchecked_left_ushift", "unchecked_quotient", "unchecked_rem", "unchecked_right_ushift"
                                  ;
                                  {
                                    MR_Word BitsPerUInt_24;

                                    succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                                    if (succeeded)
                                    {
                                      libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &BitsPerUInt_24);
                                      {
                                        MR_Integer case_num_4 = (MR_Integer) -1;

                                        switch (MR_nth_code_unit(ProcName_9, 0)) {
                                          case (MR_Integer) 42:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "*"))
                                              case_num_4 = (MR_Integer) 0;
                                            break;
                                          case (MR_Integer) 43:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "+"))
                                              case_num_4 = (MR_Integer) 1;
                                            break;
                                          case (MR_Integer) 45:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "-"))
                                              case_num_4 = (MR_Integer) 2;
                                            break;
                                          case (MR_Integer) 47:
                                            switch (MR_nth_code_unit(ProcName_9, 1)) {
                                              case (MR_Integer) 0:
                                                case_num_4 = (MR_Integer) 3;
                                                break;
                                              case (MR_Integer) 47:
                                                if (MR_offset_streq(2, ProcName_9, (MR_String) "//"))
                                                  case_num_4 = (MR_Integer) 3;
                                                break;
                                            }
                                            break;
                                          case (MR_Integer) 60:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "<<u"))
                                              case_num_4 = (MR_Integer) 4;
                                            break;
                                          case (MR_Integer) 62:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) ">>u"))
                                              case_num_4 = (MR_Integer) 5;
                                            break;
                                          case (MR_Integer) 109:
                                            switch (MR_nth_code_unit(ProcName_9, 1)) {
                                              case (MR_Integer) 105:
                                                if (MR_offset_streq(2, ProcName_9, (MR_String) "minus"))
                                                  case_num_4 = (MR_Integer) 2;
                                                break;
                                              case (MR_Integer) 111:
                                                if (MR_offset_streq(2, ProcName_9, (MR_String) "mod"))
                                                  case_num_4 = (MR_Integer) 6;
                                                break;
                                            }
                                            break;
                                          case (MR_Integer) 112:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "plus"))
                                              case_num_4 = (MR_Integer) 1;
                                            break;
                                          case (MR_Integer) 114:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "rem"))
                                              case_num_4 = (MR_Integer) 7;
                                            break;
                                          case (MR_Integer) 116:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "times"))
                                              case_num_4 = (MR_Integer) 0;
                                            break;
                                          case (MR_Integer) 117:
                                            if (((((((((((((((((((MR_nth_code_unit(ProcName_9, 1)) == (MR_Integer) 110)) && (((MR_nth_code_unit(ProcName_9, 2)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 3)) == (MR_Integer) 104)))) && (((MR_nth_code_unit(ProcName_9, 4)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 5)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 6)) == (MR_Integer) 107)))) && (((MR_nth_code_unit(ProcName_9, 7)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 8)) == (MR_Integer) 100)))) && (((MR_nth_code_unit(ProcName_9, 9)) == (MR_Integer) 95))))
                                              switch (MR_nth_code_unit(ProcName_9, 10)) {
                                                case (MR_Integer) 108:
                                                  if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_left_ushift"))
                                                    case_num_4 = (MR_Integer) 4;
                                                  break;
                                                case (MR_Integer) 113:
                                                  if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_quotient"))
                                                    case_num_4 = (MR_Integer) 3;
                                                  break;
                                                case (MR_Integer) 114:
                                                  switch (MR_nth_code_unit(ProcName_9, 11)) {
                                                    case (MR_Integer) 101:
                                                      if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_rem"))
                                                        case_num_4 = (MR_Integer) 7;
                                                      break;
                                                    case (MR_Integer) 105:
                                                      if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_right_ushift"))
                                                        case_num_4 = (MR_Integer) 5;
                                                      break;
                                                  }
                                                  break;
                                              }
                                            break;
                                        }
                                        switch (case_num_4) {
                                          default: /*NOTREACHED*/ MR_assert(0);
                                          case (MR_Integer) 0:
                                            {
                                              // case "*", "times"
                                              ;
                                              succeeded = libs__uint_emu__times_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 1:
                                            {
                                              // case "+", "plus"
                                              ;
                                              succeeded = libs__uint_emu__plus_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 2:
                                            {
                                              // case "-", "minus"
                                              ;
                                              succeeded = libs__uint_emu__minus_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 3:
                                            {
                                              // case "/", "//", "unchecked_quotient"
                                              ;
                                              succeeded = libs__uint_emu__quotient_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 4:
                                            {
                                              // case "<<u", "unchecked_left_ushift"
                                              ;
                                              succeeded = libs__uint_emu__left_ushift_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 5:
                                            {
                                              // case ">>u", "unchecked_right_ushift"
                                              ;
                                              succeeded = libs__uint_emu__right_ushift_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 6:
                                            {
                                              // case "mod"
                                              ;
                                              succeeded = libs__uint_emu__mod_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 7:
                                            {
                                              // case "rem", "unchecked_rem"
                                              ;
                                              succeeded = libs__uint_emu__rem_4_p_0(BitsPerUInt_24, XVal_21, YVal_23, &OutputArgVal_14);
                                            }
                                            break;
                                        }
                                      }
                                    }
                                  }
                                }
                                break;
                              case (MR_Integer) 1:
                                {
                                  // case "/\"
                                  ;
                                  OutputArgVal_14 = (XVal_21 & YVal_23);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 2:
                                {
                                  // case "\/"
                                  ;
                                  OutputArgVal_14 = (XVal_21 | YVal_23);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 3:
                                {
                                  // case "xor"
                                  ;
                                  OutputArgVal_14 = (XVal_21 ^ YVal_23);
                                  succeeded = MR_TRUE;
                                }
                                break;
                            }
                          }
                        }
                        else
                          succeeded = MR_FALSE;
                        if (succeeded)
                        {
                          *OutputArg_13 = Z_12;
                          {
                            Var_25 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                            MR_hl_field(1, Var_25, 0) = ((MR_Box) (OutputArgVal_14));
                          }
                          {
                            MR_Word base;
                            base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                            *HeadVar__7_7 = base;
                            MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                            MR_hl_field(3, base, 1) = ((MR_Box) (Var_25));
                          }
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_3_mode_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded;
  MR_Integer OutputArgVal_14;
  MR_Word Var_34;
  MR_Word Var_94 = ((MR_Word) ((MR_hl_field(0, Z_12, (MR_Integer) 2))));
  MR_Word Var_97;
  MR_Word Var_100;
  MR_Word Var_101;
  MR_Word Var_102;
  MR_Word Var_103;
  MR_Word Var_104;
  MR_Integer Var_105;

  succeeded = ((((MR_tag((MR_Word) Var_94)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_94, (MR_Integer) 0)))) == (MR_Integer) 0)));
  if (succeeded)
  {
    Var_97 = ((MR_Word) ((MR_hl_field(3, Var_94, (MR_Integer) 3))));
    succeeded = (Var_97 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_101 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 0))));
      Var_100 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 1))));
      succeeded = (Var_100 == (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_103 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 0))));
        Var_102 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 1))));
        succeeded = (Var_102 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          succeeded = ((((MR_tag((MR_Word) Var_103)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_103, (MR_Integer) 0)))) == (MR_Integer) 5)));
          if (succeeded)
          {
            Var_104 = ((MR_Word) ((MR_hl_field(3, Var_103, (MR_Integer) 1))));
            succeeded = ((MR_tag((MR_Word) Var_104)) == (MR_Integer) 0);
            if (succeeded)
            {
              Var_105 = ((MR_Integer) ((MR_hl_field(0, Var_104, (MR_Integer) 0))));
              if ((strcmp(ProcName_9, (MR_String) "+") == 0))
              {
                MR_Word FunctorX_17;
                MR_Integer XVal_21;
                MR_Word BitsPerInt_23;
                MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
                MR_Word Var_36;
                MR_Word Var_37;
                MR_Word Var_38;
                MR_Word Var_39;
                MR_Word Var_45;
                MR_Word Var_47;
                MR_Word Var_48;

                succeeded = ((((MR_tag((MR_Word) Var_35)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_35, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_36 = ((MR_Word) ((MR_hl_field(3, Var_35, (MR_Integer) 3))));
                  succeeded = (Var_36 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_37 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 0))));
                    Var_39 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 1))));
                    succeeded = (Var_39 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorX_17 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 0))));
                      Var_38 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 1))));
                      succeeded = (Var_38 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorX_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_45 = ((MR_Word) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_45)) == (MR_Integer) 0);
                          if (succeeded)
                          {
                            XVal_21 = ((MR_Integer) ((MR_hl_field(0, Var_45, (MR_Integer) 0))));
                            *OutputArg_13 = Y_11;
                            succeeded = transform_hlds__const_prop____Unify____arg_hlds_info_0_0(*OutputArg_13, Y_11);
                            if (succeeded)
                            {
                              Var_47 = (MR_Integer) 271;
                              Var_48 = (MR_Integer) 0;
                              succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_47, Var_48);
                              if (succeeded)
                              {
                                libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_23);
                                succeeded = libs__int_emu__minus_4_p_0(BitsPerInt_23, Var_105, XVal_21, &OutputArgVal_14);
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "-") == 0))
              {
                MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
                MR_Word Var_50;
                MR_Word Var_51;
                MR_Word Var_52;
                MR_Word Var_53;
                MR_Word Var_59;
                MR_Word Var_61;
                MR_Word Var_62;
                MR_Word FunctorX_75;
                MR_Integer XVal_77;
                MR_Word BitsPerInt_79;

                succeeded = ((((MR_tag((MR_Word) Var_49)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_49, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_50 = ((MR_Word) ((MR_hl_field(3, Var_49, (MR_Integer) 3))));
                  succeeded = (Var_50 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_51 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 0))));
                    Var_53 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 1))));
                    succeeded = (Var_53 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorX_75 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 0))));
                      Var_52 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 1))));
                      succeeded = (Var_52 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorX_75)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_75, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_59 = ((MR_Word) ((MR_hl_field(3, FunctorX_75, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_59)) == (MR_Integer) 0);
                          if (succeeded)
                          {
                            XVal_77 = ((MR_Integer) ((MR_hl_field(0, Var_59, (MR_Integer) 0))));
                            *OutputArg_13 = Y_11;
                            succeeded = transform_hlds__const_prop____Unify____arg_hlds_info_0_0(*OutputArg_13, Y_11);
                            if (succeeded)
                            {
                              Var_61 = (MR_Integer) 271;
                              Var_62 = (MR_Integer) 0;
                              succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_61, Var_62);
                              if (succeeded)
                              {
                                libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_79);
                                succeeded = libs__int_emu__minus_4_p_0(BitsPerInt_79, XVal_77, Var_105, &OutputArgVal_14);
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "xor") == 0))
              {
                MR_Word FunctorY_30;
                MR_Integer YVal_33;
                MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
                MR_Word Var_64;
                MR_Word Var_65;
                MR_Word Var_66;
                MR_Word Var_67;
                MR_Word Var_73;

                succeeded = ((((MR_tag((MR_Word) Var_63)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_63, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_64 = ((MR_Word) ((MR_hl_field(3, Var_63, (MR_Integer) 3))));
                  succeeded = (Var_64 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_65 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 0))));
                    Var_67 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 1))));
                    succeeded = (Var_67 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorY_30 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 0))));
                      Var_66 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 1))));
                      succeeded = (Var_66 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorY_30)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_30, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_73 = ((MR_Word) ((MR_hl_field(3, FunctorY_30, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_73)) == (MR_Integer) 0);
                          if (succeeded)
                          {
                            YVal_33 = ((MR_Integer) ((MR_hl_field(0, Var_73, (MR_Integer) 0))));
                            *OutputArg_13 = X_10;
                            OutputArgVal_14 = (YVal_33 ^ Var_105);
                            succeeded = MR_TRUE;
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
                succeeded = MR_FALSE;
              if (succeeded)
              {
                {
                  Var_34 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
                  MR_hl_field(0, Var_34, 0) = ((MR_Box) (OutputArgVal_14));
                }
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *HeadVar__7_7 = base;
                  MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                  MR_hl_field(3, base, 1) = ((MR_Box) (Var_34));
                }
                succeeded = MR_TRUE;
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_hlds_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 2))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&transform_hlds__const_prop_scalar_common_1[0]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      succeeded = parse_tree__prog_data____Unify____mer_type_0_0(ArgX2_5, ArgY2_6);
      if (succeeded)
        succeeded = parse_tree__prog_data____Unify____mer_inst_0_0(ArgX3_7, ArgY3_8);
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_3_mode_1_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded;
  MR_Integer OutputArgVal_14;
  MR_Word Var_34;
  MR_Word Var_94 = ((MR_Word) ((MR_hl_field(0, Z_12, (MR_Integer) 2))));
  MR_Word Var_97;
  MR_Word Var_100;
  MR_Word Var_101;
  MR_Word Var_102;
  MR_Word Var_103;
  MR_Word Var_104;
  MR_Integer Var_105;

  succeeded = ((((MR_tag((MR_Word) Var_94)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_94, (MR_Integer) 0)))) == (MR_Integer) 0)));
  if (succeeded)
  {
    Var_97 = ((MR_Word) ((MR_hl_field(3, Var_94, (MR_Integer) 3))));
    succeeded = (Var_97 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_101 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 0))));
      Var_100 = ((MR_Word) ((MR_hl_field(1, Var_97, (MR_Integer) 1))));
      succeeded = (Var_100 == (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_103 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 0))));
        Var_102 = ((MR_Word) ((MR_hl_field(0, Var_101, (MR_Integer) 1))));
        succeeded = (Var_102 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          succeeded = ((((MR_tag((MR_Word) Var_103)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_103, (MR_Integer) 0)))) == (MR_Integer) 5)));
          if (succeeded)
          {
            Var_104 = ((MR_Word) ((MR_hl_field(3, Var_103, (MR_Integer) 1))));
            succeeded = ((MR_tag((MR_Word) Var_104)) == (MR_Integer) 0);
            if (succeeded)
            {
              Var_105 = ((MR_Integer) ((MR_hl_field(0, Var_104, (MR_Integer) 0))));
              if ((strcmp(ProcName_9, (MR_String) "+") == 0))
              {
                MR_Word FunctorY_17;
                MR_Integer YVal_21;
                MR_Word BitsPerInt_23;
                MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
                MR_Word Var_36;
                MR_Word Var_37;
                MR_Word Var_38;
                MR_Word Var_39;
                MR_Word Var_45;
                MR_Word Var_47;
                MR_Word Var_48;

                succeeded = ((((MR_tag((MR_Word) Var_35)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_35, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_36 = ((MR_Word) ((MR_hl_field(3, Var_35, (MR_Integer) 3))));
                  succeeded = (Var_36 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_37 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 0))));
                    Var_39 = ((MR_Word) ((MR_hl_field(1, Var_36, (MR_Integer) 1))));
                    succeeded = (Var_39 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorY_17 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 0))));
                      Var_38 = ((MR_Word) ((MR_hl_field(0, Var_37, (MR_Integer) 1))));
                      succeeded = (Var_38 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorY_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_45 = ((MR_Word) ((MR_hl_field(3, FunctorY_17, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_45)) == (MR_Integer) 0);
                          if (succeeded)
                          {
                            YVal_21 = ((MR_Integer) ((MR_hl_field(0, Var_45, (MR_Integer) 0))));
                            *OutputArg_13 = X_10;
                            Var_47 = (MR_Integer) 271;
                            Var_48 = (MR_Integer) 0;
                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_47, Var_48);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_23);
                              succeeded = libs__int_emu__minus_4_p_0(BitsPerInt_23, Var_105, YVal_21, &OutputArgVal_14);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "-") == 0))
              {
                MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
                MR_Word Var_50;
                MR_Word Var_51;
                MR_Word Var_52;
                MR_Word Var_53;
                MR_Word Var_59;
                MR_Word Var_61;
                MR_Word Var_62;
                MR_Word FunctorY_75;
                MR_Integer YVal_77;
                MR_Word BitsPerInt_79;

                succeeded = ((((MR_tag((MR_Word) Var_49)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_49, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_50 = ((MR_Word) ((MR_hl_field(3, Var_49, (MR_Integer) 3))));
                  succeeded = (Var_50 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_51 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 0))));
                    Var_53 = ((MR_Word) ((MR_hl_field(1, Var_50, (MR_Integer) 1))));
                    succeeded = (Var_53 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorY_75 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 0))));
                      Var_52 = ((MR_Word) ((MR_hl_field(0, Var_51, (MR_Integer) 1))));
                      succeeded = (Var_52 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorY_75)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_75, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_59 = ((MR_Word) ((MR_hl_field(3, FunctorY_75, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_59)) == (MR_Integer) 0);
                          if (succeeded)
                          {
                            YVal_77 = ((MR_Integer) ((MR_hl_field(0, Var_59, (MR_Integer) 0))));
                            *OutputArg_13 = X_10;
                            Var_61 = (MR_Integer) 271;
                            Var_62 = (MR_Integer) 0;
                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_61, Var_62);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_79);
                              succeeded = libs__int_emu__plus_4_p_0(BitsPerInt_79, YVal_77, Var_105, &OutputArgVal_14);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
              if ((strcmp(ProcName_9, (MR_String) "xor") == 0))
              {
                MR_Word FunctorX_30;
                MR_Integer XVal_33;
                MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
                MR_Word Var_64;
                MR_Word Var_65;
                MR_Word Var_66;
                MR_Word Var_67;
                MR_Word Var_73;

                succeeded = ((((MR_tag((MR_Word) Var_63)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_63, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  Var_64 = ((MR_Word) ((MR_hl_field(3, Var_63, (MR_Integer) 3))));
                  succeeded = (Var_64 != (MR_Word) ((MR_Unsigned) 0U));
                  if (succeeded)
                  {
                    Var_65 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 0))));
                    Var_67 = ((MR_Word) ((MR_hl_field(1, Var_64, (MR_Integer) 1))));
                    succeeded = (Var_67 == (MR_Word) ((MR_Unsigned) 0U));
                    if (succeeded)
                    {
                      FunctorX_30 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 0))));
                      Var_66 = ((MR_Word) ((MR_hl_field(0, Var_65, (MR_Integer) 1))));
                      succeeded = (Var_66 == (MR_Word) ((MR_Unsigned) 0U));
                      if (succeeded)
                      {
                        succeeded = ((((MR_tag((MR_Word) FunctorX_30)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_30, (MR_Integer) 0)))) == (MR_Integer) 5)));
                        if (succeeded)
                        {
                          Var_73 = ((MR_Word) ((MR_hl_field(3, FunctorX_30, (MR_Integer) 1))));
                          succeeded = ((MR_tag((MR_Word) Var_73)) == (MR_Integer) 0);
                          if (succeeded)
                          {
                            XVal_33 = ((MR_Integer) ((MR_hl_field(0, Var_73, (MR_Integer) 0))));
                            *OutputArg_13 = Y_11;
                            OutputArgVal_14 = (XVal_33 ^ Var_105);
                            succeeded = MR_TRUE;
                          }
                        }
                      }
                    }
                  }
                }
              }
              else
                succeeded = MR_FALSE;
              if (succeeded)
              {
                {
                  Var_34 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
                  MR_hl_field(0, Var_34, 0) = ((MR_Box) (OutputArgVal_14));
                }
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *HeadVar__7_7 = base;
                  MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                  MR_hl_field(3, base, 1) = ((MR_Box) (Var_34));
                }
                succeeded = MR_TRUE;
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_3_mode_0_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Word X_10,
  MR_Word Y_11,
  MR_Word Z_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded;
  MR_Integer OutputArgVal_14;
  MR_Word FunctorX_17;
  MR_Word FunctorY_20;
  MR_Integer XVal_21;
  MR_Word Var_24;
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, X_10, (MR_Integer) 2))));
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_35;
  MR_Word Var_48;

  succeeded = ((((MR_tag((MR_Word) Var_25)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_25, (MR_Integer) 0)))) == (MR_Integer) 0)));
  if (succeeded)
  {
    Var_26 = ((MR_Word) ((MR_hl_field(3, Var_25, (MR_Integer) 3))));
    succeeded = (Var_26 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      Var_27 = ((MR_Word) ((MR_hl_field(1, Var_26, (MR_Integer) 0))));
      Var_29 = ((MR_Word) ((MR_hl_field(1, Var_26, (MR_Integer) 1))));
      succeeded = (Var_29 == (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        FunctorX_17 = ((MR_Word) ((MR_hl_field(0, Var_27, (MR_Integer) 0))));
        Var_28 = ((MR_Word) ((MR_hl_field(0, Var_27, (MR_Integer) 1))));
        succeeded = (Var_28 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          Var_30 = ((MR_Word) ((MR_hl_field(0, Y_11, (MR_Integer) 2))));
          succeeded = ((((MR_tag((MR_Word) Var_30)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_30, (MR_Integer) 0)))) == (MR_Integer) 0)));
          if (succeeded)
          {
            Var_31 = ((MR_Word) ((MR_hl_field(3, Var_30, (MR_Integer) 3))));
            succeeded = (Var_31 != (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              Var_32 = ((MR_Word) ((MR_hl_field(1, Var_31, (MR_Integer) 0))));
              Var_34 = ((MR_Word) ((MR_hl_field(1, Var_31, (MR_Integer) 1))));
              succeeded = (Var_34 == (MR_Word) ((MR_Unsigned) 0U));
              if (succeeded)
              {
                FunctorY_20 = ((MR_Word) ((MR_hl_field(0, Var_32, (MR_Integer) 0))));
                Var_33 = ((MR_Word) ((MR_hl_field(0, Var_32, (MR_Integer) 1))));
                succeeded = (Var_33 == (MR_Word) ((MR_Unsigned) 0U));
                if (succeeded)
                {
                  succeeded = ((((MR_tag((MR_Word) FunctorX_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
                  if (succeeded)
                  {
                    Var_35 = ((MR_Word) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 1))));
                    succeeded = ((MR_tag((MR_Word) Var_35)) == (MR_Integer) 0);
                    if (succeeded)
                    {
                      XVal_21 = ((MR_Integer) ((MR_hl_field(0, Var_35, (MR_Integer) 0))));
                      succeeded = ((((MR_tag((MR_Word) FunctorY_20)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorY_20, (MR_Integer) 0)))) == (MR_Integer) 5)));
                      if (succeeded)
                      {
                        Var_48 = ((MR_Word) ((MR_hl_field(3, FunctorY_20, (MR_Integer) 1))));
                        if (((MR_tag((MR_Word) Var_48)) == (MR_Integer) 0))
                        {
                          MR_Integer YVal_22 = ((MR_Integer) ((MR_hl_field(0, Var_48, (MR_Integer) 0))));

                          {
                            MR_Integer case_num_1 = (MR_Integer) -1;

                            switch (MR_nth_code_unit(ProcName_9, 0)) {
                              case (MR_Integer) 42:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "*"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 43:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "+"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 45:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "-"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 47:
                                switch (MR_nth_code_unit(ProcName_9, 1)) {
                                  case (MR_Integer) 0:
                                    case_num_1 = (MR_Integer) 0;
                                    break;
                                  case (MR_Integer) 47:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "//"))
                                      case_num_1 = (MR_Integer) 0;
                                    break;
                                  case (MR_Integer) 92:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "/\\"))
                                      case_num_1 = (MR_Integer) 1;
                                    break;
                                }
                                break;
                              case (MR_Integer) 60:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "<<"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 62:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) ">>"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 92:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "\\/"))
                                  case_num_1 = (MR_Integer) 2;
                                break;
                              case (MR_Integer) 109:
                                switch (MR_nth_code_unit(ProcName_9, 1)) {
                                  case (MR_Integer) 105:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "minus"))
                                      case_num_1 = (MR_Integer) 0;
                                    break;
                                  case (MR_Integer) 111:
                                    if (MR_offset_streq(2, ProcName_9, (MR_String) "mod"))
                                      case_num_1 = (MR_Integer) 0;
                                    break;
                                }
                                break;
                              case (MR_Integer) 112:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "plus"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 114:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "rem"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 116:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "times"))
                                  case_num_1 = (MR_Integer) 0;
                                break;
                              case (MR_Integer) 117:
                                if (((((((((((((((((((MR_nth_code_unit(ProcName_9, 1)) == (MR_Integer) 110)) && (((MR_nth_code_unit(ProcName_9, 2)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 3)) == (MR_Integer) 104)))) && (((MR_nth_code_unit(ProcName_9, 4)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 5)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 6)) == (MR_Integer) 107)))) && (((MR_nth_code_unit(ProcName_9, 7)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 8)) == (MR_Integer) 100)))) && (((MR_nth_code_unit(ProcName_9, 9)) == (MR_Integer) 95))))
                                  switch (MR_nth_code_unit(ProcName_9, 10)) {
                                    case (MR_Integer) 108:
                                      if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_left_shift"))
                                        case_num_1 = (MR_Integer) 0;
                                      break;
                                    case (MR_Integer) 113:
                                      if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_quotient"))
                                        case_num_1 = (MR_Integer) 0;
                                      break;
                                    case (MR_Integer) 114:
                                      switch (MR_nth_code_unit(ProcName_9, 11)) {
                                        case (MR_Integer) 101:
                                          if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_rem"))
                                            case_num_1 = (MR_Integer) 0;
                                          break;
                                        case (MR_Integer) 105:
                                          if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_right_shift"))
                                            case_num_1 = (MR_Integer) 0;
                                          break;
                                      }
                                      break;
                                  }
                                break;
                              case (MR_Integer) 120:
                                if (MR_offset_streq(1, ProcName_9, (MR_String) "xor"))
                                  case_num_1 = (MR_Integer) 3;
                                break;
                            }
                            switch (case_num_1) {
                              default:
                                succeeded = MR_FALSE;
                                break;
                              case (MR_Integer) 0:
                                {
                                  // case "*", "+", "-", "/", "//", "<<", ">>", "minus", "mod", "plus", "rem", "times", "unchecked_left_shift", "unchecked_quotient", "unchecked_rem", "unchecked_right_shift"
                                  ;
                                  {
                                    MR_Word BitsPerInt_23;

                                    succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                                    if (succeeded)
                                    {
                                      libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_23);
                                      {
                                        MR_Integer case_num_0 = (MR_Integer) -1;

                                        switch (MR_nth_code_unit(ProcName_9, 0)) {
                                          case (MR_Integer) 42:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "*"))
                                              case_num_0 = (MR_Integer) 0;
                                            break;
                                          case (MR_Integer) 43:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "+"))
                                              case_num_0 = (MR_Integer) 1;
                                            break;
                                          case (MR_Integer) 45:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "-"))
                                              case_num_0 = (MR_Integer) 2;
                                            break;
                                          case (MR_Integer) 47:
                                            switch (MR_nth_code_unit(ProcName_9, 1)) {
                                              case (MR_Integer) 0:
                                                case_num_0 = (MR_Integer) 3;
                                                break;
                                              case (MR_Integer) 47:
                                                if (MR_offset_streq(2, ProcName_9, (MR_String) "//"))
                                                  case_num_0 = (MR_Integer) 3;
                                                break;
                                            }
                                            break;
                                          case (MR_Integer) 60:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "<<"))
                                              case_num_0 = (MR_Integer) 4;
                                            break;
                                          case (MR_Integer) 62:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) ">>"))
                                              case_num_0 = (MR_Integer) 5;
                                            break;
                                          case (MR_Integer) 109:
                                            switch (MR_nth_code_unit(ProcName_9, 1)) {
                                              case (MR_Integer) 105:
                                                if (MR_offset_streq(2, ProcName_9, (MR_String) "minus"))
                                                  case_num_0 = (MR_Integer) 2;
                                                break;
                                              case (MR_Integer) 111:
                                                if (MR_offset_streq(2, ProcName_9, (MR_String) "mod"))
                                                  case_num_0 = (MR_Integer) 6;
                                                break;
                                            }
                                            break;
                                          case (MR_Integer) 112:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "plus"))
                                              case_num_0 = (MR_Integer) 1;
                                            break;
                                          case (MR_Integer) 114:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "rem"))
                                              case_num_0 = (MR_Integer) 7;
                                            break;
                                          case (MR_Integer) 116:
                                            if (MR_offset_streq(1, ProcName_9, (MR_String) "times"))
                                              case_num_0 = (MR_Integer) 0;
                                            break;
                                          case (MR_Integer) 117:
                                            if (((((((((((((((((((MR_nth_code_unit(ProcName_9, 1)) == (MR_Integer) 110)) && (((MR_nth_code_unit(ProcName_9, 2)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 3)) == (MR_Integer) 104)))) && (((MR_nth_code_unit(ProcName_9, 4)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 5)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ProcName_9, 6)) == (MR_Integer) 107)))) && (((MR_nth_code_unit(ProcName_9, 7)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ProcName_9, 8)) == (MR_Integer) 100)))) && (((MR_nth_code_unit(ProcName_9, 9)) == (MR_Integer) 95))))
                                              switch (MR_nth_code_unit(ProcName_9, 10)) {
                                                case (MR_Integer) 108:
                                                  if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_left_shift"))
                                                    case_num_0 = (MR_Integer) 4;
                                                  break;
                                                case (MR_Integer) 113:
                                                  if (MR_offset_streq(11, ProcName_9, (MR_String) "unchecked_quotient"))
                                                    case_num_0 = (MR_Integer) 3;
                                                  break;
                                                case (MR_Integer) 114:
                                                  switch (MR_nth_code_unit(ProcName_9, 11)) {
                                                    case (MR_Integer) 101:
                                                      if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_rem"))
                                                        case_num_0 = (MR_Integer) 7;
                                                      break;
                                                    case (MR_Integer) 105:
                                                      if (MR_offset_streq(12, ProcName_9, (MR_String) "unchecked_right_shift"))
                                                        case_num_0 = (MR_Integer) 5;
                                                      break;
                                                  }
                                                  break;
                                              }
                                            break;
                                        }
                                        switch (case_num_0) {
                                          default: /*NOTREACHED*/ MR_assert(0);
                                          case (MR_Integer) 0:
                                            {
                                              // case "*", "times"
                                              ;
                                              succeeded = libs__int_emu__times_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 1:
                                            {
                                              // case "+", "plus"
                                              ;
                                              succeeded = libs__int_emu__plus_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 2:
                                            {
                                              // case "-", "minus"
                                              ;
                                              succeeded = libs__int_emu__minus_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 3:
                                            {
                                              // case "/", "//", "unchecked_quotient"
                                              ;
                                              succeeded = libs__int_emu__quotient_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 4:
                                            {
                                              // case "<<", "unchecked_left_shift"
                                              ;
                                              succeeded = libs__int_emu__left_shift_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 5:
                                            {
                                              // case ">>", "unchecked_right_shift"
                                              ;
                                              succeeded = libs__int_emu__right_shift_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 6:
                                            {
                                              // case "mod"
                                              ;
                                              succeeded = libs__int_emu__mod_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                          case (MR_Integer) 7:
                                            {
                                              // case "rem", "unchecked_rem"
                                              ;
                                              succeeded = libs__int_emu__rem_4_p_0(BitsPerInt_23, XVal_21, YVal_22, &OutputArgVal_14);
                                            }
                                            break;
                                        }
                                      }
                                    }
                                  }
                                }
                                break;
                              case (MR_Integer) 1:
                                {
                                  // case "/\"
                                  ;
                                  OutputArgVal_14 = (XVal_21 & YVal_22);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 2:
                                {
                                  // case "\/"
                                  ;
                                  OutputArgVal_14 = (XVal_21 | YVal_22);
                                  succeeded = MR_TRUE;
                                }
                                break;
                              case (MR_Integer) 3:
                                {
                                  // case "xor"
                                  ;
                                  OutputArgVal_14 = (XVal_21 ^ YVal_22);
                                  succeeded = MR_TRUE;
                                }
                                break;
                            }
                          }
                        }
                        else
                        if (((MR_tag((MR_Word) Var_48)) == (MR_Integer) 1))
                        {
                          MR_Unsigned YVal_42 = ((MR_Unsigned) ((MR_hl_field(1, Var_48, (MR_Integer) 0))));
                          MR_Word BitsPerInt_43;
                          MR_Integer lo_2;
                          MR_Integer hi_3;
                          MR_Integer mid_4;
                          MR_Integer result_5;

                          succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                          if (succeeded)
                          {
                            libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_43);
                            // binary string jump switch
                            ;
                            lo_2 = (MR_Integer) 0;
                            hi_3 = (MR_Integer) 3;
                            do
                            {
                              mid_4 = (((MR_Integer) ((MR_Unsigned) lo_2 + (MR_Unsigned) hi_3)) / (MR_Integer) 2);
                              result_5 = MR_strcmp(ProcName_9, ((&transform_hlds__const_prop_vector_common_2[7 + mid_4]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                              if ((result_5 == (MR_Integer) 0))
                              {
                                switch (((&transform_hlds__const_prop_vector_common_2[7 + mid_4]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                                  default: /*NOTREACHED*/ MR_assert(0);
                                  case (MR_Integer) 0:
                                    {
                                      // case "<<u", "unchecked_left_ushift"
                                      ;
                                      succeeded = libs__int_emu__left_ushift_4_p_0(BitsPerInt_43, XVal_21, YVal_42, &OutputArgVal_14);
                                    }
                                    break;
                                  case (MR_Integer) 1:
                                    {
                                      // case ">>u", "unchecked_right_ushift"
                                      ;
                                      succeeded = libs__int_emu__right_ushift_4_p_0(BitsPerInt_43, XVal_21, YVal_42, &OutputArgVal_14);
                                    }
                                    break;
                                }
                                // jump out of search loop
                                ;
                                goto label_0;
                              }
                              else
                              if ((result_5 < (MR_Integer) 0))
                                hi_3 = (MR_Integer) ((MR_Unsigned) mid_4 - (MR_Unsigned) 1);
                              else
                                lo_2 = (MR_Integer) ((MR_Unsigned) mid_4 + (MR_Unsigned) 1);
                            }
                            while ((lo_2 <= hi_3));
                            succeeded = MR_FALSE;
                          label_0:;
                          }
                        }
                        else
                          succeeded = MR_FALSE;
                        if (succeeded)
                        {
                          *OutputArg_13 = Z_12;
                          {
                            Var_24 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
                            MR_hl_field(0, Var_24, 0) = ((MR_Box) (OutputArgVal_14));
                          }
                          {
                            MR_Word base;
                            base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                            *HeadVar__7_7 = base;
                            MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                            MR_hl_field(3, base, 1) = ((MR_Box) (Var_24));
                          }
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded = (strcmp(ProcName_9, (MR_String) "\\") == 0);
  MR_Unsigned OutputArgVal_14;
  MR_Word FunctorX_17;
  MR_Unsigned XVal_18;
  MR_Word TargetBitsPerUInt_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Integer Var_29;
  MR_Integer Var_32;

  if (succeeded)
  {
    succeeded = (ModeNum_10 == (MR_Integer) 0);
    if (succeeded)
    {
      Var_21 = ((MR_Word) ((MR_hl_field(0, X_11, (MR_Integer) 2))));
      succeeded = ((((MR_tag((MR_Word) Var_21)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_21, (MR_Integer) 0)))) == (MR_Integer) 0)));
      if (succeeded)
      {
        Var_22 = ((MR_Word) ((MR_hl_field(3, Var_21, (MR_Integer) 3))));
        succeeded = (Var_22 != (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          Var_23 = ((MR_Word) ((MR_hl_field(1, Var_22, (MR_Integer) 0))));
          Var_25 = ((MR_Word) ((MR_hl_field(1, Var_22, (MR_Integer) 1))));
          succeeded = (Var_25 == (MR_Word) ((MR_Unsigned) 0U));
          if (succeeded)
          {
            FunctorX_17 = ((MR_Word) ((MR_hl_field(0, Var_23, (MR_Integer) 0))));
            Var_24 = ((MR_Word) ((MR_hl_field(0, Var_23, (MR_Integer) 1))));
            succeeded = (Var_24 == (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              succeeded = ((((MR_tag((MR_Word) FunctorX_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
              if (succeeded)
              {
                Var_26 = ((MR_Word) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 1))));
                succeeded = ((MR_tag((MR_Word) Var_26)) == (MR_Integer) 1);
                if (succeeded)
                {
                  XVal_18 = ((MR_Unsigned) ((MR_hl_field(1, Var_26, (MR_Integer) 0))));
                  Var_27 = (MR_Integer) 271;
                  Var_28 = (MR_Integer) 0;
                  succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, Var_27, Var_28);
                  if (succeeded)
                  {
                    libs__uint_emu__target_bits_per_uint_2_p_0(Globals_8, &TargetBitsPerUInt_19);
                    Var_29 = (MR_Integer) (TargetBitsPerUInt_19);
                    Var_32 = mercury__uint__bits_per_uint_0_f_0();
                    succeeded = (Var_29 == Var_32);
                    if (succeeded)
                    {
                      *OutputArg_13 = Y_12;
                      OutputArgVal_14 = ~(XVal_18);
                      {
                        Var_20 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                        MR_hl_field(1, Var_20, 0) = ((MR_Box) (OutputArgVal_14));
                      }
                      {
                        MR_Word base;
                        base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                        *HeadVar__7_7 = base;
                        MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                        MR_hl_field(3, base, 1) = ((MR_Box) (Var_20));
                      }
                      succeeded = MR_TRUE;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_2_7_p_0(
  MR_Word Globals_8,
  MR_String ProcName_9,
  MR_Integer ModeNum_10,
  MR_Word X_11,
  MR_Word Y_12,
  MR_Word * OutputArg_13,
  MR_Word * HeadVar__7_7)
{
  MR_bool succeeded = (ModeNum_10 == (MR_Integer) 0);
  MR_Integer OutputArgVal_14;
  MR_Word FunctorX_17;
  MR_Integer XVal_18;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Integer lo_0;
  MR_Integer hi_1;
  MR_Integer mid_2;
  MR_Integer result_3;

  if (succeeded)
  {
    Var_22 = ((MR_Word) ((MR_hl_field(0, X_11, (MR_Integer) 2))));
    succeeded = ((((MR_tag((MR_Word) Var_22)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, Var_22, (MR_Integer) 0)))) == (MR_Integer) 0)));
    if (succeeded)
    {
      Var_23 = ((MR_Word) ((MR_hl_field(3, Var_22, (MR_Integer) 3))));
      succeeded = (Var_23 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        Var_24 = ((MR_Word) ((MR_hl_field(1, Var_23, (MR_Integer) 0))));
        Var_26 = ((MR_Word) ((MR_hl_field(1, Var_23, (MR_Integer) 1))));
        succeeded = (Var_26 == (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
        {
          FunctorX_17 = ((MR_Word) ((MR_hl_field(0, Var_24, (MR_Integer) 0))));
          Var_25 = ((MR_Word) ((MR_hl_field(0, Var_24, (MR_Integer) 1))));
          succeeded = (Var_25 == (MR_Word) ((MR_Unsigned) 0U));
          if (succeeded)
          {
            succeeded = ((((MR_tag((MR_Word) FunctorX_17)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 0)))) == (MR_Integer) 5)));
            if (succeeded)
            {
              Var_27 = ((MR_Word) ((MR_hl_field(3, FunctorX_17, (MR_Integer) 1))));
              succeeded = ((MR_tag((MR_Word) Var_27)) == (MR_Integer) 0);
              if (succeeded)
              {
                XVal_18 = ((MR_Integer) ((MR_hl_field(0, Var_27, (MR_Integer) 0))));
                *OutputArg_13 = Y_12;
                // binary string jump switch
                ;
                lo_0 = (MR_Integer) 0;
                hi_1 = (MR_Integer) 6;
                do
                {
                  mid_2 = (((MR_Integer) ((MR_Unsigned) lo_0 + (MR_Unsigned) hi_1)) / (MR_Integer) 2);
                  result_3 = MR_strcmp(ProcName_9, ((&transform_hlds__const_prop_vector_common_2[0 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_0);
                  if ((result_3 == (MR_Integer) 0))
                  {
                    switch (((&transform_hlds__const_prop_vector_common_2[0 + mid_2]))->transform_hlds__const_prop__vector_common_type_2_0__vct_2_f_1) {
                      default: /*NOTREACHED*/ MR_assert(0);
                      case (MR_Integer) 0:
                        {
                          // case "+"
                          ;
                          OutputArgVal_14 = XVal_18;
                          succeeded = MR_TRUE;
                        }
                        break;
                      case (MR_Integer) 1:
                        {
                          // case "-"
                          ;
                          {
                            MR_Word BitsPerInt_19;
                            MR_Integer Var_30;

                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_19);
                              Var_30 = (MR_Integer) 0;
                              succeeded = libs__int_emu__minus_4_p_0(BitsPerInt_19, Var_30, XVal_18, &OutputArgVal_14);
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 2:
                        {
                          // case "\"
                          ;
                          {
                            MR_Word TargetBitsPerInt_20;
                            MR_Integer Var_33;
                            MR_Integer Var_48;

                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &TargetBitsPerInt_20);
                              Var_33 = (MR_Integer) (TargetBitsPerInt_20);
                              Var_48 = mercury__int__bits_per_int_0_f_0();
                              succeeded = (Var_33 == Var_48);
                              if (succeeded)
                              {
                                OutputArgVal_14 = ~(XVal_18);
                                succeeded = MR_TRUE;
                              }
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 3:
                        {
                          // case "floor_to_multiple_of_bits_per_int"
                          ;
                          {
                            MR_Word BitsPerInt_42;

                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_42);
                              succeeded = libs__int_emu__floor_to_multiple_of_bits_per_int_3_p_0(XVal_18, BitsPerInt_42, &OutputArgVal_14);
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 4:
                        {
                          // case "quot_bits_per_int"
                          ;
                          {
                            MR_Word BitsPerInt_43;

                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_43);
                              succeeded = libs__int_emu__quot_bits_per_int_3_p_0(XVal_18, BitsPerInt_43, &OutputArgVal_14);
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 5:
                        {
                          // case "rem_bits_per_int"
                          ;
                          {
                            MR_Word BitsPerInt_45;

                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_45);
                              succeeded = libs__int_emu__rem_bits_per_int_3_p_0(XVal_18, BitsPerInt_45, &OutputArgVal_14);
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 6:
                        {
                          // case "times_bits_per_int"
                          ;
                          {
                            MR_Word BitsPerInt_44;

                            succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_8, (MR_Integer) 271, (MR_Integer) 0);
                            if (succeeded)
                            {
                              libs__int_emu__target_bits_per_int_2_p_0(Globals_8, &BitsPerInt_44);
                              succeeded = libs__int_emu__times_bits_per_int_3_p_0(XVal_18, BitsPerInt_44, &OutputArgVal_14);
                            }
                          }
                        }
                        break;
                    }
                    // jump out of search loop
                    ;
                    goto label_0;
                  }
                  else
                  if ((result_3 < (MR_Integer) 0))
                    hi_1 = (MR_Integer) ((MR_Unsigned) mid_2 - (MR_Unsigned) 1);
                  else
                    lo_0 = (MR_Integer) ((MR_Unsigned) mid_2 + (MR_Unsigned) 1);
                }
                while ((lo_0 <= hi_1));
                succeeded = MR_FALSE;
              label_0:;
                if (succeeded)
                {
                  {
                    Var_21 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
                    MR_hl_field(0, Var_21, 0) = ((MR_Box) (OutputArgVal_14));
                  }
                  {
                    MR_Word base;
                    base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    *HeadVar__7_7 = base;
                    MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
                    MR_hl_field(3, base, 1) = ((MR_Box) (Var_21));
                  }
                  succeeded = MR_TRUE;
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_uint_1_6_p_0(
  MR_Word Globals_7,
  MR_String ProcName_8,
  MR_Integer ModeNum_9,
  MR_Word X_10,
  MR_Word * OutputArg_11,
  MR_Word * ConsId_12)
{
  MR_bool succeeded = (strcmp(ProcName_8, (MR_String) "bits_per_uint") == 0);
  MR_Integer OutputArgVal_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;

  if (succeeded)
  {
    succeeded = (ModeNum_9 == (MR_Integer) 0);
    if (succeeded)
    {
      *OutputArg_11 = X_10;
      Var_14 = (MR_Integer) 271;
      Var_15 = (MR_Integer) 0;
      succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_7, Var_14, Var_15);
      if (succeeded)
      {
        libs__uint_emu__target_bits_per_uint_2_p_0(Globals_7, &Var_16);
        OutputArgVal_13 = (MR_Integer) (Var_16);
        {
          Var_17 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
          MR_hl_field(0, Var_17, 0) = ((MR_Box) (OutputArgVal_13));
        }
        {
          MR_Word base;
          base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          *ConsId_12 = base;
          MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
          MR_hl_field(3, base, 1) = ((MR_Box) (Var_17));
        }
        succeeded = MR_TRUE;
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop__evaluate_det_call_int_1_6_p_0(
  MR_Word Globals_7,
  MR_String ProcName_8,
  MR_Integer ModeNum_9,
  MR_Word X_10,
  MR_Word * OutputArg_11,
  MR_Word * HeadVar__6_6)
{
  MR_bool succeeded = (strcmp(ProcName_8, (MR_String) "bits_per_int") == 0);
  MR_Integer OutputArgVal_12;
  MR_Word Var_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;

  if (succeeded)
  {
    succeeded = (ModeNum_9 == (MR_Integer) 0);
    if (succeeded)
    {
      *OutputArg_11 = X_10;
      Var_14 = (MR_Integer) 271;
      Var_15 = (MR_Integer) 0;
      succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_7, Var_14, Var_15);
      if (succeeded)
      {
        libs__int_emu__target_bits_per_int_2_p_0(Globals_7, &Var_16);
        OutputArgVal_12 = (MR_Integer) (Var_16);
        {
          Var_13 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
          MR_hl_field(0, Var_13, 0) = ((MR_Box) (OutputArgVal_12));
        }
        {
          MR_Word base;
          base = (MR_Word) MR_mkword(3, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          *HeadVar__6_6 = base;
          MR_hl_field(3, base, 0) = ((MR_Box) ((MR_Unsigned) 5U));
          MR_hl_field(3, base, 1) = ((MR_Box) (Var_13));
        }
        succeeded = MR_TRUE;
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_hlds_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = transform_hlds__const_prop____Unify____arg_hlds_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_hlds_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  transform_hlds__const_prop____Compare____arg_hlds_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
transform_hlds__const_prop____Unify____arg_val_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = transform_hlds__const_prop____Unify____arg_val_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
transform_hlds__const_prop____Compare____arg_val_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  transform_hlds__const_prop____Compare____arg_val_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

void mercury__transform_hlds__const_prop__init(void)
{
}

void mercury__transform_hlds__const_prop__init_type_tables(void)
{
	static MR_bool initialised = MR_FALSE;
	if (initialised) return;
	initialised = MR_TRUE;

	MR_register_type_ctor_info(&transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_hlds_info_0);
	MR_register_type_ctor_info(&transform_hlds__const_prop__transform_hlds__const_prop__type_ctor_info_arg_val_0);
}

void mercury__transform_hlds__const_prop__init_debugger(void)
{
	MR_fatal_error("debugger initialization in MLDS grade");
}

// Ensure everything is compiled with the same grade.
const char *mercury__transform_hlds__const_prop__grade_check(void)
{
    return &MR_GRADE_VAR;
}

// :- end_module transform_hlds.const_prop.
