Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1596627.1596634acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Who: a verifier for effectful higher-order programs

Published: 30 August 2009 Publication History

Abstract

We present Who, a tool for verifying effectful higher-order functions. It features Effect polymorphism, higher-order logic and the possibility to reason about state in the logic, which enable highly modular specifications of generic code. Several small examples and a larger case study demonstrate its usefulness. The Who tool is intended to be used as an intermediate language for verification tools targeting ML-like programming languages.

References

[1]
Mike Barnett, K. Rustan M. Leino, and Wolfram Schulte. The Spec# Programming System: An Overview. In Construction and Analysis of Safe, Secure, and Interoperable Smart Devices (CASSIS'04), volume 3362 of Lecture Notes in Computer Science, pages 49--69. Springer, 2004.
[2]
Mike Barnett, Robert DeLine, Bart Jacobs, Bor-Yuh Evan Chang, and K. Rustan M. Leino. Boogie: A Modular Reusable Verifier for Object-Oriented Programs. In Frank S. de Boer, Marcello M. Bonsangue, Susanne Graf, and Willem-Paul de Roever, editors, Formal Methods for Components and Objects: 4th International Symposium, volume 4111 of LNCS, pages 364--387, 2005.
[3]
Martin Berger, Kohei Honda, and Nobuko Yoshida. A logical analysis of aliasing in imperative higher-order functions. In ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, pages 280--293, New York, NY, USA, 2005. ACM.
[4]
Gérard Boudol. Fair cooperative multithreading or typing termination in a higher-order concurrent imperative language. In Proceedings, 18th International Conference on Concurrency Theory, 2007.
[5]
Arthur Charguéraud and François Pottier. Functional translation of a calculus of capabilities. In ACM International Conference on Functional Programming (ICFP), pages 213--224, September 2008.
[6]
J.-C. Filliâtre and F. Pottier. Producing All Ideals of a Forest, Functionally. Journal of Functional Programming, 13(5):945--956, September 2003.
[7]
Jean-Christophe Filliâtre. Verification of Non-Functional Programs using Interpretations in Type Theory. Journal of Functional Programming, 13(4):709--745, July 2003.
[8]
Jean-Christophe Filliâtre and Claude Marché. The Why/Krakatoa/Caduceus platform for deductive program verification. In Werner Damm and Holger Hermanns, editors, 19th International Conference on Computer Aided Verification, volume 4590 of Lecture Notes in Computer Science, pages 173--177, Berlin, Germany, July 2007. Springer.
[9]
Kohei Honda, Nobuko Yoshida, and Martin Berger. An observationally complete program logic for imperative higher-order functions. In In Proc. LICS'05, pages 270--279, 2005.
[10]
Johannes Kanig and Jean-Christophe Filliâtre. Proof of higher-order programs with effect polymorphism. Technical report, march 2009. URL http://www.lri.fr/~kanig/files/who-theory.pdf.
[11]
Donald E. Knuth. The Art of Computer Programming, volume 4, Pre-Fascicle 2a: A Draft of Section 7.2.1.1: Generating all n-tuples. Addison-Wesley, September 2001. Circulated electronically. http://www-cs-staff.stanford.edu/~knuth/news.html.
[12]
Yasunori Koda and Frank Ruskey. A Gray code for the ideals of a forest poset. Journal of Algorithms, 15(2):324--340, September 1993. http://csr.csc.uvic.ca/home/fruskey/Publications/ForestIdeals.ps.
[13]
P.J. Landin. The mechanical evaluation of expressions. The Computer Journal, 6(4):308--320, 1964.

Cited By

View all
  • (2021)Modular specification and verification of closures in RustProceedings of the ACM on Programming Languages10.1145/34855225:OOPSLA(1-29)Online publication date: 15-Oct-2021
  • (2018)Practical Methods for Reasoning About Java 8’s Functional Programming FeaturesVerified Software. Theories, Tools, and Experiments10.1007/978-3-030-03592-1_15(267-278)Online publication date: 18-Jul-2018
  • (2013)Automating theorem proving with SMTProceedings of the 4th international conference on Interactive Theorem Proving10.1007/978-3-642-39634-2_2(2-16)Online publication date: 22-Jul-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ML '09: Proceedings of the 2009 ACM SIGPLAN workshop on ML
August 2009
76 pages
ISBN:9781605585093
DOI:10.1145/1596627
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 August 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. higher-order programs
  2. hoare logic

Qualifiers

  • Research-article

Conference

ICFP '09
Sponsor:

Acceptance Rates

ML '09 Paper Acceptance Rate 6 of 11 submissions, 55%;
Overall Acceptance Rate 6 of 11 submissions, 55%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Modular specification and verification of closures in RustProceedings of the ACM on Programming Languages10.1145/34855225:OOPSLA(1-29)Online publication date: 15-Oct-2021
  • (2018)Practical Methods for Reasoning About Java 8’s Functional Programming FeaturesVerified Software. Theories, Tools, and Experiments10.1007/978-3-030-03592-1_15(267-278)Online publication date: 18-Jul-2018
  • (2013)Automating theorem proving with SMTProceedings of the 4th international conference on Interactive Theorem Proving10.1007/978-3-642-39634-2_2(2-16)Online publication date: 22-Jul-2013
  • (2011)Reverse hoare logicProceedings of the 9th international conference on Software engineering and formal methods10.5555/2075679.2075693(155-171)Online publication date: 14-Nov-2011
  • (2011)Characteristic formulae for the verification of imperative programsProceedings of the 16th ACM SIGPLAN international conference on Functional programming10.1145/2034773.2034828(418-430)Online publication date: 19-Sep-2011
  • (2011)Characteristic formulae for the verification of imperative programsACM SIGPLAN Notices10.1145/2034574.203482846:9(418-430)Online publication date: 19-Sep-2011
  • (2010)Specifying imperative ML-like programs using dynamic logicProceedings of the 2010 international conference on Formal verification of object-oriented software10.5555/1949303.1949312(122-137)Online publication date: 28-Jun-2010
  • (2010)Reasoning about function objectsProceedings of the 48th international conference on Objects, models, components, patterns10.5555/1894386.1894391(79-96)Online publication date: 28-Jun-2010
  • (2010)Program verification through characteristic formulaeACM SIGPLAN Notices10.1145/1932681.186359045:9(321-332)Online publication date: 27-Sep-2010
  • (2010)Specifying generic Java programsProceedings of the Tenth Workshop on Language Descriptions, Tools and Applications10.1145/1868281.1868289(1-8)Online publication date: 28-Mar-2010
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media