Help debugging seemingly-erroneous backwards rewrites #224
Replies: 2 comments 2 replies
-
pinging @oflatt, the resident proofs wizard 🧙 |
Beta Was this translation helpful? Give feedback.
-
Hi @silversquirl, great to see people using this feature for debugging. The second proof you show is as specific as it gets: it's exactly one rewrite application. Did that help? "Backwards" rewrites are just like forwards rewrites, but the right-hand side of the rule application is the previous term. |
Beta Was this translation helpful? Give feedback.
-
The following rewrites for a pure language are able to optimize expressions such as
(let a 0 (let b a b))
to0
. However, they are also able to optimize the same expression toa
, which is obviously invalid asa
is unbound in that context.I find explanation provided for this proof somewhat confusing, as it doesn't show how the
let-distrib
equivalence is found.Asking it to narrow in on the specific issue point (the proof that
(let a (let b a 0) (let b a b))
is equivalent to(let b a (let a 0 b))
) doesn't help at all:Is there any way to have it show more information on these backwards rewrites so I can figure out how it's finding the equivalences?
(Full code example, for reference)
Beta Was this translation helpful? Give feedback.
All reactions