Je me demandais si l'ordre des déclarations de type inductif pouvait avoir de l'importance.
Par exemple, dans Coq, vous pouvez définir Natsoit par:
Inductive Nat :=
| O : Nat
| S : Nat -> Nat.
ou
Inductive Nat :=
| S : Nat -> Nat
| O : Nat.
Cela changera peut-être l'ordre des paramètres dans l'éliminateur généré automatiquement, mais ce n'est pas un gros problème.
Je me demande s'il est possible d'écrire une déclaration comme
Inductive typewhereordermatters :=
| cons1 : type1
| cons2 : type2.
où type2est un type dépendant, selon cons1? (et dans ce cas, écrire les déclarations dans l'autre ordre n'aurait aucun sens, car type2se référer à cons1ce qui n'existe pas encore).