module same_generation0.
export sg(ff).
@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 -.
sup_1_1(X,XParent) :- m_sg(), 
		parent(X,XParent).
m_sg_bf(XParent) :- sup_1_1(X,XParent).
sg(X,Y) :- sup_1_1(X,XParent), 
		sg_bf(XParent,YParent), 
		parent(Y,YParent).
sup_2_1(X,XParent) :- m_sg_bf(X), 
		parent(X,XParent).
m_sg_bf(XParent) :- sup_2_1(X,XParent).
sg_bf(X,Y) :- sup_2_1(X,XParent), 
		sg_bf(XParent,YParent), 
		parent(Y,YParent).
sg_bf(X,X) :- m_sg_bf(X), 
		parent(X,Y).
sg_bf(X,X) :- m_sg_bf(X), 
		parent(Y,X).
sg(X,X) :- m_sg(), 
		parent(X,Y).
sg(X,X) :- m_sg(), 
		parent(Y,X).
end_module.

module same_generation1.
export sg(bf).
@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 -.
sup_7_1(X,XParent) :- m_sg_bf(X), 
		parent(X,XParent).
m_sg_bf(XParent) :- sup_7_1(X,XParent).
sg_bf(X,Y) :- sup_7_1(X,XParent), 
		sg_bf(XParent,YParent), 
		parent(Y,YParent).
sg_bf(X,X) :- m_sg_bf(X), 
		parent(X,Y).
sg_bf(X,X) :- m_sg_bf(X), 
		parent(Y,X).
end_module.

