我如何在不使用Coq中的泛化依赖的情况下以不同的顺序进行介绍?

我如何在不使用Coq中的泛化依赖的情况下以不同的顺序进行介绍?,coq,Coq,考虑到我对所有n m都有,有没有办法做到这一点: intros n m. generalize dependent n. 但是,在一个步骤中,仅对m应用intros(或一种替代策略)您可能想要沿着这些路线的东西(但为了能够将策略应用于多排序望远镜,需要一个异构列表): 不幸的是,基本的Coq策略语言并不适合这种记账步骤。我个人更喜欢用这些,因为它们更经济。比较 intros n m. generalize dependent n. 与SSR等效 move=> n m; move: n.

考虑到我对所有n m都有
,有没有办法做到这一点:

intros n m. generalize dependent n.

但是,在一个步骤中,仅对
m
应用
intros
(或一种替代策略)

您可能想要沿着这些路线的东西(但为了能够将策略应用于多排序望远镜,需要一个异构列表):


不幸的是,基本的Coq策略语言并不适合这种记账步骤。我个人更喜欢用这些,因为它们更经济。比较

intros n m. generalize dependent n.
与SSR等效

move=> n m; move: n.
请注意,如果您的定理是一个普遍量化的事实,您还可以将
n
m
直接放在冒号前面,从而保存第一个
介绍
步骤,例如

Lemma my_lemma n m : P n m.
Proof.
move: n.
(* Rest of proof *)
Qed.
或者,更好的是,如果您在概括之后立即进行
归纳

Lemma my_lemma n m : P n m.
Proof.
elim: n.
(* Rest of proof *)
Qed.
Lemma my_lemma n m : P n m.
Proof.
elim: n.
(* Rest of proof *)
Qed.