1
Est-il possible de définir une notation ou une définition sur un univers comme variable? VoiciCoq: Notation ou Définition sur un univers en tant que variable
Universe x.
Notation "/ x" := [email protected]{x}.
résultats dans la gauche côté x
étant une variable et le côté droit x
une constante:
Check /u. (*[email protected]{x} : [email protected]{x+1}*)
En effet, merci. Fait intéressant, la même chose ne fonctionne pas avec les notations: 'Notation" type @ {i} ": = Type @ {i}. Fail Vérifiez le type @ {Set}. (* Erreur: univers Présence non déclarée: i *) '(probablement en raison de la transparence, comme' échec Vérifier le type @ {i} .' donne la même erreur) – jaam
La façon de le faire est 'Set Universe Polymorphisme. Type de notation: = Type. Vérifiez le type @ {_}. 'Je ne suis pas sûr de ce que vous entendez par transparence. Notez que les variables dans les notations sont liées dans un espace de noms complètement séparé des univers. Vous pouvez faire une demande de fonctionnalité pour quelque chose comme 'i univers', comme dans 'notation "@ type {i}": = @ Type {i} (univers i) .' –
' Set Universe Polymorphism.' a été préfixée à mon Exemple. 'Set Universe Polymorphisme. Type de notation: = Type. Vérifiez le type @ {_}. 'Donne' Erreur de syntaxe: [constr: universe_level] attendu après '@ {' (dans [instance]). 'Substituer la vérification w /' Vérifier le type @ {Set} .' Le type de notation ne peut pas avoir d'instance d'univers, sa tête développée ne commence pas par une référence. Par "transparence", je voulais dire un "dépliage abrupt" de "Type @ {i}". PS. Une définition suffit pour moi ici - juste mentionné que cela ne fonctionne pas w/notations. (J'utilise Coq 8.6.1) – jaam