module declac_eg5a0.
export anc(ff).
@no_preprocessing +.
@sup_magic_indexing -.
@sup_magic +.
@existential +.
@factoring -.
@factor_magic -.
@magic -.
@no_rewriting +.
@ordered_search -.
@save_module -.
@pipelining -.
@make_index  anc(bf).
@allowed_adornments  anc[ff].
@check_subsumption +.
@multiset -.
@index_deltas +.
@return_unify -.
@convert_functions -.
@non_ground_facts +.
@eager_eval +.
@psn -.
anc(X,Y) :- m_anc(), 
		parent(X,Y).
m_anc() :- m_anc().
sup_2_1(X,Y) :- m_anc(), 
		anc(X,Y).
m_anc() :- sup_2_1(X,Y).
anc(X,Z) :- sup_2_1(X,Y), 
		anc(Y,Z).
end_module.

module declac_eg5b0.
export append(bbf).
@no_preprocessing +.
@sup_magic_indexing -.
@sup_magic +.
@existential +.
@factoring -.
@factor_magic -.
@magic -.
@no_rewriting +.
@ordered_search -.
@save_module -.
@pipelining -.
@check_subsumption +.
@multiset -.
@index_deltas -.
@return_unify -.
@convert_functions -.
@non_ground_facts +.
@eager_eval +.
@psn -.
append_bbf([],X,X) :- m_append_bbf([],X).
sup_2_1(U,X,Y,Z) :- m_append_bbf(U,Z), 
		equ_(U,[X|Y]).
m_append_bbf(Y,Z) :- sup_2_1(U,X,Y,Z).
append_bbf(U,Z,[X|W]) :- sup_2_1(U,X,Y,Z), 
		append_bbf(Y,Z,W).
end_module.

