/\
и ->
являются обозначениями, а не фактическими константами в Coq. Чтобы найти их подписи, вы должны сначала определить, для чего они используются. Выполнение команды Locate "/\".
должно вывести что-то вроде
Notation
"A /\ B" := and A B : type_scope
(default interpretation)
То есть /\
это обозначение константы and
. Затем вы можете использовать команду Check
, чтобы найти ее тип. Check and.
дает
and
: Prop -> Prop -> Prop
Итак, and
берет два Prop
с и дает Prop
.
Аналогично, A -> B
- это обозначение для forall _: A, B
. В отличие от and
, forall
не является константой, а является ключевым словом на языке Coq, поэтому вы не можете использовать Check forall.
для получения подписи. В этом случае вы можете обратиться к справочнику по продуктам и увидеть, что
Выражение forall ident : type, term
обозначает произведение
переменная ident
типа type
, в течение срока term
. Что касается абстракций,
forall
сопровождается списком переплетов и продуктами более
переменные эквивалентны итерации произведений с одной переменной.
Обратите внимание, что term
предназначен для типа.
То есть, A
и B
должны быть типами, что означает, что они могут быть элементами любой из вселенных Prop
, Set
или Type
.