Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Practical Verification of Smart Contracts using Memory Splitting
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 356, Pages 2402–2433https://doi.org/10.1145/3689796SMT-based verification of low-level code requires modeling and reasoning about memory operations. Prior work has shown that optimizing memory representations is beneficial for scaling verification—pointer analysis, for example can be used to split memory ...
- research-articleOctober 2024
Making Formulog Fast: An Argument for Unconventional Datalog Evaluation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 314, Pages 1219–1248https://doi.org/10.1145/3689754With its combination of Datalog, SMT solving, and functional programming, the language Formulog provides an appealing mix of features for implementing SMT-based static analyses (e.g., refinement type checking, symbolic execution) in a natural, ...
- research-articleSeptember 2024
Truncating abstraction of bit-vector operations for BDD-based SMT solvers
AbstractDuring the last few years, BDD-based SMT solvers proved to be competitive in deciding satisfiability of quantified bit-vector formulas. However, these solvers usually do not perform well on input formulas with complicated arithmetic. Hitherto, ...
- ArticleJuly 2024
A Formal Model to Prove Instantiation Termination for E-matching-Based Axiomatisations
AbstractSMT-based program analysis and verification often involve reasoning about program features that have been specified using quantifiers; incorporating quantifiers into SMT-based reasoning is, however, known to be challenging. If quantifier ...
- ArticleJuly 2024
MCSat-Based Finite Field Reasoning in the Yices2 SMT Solver (Short Paper)
AbstractThis system description introduces an enhancement to the Yices2 SMT solver, enabling it to reason over non-linear polynomial systems over finite fields. Our reasoning approach fits into the model-constructing satisfiability (MCSat) framework and ...
-
- research-articleMarch 2024
'Put the Car on the Stand': SMT-based Oracles for Investigating Decisions
- Samuel Judson,
- Matthew Elacqua,
- Filip Cano,
- Timos Antonopoulos,
- Bettina Könighofer,
- Scott J. Shapiro,
- Ruzica Piskac
CSLAW '24: Proceedings of the Symposium on Computer Science and LawPages 73–85https://doi.org/10.1145/3614407.3643699Principled accountability in the aftermath of harms is essential to the trustworthy design and governance of algorithmic decision making. Legal theory offers a paramount method for assessing culpability: putting the agent 'on the stand' to subject their ...
Solving String Constraints with Lengths by Stabilization
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue OOPSLA2Article No.: 296, Pages 2112–2141https://doi.org/10.1145/3622872We present a new algorithm for solving string constraints. The algorithm builds upon a recent method for solving word equations and regular constraints that interprets string variables as languages rather than strings and, consequently, mitigates the ...
- ArticleJune 2023
Verification of LSTM Neural Networks with Non-linear Activation Functions
AbstractRecurrent neural networks are increasingly employed in safety-critical applications, such as control in cyber-physical systems, and therefore their verification is crucial for guaranteeing reliability and correctness. We present a novel approach ...
- research-articleApril 2023
Solving the SPARQL query containment problem with SpeCS
Web Semantics: Science, Services and Agents on the World Wide Web (WEBS), Volume 76, Issue Chttps://doi.org/10.1016/j.websem.2022.100770AbstractThe query containment problem is a fundamental computer science problem which was originally defined for relational queries. With the growing popularity of the sparql query language, it became relevant and important in this new context:...
Highlights- Implementation and evaluation of open source sparql query containment solver SpeCS
- research-articleJanuary 2023
Towards more efficient methods for solving regular-expression heavy string constraints
Theoretical Computer Science (TCSC), Volume 943, Issue CPages 50–72https://doi.org/10.1016/j.tcs.2022.12.009AbstractWidespread use of string solvers in the formal analysis of string-heavy programs has led to a growing demand for more efficient and reliable techniques which can be applied in this context. Designing practical algorithms for the (...
- ArticleJanuary 2023
Satisfiability Modulo Custom Theories in Z3
Verification, Model Checking, and Abstract InterpretationPages 91–105https://doi.org/10.1007/978-3-031-24950-1_5AbstractWe introduce user-propagators as a new feature of the Z3 SMT solver. User-propagation allows users to write custom theory extensions for Z3, by implementing callbacks via the Z3 API. These callbacks are invoked by Z3 and eliminate eager processing ...
- research-articleDecember 2022
SMT solving for the validation of B and Event-B models
International Journal on Software Tools for Technology Transfer (STTT) (STTT), Volume 24, Issue 6Pages 1043–1077https://doi.org/10.1007/s10009-022-00682-yAbstractProB provides a constraint solver for the B-method written in Prolog and can make use of different backends based on SAT and SMT solving. One such backend translates B and Event-B operators to SMT-LIB using the Z3 solver. This translation uses ...
- research-articleJuly 2022
Algebra-Based Reasoning for Loop Synthesis
Formal Aspects of Computing (FAC), Volume 34, Issue 1Article No.: 4, Pages 1–31https://doi.org/10.1145/3527458Provably correct software is one of the key challenges of our software-driven society. Program synthesis—the task of constructing a program satisfying a given specification—is one strategy for achieving this. The result of this task is then a program that ...
- research-articleMay 2023
SMT-based verification of program changes through summary repair
Formal Methods in System Design (FMSD), Volume 60, Issue 3Pages 350–380https://doi.org/10.1007/s10703-023-00423-0AbstractThis article provides an innovative approach for verification by model checking of programs that undergo continuous changes. To tackle the problem of repeating the entire model checking for each new version of the program, our approach verifies ...
- research-articleJune 2022
Formal modeling and verification for amplification timing anomalies in the superscalar TriCore architecture
International Journal on Software Tools for Technology Transfer (STTT) (STTT), Volume 24, Issue 3Pages 415–440https://doi.org/10.1007/s10009-022-00655-1AbstractStatic worst-case timing analyses compute safe timing bounds of applications running in real-time systems. These bounds are necessary to evaluate the strict timing constraints of real-time systems. Moreover, the inherent complexity of such systems ...
- ArticleApril 2022
Property Directed Reachability for Generalized Petri Nets
Tools and Algorithms for the Construction and Analysis of SystemsPages 505–523https://doi.org/10.1007/978-3-030-99524-9_28AbstractWe propose a semi-decision procedure for checking generalized reachability properties, on generalized Petri nets, that is based on the Property Directed Reachability (PDR) method. We actually define three different versions, that vary depending on ...
- research-articleFebruary 2022
Tools and algorithms for the construction and analysis of systems: a special issue for TACAS 2019
International Journal on Software Tools for Technology Transfer (STTT) (STTT), Volume 24, Issue 1Pages 29–31https://doi.org/10.1007/s10009-021-00642-yAbstractAutomated techniques and tools for the construction and analysis of systems are inevitable to manage the complexity of the current systems. Such techniques and tools are the subject of interest of the International Conference on Tools and ...
- research-articleSeptember 2021
Verification supported refactoring of embedded sql
Software Quality Journal (KLU-SQJO), Volume 29, Issue 3Pages 629–665https://doi.org/10.1007/s11219-020-09517-yAbstractImproving code quality without changing its functionality, e.g., by refactoring or optimization, is an everyday programming activity. Good programming practice requires that each such change should be followed by a check if the change really ...
Boosting symbolic execution via constraint solving time prediction (experience paper)
ISSTA 2021: Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and AnalysisPages 336–347https://doi.org/10.1145/3460319.3464813Symbolic execution is an essential approach for automated test case generation. However, the approach is generally not scalable to large programs. One critical reason is that the constraint solving problems in symbolic execution are generally hard. ...
- research-articleJune 2021
Path-sensitive sparse analysis without path conditions
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and ImplementationPages 930–943https://doi.org/10.1145/3453483.3454086Sparse program analysis is fast as it propagates data flow facts via data dependence, skipping unnecessary control flows. However, when path-sensitively checking millions of lines of code, it is still prohibitively expensive because a huge number of ...