コンストラクターとは何か、およびその仕組みの原則を理解するのに苦労しています。
たとえば、Coq では、自然数を次のように定義するように教えられています。
Inductive nat : Type :=
| O : nat
| S : nat -> nat.
それはコンストラクターだと言われていますが、それSは正確にはどういう意味ですか?
私なら:
Check (S (S (S (S O)))).
4であり、タイプであることがわかりnatます。
これはどのように機能し、Coq はそれが を(S (S (S (S O))))表していることをどのように認識し4ますか?
これに対する答えは、Coq の非常に巧妙なバックグラウンド マジックだと思います。