By the same authors

Speculate: discovering conditional equations and inequalities about black-box functions by reasoning from test results

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Full text download(s)

Published copy (DOI)



Publication details

Title of host publicationProceedings of the ACM SIGPLAN Haskell Symposium 2017
DatePublished - 7 Sep 2017
Number of pages12
Original languageEnglish


This paper presents Speculate, a tool that automatically conjectures laws involving conditional equations and inequalities about Haskell functions. Speculate enumerates expressions involving a given collection of Haskell functions, testing to separate those expressions into apparent equivalence classes. Expressions in the same equivalence class are used to conjecture equations. Representative expressions of different equivalence classes are used to conjecture conditional equations and inequalities. Speculate uses lightweight equational reasoning based on term rewriting to discard redundant laws and to avoid needless testing. Several applications demonstrate the effectiveness of Speculate.

Bibliographical note

© 2017 Copyright held by the owner/author(s). This is an author-produced version of the published paper. Uploaded in accordance with the publisher’s self-archiving policy. Further copying may not be permitted; contact the publisher for details

    Research areas

  • formal specification, property-based testing, Haskell

Discover related content

Find related publications, people, projects, datasets and more using interactive charts.

View graph of relations