我正在学习自然演绎和练习 Coq。
我们考虑一个公式:
Inductive P :=
| ...
| And: P -> P -> P
| Imp: P -> P -> P. (* implication *)
现在我为可证明性添加了一堆推理规则:
Inductive Deriv: P -> Prop :=
| ...
| intro_and: forall p q, Deriv p -> Deriv q -> Deriv (And p q)
| elim_and1: forall p q, Deriv (And p q) -> Deriv p
| elim_and2: forall p q, Deriv (And p q) -> Deriv q
| ...
但我坚持使用引言的暗示规则。我试过这个:
| intro_imp: forall p q, (Deriv p -> Deriv q) -> Deriv (Imp p q)
,这显然不起作用,因为归纳案例出现在否定位置。
蕴涵的引入规则是:
[p]
.
.
q
-------
p ⊃ q
如何为 Coq 中的蕴含引入规则建模?