귀납적 유형의 선언 순서가 중요한지 궁금합니다.
예를 들어 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
가 없습니다.)