7

In "Types and Programming Languages", Pierce gives a translation from recursive types ($\mu$ types) to types expressed as regular trees: possibly infinite trees, but with finitely many distinct subtrees.

I'm wondering, is the converse true? Can every regular tree type be expressed using the $\mu$ fixpoint notation? It seems obvious that this can be done if you have mutually recursive types: you have a type for each subtree of the regular tree type. But can it be done with singly recursive types?

Guy Coder
  • 5,181
  • 2
  • 30
  • 65
Joey Eremondi
  • 30,277
  • 5
  • 67
  • 122

1 Answers1

7

You can reduce mutual recursion to a single recursion, see Bekic's Theorem, see e.g. Section 10.1 of Winskel's (1), where Bekic is worked out for programs rather than types. Note however that the details depend on the exact nature of the formal system in question. See A. Bauer's answer in (2) for the case of types.


  1. G. Winskel, The Formal Semantics of Programming Languages.

  2. CSTheory Stackexchange, Can Isorecursive types capture mutually recursive data types?

Andrej Bauer
  • 31,657
  • 1
  • 75
  • 121
Martin Berger
  • 8,358
  • 28
  • 47