2017
DOI: 10.4204/eptcs.234.13
|View full text |Cite
|
Sign up to set email alerts
|

Proving Non-Deterministic Computations in Agda

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 approa… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2017
2017
2020
2020

Publication Types

Select...
3
1

Relationship

2
2

Authors

Journals

citations
Cited by 4 publications
(4 citation statements)
references
References 24 publications
0
4
0
Order By: Relevance
“…If there is a file proof-sortlength.agda, containing a proof for the above property ( [10] addresses techniques how to prove such properties in the dependently typed language Agda), CurryCheck considers this property as valid and does not check it. Moreover, it uses it to simplify other properties to be tested.…”
Section: Sortlength Xs = Length (Sort Xs) Length Xsmentioning
confidence: 99%
See 2 more Smart Citations
“…If there is a file proof-sortlength.agda, containing a proof for the above property ( [10] addresses techniques how to prove such properties in the dependently typed language Agda), CurryCheck considers this property as valid and does not check it. Moreover, it uses it to simplify other properties to be tested.…”
Section: Sortlength Xs = Length (Sort Xs) Length Xsmentioning
confidence: 99%
“…For instance, [27] discusses techniques to use the Isabelle/HOL proof assistant to verify purely functional properties inspired by QuickCheck. [10] describes a method to prove non-deterministic computations by translating Curry programs into Agda programs. Since these proofs can be verified by the Agda compiler, CurryCheck can test the validity of a given proof file by simply invoking the Agda compiler.…”
Section: Sortlength Xs = Length (Sort Xs) Length Xsmentioning
confidence: 99%
See 1 more Smart Citation
“…Functional logic languages [6] provide fast software prototyping and development, simple elegant solutions to otherwise complicated problems, a tight integration between specifications and code [7], and an ease of provability [8,16] unmatched by other programming paradigms. Not surprisingly, these advantages place heavy demands on their implementation.…”
Section: Introductionmentioning
confidence: 99%

ICurry

Antoy,
Hanus,
Jost
et al. 2019
Preprint
Self Cite