May 2025
·
6 Reads
This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.
May 2025
·
6 Reads
April 2025
Program synthesis is the task of automatically constructing a program conforming to a given specification. In this paper we focus on synthesis of single-invocation recursion-free functions conforming to a specification given as a logical formula in the presence of uncomputable symbols (i.e., symbols used in the specification but not allowed in the resulting function). We approach the problem via SMT-solving methods: we present a quantifier elimination algorithm using model-based projections for both total and partial function synthesis, working with theories of uninterpreted functions and linear arithmetic and their combination. For this purpose we also extend model-based projection to produce witnesses for these theories. Further, we present procedures tailored for the case of uniquely determined solutions. We implemented a prototype of the algorithms using the SMT-solver Z3, demonstrating their practicality.
August 2024
·
29 Reads
Security bugs and trapdoors in smart contracts have been impacting the Ethereum community since its inception. Conceptually, the 1.45-million Ethereum's contracts form a single "gigantic program" whose behaviors are determined by the complex reference-topology between the contracts. Can the Ethereum community be assured that this gigantic program conforms to its design-level safety properties, despite unforeseeable code-level intricacies? Static code verification is inadequate due to the program's gigantic scale and high polymorphism. In this paper, we present a viable technological roadmap for the community toward this ambitious goal. Our technology, called Theorem-Carrying-Transaction (TCT), combines the benefits of concrete execution and symbolic proofs. Under the TCT protocol, every transaction carries a theorem that proves its adherence to the specified properties in the invoked contracts, and the runtime system checks the theorem before executing the transaction. Once a property is specified in a contract, it can be treated confidently as an unconditional guarantee made by the contract. As case studies, we demonstrate that TCT secures token contracts without foreseeing code-level intricacies like integer overflow and reentrancy. TCT is also successfully applied to a Uniswap codebase, showcasing a complex decentralized finance (DeFi) scenario. Our prototype incurs a negligible runtime overhead, two orders of magnitude lower than a state-of-the-art approach.
July 2024
·
70 Reads
·
2 Citations
The theory of arithmetic is integral to many uses of SMT solvers. Z3 has implemented native solvers for arithmetic reasoning since its first release. We present a full re-implementation of Z3’s original arithmetic solver. It is based on substantial experiences from user feedback, engineering and experimentation. While providing a comprehensive overview of the main components we emphasize selected new insights we arrived at while developing and testing the solver.
June 2024
·
5 Reads
·
5 Citations
Proceedings of the ACM on Programming Languages
We present SpEQ, a quick and correct strategy for detecting semantics in sparse codes and enabling automatic translation to high-performance library calls or domain-specific languages (DSLs). When sparse linear algebra codes contain implicit preconditions about how data is stored that hamper direct translation, SpEQ identifies the high-level computation along with storage details and related preconditions. A run-time check guards the translation and ensures that required preconditions are met. We implement SpEQ using the LLVM framework, the Z3 solver, and egglog library and correctly translate sparse linear algebra codes into two high-performance libraries, NVIDIA cuSPARSE and Intel MKL, and OpenMP (OMP). We evaluate SpEQ on ten diverse benchmarks against two state-of-the-art translation tools. SpEQ achieves geometric mean speedups of 3.25×, 5.09×, and 8.04× on OpenMP, MKL, and cuSPARSE backends, respectively. SpEQ is the only tool that can guarantee the correct translation of sparse computations.
June 2024
·
20 Reads
PolySAT is a word-level decision procedure supporting bit-precise SMT reasoning over polynomial arithmetic with large bit-vector operations. The PolySAT calculus extends conflict-driven clause learning modulo theories with two key components: (i) a bit-vector plugin to the equality graph, and (ii) a theory solver for bit-vector arithmetic with non-linear polynomials. PolySAT implements dedicated procedures to extract bit-vector intervals from polynomial inequalities. For the purpose of conflict analysis and resolution, PolySAT comes with on-demand lemma generation over non-linear bit-vector arithmetic. PolySAT is integrated into the SMT solver Z3 and has potential applications in model checking and smart contract verification where bit-blasting techniques on multipliers/divisions do not scale.
September 2023
·
50 Reads
·
2 Citations
Lecture Notes in Computer Science
We introduce a calculus for incremental pre-processing for SMT and instantiate it in the context of z3. It identifies when powerful formula simplifications can be retained when adding new constraints. Use cases that could not be solved in incremental mode can now be solved incrementally thanks to the availability of pre-processing. Our approach admits a class of transformations that preserve satisfiability, but not equivalence. We establish a taxonomy of pre-processing techniques that distinguishes cases where new constraints are modified or constraints previously added have to be replayed. We then justify the soundness of the proposed incremental pre-processing calculus.
July 2023
·
25 Reads
·
35 Citations
April 2023
·
29 Reads
Smart contracts are crucial elements of decentralized technologies, but they face significant obstacles to trustworthiness due to security bugs and trapdoors. To address the core issue, we propose a technology that enables programmers to focus on design-level properties rather than specific low-level attack patterns. Our proposed technology, called Theorem-Carrying-Transaction (TCT), combines the benefits of runtime checking and symbolic proof. Under the TCT protocol, every transaction must carry a theorem that proves its adherence to the safety properties in the invoked contracts, and the blockchain checks the proof before executing the transaction. The unique design of TCT ensures that the theorems are provable and checkable in an efficient manner. We believe that TCT holds a great promise for enabling provably secure smart contracts in the future. As such, we call for collaboration toward this vision.
January 2023
·
116 Reads
·
10 Citations
Lecture Notes in Computer Science
We 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 and instantiation of theory axioms with quantifiers. We report on application scenarios of user-propagation and describe further use-cases.
... If CheckUnsat returns true, the algorithm terminates with unsat. Otherwise, the algorithm attempts to apply a branching rule (lines [8][9][10][11][12]. If successful, it recursively calls the Refute procedure on a new set of constraints and returns unsat if all recursive calls perform successful refutation. ...
July 2024
... The urgency for multi-lingual RACG grows critical as enterprises modernize their technology stacks [22]. Migrating code to emerging PLs can offer enterprises advantages in performance optimization, security compliance, and workforce adaptability, creating demand for cross-lingual 1 code transformation tools [27]- [33]. ...
June 2024
Proceedings of the ACM on Programming Languages
... The quantum compilation pipeline broadly consists of two steps: Circuit Synthesis and Layout Synthesis. In this paper, we focus on the Quantum Layout Synthesis (QLS) problem [13,25,15,20] that transforms a "logical" quantum circuit consisting of native gates into an equivalent circuit that respects the connectivity of a physical quantum platform. Many quantum platforms do not support all-to-all connectivity of physical qubits, thus restricting the application of binary gates to only neighboring qubits. ...
July 2023
... We address this by automating frequent reevaluation of different ADDs when production changes. To address the potential time-consuming nature of synthesizing and optimizing various ADDs caused by production changes -potentially leading to production downtime -we suggest exploring incremental SMT solving [35]. Incremental SMT solving retains the solver's state and learned clauses from the previous session [35], allowing for efficient recalibration of ADDs in response to production changes. ...
September 2023
Lecture Notes in Computer Science
... Satisfiability Modulo Theories (SMT) is the problem of deciding whether a value assignment to symbols exists that satisfies a first-order formula within formal theories [11]. SMT solvers utilize theory solver backends to handle the different supported theories (such as real numbers, integers, or arrays), and recently, even user-defined theory solvers (user propagators) have become possible to implement [12]. Generally, a dedicated theory solver must implement three procedures [11]: ...
January 2023
Lecture Notes in Computer Science
... Good TE routing decisions or flow models can help balance network performance, minimize congestion and optimize network utilization [4], using all available bandwidth (or also referred to as run networks hotter). However, these parameters become increasingly difficult to manage when the network size grows and becomes complex with new sources constantly being added [5]. In the SDN-era, TE in ISPs and Cloud WANs, have different traffic needs, delays, big transfers, etc. ...
October 2022
... Previous work [22,16,19] has focused on update maps that are restricted to be linear. In this paper, we go beyond this limitation by allowing update maps to be arbitrary polynomial functions. ...
April 2022
Formal Aspects of Computing
... Recent work uses optical components for failure resilience [35], capacity augmentation [36,37] and bulk data transfers [38]. There has also been growing commercial interest in making optics an active part of routing in datacenters. ...
August 2021
... While it was long dominated by the strongest industrial grade SMT-solvers Z3 and cvc4/5, the leading positions have been recently taken by approaches based on finite automata. They include Z3-Noodler [25], a recent winner of string categories of SMT-COMP [2], OSTRICH [21,23], which supports the richest palette of string constraints with strong completeness guarantees, Z3str3RE [15,17], and loosely also one of the engines of Z3 [74]. Automata-based solvers excel especially in handling complex regular constraints with word equations and related constraints, such as transducer constraints or ReplaceAll. ...
June 2021
... The development of OMT solvers has fostered research across an expanding spectrum of applications, including scheduling and planning with resources [7,13,17,20,26,30,35,38,48,58], formal verification and model checking [37,49], program analysis [10,23,25,28,69], requirements engineering and specification synthesis [21,[41][42][43], security analysis [4,18,46,61], system design and configuration [14,15,29,34,47,51,63,68], machine learning [59,62], and quantum annealing [5]. ...
Reference:
Generalized Optimization Modulo Theories
June 2021
Lecture Notes in Computer Science