%multiCoverTest(EI):-
m(PosEIs,NegEIs):-
	%write('Multiple Examples -- Covering Algorithm'),

        statistics(cputime,[Total1,Previous]),

		
	/*tell('animal.txt'),
	%numbersList(1,16,PosEIs),
	PosEIs=[1,2,3,4,5,6,7,8,9,10,11,13,12,14,15,16],
	numbersList(17,58,NegEIs),*/

	%tell('grammar_multi.txt'),
	%numbersList(1,40,PosEIs),
	PosEIs=[1,4,5],
	%PosEIs=[21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,1,2,3,4,5,6,8,9,10,11,13,12,14,15,16,17,18,19,20],
	%numbersList(41,48,NegEIs),
	
	% 

	multiCovering(PosEIs,NegEIs,[],FinalRefTI), 

	statistics(cputime,[Total2,Now]),
	TimeTaken is Now-Previous,
	write('Final Learning Result'),nl,
	removeRefT(FinalRefTI,FinalTI),
	listing,
	tInterpreter(FinalTI,FinalT),
	print_list(FinalT),
	
	write('Total Time Taken is '), write(TimeTaken),
	nl. %told.





multiCovering([],_,FinalT,FinalT). % All Cover

%multiCovering(EIs,_,FinalT,FinalT):-
%	length(EIs, RemainedNum),RemainedNum < 50,!. % only 100 remained

% TSoFar, FinalT is in the form of Ref-ClaI; BUT NewT is only with ClaI (not added yet)
multiCovering([EI|EIs],NegList,TSoFar,FinalT):-
	set(depthLimit,DepthLimit),
	(setLearningMode(multiExs)->
		(gatherSimilarExs(EI,EIs,[Group|UnCover]);Group=[EI],UnCover=EIs);
		Group=[EI],UnCover=EIs
	),
	%write('---T So Far are : '),%write(TSoFar),nl,
	multiE(DepthLimit,Group,Ts),
	
	nl,%write(Group),%write('*********Total number for these examples are '), length(Ts,K),%write(K),nl,print_list(Ts),nl,nl,
	%write('@@@@@@@Input for evaluation'), %write(UnCover),nl,%write(NegList),nl,nl,
	%write('__________Start Scoring'),nl,
	
	(set(etoB,yes)->
		evOneGenbyMultiEx(Ts,TSoFar,UnCover,NegList,{NUnCover,RedundantTSoFar-RemainedTSoFar-NewT}); % need to pass the uncovered 2ndEx to seeds
		evOneGen(Ts,TSoFar,UnCover,NegList,{NUnCover,RedundantTSoFar-RemainedTSoFar-NewT})	
	),

	%write('---Newly Learned '), nl,print_list(NewT),nl,%write('---Listing'),%listing,nl,
	%%write('finish this one eGen evaluation, and '), 
	%length([EIndex|UnCover],Num),
	%length(NUnCover,NNum),
	%NewCoveredNum is Num-NNum, %write(NewCoveredNum),
	%%write(' more are multiCoveringed, while remain unmultiCovering is: '),
	%%write(NUnCover),nl,
	%%write(NewTSoFar),nl,
	%write(':( should be removed'),%write(RedundantTSoFar),nl,
	removeLearned(RedundantTSoFar),
	addLearned(NewT,RemainedTSoFar,NewTSoFar), %write('---:) Update T is '), %write(NewTSoFar),%write('---Listing'),%listing,nl,

	multiCovering(NUnCover,NegList,NewTSoFar,FinalT).




/*************** Difference with Single Seed **********/
/*
1. multiSeeds: gatherSimilarExs(EI,EIs,[Group|UnCover])
2. Covering can be the same if non-recursive (no secondary examples)
*/