Syntax Coq简介语法

Syntax Coq简介语法,syntax,coq,Syntax,Coq,有人能解释一下下面的介绍语法吗 Lemma is_single_nBTP : forall t, is_single_nBT t = true -> exists n : nat, t = Leaf n. Proof. intros [ nleaf | nnode t1 t2] h. exists nleaf. reflexivity. ... 其中,nBT是一个nat二叉树,是一个函数,当t是一个叶子时,它返回true (本例来自此。)该[A | B]是一种分离模式。这与函数式编程语言

有人能解释一下下面的
介绍
语法吗

Lemma is_single_nBTP : forall t, is_single_nBT t = true -> exists n : nat, t = Leaf n.
Proof.
intros [ nleaf | nnode t1 t2] h.
exists nleaf.
reflexivity.
...
其中,
nBT
是一个nat二叉树,
是一个函数,当
t
是一个叶子时,它返回
true


(本例来自此。)

[A | B]
是一种分离模式。这与函数式编程语言中的案例分析思想相同

在这种情况下,您将创建两个子目标。其中,
t
是一片叶子,以自然数
nleaf
为参数,另一个
t
作为
节点
引入,参数为
nnode
t1
t2


无论如何,另一个参数
h:is_single_nBT?=如果
Leaf nleaf
节点nnode t1 t2
,则引入true

我是否可以使用
案例
策略?您还可以查看文档的“简介模式”部分,并将其与其他策略一起使用。我经常在归纳和析构函数中使用它。例如,当你对一个自然数进行归纳时,你可以将归纳n作为[| p hi]
直接命名前导和归纳假设。