% compiler: GNU Prolog 1.4.2
% file    : code_gen.pl


file_name('/home/diaz/GP/src/src/Pl2Wam/code_gen.pl').


predicate(code_generation/5,40,static,private,monofile,global,[
    allocate(3),
    get_variable(y(0),1),
    get_variable(y(1),2),
    put_atom(last_pred,1),
    put_atom(f,2),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(1),x(2)]),
    put_atom(treat_body,1),
    put_atom(f,2),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(1),x(2)]),
    put_value(x(3),2),
    put_value(y(1),1),
    put_variable(y(2),3),
    call(generate_head/5),
    put_atom(treat_body,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(2),2),
    deallocate,
    execute(generate_body/3)]).


predicate(generate_head/5,50,static,private,monofile,global,[
    allocate(9),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_structure(p/4,0),
    unify_void(2),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_structure((/)/2,0),
    unify_void(1),
    unify_variable(x(1)),
    put_integer(0,0),
    put_variable(y(5),2),
    call(gen_list_integers/3),
    put_value(y(0),0),
    put_value(y(5),1),
    put_variable(y(6),2),
    put_variable(y(7),3),
    call('$generate_head/5_$aux1'/4),
    put_value(y(6),0),
    put_value(y(7),1),
    put_value(y(3),2),
    put_variable(y(8),3),
    call(gen_unif_arg_lst/4),
    put_value(y(1),0),
    put_value(y(4),1),
    put_value(y(2),2),
    put_unsafe_value(y(8),3),
    deallocate,
    execute('$generate_head/5_$aux2'/4)]).


predicate('$generate_head/5_$aux2'/4,50,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,5),
    call_c('Pl_Blt_Fast_Gt',[fast_call,boolean],[x(0),x(5)]),
    cut(x(4)),
    get_list(1),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(allocate/1,0),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    get_value(x(3),1),
    proceed]).


predicate('$generate_head/5_$aux1'/4,50,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    put_atom(reorder,5),
    put_atom(t,6),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(5),x(6)]),
    cut(x(4)),
    execute(reorder_head_arg_lst/4),

label(1),
    trust_me_else_fail,
    get_value(x(0),2),
    get_value(x(1),3),
    proceed]).


predicate(reorder_head_arg_lst/4,68,static,private,monofile,global,[
    allocate(12),
    get_variable(y(0),2),
    get_variable(y(1),3),
    put_variable(y(2),2),
    put_variable(y(3),3),
    put_variable(y(4),4),
    put_variable(y(5),5),
    put_variable(y(6),6),
    put_variable(y(7),7),
    call(split_arg_lst/8),
    put_value(y(6),0),
    put_variable(y(8),1),
    call(reverse/2),
    put_value(y(7),0),
    put_variable(y(9),1),
    call(reverse/2),
    put_value(y(2),0),
    put_value(y(8),1),
    put_variable(y(10),2),
    call(append/3),
    put_value(y(10),0),
    put_value(y(4),1),
    put_value(y(0),2),
    call(append/3),
    put_value(y(3),0),
    put_value(y(9),1),
    put_variable(y(11),2),
    call(append/3),
    put_unsafe_value(y(11),0),
    put_unsafe_value(y(5),1),
    put_value(y(1),2),
    deallocate,
    execute(append/3)]).


predicate(generate_body/3,80,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_list(2),
    unify_atom(proceed),
    unify_nil,
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(8),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(5)),
    get_structure(p/4,0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    unify_variable(x(0)),
    unify_variable(y(4)),
    get_structure((/)/2,0),
    unify_variable(y(2)),
    unify_variable(y(3)),
    get_variable(y(6),1),
    get_variable(y(7),2),
    put_value(y(0),0),
    put_value(y(6),1),
    call('$generate_body/3_$aux1'/2),
    put_value(y(2),0),
    put_value(y(3),1),
    put_value(y(1),2),
    put_value(y(4),3),
    put_value(y(0),4),
    put_value(y(5),5),
    put_value(y(6),6),
    put_value(y(7),7),
    deallocate,
    execute(generate_body1/8)]).


predicate('$generate_body/3_$aux1'/2,82,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    get_value(x(1),0),
    cut(x(2)),
    put_atom(last_pred,0),
    put_atom(t,1),
    call_c('Pl_Blt_G_Assign',[fast_call],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    proceed]).


predicate(generate_body1/8,91,static,private,monofile,global,[
    pragma_arity(9),
    get_current_choice(x(8)),
    try_me_else(6),
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(fail,3),('$call_c',5)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(fail,0),
    get_integer(0,1),
    get_list(7),
    unify_atom(fail),
    unify_nil,
    cut(x(8)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    allocate(10),
    get_atom('$call_c',0),
    get_integer(2,1),
    get_variable(y(1),4),
    get_variable(y(2),5),
    get_variable(y(3),6),
    get_variable(y(4),7),
    get_list(3),
    unify_variable(x(0)),
    unify_list,
    unify_variable(y(0)),
    unify_nil,
    cut(x(8)),
    put_variable(y(5),1),
    put_variable(y(6),2),
    call('$generate_body1/8_$aux1'/3),
    put_value(y(2),0),
    put_value(y(0),1),
    put_variable(y(7),2),
    call('$generate_body1/8_$aux2'/3),
    put_value(y(0),0),
    put_value(y(6),1),
    put_variable(y(8),2),
    put_variable(y(9),3),
    put_value(y(4),4),
    call(load_c_call_args/5),
    put_structure(call_c/3,3),
    unify_local_value(y(5)),
    unify_local_value(y(7)),
    unify_local_value(y(8)),
    put_value(y(2),0),
    put_value(y(1),1),
    put_unsafe_value(y(9),2),
    put_value(y(3),4),
    deallocate,
    execute('$generate_body1/8_$aux3'/5),

label(6),
    retry_me_else(7),
    allocate(9),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),3),
    get_variable(y(3),4),
    get_variable(y(4),5),
    get_variable(y(5),6),
    get_variable(y(6),7),
    get_variable(y(7),8),
    put_value(y(0),0),
    put_value(y(1),1),
    call(inline_predicate/2),
    cut(y(7)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_variable(y(8),3),
    put_value(y(6),4),
    call(gen_inline_pred/5),
    cut(y(7)),
    put_value(y(4),0),
    put_value(y(3),1),
    put_unsafe_value(y(8),2),
    put_value(y(5),3),
    deallocate,
    execute('$generate_body1/8_$aux4'/4),

label(7),
    trust_me_else_fail,
    allocate(13),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    get_variable(y(7),7),
    put_integer(0,0),
    put_value(y(1),1),
    put_variable(y(8),2),
    call(gen_list_integers/3),
    put_value(y(3),0),
    put_value(y(8),1),
    put_variable(y(9),2),
    put_variable(y(10),3),
    call('$generate_body1/8_$aux5'/4),
    put_value(y(9),0),
    put_value(y(10),1),
    put_variable(y(11),2),
    put_value(y(7),3),
    call(gen_load_arg_lst/4),
    put_value(y(2),0),
    put_value(y(0),1),
    put_value(y(1),2),
    put_variable(y(12),3),
    call(qualif_with_module/4),
    put_value(y(5),0),
    put_value(y(4),1),
    put_unsafe_value(y(11),2),
    put_unsafe_value(y(12),3),
    put_value(y(6),4),
    deallocate,
    execute('$generate_body1/8_$aux6'/5)]).


predicate('$generate_body1/8_$aux6'/5,133,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    get_nil(0),
    cut(x(5)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    execute('$generate_body1/8_$aux7'/3),

label(1),
    trust_me_else_fail,
    get_list(2),
    unify_variable(x(1)),
    unify_variable(x(2)),
    get_structure(call/1,1),
    unify_local_value(x(3)),
    put_value(x(4),1),
    execute(generate_body/3)]).


predicate('$generate_body1/8_$aux7'/3,133,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,4),
    call_c('Pl_Blt_Fast_Gt',[fast_call,boolean],[x(0),x(4)]),
    cut(x(3)),
    get_list(1),
    unify_atom(deallocate),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_structure(execute/1,0),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_variable(x(0)),
    unify_nil,
    get_structure(execute/1,0),
    unify_local_value(x(2)),
    proceed]).


predicate('$generate_body1/8_$aux5'/4,133,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    put_atom(reorder,5),
    put_atom(t,6),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(5),x(6)]),
    cut(x(4)),
    execute(reorder_body_arg_lst/4),

label(1),
    trust_me_else_fail,
    get_value(x(0),2),
    get_value(x(1),3),
    proceed]).


predicate('$generate_body1/8_$aux4'/4,119,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_nil(0),
    cut(x(4)),
    put_value(x(1),0),
    put_value(x(2),1),
    execute('$generate_body1/8_$aux8'/2),

label(1),
    trust_me_else_fail,
    put_value(x(3),1),
    execute(generate_body/3)]).


predicate('$generate_body1/8_$aux8'/2,119,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,3),
    call_c('Pl_Blt_Fast_Gt',[fast_call,boolean],[x(0),x(3)]),
    cut(x(2)),
    get_list(1),
    unify_atom(deallocate),
    unify_list,
    unify_atom(proceed),
    unify_nil,
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_atom(proceed),
    unify_nil,
    proceed]).


predicate('$generate_body1/8_$aux3'/5,94,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    get_nil(0),
    cut(x(5)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    execute('$generate_body1/8_$aux9'/3),

label(1),
    trust_me_else_fail,
    get_list(2),
    unify_local_value(x(3)),
    unify_variable(x(2)),
    put_value(x(4),1),
    execute(generate_body/3)]).


predicate('$generate_body1/8_$aux9'/3,94,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,4),
    call_c('Pl_Blt_Fast_Gt',[fast_call,boolean],[x(0),x(4)]),
    cut(x(3)),
    get_list(1),
    unify_atom(deallocate),
    unify_list,
    unify_local_value(x(2)),
    unify_list,
    unify_atom(proceed),
    unify_nil,
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_local_value(x(2)),
    unify_list,
    unify_atom(proceed),
    unify_nil,
    proceed]).


predicate('$generate_body1/8_$aux2'/3,94,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    put_nil(1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_atom(jump,0),
    put_value(y(0),1),
    call(memberchk/2),
    cut(y(2)),
    put_value(y(1),0),
    get_list(0),
    unify_atom(set_cp),
    unify_local_value(y(0)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    get_value(x(1),2),
    proceed]).


predicate('$generate_body1/8_$aux1'/3,94,static,private,monofile,local,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(atm/1,3),(stc/3,5)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(atm/1,0),
    unify_local_value(x(1)),
    get_nil(2),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_structure(stc/3,0),
    unify_local_value(x(1)),
    unify_void(1),
    unify_local_value(x(2)),
    proceed]).


predicate(qualif_with_module/4,156,static,private,monofile,global,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_structure((:)/2,3),
    unify_local_value(x(0)),
    unify_structure((/)/2),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    call_c('Pl_Blt_Non_Var',[fast_call,boolean],[x(0)]),
    put_atom(system,1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    put_atom(user,1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    cut(x(4)),
    proceed,

label(1),
    trust_me_else_fail,
    get_structure((/)/2,3),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    proceed]).


predicate(reorder_body_arg_lst/4,167,static,private,monofile,global,[
    allocate(10),
    get_variable(y(0),2),
    get_variable(y(1),3),
    put_variable(y(2),2),
    put_variable(y(3),3),
    put_variable(y(4),4),
    put_variable(y(5),5),
    put_variable(y(6),6),
    put_variable(y(7),7),
    call(split_arg_lst/8),
    put_value(y(4),0),
    put_value(y(6),1),
    put_variable(y(8),2),
    call(append/3),
    put_value(y(8),0),
    put_value(y(2),1),
    put_value(y(0),2),
    call(append/3),
    put_value(y(5),0),
    put_value(y(7),1),
    put_variable(y(9),2),
    call(append/3),
    put_unsafe_value(y(9),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    deallocate,
    execute(append/3)]).


predicate(split_arg_lst/8,182,static,private,monofile,global,[
    pragma_arity(9),
    get_current_choice(x(8)),
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_nil(2),
    get_nil(3),
    get_nil(4),
    get_nil(5),
    get_nil(6),
    get_nil(7),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(9),
    get_variable(x(11),7),
    get_variable(x(7),5),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(12)),
    unify_variable(y(1)),
    get_variable(y(2),8),
    put_value(x(2),1),
    put_value(x(4),5),
    put_value(x(6),9),
    put_variable(y(3),2),
    put_variable(y(4),4),
    put_variable(y(5),6),
    put_variable(y(6),8),
    put_variable(y(7),10),
    put_variable(y(8),13),
    call('$split_arg_lst/8_$aux1'/14),
    cut(y(2)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(3),2),
    put_unsafe_value(y(4),3),
    put_unsafe_value(y(5),4),
    put_unsafe_value(y(6),5),
    put_unsafe_value(y(7),6),
    put_unsafe_value(y(8),7),
    deallocate,
    execute(split_arg_lst/8)]).


predicate('$split_arg_lst/8_$aux1'/14,184,static,private,monofile,local,[
    try_me_else(1),
    get_structure(var/2,0),
    unify_variable(x(14)),
    unify_void(1),
    get_structure(x/1,14),
    unify_variable(x(14)),
    put_atom(void,15),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(14),x(15)]),
    get_value(x(2),1),
    get_value(x(4),3),
    get_value(x(6),5),
    get_value(x(8),7),
    get_list(9),
    unify_local_value(x(0)),
    unify_local_value(x(10)),
    get_list(11),
    unify_local_value(x(12)),
    unify_local_value(x(13)),
    proceed,

label(1),
    retry_me_else(2),
    allocate(14),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    get_variable(y(7),7),
    get_variable(y(8),8),
    get_variable(y(9),9),
    get_variable(y(10),10),
    get_variable(y(11),11),
    get_variable(y(12),12),
    get_variable(y(13),13),
    put_value(y(0),0),
    get_structure(stc/3,0),
    unify_void(2),
    unify_variable(x(0)),
    call(has_temporaries/1),
    put_value(y(1),0),
    get_value(y(2),0),
    put_value(y(3),0),
    get_value(y(4),0),
    put_value(y(5),0),
    get_list(0),
    unify_local_value(y(0)),
    unify_local_value(y(6)),
    put_value(y(7),0),
    get_list(0),
    unify_local_value(y(12)),
    unify_local_value(y(8)),
    put_value(y(9),0),
    get_value(y(10),0),
    put_value(y(11),0),
    get_value(y(13),0),
    deallocate,
    proceed,

label(2),
    trust_me_else_fail,
    get_list(1),
    unify_local_value(x(0)),
    unify_local_value(x(2)),
    get_list(3),
    unify_local_value(x(12)),
    unify_local_value(x(4)),
    get_value(x(6),5),
    get_value(x(8),7),
    get_value(x(10),9),
    get_value(x(13),11),
    proceed]).


predicate(has_temporaries/1,215,static,private,monofile,global,[
    pragma_arity(2),
    get_current_choice(x(1)),
    allocate(1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(2)),
    get_variable(y(0),1),
    put_value(x(2),1),
    call('$has_temporaries/1_$aux1'/2),
    cut(y(0)),
    deallocate,
    proceed]).


predicate('$has_temporaries/1_$aux1'/2,215,static,private,monofile,local,[
    try_me_else(6),
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(stc/3,5)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(x/1,0),
    unify_variable(x(0)),
    put_atom(void,1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_structure(stc/3,0),
    unify_void(2),
    unify_variable(x(0)),
    execute(has_temporaries/1),

label(6),
    trust_me_else_fail,
    put_value(x(1),0),
    execute(has_temporaries/1)]).


predicate(gen_unif_arg_lst/4,230,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(gen_unif_arg/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_unif_arg_lst/4)]).


predicate(gen_unif_arg/4,241,static,private,monofile,global,[
    switch_on_term(2,11,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7),(flt/1,9),(stc/3,13)]),

label(2),
    try_me_else(4),

label(3),
    get_variable(x(5),3),
    get_variable(x(3),2),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    put_value(x(5),2),
    execute('$gen_unif_arg/4_$aux1'/5),

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(get_atom/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(get_integer/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_structure(flt/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(get_float/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(nil,0),
    get_list(3),
    unify_variable(x(0)),
    unify_local_value(x(2)),
    get_structure(get_nil/1,0),
    unify_local_value(x(1)),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    allocate(7),
    get_variable(y(1),2),
    get_variable(x(4),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(0)),
    get_list(3),
    unify_variable(x(2)),
    unify_variable(y(2)),
    put_value(x(4),3),
    call('$gen_unif_arg/4_$aux2'/4),
    put_value(y(0),0),
    put_atom(head,1),
    put_variable(y(3),2),
    put_variable(y(4),3),
    put_variable(y(5),4),
    call(flat_stc_arg_lst/5),
    put_value(y(3),0),
    put_variable(y(6),1),
    put_value(y(2),2),
    call(gen_subterm_arg_lst/3),
    put_unsafe_value(y(4),0),
    put_unsafe_value(y(5),1),
    put_value(y(1),2),
    put_unsafe_value(y(6),3),
    deallocate,
    execute(gen_unif_arg_lst/4)]).


predicate('$gen_unif_arg/4_$aux2'/4,265,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_atom('.',0),
    get_integer(2,1),
    cut(x(4)),
    get_structure(get_list/1,2),
    unify_local_value(x(3)),
    proceed,

label(1),
    trust_me_else_fail,
    get_structure(get_structure/2,2),
    unify_variable(x(2)),
    unify_local_value(x(3)),
    get_structure((/)/2,2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    proceed]).


predicate('$gen_unif_arg/4_$aux1'/5,241,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    get_variable(x(6),3),
    get_variable(x(3),0),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(3)]),
    cut(x(5)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(6),2),
    execute('$gen_unif_arg/4_$aux3'/5),

label(1),
    trust_me_else_fail,
    get_list(2),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(get_value/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(4)),
    proceed]).


predicate('$gen_unif_arg/4_$aux3'/5,241,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    put_structure(x/1,3),
    unify_atom(void),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(3)]),
    cut(x(5)),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),4),
    put_value(x(3),1),
    put_value(y(0),0),
    call('$gen_unif_arg/4_$aux4'/2),
    put_value(y(1),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(2)),
    get_structure(get_variable/2,0),
    unify_local_value(y(0)),
    unify_local_value(y(3)),
    deallocate,
    proceed]).


predicate('$gen_unif_arg/4_$aux4'/2,241,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    put_atom(treat_body,3),
    put_atom(t,4),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(3),x(4)]),
    get_structure(y/1,0),
    unify_void(1),
    cut(x(2)),
    get_atom(unsafe,1),
    proceed,

label(1),
    trust_me_else_fail,
    get_atom(not_in_cur_env,1),
    proceed]).


predicate(gen_load_arg_lst/4,280,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_load_arg_lst/4)]).


predicate(gen_load_arg/4,291,static,private,monofile,global,[
    pragma_arity(5),
    get_current_choice(x(4)),
    switch_on_term(3,12,fail,fail,1),

label(1),
    switch_on_structure([(var/2,4),(atm/1,6),(int/1,8),(flt/1,10),(stc/3,2)]),

label(2),
    try(14),
    trust(16),

label(3),
    try_me_else(5),

label(4),
    get_variable(x(5),2),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(2)),
    unify_local_value(x(5)),
    put_value(x(4),3),
    execute('$gen_load_arg/4_$aux1'/4),

label(5),
    retry_me_else(7),

label(6),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(put_atom/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(put_integer/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_structure(flt/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(put_float/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_atom(nil,0),
    get_list(3),
    unify_variable(x(0)),
    unify_local_value(x(2)),
    get_structure(put_nil/1,0),
    unify_local_value(x(1)),
    proceed,

label(13),
    retry_me_else(15),

label(14),
    allocate(4),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_structure(stc/3,0),
    unify_atom('$mt'),
    unify_integer(2),
    unify_list,
    unify_variable(x(1)),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_structure(atm/1,1),
    unify_variable(y(0)),
    cut(x(4)),
    put_value(y(1),1),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_unsafe_value(y(3),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(2)),
    get_structure(put_meta_term/2,0),
    unify_value(y(0)),
    unify_local_value(y(1)),
    deallocate,
    proceed,

label(15),
    trust_me_else_fail,

label(16),
    allocate(8),
    get_variable(y(1),2),
    get_variable(y(2),3),
    get_variable(x(3),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(0)),
    put_variable(y(3),2),
    call('$gen_load_arg/4_$aux2'/4),
    put_value(y(0),0),
    put_atom(body,1),
    put_variable(y(4),2),
    put_variable(y(5),3),
    put_variable(y(6),4),
    call(flat_stc_arg_lst/5),
    put_value(y(5),0),
    put_value(y(6),1),
    put_list(2),
    unify_local_value(y(3)),
    unify_variable(y(7)),
    put_value(y(2),3),
    call(gen_load_arg_lst/4),
    put_unsafe_value(y(4),0),
    put_value(y(1),1),
    put_value(y(7),2),
    deallocate,
    execute(gen_subterm_arg_lst/3)]).


predicate('$gen_load_arg/4_$aux2'/4,325,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_atom('.',0),
    get_integer(2,1),
    cut(x(4)),
    get_structure(put_list/1,2),
    unify_local_value(x(3)),
    proceed,

label(1),
    trust_me_else_fail,
    get_structure(put_structure/2,2),
    unify_variable(x(2)),
    unify_local_value(x(3)),
    get_structure((/)/2,2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    proceed]).


predicate('$gen_load_arg/4_$aux1'/4,291,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_variable(x(5),3),
    get_variable(x(3),0),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(3)]),
    cut(x(4)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(5),2),
    execute('$gen_load_arg/4_$aux3'/4),

label(1),
    retry_me_else(2),
    get_atom(unsafe,0),
    put_atom(last_pred,0),
    put_atom(t,5),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(0),x(5)]),
    cut(x(4)),
    get_structure(put_unsafe_value/2,2),
    unify_local_value(x(1)),
    unify_local_value(x(3)),
    proceed,

label(2),
    trust_me_else_fail,
    get_structure(put_value/2,2),
    unify_local_value(x(1)),
    unify_local_value(x(3)),
    proceed]).


predicate('$gen_load_arg/4_$aux3'/4,291,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    put_structure(x/1,3),
    unify_atom(void),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(3)]),
    cut(x(4)),
    get_structure(put_void/1,1),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_value(x(3),1),
    put_value(y(0),0),
    call('$gen_load_arg/4_$aux4'/2),
    put_value(y(1),0),
    get_structure(put_variable/2,0),
    unify_local_value(y(0)),
    unify_local_value(y(2)),
    deallocate,
    proceed]).


predicate('$gen_load_arg/4_$aux4'/2,291,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    get_structure(x/1,0),
    unify_void(1),
    cut(x(2)),
    get_atom(in_heap,1),
    proceed,

label(1),
    trust_me_else_fail,
    get_atom(unsafe,1),
    proceed]).


predicate(flat_stc_arg_lst/5,341,static,private,monofile,global,[
    pragma_arity(6),
    get_current_choice(x(5)),
    switch_on_term(2,3,fail,1,fail),

label(1),
    try(5),
    retry(7),
    trust(9),

label(2),
    try_me_else(4),

label(3),
    get_nil(0),
    get_nil(2),
    get_nil(3),
    get_nil(4),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    allocate(6),
    get_variable(y(1),1),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(2),
    unify_value(x(0)),
    unify_variable(y(2)),
    get_variable(y(5),5),
    call(simple_stc_arg/1),
    cut(y(5)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(3),3),
    put_value(y(4),4),
    deallocate,
    execute(flat_stc_arg_lst/5),

label(6),
    retry_me_else(8),

label(7),
    allocate(6),
    get_variable(y(0),1),
    get_variable(y(2),3),
    get_variable(y(3),4),
    get_list(0),
    unify_variable(x(3)),
    unify_nil,
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(1)),
    get_variable(y(4),5),
    put_atom(opt_last_subterm,2),
    put_atom(t,4),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(2),x(4)]),
    get_structure(stc/3,3),
    unify_value(x(0)),
    unify_value(x(1)),
    unify_variable(y(5)),
    call('$flat_stc_arg_lst/5_$aux1'/2),
    cut(y(4)),
    put_value(y(5),0),
    put_value(y(0),1),
    put_value(y(1),2),
    put_value(y(2),3),
    put_value(y(3),4),
    deallocate,
    execute(flat_stc_arg_lst/5),

label(8),
    trust_me_else_fail,

label(9),
    allocate(5),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(2),
    unify_variable(x(1)),
    unify_variable(y(2)),
    get_list(3),
    unify_value(x(0)),
    unify_variable(y(3)),
    get_list(4),
    unify_variable(x(2)),
    unify_variable(y(4)),
    put_value(y(1),0),
    call('$flat_stc_arg_lst/5_$aux2'/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(3),3),
    put_value(y(4),4),
    deallocate,
    execute(flat_stc_arg_lst/5)]).


predicate('$flat_stc_arg_lst/5_$aux2'/3,353,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    get_atom(head,0),
    cut(x(3)),
    get_structure(var/2,1),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(x/1,0),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    get_structure(var/2,1),
    unify_variable(x(0)),
    unify_atom(in_heap),
    get_structure(x/1,0),
    unify_local_value(x(2)),
    proceed]).


predicate('$flat_stc_arg_lst/5_$aux1'/2,347,static,private,monofile,local,[
    try_me_else(1),
    put_atom('$mt',1),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(1),
    trust_me_else_fail,
    put_integer(3,0),
    call_c('Pl_Blt_Term_Neq',[fast_call,boolean],[x(1),x(0)]),
    proceed]).


predicate(simple_stc_arg/1,363,static,private,monofile,global,[
    switch_on_term(2,9,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(var/2,0),
    unify_void(2),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_void(1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_void(1),
    proceed,

label(8),
    trust_me_else_fail,

label(9),
    get_atom(nil,0),
    proceed]).


predicate(gen_subterm_arg_lst/3,376,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_value(x(2),1),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(6),
    get_list(0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    get_variable(y(2),1),
    get_variable(y(3),2),
    put_list(0),
    unify_value(y(0)),
    unify_value(y(1)),
    put_integer(0,1),
    put_variable(y(4),2),
    put_variable(y(5),3),
    call(gen_compte_void/4),
    put_unsafe_value(y(4),0),
    put_value(y(0),1),
    put_value(y(3),2),
    put_value(y(1),3),
    put_value(y(2),4),
    put_unsafe_value(y(5),5),
    deallocate,
    execute('$gen_subterm_arg_lst/3_$aux1'/6)]).


predicate('$gen_subterm_arg_lst/3_$aux1'/6,378,static,private,monofile,local,[
    pragma_arity(7),
    get_current_choice(x(6)),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_integer(0,0),
    cut(x(6)),
    put_value(x(1),0),
    put_variable(y(2),1),
    call(gen_subterm_arg/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(2),2),
    deallocate,
    execute(gen_subterm_arg_lst/3),

label(1),
    trust_me_else_fail,
    get_list(2),
    unify_variable(x(1)),
    unify_variable(x(2)),
    get_structure(unify_void/1,1),
    unify_local_value(x(0)),
    put_value(x(5),0),
    put_value(x(4),1),
    execute(gen_subterm_arg_lst/3)]).


predicate(gen_compte_void/4,391,static,private,monofile,global,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    get_list(0),
    unify_variable(x(5)),
    unify_variable(x(0)),
    get_structure(var/2,5),
    unify_variable(x(5)),
    unify_void(1),
    get_structure(x/1,5),
    unify_variable(x(5)),
    put_atom(void,6),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(5),x(6)]),
    cut(x(4)),
    math_fast_load_value(x(1),1),
    call_c('Pl_Fct_Fast_Inc',[fast_call,x(1)],[x(1)]),
    execute(gen_compte_void/4),

label(1),
    trust_me_else_fail,
    get_value(x(2),1),
    get_value(x(3),0),
    proceed]).


predicate(gen_subterm_arg/3,401,static,private,monofile,global,[
    switch_on_term(2,9,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7),(stc/3,11)]),

label(2),
    try_me_else(4),

label(3),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(3)),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(1)),
    unify_local_value(x(4)),
    put_value(x(3),2),
    execute('$gen_subterm_arg/3_$aux1'/3),

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_local_value(x(1)),
    get_structure(unify_atom/1,2),
    unify_value(x(0)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_local_value(x(1)),
    get_structure(unify_integer/1,2),
    unify_value(x(0)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(nil,0),
    get_list(2),
    unify_atom(unify_nil),
    unify_local_value(x(1)),
    proceed,

label(10),
    trust_me_else_fail,

label(11),
    allocate(3),
    get_variable(y(1),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_variable(y(2)),
    call('$gen_subterm_arg/3_$aux2'/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(gen_subterm_arg_lst/3)]).


predicate('$gen_subterm_arg/3_$aux2'/3,418,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    get_atom('.',0),
    get_integer(2,1),
    cut(x(3)),
    get_atom(unify_list,2),
    proceed,

label(1),
    trust_me_else_fail,
    get_structure(unify_structure/1,2),
    unify_structure((/)/2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    proceed]).


predicate('$gen_subterm_arg/3_$aux1'/3,401,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    cut(x(3)),
    get_atom(in_heap,0),
    get_structure(unify_variable/1,1),
    unify_local_value(x(2)),
    proceed,

label(1),
    retry_me_else(2),
    get_atom(in_heap,0),
    cut(x(3)),
    get_structure(unify_value/1,1),
    unify_local_value(x(2)),
    proceed,

label(2),
    trust_me_else_fail,
    get_structure(unify_local_value/1,1),
    unify_local_value(x(2)),
    proceed]).


predicate(gen_list_integers/3,430,static,private,monofile,global,[
    execute('$gen_list_integers/3_$aux1'/3)]).


predicate('$gen_list_integers/3_$aux1'/3,430,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    math_fast_load_value(x(0),4),
    math_fast_load_value(x(1),5),
    call_c('Pl_Blt_Fast_Lt',[fast_call,boolean],[x(4),x(5)]),
    cut(x(3)),
    get_list(2),
    unify_local_value(x(0)),
    unify_variable(x(2)),
    math_fast_load_value(x(0),0),
    call_c('Pl_Fct_Fast_Inc',[fast_call,x(0)],[x(0)]),
    execute(gen_list_integers/3),

label(1),
    trust_me_else_fail,
    get_nil(2),
    proceed]).


predicate(special_form/2,444,static,private,monofile,global,[
    get_structure(put_variable/2,0),
    unify_variable(x(2)),
    unify_variable(x(0)),
    get_structure(x/1,2),
    unify_value(x(0)),
    get_structure(put_void/1,1),
    unify_value(x(0)),
    proceed]).


predicate(dummy_instruction/2,449,static,private,monofile,global,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(get_variable/2,3),(put_value/2,5)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(f,1),
    get_structure(get_variable/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure(x/1,1),
    unify_value(x(0)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_atom(f,1),
    get_structure(put_value/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure(x/1,1),
    unify_value(x(0)),
    proceed]).


predicate(equal/4,491,static,private,monofile,global,[
    try_me_else(1),
    get_value(x(3),2),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(1),
    retry_me_else(2),
    get_value(x(3),2),
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    get_structure(x/1,0),
    unify_variable(x(0)),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(1)]),
    put_atom(void,1),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(2),
    retry_me_else(3),
    get_value(x(3),2),
    get_structure(var/2,1),
    unify_variable(x(0)),
    unify_variable(x(1)),
    get_structure(x/1,0),
    unify_variable(x(0)),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(1)]),
    put_atom(void,1),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(1)]),
    proceed,

label(3),
    retry_me_else(4),
    get_value(x(3),2),
    get_structure(var/2,0),
    unify_variable(x(2)),
    unify_variable(x(0)),
    get_structure(var/2,1),
    unify_value(x(2)),
    unify_value(x(0)),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    proceed,

label(4),
    retry_me_else(5),
    get_variable(x(6),3),
    get_variable(x(4),1),
    get_variable(x(5),0),
    get_structure(var/2,5),
    unify_variable(x(0)),
    unify_variable(x(3)),
    put_value(x(2),1),
    put_value(x(6),2),
    execute('$equal/4_$aux1'/6),

label(5),
    retry_me_else(6),
    get_variable(x(6),3),
    get_variable(x(5),1),
    get_variable(x(4),0),
    get_structure(var/2,5),
    unify_variable(x(0)),
    unify_variable(x(3)),
    put_value(x(2),1),
    put_value(x(6),2),
    execute('$equal/4_$aux2'/6),

label(6),
    retry_me_else(7),
    get_variable(x(4),3),
    get_variable(x(3),2),
    get_variable(x(2),0),
    get_structure(var/2,1),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure(x/1,1),
    unify_variable(x(1)),
    execute(inline_unif_reg_term/5),

label(7),
    retry_me_else(8),
    get_structure(stc/3,0),
    unify_variable(x(5)),
    unify_variable(x(4)),
    unify_variable(x(0)),
    get_structure(stc/3,1),
    unify_value(x(5)),
    unify_value(x(4)),
    unify_variable(x(1)),
    execute(equal_lst/4),

label(8),
    trust_me_else_fail,
    get_list(3),
    unify_atom(fail),
    unify_local_value(x(2)),
    put_atom('explicit unification will fail',0),
    put_nil(1),
    execute(warn/2)]).


predicate('$equal/4_$aux2'/6,518,static,private,monofile,local,[
    pragma_arity(7),
    get_current_choice(x(6)),
    try_me_else(1),
    get_structure(x/1,0),
    unify_variable(x(0)),
    cut(x(6)),
    execute('$equal/4_$aux3'/5),

label(1),
    trust_me_else_fail,
    allocate(4),
    get_variable(y(0),1),
    get_variable(y(1),4),
    put_value(x(5),0),
    put_value(x(2),3),
    put_variable(y(2),1),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(1),0),
    put_unsafe_value(y(2),1),
    put_value(y(0),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_unif_arg/4)]).


predicate('$equal/4_$aux3'/5,518,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    put_atom(void,3),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(3)]),
    cut(x(5)),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(5),4),
    get_variable(x(6),3),
    get_variable(x(4),2),
    get_variable(x(3),1),
    get_variable(x(1),0),
    put_value(x(6),0),
    put_value(x(5),2),
    execute(inline_unif_reg_term/5)]).


predicate('$equal/4_$aux1'/6,505,static,private,monofile,local,[
    pragma_arity(7),
    get_current_choice(x(6)),
    try_me_else(1),
    get_structure(x/1,0),
    unify_variable(x(0)),
    cut(x(6)),
    execute('$equal/4_$aux4'/5),

label(1),
    trust_me_else_fail,
    allocate(4),
    get_variable(y(0),1),
    get_variable(y(1),4),
    put_value(x(5),0),
    put_value(x(2),3),
    put_variable(y(2),1),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(1),0),
    put_unsafe_value(y(2),1),
    put_value(y(0),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_unif_arg/4)]).


predicate('$equal/4_$aux4'/5,505,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    put_atom(void,3),
    call_c('Pl_Blt_Term_Eq',[fast_call,boolean],[x(0),x(3)]),
    cut(x(5)),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(5),4),
    get_variable(x(6),3),
    get_variable(x(4),2),
    get_variable(x(3),1),
    get_variable(x(1),0),
    put_value(x(6),0),
    put_value(x(5),2),
    execute(inline_unif_reg_term/5)]).


predicate(equal_lst/4,543,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(equal/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(equal_lst/4)]).


predicate(inline_unif_reg_term/5,552,static,private,monofile,global,[
    get_variable(x(5),2),
    get_variable(x(2),1),
    put_value(x(5),1),
    execute('$inline_unif_reg_term/5_$aux1'/5)]).


predicate('$inline_unif_reg_term/5_$aux1'/5,552,static,private,monofile,local,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_value(y(0),0),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    cut(x(5)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(y(1),2),
    put_variable(y(3),3),
    call(gen_load_arg/4),
    put_value(y(0),0),
    put_value(y(2),1),
    put_unsafe_value(y(3),2),
    put_value(y(1),3),
    deallocate,
    execute('$inline_unif_reg_term/5_$aux2'/4),

label(1),
    trust_me_else_fail,
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    put_value(x(4),3),
    execute(gen_unif_arg/4)]).


predicate('$inline_unif_reg_term/5_$aux2'/4,552,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    cut(x(4)),
    get_atom(in_heap,0),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    allocate(2),
    get_variable(y(0),1),
    get_variable(y(1),3),
    put_atom('explicit unification will fail due to cyclic term (occurs check)',0),
    put_nil(1),
    call(warn/2),
    put_value(y(0),0),
    get_list(0),
    unify_atom(fail),
    unify_local_value(y(1)),
    deallocate,
    proceed]).


predicate(load_math_expr/4,587,static,private,monofile,global,[
    try_me_else(12),
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(int/1,5),(flt/1,7),(stc/3,9),(atm/1,11)]),

label(2),
    try_me_else(4),

label(3),
    allocate(4),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_structure(var/2,0),
    unify_variable(y(0)),
    unify_variable(x(0)),
    call('$load_math_expr/4_$aux1'/1),
    put_value(y(3),0),
    put_value(y(0),1),
    put_value(y(1),2),
    put_value(y(2),3),
    deallocate,
    execute('$load_math_expr/4_$aux2'/4),

label(4),
    retry_me_else(6),

label(5),
    get_structure(int/1,0),
    unify_variable(x(4)),
    put_structure(int/1,0),
    unify_value(x(4)),
    execute(gen_load_arg/4),

label(6),
    retry_me_else(8),

label(7),
    get_structure(flt/1,0),
    unify_variable(x(4)),
    put_structure(flt/1,0),
    unify_value(x(4)),
    execute(gen_load_arg/4),

label(8),
    retry_me_else(10),

label(9),
    get_variable(x(5),3),
    get_variable(x(4),2),
    get_variable(x(3),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(x(2)),
    execute(load_math_expr1/6),

label(10),
    trust_me_else_fail,

label(11),
    get_variable(x(5),3),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    put_value(x(1),3),
    put_value(x(2),4),
    put_integer(0,1),
    put_nil(2),
    execute(load_math_expr1/6),

label(12),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('unknown expression in arithmetic expression (~q)',0),
    execute(error/2)]).


predicate('$load_math_expr/4_$aux2'/4,587,static,private,monofile,local,[
    pragma_arity(5),
    get_current_choice(x(4)),
    try_me_else(1),
    put_atom(fast_math,5),
    put_atom(t,6),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(5),x(6)]),
    cut(x(4)),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(math_fast_load_value/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(math_load_value/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    proceed]).


predicate('$load_math_expr/4_$aux1'/1,587,static,private,monofile,local,[
    pragma_arity(2),
    get_current_choice(x(1)),
    try_me_else(1),
    call_c('Pl_Blt_Var',[fast_call,boolean],[x(0)]),
    cut(x(1)),
    put_atom('unbound variable in arithmetic expression',0),
    put_nil(1),
    execute(error/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(load_math_expr1/6,614,static,private,monofile,global,[
    try_me_else(11),
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([('.',4),((+),2),((-),10)]),

label(2),
    try(6),
    trust(8),

label(3),
    try_me_else(5),

label(4),
    get_atom('.',0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_atom(nil),
    unify_nil,
    put_value(x(3),1),
    put_value(x(4),2),
    put_value(x(5),3),
    execute(load_math_expr/4),

label(5),
    retry_me_else(7),

label(6),
    get_atom(+,0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    put_value(x(3),1),
    put_value(x(4),2),
    put_value(x(5),3),
    execute(load_math_expr/4),

label(7),
    retry_me_else(9),

label(8),
    get_atom(+,0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_structure(int/1,1),
    unify_integer(1),
    put_list(2),
    unify_value(x(0)),
    unify_nil,
    put_atom(inc,0),
    put_integer(1,1),
    execute(load_math_expr1/6),

label(9),
    trust_me_else_fail,

label(10),
    get_atom(-,0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_structure(int/1,1),
    unify_integer(1),
    put_list(2),
    unify_value(x(0)),
    unify_nil,
    put_atom(dec,0),
    put_integer(1,1),
    execute(load_math_expr1/6),

label(11),
    retry_me_else(12),
    allocate(7),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    put_variable(y(4),2),
    call('$load_math_expr1/6_$aux1'/3),
    put_value(y(0),0),
    put_variable(y(5),1),
    put_variable(y(6),2),
    put_value(y(3),3),
    call(load_math_arg_lst/4),
    put_unsafe_value(y(6),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(2)),
    get_structure(call_c/3,0),
    unify_local_value(y(4)),
    unify_variable(x(0)),
    unify_local_value(y(5)),
    get_list(0),
    unify_atom(fast_call),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_structure(x/1,0),
    unify_local_value(y(1)),
    deallocate,
    proceed,

label(12),
    retry_me_else(13),
    allocate(2),
    get_variable(y(0),0),
    get_variable(y(1),1),
    put_value(y(0),0),
    put_value(y(1),1),
    put_void(2),
    call(math_exp_functor_name/3),
    put_atom('arithmetic operation not allowed in fast math (~q)',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(error/2),

label(13),
    trust_me_else_fail,
    put_structure((/)/2,2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    put_atom('unknown operation in arithmetic expression (~q)',0),
    execute(error/2)]).


predicate('$load_math_expr1/6_$aux1'/3,626,static,private,monofile,local,[
    pragma_arity(4),
    get_current_choice(x(3)),
    try_me_else(1),
    put_atom(fast_math,4),
    put_atom(t,5),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(4),x(5)]),
    cut(x(3)),
    execute(fast_exp_functor_name/3),

label(1),
    trust_me_else_fail,
    execute(math_exp_functor_name/3)]).


predicate(load_math_arg_lst/4,645,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    get_structure(x/1,1),
    unify_variable(x(1)),
    put_variable(y(3),2),
    call(load_math_expr/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(load_math_arg_lst/4)]).


predicate(fast_exp_functor_name/3,654,static,private,monofile,global,[
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([((-),2),(inc,6),(dec,8),((+),10),((*),14),((//),16),((rem),18),((mod),20),((div),22),((/\),24),((\/),26),(xor,28),((\),30),((<<),32),((>>),34),(lsb,36),(msb,38),(popcount,40),(abs,42),(sign,44),(gcd,46),((^),48)]),

label(2),
    try(4),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    get_atom(-,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Neg',2),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    get_atom(inc,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Inc',2),
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_atom(dec,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Dec',2),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_atom(+,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Add',2),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_atom(-,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Sub',2),
    proceed,

label(13),
    retry_me_else(15),

label(14),
    get_atom(*,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Mul',2),
    proceed,

label(15),
    retry_me_else(17),

label(16),
    get_atom(//,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Div',2),
    proceed,

label(17),
    retry_me_else(19),

label(18),
    get_atom(rem,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Rem',2),
    proceed,

label(19),
    retry_me_else(21),

label(20),
    get_atom(mod,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Mod',2),
    proceed,

label(21),
    retry_me_else(23),

label(22),
    get_atom(div,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Div2',2),
    proceed,

label(23),
    retry_me_else(25),

label(24),
    get_atom(/\,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_And',2),
    proceed,

label(25),
    retry_me_else(27),

label(26),
    get_atom(\/,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Or',2),
    proceed,

label(27),
    retry_me_else(29),

label(28),
    get_atom(xor,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Xor',2),
    proceed,

label(29),
    retry_me_else(31),

label(30),
    get_atom(\,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Not',2),
    proceed,

label(31),
    retry_me_else(33),

label(32),
    get_atom(<<,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Shl',2),
    proceed,

label(33),
    retry_me_else(35),

label(34),
    get_atom(>>,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Shr',2),
    proceed,

label(35),
    retry_me_else(37),

label(36),
    get_atom(lsb,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_LSB',2),
    proceed,

label(37),
    retry_me_else(39),

label(38),
    get_atom(msb,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_MSB',2),
    proceed,

label(39),
    retry_me_else(41),

label(40),
    get_atom(popcount,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Popcount',2),
    proceed,

label(41),
    retry_me_else(43),

label(42),
    get_atom(abs,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Abs',2),
    proceed,

label(43),
    retry_me_else(45),

label(44),
    get_atom(sign,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Fast_Sign',2),
    proceed,

label(45),
    retry_me_else(47),

label(46),
    get_atom(gcd,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_GCD',2),
    proceed,

label(47),
    trust_me_else_fail,

label(48),
    get_atom(^,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Fast_Integer_Pow',2),
    proceed]).


predicate(math_exp_functor_name/3,680,static,private,monofile,global,[
    switch_on_term(4,1,fail,fail,fail),

label(1),
    switch_on_atom([((-),2),
                    (inc,7),
                    (dec,9),
                    ((+),11),
                    ((*),15),
                    ((//),17),
                    ((/),19),
                    ((rem),21),
                    ((mod),23),
                    ((div),25),
                    ((/\),27),
                    ((\/),29),
                    (xor,31),
                    ((\),33),
                    ((<<),35),
                    ((>>),37),
                    (lsb,39),
                    (msb,41),
                    (popcount,43),
                    (abs,45),
                    (sign,47),
                    (gcd,49),
                    (min,51),
                    (max,53),
                    ((^),55),
                    ((**),57),
                    (sqrt,59),
                    (tan,61),
                    (atan,63),
                    (atan2,65),
                    (cos,67),
                    (acos,69),
                    (sin,71),
                    (asin,73),
                    (tanh,75),
                    (atanh,77),
                    (cosh,79),
                    (acosh,81),
                    (sinh,83),
                    (asinh,85),
                    (exp,87),
                    (log,3),
                    (log10,91),
                    (float,95),
                    (ceiling,97),
                    (floor,99),
                    (round,101),
                    (truncate,103),
                    (float_fractional_part,105),
                    (float_integer_part,107),
                    (pi,109),
                    (e,111),
                    (epsilon,113)]),

label(2),
    try(5),
    trust(13),

label(3),
    try(89),
    trust(93),

label(4),
    try_me_else(6),

label(5),
    get_atom(-,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Neg',2),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(inc,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Inc',2),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(dec,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Dec',2),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(+,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Add',2),
    proceed,

label(12),
    retry_me_else(14),

label(13),
    get_atom(-,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Sub',2),
    proceed,

label(14),
    retry_me_else(16),

label(15),
    get_atom(*,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Mul',2),
    proceed,

label(16),
    retry_me_else(18),

label(17),
    get_atom(//,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Div',2),
    proceed,

label(18),
    retry_me_else(20),

label(19),
    get_atom(/,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Float_Div',2),
    proceed,

label(20),
    retry_me_else(22),

label(21),
    get_atom(rem,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Rem',2),
    proceed,

label(22),
    retry_me_else(24),

label(23),
    get_atom(mod,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Mod',2),
    proceed,

label(24),
    retry_me_else(26),

label(25),
    get_atom(div,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Div2',2),
    proceed,

label(26),
    retry_me_else(28),

label(27),
    get_atom(/\,0),
    get_integer(2,1),
    get_atom('Pl_Fct_And',2),
    proceed,

label(28),
    retry_me_else(30),

label(29),
    get_atom(\/,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Or',2),
    proceed,

label(30),
    retry_me_else(32),

label(31),
    get_atom(xor,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Xor',2),
    proceed,

label(32),
    retry_me_else(34),

label(33),
    get_atom(\,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Not',2),
    proceed,

label(34),
    retry_me_else(36),

label(35),
    get_atom(<<,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Shl',2),
    proceed,

label(36),
    retry_me_else(38),

label(37),
    get_atom(>>,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Shr',2),
    proceed,

label(38),
    retry_me_else(40),

label(39),
    get_atom(lsb,0),
    get_integer(1,1),
    get_atom('Pl_Fct_LSB',2),
    proceed,

label(40),
    retry_me_else(42),

label(41),
    get_atom(msb,0),
    get_integer(1,1),
    get_atom('Pl_Fct_MSB',2),
    proceed,

label(42),
    retry_me_else(44),

label(43),
    get_atom(popcount,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Popcount',2),
    proceed,

label(44),
    retry_me_else(46),

label(45),
    get_atom(abs,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Abs',2),
    proceed,

label(46),
    retry_me_else(48),

label(47),
    get_atom(sign,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Sign',2),
    proceed,

label(48),
    retry_me_else(50),

label(49),
    get_atom(gcd,0),
    get_integer(2,1),
    get_atom('Pl_Fct_GCD',2),
    proceed,

label(50),
    retry_me_else(52),

label(51),
    get_atom(min,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Min',2),
    proceed,

label(52),
    retry_me_else(54),

label(53),
    get_atom(max,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Max',2),
    proceed,

label(54),
    retry_me_else(56),

label(55),
    get_atom(^,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Integer_Pow',2),
    proceed,

label(56),
    retry_me_else(58),

label(57),
    get_atom(**,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Pow',2),
    proceed,

label(58),
    retry_me_else(60),

label(59),
    get_atom(sqrt,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Sqrt',2),
    proceed,

label(60),
    retry_me_else(62),

label(61),
    get_atom(tan,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Tan',2),
    proceed,

label(62),
    retry_me_else(64),

label(63),
    get_atom(atan,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Atan',2),
    proceed,

label(64),
    retry_me_else(66),

label(65),
    get_atom(atan2,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Atan2',2),
    proceed,

label(66),
    retry_me_else(68),

label(67),
    get_atom(cos,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Cos',2),
    proceed,

label(68),
    retry_me_else(70),

label(69),
    get_atom(acos,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Acos',2),
    proceed,

label(70),
    retry_me_else(72),

label(71),
    get_atom(sin,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Sin',2),
    proceed,

label(72),
    retry_me_else(74),

label(73),
    get_atom(asin,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Asin',2),
    proceed,

label(74),
    retry_me_else(76),

label(75),
    get_atom(tanh,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Tanh',2),
    proceed,

label(76),
    retry_me_else(78),

label(77),
    get_atom(atanh,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Atanh',2),
    proceed,

label(78),
    retry_me_else(80),

label(79),
    get_atom(cosh,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Cosh',2),
    proceed,

label(80),
    retry_me_else(82),

label(81),
    get_atom(acosh,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Acosh',2),
    proceed,

label(82),
    retry_me_else(84),

label(83),
    get_atom(sinh,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Sinh',2),
    proceed,

label(84),
    retry_me_else(86),

label(85),
    get_atom(asinh,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Asinh',2),
    proceed,

label(86),
    retry_me_else(88),

label(87),
    get_atom(exp,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Exp',2),
    proceed,

label(88),
    retry_me_else(90),

label(89),
    get_atom(log,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Log',2),
    proceed,

label(90),
    retry_me_else(92),

label(91),
    get_atom(log10,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Log10',2),
    proceed,

label(92),
    retry_me_else(94),

label(93),
    get_atom(log,0),
    get_integer(2,1),
    get_atom('Pl_Fct_Log_Radix',2),
    proceed,

label(94),
    retry_me_else(96),

label(95),
    get_atom(float,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Float',2),
    proceed,

label(96),
    retry_me_else(98),

label(97),
    get_atom(ceiling,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Ceiling',2),
    proceed,

label(98),
    retry_me_else(100),

label(99),
    get_atom(floor,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Floor',2),
    proceed,

label(100),
    retry_me_else(102),

label(101),
    get_atom(round,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Round',2),
    proceed,

label(102),
    retry_me_else(104),

label(103),
    get_atom(truncate,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Truncate',2),
    proceed,

label(104),
    retry_me_else(106),

label(105),
    get_atom(float_fractional_part,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Float_Fract_Part',2),
    proceed,

label(106),
    retry_me_else(108),

label(107),
    get_atom(float_integer_part,0),
    get_integer(1,1),
    get_atom('Pl_Fct_Float_Integ_Part',2),
    proceed,

label(108),
    retry_me_else(110),

label(109),
    get_atom(pi,0),
    get_integer(0,1),
    get_atom('Pl_Fct_PI',2),
    proceed,

label(110),
    retry_me_else(112),

label(111),
    get_atom(e,0),
    get_integer(0,1),
    get_atom('Pl_Fct_E',2),
    proceed,

label(112),
    trust_me_else_fail,

label(113),
    get_atom(epsilon,0),
    get_integer(0,1),
    get_atom('Pl_Fct_Epsilon',2),
    proceed]).


predicate(fast_cmp_functor_name/2,751,static,private,monofile,global,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([((=:=),3),((=\=),5),((<),7),((=<),9),((>),11),((>=),13)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(=:=,0),
    get_atom('Pl_Blt_Fast_Eq',1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(=\=,0),
    get_atom('Pl_Blt_Fast_Neq',1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(<,0),
    get_atom('Pl_Blt_Fast_Lt',1),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(=<,0),
    get_atom('Pl_Blt_Fast_Lte',1),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(>,0),
    get_atom('Pl_Blt_Fast_Gt',1),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    get_atom(>=,0),
    get_atom('Pl_Blt_Fast_Gte',1),
    proceed]).


predicate(math_cmp_functor_name/2,758,static,private,monofile,global,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([((=:=),3),((=\=),5),((<),7),((=<),9),((>),11),((>=),13)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(=:=,0),
    get_atom('Pl_Blt_Eq',1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(=\=,0),
    get_atom('Pl_Blt_Neq',1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(<,0),
    get_atom('Pl_Blt_Lt',1),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(=<,0),
    get_atom('Pl_Blt_Lte',1),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(>,0),
    get_atom('Pl_Blt_Gt',1),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    get_atom(>=,0),
    get_atom('Pl_Blt_Gte',1),
    proceed]).


predicate(load_c_call_args/5,779,static,private,monofile,global,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(1),
    allocate(5),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    get_variable(y(3),4),
    get_variable(y(4),5),
    put_value(x(0),1),
    put_atom(by_value,0),
    call(memberchk/2),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(3),3),
    call(load_by_value_arg_lst/4),
    cut(y(4)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    allocate(1),
    get_variable(y(0),5),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    put_value(x(4),3),
    call(load_by_reg_arg_lst/4),
    cut(y(0)),
    deallocate,
    proceed]).


predicate(load_by_reg_arg_lst/4,790,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    get_structure(x/1,1),
    unify_variable(x(1)),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(load_by_reg_arg_lst/4)]).


predicate(load_by_value_arg_lst/4,799,static,private,monofile,global,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(load_by_value_arg/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(load_by_value_arg_lst/4)]).


predicate(load_by_value_arg/4,806,static,private,monofile,global,[
    try_me_else(12),
    switch_on_term(2,9,fail,fail,1),

label(1),
    switch_on_structure([(atm/1,3),(int/1,5),(flt/1,7),(stc/3,11)]),

label(2),
    try_me_else(4),

label(3),
    get_value(x(3),2),
    get_structure(atm/1,0),
    unify_local_value(x(1)),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_value(x(3),2),
    get_structure(int/1,0),
    unify_local_value(x(1)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_value(x(3),2),
    get_structure(flt/1,0),
    unify_local_value(x(1)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(nil,0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(10),
    trust_me_else_fail,

label(11),
    get_value(x(3),2),
    get_structure(stc/3,0),
    unify_atom(/),
    unify_integer(2),
    unify_list,
    unify_variable(x(2)),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_structure(atm/1,2),
    unify_variable(x(2)),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_structure((/)/2,1),
    unify_value(x(2)),
    unify_value(x(0)),
    proceed,

label(12),
    trust_me_else_fail,
    get_structure(x/1,1),
    unify_variable(x(1)),
    execute(gen_load_arg/4)]).


predicate(c_fct_name/4,836,static,private,monofile,global,[
    switch_on_term(4,1,fail,fail,fail),

label(1),
    switch_on_atom([(var,5),
                    (nonvar,7),
                    (atom,9),
                    (integer,11),
                    (float,13),
                    (number,15),
                    (atomic,17),
                    (compound,19),
                    (callable,21),
                    (ground,23),
                    (is_list,25),
                    (list,27),
                    (partial_list,29),
                    (list_or_partial_list,31),
                    (fd_var,33),
                    (non_fd_var,35),
                    (generic_var,37),
                    (non_generic_var,39),
                    (arg,41),
                    (functor,43),
                    (compare,45),
                    ((=..),47),
                    ((==),49),
                    ((\==),51),
                    ((@<),53),
                    ((@=<),55),
                    ((@>),57),
                    ((@>=),59),
                    (g_assign,61),
                    (g_assignb,63),
                    (g_link,65),
                    (g_read,67),
                    (g_array_size,69),
                    (g_inc,2),
                    (g_inco,73),
                    (g_dec,3),
                    (g_deco,81),
                    (g_set_bit,87),
                    (g_reset_bit,89),
                    (g_test_set_bit,91),
                    (g_test_reset_bit,93)]),

label(2),
    try(71),
    retry(75),
    trust(77),

label(3),
    try(79),
    retry(83),
    trust(85),

label(4),
    try_me_else(6),

label(5),
    get_atom(var,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Var',2),
    get_atom(bool,3),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(nonvar,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Non_Var',2),
    get_atom(bool,3),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(atom,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Atom',2),
    get_atom(bool,3),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(integer,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Integer',2),
    get_atom(bool,3),
    proceed,

label(12),
    retry_me_else(14),

label(13),
    get_atom(float,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Float',2),
    get_atom(bool,3),
    proceed,

label(14),
    retry_me_else(16),

label(15),
    get_atom(number,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Number',2),
    get_atom(bool,3),
    proceed,

label(16),
    retry_me_else(18),

label(17),
    get_atom(atomic,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Atomic',2),
    get_atom(bool,3),
    proceed,

label(18),
    retry_me_else(20),

label(19),
    get_atom(compound,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Compound',2),
    get_atom(bool,3),
    proceed,

label(20),
    retry_me_else(22),

label(21),
    get_atom(callable,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Callable',2),
    get_atom(bool,3),
    proceed,

label(22),
    retry_me_else(24),

label(23),
    get_atom(ground,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Ground',2),
    get_atom(bool,3),
    proceed,

label(24),
    retry_me_else(26),

label(25),
    get_atom(is_list,0),
    get_integer(1,1),
    get_atom('Pl_Blt_List',2),
    get_atom(bool,3),
    proceed,

label(26),
    retry_me_else(28),

label(27),
    get_atom(list,0),
    get_integer(1,1),
    get_atom('Pl_Blt_List',2),
    get_atom(bool,3),
    proceed,

label(28),
    retry_me_else(30),

label(29),
    get_atom(partial_list,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Partial_List',2),
    get_atom(bool,3),
    proceed,

label(30),
    retry_me_else(32),

label(31),
    get_atom(list_or_partial_list,0),
    get_integer(1,1),
    get_atom('Pl_Blt_List_Or_Partial_List',2),
    get_atom(bool,3),
    proceed,

label(32),
    retry_me_else(34),

label(33),
    get_atom(fd_var,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Fd_Var',2),
    get_atom(bool,3),
    proceed,

label(34),
    retry_me_else(36),

label(35),
    get_atom(non_fd_var,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Non_Fd_Var',2),
    get_atom(bool,3),
    proceed,

label(36),
    retry_me_else(38),

label(37),
    get_atom(generic_var,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Generic_Var',2),
    get_atom(bool,3),
    proceed,

label(38),
    retry_me_else(40),

label(39),
    get_atom(non_generic_var,0),
    get_integer(1,1),
    get_atom('Pl_Blt_Non_Generic_Var',2),
    get_atom(bool,3),
    proceed,

label(40),
    retry_me_else(42),

label(41),
    get_atom(arg,0),
    get_integer(3,1),
    get_atom('Pl_Blt_Arg',2),
    get_atom(bool,3),
    proceed,

label(42),
    retry_me_else(44),

label(43),
    get_atom(functor,0),
    get_integer(3,1),
    get_atom('Pl_Blt_Functor',2),
    get_atom(bool,3),
    proceed,

label(44),
    retry_me_else(46),

label(45),
    get_atom(compare,0),
    get_integer(3,1),
    get_atom('Pl_Blt_Compare',2),
    get_atom(bool,3),
    proceed,

label(46),
    retry_me_else(48),

label(47),
    get_atom(=..,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Univ',2),
    get_atom(bool,3),
    proceed,

label(48),
    retry_me_else(50),

label(49),
    get_atom(==,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Term_Eq',2),
    get_atom(bool,3),
    proceed,

label(50),
    retry_me_else(52),

label(51),
    get_atom(\==,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Term_Neq',2),
    get_atom(bool,3),
    proceed,

label(52),
    retry_me_else(54),

label(53),
    get_atom(@<,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Term_Lt',2),
    get_atom(bool,3),
    proceed,

label(54),
    retry_me_else(56),

label(55),
    get_atom(@=<,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Term_Lte',2),
    get_atom(bool,3),
    proceed,

label(56),
    retry_me_else(58),

label(57),
    get_atom(@>,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Term_Gt',2),
    get_atom(bool,3),
    proceed,

label(58),
    retry_me_else(60),

label(59),
    get_atom(@>=,0),
    get_integer(2,1),
    get_atom('Pl_Blt_Term_Gte',2),
    get_atom(bool,3),
    proceed,

label(60),
    retry_me_else(62),

label(61),
    get_atom(g_assign,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Assign',2),
    get_atom(void,3),
    proceed,

label(62),
    retry_me_else(64),

label(63),
    get_atom(g_assignb,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Assignb',2),
    get_atom(void,3),
    proceed,

label(64),
    retry_me_else(66),

label(65),
    get_atom(g_link,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Link',2),
    get_atom(void,3),
    proceed,

label(66),
    retry_me_else(68),

label(67),
    get_atom(g_read,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Read',2),
    get_atom(bool,3),
    proceed,

label(68),
    retry_me_else(70),

label(69),
    get_atom(g_array_size,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Array_Size',2),
    get_atom(bool,3),
    proceed,

label(70),
    retry_me_else(72),

label(71),
    get_atom(g_inc,0),
    get_integer(1,1),
    get_atom('Pl_Blt_G_Inc',2),
    get_atom(void,3),
    proceed,

label(72),
    retry_me_else(74),

label(73),
    get_atom(g_inco,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Inco',2),
    get_atom(bool,3),
    proceed,

label(74),
    retry_me_else(76),

label(75),
    get_atom(g_inc,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Inc_2',2),
    get_atom(bool,3),
    proceed,

label(76),
    retry_me_else(78),

label(77),
    get_atom(g_inc,0),
    get_integer(3,1),
    get_atom('Pl_Blt_G_Inc_3',2),
    get_atom(bool,3),
    proceed,

label(78),
    retry_me_else(80),

label(79),
    get_atom(g_dec,0),
    get_integer(1,1),
    get_atom('Pl_Blt_G_Dec',2),
    get_atom(void,3),
    proceed,

label(80),
    retry_me_else(82),

label(81),
    get_atom(g_deco,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Deco',2),
    get_atom(bool,3),
    proceed,

label(82),
    retry_me_else(84),

label(83),
    get_atom(g_dec,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Dec_2',2),
    get_atom(bool,3),
    proceed,

label(84),
    retry_me_else(86),

label(85),
    get_atom(g_dec,0),
    get_integer(3,1),
    get_atom('Pl_Blt_G_Dec_3',2),
    get_atom(bool,3),
    proceed,

label(86),
    retry_me_else(88),

label(87),
    get_atom(g_set_bit,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Set_Bit',2),
    get_atom(void,3),
    proceed,

label(88),
    retry_me_else(90),

label(89),
    get_atom(g_reset_bit,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Reset_Bit',2),
    get_atom(void,3),
    proceed,

label(90),
    retry_me_else(92),

label(91),
    get_atom(g_test_set_bit,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Test_Set_Bit',2),
    get_atom(bool,3),
    proceed,

label(92),
    trust_me_else_fail,

label(93),
    get_atom(g_test_reset_bit,0),
    get_integer(2,1),
    get_atom('Pl_Blt_G_Test_Reset_Bit',2),
    get_atom(bool,3),
    proceed]).


predicate(gen_inline_pred/5,466,static,private,monofile,global,[
    pragma_arity(6),
    get_current_choice(x(5)),
    try_me_else(14),
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([('$get_cut_level',3),('$get_current_choice',5),('$cut',7),('$soft_cut',9),((=),11),((is),13)]),

label(2),
    try_me_else(4),

label(3),
    allocate(5),
    get_atom('$get_cut_level',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(y(0)),
    unify_nil,
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),0),
    put_variable(y(4),1),
    call(cur_pred/2),
    put_atom(cut,0),
    put_value(y(3),1),
    put_value(y(4),2),
    call(set_pred_info/3),
    put_value(y(0),0),
    put_unsafe_value(y(4),1),
    put_value(y(1),2),
    put_value(y(2),3),
    deallocate,
    execute(gen_unif_arg/4),

label(4),
    retry_me_else(6),

label(5),
    get_atom('$get_current_choice',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_list(4),
    unify_variable(x(1)),
    unify_local_value(x(3)),
    get_structure(get_current_choice/1,1),
    unify_value(x(0)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom('$cut',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_list(4),
    unify_variable(x(1)),
    unify_local_value(x(3)),
    get_structure(cut/1,1),
    unify_value(x(0)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom('$soft_cut',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_list(4),
    unify_variable(x(1)),
    unify_local_value(x(3)),
    get_structure(soft_cut/1,1),
    unify_value(x(0)),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    allocate(1),
    get_atom(=,0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_variable(y(0),5),
    put_value(x(3),2),
    put_value(x(4),3),
    call(equal/4),
    cut(y(0)),
    deallocate,
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    allocate(5),
    get_atom(is,0),
    get_integer(2,1),
    get_variable(y(1),3),
    get_list(2),
    unify_variable(y(0)),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_variable(y(2),5),
    put_value(x(4),3),
    put_variable(y(3),1),
    put_variable(y(4),2),
    call(load_math_expr/4),
    cut(y(2)),
    put_value(y(0),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    put_unsafe_value(y(4),3),
    deallocate,
    execute(gen_unif_arg/4),

label(14),
    retry_me_else(15),
    allocate(6),
    get_integer(2,1),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),1),
    call('$gen_inline_pred/5_$aux1'/2),
    put_value(y(0),0),
    put_variable(y(4),1),
    put_variable(y(5),2),
    put_value(y(2),3),
    call(load_math_arg_lst/4),
    put_unsafe_value(y(5),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(1)),
    get_structure(call_c/3,0),
    unify_local_value(y(3)),
    unify_variable(x(0)),
    unify_local_value(y(4)),
    get_list(0),
    unify_atom(fast_call),
    unify_list,
    unify_atom(boolean),
    unify_nil,
    deallocate,
    proceed,

label(15),
    retry_me_else(16),
    get_atom('$foreign_call_c',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(args/5,0),
    unify_variable(x(6)),
    unify_variable(x(5)),
    unify_variable(x(2)),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_list(4),
    unify_variable(x(4)),
    unify_local_value(x(3)),
    get_structure(foreign_call_c/5,4),
    unify_value(x(6)),
    unify_value(x(5)),
    unify_value(x(2)),
    unify_value(x(1)),
    unify_value(x(0)),
    proceed,

label(16),
    trust_me_else_fail,
    allocate(8),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),2),
    put_variable(y(4),3),
    call(c_fct_name/4),
    put_value(y(4),0),
    put_variable(y(5),1),
    call('$gen_inline_pred/5_$aux2'/2),
    put_value(y(5),0),
    put_value(y(0),1),
    put_variable(y(6),2),
    put_variable(y(7),3),
    put_value(y(2),4),
    call(load_c_call_args/5),
    put_unsafe_value(y(7),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(1)),
    get_structure(call_c/3,0),
    unify_local_value(y(3)),
    unify_local_value(y(5)),
    unify_local_value(y(6)),
    deallocate,
    proceed]).


predicate('$gen_inline_pred/5_$aux2'/2,824,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    get_atom(bool,0),
    cut(x(2)),
    get_list(1),
    unify_atom(fast_call),
    unify_list,
    unify_atom(boolean),
    unify_nil,
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_atom(fast_call),
    unify_nil,
    proceed]).


predicate('$gen_inline_pred/5_$aux1'/2,740,static,private,monofile,local,[
    pragma_arity(3),
    get_current_choice(x(2)),
    try_me_else(1),
    put_atom(fast_math,3),
    put_atom(t,4),
    call_c('Pl_Blt_G_Read',[fast_call,boolean],[x(3),x(4)]),
    cut(x(2)),
    execute(fast_cmp_functor_name/2),

label(1),
    trust_me_else_fail,
    execute(math_cmp_functor_name/2)]).
