? inter_g:
	
	(! R: in_rule_generate(R) =>  
		( 
			(! A: in_pos_body_generate(R,A) => inter_g(A)) 
			& 
			(! A: in_neg_body_generate(R,A) => ~ inter_g(A))
		 => 
		 	(? A: in_head_generate(R,A) & inter_g(A))     
	 	) 
 	) 
 	&
 	(~ ? inter_g_sub:
 		( ! A: in_atom_generate(A) & inter_g_sub(A) => inter_g(A)) 
 		& 
 		( ? A: in_atom_generate(A) & inter_g(A) & ~ inter_g_sub(A) )
 		& 
 		( !A: in_parameter_generate(A) => ( inter_g(A) <=> inter_g_sub(A) ))
 		& 
	 	(
	 		! R: in_rule_generate(R) =>  
			( 
				(! A: in_pos_body_generate(R,A) => inter_g_sub(A)) 
				& 
				(! A: in_neg_body_generate(R,A) => ~ inter_g(A))
			 => 
			 	(? A: in_head_generate(R,A) & inter_g_sub(A))     
		 	) 
	 	) 
 	). 
 	


~ ? inter_t:
	
	(! R: in_rule_test(R) =>  
		( 
			(! A: in_pos_body_test(R,A) => inter_t(A)) 
			& 
			(! A: in_neg_body_test(R,A) => ~ inter_t(A))
		 => 
		 	(? A: in_head_test(R,A) & inter_t(A))     
	 	) 
 	) 
 	&
 	(~ ? inter_t_sub:
 		( ! A: in_atom_test(A) & inter_t_sub(A) => inter_t(A)) 
 		& 
 		( ? A: in_atom_test(A) & inter_t(A) & ~ inter_t_sub(A) )
 		& 
 		( !A: in_parameter_test(A) => ( inter_t(A) <=> inter_t_sub(A) ))
 		& 
	 	(
	 		! R: in_rule_test(R) =>  
			( 
				(! A: in_pos_body_test(R,A) => inter_t_sub(A)) 
				& 
				(! A: in_neg_body_test(R,A) => ~ inter_t(A))
			 => 
			 	(? A: in_head_test(R,A) & inter_t_sub(A))     
		 	) 
	 	) 
 	). 
 	

