Answer is any Solution to an Equation

This PG code shows how to check student answers that can be any point satisfying an equation.

PG problem file Explanation
DOCUMENT();

"PGstandard.pl",
"MathObjects.pl",
"parserSolutionFor.pl",
);

TEXT(beginproblem());

Initialization: We need to include the macros file parserDifferenceQuotient.pl.

Context("Vector")->variables->are(x=>'Real',y=>'Real');
\$f = SolutionFor("x^2 = cos(y)","(1,0)");

#\$f = SolutionFor("x^2 - y = 0",[2,4]);
#\$f = SolutionFor("x^2 - y = 0",Point(4,2),vars=>['y','x']);

Setup: The routine SolutionFor("equation",point,options) takes an equation, a point that satisfies that equation, and options such as vars=>['y','x'] in case you want to change the order in which the variables appear in order pairs (the default is lexicographic ordering of the variables).

Context()->texStrings;
BEGIN_TEXT
A solution to \(\$f->{f}\) is \((x,y)\) = \{ans_rule(30)\}.
END_TEXT
Context()->normalStrings;

Main Text: We can use \$f->{f} to get the Formula object of the equation, and \$f->(point) to determine if the given point is solution to the equation or not.

ANS( \$f->cmp() );

ENDDOCUMENT();