Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax Coq:>;符号_Syntax_Symbols_Coq - Fatal编程技术网

Syntax Coq:>;符号

Syntax Coq:>;符号,syntax,symbols,coq,Syntax,Symbols,Coq,这可能非常简单,但我找不到任何关于“:>”符号在Coq中的含义的信息。 以下两者之间的区别是什么: U:类型 及 W:>类型 ?这取决于符号出现的位置。例如,如果它位于记录声明中,它将指示Coq添加相应的记录投影作为强制 具体地说,假设我们对具有操作的类型有以下定义: Record foo := Foo { sort :> Type; op : sort -> sort -> sort }. 我们现在可以编写以下函数,该函数应用结构的操作两次: Definitio

这可能非常简单,但我找不到任何关于“:>”符号在Coq中的含义的信息。 以下两者之间的区别是什么: U:类型 及 W:>类型

这取决于符号出现的位置。例如,如果它位于记录声明中,它将指示Coq添加相应的记录投影作为强制

具体地说,假设我们对具有操作的类型有以下定义:

Record foo := Foo {
  sort :> Type;
  op   : sort -> sort -> sort
}.
我们现在可以编写以下函数,该函数应用结构的操作两次:

Definition bar (T : foo) (x y z : T) : T :=
  op foo x (op foo y z).
通过使用
:>
符号,我们已指示Coq阅读
条的定义,如下所示:

Definition bar' (T : foo) (x y z : sort T) : sort T :=
  op foo x (op foo y z).

也就是说,Coq理解每个
T:foo
都可以出现在它期望类型的位置上,方法是将其环绕在
sort
投影上。如果我们使用
而不是
:>
,Coq只会接受
bar'
,并且
bar
会引发类型错误。

您可能需要添加一个关于类的注释,其中它表示现有实例。请注意,您还可以使用>after Record在构造函数而不是字段上获得相同的效果。我用这个查询找到它:我为重复道歉。我按原样用符号搜索,而不是用“冒号大于”这个词(不用担心:)很难找到语法。