Вы читали теорию, написанную для более старой версии Coq.Синтаксис получил серьезную переработку с V8.0V8.0 поставляется с инструментом для перевода теорий V7 в V8, который работал довольно хорошо;инструмент был удален из последующих выпусков.
Вы можете увидеть обзор изменений в документе Перевод с Coq V7 на V8 .
В частности, (a:b) c
- этоуниверсальное количественное определение, теперь написанное forall a:b, c
[a:b] c
- это лямбда-абстракция, теперь написанная fun a:b => c
.Еще одна важная вещь при чтении старых теорий заключается в том, что приложение функции требует скобок и имеет низкий приоритет: до V7 (f x = y)
означало (f (x=y))
и ([x:nat]y z)
означало (([x:nat]y) z)
.