:- module set_ctree234.
:- use_module bool, builtin, int, list, private_builtin, require, string, table_builtin, term.
:- type set_ctree234.set_tree234(T)
	--->	empty 
	;	two(T, set_ctree234.set_tree234(T), set_ctree234.set_tree234(T))
	;	three(T, T, set_ctree234.set_tree234(T), set_ctree234.set_tree234(T), set_ctree234.set_tree234(T))
	;	four(T, T, T, set_ctree234.set_tree234(T), set_ctree234.set_tree234(T), set_ctree234.set_tree234(T), set_ctree234.set_tree234(T)).
:- type set_ctree234.set_ctree234(T)
	--->	ct(int, set_ctree234.set_tree234(T)).
:- inst (set_ctree234.four(E, T)) == bound(four(E, E, E, T, T, T, T)).
:- inst (set_ctree234.three(E, T)) == bound(three(E, E, T, T, T)).
:- inst (set_ctree234.two(E, T)) == bound(two(E, T, T)).
:- mode (set_ctree234.in_four) == builtin.in(set_ctree234.four(ground, ground)).
:- mode (set_ctree234.in_three) == builtin.in(set_ctree234.three(ground, ground)).
:- mode (set_ctree234.in_two) == builtin.in(set_ctree234.two(ground, ground)).
:- mode (set_ctree234.out_two) == builtin.out(set_ctree234.two(ground, ground)).
:- pred set_ctree234.do_one_member(set_ctree234.set_tree234(T_1), T_1).
:- mode set_ctree234.do_one_member((builtin.in), (builtin.out)) is nondet.
:- pred set_ctree234.do_is_member(set_ctree234.set_tree234(T_1), T_1, bool.bool).
:- mode set_ctree234.do_is_member((builtin.in), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_is_member)/3, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_is_member__[T = var(V_2)]')).
:- pred set_ctree234.do_contains(set_ctree234.set_tree234(T_1), T_1).
:- mode set_ctree234.do_contains((builtin.in), (builtin.in)) is semidet.
:- pragma inline((set_ctree234.do_contains)/2).
:- pred set_ctree234.do_list_to_set(list.list(T_1), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_list_to_set((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_list_to_set)/5, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_list_to_set__[T = var(V_2)]')).
:- pred set_ctree234.do_to_sorted_list(set_ctree234.set_tree234(T_1), list.list(T_1), list.list(T_1)).
:- mode set_ctree234.do_to_sorted_list((builtin.in), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_to_sorted_list)/3, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_to_sorted_list__[T = var(V_2)]')).
:- pred set_ctree234.do_subset(set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_subset((builtin.in), (builtin.in)) is semidet.
:- pragma type_spec((set_ctree234.do_subset)/2, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_subset__[T = var(V_2)]')).
:- pred set_ctree234.do_insert(T_1, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_insert((builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_insert)/4, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_insert__[T = var(V_2)]')).
:- pred set_ctree234.do_insert_new(T_1, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_insert_new((builtin.in), (builtin.in), (builtin.out)) is semidet.
:- pred set_ctree234.do_insert_list(list.list(T_1), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_insert_list((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_insert_list)/5, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_insert_list__[T = var(V_2)]')).
:- pred set_ctree234.do_delete(T_1, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1), bool.bool).
:- mode set_ctree234.do_delete((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_delete)/5, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_delete__[T = var(V_2)]')).
:- pred set_ctree234.do_delete_list(list.list(T_1), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_delete_list((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pred set_ctree234.do_remove(T_1, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1), bool.bool).
:- mode set_ctree234.do_remove((builtin.in), (builtin.in), (builtin.out), (builtin.out)) is semidet.
:- pragma type_spec((set_ctree234.do_remove)/4, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_remove__[T = var(V_2)]')).
:- pred set_ctree234.do_remove_list(list.list(T_1), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_remove_list((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet.
:- pred set_ctree234.do_remove_least(set_ctree234.set_tree234(T_1), T_1, set_ctree234.set_tree234(T_1), bool.bool).
:- mode set_ctree234.do_remove_least((builtin.in), (builtin.out), (builtin.out), (builtin.out)) is semidet.
:- pragma type_spec((set_ctree234.do_remove_least)/4, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_remove_least__[T = var(V_2)]')).
:- pred set_ctree234.do_union(set_ctree234.set_tree234(T_1), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_union((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_union)/5, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_union__[T = var(V_2)]')).
:- pred set_ctree234.do_union_list(list.list(set_ctree234.set_ctree234(T_1)), int, set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_union_list((builtin.in), (builtin.out), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_union_list)/3, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_union_list__[T = var(V_2)]')).
:- pred set_ctree234.do_power_union(set_ctree234.set_tree234(set_ctree234.set_ctree234(T_1)), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_power_union((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_power_union)/5, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_power_union__[T = var(V_2)]')).
:- pred set_ctree234.do_difference(set_ctree234.set_tree234(T_1), int, int, set_ctree234.set_tree234(T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.do_difference((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_difference)/5, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_difference__[T = var(V_2)]')).
:- func set_ctree234.do_count(set_ctree234.set_tree234(T_1)) = int.
:- mode set_ctree234.do_count((builtin.in)) = (builtin.out) is det.
:- pred set_ctree234.do_fold_pred(pred(T1_1, T2_2, T2_2), set_ctree234.set_tree234(T1_1), T2_2, T2_2).
:- mode set_ctree234.do_fold_pred((pred((builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out)) is det.
:- mode set_ctree234.do_fold_pred((pred((builtin.in), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.mdi), (builtin.muo)) is det.
:- mode set_ctree234.do_fold_pred((pred((builtin.in), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo)) is det.
:- mode set_ctree234.do_fold_pred((pred((builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out)) is semidet.
:- mode set_ctree234.do_fold_pred((pred((builtin.in), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.mdi), (builtin.muo)) is semidet.
:- mode set_ctree234.do_fold_pred((pred((builtin.in), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.di), (builtin.uo)) is semidet.
:- pred set_ctree234.do_fold_func((func(T1_1, T2_2) = T2_2), set_ctree234.set_tree234(T1_1), T2_2, T2_2).
:- mode set_ctree234.do_fold_func(builtin.in((func((builtin.in), (builtin.in)) = (builtin.out) is det)), (builtin.in), (builtin.in), (builtin.out)) is det.
:- pred set_ctree234.do_fold2_pred(pred(T1_1, T2_2, T2_2, T3_3, T3_3), set_ctree234.set_tree234(T1_1), T2_2, T2_2, T3_3, T3_3).
:- mode set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- mode set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det.
:- mode set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det.
:- mode set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet.
:- mode set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet.
:- mode set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet.
:- pred set_ctree234.do_fold3_pred(pred(T1_1, T2_2, T2_2, T3_3, T3_3, T4_4, T4_4), set_ctree234.set_tree234(T1_1), T2_2, T2_2, T3_3, T3_3, T4_4, T4_4).
:- mode set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- mode set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det.
:- mode set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det.
:- mode set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet.
:- mode set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet.
:- mode set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet.
:- pred set_ctree234.do_fold4_pred(pred(T1_1, T2_2, T2_2, T3_3, T3_3, T4_4, T4_4, T5_5, T5_5), set_ctree234.set_tree234(T1_1), T2_2, T2_2, T3_3, T3_3, T4_4, T4_4, T5_5, T5_5).
:- mode set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- mode set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det.
:- mode set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det.
:- mode set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet.
:- mode set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet.
:- mode set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet.
:- pred set_ctree234.do_fold5_pred(pred(T1_1, T2_2, T2_2, T3_3, T3_3, T4_4, T4_4, T5_5, T5_5, T6_6, T6_6), set_ctree234.set_tree234(T1_1), T2_2, T2_2, T3_3, T3_3, T4_4, T4_4, T5_5, T5_5, T6_6, T6_6).
:- mode set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- mode set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det.
:- mode set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det.
:- mode set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet.
:- mode set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet.
:- mode set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet.
:- pred set_ctree234.do_fold6_pred(pred(T1_1, T2_2, T2_2, T3_3, T3_3, T4_4, T4_4, T5_5, T5_5, T6_6, T6_6, T7_7, T7_7), set_ctree234.set_tree234(T1_1), T2_2, T2_2, T3_3, T3_3, T4_4, T4_4, T5_5, T5_5, T6_6, T6_6, T7_7, T7_7).
:- mode set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- mode set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det.
:- mode set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det.
:- mode set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet.
:- mode set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet.
:- mode set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet.
:- pred set_ctree234.map_pred(pred(T1_1, T2_2), set_ctree234.set_tree234(T1_1), list.list(T2_2), list.list(T2_2)).
:- mode set_ctree234.map_pred(builtin.in((pred((builtin.in), (builtin.out)) is det)), (builtin.in), (builtin.in), (builtin.out)) is det.
:- pred set_ctree234.map_func(((func T1_1) = T2_2), set_ctree234.set_tree234(T1_1), list.list(T2_2), list.list(T2_2)).
:- mode set_ctree234.map_func(builtin.in((func((builtin.in)) = (builtin.out) is det)), (builtin.in), (builtin.in), (builtin.out)) is det.
:- pred set_ctree234.all_true_tree((pred T_1), set_ctree234.set_tree234(T_1)).
:- mode set_ctree234.all_true_tree(builtin.in((pred((builtin.in)) is semidet)), (builtin.in)) is semidet.
:- pred set_ctree234.filter_map_pred(pred(T1_1, T2_2), set_ctree234.set_tree234(T1_1), list.list(T2_2), list.list(T2_2)).
:- mode set_ctree234.filter_map_pred(builtin.in((pred((builtin.in), (builtin.out)) is semidet)), (builtin.in), (builtin.in), (builtin.out)) is det.
:- pred set_ctree234.filter_map_func(((func T1_1) = T2_2), set_ctree234.set_tree234(T1_1), list.list(T2_2), list.list(T2_2)).
:- mode set_ctree234.filter_map_func(builtin.in((func((builtin.in)) = (builtin.out) is semidet)), (builtin.in), (builtin.in), (builtin.out)) is det.
:- pred set_ctree234.do_divide((pred T_1), set_ctree234.set_tree234(T_1), set_ctree234.set_ctree234(T_1), set_ctree234.set_ctree234(T_1), set_ctree234.set_ctree234(T_1), set_ctree234.set_ctree234(T_1)).
:- mode set_ctree234.do_divide(builtin.in((pred((builtin.in)) is semidet)), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pragma type_spec((set_ctree234.do_divide)/6, (T_1 = term.var(V_2)), (set_ctree234.'TypeSpecOf__pred_or_func__do_divide__[T = var(V_2)]')).
:- pred set_ctree234.do_verify_depths(set_ctree234.set_tree234(T_1), int, list.list(int), list.list(int)).
:- mode set_ctree234.do_verify_depths((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is det.
set_ctree234.init = set_ctree234.ct(V_2, V_3) :-
    V_2 = 0 : int,
    V_3 = set_ctree234.empty : set_ctree234.set_tree234(T_1).
set_ctree234.singleton_set(X_3, set_ctree234.ct(V_4, V_5)) :-
    V_4 = 1 : int,
    V_5 = set_ctree234.two(X_3, V_6, V_7) : set_ctree234.set_tree234(T_1),
    V_6 = set_ctree234.empty : set_ctree234.set_tree234(T_1),
    V_7 = set_ctree234.empty : set_ctree234.set_tree234(T_1).
set_ctree234.make_singleton_set(X_3) = set_ctree234.ct(V_4, V_5) :-
    V_4 = 1 : int,
    V_5 = set_ctree234.two(X_3, V_6, V_7) : set_ctree234.set_tree234(T_1),
    V_6 = set_ctree234.empty : set_ctree234.set_tree234(T_1),
    V_7 = set_ctree234.empty : set_ctree234.set_tree234(T_1).
set_ctree234.is_singleton(set_ctree234.ct(V_4, V_5), X_3) :-
    V_4 = 1 : int,
    V_5 = set_ctree234.two(X_3, V_6, V_7) : set_ctree234.set_tree234(T_1),
    V_6 = set_ctree234.empty : set_ctree234.set_tree234(T_1),
    V_7 = set_ctree234.empty : set_ctree234.set_tree234(T_1).
set_ctree234.empty(set_ctree234.ct(V_3, V_2)) :-
    V_3 = 0 : int.
set_ctree234.is_empty(set_ctree234.ct(V_3, V_2)) :-
    V_3 = 0 : int.
set_ctree234.non_empty(set_ctree234.ct(N_2, V_3)) :-
    \+ (
      N_2 = 0 : int
    ).
set_ctree234.one_member(set_ctree234.ct(V_3, Tin_4), E_5) :-
    set_ctree234.do_one_member(Tin_4, E_5).
set_ctree234.is_member(set_ctree234.ct(V_4, T_5), E_6) = R_7 :-
    set_ctree234.do_is_member(T_5, E_6, R_7).
set_ctree234.is_member(set_ctree234.ct(V_4, Tin_5), E_6, R_7) :-
    set_ctree234.do_is_member(Tin_5, E_6, R_7).
set_ctree234.contains(set_ctree234.ct(V_3, T_4), E_5) :-
    set_ctree234.do_contains(T_4, E_5).
set_ctree234.list_to_set(List_3) = set_ctree234.ct(Size_4, Tree_5) :-
    V_6 = 0 : int,
    V_7 = set_ctree234.empty : set_ctree234.set_tree234(T_1),
    set_ctree234.do_list_to_set(List_3, V_6, Size_4, V_7, Tree_5).
set_ctree234.from_list(List_3) = HeadVar__2_2 :-
    HeadVar__2_2 = set_ctree234.list_to_set(List_3).
set_ctree234.to_sorted_list(set_ctree234.ct(V_3, Tree_4)) = List_5 :-
    V_6 = list.[] : list.list(T_1),
    set_ctree234.do_to_sorted_list(Tree_4, V_6, List_5).
set_ctree234.subset(set_ctree234.ct(SizeA_3, TreeA_4), set_ctree234.ct(SizeB_5, TreeB_6)) :-
    int.(SizeA_3 =< SizeB_5),
    set_ctree234.do_subset(TreeA_4, TreeB_6).
set_ctree234.superset(SuperSet_3, Set_4) :-
    set_ctree234.subset(Set_4, SuperSet_3).
set_ctree234.insert(E_4, Tin_5) = Tout_6 :-
    set_ctree234.insert(E_4, Tin_5, Tout_6).
set_ctree234.insert(E_4, set_ctree234.ct(Sizein_5, Tin_6), set_ctree234.ct(Sizeout_7, Tout_8)) :-
    set_ctree234.do_insert(E_4, Incr_9, Tin_6, Tout_8),
    Sizeout_7 = int.(Sizein_5 + Incr_9).
set_ctree234.insert_new(E_4, set_ctree234.ct(Sizein_5, Tin_6), set_ctree234.ct(Sizeout_7, Tout_8)) :-
    set_ctree234.do_insert_new(E_4, Tin_6, Tout_8),
    Sizeout_7 = int.(Sizein_5 + V_9),
    V_9 = 1 : int.
set_ctree234.insert_list(Es_4, Set0_5) = Set_6 :-
    set_ctree234.insert_list(Es_4, Set0_5, Set_6).
set_ctree234.insert_list(Es_4, set_ctree234.ct(Size0_5, Tree0_6), set_ctree234.ct(Size_7, Tree_8)) :-
    set_ctree234.do_insert_list(Es_4, Size0_5, Size_7, Tree0_6, Tree_8).
set_ctree234.delete(E_4, Tin_5) = Tout_6 :-
    set_ctree234.delete(E_4, Tin_5, Tout_6).
set_ctree234.delete(E_4, set_ctree234.ct(Sizein_5, Tin_6), set_ctree234.ct(Sizeout_7, Tout_8)) :-
    set_ctree234.do_delete(E_4, Decr_9, Tin_6, Tout_8, V_10),
    Sizeout_7 = int.(Sizein_5 - Decr_9).
set_ctree234.delete_list(SetA_4, SetB_5) = Set_6 :-
    set_ctree234.delete_list(SetA_4, SetB_5, Set_6).
set_ctree234.delete_list(Es_4, set_ctree234.ct(Size0_5, Tree0_6), set_ctree234.ct(Size_7, Tree_8)) :-
    set_ctree234.do_delete_list(Es_4, Size0_5, Size_7, Tree0_6, Tree_8).
set_ctree234.remove(E_4, set_ctree234.ct(Sizein_5, Tin_6), set_ctree234.ct(Sizeout_7, Tout_8)) :-
    set_ctree234.do_remove(E_4, Tin_6, Tout_8, V_9),
    Sizeout_7 = int.(Sizein_5 - V_10),
    V_10 = 1 : int.
set_ctree234.remove_list(Es_4, set_ctree234.ct(Size0_5, Tree0_6), set_ctree234.ct(Size_7, Tree_8)) :-
    set_ctree234.do_remove_list(Es_4, Size0_5, Size_7, Tree0_6, Tree_8).
set_ctree234.remove_least(E_4, set_ctree234.ct(Sizein_5, Tin_6), set_ctree234.ct(Sizeout_7, Tout_8)) :-
    set_ctree234.do_remove_least(Tin_6, E_4, Tout_8, V_9),
    Sizeout_7 = int.(Sizein_5 - V_10),
    V_10 = 1 : int.
set_ctree234.union(SetA_4, SetB_5) = Set_6 :-
    set_ctree234.union(SetA_4, SetB_5, Set_6).
set_ctree234.union(set_ctree234.ct(SizeA_4, TreeA_5), set_ctree234.ct(SizeB_6, TreeB_7), set_ctree234.ct(Size_8, Tree_9)) :-
    (if
      int.(SizeA_4 < SizeB_6)
    then
      set_ctree234.do_union(TreeA_5, SizeB_6, Size_8, TreeB_7, Tree_9)
    else
      set_ctree234.do_union(TreeB_7, SizeA_4, Size_8, TreeA_5, Tree_9)
    ).
set_ctree234.union_list(Sets_3) = Union_4 :-
    set_ctree234.union_list(Sets_3, Union_4).
set_ctree234.union_list(Sets_3, Union_4) :-
    list.sort(Sets_3, SortedSets_5),
    set_ctree234.do_union_list(SortedSets_5, Size_6, Tree_7),
    Union_4 = set_ctree234.ct(Size_6, Tree_7) : set_ctree234.set_ctree234(T_1).
set_ctree234.power_union(Sets_3) = Union_4 :-
    set_ctree234.power_union(Sets_3, Union_4).
set_ctree234.power_union(set_ctree234.ct(V_3, SetTree_4), Union_5) :-
    V_8 = 0 : int,
    V_9 = set_ctree234.empty : set_ctree234.set_tree234(T_1),
    set_ctree234.do_power_union(SetTree_4, V_8, Size_6, V_9, Tree_7),
    Union_5 = set_ctree234.ct(Size_6, Tree_7) : set_ctree234.set_ctree234(T_1).
set_ctree234.intersect(SetA_4, SetB_5) = Set_6 :-
    set_ctree234.intersect(SetA_4, SetB_5, Set_6).
set_ctree234.power_intersect(Sets_3) = HeadVar__2_2 :-
    HeadVar__2_2 = set_ctree234.intersect_list(V_4),
    V_4 = set_ctree234.to_sorted_list(Sets_3).
set_ctree234.difference(SetA_4, SetB_5) = Diff_6 :-
    set_ctree234.difference(SetA_4, SetB_5, Diff_6).
set_ctree234.difference(set_ctree234.ct(SizeA_4, TreeA_5), set_ctree234.ct(_SizeB_6, TreeB_7), set_ctree234.ct(Size_8, Tree_9)) :-
    set_ctree234.do_difference(TreeB_7, SizeA_4, Size_8, TreeA_5, Tree_9).
set_ctree234.count(set_ctree234.ct(N_3, Tree_4)) = N_3 :-
    V_5 = builtin.unify(N_3, V_7) : (pred),
    V_7 = set_ctree234.do_count(Tree_4),
    V_6 = "set_ctree234.count: mismatch" : string,
    require.require(V_5, V_6).
set_ctree234.map(Func_4, set_ctree234.ct(V_5, TreeA_6)) = SetB_7 :-
    V_9 = list.[] : list.list(T2_2),
    set_ctree234.map_func(Func_4, TreeA_6, V_9, ListB_8),
    SetB_7 = set_ctree234.list_to_set(ListB_8).
set_ctree234.map(Pred_4, set_ctree234.ct(V_5, TreeA_6), SetB_7) :-
    V_9 = list.[] : list.list(T2_2),
    set_ctree234.map_pred(Pred_4, TreeA_6, V_9, ListB_8),
    SetB_7 = set_ctree234.list_to_set(ListB_8).
set_ctree234.filter_map(Pred_4, set_ctree234.ct(V_5, TreeA_6), SetB_7) :-
    V_9 = list.[] : list.list(T2_2),
    set_ctree234.filter_map_pred(Pred_4, TreeA_6, V_9, ListB_8),
    SetB_7 = set_ctree234.list_to_set(ListB_8).
set_ctree234.filter_map(Func_4, set_ctree234.ct(V_5, TreeA_6)) = SetB_7 :-
    V_9 = list.[] : list.list(T2_2),
    set_ctree234.filter_map_func(Func_4, TreeA_6, V_9, ListB_8),
    SetB_7 = set_ctree234.list_to_set(ListB_8).
set_ctree234.fold(Pred_5, set_ctree234.ct(V_6, Tin_7), A0_8) = A_9 :-
    set_ctree234.do_fold_func(Pred_5, Tin_7, A0_8, A_9).
set_ctree234.fold(Pred_5, set_ctree234.ct(V_6, Tin_7), STATE_VARIABLE_A_0_9, STATE_VARIABLE_A_10) :-
    set_ctree234.do_fold_pred(Pred_5, Tin_7, STATE_VARIABLE_A_0_9, STATE_VARIABLE_A_10).
set_ctree234.fold2(Pred_7, set_ctree234.ct(V_8, Tin_9), STATE_VARIABLE_A_0_12, STATE_VARIABLE_A_13, STATE_VARIABLE_B_0_14, STATE_VARIABLE_B_15) :-
    set_ctree234.do_fold2_pred(Pred_7, Tin_9, STATE_VARIABLE_A_0_12, STATE_VARIABLE_A_13, STATE_VARIABLE_B_0_14, STATE_VARIABLE_B_15).
set_ctree234.fold3(Pred_9, set_ctree234.ct(V_10, Tin_11), STATE_VARIABLE_A_0_15, STATE_VARIABLE_A_16, STATE_VARIABLE_B_0_17, STATE_VARIABLE_B_18, STATE_VARIABLE_C_0_19, STATE_VARIABLE_C_20) :-
    set_ctree234.do_fold3_pred(Pred_9, Tin_11, STATE_VARIABLE_A_0_15, STATE_VARIABLE_A_16, STATE_VARIABLE_B_0_17, STATE_VARIABLE_B_18, STATE_VARIABLE_C_0_19, STATE_VARIABLE_C_20).
set_ctree234.fold4(Pred_11, set_ctree234.ct(V_12, Tin_13), STATE_VARIABLE_A_0_18, STATE_VARIABLE_A_19, STATE_VARIABLE_B_0_20, STATE_VARIABLE_B_21, STATE_VARIABLE_C_0_22, STATE_VARIABLE_C_23, STATE_VARIABLE_D_0_24, STATE_VARIABLE_D_25) :-
    set_ctree234.do_fold4_pred(Pred_11, Tin_13, STATE_VARIABLE_A_0_18, STATE_VARIABLE_A_19, STATE_VARIABLE_B_0_20, STATE_VARIABLE_B_21, STATE_VARIABLE_C_0_22, STATE_VARIABLE_C_23, STATE_VARIABLE_D_0_24, STATE_VARIABLE_D_25).
set_ctree234.fold5(Pred_13, set_ctree234.ct(V_14, Tin_15), STATE_VARIABLE_A_0_21, STATE_VARIABLE_A_22, STATE_VARIABLE_B_0_23, STATE_VARIABLE_B_24, STATE_VARIABLE_C_0_25, STATE_VARIABLE_C_26, STATE_VARIABLE_D_0_27, STATE_VARIABLE_D_28, STATE_VARIABLE_E_0_29, STATE_VARIABLE_E_30) :-
    set_ctree234.do_fold5_pred(Pred_13, Tin_15, STATE_VARIABLE_A_0_21, STATE_VARIABLE_A_22, STATE_VARIABLE_B_0_23, STATE_VARIABLE_B_24, STATE_VARIABLE_C_0_25, STATE_VARIABLE_C_26, STATE_VARIABLE_D_0_27, STATE_VARIABLE_D_28, STATE_VARIABLE_E_0_29, STATE_VARIABLE_E_30).
set_ctree234.fold6(Pred_15, set_ctree234.ct(V_16, Tin_17), STATE_VARIABLE_A_0_24, STATE_VARIABLE_A_25, STATE_VARIABLE_B_0_26, STATE_VARIABLE_B_27, STATE_VARIABLE_C_0_28, STATE_VARIABLE_C_29, STATE_VARIABLE_D_0_30, STATE_VARIABLE_D_31, STATE_VARIABLE_E_0_32, STATE_VARIABLE_E_33, STATE_VARIABLE_F_0_34, STATE_VARIABLE_F_35) :-
    set_ctree234.do_fold6_pred(Pred_15, Tin_17, STATE_VARIABLE_A_0_24, STATE_VARIABLE_A_25, STATE_VARIABLE_B_0_26, STATE_VARIABLE_B_27, STATE_VARIABLE_C_0_28, STATE_VARIABLE_C_29, STATE_VARIABLE_D_0_30, STATE_VARIABLE_D_31, STATE_VARIABLE_E_0_32, STATE_VARIABLE_E_33, STATE_VARIABLE_F_0_34, STATE_VARIABLE_F_35).
set_ctree234.all_true(Pred_3, set_ctree234.ct(V_4, T_5)) :-
    set_ctree234.all_true_tree(Pred_3, T_5).
set_ctree234.filter(Pred_4, Set_5, TrueSet_6) :-
    set_ctree234.divide(Pred_4, Set_5, TrueSet_6, _FalseSet_7).
set_ctree234.filter(Pred_5, Set_6, TrueSet_7, FalseSet_8) :-
    set_ctree234.divide(Pred_5, Set_6, TrueSet_7, FalseSet_8).
set_ctree234.divide(Pred_5, set_ctree234.ct(V_6, Tree_7), TrueSet_8, FalseSet_9) :-
    V_10 = set_ctree234.init,
    V_11 = set_ctree234.init,
    set_ctree234.do_divide(Pred_5, Tree_7, V_10, TrueSet_8, V_11, FalseSet_9).
set_ctree234.divide_by_set(DivideBySet_5, Set_6, TrueSet_7, FalseSet_8) :-
    V_9 = set_ctree234.contains(DivideBySet_5) : (pred T_1),
    set_ctree234.divide(V_9, Set_6, TrueSet_7, FalseSet_8).
set_ctree234.verify_depths(set_ctree234.ct(V_3, Tree_4), Depths_5) :-
    V_6 = 0 : int,
    V_7 = list.[] : list.list(int),
    set_ctree234.do_verify_depths(Tree_4, V_6, V_7, Depths_5).
:- pragma inline((set_ctree234.do_contains)/2).
set_ctree234.do_contains(Tree_3, E_4) :-
    V_5 = bool.yes : bool.bool,
    set_ctree234.do_is_member(Tree_3, E_4, V_5).
set_ctree234.all_true_tree(Pred_3, T_4) :-
    ( % disjunction
      T_4 = set_ctree234.empty : set_ctree234.set_tree234(T_1)
    ;
      T_4 = set_ctree234.two(E0_5, T0_6, T1_7) : set_ctree234.set_tree234(T_1),
      set_ctree234.all_true_tree(Pred_3, T0_6),
      call(Pred_3, E0_5),
      set_ctree234.all_true_tree(Pred_3, T1_7)
    ;
      T_4 = set_ctree234.three(E0_12, E1_8, T0_13, T1_14, T2_9) : set_ctree234.set_tree234(T_1),
      set_ctree234.all_true_tree(Pred_3, T0_13),
      call(Pred_3, E0_12),
      set_ctree234.all_true_tree(Pred_3, T1_14),
      call(Pred_3, E1_8),
      set_ctree234.all_true_tree(Pred_3, T2_9)
    ;
      T_4 = set_ctree234.four(E0_15, E1_18, E2_10, T0_16, T1_17, T2_19, T3_11) : set_ctree234.set_tree234(T_1),
      set_ctree234.all_true_tree(Pred_3, T0_16),
      call(Pred_3, E0_15),
      set_ctree234.all_true_tree(Pred_3, T1_17),
      call(Pred_3, E1_18),
      set_ctree234.all_true_tree(Pred_3, T2_19),
      call(Pred_3, E2_10),
      set_ctree234.all_true_tree(Pred_3, T3_11)
    ).
:- pragma exceptions(function, (set_ctree234.init), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.singleton_set), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.singleton_set), 2, 1, will_not_throw).
:- pragma exceptions(function, (set_ctree234.make_singleton_set), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.is_singleton), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.empty), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.is_empty), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.non_empty), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.member), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.member), 2, 1, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.one_member), 2, 0, will_not_throw).
:- pragma exceptions(function, (set_ctree234.is_member), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.is_member), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.contains), 2, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.list_to_set), 2, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.from_list), 2, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.sorted_list_to_set), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.to_sorted_list), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.equal), 2, 0, conditional).
:- pragma exceptions(predicate, (set_ctree234.subset), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.superset), 2, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.insert), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.insert), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.insert_new), 3, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.insert_list), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.insert_list), 3, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.delete), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.delete), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.delete_list), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.delete_list), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.remove), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.remove_list), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.remove_least), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.union), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.union), 3, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.union_list), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.union_list), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.power_union), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.power_union), 2, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.intersect), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.intersect), 3, 0, may_throw(type_exception)).
:- pragma exceptions(function, (set_ctree234.power_intersect), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.intersect_list), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.difference), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.difference), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.count), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.map), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.map), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.filter_map), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.filter_map), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.fold), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold), 4, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold), 4, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold), 4, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold), 4, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold), 4, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold2), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold2), 6, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold2), 6, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold2), 6, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold2), 6, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold2), 6, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold3), 8, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold3), 8, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold3), 8, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold3), 8, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold3), 8, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold3), 8, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold4), 10, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold4), 10, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold4), 10, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold4), 10, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold4), 10, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold4), 10, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold5), 12, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold5), 12, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold5), 12, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold5), 12, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold5), 12, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold5), 12, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold6), 14, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold6), 14, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold6), 14, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold6), 14, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold6), 14, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.fold6), 14, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.all_true), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.filter), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.filter), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.divide), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.divide_by_set), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.verify_depths), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_one_member), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.do_is_member), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_contains), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_list_to_set), 5, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_to_sorted_list), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.do_subset), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_insert), 4, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_insert_new), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_insert_list), 5, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_delete), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_delete_list), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_remove), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_remove_list), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_remove_least), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_union), 5, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_union_list), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_power_union), 5, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_difference), 5, 0, may_throw(user_exception)).
:- pragma exceptions(function, (set_ctree234.do_count), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (set_ctree234.do_fold_pred), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold_pred), 4, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold_pred), 4, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold_pred), 4, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold_pred), 4, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold_pred), 4, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold_func), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold2_pred), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold2_pred), 6, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold2_pred), 6, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold2_pred), 6, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold2_pred), 6, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold2_pred), 6, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold3_pred), 8, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold3_pred), 8, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold3_pred), 8, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold3_pred), 8, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold3_pred), 8, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold3_pred), 8, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold4_pred), 10, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold4_pred), 10, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold4_pred), 10, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold4_pred), 10, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold4_pred), 10, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold4_pred), 10, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold5_pred), 12, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold5_pred), 12, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold5_pred), 12, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold5_pred), 12, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold5_pred), 12, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold5_pred), 12, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold6_pred), 14, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold6_pred), 14, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold6_pred), 14, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold6_pred), 14, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold6_pred), 14, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_fold6_pred), 14, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.map_pred), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.map_func), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.all_true_tree), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.filter_map_pred), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.filter_map_func), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_divide), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (set_ctree234.do_verify_depths), 4, 0, may_throw(user_exception)).
:- pragma termination_info((set_ctree234.init) = (builtin.out), finite(2, [no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.singleton_set((builtin.in), (builtin.out)), finite(5, [no, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.singleton_set((builtin.out), (builtin.in)), finite(-5, [no, no, yes]), cannot_loop).
:- pragma termination_info(set_ctree234.make_singleton_set((builtin.in)) = (builtin.out), finite(5, [no, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.is_singleton((builtin.in), (builtin.out)), finite(-5, [no, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.empty((builtin.in)), finite(0, [no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.is_empty((builtin.in)), finite(0, [no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.non_empty((builtin.in)), finite(0, [no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.member((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.member((builtin.out), (builtin.in)), finite(-5, [no, no, yes]), cannot_loop).
:- pragma termination_info(set_ctree234.one_member((builtin.in), (builtin.out)), finite(-5, [no, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.is_member((builtin.in), (builtin.in)) = (builtin.out), finite(0, [no, no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.is_member((builtin.in), (builtin.in), (builtin.out)), finite(0, [no, no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.contains((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.list_to_set((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.from_list((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.sorted_list_to_set((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.to_sorted_list((builtin.in)) = (builtin.out), finite(-2, [no, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.equal((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.subset((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.superset((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.insert((builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(set_ctree234.insert((builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(set_ctree234.insert_new((builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(set_ctree234.insert_list((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.insert_list((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.delete((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.delete((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.delete_list((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.delete_list((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.remove((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.remove_list((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.remove_least((builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.union((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.union((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.union_list((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.union_list((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.power_union((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.power_union((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.intersect((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.intersect((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.power_intersect((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.intersect_list((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.difference((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.difference((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.count((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.map((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.map(builtin.in((pred((builtin.in), (builtin.out)) is det)), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.filter_map(builtin.in((pred((builtin.in), (builtin.out)) is semidet)), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.filter_map((func((builtin.in)) = (builtin.out) is semidet), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((builtin.in), (builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((pred((builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((pred((builtin.in), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((pred((builtin.in), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((pred((builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((pred((builtin.in), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold((pred((builtin.in), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold4((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold4((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold4((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold4((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold4((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold4((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold5((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold5((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold5((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold5((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold5((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold5((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold6((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold6((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold6((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold6((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold6((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.fold6((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.all_true(builtin.in((pred((builtin.in)) is semidet)), (builtin.in)), infinite, can_loop).
:- pragma termination_info(set_ctree234.filter(builtin.in((pred((builtin.in)) is semidet)), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.filter(builtin.in((pred((builtin.in)) is semidet)), (builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.divide(builtin.in((pred((builtin.in)) is semidet)), (builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.divide_by_set((builtin.in), (builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.verify_depths((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_one_member((builtin.in), (builtin.out)), finite(-3, [no, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.do_is_member((builtin.in), (builtin.in), (builtin.out)), finite(0, [no, no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.do_contains((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.do_list_to_set((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_to_sorted_list((builtin.in), (builtin.in), (builtin.out)), finite(0, [no, yes, yes, no]), cannot_loop).
:- pragma termination_info(set_ctree234.do_subset((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.do_insert((builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(set_ctree234.do_insert_new((builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(set_ctree234.do_insert_list((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_delete((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_delete_list((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_remove((builtin.in), (builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_remove_list((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_remove_least((builtin.in), (builtin.out), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_union((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_union_list((builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_power_union((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_difference((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_count((builtin.in)) = (builtin.out), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(set_ctree234.do_fold_pred((pred((builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold_pred((pred((builtin.in), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold_pred((pred((builtin.in), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold_pred((pred((builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold_pred((pred((builtin.in), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold_pred((pred((builtin.in), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold_func(builtin.in((func((builtin.in), (builtin.in)) = (builtin.out) is det)), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold2_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold3_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold4_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold5_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_fold6_pred((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(set_ctree234.map_pred(builtin.in((pred((builtin.in), (builtin.out)) is det)), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.map_func(builtin.in((func((builtin.in)) = (builtin.out) is det)), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.all_true_tree(builtin.in((pred((builtin.in)) is semidet)), (builtin.in)), infinite, can_loop).
:- pragma termination_info(set_ctree234.filter_map_pred(builtin.in((pred((builtin.in), (builtin.out)) is semidet)), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.filter_map_func(builtin.in((func((builtin.in)) = (builtin.out) is semidet)), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_divide(builtin.in((pred((builtin.in)) is semidet)), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(set_ctree234.do_verify_depths((builtin.in), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
