The simply-typed, call-by-value language, RML, may be viewed as a canonical restriction of Standard ML to ground-type references, augmented by a "bad variable" construct in the sense of Reynolds. By a short type, we mean a type of order at most 2 and arity at most 1. We consider the O-strict fragment of (finitary) RML, RMLO-Str, consisting of terms-in-context x1 : θ1, ..., xn : θn ⊢ M : θ such that θ is short, and every argument type of every θi is short. RMLO-Str is surprisingly expressive; it includes several instances of (in)equivalence in the literature that are challenging to prove using methods based on (state-based) logical relations. We show that it is decidable whether a given pair of RMLO-Str terms-in-context is observationally equivalent. Using the fully abstract game semantics of RML, our algorithm reduces the problem to the language equivalence of visibly pushdown automata. When restricted to terms in canonical form, the problem is EXPTIME-complete.
['David Hopkins', 'Andrzej S. Murawski', 'C.-H. Luke Ong']
A fragment of ML decidable by visibly pushdown automata