pymwp: A Static Analyzer Determining Polynomial Growth Bounds

Clément Aubert, Thomas Rubiano, Neea Rusch, Thomas Seiller

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

Abstract

We present pymwp, a static analyzer that automatically computes, if they exist, polynomial bounds relating input and output sizes. In case of exponential growth, our tool detects precisely which dependencies between variables induced it. Based on the sound mwp-flow calculus, the analysis captures bounds on large classes of programs by being non-deterministic and not requiring termination. For this reason, implementing this calculus required solving several non-trivial implementation problems, to handle its complexity and non-determinism, but also to provide meaningful feedback to the programmer. The duality of the analysis result and compositionality of the calculus make our approach original in the landscape of complexity analyzers. We conclude by demonstrating experimentally how pymwp is a practical and performant static analyzer to automatically evaluate variable growth bounds of C programs.

Original languageEnglish (US)
Title of host publicationAutomated Technology for Verification and Analysis - 21st International Symposium, ATVA 2023, Proceedings
EditorsÉtienne André, Jun Sun
PublisherSpringer Science and Business Media Deutschland GmbH
Pages263-275
Number of pages13
ISBN (Print)9783031453311
DOIs
StatePublished - 2023
Event21st International Symposium on Automated Technology for Verification and Analysis, ATVA 2023 - Singapore, Singapore
Duration: Oct 24 2023Oct 27 2023

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume14216 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference21st International Symposium on Automated Technology for Verification and Analysis, ATVA 2023
Country/TerritorySingapore
CitySingapore
Period10/24/2310/27/23

Keywords

  • Automatic Complexity Analysis
  • Bound Inference
  • Flow Analysis
  • Program Verification
  • Static Program Analysis

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'pymwp: A Static Analyzer Determining Polynomial Growth Bounds'. Together they form a unique fingerprint.

Cite this