The mathematics of equivalence reasoning
Reasoning by equivalence is is line-by-line algebraic reasoning.
Reasoning by equivalence is is an iterative formal symbolic procedure where algebraic expressions, or terms within an expression, are replaced by an equivalent until a "solved" form is reached. Reasoning by equivalence is very common in elementary mathematics. It is either the entire task (such as when solving a quadratic) or it is an important part of a bigger problem. E.g. proving the induction step is often achieved by reasoning by equivalence.
There are two modes: (i) re-writing equivalent expressions, and (ii) solving equations.
An example of working with equivalent expressions is shown below. It is not necessary to write the equal sign at the start of the expression in this form of reasoning.
An example of solving a quadratic equation is shown below.
STACK has predicates to determine which form of reasoning is used. The predicate is applied to the list of expressions.
stack_eval_arg_expression_reasoningp(ex)stack_eval_arg_equation_reasoningp(ex)
Equivalent expressions
Working with equivalent expressions is relatively straightforward.
In STACK, equivalence of adjacent expressions is established with the AlgEquiv answer test.
-
(
CHECKMARK) is use to indicate the following expression is equivalent to the previous one. E.g. -
(
QMCHAR) is used to indicate one expression is not equivalent to the next (equation or expression).
Equivalent equations
Two equations are equivalent if they have the same solutions.
Line-by-line algebraic reasoning with equations involves different types of object:
- Algebraic equations, which (implicitly) represent the set of solutions: e.g. .
- Logical expressions giving explicit solutions: e.g. .
- Sets of numbers representing the solution: e.g. , intervals such as (
co(0,inf)in STACK). - Systems of inequalities, e.g. .
Reasoning by equivalence typically means working from a given equation to the explicit solutions.
In deciding whether two equations are "the same" there are a number of choices to be made.
- Are we working over the real numbers, the complex numbers or something else?
- What should we do about repeated solutions. E.g. are and equivalent equations?
There are some edge cases when reasoning with equations:
- denote situations with empty solutions, such as equations such as .
-
denote trivial equations which are universally true, such as . Note, the atom
allis displayed as rather than . (This can be changed withtexput(all, "\\mathbb{R}");)
These edge cases differ from AlgEquiv which does not consider to be .
Note that STACK has no concept of "step size": future plans include measuring the "distance" between two expressions/equations. Teachers can then use this size to decide on whether a step is too big, or an argument needs more detail (another intermediate step).
-
(
EQUIVCHAR) is used to indicate the following equation is equivalent to the previous one. E.g. -
(
QMCHAR)is used to indicate one expression is not equivalent to the next (equation or expression). -
(
SAMEROOTS) is used to indicate the same set of roots, without multiplicity.
E.g. -
(
IMPLIESCHAR) and (IMPLIEDCHAR) are used when the solution sets of expressions are subsets. Let be the solution set of and be the solution set of and then we write . E.g. -
is used when solving over the reals (see the option
assume_real). E.g. -
is used when solving over the positive reals (see the option
assume_pos). E.g. - is used when equivalence is established using the rule . E.g.
Other symbols are used to give feedback of various kinds.
- is used when students forget to write a variable. E.g.
- is used when students use and/or incorrectly. E.g.
-
and () are used when we infer students have performed calculus operations (see the option
calculus). E.g.