数学联邦政治世界观
超小超大

类型论与coq (5-4)

其实这两个类型并不是只是代表函数和笛卡尔积这么简单,我们其实可以把∏看作“对于任意的”,∑看作"存在",比如说Πx:A B(x)就是说对于任意的x∈A都有B(x)成立,比如P,Q是关于正整数的两个性质,我们想描述对于任意的n∈ℕ都有P(n) → Q(n),写法就是Πn:ℕ(P(n) → Q(n)),对于∑是类似的,那我们怎么在coq里面写有量词的证明呢?

先来看“对于任意的”,想想什么叫对于任意的n∈ℕ,其实我们是不是也可以这么理解,我们先固定一个n,但是我们不假设n具有任何特殊的性质,除了他是整数以外,如果我们还能得到命题成立,或者用类型论的话说能够找到这个性质内的一个元素,那么我们就可以说对于任意的n∈ℕ这个性质都成立。

所以我们可以继续使用

move => a

来获得任意取一个A里面的元素的结果。

对于存在量词的证明就更为简单了,我们只需要使用

exists

就可以了。

首先对本节的下文我们事先假设

Parameter P : nat -> Prop.

Parameter Q : nat -> Prop.

Axiom PQ : forall n, P n -> Q n.

我们来看一道题:

Lemma q1 : (P 3) -> exists x, Q x.

我们要证明这个引理,我们想想要怎么办,首先看看我们的条件,我们有的是P3是正确的所以我们可以先通过move指令来获得这个条件,然后我们就等于是知道了在x=3的时候P成立,根据我们上文定义的公理我们知道如果Pn成立那么Qn也成立,于是我们就只需要exists3然后再运用公理即可,完整代码如下

Lemma q1 : (P 3) -> exists x, Q x.

Proof.

move => P3.

exists 3.

apply PQ.

apply P3.

Qed.

那我们来稍微进阶一点,考虑这个习题

Lemma q1' : (exists x, P x) -> exists x, Q x.

这里我们韦依需要改变的地方就是在第一步提取条件的时候,首先我们进行

move => px.

这个时候你会发现我们同时把

(exists x, P x)

给提出来了,我们还需要知道P成立时的x所以我们还需要move指令

move:px=>[x p].

其余的都没有什么区别,完整代码如下:

Lemma q1' : (exists x, P x) -> exists x, Q x.

Proof.

move => px.

move: px => [x p].

exists x.

apply PQ.

apply p.

Qed.

现在我们来看一下对于forall的证明

Lemma q2 : ~(exists x, P x) -> forall x, ~P x.

这里值得重新回顾一下的是在coq里面 A其实就是A → fαlse所以其实这里面是有 A这个假设的,或者说我们实际上是要找到一个函数f:A → fαlse。

我们第一步当然是先获得假设条件

move => nx.

数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。

相关小说

名字已消失 连载中
名字已消失
沈梦棠
0.4万字1年前
一生一世一双人(浩桐古风) 连载中
一生一世一双人(浩桐古风)
康樊
一向清冷的她,年纪轻轻就飞生上神,绝情绝爱。但她却遇见了他的真命天子
3.7万字1年前
终闻民国无常思 连载中
终闻民国无常思
旧羡
1912年,民国成立,在这风雨飘摇之际,传承千年的天师界如广大陷入水生火热之中的普通人一般迎来了属于他们的动荡。莫家和陆家是万里比邻之交,莫......
20.8万字1年前
宿主请藏好 连载中
宿主请藏好
婵婵婵婵酱
作为一个在小世界不断穿梭只为完成任务回到现实世界的穿越者,在完成了许多任务后终于能够回到自己的世界时,系统却告诉他男主们都从小世界逃了出来,......
14.8万字1年前
斗龙之车神的头号粉丝 连载中
斗龙之车神的头号粉丝
洛枫辞熠
1.2万字1年前
孽缘录 连载中
孽缘录
路阿锦
就是听歌,听着听着,想写了
2.1万字1年前