
:- set(h,10)?
:- set(r,10000)?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% The code consults an oracle. The oracle takes the form of a file
% which should contain either an intensional or extensional definition
% of the observable predicate.

% An intensional definition should represent the outcome for every
% possible trial by a set of positive and negative examples in the
% usual Progol syntax.

% The code outputs the outcome of the current trial.

result_of_trial(Loop_no, Oracle_file, Current_trial_file):-
	consult(Oracle_file),
	see(Current_trial_file),
	read(trial(E)),
	seen,
	nl,
	write('New_example='),
	class(E, Class),
	write(E),
	write('.'),
	nl,
	write('Lab_result=example('),
	write(Loop_no),
	write(', '),
	write(E),
	write(', '),
	write(Class),
	write(').'),
	nl,
	nl.


class(E, positive):-
	E.

class(_, negative):-
	write(':- ').


