SF学习心得

关于intros的理解
我们通常会说“‘假设’ 存在一个任意自然数 n…”。而在形式化证明中,这是用 intros n 来实现的,它会将量词从证明目标转移到当前假设的’上下文’中。

在这里插入图片描述
在这里插入图片描述

这里可以理解为,intros n m将第一个假设forall n m:nat放入上下文,假设它成立。intros H将第二个假设n=m放入上下文,假设它成立。

关于case的理解
其第一个参数先被 match 匹配。 但此处 + 的第一个参数 n 未知,而 eqb 的第一个参数 n + 1 是复杂表达式,二者均无法化简。

在这里插入图片描述
在这里插入图片描述

case n as [|n’]可以理解为对n进行情况分析,O和n‘的情况下。

关于intros[|n]和intros[] []的理解

对于nat型的n进行分析的时候,我们使用的 intros x y. destruct y as [|y] eqn:E. 可以合并成intros [|n].
对于bool型的n进行分析的时候,我们使用的 intros x y. case b 可以合并成intros [] .或者多个case时,intros [][].
例如:在这里插入图片描述
在这里插入图片描述
**不动点 Fixpoint 和结构化递归 **
Coq 要求每个 Fixpoint 定义中的某些参数必须是“递减的”
在这里插入图片描述

当 Coq 查看此定义时,它会注意到“plus’ 的第一个参数是递减的”。 这意味着我们对参数 n 执行了’结构化递归’。换言之,我们仅对严格递减的 n 值进行递归调用。这一点蕴含了“对 plus’ 的调用最终会停止”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值