有时,当我在写应用风格的证明时,我想要一种方法来修改证明方法 foo
以
尝试
foo
第一个目标。如果它解决了目标,很好;如果没有解决,恢复到原始状态并失败。
这出现在以下代码中:
qed (subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail)+
在进一步进行一些更改之后,对的调用simp
将不再完全解决目标,然后这将循环。如果我可以指定类似的东西
qed (solve_goal(subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail))+
或(替代建议的语法)
qed ((subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail)!)+
或(也许更好的语法)
qed ((subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail)[1!])+
它会停在这个脚本无法解决的第一个目标上。