Skip to content

Equivalence input assessent

This is reference documentation for assessing answers from the equivalence reasoning input.

Answer tests

There are a number of answer tests which seek to establish whether a student's list of expressions are all equivalent.

In these tests there is no concept of "step size" or any test that a student has worked in a sensible order.
The tests share code with the input type, and feedback from the test will be identical to that from the input when this is shown.

You will also need to set options, as in the input type above, to get the answer tests to reflect the options set. The options supported are assume_pos, assume_real, and calculus.

EquivReasoning

This test establishes that all the items in the list are equivalent, using algebraic equivalence.

EquivFirst

  1. This test establishes that all the items in the list are equivalent, using algebraic equivalence.
  2. Test that the first line of the student's answer is equivalent to the first line of the teacher's answer up to commutativity and associativity (using the answer test EqualComAss.)

To test the last line of an argument is in the correct form will require a separate node in the potential response tree. To add this to the answer test gives too many possibilities.

Natural domains

The equivalence reasoning input tracks natural domains of expressions. This is via the STACK's natural_domain(ex) function. Natural domains are shown to students in the validation feedback. At the moment STACK quietly condones silent domain enlargements such as in the above example.

Repeated roots

There is general ambiguity about how to express multiplicity of roots. If is not equivalent to then students need to indicate multiplicity of roots, but there appears to be no consensus on how this should be notated.

The equation and the expression are considered to be equivalent, because they have the same roots with the same multiplicity. The expressions and have the same variety, but are not identical. This is, of course, slightly awkward since logical ``or'' is idempotent, and so and would be equivalent at a symbolic level. For this reason, STACK accepts as equivalent to , but with an acknowledgement.

Other functions

The maxima function stack_disp_arg(ex, [showlogic, showdomain]) can be used to display a list of expressions ex in the same form as used in the input and answer tests. This is useful for displaying the teacher's worked solution in the general feedback.

The second two arguments are optional. 1. The boolean variable showlogic determines whether the equivalence symbols are shown. For a worked solution you probably need to use the following: 2. The boolean variable showdomain determines whether the natural domains are shown.

For a worked solution you probably need to use the function

\[ {@stack_disp_arg(ta)@} \]

Without the equivalence symbols you use

\[ {@stack_disp_arg(ta, false)@} \]

With the equivalence symbols but without natural domains you use

\[ {@stack_disp_arg(ta, true, false)@} \]

Finding a step in working

It is relatively common to want students to take a "particular step" in their argument. That is to say, to expect a particular intermediate expression to appear explicitly in their list of answers.

For example, imagine you want students to "simplify" to . It is important to see evidence of the expression in their answer. The teacher's answer is, e.g.

ta:[lg(25,5),stackeq(lg(5^2,5)),stackeq(2*lg(5,5)),stackeq(2*1),stackeq(2)]

We want to accept

sa1:[lg(25,5),stackeq(lg(5^2,5)),stackeq(2)]

But reject

sa0:[lg(25,5),stackeq(2)]

Both of these are correct reasoning arguments, but the second is missing the desired step.

To facilitate this search we provide the function stack_equiv_find_step(ex, exl). This looks for expression ex in the list exl using ATEqualComAss. It returns the list of indices of the position. If you just want to know if the expression is missing use the predicate emptyp. Note, this function strips off stackeq before testing, so this function will find in both sa1 and sa2 below.

sa2:[lg(25,5),lg(5^2,5),2]