Я прочитал первые 3 главы руководства по бережливому производству и уже сделал несколько доказательств в логике высказываний.
Теперь я пытаюсь немного вернуться назад и задавать себе глупые вопросы.
Я так понимаю:
- Термины могут иметь типы:
constant A : Type
.A
- это термин,Type
- это типA
. - Термины могут стать типами:
constant a : A
. - Тип термина может зависеть от типа другого термина:
constant B : A -> Type
, который является сахаром дляconstant B' : Π (a : A), Type
Но это понимание явно неверно, поскольку в этом коде не выполняется проверка типов:
constant A : Type
constant a : A
constant B : A -> Type
constant B' : Π (a : A), Type
constant C : Π (b : B), Type
constant C' : Π (B : A), (Π (b : B), Type)
constant C'' : B -> Type
Все строки, начинающиеся с constant C
, то есть строки 9, 11 и 13, вызывают ошибку error: type expected at B
Почему? Я подозреваю, что не все термины могут стать типами. Я подозреваю, что термины, типы которых зависят от других типов, не могут стать типами. Почему?