You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What are the odds that the original expression occurs on the right hand side after calling @equality_prover? Well, it can happen. Here is an example:
Let's call disassociation on 3*(a*a). Well, unless auto_simplify is disabled or the 'combine_exponents' simplification directive of Mult is turned off (which would be sensible thing to do if you really want to disassociate), the a's will be regrouped in the attempt to combine the exponents. It will attempt to do this by setting a replacement of "a*a = a^2". But that replacement doesn't occur, because after regrouping we have the original expression which is preserved. So instead you end up with 3*(a*a) = 3*(a*a)
which makes no sense after trying to disassociate. It's neither disassociated nor simplified. The appropriate thing to do (although still silly) would be to end up with 3*(a*a) = 3*a^2
this would at least clue the user into the fact that the auto-simplification is thwarting their attempt to disassociate.
One fix is to make the preservation of the lhs be more targeted rather than preserving all instances of the expression. I'm not yet sure if this is what we need to do, though.
The text was updated successfully, but these errors were encountered:
What are the odds that the original expression occurs on the right hand side after calling @equality_prover? Well, it can happen. Here is an example:
Let's call disassociation on
3*(a*a)
. Well, unless auto_simplify is disabled or the 'combine_exponents' simplification directive of Mult is turned off (which would be sensible thing to do if you really want to disassociate), the a's will be regrouped in the attempt to combine the exponents. It will attempt to do this by setting a replacement of "a*a = a^2". But that replacement doesn't occur, because after regrouping we have the original expression which is preserved. So instead you end up with3*(a*a) = 3*(a*a)
which makes no sense after trying to disassociate. It's neither disassociated nor simplified. The appropriate thing to do (although still silly) would be to end up with
3*(a*a) = 3*a^2
this would at least clue the user into the fact that the auto-simplification is thwarting their attempt to disassociate.
One fix is to make the preservation of the lhs be more targeted rather than preserving all instances of the expression. I'm not yet sure if this is what we need to do, though.
The text was updated successfully, but these errors were encountered: