3
私は次のコードスニペットを持っています。ユニバースの矛盾(厳密な正の制限のため?)
Set Implicit Arguments.
Inductive Simple (A: Type) := simple : Simple A.
Inductive Wrap (A: Type) :=
| wrap : A -> Wrap A
| funWrap : forall X, Simple X -> (X -> Wrap A) -> Wrap A.
Definition anotherWrap A : Wrap A :=
funWrap (simple A) (fun x => wrap x).
Fail Definition specialWrap1 A : Wrap (Wrap A) :=
funWrap (simple (Wrap A)) (fun x => wrap x).
Fail Definition specialWrap A : Wrap A :=
funWrap (simple (Wrap A)) (fun x => x).
私が最初に考えたので、誘導タイプの厳密陽性制限の、funWrap
でX
はWrap A
でインスタンス化することができないということでした。これが当てはまるのでしょうか、あるいは矛盾の理由がありますか(そして、機能を定義する別のアプローチかもしれませんspecialWrap
)?
編集:2番目の定義の説明は、選択した回答のコメントに記載されています。
2つ目の定義がうまくいかない理由を(宇宙の多形性拡張でも)理解したと付け加えたいと思います。 [最近の論文、Timany and Jacobs](https://lirias.kuleuven.be/bitstream/123456789/513812/2/CIT.pdf)に記載されているように、Coqの多形性の宇宙拡張は、誘導性の累積性をまだサポートしていませんタイプ。上記の私の定義は小さなアンサンブルの例に似ています。 – ichistmeinname