J'essaie d'utiliser coq comme langage de programmation avec un type dépendant. J'ai créé le petit programme suivant:Impossible d'écrire un objet de preuve implicite dans coq
Inductive Good : list nat -> Set :=
| GoodNonEmpty : forall h t, Good (h :: t).
Definition get_first(l : list nat)(good : Good l) : nat :=
match l with
| h :: t => h
| nil =>
match good with
end
end.
I défini un type de liste non vide et crée une fonction qui obtient le premier élément d'une telle liste fournie il y a une preuve que ce n'est pas vide. Je gère bien le cas où les articles de tête se composent de deux éléments, mais je ne peux pas gérer le cas impossible de la liste vide. Comment puis-je faire ça en coq?