The Size-Change Principle for Mixed Inductive and Coinductive types

01/23/2019
by   Pierre Hyvernat, et al.
0

This paper describes how to use Lee, Jones and Ben Amram's size-change principle to check correctness of arbitrary recursive definitions in an ML / Haskell like programming language. The main point is that the size-change principle isn't only used to check termination, but also productivity for infinite objects. The main point is that the resulting principle is sound even in the presence of arbitrary nestings of inductive and coinductive types. A small prototype has been implemented and gives a practical argument in favor of this principle.This work relies on a characterization of least and greatest fixed points as sets of winning strategies for parity games that was developed by L. Santocanale in his work on circular proofs.Half of the paper is devoted to the proof of correctness of the criterion, which relies on an untyped extension of the language's denotational semantics to a domain of values extended with non-deterministic sums. We can recast all the syntactical constructions in this domain and check they are semantically sound.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset