帰納的な型の宣言の順序が問題になるかどうか疑問に思っていました。
たとえばCoqでは、次のNatいずれかを定義できます。
Inductive Nat :=
| O : Nat
| S : Nat -> Nat.
または
Inductive Nat :=
| S : Nat -> Nat
| O : Nat.
これはおそらく、自動的に生成されたエリミネーターのパラメーターの順序を変更しますが、それは大した問題ではありません。
私が思っているのは、次のような宣言を書くことが可能かどうかです
Inductive typewhereordermatters :=
| cons1 : type1
| cons2 : type2.
type2依存型はどこにありcons1ますか?(そしてこの場合、まだ存在しないtype2ものを参照しているため、宣言を他の順序で記述しても意味cons1がありません)。