首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coq中intros的案例分析

Coq中intros的案例分析
EN

Stack Overflow用户
提问于 2020-01-30 10:25:51
回答 1查看 79关注 0票数 1

我想了解下面的例子中的语法intros [|n].

代码语言:javascript
复制
Lemma zero_or_succ :
  forall n : nat, n = 0 \/ n = S (pred n).
Proof.
  intros [|n].
  - left. reflexivity.
  - right. reflexivity.
Qed.

我的理解是,它修正了n,然后对其进行了案例分析。然而,我习惯于用析构进行案例分析。这是一条捷径吗?如何理解具有第一个分支为空的案例分析[H1 | H2]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-30 10:55:27

你是对的。您在这里使用的是所谓的介绍模式。

代码语言:javascript
复制
intros [|n].

等于

代码语言:javascript
复制
intro n. destruct n as [|n].

您基本上是给构造函数的不同参数命名,使用|来分离所述的构造函数。对于自然数,您有构造函数OS。第一个没有参数,而第二个有一个,我们称之为n

如果有布尔值,则可以使用[|],因为truefalse都不接受参数。注意,intros []也是可能的,并且不需要命名变量就对应于intro h. destruct h.。更广泛地说,您不需要在命名变量方面做到详尽无遗。intros [|].intros []intros [|?]同样适用于自然数(?允许您声明有一个变量是您不愿命名的,coq将自动给它命名)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59983837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档