Coq的理解与使用

一。

Theorem plus_1_l : ∀ n:nat, 1 + n = S n.
Proof.
  intros n. reflexivity. Qed.
  
Theorem mult_0_l : ∀ n:nat, 0 × n = 0.
Proof.
  intros n. reflexivity. Qed.

上述定理名称的后缀 _l 读作“在左边”。
跟进这些证明的每个步骤,观察上下文及证明目标的变化是非常值得的。
你可能要在 reflexivity 前面加上 simpl 调用,以便观察 Coq 在检查它们的相等关系前进行的化简。

注意

关键词reflexivity ,只有“在左边”的时候,才会生效。

二。

Proof.
  (* 将两个量词移到上下文中: *)
  intros n m.
  (* 将前提移到上下文中: *)
  intros H.
  (* 用前提改写目标: *)
  rewrite → H.
  reflexivity. Qed.

此时,是把
证明的第一行将全称量词变量 n 和 m 移到上下文中。
第二行将前提 n = m 移到上下文中,并将其命名为 H。
第三行告诉 Coq 改写当前目标(n + n = m + m),把前提等式 H 的左边替换成右边。

改写的内容,是goal或者subgoal中的内容。原则是根据H来替换。

注意

(rewrite 中的箭头与蕴含无关:它指示 Coq 从左往右地应用改写。 若要从右往左改写,可以使用 rewrite <-。在上面的证明中试一试这种改变, 看看 Coq 的反应有何不同。)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值