vix.ing · top · new · best · stats · spec

Proving Non-Deterministic Computations in Agda

2016/12/30 by Sergio Antoy, Michael Hanus, Steven Libby
Computer Science · #Combinatory logic #Correctness #Curry #Formal Methods in Verification #Functional programming #Intersection (aeronautics) #Logic, Reasoning, and Knowledge #Logic, programming, and type systems #Rewriting #Semantics (computer science) #Set (abstract data type) #cs.PL #cs.SE

paper · pdf · doi:10.4204/eptcs.234.13

published as EPTCS 234, 2017, pp. 180-195 · In Proceedings WLP'15/'16/WFLP'16, arXiv:1701.00148

openalex publication_date 2016/12/30 · arxiv created 2017/01/03 · arxiv updated 2017/01/04 · openalex created_date 2017/01/06 · openalex updated_date 2026/08/06

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.

Citations