list_rec
функция имеет вид:Когда первый вход в `list_rec` не является постоянной функцией?
list_rec
: forall (A : Type) (P : list A -> Set),
P nil ->
(forall (a : A) (l : list A), P l -> P (a :: l)%list) ->
forall l : list A, P l
Во всех примерах, которые я придумал, P
только постоянная функция, которая игнорирует список ввода и возвращает тот же тип, независимо от того, что. Например, P
может быть fun _ : list A => nat
или fun _ : list A => list B
. Каковы некоторые варианты использования вывода P
в зависимости от ввода? Почему тип P
list A -> Set
вместо Set
?