%[def] __def_1 (Y,X) :- q(cons(s(s(s(X))),Y)). q(nil). q(cons(X1,X2)) :- even(X1), tree_3n_plus_2(X1), list_even(X2), tree_3n_plus_2(X2). r(X1,X2) :- two_mod_3(X1), odd(X1), list_even(X2), tree_3n_plus_2(X2). __def_1(X1,X2) :- list_even(X1), tree_3n_plus_2(X1), two_mod_3(X2), odd(X2). even(o). even(s(X)) :- odd(X). list_even(nil). list_even(cons(X1,X2)) :- even(X1), list_even(X2). one_mod_3(s(X)) :- zero_mod_3(X). tree_3n_plus_2(s(X)) :- one_mod_3(X). tree_3n_plus_2(nil). tree_3n_plus_2(cons(X1,X2)) :- tree_3n_plus_2(X1), tree_3n_plus_2(X2). two_mod_3(s(X)) :- one_mod_3(X). odd(s(X)) :- even(X). zero_mod_3(o). zero_mod_3(s(X)) :- two_mod_3(X).