Je cherche à construire des notations pour les grands ordinaux dénombrables d'une «manière naturelle». Par "voie naturelle", je veux dire que, étant donné un type de données inductif X, cette égalité devrait être l'égalité récursive habituelle (la même que celle deriving Eq
de Haskell produirait) et l'ordre devrait être l'ordre lexicographique récursif habituel (la même que celle deriving Ord
de Haskell produirait ), et il existe un prédicat décidable qui détermine si un membre de X est une notation ordinale valide ou non.
Par exemple, des ordinaux inférieurs à ε 0 peuvent être représentés par des listes triées héréditairement finies et satisfont à ces exigences. Définissez X comme μα. μβ. 1 + α × β, alias listes héréditairement finies. Définissez isValid
pour vérifier que X est trié et que tous les membres de X le sont isValid
. Les membres valides de X sont tous des ordinaux inférieurs à ε 0 dans l'ordre lexicographique habituel.
Je suppose que μα 0. … Μα n . 1 + α 0 ×… × α n peut être utilisé pour définir des ordinaux inférieurs à φ n + 1 (0), où φ est la fonction Veblen, d'une manière similaire.
Comme vous pouvez le voir, je manque de quantificateurs μ à φ ω (0). Puis-je créer des notations ordinales plus grandes répondant à mes exigences? J'espérais aller jusqu'à Γ 0 . Puis-je obtenir des ordinaux plus gros si je laisse tomber mon exigence de décidabilité sur mon prédicat de validité?
compare
en coq.inria.fr/pylons/contribs/files/Cantor/v8.3/… Dans ce même fichier, il y a un lemme nf_intro
qui pourrait caractériser la validité.
Inductive lt : T2 -> T2 -> Prop
ne ressemble pas à un ordre lexicographique pour moi.