Revealing Sources of (Memory) Errors via Backward Analysis

dc.contributor.authorAscari, Flavio
dc.contributor.authorBruni, Roberto
dc.contributor.authorGori, Roberta
dc.contributor.authorLogozzo, Francesco
dc.date.accessioned2026-02-05T14:22:14Z
dc.date.available2026-02-05T14:22:14Z
dc.date.issued2025-04-09
dc.description.abstractSound over-approximation methods are effective for proving the absence of errors, but inevitably produce false alarms that can hamper programmers. In contrast, under-approximation methods focus on bug detection and are free from false alarms. In this work, we present two novel proof systems designed to locate the source of errors via backward under-approximation, namely Sufficient Incorrectness Logic (SIL) and its specialization for handling memory errors, called Separation SIL. The SIL proof system is minimal, sound and complete for Lisbon triples, enabling a detailed comparison of triple-based program logics across various dimensions, including negation, approximation, execution order, and analysis objectives. More importantly, SIL lays the foundation for our main technical contribution, by distilling the inference rules of Separation SIL, a sound and (relatively) complete proof system for automated backward reasoning in programs involving pointers and dynamic memory allocation. The completeness result for Separation SIL relies on a careful crafting of both the assertion language and the rules for atomic commands.
dc.description.versionpublisheddeu
dc.identifier.arxiv2310.18156
dc.identifier.doi10.1145/3720486
dc.identifier.ppn1961765438
dc.identifier.urihttps://kops.uni-konstanz.de/handle/123456789/76135
dc.language.isoeng
dc.rightsAttribution-NonCommercial-ShareAlike 4.0 International
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/
dc.subjectSufficient Incorrectness Logic
dc.subjectIncorrectness Logic
dc.subjectOutcome Logic
dc.subject.ddc004
dc.titleRevealing Sources of (Memory) Errors via Backward Analysiseng
dc.typeJOURNAL_ARTICLE
dspace.entity.typePublication
kops.citation.bibtex
@article{Ascari2025-04-09Revea-76135,
  title={Revealing Sources of (Memory) Errors via Backward Analysis},
  year={2025},
  doi={10.1145/3720486},
  number={OOPSLA1},
  volume={9},
  journal={Proceedings of the ACM on Programming Languages},
  pages={1321--1348},
  author={Ascari, Flavio and Bruni, Roberto and Gori, Roberta and Logozzo, Francesco}
}
kops.citation.iso690ASCARI, Flavio, Roberto BRUNI, Roberta GORI, Francesco LOGOZZO, 2025. Revealing Sources of (Memory) Errors via Backward Analysis. In: Proceedings of the ACM on Programming Languages. ACM. 2025, 9(OOPSLA1), S. 1321-1348. eISSN 2475-1421. Verfügbar unter: doi: 10.1145/3720486deu
kops.citation.iso690ASCARI, Flavio, Roberto BRUNI, Roberta GORI, Francesco LOGOZZO, 2025. Revealing Sources of (Memory) Errors via Backward Analysis. In: Proceedings of the ACM on Programming Languages. ACM. 2025, 9(OOPSLA1), pp. 1321-1348. eISSN 2475-1421. Available under: doi: 10.1145/3720486eng
kops.citation.rdf
<rdf:RDF
    xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:bibo="http://purl.org/ontology/bibo/"
    xmlns:dspace="http://digital-repositories.org/ontologies/dspace/0.1.0#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    xmlns:void="http://rdfs.org/ns/void#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" > 
  <rdf:Description rdf:about="https://kops.uni-konstanz.de/server/rdf/resource/123456789/76135">
    <dc:creator>Logozzo, Francesco</dc:creator>
    <dspace:hasBitstream rdf:resource="https://kops.uni-konstanz.de/bitstream/123456789/76135/1/Ascari_2-x4d34jf85giv1.pdf"/>
    <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-02-05T14:22:14Z</dc:date>
    <dc:contributor>Gori, Roberta</dc:contributor>
    <dcterms:hasPart rdf:resource="https://kops.uni-konstanz.de/bitstream/123456789/76135/1/Ascari_2-x4d34jf85giv1.pdf"/>
    <dcterms:issued>2025-04-09</dcterms:issued>
    <dc:contributor>Logozzo, Francesco</dc:contributor>
    <dc:contributor>Bruni, Roberto</dc:contributor>
    <dc:creator>Bruni, Roberto</dc:creator>
    <dcterms:abstract>Sound over-approximation methods are effective for proving the absence of errors, but inevitably produce false alarms that can hamper programmers.       
In contrast, under-approximation methods focus on bug detection and are free from false alarms.       
In this work, we present two novel proof systems designed to locate the source of errors via backward under-approximation, namely Sufficient Incorrectness Logic (SIL) and its specialization for handling memory errors, called Separation SIL.       
The SIL proof system is minimal, sound and complete for Lisbon triples, enabling a detailed comparison of triple-based program logics across various dimensions, including negation, approximation, execution order, and analysis objectives.       
More importantly, SIL lays the foundation for our main technical contribution, by distilling the inference rules of Separation SIL, a sound and (relatively) complete proof system for automated backward reasoning in programs involving pointers and dynamic memory allocation. The completeness result for Separation SIL relies on a careful crafting of both the assertion language and the rules for atomic commands.</dcterms:abstract>
    <dc:rights>Attribution-NonCommercial-ShareAlike 4.0 International</dc:rights>
    <void:sparqlEndpoint rdf:resource="http://localhost/fuseki/dspace/sparql"/>
    <dc:creator>Ascari, Flavio</dc:creator>
    <dcterms:rights rdf:resource="http://creativecommons.org/licenses/by-nc-sa/4.0/"/>
    <dcterms:title>Revealing Sources of (Memory) Errors via Backward Analysis</dcterms:title>
    <dcterms:isPartOf rdf:resource="https://kops.uni-konstanz.de/server/rdf/resource/123456789/36"/>
    <dspace:isPartOfCollection rdf:resource="https://kops.uni-konstanz.de/server/rdf/resource/123456789/36"/>
    <dcterms:available rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-02-05T14:22:14Z</dcterms:available>
    <dc:language>eng</dc:language>
    <dc:creator>Gori, Roberta</dc:creator>
    <foaf:homepage rdf:resource="http://localhost:8080/"/>
    <bibo:uri rdf:resource="https://kops.uni-konstanz.de/handle/123456789/76135"/>
    <dc:contributor>Ascari, Flavio</dc:contributor>
  </rdf:Description>
</rdf:RDF>
kops.description.openAccessopenaccessgold
kops.flag.isPeerReviewedtrue
kops.flag.knbibliographytrue
kops.identifier.nbnurn:nbn:de:bsz:352-2-x4d34jf85giv1
kops.sourcefieldProceedings of the ACM on Programming Languages. ACM. 2025, <b>9</b>(OOPSLA1), S. 1321-1348. eISSN 2475-1421. Verfügbar unter: doi: 10.1145/3720486deu
kops.sourcefield.plainProceedings of the ACM on Programming Languages. ACM. 2025, 9(OOPSLA1), S. 1321-1348. eISSN 2475-1421. Verfügbar unter: doi: 10.1145/3720486deu
kops.sourcefield.plainProceedings of the ACM on Programming Languages. ACM. 2025, 9(OOPSLA1), pp. 1321-1348. eISSN 2475-1421. Available under: doi: 10.1145/3720486eng
relation.isAuthorOfPublication0c59eb08-08c1-4e0a-9097-b41f3d89a2d0
relation.isAuthorOfPublication.latestForDiscovery0c59eb08-08c1-4e0a-9097-b41f3d89a2d0
source.bibliographicInfo.fromPage1321
source.bibliographicInfo.issueOOPSLA1
source.bibliographicInfo.toPage1348
source.bibliographicInfo.volume9
source.identifier.eissn2475-1421
source.periodicalTitleProceedings of the ACM on Programming Languages
source.publisherACM

Dateien

Originalbündel

Gerade angezeigt 1 - 1 von 1
Vorschaubild nicht verfügbar
Name:
Ascari_2-x4d34jf85giv1.pdf
Größe:
742.79 KB
Format:
Adobe Portable Document Format
Ascari_2-x4d34jf85giv1.pdf
Ascari_2-x4d34jf85giv1.pdfGröße: 742.79 KBDownloads: 23