% compiler: GNU Prolog 1.1.7 (Jul 3 2000)
% file    : reg_alloc.pl
% date    : 7 20 2000
% time    : 11:15:35


file_name('/home/lima/diaz/GNU-Prolog/src/Pl2Wam/reg_alloc.pl').


predicate(allocate_registers/1,92,static,private,user,[
    put_void(1),
    execute(allocate_registers/2)]).


predicate(allocate_registers/2,96,static,private,user,[
    allocate(4),
    get_variable(y(0),0),
    get_variable(y(1),1),
    put_atom(reg_opt,1),
    put_variable(x(0),2),
    call_c_test('Blt_G_Read',[1,2]),
    put_value(y(0),1),
    put_variable(y(2),2),
    call('$allocate_registers/2_$aux1'/3),
    put_value(y(0),0),
    put_value(y(2),1),
    put_void(2),
    put_variable(y(3),3),
    call(create_lst_tmp/4),
    put_unsafe_value(y(3),0),
    put_value(y(1),1),
    deallocate,
    execute(assign_lst_tmp/2)]).


predicate('$allocate_registers/2_$aux1'/3,96,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(0,4),
    call_c_test('Blt_Fast_Gt',[0,4]),
    cut(x(3)),
    put_value(x(1),0),
    put_nil(1),
    execute(aliases/3),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(aliases/3,108,static,private,user,[
    load_cut_level(3),
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(2),
    unify_local_value(x(1)),
    unify_variable(y(1)),
    get_variable(y(2),3),
    put_value(x(1),2),
    put_variable(y(3),1),
    call('$aliases/3_$aux1'/3),
    cut(y(2)),
    put_value(y(0),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    deallocate,
    execute(aliases/3)]).


predicate('$aliases/3_$aux1'/3,110,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    allocate(2),
    get_variable(y(0),1),
    get_variable(y(1),3),
    call(alias_stop_instruction/1),
    cut(y(1)),
    put_value(y(0),0),
    get_nil(0),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    allocate(3),
    get_variable(y(0),1),
    get_variable(y(1),2),
    put_variable(y(2),1),
    call(codification/2),
    put_unsafe_value(y(2),0),
    put_value(y(1),1),
    put_value(y(0),2),
    deallocate,
    execute(aliases1/3)]).


predicate(aliases1/3,120,static,private,user,[
    load_cut_level(3),
    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(4),
    get_variable(y(1),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_variable(y(2),3),
    put_value(x(1),2),
    put_variable(y(3),1),
    call('$aliases1/3_$aux1'/3),
    cut(y(2)),
    put_value(y(0),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    deallocate,
    execute(aliases1/3)]).


predicate('$aliases1/3_$aux1'/3,122,static,private,user,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(r/1,3),(w/1,5),(c/2,7)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(r/1,0),
    unify_void(1),
    get_value(x(2),1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_variable(x(3),2),
    get_variable(x(2),1),
    get_structure(w/1,0),
    unify_variable(x(1)),
    put_value(x(3),0),
    execute(remove_aliases_of/3),

label(6),
    trust_me_else_fail,

label(7),
    allocate(4),
    get_variable(y(0),1),
    get_structure(c/2,0),
    unify_variable(y(1)),
    unify_variable(y(2)),
    put_value(x(2),0),
    put_value(y(2),1),
    put_variable(y(3),2),
    call(remove_aliases_of/3),
    put_unsafe_value(y(3),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(0),3),
    deallocate,
    execute(add_alias/4)]).


predicate(add_alias/4,135,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_list(3),
    unify_variable(x(0)),
    unify_nil,
    get_list(0),
    unify_local_value(x(1)),
    unify_list,
    unify_local_value(x(2)),
    unify_nil,
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(5)),
    get_list(3),
    unify_variable(x(3)),
    unify_variable(x(4)),
    execute('$add_alias/4_$aux1'/6)]).


predicate('$add_alias/4_$aux1'/6,137,static,private,user,[
    load_cut_level(6),
    try_me_else(1),
    allocate(6),
    get_variable(y(0),0),
    get_variable(y(1),2),
    get_variable(y(2),3),
    get_variable(y(3),4),
    get_variable(y(4),5),
    get_variable(y(5),6),
    put_value(y(0),0),
    call(set_elt/2),
    cut(y(5)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    call(set_add/3),
    put_value(y(3),0),
    get_value(y(4),0),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    get_value(x(0),3),
    put_value(x(5),0),
    put_value(x(4),3),
    execute(add_alias/4)]).


predicate(find_aliases_of/3,147,static,private,user,[
    switch_on_term(1,fail,fail,1,fail),

label(1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(3)),
    execute('$find_aliases_of/3_$aux1'/4)]).


predicate('$find_aliases_of/3_$aux1'/4,147,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    allocate(1),
    get_variable(y(0),4),
    call(set_delete/3),
    cut(y(0)),
    deallocate,
    proceed,

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


predicate(remove_aliases_of/3,156,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(3)),
    execute('$remove_aliases_of/3_$aux1'/4)]).


predicate('$remove_aliases_of/3_$aux1'/4,158,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),2),
    call(set_delete/3),
    cut(y(2)),
    put_unsafe_value(y(3),0),
    put_value(y(0),1),
    put_value(y(1),2),
    deallocate,
    execute('$remove_aliases_of/3_$aux2'/3),

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


predicate('$remove_aliases_of/3_$aux2'/3,158,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),1),
    get_variable(y(1),2),
    get_variable(y(2),3),
    call('$remove_aliases_of/3_$aux3'/1),
    cut(y(2)),
    put_value(y(0),0),
    get_value(y(1),0),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_local_value(x(0)),
    unify_local_value(x(2)),
    proceed]).


predicate('$remove_aliases_of/3_$aux3'/1,158,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    get_list(0),
    unify_void(1),
    unify_nil,
    proceed]).


predicate(create_lst_tmp/4,171,static,private,user,[
    load_cut_level(4),
    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),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(8),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_list(0),
    unify_variable(y(0)),
    unify_variable(x(0)),
    get_list(1),
    unify_variable(y(1)),
    unify_variable(x(1)),
    get_variable(y(4),4),
    put_variable(y(5),2),
    put_variable(y(6),3),
    call(create_lst_tmp/4),
    put_value(y(0),0),
    put_variable(y(7),1),
    call(codification/2),
    cut(y(4)),
    put_unsafe_value(y(7),0),
    put_value(y(1),1),
    put_unsafe_value(y(5),2),
    put_value(y(2),3),
    put_unsafe_value(y(6),4),
    put_value(y(3),5),
    deallocate,
    execute(handle_lst_code/6)]).


predicate(handle_lst_code/6,182,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_value(x(5),4),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(6),
    get_variable(y(1),1),
    get_variable(y(2),3),
    get_variable(y(3),5),
    get_list(0),
    unify_variable(y(0)),
    unify_variable(x(0)),
    put_value(y(1),1),
    put_variable(y(4),3),
    put_variable(y(5),5),
    call(handle_lst_code/6),
    put_value(y(0),0),
    put_value(y(1),1),
    put_nil(2),
    put_unsafe_value(y(4),3),
    put_value(y(2),4),
    put_unsafe_value(y(5),5),
    put_value(y(3),6),
    deallocate,
    execute(handle_one_code/7)]).


predicate(handle_one_code/7,191,static,private,user,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(r/1,3),(w/1,5),(c/2,7)]),

label(2),
    try_me_else(4),

label(3),
    get_variable(x(7),6),
    get_variable(x(8),3),
    get_variable(x(3),2),
    get_variable(x(6),1),
    get_structure(r/1,0),
    unify_variable(x(1)),
    put_value(x(8),0),
    put_value(x(4),2),
    put_value(x(5),4),
    put_value(x(7),5),
    execute('$handle_one_code/7_$aux1'/7),

label(4),
    retry_me_else(6),

label(5),
    get_variable(x(7),6),
    get_variable(x(8),3),
    get_variable(x(3),2),
    get_variable(x(6),1),
    get_structure(w/1,0),
    unify_variable(x(1)),
    put_value(x(8),0),
    put_value(x(4),2),
    put_value(x(5),4),
    put_value(x(7),5),
    execute('$handle_one_code/7_$aux2'/7),

label(6),
    trust_me_else_fail,

label(7),
    allocate(7),
    get_structure(c/2,0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    get_variable(y(2),1),
    get_variable(y(3),4),
    get_variable(y(4),6),
    put_structure(w/1,0),
    unify_value(y(1)),
    put_value(y(2),1),
    put_list(2),
    unify_value(y(0)),
    unify_nil,
    put_variable(y(5),4),
    put_variable(y(6),6),
    call(handle_one_code/7),
    put_structure(r/1,0),
    unify_value(y(0)),
    put_value(y(2),1),
    put_list(2),
    unify_value(y(1)),
    unify_nil,
    put_unsafe_value(y(5),3),
    put_value(y(3),4),
    put_unsafe_value(y(6),5),
    put_value(y(4),6),
    deallocate,
    execute(handle_one_code/7)]).


predicate('$handle_one_code/7_$aux2'/7,203,static,private,user,[
    load_cut_level(7),
    try_me_else(1),
    allocate(5),
    get_variable(y(0),1),
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    get_variable(y(4),7),
    put_value(y(0),1),
    call(set_delete/3),
    cut(y(4)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(3),3),
    deallocate,
    execute('$handle_one_code/7_$aux3'/4),

label(1),
    trust_me_else_fail,
    get_value(x(0),2),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(6),2),
    execute('$handle_one_code/7_$aux4'/6)]).


predicate('$handle_one_code/7_$aux4'/6,203,static,private,user,[
    load_cut_level(6),
    try_me_else(1),
    allocate(7),
    get_variable(y(0),0),
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    put_value(y(0),0),
    call_c_test('Blt_Var',[0]),
    cut(x(6)),
    put_value(y(0),0),
    put_variable(y(4),3),
    call(constraints/4),
    put_value(y(1),0),
    put_value(y(4),1),
    put_variable(y(5),2),
    call('$handle_one_code/7_$aux5'/3),
    put_value(y(5),0),
    put_list(1),
    unify_local_value(y(0)),
    unify_nil,
    put_value(y(2),2),
    put_variable(y(6),3),
    call(make_imposs/4),
    put_unsafe_value(y(6),0),
    put_value(y(0),1),
    put_unsafe_value(y(5),2),
    put_value(y(1),3),
    put_value(y(3),4),
    deallocate,
    execute(update_tmp/5),

label(1),
    trust_me_else_fail,
    get_value(x(4),5),
    proceed]).


predicate('$handle_one_code/7_$aux5'/3,203,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    get_variable(x(4),1),
    get_variable(x(1),0),
    put_nil(0),
    call_c_test('Blt_Term_Neq',[1,0]),
    cut(x(3)),
    put_value(x(4),0),
    execute(set_diff/3),

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


predicate('$handle_one_code/7_$aux3'/4,203,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    get_variable(x(5),3),
    get_variable(x(3),1),
    get_variable(x(1),0),
    call_c_test('Blt_Var',[1]),
    put_nil(0),
    call_c_test('Blt_Term_Neq',[3,0]),
    cut(x(4)),
    put_value(x(2),0),
    put_value(x(5),4),
    put_nil(2),
    execute(update_tmp/5),

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


predicate('$handle_one_code/7_$aux1'/7,191,static,private,user,[
    load_cut_level(7),
    try_me_else(1),
    allocate(7),
    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),7),
    put_value(y(0),0),
    put_value(y(1),1),
    call(set_elt/2),
    cut(y(6)),
    put_value(y(2),0),
    get_value(y(0),0),
    put_value(y(1),0),
    put_value(y(3),1),
    put_value(y(4),2),
    put_value(y(5),3),
    deallocate,
    execute('$handle_one_code/7_$aux6'/4),

label(1),
    trust_me_else_fail,
    allocate(6),
    get_variable(y(0),1),
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    get_list(2),
    unify_local_value(y(0)),
    unify_local_value(x(0)),
    put_value(x(0),1),
    put_value(x(6),2),
    put_value(y(0),0),
    put_variable(y(4),3),
    call(constraints/4),
    put_value(y(4),0),
    put_list(1),
    unify_local_value(y(0)),
    unify_nil,
    put_value(y(2),2),
    put_variable(y(5),3),
    call(make_imposs/4),
    put_value(y(0),0),
    put_unsafe_value(y(5),1),
    put_unsafe_value(y(4),2),
    put_value(y(1),3),
    put_value(y(3),4),
    deallocate,
    execute('$handle_one_code/7_$aux7'/5)]).


predicate('$handle_one_code/7_$aux7'/5,191,static,private,user,[
    load_cut_level(5),
    try_me_else(1),
    get_variable(x(6),1),
    get_variable(x(1),0),
    call_c_test('Blt_Var',[1]),
    cut(x(5)),
    put_value(x(6),0),
    execute(update_tmp/5),

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


predicate('$handle_one_code/7_$aux6'/4,191,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    get_variable(x(5),3),
    get_variable(x(3),1),
    get_variable(x(1),0),
    call_c_test('Blt_Var',[1]),
    put_nil(0),
    call_c_test('Blt_Term_Neq',[3,0]),
    cut(x(4)),
    put_value(x(2),0),
    put_value(x(5),4),
    put_nil(2),
    execute(update_tmp/5),

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


predicate(constraints/4,224,static,private,user,[
    get_variable(x(4),2),
    get_variable(x(2),1),
    get_variable(x(1),0),
    put_value(x(4),0),
    execute('$constraints/4_$aux1'/4)]).


predicate('$constraints/4_$aux1'/4,224,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    allocate(4),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_atom(reg_opt,2),
    put_integer(2,3),
    call_c_test('Blt_G_Read',[2,3]),
    put_variable(y(3),2),
    call(find_aliases_of/3),
    cut(y(2)),
    put_value(y(0),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    deallocate,
    execute(set_diff/3),

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


predicate(update_tmp/5,232,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_list(4),
    unify_variable(x(0)),
    unify_nil,
    get_structure(tmp/3,0),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    unify_local_value(x(3)),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    get_variable(x(10),3),
    get_variable(x(11),1),
    get_list(0),
    unify_variable(x(9)),
    unify_variable(x(8)),
    get_list(4),
    unify_variable(x(6)),
    unify_variable(x(7)),
    get_structure(tmp/3,9),
    unify_variable(x(1)),
    unify_variable(x(3)),
    unify_variable(x(5)),
    put_value(x(11),0),
    put_value(x(10),4),
    execute('$update_tmp/5_$aux1'/10)]).


predicate('$update_tmp/5_$aux1'/10,234,static,private,user,[
    load_cut_level(10),
    try_me_else(1),
    allocate(8),
    get_variable(y(0),0),
    get_variable(y(1),4),
    get_variable(y(2),5),
    get_variable(y(3),6),
    get_variable(y(4),7),
    get_variable(y(5),8),
    put_value(y(0),0),
    call_c_test('Blt_Term_Eq',[0,1]),
    cut(x(10)),
    put_value(x(2),0),
    put_value(x(3),1),
    put_variable(y(6),2),
    call(set_union/3),
    put_value(y(1),0),
    put_value(y(2),1),
    put_variable(y(7),2),
    call(set_union/3),
    put_value(y(3),0),
    get_structure(tmp/3,0),
    unify_local_value(y(0)),
    unify_local_value(y(6)),
    unify_local_value(y(7)),
    put_value(y(4),0),
    get_value(y(5),0),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(1),0),
    get_value(x(9),6),
    put_value(x(8),0),
    put_value(x(4),3),
    put_value(x(7),4),
    execute(update_tmp/5)]).


predicate(remove_tmp/5,247,static,private,user,[
    switch_on_term(1,fail,fail,1,fail),

label(1),
    get_variable(x(6),4),
    get_variable(x(4),3),
    get_variable(x(9),1),
    get_list(0),
    unify_variable(x(8)),
    unify_variable(x(7)),
    get_structure(tmp/3,8),
    unify_variable(x(1)),
    unify_variable(x(3)),
    unify_variable(x(5)),
    put_value(x(9),0),
    execute('$remove_tmp/5_$aux1'/9)]).


predicate('$remove_tmp/5_$aux1'/9,247,static,private,user,[
    load_cut_level(9),
    try_me_else(1),
    call_c_test('Blt_Term_Eq',[0,1]),
    cut(x(9)),
    get_value(x(3),2),
    get_value(x(5),4),
    get_value(x(7),6),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(3),4),
    get_variable(x(1),0),
    get_list(6),
    unify_local_value(x(8)),
    unify_variable(x(4)),
    put_value(x(7),0),
    execute(remove_tmp/5)]).


predicate(make_imposs/4,260,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(1),1),
    get_variable(y(2),3),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    put_value(x(2),1),
    put_value(y(1),2),
    put_variable(y(3),3),
    call('$make_imposs/4_$aux1'/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(3),2),
    put_value(y(2),3),
    deallocate,
    execute(make_imposs/4)]).


predicate('$make_imposs/4_$aux1'/4,262,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    get_variable(x(5),1),
    get_variable(x(1),0),
    call_c_test('Blt_Var',[1]),
    cut(x(4)),
    put_value(x(5),0),
    put_value(x(3),4),
    put_nil(3),
    execute(update_tmp/5),

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


predicate(assign_lst_tmp/2,272,static,private,user,[
    allocate(2),
    get_variable(y(0),1),
    get_variable(x(1),0),
    put_atom(reg_opt,2),
    put_variable(x(0),3),
    call_c_test('Blt_G_Read',[2,3]),
    put_variable(y(1),2),
    call('$assign_lst_tmp/2_$aux1'/3),
    put_unsafe_value(y(1),0),
    put_integer(-1,1),
    put_value(y(0),2),
    deallocate,
    execute(assign_values/3)]).


predicate('$assign_lst_tmp/2_$aux1'/3,272,static,private,user,[
    load_cut_level(3),
    try_me_else(2),
    switch_on_term(1,fail,1,fail,fail),

label(1),
    get_integer(2,0),
    cut(x(3)),
    put_value(x(1),0),
    put_value(x(2),1),
    execute(assign_wishes/2),

label(2),
    trust_me_else_fail,
    get_variable(x(3),1),
    get_variable(x(1),0),
    put_value(x(3),0),
    execute(no_wish/3)]).


predicate(assign_wishes/2,281,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    allocate(6),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(2)),
    get_structure(tmp/3,0),
    unify_variable(y(0)),
    unify_variable(x(1)),
    unify_variable(x(0)),
    put_value(y(0),3),
    put_variable(y(2),4),
    put_variable(y(3),5),
    put_variable(y(4),6),
    call(collapse_tmps/7),
    put_value(y(0),0),
    put_value(y(3),1),
    put_value(y(2),2),
    call(try_a_whish/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(3),2),
    put_variable(y(5),3),
    call('$assign_wishes/2_$aux1'/4),
    put_unsafe_value(y(4),0),
    put_unsafe_value(y(5),1),
    deallocate,
    execute(assign_wishes/2)]).


predicate('$assign_wishes/2_$aux1'/4,283,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    call_c_test('Blt_Var',[0]),
    cut(x(4)),
    get_list(1),
    unify_variable(x(1)),
    unify_local_value(x(3)),
    get_structure(tmp/2,1),
    unify_local_value(x(0)),
    unify_local_value(x(2)),
    proceed,

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


predicate(collapse_tmps/7,293,static,private,user,[
    load_cut_level(7),
    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(4),
    get_value(x(6),2),
    get_value(x(5),1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    allocate(8),
    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_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_variable(y(7),7),
    put_value(y(3),1),
    put_value(y(1),2),
    call('$collapse_tmps/7_$aux1'/3),
    cut(y(7)),
    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),
    put_value(y(5),5),
    put_value(y(6),6),
    deallocate,
    execute(collapse_tmps/7),

label(6),
    retry_me_else(8),

label(7),
    get_list(0),
    unify_variable(x(8)),
    unify_variable(x(0)),
    get_list(4),
    unify_value(x(8)),
    unify_variable(x(4)),
    call_c_test('Blt_Integer',[8]),
    cut(x(7)),
    execute(collapse_tmps/7),

label(8),
    trust_me_else_fail,

label(9),
    allocate(12),
    get_list(0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    get_variable(y(2),1),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    put_value(x(2),0),
    put_value(y(0),1),
    put_variable(y(7),2),
    put_variable(y(8),3),
    put_variable(y(9),4),
    call(remove_tmp/5),
    put_value(y(2),0),
    put_value(y(7),1),
    put_variable(y(10),2),
    call(set_union/3),
    put_value(y(1),0),
    put_value(y(8),1),
    put_variable(y(11),2),
    call(set_union/3),
    put_value(y(3),0),
    get_value(y(0),0),
    put_unsafe_value(y(11),0),
    put_unsafe_value(y(10),1),
    put_unsafe_value(y(9),2),
    put_value(y(3),3),
    put_value(y(4),4),
    put_value(y(5),5),
    put_value(y(6),6),
    deallocate,
    execute(collapse_tmps/7)]).


predicate('$collapse_tmps/7_$aux1'/3,295,static,private,user,[
    try_me_else(1),
    call_c_test('Blt_Term_Eq',[0,1]),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(1),0),
    put_value(x(2),0),
    execute(set_elt/2)]).


predicate(try_a_whish/3,315,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    allocate(1),
    get_variable(x(4),2),
    get_variable(y(0),3),
    put_list(2),
    unify_local_value(x(0)),
    unify_void(1),
    put_value(x(4),0),
    call(set_diff/3),
    cut(y(0)),
    deallocate,
    proceed,

label(1),
    trust_me_else_fail,
    proceed]).


predicate(no_wish/3,324,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    allocate(3),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_structure(tmp/3,0),
    unify_variable(x(3)),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_variable(y(2)),
    get_structure(tmp/2,2),
    unify_value(x(3)),
    unify_variable(x(3)),
    put_value(x(0),2),
    put_value(y(1),0),
    call('$no_wish/3_$aux1'/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(no_wish/3)]).


predicate('$no_wish/3_$aux1'/4,326,static,private,user,[
    load_cut_level(4),
    try_me_else(2),
    switch_on_term(1,fail,1,fail,fail),

label(1),
    get_integer(0,0),
    cut(x(4)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    execute(set_union/3),

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


predicate(assign_values/3,334,static,private,user,[
    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_variable(y(2),1),
    get_variable(y(3),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(1)),
    get_structure(tmp/2,0),
    unify_variable(y(0)),
    unify_variable(x(0)),
    put_variable(y(4),1),
    call(sort/2),
    put_value(y(4),0),
    put_integer(0,1),
    put_value(y(0),2),
    call(find_hole/3),
    put_value(y(0),0),
    put_value(y(2),1),
    put_variable(y(5),2),
    call('$assign_values/3_$aux1'/3),
    put_value(y(1),0),
    put_unsafe_value(y(5),1),
    put_value(y(3),2),
    deallocate,
    execute(assign_values/3)]).


predicate('$assign_values/3_$aux1'/3,336,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    math_fast_load_value(x(0),4),
    math_fast_load_value(x(1),1),
    call_c_test('Blt_Fast_Gt',[4,1]),
    cut(x(3)),
    get_value(x(0),2),
    proceed,

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


predicate(find_hole/3,346,static,private,user,[
    load_cut_level(3),
    switch_on_term(2,3,fail,1,fail),

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

label(2),
    try_me_else(4),

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

label(4),
    retry_me_else(6),

label(5),
    get_list(0),
    unify_variable(x(4)),
    unify_variable(x(0)),
    call_c_test('Blt_Var',[4]),
    cut(x(3)),
    execute(find_hole/3),

label(6),
    trust_me_else_fail,

label(7),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(3)),
    execute('$find_hole/3_$aux1'/4)]).


predicate('$find_hole/3_$aux1'/4,353,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    math_fast_load_value(x(1),3),
    call_c_test('Blt_Fast_Gt',[0,3]),
    cut(x(4)),
    get_value(x(1),2),
    proceed,

label(1),
    trust_me_else_fail,
    allocate(3),
    get_variable(y(0),2),
    get_variable(y(1),3),
    put_variable(y(2),2),
    call('$find_hole/3_$aux2'/3),
    put_value(y(1),0),
    put_unsafe_value(y(2),1),
    put_value(y(0),2),
    deallocate,
    execute(find_hole/3)]).


predicate('$find_hole/3_$aux2'/3,353,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    call_c_test('Blt_Term_Eq',[0,1]),
    cut(x(3)),
    math_fast_load_value(x(1),0),
    function('Fct_Fast_Inc',0,[0]),
    get_value(x(2),0),
    proceed,

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


predicate(set_add/3,365,static,private,user,[
    load_cut_level(3),
    switch_on_term(2,3,fail,1,fail),

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

label(2),
    try_me_else(4),

label(3),
    get_nil(0),
    get_list(2),
    unify_local_value(x(1)),
    unify_nil,
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(4)),
    get_list(2),
    unify_value(x(0)),
    unify_value(x(4)),
    call_c_test('Blt_Term_Eq',[1,0]),
    cut(x(3)),
    proceed,

label(6),
    trust_me_else_fail,

label(7),
    get_list(0),
    unify_variable(x(3)),
    unify_variable(x(0)),
    get_list(2),
    unify_value(x(3)),
    unify_variable(x(2)),
    execute(set_add/3)]).


predicate(set_delete/3,377,static,private,user,[
    load_cut_level(3),
    switch_on_term(2,fail,fail,1,fail),

label(1),
    try(3),
    trust(5),

label(2),
    try_me_else(4),

label(3),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(x(2)),
    call_c_test('Blt_Term_Eq',[1,0]),
    cut(x(3)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_list(0),
    unify_variable(x(3)),
    unify_variable(x(0)),
    get_list(2),
    unify_value(x(3)),
    unify_variable(x(2)),
    execute(set_delete/3)]).


predicate(set_elt/2,387,static,private,user,[
    load_cut_level(2),
    switch_on_term(2,fail,fail,1,fail),

label(1),
    try(3),
    trust(5),

label(2),
    try_me_else(4),

label(3),
    get_list(0),
    unify_variable(x(0)),
    unify_void(1),
    call_c_test('Blt_Term_Eq',[1,0]),
    cut(x(2)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_list(0),
    unify_void(1),
    unify_variable(x(0)),
    execute(set_elt/2)]).


predicate(set_inter/3,397,static,private,user,[
    load_cut_level(3),
    switch_on_term(2,3,fail,1,fail),

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

label(2),
    try_me_else(4),

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

label(4),
    retry_me_else(6),

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

label(6),
    trust_me_else_fail,

label(7),
    get_list(0),
    unify_void(1),
    unify_variable(x(0)),
    execute(set_inter/3)]).


predicate(set_union/3,410,static,private,user,[
    load_cut_level(3),
    switch_on_term(2,3,fail,1,fail),

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

label(2),
    try_me_else(4),

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

label(4),
    retry_me_else(6),

label(5),
    allocate(4),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(1)),
    unify_variable(y(0)),
    get_variable(y(3),3),
    put_value(y(1),0),
    call(set_elt/2),
    cut(y(3)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(set_union/3),

label(6),
    trust_me_else_fail,

label(7),
    get_list(0),
    unify_variable(x(3)),
    unify_variable(x(0)),
    get_list(2),
    unify_value(x(3)),
    unify_variable(x(2)),
    execute(set_union/3)]).


predicate(set_diff/3,423,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

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

label(3),
    trust_me_else_fail,

label(4),
    allocate(3),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(1)),
    unify_variable(y(0)),
    put_value(y(1),0),
    put_variable(y(2),3),
    call('$set_diff/3_$aux1'/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(2),2),
    deallocate,
    execute(set_diff/3)]).


predicate('$set_diff/3_$aux1'/4,425,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    allocate(3),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    call(set_elt/2),
    cut(y(2)),
    put_value(y(0),0),
    get_value(y(1),0),
    deallocate,
    proceed,

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