Proving Non-Deterministic Computations in Agda
Sergio Antoy (Portland State University), Michael Hanus (CAU Kiel),, Steven Libby (Portland State University)

TL;DR
This paper explores proving properties of Curry programs in Agda, focusing on functional correctness and modeling non-determinism through two different approaches, demonstrating the feasibility of formal verification in functional logic paradigms.
Contribution
It introduces two methods for modeling non-determinism in Agda and shows that proving properties of Curry programs is manageable within this framework.
Findings
Both approaches successfully model non-determinism in Agda.
Proving properties of Curry programs is feasible without added complexity.
The methods enable formal verification of non-deterministic functional logic programs.
Abstract
We investigate proving properties of Curry programs using Agda. First, we address the functional correctness of Curry functions that, apart from some syntactic and semantic differences, are in the intersection of the two languages. Second, we use Agda to model non-deterministic functions with two distinct and competitive approaches incorporating the non-determinism. The first approach eliminates non-determinism by considering the set of all non-deterministic values produced by an application. The second approach encodes every non-deterministic choice that the application could perform. We consider our initial experiment a success. Although proving properties of programs is a notoriously difficult task, the functional logic paradigm does not seem to add any significant layer of difficulty or complexity to the task.
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.
