The Size-Change Principle for Mixed Inductive and Coinductive types
Pierre Hyvernat

TL;DR
This paper adapts the size-change principle to verify totality in recursive functions involving mixed inductive and coinductive types, ensuring correctness in languages like ML and Haskell.
Contribution
It introduces a novel adaptation of the size-change principle to handle nested inductive and coinductive types for totality checking.
Findings
The adapted size-change principle correctly verifies totality in mixed types.
Naive application of the size-change principle is unsound for nested types.
The method ensures correctness with respect to (co)inductive types.
Abstract
This paper shows 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 with inductive and coinductive types. Naively using the size-change principle to check productivity and termination is straightforward but unsound when inductive and coinductive types are nested. We can however adapt the size-change principle to check ``totality'', which corresponds exactly to correctness with respect to the corresponding (co)inductive type.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Computability, Logic, AI Algorithms · Model-Driven Software Engineering Techniques
