Invalidator: Automated patch correctness assessment via semantic and syntactic reasoning
Automated program repair (APR) faces the challenge of test overfitting, where generated
patches pass validation tests but fail to generalize. Existing methods for patch assessment …
patches pass validation tests but fail to generalize. Existing methods for patch assessment …
Non-termination proving at scale
Program termination is a classic non-safety property whose falsification cannot in general be
witnessed by a finite trace. This makes testing for non-termination challenging, and also a …
witnessed by a finite trace. This makes testing for non-termination challenging, and also a …
Learning probabilistic termination proofs
We present the first machine learning approach to the termination analysis of probabilistic
programs. Ranking supermartingales (RSMs) prove that probabilistic programs halt, in …
programs. Ranking supermartingales (RSMs) prove that probabilistic programs halt, in …
Neural termination analysis
We introduce a novel approach to the automated termination analysis of computer
programs: we use neural networks to represent ranking functions. Ranking functions map …
programs: we use neural networks to represent ranking functions. Ranking functions map …
Large-scale analysis of non-termination bugs in real-world oss projects
Termination is a crucial program property. Non-termination bugs can be subtle to detect and
may remain hidden for long before they take effect. Many real-world programs still suffer …
may remain hidden for long before they take effect. Many real-world programs still suffer …
Checking equivalence in a non-strict language
Program equivalence checking is the task of confirming that two programs have the same
behavior on corresponding inputs. We develop a calculus based on symbolic execution and …
behavior on corresponding inputs. We develop a calculus based on symbolic execution and …
TerGEC: A graph enhanced contrastive approach for program termination analysis
Context Programs with non-termination behavior induce various bugs, such as denial-of-
service vulnerability and memory exhaustion. Hence the ability to detect non-termination …
service vulnerability and memory exhaustion. Hence the ability to detect non-termination …
Reactive Programming without Functions
Context: Reactive programming (RP) is a declarative programming paradigm suitable for
expressing the handling of events. It enables programmers to create applications that react …
expressing the handling of events. It enables programmers to create applications that react …
Dynaplex: analyzing program complexity using dynamically inferred recurrence relations
Being able to detect program runtime complexity is useful in many tasks (eg, checking
expected performance and identifying potential security vulnerabilities). In this work, we …
expected performance and identifying potential security vulnerabilities). In this work, we …
Neural Solving Uninterpreted Predicates with Abstract Gradient Descent
S Yu, Z Liu, T Wang, J Wang - ACM Transactions on Software …, 2024 - dl.acm.org
Uninterpreted predicate solving is a fundamental problem in formal verification, including
loop invariant and constrained horn clauses predicate solving. Existing approaches have …
loop invariant and constrained horn clauses predicate solving. Existing approaches have …