2

How can we prove Stream A = νX. A × X is isomorphic to Nat -> A = (μX. 1 + X) -> A ?

In programming sense, Stream A can be seen as a function from Nat to A, and I can write isomorphisms between them. But how can this be proven mathematically?

I would also like to know the conversion mechanism from μ to ν, and vice versa.

inamiy
  • 121
  • 3
  • Maybe you can progress if you translate the types to their church encoding? Then you will only have universal quantification, functions, sums and products. You can then maybe use the Yoneda lemma to progress. μX. T = forall Y. ((\X. T) Y -> Y) -> Y and νX. T = forall Y. (Y -> (\X. T) Y) -> (\X. T) Y, if I'm not mistaken (if X only occurs in positive positions). – Labbekak Jul 31 '20 at 07:34

0 Answers0