Tôi đã tự hỏi nếu thứ tự khai báo của một loại quy nạp có thể quan trọng.
Ví dụ: trong Coq, bạn có thể xác định Nat
bằng cách:
Inductive Nat :=
| O : Nat
| S : Nat -> Nat.
hoặc là
Inductive Nat :=
| S : Nat -> Nat
| O : Nat.
Điều này có thể sẽ thay đổi thứ tự của các tham số trong trình loại bỏ được tạo tự động, nhưng đó không phải là vấn đề lớn.
Điều tôi băn khoăn là liệu có thể viết một tuyên bố như
Inductive typewhereordermatters :=
| cons1 : type1
| cons2 : type2.
nơi type2
là một loại phụ thuộc, tùy thuộc vào cons1
? (và trong trường hợp này, viết các khai báo theo thứ tự khác sẽ không có ý nghĩa gì, bởi vì type2
sẽ đề cập đến cons1
cái chưa tồn tại).