Syntax 在一些Coq理论中,(a:b)c和[a:b]c是什么意思?它的定义在哪里?

Syntax 在一些Coq理论中,(a:b)c和[a:b]c是什么意思?它的定义在哪里?,syntax,coq,Syntax,Coq,我看到了一种非常奇怪的语法:(type中的name:type1)type2和表达式中的[name:type]expr,看起来像是Pi和Lambda的替代语法,但经过几个小时的搜索,我在文档中没有找到任何东西,都是徒劳的 它是什么意思?它的定义在哪里? (很抱歉,我丢失了示例用法的链接)您正在阅读为旧版Coq编写的理论。语法在V8.0中得到了重大改进。V8.0附带了一个将V7理论转换为V8的工具,该工具运行得非常好;该工具已从后续版本中删除 你可以在论文中看到对变化的回顾 特别是,(a:b)c是一

我看到了一种非常奇怪的语法:(type中的name:type1)type2和表达式中的[name:type]expr,看起来像是Pi和Lambda的替代语法,但经过几个小时的搜索,我在文档中没有找到任何东西,都是徒劳的

它是什么意思?它的定义在哪里?
(很抱歉,我丢失了示例用法的链接)

您正在阅读为旧版Coq编写的理论。语法在V8.0中得到了重大改进。V8.0附带了一个将V7理论转换为V8的工具,该工具运行得非常好;该工具已从后续版本中删除

你可以在论文中看到对变化的回顾


特别是,
(a:b)c
是一种通用的量化,现在为所有a:b,c编写
[a:b]c
是一个lambda抽象,现在编写
fun a:b=>c
。阅读旧理论时,另一件重要的事情是函数应用程序需要括号并且优先级较低:在V7之前,
(fx=y)
表示
(f(x=y))
([x:nat]yz)
表示
([x:nat]y)z)
,噢!非常感谢你!我已经开始认为那是一场噩梦:)