我想要一个变体,erewrite
它首先要求假设,然后继续重写目标,而不是反过来。这是一个小例子:
Variable P : Prop.
Variable SomeProp: Prop -> Prop.
Lemma rewriter: forall (R: Prop), SomeProp R -> P = R.
Admitted.
Lemma useRewriter: P.
Proof.
intros.
erewrite rewriter.
(* Current goal state, ?R *)
(* I want SomeProp ?R first, not ?R *)
Abort.
我认为 SSR 有这样的策略,但我找不到正确的策略。