Conference paper Open Access

Certifying Graph-Manipulating C Programs via Localizations within Data Structures

Wang, Shengyi; Cao, Qinxiang; Mohan, Anshuman; Hobor, Aquinas


DCAT Export

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:adms="http://www.w3.org/ns/adms#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:dctype="http://purl.org/dc/dcmitype/" xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:duv="http://www.w3.org/ns/duv#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:frapo="http://purl.org/cerif/frapo/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:gsp="http://www.opengis.net/ont/geosparql#" xmlns:locn="http://www.w3.org/ns/locn#" xmlns:org="http://www.w3.org/ns/org#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#">
  <rdf:Description rdf:about="https://doi.org/10.5281/zenodo.3368779">
    <rdf:type rdf:resource="http://www.w3.org/ns/dcat#Dataset"/>
    <dct:type rdf:resource="http://purl.org/dc/dcmitype/Text"/>
    <dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://doi.org/10.5281/zenodo.3368779</dct:identifier>
    <foaf:page rdf:resource="https://doi.org/10.5281/zenodo.3368779"/>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Wang, Shengyi</foaf:name>
        <foaf:givenName>Shengyi</foaf:givenName>
        <foaf:familyName>Wang</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>National University of Singapore</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Cao, Qinxiang</foaf:name>
        <foaf:givenName>Qinxiang</foaf:givenName>
        <foaf:familyName>Cao</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>Shanghai Jiao Tong University</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Mohan, Anshuman</foaf:name>
        <foaf:givenName>Anshuman</foaf:givenName>
        <foaf:familyName>Mohan</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>National University of Singapore</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:creator>
      <rdf:Description>
        <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
        <foaf:name>Hobor, Aquinas</foaf:name>
        <foaf:givenName>Aquinas</foaf:givenName>
        <foaf:familyName>Hobor</foaf:familyName>
        <org:memberOf>
          <foaf:Organization>
            <foaf:name>National University of Singapore</foaf:name>
          </foaf:Organization>
        </org:memberOf>
      </rdf:Description>
    </dct:creator>
    <dct:title>Certifying Graph-Manipulating C Programs via Localizations within Data Structures</dct:title>
    <dct:publisher>
      <foaf:Agent>
        <foaf:name>Zenodo</foaf:name>
      </foaf:Agent>
    </dct:publisher>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#gYear">2019</dct:issued>
    <dcat:keyword>Separation logic</dcat:keyword>
    <dcat:keyword>Graph-manipulating programs</dcat:keyword>
    <dcat:keyword>Coq</dcat:keyword>
    <dcat:keyword>CompCert</dcat:keyword>
    <dcat:keyword>VST</dcat:keyword>
    <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2019-08-15</dct:issued>
    <dct:language rdf:resource="http://publications.europa.eu/resource/authority/language/ENG"/>
    <owl:sameAs rdf:resource="https://zenodo.org/record/3368779"/>
    <adms:identifier>
      <adms:Identifier>
        <skos:notation rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://zenodo.org/record/3368779</skos:notation>
        <adms:schemeAgency>url</adms:schemeAgency>
      </adms:Identifier>
    </adms:identifier>
    <dct:isVersionOf rdf:resource="https://doi.org/10.5281/zenodo.3368778"/>
    <owl:versionInfo>0.1</owl:versionInfo>
    <dct:description>&lt;p&gt;We develop powerful and general techniques to mechanically verify realistic programs that manipulate heap- represented graphs. These graphs can exhibit well-known organization principles, such as being a directed acyclic graph or a disjoint-forest; alternatively, these graphs can be totally unstructured. The common thread for such structures is that they exhibit deep intrinsic sharing and can be expressed using the language of graph theory. We construct a modular and general setup for reasoning about abstract mathematical graphs and use separation logic to define how such abstract graphs are represented concretely in the heap. We develop a Localize rule that enables modular reasoning about such programs, and show how this rule can support existential quantifiers in postconditions and smoothly handle modified program variables. We demonstrate the generality and power of our techniques by integrating them into the Verified Software Toolchain and certifying the correctness of six graph-manipulating programs written in CompCert C, including a 400-line generational garbage collector for the CertiCoq project. While doing so, we identify two places where the semantics of C is too weak to define generational garbage collectors of the sort used in the OCaml runtime. Our proofs are entirely machine-checked in Coq.&lt;/p&gt;</dct:description>
    <dct:description>As submitted to the OOPSLA '19 Artifact Evaluation Committee</dct:description>
    <dct:accessRights rdf:resource="http://publications.europa.eu/resource/authority/access-right/PUBLIC"/>
    <dct:accessRights>
      <dct:RightsStatement rdf:about="info:eu-repo/semantics/openAccess">
        <rdfs:label>Open Access</rdfs:label>
      </dct:RightsStatement>
    </dct:accessRights>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.3368779"/>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL>https://doi.org/10.5281/zenodo.3368779</dcat:accessURL>
        <dcat:byteSize>144141</dcat:byteSize>
        <dcat:downloadURL>https://zenodo.org/record/3368779/files/Artifact_Overview_Docker.pdf</dcat:downloadURL>
        <dcat:mediaType>application/pdf</dcat:mediaType>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL>https://doi.org/10.5281/zenodo.3368779</dcat:accessURL>
        <dcat:byteSize>2591</dcat:byteSize>
        <dcat:downloadURL>https://zenodo.org/record/3368779/files/Dockerfile</dcat:downloadURL>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL>https://doi.org/10.5281/zenodo.3368779</dcat:accessURL>
        <dcat:byteSize>1630</dcat:byteSize>
        <dcat:downloadURL>https://zenodo.org/record/3368779/files/LICENSE</dcat:downloadURL>
      </dcat:Distribution>
    </dcat:distribution>
    <dcat:distribution>
      <dcat:Distribution>
        <dcat:accessURL>https://doi.org/10.5281/zenodo.3368779</dcat:accessURL>
        <dcat:byteSize>579</dcat:byteSize>
        <dcat:downloadURL>https://zenodo.org/record/3368779/files/README</dcat:downloadURL>
      </dcat:Distribution>
    </dcat:distribution>
  </rdf:Description>
</rdf:RDF>
131
89
views
downloads
All versions This version
Views 131131
Downloads 8989
Data volume 10.5 MB10.5 MB
Unique views 116116
Unique downloads 6969

Share

Cite as