假设我有以下策略来检查一个术语是否是字面上的零: match x with | _ => constr:false如果这是球门上的战术,我会这么做 match x with
| ?在这个具体的示例中,减少x或计算它(let xx := eval compute in x)可能有效,但在更复杂的示例中,计算成本可能会令人望而却步,特别是
我发现我自己(某种程度上)在重复代码,因为当它们匹配时,我想在目标和假设中使用相同的策略。有时,这并不是因为我正在匹配,而只是因为我定义了一个自定义策略,但根据上下文,我希望将其应用于目标或命名假设。例如: Ltac my_tac H := simpl in H; rewrite X in H; ... ; other_tactic in H.在某种程度上,我想知道这个目标有一个名字,比如GOAL,就像<e
我正在研究一个证据,我的一个子目标看起来有点像这样: (a b : bool) (H1: p -> a = b) negb该证明不依赖于任何外部引理,而只是将一个假设应用于另一个假设,然后用已知的假设重写步骤。
有办法实现自动化吗?我试过做intros. auto.,但没有效果。也许我需要更有力的策略?我想让它自动化的原因是,在我最初的问题中,我实