Weak mu-equality is decidable
In this paper we consider the set of mu-types, an extension of the set of simple types freely generated from a set of atomic types and the type constructor ->, by a new operator mu, to explicitly denote solutions of recursive equations like A = A -> beta. We show that this so-called weak mu-equality for mu-types is decidable by defining a derivation system for weak mu-equality based on standard reduction for mu-types such that the number of nodes in a derivation tree for A = B is bounded as a function of A, B. We give two proofs. One for decidability of = for alpha-equivalence classes of mu-types and one for = for mu-types theselves. Both proofs are straightforward and elementary.
💡 Research Summary
The paper addresses the decidability of “weak µ‑equality” for µ‑types, an extension of the simply‑typed λ‑calculus with a recursive type constructor µ. A µ‑type is built from atomic types, the arrow constructor (→), and the binding form µα.A, where α may occur freely in A. Weak µ‑equality (denoted =₍μ₎) holds between two types A and B precisely when they have a common standard reduct, i.e., there exists a type C such that A →*ₛₜ C and B →*ₛₜ C, where →*ₛₜ is the reflexive‑transitive closure of the standard µ‑reduction relation.
The authors first observe that earlier proofs (Cardone‑Coppola, Endrullis‑Grabmayr‑Klop‑van Oostrom) either relied on a flawed treatment of α‑conversion or employed heavy machinery from regular language theory. Their goal is to give a simpler, elementary proof that works directly on the syntax of µ‑types.
Annotated Types and the Reduction →₍μ′₎
To control the interaction between α‑conversion and µ‑reduction, the paper introduces annotated µ‑types T₍μ′₎, written as (µα₁)…(µαₙ)A. The sequence of bound variables is required to be pairwise distinct and each αᵢ must appear freely in A. This “freezing” of the outermost µ‑bindings makes subsequent reductions well‑behaved: the bound variables cannot be captured inadvertently during substitution.
A new reduction relation →₍μ′₎ is defined on T₍μ′₎:
- Freezing step: (µ
α) µβ.A →₍μ′₎ (µαβ) A, provided β ∈ FV(A). - Unfolding step: (µ
α) µβ.A →₍μ′₎ (µα) A
Comments & Academic Discussion
Loading comments...
Leave a Comment