我有一个证明脚本,我正在探索多个案例,目前速度很慢,因为我有许多解决目标的策略,并且我正在尝试每个案例中的每一个。
我知道在某些情况下我需要应用某些策略,但我不确定如何做到这一点。
这是我现在拥有的:
induction e;
intros;
pose (bool_dec (is_v_of_expr e1)) as ve1; destruct ve1;
[> thing1 | thing 2].
这给出了错误Incorrect number of goals (expected 26 tactics, was given 2)
。
对于归纳产生的每种情况,我都试图thing1
在第一个目标destruct
和thing2
第二个目标中做。destruct
问题是,induction
生成 13 个子目标,每个子目标被分成 2 个destruct
。本地选择器[> thing1 | thing2 ]
试图匹配所有子目标,而不仅仅是特定破坏产生的子目标。
我如何对策略进行排序,以便destruct
在归纳生成的每个案例上thing1
运行,然后在第一个破坏生成的目标上thing2
运行,然后在第二个生成的目标上运行,对于每个归纳案例。