On note \[CTyp=\enscond{F\in\FTyp}{F\text{ n'est pas la t\^ete du membre gauche d'une r\`egle.}}\].
On note \[CTyp=\enscond{F\in\FTyp}{F\text{ n'est pas la t\^ete du membre gauche d'une r\`egle.}}\]
\end{defi}
\begin{nots}
On note \[\VTyp=\enscond{C\,\bar t}{C\in\CTyp, \valabs{\bar t}=\arity(C), \text{pour tout }i, t_i\in\SN}\]
\end{nots}
\begin{defi}[Ordre sur les types]
On se donne $\FTyp'\subseteq\FTyp$ tel que $\CTyp\subseteq\FTyp'$ et $\succ$ un pr\'e-ordre bien fond\'e sur les symboles de $\FTyp'$.
\end{defi}
\begin{defi}[Statut]
On munit chaque $F\in\FTyp'$ d'arit\'e $k$ d'un tuple d'entiers inf\'erieurs \`a $k$ : $(i_1,\dots,i_n)$.
\end{defi}
\begin{defi}[Ordre sur les types construits]
Soit $F\in\FTyp'$ de statut $(i_1,\dots,i_n)$ et $F'\in\FTyp'$ de statut $(j_1,\dots,j_{n'})$.
On a $F\,\bar t\>F'\,\bar u$ si l'une des 2 conditions suivantes sont v\'erifi\'ees :
On a $F\,\bar t\>F'\,\bar u$ si l'une des 3 conditions suivantes sont v\'erifi\'ees :
\begin{itemize}
\item$F\succ F'$,
\item$F\approx F'$ et $(t_{i_1},\dots,t_{i_n})\unrhd_{lex}(u_{j_1},\dots,u_{j_{n'}})$.
\item$F\approx F'$ et $(t_{i_1},\dots,t_{i_{\min(n,n')}})\rhd_{lex}(u_{j_1},\dots,u_{j_{\min(n,n')}})$,
\item$F\approx F'$, $(t_{i_1},\dots,t_{i_{\min(n,n')}})=(u_{j_1},\dots,u_{j_{\min(n,n')}})$ et si $F\in\CTyp$ alors $F'\in\CTyp$.
\end{itemize}
Remarquons que l'ordre strict est d\'efini comme l'ordre large, sauf que $\rhd$ remplace $\unrhd$ dans la derni\`ere condition.
Remarquons que l'ordre strict est d\'efini comme l'ordre large, sauf que ``$F\in\FTyp'\setminus\CTyp$ et $F'\in\CTyp$'' remplace ``si $F\in\CTyp$ alors $F'\in\CTyp$'' dans la derni\`ere condition.
\end{defi}
\remark{Si pour chaque classe d’équivalence pour $\approx$,
il existe un entier $n$ tel que les $st(C)$ sont de taille inférieure à $n$,
alors $>$ est bien fondé.}
\todo{On aimerait utiliser ce que l'on d\'efinit un peu plus tard dans cette d\'efinition, que ce soit $\rhd_{acc}$ pour pouvoir g\'erer un constructeur de type $\Pi(f:Nat\impli Ord).(\Pi(n:Nat).T\,(f\,n))\impli T\,(lim\,n)$, ou SCT pour ne pas se restreindre \`a un ordre lexicographique. (Attention ici, la pr\'esence de = sur la diagonale des boucles idempotentes ne suffit pas dans le cas o\`u l'on d\'esire un inf\'erieur large).}
\todo{On aimerait utiliser ce que l'on d\'efinit un peu plus tard dans cette d\'efinition, que ce soit $\rhd_{acc}$ pour pouvoir g\'erer un constructeur de type $(f:Nat\impli Ord)\impli((n:Nat)\impliT\,(f\,n))\impli T\,(lim\,n)$, ou SCT pour ne pas se restreindre \`a un ordre lexicographique. (Attention ici, la pr\'esence de = sur la diagonale des boucles idempotentes ne suffit pas dans le cas o\`u l'on d\'esire un inf\'erieur large).}
\begin{defi}[Types gel\'es]
Pour $F\in\FTyp'$, $\bar t$ des termes tels que $\valabs{\bar t}=\arity(F)$, on d\'efinit les deux grammaires :
\omit\rlap{$\overline{\interp{\Type}_X}$ est le point fixe de la suite croissante $\paren{\interp{\Type}^\alpha_X}_\alpha$}
\end{align*}
Soit $C\,\bar t\in\VTyp$ avec $C\in\CTyp$.
On d\'efinit alors $\bar C=\enscond{C'\in\CTyp}{C'\approx C}=(C_1,\dots,C_n)$, o\`u l'on omet la conversion entre ensemble et tuple pour des questions de lisibilit\'e.