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

类型论与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),接着再看更方便。

相关小说

书页间的低语 连载中
书页间的低语
墨染青衿
主人公子衿,一位对古典文化充满热情的先生,步入了历史悠久的文渊书院,开启了他的学术探索和个人成长之旅,在这里,他结识了一群才华横溢的同学,共......
新书1个月前
TOP:装逼进行时 连载中
TOP:装逼进行时
一碗白周
0.7万字1个月前
狼王梦:一匹母狼的梦想 连载中
狼王梦:一匹母狼的梦想
狼王哀歌
一匹母狼捡到三只狼宝宝,希望他们有朝一日能成为顶天立地的狼王(不是沈石溪的狼王梦!!!)(禁止转载,违者必究)
0.0万字1个月前
明明我才是吸血鬼,为什么是我被咬 连载中
明明我才是吸血鬼,为什么是我被咬
Mingnon
温和单纯吸血鬼少爷×帅气神秘狼人学弟!听说吸了非人类的血会因基因突变而死?谁会蠢到去做这种事?答案是:我自己。而且还是因为被他的帅气迷惑。有......
13.0万字1个月前
玄大陆,登王座 连载中
玄大陆,登王座
蕊封
男主:竹荆女主:林楪双洁有副CP在玄大陆中,每个人在10岁的时候都会激发灵力,以及契约。契约可以帮他们契约在玄大陆的神兽。竹荆是不幸的,因为......
4.1万字1个月前
宣白不悔 连载中
宣白不悔
笙箫未冷
紫宣:第一世,你嫁给我,因为悔。第二世,你嫁给我,因为乐。第三世,你嫁给我,因为喜。这一世……白夭夭:因为爱。每一世,我都喜欢你。只是,你不......
3.5万字1个月前