
% Succeed goals.

% Need to program-compile M4 first.


Go1("M4", "Append([Monday, Tuesday], [Wednesday], x)", answer).


Go1("M4", "Append(x, y, [Monday, Tuesday])", answer).


Go1("M4", "Append3([Monday, Tuesday], [Wednesday], [Thursday], x)", answer).


Go1("M4", "~ Append([Monday, Tuesday], [Wednesday], [])", answer).


Go1("M4", "3*y-2 = 1 & 2*x+1 = y+2", answer).


Go1("M4", "x^2 + y^2 = z^2 & 1 < x < 50 & 1 < y < 50 & 0 < z", answer).


% Need to program-compile Qsort first.


Go1("Qsort", "Quicksort([1,3,4,2],x)", answer).


Go1("Qsort", "Quicksort([1,3,4,2,9,8,7,6,5],x)", answer).


% Need to program-compile Inclusion first.


Go1("Inclusion", "IncludedIn([1,2,3],[4])", answer).         % no


Go1("Inclusion", "IncludedIn([],[])", answer).


Go1("Inclusion", "IncludedIn([1],[1,2]) & ~IncludedIn([2],[1])", answer).


% Need to program-compile EightQueens first.


Go1("EightQueens", "Queen(x)", answer).


% Need to program-compile Fibonacci first.


Go1("Fibonacci", "Fib(235,y)", answer).


Go1("Fibonacci", "Fib(x,5789092068864820527338372482892113982249794889765)", 
                                                                      answer).


% Need to program-compile Factorial first.


Go1("Factorial", "Fac(39,y)", answer).


Go1("Factorial", "Fac(x,20397882081197443358640281739902897356800000000)", 
                                                                      answer).


% Need to program-compile GCD first.


Go1("GCD", "Gcd(39,678,x)", answer).


Go1("GCD", "Gcd(36,678,x)", answer).


% Tests running of Succeed on meta-level calls!!!! 
%
% Need to program-compile TestInterpreter and M4 first.


Go1("TestInterpreter", "Go1(\"M4\", \"Append(x, y, [Monday, Tuesday])\",
                                                           answer)", answer).


Go1("TestInterpreter", "Go1(\"M4\", \"Append([Monday, Tuesday], 
                                          [Thursday], x)\", answer)", answer).


Go1("TestInterpreter", "Go1(\"M4\", \"Append3([Monday, Tuesday], [Wednesday], 
                                          [Thursday], x)\", answer)", answer).


Go1("TestInterpreter", "Go2(\"M4\", 
                     \"Append([Monday, Tuesday], [Wednesday], [])\")", answer).



************************************************************************

% Fail goals.


Go2("M4", "Append([Monday, Tuesday], [Wednesday], [])").       % yes


Go2("M4", "Append3([Monday, Tuesday], [Wednesday], [Thursday], [])").     % yes


Go2("M4", "1 + 2 = 4").           % yes


Go2("Qsort", "Quicksort([3,2,1],[1,3,2])").       % yes


Go2("Qsort", "Quicksort([1],[])").       % yes


Go2("Qsort", "Append([],[1],[])").       % yes


Go2("Qsort", "Quicksort([],[])").        % no



% Need to program-compile M3 first.


Go2("M3", "Append(Cons(Monday,Nil), Cons(Wednesday,Nil), Nil)").    % yes


Go2("M3", "Append3(Cons(Monday,Nil), Cons(Wednesday,Nil), Cons(Thursday,Nil), 
                                                                        Nil)").
                                                                    % yes

Go2("M3", "Append(Nil,Cons(Monday,Nil),Nil)").               % yes


Go2("Inclusion", "IncludedIn([1],[1,2]) & ~IncludedIn([2],[1])").        % no


Go2("Inclusion", "~IncludedIn([1],[1,2]) & IncludedIn([2],[1])").        % yes


Go2("Inclusion", "Member(1,[1]) & IncludedIn([1],[])").              % yes


Go2("Inclusion", "Member(1,[]) & IncludedIn([],[1])").               % yes
