

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Metagol 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
:-['metagol/metagol.pl'].


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Data set
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/*--------- Toy Example ---------*/
%:-['datasets/context_free_grammar/toy_examples/ex_bracket.pl']. %ex_bracket

/*--------- experiments ---------*/
%:-['datasets/context_free_grammar/competition/train1_compressed.pl']. %train1compressed_1level
%:-['datasets/linearCFG/experiments/linearCFG_deterministic_GP2_ExP5_Max20/ex_6-10_63.pl']. %train1compressed_1level
%:-['datasets/regular_grammar/experiments/rg_deterministic_P2_Max15_P9_Max20/ex_2-7_56.pl'].

%set(verbose,1).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Output Version Information



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Generalise
g:- 	findall(PosEI,ex(PosEI,PosEx,1),PosEIs),
    	findall(NegEI,ex(NegEI,NegEx,0),NegEIs),
generalise_oneTrainingSet(PosEIs,NegEIs,[[],[],[],[]],WholeG),
pprint_wholeG(WholeG),
    	nl. %pretty_print.

t:- 	findall(PosEI,ex(PosEI,PosEx,1),PosEIs),
findall(NegEI,ex(NegEI,NegEx,0),NegEIs),
unCoverRecord(PosEIs,UncoveredPosEIs),write(UncoveredPosEIs),nl,
unCoverRecord(NegEIs,UncoveredNegEIs),write(UncoveredNegEIs),nl.


g5:- 	
numbersList(1,5,PosEIs),
numbersList(267,276,NegEIs),
generalise_oneTrainingSet(PosEIs,NegEIs,[],H),
nl. %pretty_print.

g10:- 	
%numbersList(1,10,PosEIs),
%numbersList(526,545,NegEIs),
PosEIs=[1,2,3,4,5,6,7],NegEIs=[526,527,528,529,530,531,532],

    rb_new(Rule1s0),rb_new(Rule2s0),
generalise_oneTrainingSet(PosEIs,NegEIs,{Rule1s0,Rule2s0},{Rule1s,Rule2s}),
pprint_wholeG({Rule1s,Rule2s}),
    	nl. %pretty_print.

g30:- 	
numbersList(1,30,PosEIs),
numbersList(267,356,NegEIs),
generalise_oneTrainingSet(PosEIs,NegEIs,[],H),
nl. %pretty_print.



% use for pa.script
:-	
yap_flag(argv,[InputFile1,InputFile2]),
consult(InputFile2),
atom_chars(InputFile2,InputFile2Chars),

append(Pre,[e,x,'_'|Rest],InputFile2Chars),
append(Problem_infoChars,['.',p,l],Rest),
atom_chars(Problem_info,Problem_infoChars),
%write(Problem_info).
%write({ProblemSize,Index}),
%nl.
asserta(problem_info(Problem_info)),
it,
retract(problem_info(Problem_info)).

