% insert theory as a whole
% input is a list with [1-[...],2-[...] ...]
/*
	rb_new(Tree0),
	insertTheories(AllTs,Tree0,Tree),
	rb_visit(Tree,Ts),
*/

insertTheories([],Tree,Tree).
insertTheories([EI-OneEITRecord|All_T_Records],TreeSoFar,Tree):-
	insertOneEI_Ts(OneEITRecord,EI,TreeSoFar,NTreeSoFar),
	insertTheories(All_T_Records,NTreeSoFar,Tree).


insertOneEI_Ts([],EI,Tree,Tree).
insertOneEI_Ts([TI|TIs],EI,TreeSoFar,Tree):-
	(rb_lookup(TI,EI_List,TreeSoFar)->
		%TI is there-> previous example, or the same example
		(append(Pre,[EI|Post],EI_List)->
			NTreeSoFar=TreeSoFar;
			rb_update(TreeSoFar,TI,[EI|EI_List],NTreeSoFar)
		);
				
		rb_insert(TreeSoFar,TI,[EI],NTreeSoFar)
	),	
	insertOneEI_Ts(TIs,EI,NTreeSoFar,Tree).






