<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcq="http://purl.org/dc/terms/"><records count="1" morepages="false" start="1" end="1"><record rownumber="1"><dc:product_type>Journal Article</dc:product_type><dc:title>Worst-Case Input Generation for Concurrent Programs under Non-Monotone Resource Metrics</dc:title><dc:creator>Pham, Long; Hoffmann, Jan</dc:creator><dc:corporate_author/><dc:editor/><dc:description>&lt;p&gt;Worst-case input generation aims to automatically generate inputs that exhibit the worst-case performance of programs. It has several applications, and can, for example, detect vulnerabilities to denial-of-service (DoS) attacks. However, it is non-trivial to generate worst-case inputs for concurrent programs, particularly for resources like memory where the peak cost depends on how processes are scheduled. This article presents the first sound worst-case input generation algorithm for concurrent programs under non-monotone resource metrics like memory. The key insight is to leverage resource-annotated session types and symbolic execution. Session types describe communication protocols on channels in process calculi. Equipped with resource annotations, resource-annotated session types not only encode cost bounds but also indicate how many resources can be reused and transferred between processes. This information is critical for identifying a worst-case execution path during symbolic execution. The algorithm is sound: if it returns any input, it is guaranteed to be a valid worst-case input. The algorithm is also relatively complete: as long as resource-annotated session types are sufficiently expressive and the background theory for SMT solving is decidable, a worst-case input is guaranteed to be returned. A simple case study of a web server's memory usage demonstrates the utility of the worst-case input generation algorithm.&lt;/p&gt;</dc:description><dc:publisher>LMCS</dc:publisher><dc:date>2024-12-24</dc:date><dc:nsf_par_id>10566222</dc:nsf_par_id><dc:journal_name>Logical Methods in Computer Science</dc:journal_name><dc:journal_volume>Volume 20, Issue 4</dc:journal_volume><dc:journal_issue/><dc:page_range_or_elocation/><dc:issn>1860-5974</dc:issn><dc:isbn/><dc:doi>https://doi.org/10.46298/lmcs-20(4:26)2024</dc:doi><dcq:identifierAwardId>1845514; 2007784</dcq:identifierAwardId><dc:subject/><dc:version_number/><dc:location/><dc:rights/><dc:institution/><dc:sponsoring_org>National Science Foundation</dc:sponsoring_org></record></records></rdf:RDF>