PLSEJan 3, 2017

Proving Non-Deterministic Computations in Agda

arXiv:1701.00636v110 citations
Originality Synthesis-oriented
AI Analysis

This work addresses program verification for functional logic programming, but it is incremental as it applies existing methods to a new domain.

The paper tackled proving properties of Curry programs in Agda by modeling non-deterministic functions with two approaches: eliminating non-determinism by considering all possible values and encoding each non-deterministic choice, and found the functional logic paradigm did not add significant difficulty.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes