Наличие отношения между предикатом в Prop
и одним в bool
означает, что рассматриваемое свойство является разрешимым . По сути, у вас есть функция, которая решает, является ли свойство true
или false
.
. Это не относится ко всем предложениям (если вы не предполагаете какой-то принцип, который влечет за собой это), но действительно для <?
и <
. Это отношение обычно кристаллизуется благодаря предикату reflect
.
Inductive reflect (P : Prop) : bool -> Set :=
| ReflectT : P -> reflect P true
| ReflectF : ~ P -> reflect P false.
В вашем случае у вас есть
Nat.ltb_spec0: forall x y : nat, reflect (x < y) (x <? y)
Я призываю вас посмотреть его.