EDBT 2026 Demo / reviewers in the wild / expert
Ruzica Piskac
dblp:p/RuzicaPiskac
· DBLP profile ↗
63ranked-venue papers
11as first author
32since 2021 · last 2026
0000-0002-3267-0776ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 41 · 9 first-author · 15 since 2021Theory of computation · 15 · 5 first-author · 3 since 2021Artificial intelligence and machine learning · 7 · 3 first-author · 5 since 2021Security and privacy · 7 · 7 since 2021Computer networks · 3 · 2 since 2021Databases, data management, data science and information retrieval · 3 · 3 since 2021Systems, architecture and hardware · 2 · 2 since 2021Graphics, computer vision, multimedia, augmented reality and games · 2 · 1 since 2021Human-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Towards Privacy-Preserving VerificationabstractAbstract Program verification provides stronger guarantees of correctness than standard testing. The verification process takes a program as input and derives a mathematical formula. Proving that a program is correct then reduces to establishing that this derived formula is unsatisfiable. Traditionally, automated reasoning tools can be used to determine unsatisfiability automatically. Furthermore, modern solvers can also produce a proof of unsatisfiability. However, these techniques typically rely on the proof and the underlying code being publicly available, which may not be desirable for certain applications. This work shows how to address this problem. Our team initially developed a protocol for validating the unsatisfiability of Boolean formulas in privacy-preserving settings. Building on these initial results, we devised ZKSMT, a virtual machine for validating unsatisfiability results produced by SMT solvers in zero-knowledge settings. In this paper we describe the theoretical foundations of such virtual machines and demonstrate how they can be applied to the theories of uninterpreted functions and linear integer arithmetic, two of the most widely used theories in verification. We conclude by outlining how the full formal verification workflow can be adapted to operate in privacy-preserving settings. Timos Antonopoulos, Ning Luo 0002, Ruzica Piskac |
FM (1) | 3 |
| 2026 | Decor: Delegated Computation on Randomness for Secure Evaluation of Nonlinear Functions
Haris Smajlovic, Kyle Sheng, Timos Antonopoulos, Ruzica Piskac, Hyunghoon Cho |
SP | 4 |
| 2025 | Privacy-Preserving SAT Solving (Invited Talk)
Ruzica Piskac |
CP | 1 |
| 2025 | CourtReasoner: Can LLM Agents Reason Like Judges?abstractSophia Simeng Han, Yoshiki Takashima, Shannon Zejiang Shen, Chen Liu, Yixin Liu, Roque K. Thuo, Sonia Knowlton, Ruzica Piskac, Scott J Shapiro, Arman Cohan. Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing. 2025. Simeng Han, Yoshiki Takashima, Shannon Shen 0001, Chen Liu 0020, Yixin Liu 0003, Roque K. Thuo, Sonia Knowlton, Ruzica Piskac, Scott J. Shapiro, Arman Cohan |
EMNLP | 8 |
| 2025 | Efficient and Verifiable Proof Logging for MaxSAT SolvingabstractMaxSAT solvers are increasingly used as back-ends in software engineering tools. Yet their results have lacked automatically checkable certificates of optimality. While SAT solvers emit DRAT proofs of (un)satisfiability, MaxSAT must additionally prove that no lower-cost solution exists. Existing approaches either cover only isolated solving paradigms or re-duce MaxSAT reasoning to heavyweight pseudo-Boolean proofs, yielding impractical verification overhead.We present the first MaxSAT-specific proof-logging framework for core-guided OLL solvers. We formalize native inference rules for cores, cliques, hardenings, totalizer updates, and bound adjustments, and implement both a human-readable logger and a compact binary DAG logger in EvalMaxSAT. Evaluation on the 2024 MaxSAT competition dataset confirm the practicality and scalability of our certification pipeline, paving the way for trustworthy, solver use. Raoul Van Doren, Timos Antonopoulos, Ruzica Piskac |
ASE | 3 |
| 2025 | KDD 2025 - AI Reasoning DayabstractGenerative AI and the use of large language models (LLMs) are changing the way we work, create, play, and live. As we have witnessed in the past few years, there is significant progress in training LLMs to have a deep understanding of the semantics of language so that such models begin to perform ''reasoning''. (Human) Reasoning is the process of applying logic to derive conclusions based on new or existing information with the goal of finding the truth. Reasoning is a form of high-level human intelligence. There are many types of reasoning: mathematical reasoning, common sense reasoning, temporal reasoning, among others. Multi-hope reasoning with LLM is an emerging capability for LLMs with tens of billions of parameters. Such ''reasoning models'', including Sonnet 3.7, Chat GPT O1, have powered important application areas such as AI4coding, agentic workflow, among others. The first KDD AI Reasoning Day is a special event that we organize in order to increase the awareness of this important research topic for the research community. We bring leaders from industry and academia to present the latest progresses on improving LLM's reasoning capability and enabling reasoning for different application development. Jun Huan, Ye Xing, Wee Hyong Tok, Ruzica Piskac |
KDD (2) | 5 |
| 2025 | Privacy-Preserving SAT Solving (Invited Talk)
Ruzica Piskac |
SAT | 1 |
| 2025 | Checking equivalence in a non-strict languageabstractAbstract 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 coinduction to check the equivalence of programs in a non-strict functional language. Additionally, we show that our calculus can be used to derive counterexamples for pairs of inequivalent programs, including counterexamples that arise from non-termination. We describe a fully automated approach for finding both equivalence proofs and counterexamples. Our implementation, nebula , proves equivalences of programs written in Haskell. We demonstrate nebula ’s practical effectiveness at both proving equivalence and producing counterexamples automatically by applying nebula to existing benchmark properties. John C. Kolesar, Ruzica Piskac, William T. Hallahan |
J. Funct. Program. | 2 |
| 2025 | Automated Validating and Fixing of Text-to-SQL Translation with Execution ConsistencyabstractState-of-the-art Text-to-SQL models rely on fine-tuning or few-shot prompting to help LLMs learn from training datasets containing mappings from natural language (NL) queries to SQL statements. Consequently, the quality of the dataset can greatly affect the accuracy of these Text-to-SQL models. Unlike other NL tasks, Text-to-SQL datasets are prone to errors despite extensive manual efforts due to the subtle semantics of SQL. Our study has found a non-negligible (>30%) portion of incorrect NL to SQL mapping cases exists in popular datasets Spider and BIRD. This paper aims to improve the quality of Text-to-SQL training datasets and thereby increase the accuracy of the resulting models. To do so, we propose a necessary correctness condition called execution consistency. For a given database instance, an NL to SQL mapping satisfies execution consistency if the execution result of an NL query matches that of the corresponding SQL. We develop SQLDriller to detect incorrect NL to SQL mappings based on execution consistency in a best-effort manner by crafting database instances that likely result in violations of execution consistency. It generates multiple candidate SQL predictions that differ in their syntax structures. Using a SQL equivalence checker, SQLDriller obtains counterexample database instances that can distinguish non-equivalent candidate SQLs. It then checks the execution consistency of an NL to SQL mapping under this set of counterexamples. The evaluation shows SQLDriller effectively detects and fixes incorrect mappings in the Text-to-SQL dataset, and it improves the model accuracy by up to 13.6%. Yicun Yang, Yu Xia 0040, Zhuoran Wei, Ruzica Piskac, Haibo Chen 0001, Jinyang Li 0001 |
Proc. ACM Manag. Data | 6 |
| 2025 | Counterexample-Guided Inference of Modular SpecificationsabstractModular verification tools allow programmers to compositionally specify and prove function specifications. When using a modular verifier, proving a specification about a function f requires additional specifications for the functions called by f . With existing state of the art tools, programmers must manually write the specifications for callee functions. We present a counterexample guided algorithm to automatically infer these specifications. The algorithm is parameterized over a verifier, counterexample generator, and constraint guided synthesizer. We show that if each of these three components is sound and complete over a finite set of possible specifications, our algorithm is sound and complete as well. Additionally, we introduce size-bounded synthesis functions, which extends our completeness result to an infinite set of possible specifications. In particular, we describe a size-bounded synthesis function for linear integer arithmetic constraints. We conclude with an evaluation demonstrating our technique on a variety of benchmarks. William T. Hallahan, Ranjit Jhala, Ruzica Piskac |
Proc. ACM Program. Lang. | 3 |
| 2025 | Coinductive Proofs of Regular Expression Equivalence in Zero KnowledgeabstractZero-knowledge (ZK) protocols enable software developers to provide proofs of their programs’ correctness to other parties without revealing the programs themselves. Regular expressions are pervasive in real-world software, and zero-knowledge protocols have been developed in the past for the problem of checking whether an individual string appears in the language of a regular expression, but no existing protocol addresses the more complex PSPACE-complete problem of proving that two regular expressions are equivalent. We introduce Crêpe , the first ZK protocol for encoding regular expression equivalence proofs and also the first ZK protocol to target a PSPACE-complete problem. Crêpe uses a custom calculus of proof rules based on regular expression derivatives and coinduction, and we introduce a sound and complete algorithm for generating proofs in our format. We test Crêpe on a suite of hundreds of regular expression equivalence proofs. Crêpe can validate large proofs in only a few seconds each. John C. Kolesar, Shan Ali, Timos Antonopoulos, Ruzica Piskac |
Proc. ACM Program. Lang. | 4 |
| 2024 | soid: A Tool for Legal Accountability for Automated Decision MakingabstractAbstract We present $$\textsf{soid}$$ soid , a tool for interrogating the decision making of autonomous agents using SMT-based automated reasoning. Relying on the Z3 SMT solver and KLEE symbolic execution engine, $$\textsf{soid}$$ soid allows investigators to receive rigorously proven answers to factual and counterfactual queries about agent behavior, enabling effective legal and engineering accountability for harmful or otherwise incorrect decisions. We evaluate $$\textsf{soid}$$ soid qualitatively and quantitatively on a pair of examples, i) a buggy implementation of a classic decision tree inference benchmark from the explainable AI (XAI) literature; and ii) a car crash in a simulated physics environment. For the latter, we also contribute the $$\textsf{soid}\hbox {-}\!\textsf{gui}$$ soid - gui , a domain-specific, web-based example interface for legal and other practitioners to specify factual and counterfactual queries without requiring sophisticated programming or formal methods expertise. Samuel Judson, Matthew Elacqua, Filip Cano 0001, Timos Antonopoulos, Bettina Könighofer, Scott J. Shapiro, Ruzica Piskac |
CAV (2) | 7 |
| 2024 | Privacy-Preserving Regular Expression Matching Using TNFA
Ning Luo 0002, Chenkai Weng, Jaspal Singh, Gefei Tan, Mariana Raykova 0001, Ruzica Piskac |
ESORICS (2) | 6 |
| 2024 | Systematic Use of Random Self-Reducibility in Cryptographic Code against Physical AttacksabstractThis work presents a novel, black-box software-based countermeasure against physical attacks including power side-channel and fault-injection attacks. The approach uses the concept of random self-reducibility and self-correctness to add randomness and redundancy in the execution for protection. Our approach is at the operation level, is not algorithm-specific, and thus, can be applied for protecting a wide range of algorithms. The countermeasure is empirically evaluated against attacks over operations like modular exponentiation, modular multiplication, polynomial multiplication, and number theoretic transforms. An end-to-end implementation of this countermeasure is demonstrated for RSA-CRT signature algorithm and Kyber Key Generation public key cryptosystems. The countermeasure reduced the power side-channel leakage by two orders of magnitude, to an acceptably secure level in TVLA analysis. For fault injection, the countermeasure reduces the number of faults to 95.4% in average. Ferhat Erata, Tinghung Chiu, Anthony Etim, Srilalith Nampally, Tejas Raju, Rajashree Ramu, Ruzica Piskac, Timos Antonopoulos, Wenjie Xiong 0001, Jakub Szefer |
ICCAD | 7 |
| 2024 | ZKSMT: A VM for Proving SMT Theorems in Zero Knowledge
Daniel Luick, John C. Kolesar, Timos Antonopoulos, William R. Harris, James Parker, Ruzica Piskac, Eran Tromer, Xiao Wang 0012, Ning Luo 0002 |
USENIX Security Symposium | 6 |
| 2024 | PyDex: Repairing Bugs in Introductory Python Assignments using LLMsabstractStudents often make mistakes in their introductory programming assignments as part of their learning process. Unfortunately, providing custom repairs for these mistakes can require a substantial amount of time and effort from class instructors. Automated program repair (APR) techniques can be used to synthesize such fixes. Prior work has explored the use of symbolic and neural techniques for APR in the education domain. Both types of approaches require either substantial engineering efforts or large amounts of data and training. We propose to use a large language model trained on code, such as Codex (a version of GPT), to build an APR system -- PyDex -- for introductory Python programming assignments. Our system can fix both syntactic and semantic mistakes by combining multi-modal prompts, iterative querying, test-case-based selection of few-shots, and program chunking. We evaluate PyDex on 286 real student programs and compare to three baselines, including one that combines a state-of-the-art Python syntax repair engine, BIFI, and a state-of-the-art Python semantic repair engine for student assignments, Refactory. We find that PyDex can fix more programs and produce smaller patches on average. Jialu Zhang 0002, José Cambronero, Sumit Gulwani, Vu Le 0002, Ruzica Piskac, Gustavo Soares, Gust Verbruggen |
Proc. ACM Program. Lang. | 5 |
| 2023 | Ou: Automating the Parallelization of Zero-Knowledge ProtocolsabstractA zero-knowledge proof (ZKP) is a powerful cryptographic primitive used in many decentralized or privacy-focused applications. However, the high overhead of ZKPs can restrict their practical applicability. We design a programming language, Ou, aimed at easing the programmer's burden when writing efficient ZKPs, and a compiler framework, Lian, that automates the analysis and distribution of statements to a computing cluster. Ou uses programming language semantics, formal methods, and combinatorial optimization to automatically partition an Ou program into efficiently sized chunks for parallel ZK-proving and/or verification. We contribute: (1) A front-end language where users can write proof statements as imperative programs in a familiar syntax; (2) A compiler architecture and implementation that automatically analyzes the program and compiles it into an optimized IR that can be lifted to a variety of ZKP constructions; and (3) A cutting algorithm, based on Pseudo-Boolean optimization and Integer Linear Programming, that reorders instructions and then partitions the program into efficiently sized chunks for parallel evaluation and efficient state reconciliation. Yuyang Sang, Ning Luo 0002, Samuel Judson, Ben Chaimberg, Timos Antonopoulos, Xiao Wang 0012, Ruzica Piskac, Zhong Shao 0001 |
CCS | 7 |
| 2023 | Towards Automated Detection of Single-Trace Side-Channel Vulnerabilities in Constant-Time Cryptographic CodeabstractAlthough cryptographic algorithms may be mathematically secure, it is often possible to leak secret information from the implementation of the algorithms. Timing and power side-channel vulnerabilities are some of the most widely considered threats to cryptographic algorithm implementations. Timing vulnerabilities may be easier to detect and exploit, and all high-quality cryptographic code today should be written in constant-time style. However, this does not prevent power side-channels from existing. With constant time code, potential attackers can resort to power side-channel attacks to try leaking secrets. Detecting potential power side-channel vulnerabilities is a tedious task, as it requires analyzing code at the assembly level and needs reasoning about which instructions could be leaking information based on their operands and their values. To help make the process of detecting potential power side-channel vulnerabilities easier for cryptographers, this work presents Pascal: Power Analysis Side Channel Attack Locator, a tool that introduces novel symbolic register analysis techniques for binary analysis of constant-time cryptographic algorithms, and verifies locations of potential power side-channel vulnerabilities with high precision. Pascal is evaluated on a number of implementations of post-quantum cryptographic algorithms, and it is able to find dozens of previously reported single-trace power side-channel vulnerabilities in these algorithms, all in an automated manner. Ferhat Erata, Ruzica Piskac, Víctor Mateu, Jakub Szefer |
EuroS&P | 2 |
| 2023 | Analyzing Intentional Behavior in Autonomous Agents under UncertaintyabstractPrincipled accountability for autonomous decision-making in uncertain environments requires distinguishing intentional outcomes from negligent designs from actual accidents. We propose analyzing the behavior of autonomous agents through a quantitative measure of the evidence of intentional behavior. We model an uncertain environment as a Markov Decision Process (MDP). For a given scenario, we rely on probabilistic model checking to compute the ability of the agent to influence reaching a certain event. We call this the scope of agency. We say that there is evidence of intentional behavior if the scope of agency is high and the decisions of the agent are close to being optimal for reaching the event. Our method applies counterfactual reasoning to automatically generate relevant scenarios that can be analyzed to increase the confidence of our assessment. In a case study, we show how our method can distinguish between 'intentional' and 'accidental' traffic collisions. Filip Cano 0001, Samuel Judson, Timos Antonopoulos, Katrine Bjørner, Nicholas Shoemaker, Scott J. Shapiro, Ruzica Piskac, Bettina Könighofer |
IJCAI | 7 |
| 2023 | Proving Query Equivalence Using Linear Integer ArithmeticabstractProving the equivalence between SQL queries is a fundamental problem in database research. Existing solvers model queries using algebraic representations and convert such representations into first-order logic formulas so that query equivalence can be verified by solving a satisfiability problem. The main challenge lies in "unbounded summations", which appear commonly in a query's algebraic representation in order to model common SQL features, such as projection and aggregate functions. Unfortunately, existing solvers handle unbounded summations in an ad-hoc manner based on heuristics or syntax comparison, which severely limits the set of queries that can be supported. This paper develops a new SQL equivalence prover called SQLSolver, which can handle unbounded summations in a principled way. Our key insight is to use the theory of LIA^*, which extends linear integer arithmetic formulas with unbounded sums and provides algorithms to translate a LIA^* formula to a LIA formula that can be decided using existing SMT solvers. We augment the basic LIA^* theory to handle several complex scenarios (such as nested unbounded summations) that arise from modeling real-world queries. We evaluate SQLSolver with 359 equivalent query pairs derived from the SQL rewrite rules in Calcite and Spark SQL. SQLSolver successfully proves 346 pairs of them, which significantly outperforms existing provers. Yicun Yang, Zhenglin Xu, Haibo Chen 0001, Ruzica Piskac, Jinyang Li 0001 |
Proc. ACM Manag. Data | 7 |
| 2023 | ETAP: Energy-aware Timing Analysis of Intermittent ProgramsabstractEnergy harvesting battery-free embedded devices rely only on ambient energy harvesting that enables stand-alone and sustainable IoT applications. These devices execute programs when the harvested ambient energy in their energy reservoir is sufficient to operate and stop execution abruptly (and start charging) otherwise. These intermittent programs have varying timing behavior under different energy conditions, hardware configurations, and program structures. This article presents Energy-aware Timing Analysis of intermittent Programs (ETAP), a probabilistic symbolic execution approach that analyzes the timing and energy behavior of intermittent programs at compile time. ETAP symbolically executes the given program while taking time and energy cost models for ambient energy and dynamic energy consumption into account. We evaluate ETAP by comparing the compile-time analysis results of our benchmark codes and real-world application with the results of their executions on real hardware. Our evaluation shows that ETAP’s prediction error rate is between 0.0076% and 10.8%, and it speeds up the timing analysis by at least two orders of magnitude compared to manual testing. Ferhat Erata, Eren Yildiz, Arda Goknil, Kasim Sinan Yildirim, Jakub Szefer, Ruzica Piskac, Gökçin Sezgin |
ACM Trans. Embed. Comput. Syst. | 6 |
| 2022 | Proving UNSAT in Zero KnowledgeabstractZero-knowledge (ZK) protocols enable one party to prove to others that it knows a fact without revealing any information about the evidence for such knowledge. There exist ZK protocols for all problems in NP, and recent works developed highly efficient protocols for proving knowledge of satisfying assignments to Boolean formulas, circuits and other NP formalisms. This work shows an efficient protocol for the converse: proving formula unsatisfiability in ZK (when the prover posses a non-ZK proof). An immediate practical application is efficiently proving safety of secret programs. Ning Luo 0002, Timos Antonopoulos, William R. Harris, Ruzica Piskac, Eran Tromer, Xiao Wang 0012 |
CCS | 4 |
| 2022 | Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper)abstractProgram merging is standard practice when developers integrate their individual changes to a common code base. When the merge algorithm fails, this is called a merge conflict. The conflict either manifests as a textual merge conflict where the merge fails to produce code, or as a semantic merge conflict where the merged code results in compiler errors or broken tests. Resolving these conflicts for large code projects is expensive because it requires developers to manually identify the sources of conflicts and correct them. In this paper, we explore the feasibility of automatically repairing merge conflicts (both textual and semantic) using k-shot learning with pre-trained large neural language models (LM) such as GPT-3. One of the challenges in leveraging such language models is fitting the examples and the queries within a small prompt (2048 tokens). We evaluate LMs and k-shot learning for both textual and semantic merge conflicts for Microsoft Edge. Our results are mixed: on one-hand, LMs provide the state-of-the-art (SOTA) performance on semantic merge conflict resolution for Edge compared to earlier symbolic approaches; on the other hand, LMs do not yet obviate the benefits of special purpose domain-specific languages (DSL) for restricted patterns for program synthesis. Jialu Zhang 0002, Todd Mytkowicz, Mike Kaufman, Ruzica Piskac, Shuvendu K. Lahiri |
ISSTA | 4 |
| 2022 | Automated Feedback Generation for Competition-Level CodeabstractCompetitive programming has become a popular way for programmers to test their skills. Competition-level programming problems are challenging in nature, and participants often fail to solve the problem on their first attempt. Some online platforms for competitive programming allow programmers to practice on competition-level problems, and the standard feedback for an incorrect practice submission is the first test case that the submission fails. Often, the failed test case does not provide programmers with enough information to resolve the errors in their code, and they abandon the problem after making several more unsuccessful attempts. Jialu Zhang 0002, John C. Kolesar, Hanyuan Shi, Ruzica Piskac |
ASE | 5 |
| 2022 | Can reactive synthesis and syntax-guided synthesis be friends?abstractWhile reactive synthesis and syntax-guided synthesis (SyGuS) have seen enormous progress in recent years, combining the two approaches has remained a challenge. In this work, we present the synthesis of reactive programs from Temporal Stream Logic modulo theories (TSL-MT), a framework that unites the two approaches to synthesize a single program. In our approach, reactive synthesis and SyGuS collaborate in the synthesis process, and generate executable code that implements both reactive and data-level properties. Wonhyuk Choi, Bernd Finkbeiner, Ruzica Piskac, Mark Santolucito |
PLDI | 3 |
| 2022 | ppSAT: Towards Two-Party Private SAT Solving
Ning Luo 0002, Samuel Judson, Timos Antonopoulos, Ruzica Piskac, Xiao Wang 0012 |
USENIX Security Symposium | 4 |
| 2022 | Learning CI Configuration Correctness for Early Build FeedbackabstractContinuous Integration (CI) allows developers to check whether their code can build successfully and pass tests across various system environments with every commit. To use a CI platform, a developer must provide configuration files within a code repository to specify build conditions. Incorrect configuration settings lead to CI build failures, which can take hours to run, wasting valuable developer time and delaying product release dates. Debugging CI configurations is a slow and error-prone process. The only way to check the correctness of CI configurations is to push a commit and wait for the build result. We present VeriCI, the first system for localizing CI configuration errors at the code level. VeriCI runs as a static analysis tool, before the developer sends the build request to the CI server. Our key insight is that the commit history and the corresponding build histories available in CI environments can be used both for build error prediction and build error localization. We leverage the build history as a labeled dataset to automatically derive customized rules describing correct CI configurations, using supervised machine learning techniques. To more accurately identify root causes, we train a neural network that filters out constraints that are less likely to be connected to the root cause of build failure. We evaluate VeriCI on real world data from GitHub and achieve 91% accuracy of predicting a build failure and correctly identify the root cause in 75% of cases. We also conducted a between-subjects user study with 20 software developers, showing that VeriCI significantly helps users in identifying and fixing errors in CI. Mark Santolucito, Jialu Zhang 0002, Ennan Zhai, Jürgen Cito, Ruzica Piskac |
SANER | 5 |
| 2022 | Checking equivalence in a non-strict languageabstractProgram 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 coinduction to check the equivalence of programs in a non-strict functional language. Additionally, we show that our calculus can be used to derive counterexamples for pairs of inequivalent programs, including counterexamples that arise from non-termination. We describe a fully automated approach for finding both equivalence proofs and counterexamples. Our implementation, Nebula, proves equivalences of programs written in Haskell. We demonstrate Nebula's practical effectiveness at both proving equivalence and producing counterexamples automatically by applying Nebula to existing benchmark properties. John C. Kolesar, Ruzica Piskac, William T. Hallahan |
Proc. ACM Program. Lang. | 2 |
| 2021 | Looking for the Maximum Independent Set: A New Perspective on the Stable Path ProblemabstractThe stable path problem (SPP) is a unified model for analyzing the convergence of distributed routing protocols (e.g., BGP), and a foundation for many network verification tools. Although substantial progress has been made on finding solutions (i.e., stable path assignments) for particular subclasses of SPP instances and analyzing the relation between properties of SPP instances and the convergence of corresponding routing policies, the non-trivial challenge of finding stable path assignments to generic SPP instances still remains. Tackling this challenge is important because it can enable multiple important, novel routing use cases. To fill this gap, in this paper we introduce a novel data structure called solvability digraph, which encodes key properties about stable path assignments in a compact graph representation. Thus SPP is equivalently transformed to the problem of finding in the solvability digraph a maximum independent set (MIS) of size equal to the number of autonomous systems (ASes) in the given SPP instance. We leverage this key finding to develop a heuristic polynomial algorithm GREEDYMIS that solves strictly more SPP instances than state-of-the-art heuristics. We apply GREEDYMIS to designing two important, novel use cases: (1) a centralized interdomain routing system that uses GREEDYMIS to compute paths for ASes and (2) a secure multi-party computation (SMPC) protocol that allows ASes to use GREEDYMIS collaboratively to compute paths without exposing their routing preferences. We demonstrate the benefits and efficiency of these use cases via evaluation using real-world datasets. Yichao Cheng, Ning Luo 0002, Timos Antonopoulos, Ruzica Piskac, Qiao Xiang |
INFOCOM | 5 |
| 2021 | Avenir: Managing Data Plane Diversity with Control Plane Synthesis
Eric Hayden Campbell, William T. Hallahan, Priya Srikumar, Carmelo Cascone, Jed Liu, Vignesh Ramamurthy, Hossein Hojjat, Ruzica Piskac, Robert Soulé, Nate Foster |
NSDI | 8 |
| 2021 | Analyzing Infrastructure as Code to Prevent Intra-update Sniping VulnerabilitiesabstractAbstract Infrastructure as Code is a new approach to computing infrastructure management that allows users to leverage tools such as version control, automatic deployments, and program analysis for infrastructure configurations. This approach allows for faster and more homogeneous configuration of a complete infrastructure. Infrastructure as Code languages, such as CloudFormation or TerraForm, use a declarative model so that users only need to describe the desired state of the infrastructure. However, in practice, these languages are not processed atomically. During an upgrade, the infrastructure goes through a series of intermediate states. We identify a security vulnerability that occurs during an upgrade even when the initial and final states of the infrastructure are secure, and we show that those vulnerability are possible in Amazon’s AWS and Google Cloud. We call such attacks intra-update sniping vulnerabilities. In order to mitigate this shortcoming, we present a technique that detects such vulnerabilities and pinpoints the root causes of insecure deployment migrations. We implement this technique in a tool, Häyhä, that uses dataflow graph analysis. We evaluate our tool on a set of open-source CloudFormation templates and find that it is scalable and could be used as part of a deployment workflow. Julien Lepiller, Ruzica Piskac, Martin Schäf, Mark Santolucito |
TACAS (2) | 2 |
| 2021 | Static detection of silent misconfigurations with deep interaction analysisabstractThe behavior of large systems is guided by their configurations: users set parameters in the configuration file to dictate which corresponding part of the system code is executed. However, it is often the case that, although some parameters are set in the configuration file, they do not influence the system runtime behavior, thus failing to meet the user’s intent. Moreover, such misconfigurations rarely lead to an error message or raising an exception. We introduce the notion of silent misconfigurations which are prohibitively hard to identify due to (1) lack of feedback and (2) complex interactions between configurations and code. This paper presents ConfigX, the first tool for the detection of silent misconfigurations. The main challenge is to understand the complex interactions between configurations and the code that they affected. Our goal is to derive a specification describing non-trivial interactions between the configuration parameters that lead to silent misconfigurations. To this end, ConfigX uses static analysis to determine which parts of the system code are associated with configuration parameters. ConfigX then infers the connections between configuration parameters by analyzing their associated code blocks. We design customized control- and data-flow analysis to derive a specification of configurations. Additionally, we conduct reachability analysis to eliminate spurious rules to reduce false positives. Upon evaluation on five real-world datasets across three widely-used systems, Apache, vsftpd, and PostgreSQL, ConfigX detected more than 2200 silent misconfigurations. We additionally conducted a user study where we ran ConfigX on misconfigurations reported on user forums by real-world users. ConfigX easily detected issues and suggested repairs for those misconfigurations. Our solutions were accepted and confirmed in the interaction with the users, who originally posted the problems. Jialu Zhang 0002, Ruzica Piskac, Ennan Zhai, Tianyin Xu |
Proc. ACM Program. Lang. | 2 |
| 2020 | Grammar Filtering for Syntax-Guided SynthesisabstractProgramming-by-example (PBE) is a synthesis paradigm that allows users to generate functions by simply providing input-output examples. While a promising interaction paradigm, synthesis is still too slow for realtime interaction and more widespread adoption. Existing approaches to PBE synthesis have used automated reasoning tools, such as SMT solvers, as well as works applying machine learning techniques. At its core, the automated reasoning approach relies on highly domain specific knowledge of programming languages. On the other hand, the machine learning approaches utilize the fact that when working with program code, it is possible to generate arbitrarily large training datasets. In this work, we propose a system for using machine learning in tandem with automated reasoning techniques to solve Syntax Guided Synthesis (SyGuS) style PBE problems. By preprocessing SyGuS PBE problems with a neural network, we can use a data driven approach to reduce the size of the search space, then allow automated reasoning-based solvers to more quickly find a solution analytically. Our system is able to run atop existing SyGuS PBE synthesis tools, decreasing the runtime of the winner of the 2019 SyGuS Competition for the PBE Strings track by 47.65% to outperform all of the competing tools. Kairo Morton, William T. Hallahan, Elven Shum, Ruzica Piskac, Mark Santolucito |
AAAI | 4 |
| 2020 | Check before You Change: Preventing Correlated Failures in Service Updates
Ennan Zhai, Ang Chen 0001, Ruzica Piskac, Mahesh Balakrishnan 0001, Bingchuan Tian, Haoliang Zhang |
NSDI | 3 |
| 2020 | Formal Methods and Computing Identity-based Mentorship for Early Stage ResearchersabstractThe field of formal methods relies on a large body of background knowledge that can dissuade researchers from engaging with younger students, such as undergraduates or high school students. However, we have found that formal methods can be an excellent entry point to computer science research - especially in the framing of Computing Identity-based Mentorship. We report on our experience in using a cascading mentorship model to involve early stage researchers in formal methods, covering our process with these students from recruitment to publication. We present case studies (N=12) of our cascading mentorship and how we were able to integrate formal methods research with the students' own interests. We outline some key strategies that have led to success and reflect on strategies that have been, in our experience, inefficient. Mark Santolucito, Ruzica Piskac |
SIGCSE | 2 |
| 2020 | Solving $\mathrm {LIA} ^\star $ Using Approximations
Maxwell Levatich, Nikolaj S. Bjørner, Ruzica Piskac, Sharon Shoham |
VMCAI | 3 |
| 2020 | Automated repair by example for firewalls
William T. Hallahan, Ennan Zhai, Ruzica Piskac |
Formal Methods Syst. Des. | 3 |
| 2019 | Temporal Stream Logic: Synthesis Beyond the BoolsabstractReactive systems that operate in environments with complex data, such as mobile apps or embedded controllers with many sensors, are difficult to synthesize. Synthesis tools usually fail for such systems because the state space resulting from the discretization of the data is too large. We introduce TSL, a new temporal logic that separates control and data. We provide a CEGAR-based synthesis approach for the construction of implementations that are guaranteed to satisfy a TSL specification for all possible instantiations of the data processing functions. TSL provides an attractive trade-off for synthesis. On the one hand, synthesis from TSL, unlike synthesis from standard temporal logics, is undecidable in general. On the other hand, however, synthesis from TSL is scalable, because it is independent of the complexity of the handled data. Among other benchmarks, we have successfully synthesized a music player Android app and a controller for an autonomous vehicle in the Open Race Car Simulator (TORCS). Bernd Finkbeiner, Felix Klein 0001, Ruzica Piskac, Mark Santolucito |
CAV (1) | 3 |
| 2019 | Lazy counterfactual symbolic executionabstractWe present counterfactual symbolic execution, a new approach that produces counterexamples that localize the causes of failure of static verification. First, we develop a notion of symbolic weak head normal form and use it to define lazy symbolic execution reduction rules for non-strict languages like Haskell. Second, we introduce counterfactual branching, a new method to identify places where verification fails due to imprecise specifications (as opposed to incorrect code). Third, we show how to use counterfactual symbolic execution to localize refinement type errors, by translating refinement types into assertions. We implement our approach in a new Haskell symbolic execution engine, G2, and evaluate it on a corpus of 7550 errors gathered from users of the LiquidHaskell refinement type system. We show that for 97.7% of these errors, G2 is able to quickly find counterexamples that show how the code or specifications must be fixed to enable verification. William T. Hallahan, Anton Xue, Maxwell Troy Bland, Ranjit Jhala, Ruzica Piskac |
PLDI | 5 |
| 2018 | New Applications of Software Synthesis: Verification of Configuration Files and Firewall Repair
Ruzica Piskac |
SAS | 1 |
| 2017 | Automated repair by example for firewallsabstractFirewalls are widely deployed to manage enterprise networks. Because enterprise-scale firewalls contain hundreds or thousands of rules, ensuring the correctness of firewalls - that the rules in the firewalls meet the specifications of their administrators - is an important but challenging problem. Although existing firewall diagnosis and verification techniques can identify potentially faulty rules, they offer administrators little or no help with automatically fixing faulty rules. This paper presents FireMason, the first effort that offers automated repair by example for firewalls. Once an administrator observes undesired behavior in a firewall, she may provide input/output examples that comply with the intended behaviors. Based on the examples, FireMason automatically synthesizes new firewall rules for the existing firewall. This new firewall correctly handles packets specified by the examples, while maintaining the rest of the behaviors of the original firewall. Through a conversion of the firewalls to SMT formulas, we offer formal guarantees that the change is correct. Our evaluation results from real-world case studies show that FireMason can efficiently find repairs. William T. Hallahan, Ennan Zhai, Ruzica Piskac |
FMCAD | 3 |
| 2017 | Synthesizing configuration file specifications with association rule learningabstractSystem failures resulting from configuration errors are one of the major reasons for the compromised reliability of today's software systems. Although many techniques have been proposed for configuration error detection, these approaches can generally only be applied after an error has occurred. Proactively verifying configuration files is a challenging problem, because 1) software configurations are typically written in poorly structured and untyped “languages”, and 2) specifying rules for configuration verification is challenging in practice. This paper presents ConfigV, a verification framework for general software configurations. Our framework works as follows: in the pre-processing stage, we first automatically derive a specification. Once we have a specification, we check if a given configuration file adheres to that specification. The process of learning a specification works through three steps. First, ConfigV parses a training set of configuration files (not necessarily all correct) into a well-structured and probabilistically-typed intermediate representation. Second, based on the association rule learning algorithm, ConfigV learns rules from these intermediate representations. These rules establish relationships between the keywords appearing in the files. Finally, ConfigV employs rule graph analysis to refine the resulting rules. ConfigV is capable of detecting various configuration errors, including ordering errors, integer correlation errors, type errors, and missing entry errors. We evaluated ConfigV by verifying public configuration files on GitHub, and we show that ConfigV can detect known configuration errors in these files. Mark Santolucito, Ennan Zhai, Rahul Dhodapkar, Aaron Shim, Ruzica Piskac |
Proc. ACM Program. Lang. | 5 |
| 2017 | An auditing language for preventing correlated failures in the cloudabstractToday's cloud services extensively rely on replication techniques to ensure availability and reliability. In complex datacenter network architectures, however, seemingly independent replica servers may inadvertently share deep dependencies (e.g., aggregation switches). Such unexpected common dependencies may potentially result in correlated failures across the entire replication deployments, invalidating the efforts. Although existing cloud management and diagnosis tools have been able to offer post-failure forensics, they, nevertheless, typically lead to quite prolonged failure recovery time in the cloud-scale systems. In this paper, we propose a novel language framework, named RepAudit, that manages to prevent correlated failure risks before service outages occur, by allowing cloud administrators to proactively audit the replication deployments of interest. In particular, RepAudit consists of three new components: 1) a declarative domain-specific language, RAL, for cloud administrators to write auditing programs expressing diverse auditing tasks; 2) a high-performance RAL auditing engine that generates the auditing results by accurately and efficiently analyzing the underlying structures of the target replication deployments; and 3) an RAL-code generator that can automatically produce complex RAL programs based on easily written specifications. Our evaluation result shows that RepAudit uses 80x less lines of code than state-of-the-art efforts in expressing the auditing task of determining the top-20 critical correlated-failure root causes. To the best of our knowledge, RepAudit is the first effort capable of simultaneously offering expressive, accurate and efficient correlated failure auditing to the cloud-scale replication systems. Ennan Zhai, Ruzica Piskac, Ronghui Gu, Xun Lao |
Proc. ACM Program. Lang. | 2 |
| 2016 | Probabilistic Automated Language Learning for Configuration Files
Mark Santolucito, Ennan Zhai, Ruzica Piskac |
CAV (2) | 3 |
| 2015 | A Type-Directed Approach to Program Repair
Alex Reinking, Ruzica Piskac |
CAV (1) | 2 |
| 2015 | StriSynth: Synthesis for Live ProgrammingabstractMotivated by applications in automating repetitive file manipulations, we present a tool called StriSynth, which allows end-users to perform transformations over data using examples. Based on provided examples, our tool automaticallygenerates scripts for non-trivial file manipulations. Although the current focus of StriSynth are file manipulations, it implements a more general string transformation framework. This framework builds on and further extends the functionality of Flash Fill -- a Microsoft Excel extension for string transformations. An accompanying video to this paper is available at the following website http://youtu.be/kkDZphqIdFM. Sumit Gulwani, Mikaël Mayer, Filip Niksic, Ruzica Piskac |
ICSE (2) | 4 |
| 2014 | Automating Separation Logic with Trees and Data
Ruzica Piskac, Thomas Wies, Damien Zufferey |
CAV | 1 |
| 2014 | The FMCAD 2014 graduate student forumabstractThe Graduate Student Forum was first introduced in 2013 to the FMCAD conference series. The goal of the Forum is to enable graduate students to attend the conference, even if they do not have a paper accepted at the main conference track. Students were attracted with an opportunity to present their on-going work to a broader scientific audience and receive valuable feedback about the research they are currently pursuing. Ruzica Piskac |
FMCAD | 1 |
| 2014 | GRASShopper - Complete Heap Verification with Mixed Specifications
Ruzica Piskac, Thomas Wies, Damien Zufferey |
TACAS | 1 |
| 2013 | Incremental, Inductive Coverability
Johannes Kloos, Rupak Majumdar, Filip Niksic, Ruzica Piskac |
CAV | 4 |
| 2013 | Automating Separation Logic Using SMT
Ruzica Piskac, Thomas Wies, Damien Zufferey |
CAV | 1 |
| 2013 | Complete completion using types and weightsabstractDeveloping modern software typically involves composing functionality from existing libraries. This task is difficult because libraries may expose many methods to the developer. To help developers in such scenarios, we present a technique that synthesizes and suggests valid expressions of a given type at a given program point. As the basis of our technique we use type inhabitation for lambda calculus terms in long normal form. We introduce a succinct representation for type judgements that merges types into equivalence classes to reduce the search space, then reconstructs any desired number of solutions on demand. Furthermore, we introduce a method to rank solutions based on weights derived from a corpus of code. We implemented the algorithm and deployed it as a plugin for the Eclipse IDE for Scala. We show that the techniques we incorporated greatly increase the effectiveness of the approach. Our evaluation benchmarks are code examples from programming practice; we make them available for future comparisons. Tihomir Gvero, Viktor Kuncak, Ivan Kuraj, Ruzica Piskac |
PLDI | 4 |
| 2013 | Functional synthesis for linear arithmetic and sets
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2011 | Interactive Synthesis of Code Snippets
Tihomir Gvero, Viktor Kuncak, Ruzica Piskac |
CAV | 3 |
| 2011 | Decision Procedures for Automating Termination Proofs
Ruzica Piskac, Thomas Wies |
VMCAI | 1 |
| 2010 | Comfusy: A Tool for Complete Functional Synthesis
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter |
CAV | 3 |
| 2010 | Complete functional synthesisabstractSynthesis of program fragments from specifications can make programs easier to write and easier to reason about. To integrate synthesis into programming languages, synthesis algorithms should behave in a predictable way - they should succeed for a well-defined class of specifications. They should also support unbounded data types such as numbers and data structures. We propose to generalize decision procedures into predictable and complete synthesis procedures. Such procedures are guaranteed to find code that satisfies the specification if such code exists. Moreover, we identify conditions under which synthesis will statically decide whether the solution is guaranteed to exist, and whether it is unique. We demonstrate our approach by starting from decision procedures for linear arithmetic and data structures and transforming them into synthesis procedures. We establish results on the size and the efficiency of the synthesized code. We show that such procedures are useful as a language extension with implicit value definitions, and we show how to extend a compiler to support such definitions. Our constructs provide the benefits of synthesis to programmers, without requiring them to learn new concepts or give up a deterministic execution model. Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter |
PLDI | 3 |
| 2010 | Building a Calculus of Data Structures
Viktor Kuncak, Ruzica Piskac, Philippe Suter, Thomas Wies |
VMCAI | 2 |
| 2010 | Collections, Cardinalities, and Relations
Kuat Yessenov, Ruzica Piskac, Viktor Kuncak |
VMCAI | 2 |
| 2010 | Deciding Effectively Propositional Logic Using DPLL and Substitution Sets
Ruzica Piskac, Leonardo de Moura 0001, Nikolaj S. Bjørner |
J. Autom. Reason. | 1 |
| 2008 | Linear Arithmetic with Stars
Ruzica Piskac, Viktor Kuncak |
CAV | 1 |
| 2008 | Decision Procedures for Multisets with Cardinality Constraints
Ruzica Piskac, Viktor Kuncak |
VMCAI | 1 |
| 2005 | Verification of an Off-Line Checker for Priority QueuesabstractWe formally verify the result checker for priority queues that is implemented in LEDA. We have developed a method, based on the notion of implementation, which links abstract specifications to concrete implementations. The method allows non-determinism in the abstract specifications that the concrete implementations have to fill in. We have formally verified that, if the checker has not reported an error up to a certain moment, then the structure it checks has behaved like a priority queue up to that moment. For the verification, we have used the first-order theorem prover Saturate. Hans de Nivelle, Ruzica Piskac |
SEFM | 2 |