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

Tactics for Proving Separation Logic Assertion in Coq Proof Assistant

Published: 25 May 2020 Publication History

Abstract

The verification of the correctness of large programs, particularly operating systems is an unmanageable but important endeavor. we are interested in verifying C programs with formal methods, the logic is separation logic, a Hoare-style program logic. In this paper, we present a simple extension of the syntax of separation logic assertion on existing verification system in Coq proof assistant to make assertions more versatile and flexible to describe the state of programs. Moreover, we develop several tactics for proving some related assertions to reduce manual proof as much as possible and improve the efficiency of verification.

References

[1]
A. Chlipala (2013). The Bedrock structured programming system: combining generative metaprogramming and Hoare logic in an extensible program verifier. In ICFP, 391--402.
[2]
A. McCreigh (2009). Practical tactics for separation logic. In Proceedings of Theorem Proving in Higher Order Logics (TPHOLs'09), 343--358.
[3]
A. W. Appel (2011). Verismall: Verified Smallfoot Shape Analysis. In Proceedings of Int'l Conf. on Certified Programs and Proofs (CPP'11), 231--246.
[4]
A. W. Appel, R. Dockins, A. Hobor, L. Beringer, J. Dodds, G. Stewart, S. Blazy and X. Leroy. 2014. Program Logics for Certified Compilers. University of Cambridge Press, New York.
[5]
C. A. R. Hoare (1969). An Axiomatic Basis for Computer Programming. Communications of the ACM, 12(10),576--580.
[6]
D. Delahaye (2000). A tactic Language for the System Coq. In Proceeding softhe 7th International Conference on Logic for Programming and Automated Reasoning (LPAP'00), 85--95.
[7]
H. Tuch, G. Klein, and M. Norrish (2007). Types, butes, and separation logic. In POPL, 97--108.
[8]
I. Sergey, A. Nanevski, and A. Banerjee (2015). Mechanized verification of fine-grained concurrent programs. In PLDI, 77--87.
[9]
J. B. Jensen, N. Benton, and A. Kennedy (2013). High-level separation logic for low-level code. In POPL, 301--314.
[10]
J. Bengtson, J. B. Jensen, and L. Birkedal (2012). Charge-A Framework for Higher-order Separation Logic in Coq. In Proceedings of Interactive Theorem Proving (ITP'12), 315--331.
[11]
J. C. Reynolds (2002). Separation logic: A logic for shared mutable data structures. In Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science (LICS'02), 55--74.
[12]
J. Cao, M. Fu, and X. Feng (2015). Practical Tactics for Verifying C Programs in Coq. In: CPP, 97--108.
[13]
J. Hill, S. Tilley (2010). Creating Safety Requirement Traceability for Assuring and Recertifying Legacy Safety-Critical Systems[M] IEEE, 297--302.
[14]
P. W. O'Hearn, J. C. Reynolds, and H. Yang (2001). Local reasoning about programs that alter data structures. In CSL (LNCS), Vol. 2142. 1--18.
[15]
Q. Cao, L. Beringer, S. Gruetter, J. Dodds and A. W. Appel (2018). VST-Floyd: A Separation Logic Tool to Verify Correctness of C Programs. Journal of Automated Reasoning, 1--63
[16]
R. Krebbers (2015). The C Standard formalized in Coq. Ph. D. Dissertation. Radboud University.
[17]
The coq development team: The coq proof assistant. http://coq.inria.fr.
[18]
X. Leroy (2006). Formal certification of a complier back-end, or: programming a complier with a proof assistant. In Proceedings of the 33th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 42--54.

Index Terms

  1. Tactics for Proving Separation Logic Assertion in Coq Proof Assistant

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ICVISP 2019: Proceedings of the 3rd International Conference on Vision, Image and Signal Processing
    August 2019
    584 pages
    ISBN:9781450376259
    DOI:10.1145/3387168
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 May 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Automated Reasoning
    2. Coq
    3. Interactive Theorem Proving
    4. Program Verification
    5. Separation Logic

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    ICVISP 2019

    Acceptance Rates

    ICVISP 2019 Paper Acceptance Rate 126 of 277 submissions, 45%;
    Overall Acceptance Rate 186 of 424 submissions, 44%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 81
      Total Downloads
    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 12 Feb 2025

    Other Metrics

    Citations

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media