我可以证明关于互归纳类型的“互归纳原理”吗?例如,流类型的协约原理的伪代码如下所示:
Π P : Stream A -> Type.
Π destruct_head : Π x : Stream A. P x -> Σ y : A. Path A (head x) y.
Π destruct_tail : Π x : Stream A. P x -> P (tail x).
(Σ y : Stream A. P y)
我的感觉是这是正确的,但我想不出在 Coq 或 Agda 中证明它的方法。