【发布时间】:2017-09-24 04:50:17
【问题描述】:
在Coq Tutorial 的1.3.1 和1.3.2 节中,有两个elim 应用程序:
第一个:
1 subgoal
A : Prop
B : Prop
C : Prop
H : A /\ B
============================
B /\ A
申请elim H后,
Coq < elim H.
1 subgoal
A : Prop
B : Prop
C : Prop
H : A /\ B
============================
A -> B -> B /\ A
第二个:
1 subgoal
H : A \/ B
============================
B \/ A
申请elim H后,
Coq < elim H.
2 subgoals
H : A \/ B
============================
A -> B \/ A
subgoal 2 is:
B -> B \/ A
共有三个问题。首先,在第二个示例中,我不明白将什么推理规则(或逻辑同一性)应用于生成两个子目标的目标。不过,第一个例子我很清楚。
第二个问题,根据 Coq 的手册,elim 与归纳类型有关。所以看来elim这里根本不能应用,因为我感觉这两个例子都没有归纳类型(原谅我不知道归纳类型的定义)。为什么elim可以用在这里?
第三,elim 一般是做什么的?这里的两个示例没有显示elim 的常见模式。官方手册似乎是为非常高级的用户设计的,因为他们定义一个术语是基于由更多术语定义的其他几个术语,并且他们的语言是模棱两可的。
非常感谢您的回答!
【问题讨论】:
标签: coq coq-tactic