VLDB 2026 Research / reviewers in the wild / expert
Franjo Ivancic
dblp:i/FranjoIvancic
· DBLP profile ↗
61ranked-venue papers
9as first author
3since 2021 · last 2024
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 37 · 5 first-author · 2 since 2021Theory of computation · 16 · 4 first-authorSystems, architecture and hardware · 13 · 1 first-authorArtificial intelligence and machine learning · 3 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 3Security and privacy · 2Graphics, computer vision, multimedia, augmented reality and games · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | kGym: A Platform and Dataset to Benchmark Large Language Models on Linux Kernel Crash ResolutionabstractLarge Language Models (LLMs) are consistently improving at increasingly realistic software engineering (SE) tasks. In real-world software stacks, significant SE effort is spent developing foundational system software like the Linux kernel. Unlike application-level software, a systems codebase like Linux is multilingual (low-level C/Assembly/Bash/Rust); gigantic (>20 million lines); critical (impacting billions of devices worldwide), and highly concurrent (involving complex multi-threading). To evaluate if machine learning (ML) models are useful while developing such large-scale systems-level software, we introduce kGym (a platform) and kBench (a dataset). The kGym platform provides a SE environment for large-scale experiments on the Linux kernel, including compiling and running kernels in parallel across several virtual machines, detecting operations and crashes, inspecting logs, and querying and patching the code base. We use kGym to facilitate evaluation on kBench, a crash resolution benchmark drawn from real-world Linux kernel bugs. An example bug in kBench contains crashing stack traces, a bug-reproducer file, a developer-written fix, and other associated data. To understand current performance, we conduct baseline experiments by prompting LLMs to resolve Linux kernel crashes. Our initial evaluations reveal that the best performing LLM achieves 0.72\% and 5.38\% in the unassisted and assisted (i.e., buggy files disclosed to the model) settings, respectively. These results highlight the need for further research to enhance model performance in SE tasks. Improving performance on kBench requires models to master new learning skills, including understanding the cause of crashes and repairing faults, writing memory-safe and hardware-aware code, and understanding concurrency. As a result, this work opens up multiple avenues of research at the intersection of machine learning and systems software. Alex Mathai, Petros Maniatis, Aleksandr Nogikh, Franjo Ivancic, Baishakhi Ray |
NeurIPS | 5 |
| 2023 | Zero-Config Fuzzing for MicroservicesabstractThe microservice paradigm is a popular software development pattern that breaks down a large application into smaller, independent services. While this approach offers several advantages, such as scalability, agility, and flexibility, it also introduces new security challenges. This paper presents a novel approach to securing microservice architectures using fuzz testing. Fuzz testing is known to find programming errors in software by feeding it with unexpected or random inputs. In this paper, we propose a zero-config fuzz test generation technique for microservices that can maximize coverage of internal states by mutating both the incoming requests and the backend responses from dependent services. We successfully deployed our technique to over 95 % of C++ services built on Google's internal microservice platform. It reported and got fixed thousands of errors in real-world microservice applications. Andrei Benea, Franjo Ivancic |
ASE | 3 |
| 2021 | Reducing Time-To-Fix For Fuzzer BugsabstractAt Google, fuzzing C/C++ libraries has discovered tens of thousands of security and robustness bugs. However, these bugs are often reported much after they were introduced. Developers are provided only with fault-inducing test inputs and replication instructions that highlight a crash, but additional debugging information may be needed to localize the cause of the bug. Hence, developers need to spend substantial time debugging the code and identifying commits that introduced the bug. In this paper, we discuss our experience with automating a fuzzing-enabled bisection that pinpoints the commit in which the crash first manifests itself. This ultimately reduces the time critical bugs stay open in our code base. We report on our experience over the past year, which shows that developers fix bugs on average 2.23 times faster when aided by this automated analysis. Rui Abreu 0001, Franjo Ivancic, Filip Niksic, Hadi Ravanbakhsh, Ramesh Viswanathan |
ASE | 2 |
| 2020 | SunDew: Systematic Automated Security TestingabstractAt Google, tens of thousands of security and robustness bugs have been found by fuzzing C and C++ libraries. The various aspects of the SunDew project, one of the projects working on automated scalable techniques related to fuzzing at Google, are presented: how to fuzz, what to fuzz, and how to deal with discovered bugs. First, a distributed fuzzing infrastructure is presented. It allows to cooperatively utilize multiple test generation techniques. Then, a system for automated fuzz driver generation, named FUDGE, is described, which automatically generates fuzz driver candidates for libraries based on existing client code. Running large-scale fuzzing services also causes lots of bugs and vulnerabilities to be reported. Various techniques are presented to provide feedback to developers to reduce the time a known security bug remains open. Finally, challenges and opportunities to incorporate security testing into the general software development workflow are highlighted. Franjo Ivancic |
ICST | 1 |
| 2019 | FUDGE: fuzz driver generation at scaleabstractAt Google we have found tens of thousands of security and robustness bugs by fuzzing C and C++ libraries. To fuzz a library, a fuzzer requires a fuzz driver—which exercises some library code—to which it can pass inputs. Unfortunately, writing fuzz drivers remains a primarily manual exercise, a major hindrance to the widespread adoption of fuzzing. In this paper, we address this major hindrance by introducing the Fudge system for automated fuzz driver generation. Fudge automatically generates fuzz driver candidates for libraries based on existing client code. We have used Fudge to generate thousands of new drivers for a wide variety of libraries. Each generated driver includes a synthesized C/C++ program and a corresponding build script, and is automatically analyzed for quality. Developers have integrated over 200 of these generated drivers into continuous fuzzing services and have committed to address reported security bugs. Further, several of these fuzz drivers have been upstreamed to open source projects and integrated into the OSS-Fuzz fuzzing infrastructure. Running these fuzz drivers has resulted in over 150 bug fixes, including the elimination of numerous exploitable security vulnerabilities. Domagoj Babic, Stefan Bucur, Franjo Ivancic, Tim King 0001, Markus Kusano, Caroline Lemieux, Laszlo Szekeres |
ESEC/SIGSOFT FSE | 4 |
| 2018 | Replay without recording of production bugs for service oriented applicationsabstractShort time-to-localize and time-to-fix for production bugs is extremely important for any 24x7 service-oriented application (SOA). Debugging buggy behavior in deployed applications is hard, as it requires careful reproduction of a similar environment and workload. Prior approaches for automatically reproducing production failures do not scale to large SOA systems. Our key insight is that for many failures in SOA systems (e.g., many semantic and performance bugs), a failure can automatically be reproduced solely by relaying network packets to replicas of suspect services, an insight that we validated through a manual study of 16 real bugs across five different systems. This paper presents Parikshan, an application monitoring framework that leverages user-space virtualization and network proxy technologies to provide a sandbox “debug” environment. In this “debug” environment, developers are free to attach debuggers and analysis tools without impacting performance or correctness of the production environment. In comparison to existing monitoring solutions that can slow down production applications, Parikshan allows application monitoring at significantly lower overhead. Nipun Arora, Jonathan Bell 0001, Franjo Ivancic, Gail E. Kaiser, Baishakhi Ray |
ASE | 3 |
| 2015 | Scalable and scope-bounded software verification in Varvel
Franjo Ivancic, Gogul Balakrishnan, Aarti Gupta, Sriram Sankaranarayanan 0001, Naoto Maeda, Takashi Imoto, Rakesh Pothengil, Mustafa Hussain |
Autom. Softw. Eng. | 1 |
| 2014 | An Adaptable Rule Placement for Software-Defined NetworksabstractThere is a strong trend in networking to move towards Software-Defined Networks (SDN). SDNs enable easier network configuration through a separation between a centralized controller and a distributed data plane comprising a network of switches. The controller implements network policies through installing rules on switches. Recently the "Big Switch" abstraction [1] was proposed as a specification mechanism for high-level network behavior, i.e., the network policies. The network operating system or compiler can use his specification for placing rules on individual switches. However, this is constrained by the limited capacity of the Ternary Content Addressable Memories (TCAMs) used for rules in each switch. We propose an Integer Linear Programming (ILP) based solution for placing rules on switches for a given firewall policy while optimizing for the total number of rules and meeting the switch capacity constraints. Experimental results demonstrate that our approach is scalable to practical sized networks. Franjo Ivancic, Cristian Lumezanu, Yifei Yuan 0001, Aarti Gupta, Sharad Malik |
DSN | 2 |
| 2014 | ARC++: effective typestate and lifetime dependency analysisabstractThe ever-increasing reliance of today's society on software requires scalable and precise techniques for checking the correctness, reliability, and robustness of software. Object-oriented languages have been used extensively to build large-scale systems, including Java and C++. While many scalable static analysis approaches for C and Java have been proposed, there has been comparatively little work on the static analysis of C++ programs. In this paper, we provide an abstract representation to model C++ objects, containers, references, raw pointers, and smart pointers. Further, we present a new analysis called lifetime dependency analysis, which allows us to precisely track the complex lifetime semantics of temporary objects in C++. Finally, we propose an implementation of our techniques and present promising %experimental results on a large variety of open-source software. Xusheng Xiao, Gogul Balakrishnan, Franjo Ivancic, Naoto Maeda, Aarti Gupta, Deepak Chhetri |
ISSTA | 3 |
| 2013 | Feedback-directed unit test generation for C/C++ using concolic executionabstractIn industry, software testing and coverage-based metrics are the predominant techniques to check correctness of software. This paper addresses automatic unit test generation for programs written in C/C++. The main idea is to improve the coverage obtained by feedback-directed random test generation methods, by utilizing concolic execution on the generated test drivers. Furthermore, for programs with numeric computations, we employ non-linear solvers in a lazy manner to generate new test inputs. These techniques significantly improve the coverage provided by a feedback-directed random unit testing framework, while retaining the benefits of full automation. We have implemented these techniques in a prototype platform, and describe promising experimental results on a number of C/C++ open source benchmarks. Pranav Garg 0001, Franjo Ivancic, Gogul Balakrishnan, Naoto Maeda, Aarti Gupta |
ICSE | 2 |
| 2013 | Probabilistic Temporal Logic Falsification of Cyber-Physical SystemsabstractWe present a Monte-Carlo optimization technique for finding system behaviors that falsify a metric temporal logic (MTL) property. Our approach performs a random walk over the space of system inputs guided by a robustness metric defined by the MTL property. Robustness is guiding the search for a falsifying behavior by exploring trajectories with smaller robustness values. The resulting testing framework can be applied to a wide class of cyber-physical systems (CPS). We show through experiments on complex system models that using our framework can help automatically falsify properties with more consistency as compared to other means, such as uniform sampling. Houssam Abbas, Georgios Fainekos, Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta |
ACM Trans. Embed. Comput. Syst. | 4 |
| 2012 | Concurrent Test Generation Using Concolic Multi-trace Analysis
Niloofar Razavi, Franjo Ivancic, Vineet Kahlon, Aarti Gupta |
APLAS | 2 |
| 2012 | Object Model Construction for Inheritance in C++ and Its Applications to Program Analysis
Jing Yang 0003, Gogul Balakrishnan, Naoto Maeda, Franjo Ivancic, Aarti Gupta, Nishant Sinha 0001, Sriram Sankaranarayanan 0001, Naveen Sharma |
CC | 4 |
| 2012 | Donut Domains: Efficient Non-convex Domains for Abstract Interpretation
Khalil Ghorbal, Franjo Ivancic, Gogul Balakrishnan, Naoto Maeda, Aarti Gupta |
VMCAI | 2 |
| 2012 | Editorial: Special Section VCPSS'09abstracteditorial Free Access Share on Editorial: Special Section VCPSS’09 Guest Editors: Georgios Fainekos Arizona State University Arizona State UniversityView Profile , Eric Goubault CEA LIST CEA LISTView Profile , Franjo Ivančić Nec Laboratories America Nec Laboratories AmericaView Profile , Sriram Sankaranarayanan University of Colorado Boulder University of Colorado BoulderView Profile Authors Info & Claims ACM Transactions on Embedded Computing SystemsVolume 11Issue S2Article No.: 52pp 1–3https://doi.org/10.1145/2331147.2331162Published:01 August 2012Publication History 0citation126DownloadsMetricsTotal Citations0Total Downloads126Last 12 Months6Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Georgios Fainekos, Eric Goubault, Franjo Ivancic, Sriram Sankaranarayanan 0001 |
ACM Trans. Embed. Comput. Syst. | 3 |
| 2011 | Interprocedural Exception Analysis for C++
Prakash Prabhu, Naoto Maeda, Gogul Balakrishnan, Franjo Ivancic, Aarti Gupta |
ECOOP | 4 |
| 2011 | DC2: A framework for scalable, scope-bounded software verificationabstractSoftware model checking and static analysis have matured over the last decade, enabling their use in automated software verification. However, lack of scalability makes these tools hard to apply. Furthermore, approximations in the models of program and environment lead to a profusion of false alarms. This paper proposes DC2, a verification framework using scope-bounding to bridge these gaps. DC2 splits the analysis problem into manageable parts, relying on a combination of three automated techniques: (a) techniques to infer useful specifications for functions in the form of pre- and post-conditions; (b) stub inference techniques that infer abstractions to replace function calls beyond the verification scope; and (c) automatic refinement of pre- and post-conditions from false alarms identified by a user. DC2 enables iterative reasoning over the calling environment, to help in finding non-trivial bugs and fewer false alarms. We present an experimental evaluation that demonstrates the effectiveness of DC2 on several open-source and industrial software projects. Franjo Ivancic, Gogul Balakrishnan, Aarti Gupta, Sriram Sankaranarayanan 0001, Naoto Maeda, Hiroki Tokuoka, Takashi Imoto, Yoshiaki Miyazaki |
ASE | 1 |
| 2010 | Scalable and precise program analysis at NEC
Gogul Balakrishnan, Malay K. Ganai, Aarti Gupta, Franjo Ivancic, Vineet Kahlon, Naoto Maeda, Nadia Papakonstantinou, Sriram Sankaranarayanan 0001, Nishant Sinha 0001, Chao Wang 0001 |
FMCAD | 4 |
| 2010 | Integrating ICP and LRA solvers for deciding nonlinear real arithmetic problems
Sicun Gao, Malay K. Ganai, Franjo Ivancic, Aarti Gupta, Sriram Sankaranarayanan 0001, Edmund M. Clarke |
FMCAD | 3 |
| 2010 | Monte-carlo techniques for falsification of temporal properties of non-linear hybrid systemsabstractWe present a Monte-Carlo optimization technique for finding inputs to a system that falsify a given Metric Temporal Logic (MTL) property. Our approach performs a random walk over the space of inputs guided by a robustness metric defined by the MTL property. Robustness can be used to guide our search for a falsifying trajectory by exploring trajectories with smaller robustness values. We show that the notion of robustness can be generalized to consider hybrid system trajectories. The resulting testing framework can be applied to non-linear hybrid systems with external inputs. We show through numerous experiments on complex systems that using our framework can help automatically falsify properties with more consistency as compared to other means such as uniform sampling. Truong Nghiem, Sriram Sankaranarayanan 0001, Georgios Fainekos, Franjo Ivancic, Aarti Gupta, George J. Pappas |
HSCC | 4 |
| 2010 | Numerical stability analysis of floating-point computations using software model checkingabstractSoftware model checking has recently been successful in discovering bugs in production software. Most tools have targeted heap related programming mistakes and control-heavy programs. However, real-time and embedded controllers implemented in software are susceptible to computational numeric instabilities. We target verification of numerical programs that use floating-point types, to detect loss of numerical precision incurred in such programs. Techniques based on abstract interpretation have been used in the past for such analysis. We use bounded model checking (BMC) based on Satisfiability Modulo Theory (SMT) solvers, which work on a mixed integer-real model that we generate for programs with floating points. We have implemented these techniques in our software verification platform. We report experimental results on benchmark examples to study the effectiveness of model checking on such problems, and the effect of various model simplifications on the performance of model checking. Franjo Ivancic, Malay K. Ganai, Sriram Sankaranarayanan 0001, Aarti Gupta |
MEMOCODE | 1 |
| 2010 | Program analysis via satisfiability modulo path programsabstractPath-sensitivity is often a crucial requirement for verifying safety properties of programs. As it is infeasible to enumerate and analyze each path individually, analyses compromise by soundly merging information about executions along multiple paths. However, this frequently results in a loss of precision. We present a program analysis technique that we call Satisfiability Modulo Path Programs (SMPP), based on a path-based decomposition of a program. It is inspired by insights that have driven the development of modern SMT(Satisfiability Modulo Theory) solvers. SMPP symbolically enumerates path programs using a SAT formula over control edges in the program. Each enumerated path program is verified using an oracle, such as abstract interpretation or symbolic execution, to either find a proof of correctness or report a potential violation. If a proof is found, then SMPP extracts a sufficient set of control edges and corresponding interference edges, as a form of proof-based learning. Blocking clauses derived from these edges are added back to the SAT formula to avoid enumeration of other path programs guaranteed to be correct, thereby improving performance and scalability. We have applied SMPP in the F-Soft program verification framework, to verify properties of real-world C programs that require path-sensitive reasoning. Our results indicate that the precision from analyzing individual path programs, combined with their efficient enumeration by SMPP, can prove properties as well as indicate potential violations in the large. William R. Harris, Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta |
POPL | 3 |
| 2009 | Generating and Analyzing Symbolic Traces of Simulink/Stateflow Models
Aditya Kanade 0001, Rajeev Alur, Franjo Ivancic, S. Ramesh 0002, Sriram Sankaranarayanan 0001, K. C. Shashidhar |
CAV | 3 |
| 2009 | Inputs of Coma: Static Detection of Denial-of-Service VulnerabilitiesabstractAs networked systems grow in complexity, they are increasingly vulnerable to denial-of-service (DoS) attacks involving resource exhaustion. A single malicious "input of coma" can trigger high-complexity behavior such as deep recursion in a carelessly implemented server, exhausting CPU time or stack space and making the server unavailable to legitimate clients. These DoS attacks exploit the semantics of the target application, are rarely associated with network traffic anomalies, and are thus extremely difficult to detect using conventional methods.We present SAFER, a static analysis tool for identifying potential DoS vulnerabilities and the root causes of resource-exhaustion attacks before the software is deployed. Our tool combines taint analysis with control dependency analysis to detect high-complexity control structures whose execution can be triggered by untrusted network inputs.When evaluated on real-world networked applications, SAFER discovered previously unknown DoS vulnerabilities in the Expat XML parser and the SQLite library, as well as a new attack on a previously patched version of the wu-ftpd server. This demonstrates the importance of understanding and repairing the root causes of DoS vulnerabilities rather than simply blocking known malicious inputs. Richard M. Chang, Guofei Jiang, Franjo Ivancic, Sriram Sankaranarayanan 0001, Vitaly Shmatikov |
CSF | 3 |
| 2009 | Refining the control structure of loops using static analysisabstractWe present a simple yet useful technique for refining the control structure of loops that occur in imperative programs. Loops containing complex control flow are common in synchronous embedded controllers derived from modeling languages such as Lustre, Esterel, and Simulink/Stateflow. Our approach uses a set of labels to distinguish different control paths inside a given loop. The iterations of the loop are abstracted as a finite state automaton over these labels. Subsequently, we use static analysis techniques to identify infeasible iteration sequences and subtract such forbidden sequences from the initial language to obtain a refinement. In practice, the refinement of control flow sequences often simplifies the control flow patterns in the loop. We have applied the refinement technique to improve the precision of abstract interpretation in the presence of widening. Our experiments on a set of complex reactive loop benchmarks clearly show the utility of our refinement techniques. Abstraction interpretation with our refinement technique was able to verify all the properties for 10 out of the 13 benchmarks, while abstraction interpretation without refinement was able to verify only four. Other potentially useful applications include termination analysis and reverse engineering models from source code. Gogul Balakrishnan, Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta |
EMSOFT | 3 |
| 2009 | Efficient decision procedure for non-linear arithmetic constraints using CORDICabstractIn verification of hybrid discrete-continuous and embedded control systems, one encounters decision problems involving non-linear constraints. We propose an efficient decision procedure (CORD) for such decisions problems using CORDIC algorithms, and an off-the-shelf SMT(LA) (Satisfiability Modulo Theory for Linear Arithmetic) solver, for given precision requirements. We first translate the non-linear part of the decision problem to a SMT(LA) formula using CORDIC algorithms, accounting for all the inaccuracies safely. In the translation, we use a normalization scheme, combined with interval bounds to obtain a linearized formula without compromising the precision requirements. On such a linearized formula, we devise a DPLL-style Interval Search Engine (DISE) that explores various combinations of interval bounds using a SMT(LA) solver. In our experiments, we demonstrate the efficacy of our approach, and compare it with a latest state-of-the-art decision procedure. Malay K. Ganai, Franjo Ivancic |
FMCAD | 2 |
| 2009 | Using hardware transactional memory for data race detectionabstractWidespread emergence of multicore processors will spur development of parallel applications, exposing programmers to degrees of hardware concurrency hitherto unavailable. Dependable multithreaded software will have to rely on the ability to dynamically detect non-deterministic and notoriously hard to reproduce synchronization bugs manifested through data races. Previous solutions to dynamic data race detection have required specialized hardware, at additional power, design and area costs. We propose RaceTM, a novel approach to data race detection that exploits hardware that will likely be present in future multiprocessors, albeit for a different purpose. In particular, we show how emerging hardware support for transactional memory can be leveraged to aid data race detection. We propose the concept of lightweight debug transactions that exploit the conflict detection mechanisms of transactional memory systems to perform data race detection. We present a proof-of-concept simulation prototype, and evaluate it on data races injected into applications from the SPLASH-2 suite. Our experiments show that this technique is effective at discovering data races and has low performance overhead. Florin Sultan, Srihari Cadambi, Franjo Ivancic, Martin Rötteler |
IPDPS | 4 |
| 2009 | Robustness of Model-Based SimulationsabstractThis paper proposes a framework for determining the correctness and robustness of simulations of hybrid systems. The focus is on simulations generated from model-based design environments and, in particular, Simulink. The correctness and robustness of the simulation is guaranteed against floating-point rounding errors and system modeling uncertainties. Toward that goal, self-validated arithmetics, such as interval and affine arithmetic, are employed for guaranteed simulation of discrete-time hybrid systems. In the case of continuous-time hybrid systems, self-validated arithmetics are utilized for over-approximations of reachability computations. Georgios Fainekos, Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta |
RTSS | 3 |
| 2009 | Foreword: Special issue on numerical software verification
Franjo Ivancic, Sriram Sankaranarayanan 0001, Chao Wang 0001 |
Formal Methods Syst. Des. | 1 |
| 2009 | A hybrid nano-CMOS architecture for defect and fault toleranceabstractAs the end of the semiconductor roadmap for CMOS approaches, architectures based on nanoscale molecular devices are attracting attention. Among several alternatives, silicon nanowires and carbon nanotubes are the two most promising nanotechnologies according to the ITRS. These technologies may enable scaling deep into the nanometer regime. However, they suffer from very defect-prone manufacturing processes. Although the reconfigurability property of the nanoscale devices can be used to tolerate high defect rates, it may not be possible to locate all defects. With very high device densities, testing each component may not be possible because of time or technology restrictions. This points to a scenario in which even though the devices are tested, the tests are not very comprehensive at locating defects, and hence the shipped chips are still defective. Moreover, the devices in the nanometer range will be susceptible to transient faults which can produce arbitrary soft errors. Despite these drawbacks, it is possible to make nanoscale architectures practical and realistic by introducing defect and fault tolerance. In this article, we propose and evaluate a hybrid nanowire-CMOS architecture that addresses all three problems—namely high defect rates, unlocated defects, and transient faults—at the same time. This goal is achieved by using multiple levels of redundancy and majority voters. A key aspect of the architecture is that it contains a judicious balance of both nanoscale and traditional CMOS components. A companion to the architecture is a compiler with heuristics to quickly determine if logic can be mapped onto partially defective nanoscale elements. The heuristics make it possible to introduce defect-awareness in placement and routing. The architecture and compiler are evaluated by applying the complete design flow to several benchmarks. Muzaffer O. Simsir, Srihari Cadambi, Franjo Ivancic, Martin Rötteler, Niraj K. Jha |
ACM J. Emerg. Technol. Comput. Syst. | 3 |
| 2009 | Model checking sequential software programs via mixed symbolic analysisabstractWe present an efficient symbolic search algorithm for software model checking. Our algorithms perform word-level reasoning by using a combination of decision procedures in Boolean and integer and real domains, and use novel symbolic search strategies optimized specifically for sequential programs to improve scalability. Experiments on real-world C programs show that the new symbolic search algorithms can achieve several orders-of-magnitude improvements over existing methods based on bit-level (Boolean) reasoning. Zijiang Yang 0006, Chao Wang 0001, Aarti Gupta, Franjo Ivancic |
ACM Trans. Design Autom. Electr. Syst. | 4 |
| 2008 | Mining library specifications using inductive logic programmingabstractSoftware libraries organize useful functionalities in order to promote modularity and code reuse. A typical library is used by client programs through an application programming interface (API) that hides its internals from the client. Typically, the rules governing the correct usage of the API are documented informally. In many cases, libraries may have complex API usage rules and unclear documentation. As a result, the behaviour of the library under some corner cases may not be well understood by the programmer. Formal specifications provide a precise understanding of the API behaviour. Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta |
ICSE | 2 |
| 2008 | Dynamic inference of likely data preconditions over predicates by tree learningabstractWe present a technique to infer likely data preconditions forprocedures written in an imperative programming language. Given a procedure and a set of predicates over its inputs, our technique enumerates different truth assignments to the predicates, deriving test cases from each feasible truth assignment. The predicates themselves are derived automatically using simple heuristics. The enumeration of truth assignments is performed using a propositional SAT solver along with a theory satisfiability checker capable of generating unsatisfiable cores. Sriram Sankaranarayanan 0001, Swarat Chaudhuri, Franjo Ivancic, Aarti Gupta |
ISSTA | 3 |
| 2008 | SLR: Path-Sensitive Analysis through Infeasible-Path Detection and Syntactic Language Refinement
Gogul Balakrishnan, Sriram Sankaranarayanan 0001, Franjo Ivancic, Ou Wei, Aarti Gupta |
SAS | 3 |
| 2008 | RaceTM: detecting data races using transactional memoryabstractWidespread emergence of multicore processors will spur development of parallel applications, exposing programmers to more hardware concurrency. Dependable multithreaded software will have to rely on the ability to dynamically detect data races, which are non-deterministic and notoriously hard to reproduce symptoms of synchronization bugs. In this paper, we propose RaceTM, a novel approach that exploits transactional memory support to detect data races. We introduce the concept of lightweight debug transactions that exploit the conflict detection mechanisms of transactional memory systems to perform data race detection. Debug transactions differ from regular transactions in that they do not need to be rolled back, and therefore require no versioning or checkpointing support. Debug transactions do not overlap with a regular transaction, thus providing a transparent mechanism to leverage existing transactional memory support for data race detection. Florin Sultan, Srihari Cadambi, Franjo Ivancic, Martin Rötteler |
SPAA | 4 |
| 2008 | Symbolic Model Checking of Hybrid Systems Using Template Polyhedra
Sriram Sankaranarayanan 0001, Thao Dang 0001, Franjo Ivancic |
TACAS | 3 |
| 2008 | Bitwidth Reduction via Symbolic Interval Analysis for Software Model CheckingabstractThis paper presents a lightweight interval analysis technique for determining the lower and upper bounds for program variables and its application in improving software model checking techniques. The experiments demonstrate that it is an effective approach to alleviate the state explosion problem in software model checking. Aleksandr Zaks, Zijiang Yang 0006, Ilya Shlyakhter, Franjo Ivancic, Srihari Cadambi, Malay K. Ganai, Aarti Gupta, Pranav Ashar |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 4 |
| 2008 | Efficient SAT-based bounded model checking for software verification
Franjo Ivancic, Zijiang Yang 0006, Malay K. Ganai, Aarti Gupta, Pranav Ashar |
Theor. Comput. Sci. | 1 |
| 2007 | Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra
Chao Wang 0001, Zijiang Yang 0006, Aarti Gupta, Franjo Ivancic |
CAV | 4 |
| 2007 | Induction in CEGAR for Detecting CounterexamplesabstractInduction has been studied in model checking for proving the validity of safety properties, i.e., showing the absence of counterexamples. To our knowledge, induction has not been used to refute safety properties. Existing algorithms including bounded model checking, predicate abstraction, and interpolation are not efficient in detecting long counterexamples. In this paper, we propose the use of induction inside the counterexample guided abstraction and refinement (CEGAR) loop to prove the existence of counterexamples. We target bugs whose counterexamples are long and yet can be captured by regular patterns. We identify the pattern algorithmically by analyzing the sequence of spurious counterexamples generated in the CEGAR loop, and perform the induction proof automatically. The new method has little additional overhead to CEGAR and this overhead is insensitive to the actual length of the concrete counterexample. Chao Wang 0001, Aarti Gupta, Franjo Ivancic |
FMCAD | 3 |
| 2007 | Program Analysis Using Symbolic Ranges
Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta |
SAS | 2 |
| 2007 | State space exploration using feedback constraint generation and Monte-Carlo samplingabstractThe systematic exploration of the space of all the behaviours of a software system forms the basis of numerous approaches to verification. However, existing approaches face many challenges with scalability and precision. We propose a framework for validating programs based on statistical sampling of inputs guided by statically generated constraints, that steer the simulations towards more "desirable" traces. Sriram Sankaranarayanan 0001, Richard M. Chang, Guofei Jiang, Franjo Ivancic |
ESEC/SIGSOFT FSE | 4 |
| 2007 | Disjunctive image computation for software verificationabstractExisting BDD-based symbolic algorithms designed for hardware designs do not perform well on software programs. We propose novel techniques based on unique characteristics of software programs. Our algorithm divides an image computation step into a disjunctive set of easier ones that can be performed in isolation. We use hypergraph partitioning to minimize the number of live variables in each disjunctive component, and variable scopes to simplify transition relations and reachable state subsets. Our experiments on nontrivial C programs show that BDD-based symbolic algorithms can directly handle software models with a much larger number of state variables than for hardware designs. Chao Wang 0001, Zijiang Yang 0006, Franjo Ivancic, Aarti Gupta |
ACM Trans. Design Autom. Electr. Syst. | 3 |
| 2006 | Whodunit? Causal Analysis for Counterexamples
Chao Wang 0001, Zijiang Yang 0006, Franjo Ivancic, Aarti Gupta |
ATVA | 3 |
| 2006 | Using Statically Computed Invariants Inside the Predicate Abstraction and Refinement Loop
Himanshu Jain, Franjo Ivancic, Aarti Gupta, Ilya Shlyakhter, Chao Wang 0001 |
CAV | 2 |
| 2006 | Disjunctive image computation for embedded software verificationabstractFinite state models generated from software programs have unique characteristics that are not exploited by existing model checking algorithms. In this paper, we propose a novel disjunctive image computation algorithm and other simplifications based on these characteristics. Our algorithm divides an image computation into a disjunctive set of easier ones that can be performed in isolation. Hypergraph partitioning is used to minimize the number of live variables in each disjunctive component. We use the live variables to simplify transition relations and reachable state subsets. Our experiments on a set of real-world C programs show that the new algorithm achieves orders-of-magnitude performance improvement over the best known conjunctive image computation algorithm Chao Wang 0001, Zijiang Yang 0006, Franjo Ivancic, Aarti Gupta |
DATE | 3 |
| 2006 | Mixed symbolic representations for model checking software programsabstractWe present an efficient symbolic search algorithm for software model checking. The algorithm combines multiple symbolic representations to efficiently represent the transition relation and reachable states and uses a combination of decision procedures for Boolean and integer representations. Our main contributions include: (1) mixed symbolic representations to model C programs with rich data types and complex expressions; and (2) new symbolic search strategies and optimization techniques specific to sequential programs that can significantly improve the scalability of model checking algorithms. Our controlled experiments on real-world software programs show that the new symbolic search algorithm can achieve several orders-of-magnitude improvements over existing methods. The proposed techniques are extremely competitive in handling sequential models of non-trivial sizes, and also compare favorably to popular Boolean-level model checking algorithms based on BDDs and SAT Zijiang Yang 0006, Chao Wang 0001, Aarti Gupta, Franjo Ivancic |
MEMOCODE | 4 |
| 2006 | Static Analysis in Disjunctive Numerical Domains
Sriram Sankaranarayanan 0001, Franjo Ivancic, Ilya Shlyakhter, Aarti Gupta |
SAS | 2 |
| 2006 | Counterexample-guided predicate abstraction of hybrid systems
Rajeev Alur, Thao Dang 0001, Franjo Ivancic |
Theor. Comput. Sci. | 3 |
| 2006 | Predicate abstraction for reachability analysis of hybrid systemsabstractEmbedded systems are increasingly finding their way into a growing range of physical devices. These embedded systems often consist of a collection of software threads interacting concurrently with each other and with a physical, continuous environment. While continuous dynamics have been well studied in control theory, and discrete and distributed systems have been investigated in computer science, the combination of the two complexities leads us to the recent research on hybrid systems . This paper addresses the formal analysis of such hybrid systems. Predicate abstraction has emerged to be a powerful technique for extracting finite-state models from infinite-state discrete programs. This paper presents algorithms and tools for reachability analysis of hybrid systems by combining the notion of predicate abstraction with recent techniques for approximating the set of reachable states of linear systems using polyhedra. Given a hybrid system and a set of predicates, we consider the finite discrete quotient whose states correspond to all possible truth assignments to the input predicates. The tool performs an on-the-fly exploration of the abstract system. We present the basic techniques for guided search in the abstract state-space, optimizations of these techniques, implementation of these in our verifier, and case studies demonstrating the promise of the approach. We also address the completeness of our abstraction-based verification strategy by showing that predicate abstraction of hybrid systems can be used to prove bounded safety. Rajeev Alur, Thao Dang 0001, Franjo Ivancic |
ACM Trans. Embed. Comput. Syst. | 3 |
| 2005 | F-Soft: Software Verification Platform
Franjo Ivancic, Zijiang Yang 0006, Malay K. Ganai, Aarti Gupta, Ilya Shlyakhter, Pranav Ashar |
CAV | 1 |
| 2005 | Reasoning About Threads Communicating via Locks
Vineet Kahlon, Franjo Ivancic, Aarti Gupta |
CAV | 2 |
| 2005 | Model Checking C Programs Using F-SOFTabstractWith the success of formal verification techniques like equivalence checking and model checking for hardware designs, there has been growing interest in applying such techniques for formal analysis and automatic verification of software programs. This paper provides a brief tutorial on model checking of C programs. The essential approach is to model the semantics of C programs in the form of finite state systems by using suitable abstractions. The use of abstractions is key, both for modeling programs as finite state systems and for reducing the model sizes in order to manage verification complexity. We provide illustrative details of a verification platform called F-Soft, which provides a range of abstractions for modeling software, and uses customized SAT-based and BDD-based model checking techniques targeted for software. Franjo Ivancic, Ilya Shlyakhter, Aarti Gupta, Malay K. Ganai, Vineet Kahlon, Chao Wang 0001, Zijiang Yang 0006 |
ICCD | 1 |
| 2005 | Deciding Separation Logic Formulae by SAT and Incremental Negative Cycle Elimination
Chao Wang 0001, Franjo Ivancic, Malay K. Ganai, Aarti Gupta |
LPAR | 2 |
| 2005 | Localization and Register Sharing for Predicate Abstraction
Himanshu Jain, Franjo Ivancic, Aarti Gupta, Malay K. Ganai |
TACAS | 2 |
| 2003 | Generating embedded software from hierarchical hybrid modelsabstractBenefits of high-level modeling and analysis are significantly enhanced if code can be generated automatically from a model such that the correspondence between the model and the code is precisely understood. For embedded control software, hybrid systems is an appropriate modeling paradigm because it can be used to specify continuous dynamics as well as discrete switching between modes. Establishing a formal relationship between the mathematical semantics of a hybrid model and the actual executions of the corresponding code is particularly challenging due to sampling and switching errors. In this paper, we describe an approach to compile the modeling language Charon that allows hierarchical specifications of interacting hybrid systems. We show how to exploit the semantics of Charon to generate code from a model in a modular fashion, and identify sufficient conditions on the model that guarantee the absence of switching errors in the compiled code. The approach is illustrated by compiling a model for coordinated motion of legs for walking onto Sony's AIBO robot. Rajeev Alur, Franjo Ivancic, Jesung Kim, Insup Lee 0001, Oleg Sokolsky |
LCTES | 2 |
| 2003 | Counter-Example Guided Predicate Abstraction of Hybrid Systems
Rajeev Alur, Thao Dang 0001, Franjo Ivancic |
TACAS | 3 |
| 2003 | Hierarchical modeling and analysis of embedded systemsabstractThis paper describes the modeling language CHARON for modular design of interacting hybrid systems. The language allows specification of architectural as well as behavioral hierarchy and discrete as well as continuous activities. The modular structure of the language is not merely syntactic, but is exploited by analysis tools and is supported by a formal semantics with an accompanying compositional theory of refinement. We illustrate the benefits of CHARON in the design of embedded control software using examples from automated highways concerning vehicle coordination. Rajeev Alur, Thao Dang 0001, Joel M. Esposito, Yerang Hur, Franjo Ivancic, Vijay Kumar 0001, Insup Lee 0001, Pradyumna Mishra, George J. Pappas, Oleg Sokolsky |
Proc. IEEE | 5 |
| 2002 | A Hybrid Dynamical Systems Approach to Intelligent Low-Level NavigationabstractAnimated characters may exhibit several kinds of dynamic intelligence when performing low-level navigation (i.e., navigation on a local perceptual scale): they decide among different modes of behavior selectively discriminate entities in the world around them, perform obstacle avoidance, etc. In this paper we present a hybrid dynamical system model of low-level navigation that accounts for the above-mentioned kinds of intelligence. In so doing, the model illustrates general ideas about how a hybrid systems perspective can influence and simplify such reactive/behavioral modeling for multi-agent systems. In addition, we directly employed our formal hybrid system model to generate animations that illustrate our navigation strategies. Overall, our results suggest that hierarchical hybrid systems may provide a natural framework for modeling elements of intelligent animated actors. Eric Aaron, Harold C. Sun, Franjo Ivancic, Dimitris N. Metaxas |
CA | 3 |
| 2002 | Visual Programming for Modeling and Simulation of Biomolecular Regulatory Networks
Rajeev Alur, Calin Belta, Franjo Ivancic, Vijay Kumar 0001, Harvey Rubin, Jonathan Schug, Oleg Sokolsky, Jonathan Webb |
HiPC | 3 |
| 1998 | An automatic rule base generation method for fuzzy pattern recognition with multiphased clusteringabstractPresents an approach for the automatic generation of fuzzy rule bases for pattern recognition from a given sample data. The general idea of the approach is to use and enhance the fuzzy c-means clustering algorithm. The rule base is generated through a modified iterative feature clustering method. A following cross-checking is used to separate the generated rules. Although the rule base generation method was initially developed for handwriting features the scope of its applicability is much larger. The proposed clustering algorithm was tested with input feature space up to 125 dimensions. Franjo Ivancic, Ashutosh Malaviya, Liliane Peters |
KES (3) | 1 |