SlowGuess/NeurIPS_2023_OCR huggingface dataset:
solvemulti_eq(expressions: list) -> newExpressions: dict: Solve the system of equations given by the list of expressions and return the result as a dictionary. For example, solvemulti_eq([ "x + y = 2", "x - 2 y = -7"] ) -> {"x": ["x = -1"], "y": ["y = 3"]}
solvemulti_ineq(expressions:list) -> new_expression:str:Solve the system of inequalities given by the list of expressions and return the result as a string. For example, solve multi_ineq([ "x \le 2", "x \le -7"] -> "x \le -7".
substitute(expression: str, conditions: list[str]) -> new_expression: str:  
Substitute the contextual conditions in the list into the expression and return the result. For example, substitute("3 x + 4", ["x = 1']) -> "7".
expand(expression: str) -> new_expression: str: Expand the expression into a polynomial. For example, expand((x + 1) ^ 2) -> "x ^ 2 + 2x + 1"
factor(expression: str) -> new_expression: str: Factorize the polynomial. For example, factor("x ^ 2 + 2x + 1") -> " (x + 1) ^ 2"
collect(expression: str, symbol: str) -> new_expression: str: Collect the coefficients of the corresponding powers according to the given symbol. For example, collect("a x - 5 a + x ^ {2} - 5 x", "x") -> "- 5 a + x ^ {2} + x (a - 5)"
partial.solve(expression: str, symbol: str) -> new_expression: str: Let the given symbol be the unknown variable and solve the linear equation expression with one variable. For example, partial.solve("x + 3 y - 3 = 0", "x") -> "x = -3 y + 3"
think(thought: str) -> conclusion: str: Generate new conclusions based on natural language description thought. Think should only be called when the above functions are not applicable. For example, think("\\sqrt{x-8}" the expression inside the root is always greater than or equal to 0") -> "x-8\ge0"
To use ChatGPT, simply provide a mathematical problem or question in LaTeX format. You can use any of the above functions to help solve the problem. Please follow the following format:
Question: The input question you must answer. This appears only once.
Trial: The problem-solving approach that can be referred to. It may contain errors, you can refer to the correct part in it.
Action: A function call, which should be one of the mentioned functions with arguments. You must only call one function in one Action.
Output: The result of the action. Every Action must be immediately followed by one and only one Output.
... (This Action/Output cycle can repeat N times.)
Final Answer: The final answer to the original input question. The answer should be numerical or LaTeX math expression. Do not use natural language in the answer
Listing 2: Prompt for Deliberation with Chain of Thought.
You are ChatGPT, a mathematical problem solver equipped with multiple functions for solving mathematical problems. You have access to both natural language problem solving processes and formal problem solving processes, but there may be errors within them. You need to learn the correct methods in order to better solve problems. You can use the following functions:
calculate(expression: str) -> new_expression: str: Calculate the value of the expression and return it as a string. For example, calculate("34 * 2") -> "68".
solve_eq(expression: str) -> newExpressions: list: Solve the equation expression and return the result as a list. For example, solve_eq("3 x + 4 = 1") -> ["x = -1"].
solve_ineq(expression: str) -> new_expression: str: Solve the inequality expression and return the result as a string. For example, solve_ineq("3 x + 4 < 1") -> "x < -1".
solvemulti_ineq(expressions:list) -> new_expression:str:Solve the system of inequalities given by the list of expressions and return the result as a string. For example, solve multi_ineq([ "x \1e 2", "x \1e -7"] ) -> "x \1e -7".
substitute(expression: str, conditions: list[str]) -> new_expression: str:
    Substitute the contextual conditions in the list into the expression and return the result. For example, substitute("3 x + 4", ["x = 1")] -> "7".
Follow this format:
The input question that you must answer. It appears only once.
Given Solution:
A natural language solution that can be used as a reference, which may contain errors. You can refer to the correct ideas in it.
Verification: Transform the original solution into a verification process that uses functions, corrects any computational errors, and simplifies the process.
Action: A function call, which must be one of the functions mentioned above and include parameters. You can only call one function in an Action.
Output: The result of an Action. Each Action must have one and only one Output following it.
(Action/Output can be repeated any number of times...)
Final Answer: The ultimate solution to the original input problem.
Revise the given solution based on the verification process:
Revise the original solution based on the computed result in the verification process. If the computed result in the verification process differs from the computed result in the original solution, the computed result in the verification process must be used as the standard.
E Annotation Platform
We build an annotation platform for crowdworkers to annotate EFGs in CARP. A screenshot of the platform is provided in Figure 6. First, given output nodes, crowdworkers are required to find the nodes that have directed edges to the output nodes. Second, crowdworkers are required to annotate relations between each node pair found in the first stage. Finally, the crowdworkers should review the annotation, and remove irrelevant nodes that do not contribute to the reasoning process. Besides, if the problem or solution has errors, the crowdworkers should annotate the error types and skip them.
Progress: 18 / 1000
ed58e4bc-6b16-49db-8fed-d63b634ca76f
The solution to the equation  $ax + 2bx = 3$  is  $x = 1$ , then the solution to the equation  $a(y - 1) + 2b(y - 1) = 3$  is?
y=2
From the question we have:  $a + 2b = 3$ ,  $a(y - 1) + 2b(y - 1) = 3$ . Rectifying gives  $(a + 2b)y - (a + 2b) = 3$ , i.e.,  $3y - 3 = 3$ , therefore  $y = 2$
Input Expression Nodes	Input Natural
Language Nodes	Output Expression Nodes	Confirm	Delete
ax + 2bx = 3, x = 1	Nothing selected	a + 2b = 3	Confirm	Delete
a(y - 1) + 2b(y - 1) = 3, a + 2b = 3	Nothing selected	(a + 2b)y - (a + 2b) = 3	Confirm	Delete
a + 2b = 3, (a + 2b)y - (a + 2b) = 3	Nothing selected	3y - 3 = 3	Confirm	Delete
3y - 3 = 3	Nothing selected	y = 2	Confirm	Delete
Input Nodes	Relation Types	Output Nodes
ax + 2bx = 3	substituted expr	a + 2b = 3
x = 1	substitution	a + 2b = 3
a(y - 1) + 2b(y - 1) = 3	factored expr	(a + 2b)y - (a + 2b) = 3
a + 2b = 3	common factor	(a + 2b)y - (a + 2b) = 3
(a + 2b)y - (a + 2b) = 3	substituted expr	3y - 3 = 3
a + 2b = 3	substitution	3y - 3 = 3
3y - 3 = 3	equation	y = 2
Modify
Reset
Issues
□ Missing neccessary output nodes
□ Missing neccessary input nodes
□ Not algebra
□ Exist erros in the problem or the solution
□ Can not represent the solution with EFG
□ Automatic verification does not meet expectations
Report Issues
Home
Figure 6: A screenshot of the EFG annotation platform. The platform has been translated into English.