深入test_nostutter_1
研究 excersize 我找到了一种无需重复即可解决的方法:
Example test_nostutter_1: nostutter [3;1;4;1;5;6].
Proof.
constructor 3.
(* This will apply the tactics to the 2-nd subgoal *)
2: {apply eqb_neq. auto. }
constructor 3.
2: {apply eqb_neq. auto. }
constructor 3.
2: {apply eqb_neq. auto. }
constructor 3.
2: {apply eqb_neq. auto. }
constructor 2.
Qed.
我决定更多地使用它,并且在 coq 参考手册中我发现do tactical可以多次循环一个策略。
do num expr
expr 被评估为 v ,它必须是一个策略值。这个策略值 v 被应用了 num 次。假设 num > 1,在第一次应用 v 之后,至少一次将 v 应用到生成的子目标,依此类推。如果在 num 个应用程序完成之前 v 的应用程序失败,它就会失败。
所以我尝试了这个:
do 4 constructor 3; 2: {apply eqb_neq. auto. }
但不幸的是它失败了。只有这个有效:
do 1 constructor 3.
是否可以使用do使其工作?