Je transcris en Coq les définitions (informelles) du 2008 PHOAS paper, section 2.1.PHOAS dans Coq: incompatibilité de type
Inductive tm' {V : Set} : Set :=
| Var : V -> tm'
| App : tm' -> tm' -> tm'
| Abs : (V -> tm') -> tm'.
Definition tm := forall X, @tm' X.
Fail Example id : tm := Abs Var.
Sortie:
The term "Abs Var" has type "tm'" while it is expected to have type "tm".
C'est plutôt désagréable. Comment puis-je faire ce type de code-vérifier?
Veuillez utiliser le lien modifier de votre question pour ajouter des informations supplémentaires. Le bouton Post-réponse ne doit être utilisé que pour les réponses complètes à la question. - [De l'examen] (/ review/low-quality-posts/16533671) –
Comme vous pouvez le voir sur la réponse de Jason Gross, c'est en effet une réponse complète. –