我想知道怎样处理证明比赛。例如,我有以下形式的东西:
s/[^0-9]+/ /g;
感觉应该有很多方法来解决这个问题……我想也许有可能在上游重构某些东西来避免,但是感觉下面的事情应该是正确的
F match something m' with
| true => Y m'
| false => Z m'
end=Otherside m'
然后您应该能够执行将其分解为两个子目标的操作,如果...
match something m' with
| true => F (Y m')
| false => F (Z m')
end=Otherside m'
那你很好。
这可能吗?还是我需要重构我的功能?
答案 0 :(得分:2)
这没有经过您的中间步骤,但是您只需通过以下方式即可实现两个目标
destruct (something m').
如果该术语太大而无法写,我想您可以像这样拉出它:
match goal with |- _ match ?S with _ => _ end = _ => destruct S end.
甚至
match goal with |- context[match ?S with _ => _ end] => destruct S end.