P. Madhusudan

dblp:m/PMadhusudan · also Parthasarathy Madhusudan · DBLP profile ↗
← Back
108ranked-venue papers
17as first author
13since 2021 · last 2026
0000-0002-9782-721XORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 66 · 5 first-author · 12 since 2021Theory of computation · 44 · 12 first-authorSecurity and privacy · 7Artificial intelligence and machine learning · 3 · 1 since 2021Systems, architecture and hardware · 3Applied, interdisciplinary, general and emerging computing · 3Databases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021
YearPublicationVenuePosition
2026 Verification Modulo Tested Library Contracts
abstract
We consider the problem of verification modulo tested library contracts as a step towards automating the verification of client programs that use complex libraries. We formulate this problem as the synthesis of modular contracts for the library methods used by the client that are adequate to prove the client correct, and that also pass the scrutiny of a testing engine that tests the library against these contracts. We also consider a new form of method contracts called contextual contracts that arise in this setting that hold in the context of the client program, and can often be simpler and easier to infer than classical modular contracts. We provide a counterexample-guided learning framework to solve this problem, in which the synthesizer interacts with a constraint solver as well as the testing engine in order to infer adequate modular/contextual method contracts and inductive invariants for the client. The main synthesis engines we use are generalizing CHC solvers that are realized using ICE learning algorithms. We realize this framework in a tool called Dualis and show its efficacy on benchmarks where clients call large libraries.
Abhishek Uppar, Omar Muhammad, Sumanth Prabhu S, Deepak D'Souza, P. Madhusudan, Adithya Murali
Proc. ACM Program. Lang.5
2025 Synthesizing DSLs for Few-Shot Learning
abstract
We study the problem of synthesizing domain-specific languages (DSLs) for few-shot learning in symbolic domains. Given a base language and instances of few-shot learning problems, where each instance is split into training and testing samples, the DSL synthesis problem asks for a grammar over the base language that guarantees that small expressions solving training samples also solve corresponding testing samples. We prove that the problem is decidable for a class of languages whose semantics over fixed structures can be evaluated by tree automata and when expression size corresponds to parse tree depth in the grammar, and, furthermore, the grammars solving the problem correspond to a regular set of trees. We also prove decidability results for variants of the problem where DSLs are only required to express solutions for input learning problems and where DSLs are defined using macro grammars.
Paul Krogmeier, P. Madhusudan
Proc. ACM Program. Lang.2
2025 FO-Complete Program Verification for Heap Logics
abstract
Program verification techniques for expressive heap logics are inevitably incomplete. In this work we argue that algorithmic techniques for reasoning with expressive heap logics can be held up to a different robust theoretical standard for completeness: FO-Completeness. FO-completeness is a theoretical guarantee that all theorems that are valid when recursive definitions are interpreted as fixpoint definitions (instead of least fixpoint) are guaranteed to be eventually proven by the system. We illustrate a set of principles to design such logics and develop the first two heap logics that have implicit heaplets and that admit FO-Complete program verification. The logics we develop are a frame logic (FL) and a separation logic (SL-FL) that has an alternate semantics inspired by frame logic. We show a verification condition generation technique that is amenable to FO-complete reasoning using quantifier instantiation and SMT solvers. We implement tools that realize our technique and show the expressiveness of our logics and the efficacy of the verification technique on a suite of benchmarks that manipulate data structures.
Adithya Murali, Hrishikesh Balakrishnan, Aaron Councilman, P. Madhusudan
Proc. ACM Program. Lang.4
2024 Predictable Verification using Intrinsic Definitions
abstract
We propose a novel mechanism of defining data structures using intrinsic definitions that avoids recursion and instead utilizes monadic maps satisfying local conditions. We show that intrinsic definitions are a powerful mechanism that can capture a variety of data structures naturally. We show that they also enable a predictable verification methodology that allows engineers to write ghost code to update monadic maps and perform verification using reduction to decidable logics. We evaluate our methodology using B oogie and prove a suite of data structure manipulating programs correct.
Adithya Murali, Cody Rivera, P. Madhusudan
Proc. ACM Program. Lang.3
2023 Perception Contracts for Safety of ML-Enabled Systems
abstract
We introduce a novel notion of perception contracts to reason about the safety of controllers that interact with an environment using neural perception. Perception contracts capture errors in ground-truth estimations that preserve invariants when systems act upon them. We develop a theory of perception contracts and design symbolic learning algorithms for synthesizing them from a finite set of images. We implement our algorithms and evaluate synthesized perception contracts for two realistic vision-based control systems, a lane tracking system for an electric vehicle and an agricultural robot that follows crop rows. Our evaluation shows that our approach is effective in synthesizing perception contracts and generalizes well when evaluated over test images obtained during runtime monitoring of the systems.
Angello Astorga, Chiao Hsieh, P. Madhusudan, Sayan Mitra 0001
Proc. ACM Program. Lang.3
2023 Languages with Decidable Learning: A Meta-theorem
abstract
We study expression learning problems with syntactic restrictions and introduce the class of finite-aspect checkable languages to characterize symbolic languages that admit decidable learning. The semantics of such languages can be defined using a bounded amount of auxiliary information that is independent of expression size but depends on a fixed structure over which evaluation occurs. We introduce a generic programming language for writing programs that evaluate expression syntax trees, and we give a meta-theorem that connects such programs for finite-aspect checkable languages to finite tree automata, which allows us to derive new decidable learning results and decision procedures for several expression learning problems by writing programs in the programming language.
Paul Krogmeier, P. Madhusudan
Proc. ACM Program. Lang.2
2023 Complete First-Order Reasoning for Properties of Functional Programs
abstract
Several practical tools for automatically verifying functional programs (e.g., Liquid Haskell and Leon for Scala programs) rely on a heuristic based on unrolling recursive function definitions followed by quantifier-free reasoning using SMT solvers. We uncover foundational theoretical properties of this heuristic, revealing that it can be generalized and formalized as a technique that is in fact complete for reasoning with combined First-Order theories of algebraic datatypes and background theories, where background theories support decidable quantifier-free reasoning. The theory developed in this paper explains the efficacy of these heuristics when they succeed, explain why they fail when they fail, and the precise role that user help plays in making proofs succeed.
Adithya Murali, Lucas Peña, Ranjit Jhala, P. Madhusudan
Proc. ACM Program. Lang.4
2023 A First-order Logic with Frames
abstract
We propose a novel logic, Frame Logic (FL), that extends first-order logic and recursive definitions with a construct Sp (·) that captures the implicit supports of formulas—the precise subset of the universe upon which their meaning depends. Using such supports, we formulate proof rules that facilitate frame reasoning elegantly when the underlying model undergoes change. We show that the logic is expressive by capturing several data-structures and also exhibit a translation from a precise fragment of separation logic to frame logic. Finally, we design a program logic based on frame logic for reasoning with programs that dynamically update heaps that facilitates local specifications and frame reasoning. This program logic consists of both localized proof rules as well as rules that derive the weakest tightest preconditions in frame logic.
Adithya Murali, Lucas Peña, Christof Löding, P. Madhusudan
ACM Trans. Program. Lang. Syst.4
2022 Composing Neural Learning and Symbolic Reasoning with an Application to Visual Discrimination
abstract
We consider the problem of combining machine learning models to perform higher-level cognitive tasks with clear specifications. We propose the novel problem of Visual Discrimination Puzzles (VDP) that requires finding interpretable discriminators that classify images according to a logical specification. Humans can solve these puzzles with ease and they give robust, verifiable, and interpretable discriminators as answers. We propose a compositional neurosymbolic framework that combines a neural network to detect objects and relationships with a symbolic learner that finds interpretable discriminators. We create large classes of VDP datasets involving natural and artificial images and show that our neurosymbolic framework performs favorably compared to several purely neural approaches.
Adithya Murali, Atharva Sehgal, Paul Krogmeier, P. Madhusudan
IJCAI4
2022 Synthesizing axiomatizations using logic learning
abstract
Axioms and inference rules form the foundation of deductive systems and are crucial in the study of reasoning with logics over structures. Historically, axiomatizations have been discovered manually with much expertise and effort. In this paper we show the feasibility of using synthesis techniques to discover axiomatizations for different classes of structures, and in some contexts, automatically prove their completeness. For evaluation, we apply our technique to find axioms for (1) classes of frames in modal logic characterized in first-order logic and (2) the class of language models with regular operations.
Paul Krogmeier, Zhengyao Lin, Adithya Murali, P. Madhusudan
Proc. ACM Program. Lang.4
2022 Learning formulas in finite variable logics
abstract
We consider grammar-restricted exact learning of formulas and terms in finite variable logics. We propose a novel and versatile automata-theoretic technique for solving such problems. We first show results for learning formulas that classify a set of positively- and negatively-labeled structures. We give algorithms for realizability and synthesis of such formulas along with upper and lower bounds. We also establish positive results using our technique for other logics and variants of the learning problem, including first-order logic with least fixed point definitions, higher-order logics, and synthesis of queries and terms with recursively-defined functions.
Paul Krogmeier, P. Madhusudan
Proc. ACM Program. Lang.2
2022 Model-guided synthesis of inductive lemmas for FOL with least fixpoints
abstract
Recursively defined linked data structures embedded in a pointer-based heap and their properties are naturally expressed in pure first-order logic with least fixpoint definitions (FO+lfp) with background theories. Such logics, unlike pure first-order logic, do not admit even complete procedures. In this paper, we undertake a novel approach for synthesizing inductive hypotheses to prove validity in this logic. The idea is to utilize several kinds of finite first-order models as counterexamples that capture the non-provability and invalidity of formulas to guide the search for inductive hypotheses. We implement our procedures and evaluate them extensively over theorems involving heap data structures that require inductive proofs and demonstrate the effectiveness of our methodology.
Adithya Murali, Lucas Peña, Eion Blanchard, Christof Löding, P. Madhusudan
Proc. ACM Program. Lang.5
2021 Synthesizing contracts correct modulo a test generator
abstract
We present an approach to learn contracts for object-oriented programs where guarantees of correctness of the contracts are made with respect to a test generator. Our contract synthesis approach is based on a novel notion of tight contracts and an online learning algorithm that works in tandem with a test generator to synthesize tight contracts. We implement our approach in a tool called Precis and evaluate it on a suite of programs written in C#, studying the safety and strength of the synthesized contracts, and compare them to those synthesized by Daikon.
Angello Astorga, Shambwaditya Saha, Ahmad Dinkins, Felicia Wang, P. Madhusudan, Tao Xie 0001
Proc. ACM Program. Lang.5
2020 Decidable Synthesis of Programs with Uninterpreted Functions
abstract
We identify a decidable synthesis problem for a class of programs of unbounded size with conditionals and iteration that work over infinite data domains. The programs in our class use uninterpreted functions and relations, and abide by a restriction called coherence that was recently identified to yield decidable verification. We formulate a powerful grammar-restricted (syntax-guided) synthesis problem for coherent uninterpreted programs, and we show the problem to be decidable, identify its precise complexity, and also study several variants of the problem.
Paul Krogmeier, Umang Mathur 0001, Adithya Murali, P. Madhusudan, Mahesh Viswanathan 0001
CAV (2)4
2020 A First-Order Logic with Frames
abstract
Abstract We propose a novel logic, called Frame Logic (FL), that extends first-order logic (with recursive definitions) using a construct $$\textit{Sp}(\cdot )$$ Sp ( · ) that captures the implicit supports of formulas— the precise subset of the universe upon which their meaning depends. Using such supports, we formulate proof rules that facilitate frame reasoning elegantly when the underlying model undergoes change. We show that the logic is expressive by capturing several data-structures and also exhibit a translation from a precise fragment of separation logic to frame logic. Finally, we design a program logic based on frame logic for reasoning with programs that dynamically update heaps that facilitates local specifications and frame reasoning. This program logic consists of both localized proof rules as well as rules that derive the weakest tightest preconditions in FL.
Adithya Murali, Lucas Peña, Christof Löding, P. Madhusudan
ESOP4
2020 What's Decidable About Program Verification Modulo Axioms?
abstract
Abstract We consider the decidability of the verification problem of programs modulo axioms — automatically verifying whether programs satisfy their assertions, when the function and relation symbols are interpreted as arbitrary functions and relations that satisfy a set of first-order axioms. Though verification of uninterpreted programs (with no axioms) is already undecidable, a recent work introduced a subclass of coherent uninterpreted programs, and showed that they admit decidable verification [26]. We undertake a systematic study of various natural axioms for relations and functions, and study the decidability of the coherent verification problem. Axioms include relations being reflexive, symmetric, transitive, or total order relations, functions restricted to being associative, idempotent or commutative, and combinations of such axioms as well. Our comprehensive results unearth a rich landscape that shows that though several axiom classes admit decidability for coherent programs, coherence is not a panacea as several others continue to be undecidable.
Umang Mathur 0001, P. Madhusudan, Mahesh Viswanathan 0001
TACAS (2)2
2020 A Learning-Based Approach to Synthesizing Invariants for Incomplete Verification Engines
abstract
Abstract We propose a framework for synthesizing inductive invariants for incomplete verification engines, which soundly reduce logical problems in undecidable theories to decidable theories. Our framework is based on the counterexample guided inductive synthesis principle and allows verification engines to communicate non-provability information to guide invariant synthesis. We show precisely how the verification engine can compute such non-provability information and how to build effective learning algorithms when invariants are expressed as Boolean combinations of a fixed set of predicates. Moreover, we evaluate our framework in two verification settings, one in which verification engines need to handle quantified formulas and one in which verification engines have to reason about heap properties expressed in an expressive but undecidable separation logic. Our experiments show that our invariant synthesis framework based on non-provability information can both effectively synthesize inductive invariants and adequately strengthen contracts across a large suite of programs. This work is an extended version of a conference paper titled “Invariant Synthesis for Incomplete Verification Engines”.
Daniel Neider, P. Madhusudan, Shambwaditya Saha, Pranav Garg 0001, Daejun Park 0001
J. Autom. Reason.2
2020 Deciding memory safety for single-pass heap-manipulating programs
abstract
We investigate the decidability of automatic program verification for programs that manipulate heaps, and in particular, decision procedures for proving memory safety for them. We extend recent work that identified a decidable subclass of uninterpreted programs to a class of alias-aware programs that can update maps. We apply this theory to develop verification algorithms for memory safety— determining if a heap-manipulating program that allocates and frees memory locations and manipulates heap pointers does not dereference an unallocated memory location. We show that this problem is decidable when the initial allocated heap forms a forest data-structure and when programs are streaming-coherent , which intuitively restricts programs to make a single pass over a data-structure. Our experimental evaluation on a set of library routines that manipulate forest data-structures shows that common single-pass algorithms on data-structures often fall in the decidable class, and that our decision procedure is efficient in verifying them.
Umang Mathur 0001, Adithya Murali, Paul Krogmeier, P. Madhusudan, Mahesh Viswanathan 0001
Proc. ACM Program. Lang.4
2019 Kaizen: Building a Performant Blockchain System Verified for Consensus and Integrity
abstract
We report on the development of a blockchain system that is significantly verified and performant, detailing the design, proof, and system development based on a process of continuous refinement. We instantiate this framework to build, to the best of our knowledge, the first blockchain (Kaizen) that is performant and verified to a large degree, and a cryptocurrency protocol (KznCoin) over it. We experimentally compare its performance against the stock Bitcoin implementation.
Faria Kalim, Karl Palmskog, Jayasi Mehar, Adithya Murali, Indranil Gupta, P. Madhusudan
FMCAD6
2019 Reachability in Concurrent Uninterpreted Programs
abstract
We study the safety verification (reachability problem) for concurrent programs with uninterpreted functions/relations. By extending the notion of coherence, recently identified for sequential programs, to concurrent programs, we show that reachability in coherent concurrent programs under various scheduling restrictions is decidable by a reduction to multistack pushdown automata, and establish precise complexity bounds for them. We also prove that the coherence restriction for these various scheduling restrictions is itself a decidable property.
Salvatore La Torre, P. Madhusudan
FSTTCS2
2019 Learning stateful preconditions modulo a test generator
abstract
In this paper, we present a novel learning framework for inferring stateful preconditions (i.e., preconditions constraining not only primitive-type inputs but also non-primitive-type object states) modulo a test generator, where the quality of the preconditions is based on their safety and maximality with respect to the test generator. We instantiate the learning framework with a specific learner and test generator to realize a precondition synthesis tool for C#. We use an extensive evaluation to show that the tool is highly effective in synthesizing preconditions for avoiding exceptions as well as synthesizing conditions under which methods commute.
Angello Astorga, P. Madhusudan, Shambwaditya Saha, Tao Xie 0001
PLDI2
2019 Sorcar: Property-Driven Algorithms for Learning Conjunctive Invariants
Daniel Neider, Shambwaditya Saha, Pranav Garg 0001, P. Madhusudan
SAS4
2019 Decidable verification of uninterpreted programs
abstract
We study the problem of completely automatically verifying uninterpreted programs—programs that work over arbitrary data models that provide an interpretation for the constants, functions and relations the program uses. The verification problem asks whether a given program satisfies a postcondition written using quantifier-free formulas with equality on the final state, with no loop invariants, contracts, etc. being provided. We show that this problem is undecidable in general. The main contribution of this paper is a subclass of programs, called coherent programs that admits decidable verification, and can be decided in Pspace. We then extend this class of programs to classes of programs that are k -coherent, where k ∈ ℕ, obtained by (automatically) adding k ghost variables and assignments that make them coherent. We also extend the decidability result to programs with recursive function calls and prove several undecidability results that show why our restrictions to obtain decidability seem necessary.
Umang Mathur 0001, P. Madhusudan, Mahesh Viswanathan 0001
Proc. ACM Program. Lang.2
2018 A Decidable Fragment of Second Order Logic With Applications to Synthesis
abstract
We propose a fragment of many-sorted second order logic called EQSMT and show that checking satisfiability of sentences in this fragment is decidable. EQSMT formulae have an $\exists^*\forall^*$ quantifier prefix (over variables, functions and relations) making EQSMT conducive for modeling synthesis problems. Moreover, EQSMT allows reasoning using a combination of background theories provided that they have a decidable satisfiability problem for the $\exists^*\forall^*$ FO-fragment (e.g., linear arithmetic). Our decision procedure reduces the satisfiability of EQSMT formulae to satisfiability queries of $\exists^*\forall^*$ formulae of each individual background theory, allowing us to use existing efficient SMT solvers supporting $\exists^*\forall^*$ reasoning for these theories; hence our procedure can be seen as effectively quantified SMT (EQSMT) reasoning. Errata: We have modified the transformation step-2 (page 9) to correct for a slight error. Also, the description above Theorem 10 is different from the published version.
P. Madhusudan, Umang Mathur 0001, Shambwaditya Saha, Mahesh Viswanathan 0001
CSL1
2018 Lagrange's Theorem for Binary Squares
abstract
We show how to prove theorems in additive number theory using a decision procedure based on finite automata. Among other things, we obtain the following analogue of Lagrange's theorem: every natural number > 686 is the sum of at most 4 natural numbers whose canonical base-2 representation is a binary square, that is, a string of the form xx for some block of bits x. Here the number 4 is optimal. While we cannot embed this theorem itself in a decidable theory, we show that stronger lemmas that imply the theorem can be embedded in decidable theories, and show how automated methods can be used to search for these stronger lemmas.
P. Madhusudan, Dirk Nowotka, Aayush Rajasekaran, Jeffrey Shallit
MFCS1
2018 Invariant Synthesis for Incomplete Verification Engines
Daniel Neider, Pranav Garg 0001, P. Madhusudan, Shambwaditya Saha, Daejun Park 0001
TACAS (1)3
2018 Horn-ICE learning for synthesizing invariants and contracts
abstract
We design learning algorithms for synthesizing invariants using Horn implication counterexamples (Horn-ICE), extending the ICE-learning model. In particular, we describe a decision-tree learning algorithm that learns from nonlinear Horn-ICE samples, works in polynomial time, and uses statistical heuristics to learn small trees that satisfy the samples. Since most verification proofs can be modeled using nonlinear Horn clauses, Horn-ICE learning is a more robust technique to learn inductive annotations that prove programs correct. Our experiments show that an implementation of our algorithm is able to learn adequate inductive invariants and contracts efficiently for a variety of sequential and concurrent programs.
P. Ezudheen, Daniel Neider, Deepak D'Souza, Pranav Garg 0001, P. Madhusudan
Proc. ACM Program. Lang.5
2018 Foundations for natural proofs and quantifier instantiation
abstract
We give foundational results that explain the efficacy of heuristics used for dealing with quantified formulas and recursive definitions. We develop a framework for first order logic (FOL) over an uninterpreted combination of background theories. Our central technical result is that systematic term instantiation is complete for a fragment of FOL that we call safe . Coupled with the fact that unfolding recursive definitions is essentially term instantiation and with the observation that heap verification engines generate verification conditions in the safe fragment explains the efficacy of verification engines like natural proofs that resort to such heuristics. Furthermore, we study recursive definitions with least fixpoint semantics and show that though they are not amenable to complete procedures, we can systematically introduce induction principles that in practice bridge the divide between FOL and FOL with recursive definitions.
Christof Löding, P. Madhusudan, Lucas Peña
Proc. ACM Program. Lang.2
2018 Compositional Synthesis of Piece-Wise Functions by Learning Classifiers
abstract
We present a novel general technique that uses classifier learning to synthesize piece-wise functions (functions that split the domain into regions and apply simpler functions to each region) against logical synthesis specifications. Our framework works by combining a synthesizer of functions for fixed concrete inputs and a synthesizer of predicates that can be used to define regions. We develop a theory of single-point refutable specifications that facilitate generating concrete counterexamples using constraint solvers. We implement the framework for synthesizing piece-wise functions in linear integer arithmetic, combining leaf expression synthesis using constraint-solving with predicate synthesis using enumeration, and tie them together using a decision tree classifier. We demonstrate that this compositional approach is competitive compared to existing synthesis engines on a set of synthesis specifications.
Daniel Neider, Shambwaditya Saha, P. Madhusudan
ACM Trans. Comput. Log.3
2017 Efficient Incrementalized Runtime Checking of Linear Measures on Lists
abstract
We present mechanisms to specify and efficiently check, at runtime, assertions that express structural properties and aggregate measures of dynamically manipulated linkedlist data structures. Checking assertions involving the structure, disjointness, and aggregation measures on lists and list segments typically requires linear or quadratic time in the size of the heap. Our main contribution is an incrementalization instrumentation that tracks properties of data structures dynamically as the program executes and leads to orders of magnitude speedup in assertion checking in many scenarios. Our incrementalization incurs a constant overhead on updates to list structures but enables checking assertions in constant time, independent of the size of the heap. We define a general class of functions on lists, called linear measures, which are amenable to our incrementalization technique. We demonstrate the effectiveness of our technique by showing orders of magnitude speedup in two scenarios: one scenario stemming from assertions at the level of APIs of list-manipulating libraries and the other scenario stemming from providing dynamic detection of security attacks caused by malicious rootkits.
Alex Gyori, Pranav Garg 0001, Edgar Pek, P. Madhusudan
ICST4
2016 Learning invariants using decision trees and implication counterexamples
abstract
Inductive invariants can be robustly synthesized using a learning model where the teacher is a program verifier who instructs the learner through concrete program configurations, classified as positive, negative, and implications. We propose the first learning algorithms in this model with implication counter-examples that are based on machine learning techniques. In particular, we extend classical decision-tree learning algorithms in machine learning to handle implication samples, building new scalable ways to construct small decision trees using statistical measures. We also develop a decision-tree learning algorithm in this model that is guaranteed to converge to the right concept (invariant) if one exists. We implement the learners and an appropriate teacher, and show that the resulting invariant synthesis is efficient and convergent for a large suite of programs.
Pranav Garg 0001, Daniel Neider, P. Madhusudan, Dan Roth 0001
POPL3
2016 Abstract Learning Frameworks for Synthesis
Christof Löding, P. Madhusudan, Daniel Neider
TACAS2
2016 Synthesizing Piece-Wise Functions by Learning Classifiers
Daniel Neider, Shambwaditya Saha, P. Madhusudan
TACAS3
2015 Alchemist: Learning Guarded Affine Functions
Shambwaditya Saha, Pranav Garg 0001, P. Madhusudan
CAV (1)3
2015 Quantified data automata for linear data structures: a register automaton model with applications to learning invariants of programs manipulating arrays and lists
Pranav Garg 0001, Christof Löding, P. Madhusudan, Daniel Neider
Formal Methods Syst. Des.3
2014 ICE: A Robust Framework for Learning Invariants
Pranav Garg 0001, Christof Löding, P. Madhusudan, Daniel Neider
CAV3
2014 Vac - Verifier of Administrative Role-Based Access Control Policies
Anna Lisa Ferrara, P. Madhusudan, Truc L. Nguyen, Gennaro Parlato
CAV2
2014 Online learning versus blended learning: an exploratory study
abstract
Due to the recent emergence of massive open online courses (MOOCs), students and teachers are gaining unprecedented access to high-quality educational content. However, many questions remain on how best to utilize that content in a classroom environment. In this small-scale, exploratory study, we compared two ways of using a recorded video lecture. In the online learning condition, students viewed the video on a personal computer, and also viewed a follow-up tutorial (a quiz review) on the computer. In the blended learning condition, students viewed the video as a group in a classroom, and received the follow-up tutorial from a live lecturer. We randomly assigned 102 students to these conditions, and assessed learning outcomes via a series of quizzes. While we saw significant learning gains after each session conducted, we did not observe any significant differences between the online and blended learning groups. We discuss these findings as well as areas for future work.
Balasubramanyan Ashok, Srinath Bala, Edward Cutrell, Naren Datha, Rahul Kumar 0002, Viraj Kumar, P. Madhusudan, Siddharth Prakash, Sriram K. Rajamani, Satish Sangameswaran, William Thies
L@S8
2014 Natural proofs for asynchronous programs using almost-synchronous reductions
abstract
We consider the problem of provably verifying that an asynchronous message-passing system satisfies its local assertions. We present a novel reduction scheme for asynchronous event-driven programs that finds almost-synchronous invariants - invariants consisting of global states where message buffers are close to empty. The reduction finds almost-synchronous invariants and simultaneously argues that they cover all local states. We show that asynchronous programs often have almost-synchronous invariants and that we can exploit this to build natural proofs that they are correct. We implement our reduction strategy, which is sound and complete, and show that it is more effective in proving programs correct as well as more efficient in finding bugs in several programs, compared to current search strategies which almost always diverge. The high point of our experiments is that our technique can prove the Windows Phone USB Driver written in P [9]correct for the responsiveness property, which was hitherto not provable using state-of-the-art model-checkers.
Ankush Desai, Pranav Garg 0001, P. Madhusudan
OOPSLA3
2014 Natural proofs for data structure manipulation in C using separation logic
abstract
The natural proof technique for heap verification developed by Qiu et al. [32] provides a platform for powerful sound reasoning for specifications written in a dialect of separation logic called Dryad. Natural proofs are proof tactics that enable automated reasoning exploiting recursion, mimicking common patterns found in human proofs. However, these proofs are known to work only for a simple toy language [32].
Edgar Pek, Xiaokang Qiu, P. Madhusudan
PLDI3
2014 Security analysis for temporal role based access control
abstract
Providing restrictive and secure access to resources is a challenging and socially important problem. Among the many formal security models, Role Based Access Control (RBAC) has become the norm in many of today's organizations for enforcing security. For every model, it is necessary to analyze and prove that the corresponding system is secure. Such analysis helps understand the implications of security policies and helps organizations gain confidence on the control they have on resources while providing access, and devise and maintain policies. In this paper, we consider security analysis for the Temporal RBAC (TRBAC), one of the extensions of RBAC. The TRBAC considered in this paper allows temporal restrictions on roles themselves, user-permission assignments (UA), permission-role assignments (PA), as well as role hierarchies (RH). Towards this end, we first propose a suitable administrative model that governs changes to temporal policies. Then we propose our security analysis strategy, that essentially decomposes the temporal security analysis problem into smaller and more manageable RBAC security analysis sub-problems for which the existing RBAC security analysis tools can be employed. We then evaluate them from a practical perspective by evaluating their performance using simulated data sets.
Emre Uzun, Vijayalakshmi Atluri, Jaideep Vaidya, Shamik Sural, Anna Lisa Ferrara, Gennaro Parlato, P. Madhusudan
J. Comput. Secur.7
2013 Verifying security invariants in ExpressOS
abstract
Security for applications running on mobile devices is important. In this paper we present ExpressOS, a new OS for enabling high-assurance applications to run on commodity mobile devices securely. Our main contributions are a new OS architecture and our use of formal methods for proving key security invariants about our implementation. In our use of formal methods, we focus solely on proving that our OS implements our security invariants correctly, rather than striving for full functional correctness, requiring significantly less verification effort while still proving the security relevant aspects of our system.
Haohui Mai, Edgar Pek, Hui Xue 0007, Samuel T. King, P. Madhusudan
ASPLOS5
2013 Learning Universally Quantified Invariants of Linear Data Structures
Pranav Garg 0001, Christof Löding, P. Madhusudan, Daniel Neider
CAV3
2013 Natural proofs for structure, data, and separation
abstract
We propose natural proofs for reasoning with programs that manipulate data-structures against specifications that describe the structure of the heap, the data stored within it, and separation and framing of sub-structures. Natural proofs are a subclass of proofs that are amenable to completely automated reasoning, that provide sound but incomplete procedures, and that capture common reasoning tactics in program verification. We develop a dialect of separation logic over heaps, called Dryad, with recursive definitions that avoids explicit quantification. We develop ways to reason with heaplets using classical logic over the theory of sets, and develop natural proofs for reasoning using proof tactics involving disciplined unfoldings and formula abstractions. Natural proofs are encoded into decidable theories of first-order logic so as to be discharged using SMT solvers.
Xiaokang Qiu, Pranav Garg 0001, Andrei Stefanescu, P. Madhusudan
PLDI4
2013 Quantified Data Automata on Skinny Trees: An Abstract Domain for Lists
Pranav Garg 0001, P. Madhusudan, Gennaro Parlato
SAS2
2013 Policy Analysis for Self-administrated Role-Based Access Control
Anna Lisa Ferrara, P. Madhusudan, Gennaro Parlato
TACAS2
2012 Security Analysis of Role-Based Access Control through Program Verification
abstract
We propose a novel scheme for proving administrative role-based access control (ARBAC) policies correct with respect to security properties using the powerful abstraction-based tools available for program verification. Our scheme uses a combination of abstraction and reduction to program verification to perform security analysis. We convert ARBAC policies to imperative programs that simulate the policy abstractly, and then utilize further abstract-interpretation techniques from program analysis to analyze the programs in order to prove the policies secure. We argue that the aggressive set-abstractions and numerical-abstractions we use are natural and appropriate in the access control setting. We implement our scheme using a tool called VAC that translates ARBAC policies to imperative programs followed by an interval-based static analysis of the program, and show that we can effectively prove access control policies correct. The salient feature of our approach are the abstraction schemes we develop and the reduction of role-based access control security (which has nothing to do with programs) to program verification problems.
Anna Lisa Ferrara, P. Madhusudan, Gennaro Parlato
CSF2
2012 Automated Reasoning and Natural Proofs for Programs Manipulating Data Structures
abstract
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintaining complex and multiple data-structures, given modular pre-post conditions and loop invariants. We discuss specification logics for heaps, and discuss two classes of automatic procedures for reasoning with these logics. The first identifies fragments of logics that admit completely decidable reasoning. The second is a new approach called the natural proof method that builds proof procedures for very expressive logics that are automatic and sound (but incomplete), and that embody natural proof tactics learnt from manual verification.
P. Madhusudan
FSTTCS1
2012 Recursive proofs for inductive tree data-structures
abstract
We develop logical mechanisms and procedures to facilitate the verification of full functional properties of inductive tree data-structures using recursion that are sound, incomplete, but terminating. Our contribution rests in a new extension of first-order logic with recursive definitions called Dryad, a syntactical restriction on pre- and post-conditions of recursive imperative programs using Dryad, and a systematic methodology for accurately unfolding the footprint on the heap uncovered by the program that leads to finding simple recursive proofs using formula abstraction and calls to SMT solvers. We evaluate our methodology empirically and show that several complex tree data-structure algorithms can be checked against full functional specifications automatically, given pre- and post-conditions. This results in the first automatic terminating methodology for proving a wide variety of annotated algorithms on tree data-structures correct, including max-heaps, treaps, red-black trees, AVL trees, binomial heaps, and B-trees.
P. Madhusudan, Xiaokang Qiu, Andrei Stefanescu
POPL1
2012 Analyzing temporal role based access control models
abstract
Today, Role Based Access Control (RBAC) is the de facto model used for advanced access control, and is widely deployed in diverse enterprises of all sizes. Several extensions to the authorization as well as the administrative models for RBAC have been adopted in recent years. In this paper, we consider the temporal extension of RBAC (TRBAC), and develop safety analysis techniques for it. Safety analysis is essential for understanding the implications of security policies both at the stage of specification and modification. Towards this end, in this paper, we first define an administrative model for TRBAC. Our strategy for performing safety analysis is to appropriately decompose the TRBAC analysis problem into multiple subproblems similar to RBAC. Along with making the analysis simpler, this enables us to leverage and adapt existing analysis techniques developed for traditional RBAC. We have adapted and experimented with employing two state of the art analysis approaches developed for RBAC as well as tools developed for software testing. Our results show that our approach is both feasible and flexible.
Emre Uzun, Vijayalakshmi Atluri, Shamik Sural, Jaideep Vaidya, Gennaro Parlato, Anna Lisa Ferrara, P. Madhusudan
SACMAT7
2012 Predicting null-pointer dereferences in concurrent programs
abstract
We propose null-pointer dereferences as a target for finding bugs in concurrent programs using testing. A null-pointer dereference prediction engine observes an execution of a concurrent program under test and predicts alternate interleavings that are likely to cause null-pointer dereferences. Though accurate scalable prediction is intractable, we provide a carefully chosen novel set of techniques to achieve reasonably accurate and scalable prediction. We use an abstraction to the shared-communication level, take advantage of a static lock-set based pruning, and finally, employ precise and relaxed constraint solving techniques that use an SMT solver to predict schedules. We realize our techniques in a tool, ExceptioNULL, and evaluate it over 13 benchmark programs and find scores of null-pointer dereferences by using only a single test run as the prediction seed for each benchmark.
Azadeh Farzan, P. Madhusudan, Niloofar Razavi, Francesco Sorrentino 0002
SIGSOFT FSE2
2012 Reachability under Contextual Locking
Rohit Chadha, P. Madhusudan, Mahesh Viswanathan 0001
TACAS2
2011 The tree width of auxiliary storage
abstract
We propose a generalization of results on the decidability of emptiness for several restricted classes of sequential and distributed automata with auxiliary storage (stacks, queues) that have recently been proved. Our generalization relies on reducing emptiness of these automata to finite-state graph automata (without storage) restricted to monadic second-order (MSO) definable graphs of bounded tree-width, where the graph structure encodes the mechanism provided by the auxiliary storage. Our results outline a uniform mechanism to derive emptiness algorithms for automata, explaining and simplifying several existing results, as well as proving new decidability results.
P. Madhusudan, Gennaro Parlato
POPL1
2011 Decidable logics combining heap structures and data
abstract
We define a new logic, STRAND, that allows reasoning with heap-manipulating programs using deductive verification and SMT solvers. STRAND logic ("STRucture ANd Data" logic) formulas express constraints involving heap structures and the data they contain; they are defined over a class of pointer-structures R defined using MSO-defined relations over trees, and are of the form ∃→x∀→y (→x,→) x" , where "φ" is a monadic second-order logic (MSO) formulawith additional quantification that combines structural constraints as well as data-constraints, but where the data-constraints are only allowed to refer to "→x" and "→y"
P. Madhusudan, Gennaro Parlato, Xiaokang Qiu
POPL1
2011 Thread contracts for safe parallelism
abstract
We build a framework of thread contracts, called Accord, that allows programmers to annotate their concurrency co-ordination strategies. Accord annotations allow programmers to declaratively specify the parts of memory that a thread may read or write into, and the locks that protect them, reflecting the concurrency co-ordination among threads and the reason why the program is free of data-races. We provide automatic tools to check if the concurrency co-ordination strategy ensures race-freedom, using constraint-solvers (SMT solvers). Hence programmers using Accord can both formally state and prove their co-ordination strategies ensure race freedom. The programmer's implementation of the co-ordination strategy may however be correct or incorrect. We show how the formal Accord contracts allow us to automatically insert runtime assertions that serve to check, during testing, whether the implementation conforms to the contract. Using a large class of data-parallel programs that share memory in intricate ways, we show that natural and simple contracts suffice to document the co-ordination strategy amongst threads, and that the task of showing that the strategy ensures race-freedom can be handled efficiently and automatically by an existing SMT solver (Z3). While co-ordination strategies can be proved race-free in our framework, failure to prove the co-ordination strategy race-free, accompanied by counter-examples produced by the solver, indicates the presence of races. Using such counterexamples, we report hitherto undiscovered data-races that we found in the long-tested applu_l benchmark in the Spec OMP2001 suite.
Rajesh K. Karmani, P. Madhusudan, Brandon M. Moore
PPoPP2
2011 Efficient Decision Procedures for Heaps Using STRAND
P. Madhusudan, Xiaokang Qiu
SAS1
2011 Compositionality Entails Sequentializability
Pranav Garg 0001, P. Madhusudan
TACAS2
2011 Software model checking using languages of nested trees
abstract
While model checking of pushdown systems is by now an established technique in software verification, temporal logics and automata traditionally used in this area are unattractive on two counts. First, logics and automata traditionally used in model checking cannot express requirements such as pre/post-conditions that are basic to analysis of software. Second, unlike in the finite-state world, where the μ-calculus has a symbolic model-checking algorithm and serves as an “assembly language” to which temporal logics can be compiled, there is no common formalism—either fixpoint-based or automata-theoretic—to model-check requirements on pushdown models. In this article, we introduce a new theory of temporal logics and automata that addresses the above issues, and provides a unified foundation for the verification of pushdown systems. The key idea here is to view a program as a generator of structures known as nested trees as opposed to trees. A fixpoint logic (called N T -μ) and a class of automata (called nested tree automata ) interpreted on languages of these structures are now defined, and branching-time model-checking is phrased as language inclusion and membership problems for these languages. We show that N T -μ and nested tree automata allow the specification of a new frontier of requirements usable in software verification. At the same time, their model checking problem has the same worst-case complexity as their traditional analogs, and can be solved symbolically using a fixpoint computation that generalizes, and includes as a special case, “summary”-based computations traditionally used in interprocedural program analysis. We also show that our logics and automata define a robust class of languages—in particular, just as the μ-calculus is equivalent to alternating parity automata on trees, NT-μ is equivalent to alternating parity automata on nested trees.
Rajeev Alur, Swarat Chaudhuri, P. Madhusudan
ACM Trans. Program. Lang. Syst.3
2010 Model-Checking Parameterized Concurrent Programs Using Linear Interfaces
Salvatore La Torre, P. Madhusudan, Gennaro Parlato
CAV2
2010 The Language Theory of Bounded Context-Switching
Salvatore La Torre, P. Madhusudan, Gennaro Parlato
LATIN2
2010 PENELOPE: weaving threads to expose atomicity violations
abstract
Testing concurrent programs is challenged by the interleaving explosion problem--- the problem of exploring the large number of interleavings a program exhibits, even under a single test input. Rather than try all interleavings, we propose to test wisely: to exercise only those schedules that lead to interleavings that are typical error patterns. In particular, in this paper we select schedules that exercise patterns of interaction that correspond to atomicity violations. Given an execution of a program under a test harness, our technique is to algorithmically mine from the execution a small set of alternate schedules that cause atomicity violations. The program is then re-executed under these predicted atomicity-violating schedules, and verified by the test harness. The salient feature of our tool is the efficient algorithmic prediction and synthesis of alternate schedules that cover all possible atomicity violations at program locations. We implement the tool PENELOPE that realizes this testing framework and show that the monitoring, prediction, and rescheduling (with precise repro) are efficient and effective in finding bugs related to atomicity violations.
Francesco Sorrentino 0002, Azadeh Farzan, P. Madhusudan
SIGSOFT FSE3
2010 VEX: Vetting Browser Extensions for Security Vulnerabilities
Sruthi Bandhakavi, Samuel T. King, P. Madhusudan, Marianne Winslett
USENIX Security Symposium3
2010 CANDID: Dynamic candidate evaluations for automatic prevention of SQL injection attacks
abstract
SQL injection attacks are one of the top-most threats for applications written for the Web. These attacks are launched through specially crafted user inputs, on Web applications that use low-level string operations to construct SQL queries. In this work, we exhibit a novel and powerful scheme for automatically transforming Web applications to render them safe against all SQL injection attacks. A characteristic diagnostic feature of SQL injection attacks is that they change the intended structure of queries issued. Our technique for detecting SQL injection is to dynamically mine the programmer-intended query structure on any input, and detect attacks by comparing it against the structure of the actual query issued. We propose a simple and novel mechanism, called Candid, for mining programmer intended queries by dynamically evaluating runs over benign candidate inputs. This mechanism is theoretically well founded and is based on inferring intended queries by considering the symbolic query computed on a program run. Our approach has been implemented in a tool called Candid that retrofits Web applications written in Java to defend them against SQL injection attacks. We have also implemented Candid by modifying a Java Virtual Machine, which safeguards applications without requiring retrofitting. We report extensive experimental results that show that our approach performs remarkably well in practice.
Prithvi Bisht, P. Madhusudan, V. N. Venkatakrishnan
ACM Trans. Inf. Syst. Secur.2
2009 Meta-analysis for Atomicity Violations under Nested Locking
Azadeh Farzan, P. Madhusudan, Francesco Sorrentino 0002
CAV2
2009 Reducing Context-Bounded Concurrent Reachability to Sequential Reachability
Salvatore La Torre, P. Madhusudan, Gennaro Parlato
CAV2
2009 Query Automata for Nested Words
P. Madhusudan, Mahesh Viswanathan 0001
MFCS1
2009 Analyzing recursive programs using a fixed-point calculus
abstract
We show that recursive programs where variables range over finite domains can be effectively and efficiently analyzed by describing the analysis algorithm using a formula in a fixed-point calculus. In contrast with programming in traditional languages, a fixed-point calculus serves as a high-level programming language to easily, correctly, and succinctly describe model-checking algorithms While there have been declarative high-level formalisms that have been proposed earlier for analysis problems (e.g., Datalog the fixed-point calculus we propose has the salient feature that it also allows algorithmic aspects to be specified.
Salvatore La Torre, P. Madhusudan, Gennaro Parlato
PLDI2
2009 The Complexity of Predicting Atomicity Violations
Azadeh Farzan, P. Madhusudan
TACAS2
2009 Adding nesting structure to words
abstract
We propose the model of nested words for representation of data with both a linear ordering and a hierarchically nested matching of items. Examples of data with such dual linear-hierarchical structure include executions of structured programs, annotated linguistic data, and HTML/XML documents. Nested words generalize both words and ordered trees, and allow both word and tree operations. We define nested word automata —finite-state acceptors for nested words, and show that the resulting class of regular languages of nested words has all the appealing theoretical properties that the classical regular word languages enjoys: deterministic nested word automata are as expressive as their nondeterministic counterparts; the class is closed under union, intersection, complementation, concatenation, Kleene-*, prefixes, and language homomorphisms; membership, emptiness, language inclusion, and language equivalence are all decidable; and definability in monadic second order logic corresponds exactly to finite-state recognizability. We also consider regular languages of infinite nested words and show that the closure properties, MSO-characterization, and decidability of decision problems carry over. The linear encodings of nested words give the class of visibly pushdown languages of words, and this class lies between balanced languages and deterministic context-free languages. We argue that for algorithmic verification of structured programs, instead of viewing the program as a context-free language over words, one should view it as a regular language of nested words (or equivalently, a visibly pushdown language), and this would allow model checking of many properties (such as stack inspection, pre-post conditions) that are not expressible in existing specification logics. We also study the relationship between ordered trees and nested words, and the corresponding automata: while the analysis complexity of nested word automata is the same as that of classical tree automata, they combine both bottom-up and top-down traversals, and enjoy expressiveness and succinctness benefits over tree automata.
Rajeev Alur, P. Madhusudan
J. ACM2
2008 Monitoring Atomicity in Concurrent Programs
Azadeh Farzan, P. Madhusudan
CAV2
2008 A formal framework for reflective database access control policies
abstract
Reflective Database Access Control (RDBAC) is a model in which a database privilege is expressed as a database query itself, rather than as a static privilege contained in an access control list. RDBAC aids the management of database access controls by improving the expressiveness of policies. However, such policies introduce new interactions between data managed by different users, and can lead to unexpected results if not carefully written and analyzed. We propose the use of Transaction Datalog as a formal framework for expressing reflective access control policies. We demonstrate how it provides a basis for analyzing certain types of policies and enables secure implementations that can guarantee that configurations built on these policies cannot be subverted.
Lars E. Olson 0001, Carl A. Gunter, P. Madhusudan
CCS3
2008 Context-Bounded Analysis of Concurrent Queue Systems
Salvatore La Torre, P. Madhusudan, Gennaro Parlato
TACAS2
2008 Automatic symbolic compositional verification by learning assumptions
Wonhong Nam, P. Madhusudan, Rajeev Alur
Formal Methods Syst. Des.2
2007 CANDID: preventing sql injection attacks using dynamic candidate evaluations
abstract
SQL injection attacks are one of the topmost threats for applications written for the Web. These attacks are launched through specially crafted user input on web applications that use low level string operations to construct SQL queries. In this work, we exhibit a novel and powerful scheme for automatically transforming web applications to render them safe against all SQL injection attacks.
Sruthi Bandhakavi, Prithvi Bisht, P. Madhusudan, V. N. Venkatakrishnan
CCS3
2007 A Robust Class of Context-Sensitive Languages
abstract
We define a new class of languages defined by multi-stack automata that forms a robust subclass of context-sensitive languages, with decidable emptiness and closure under boolean operations. This class, called multi-stack visibly pushdown languages (MVPLs), is defined using multi-stack pushdown automata with two restrictions: (a) the pushdown automaton is visible, i.e. the input letter determines the operation on the stacks, and (b) any computation of the machine can be split into k stages, where in each stage, there is at most one stack that is popped. MVPLs are an extension of visibly pushdown languages that captures noncontext free behaviors, and has applications in analyzing abstractions of multithreaded recursive programs, signifi- cantly enlarging the search space that can be explored for them. We show that MVPLs are closed under boolean operations, and problems such as emptiness and inclusion are decidable. We characterize MVPLs using monadic second-order logic over appropriate structures, and exhibit a Parikh theorem for them.
Salvatore La Torre, P. Madhusudan, Gennaro Parlato
LICS2
2007 Causal Dataflow Analysis for Concurrent Programs
Azadeh Farzan, P. Madhusudan
TACAS2
2007 Learning Algorithms and Formal Verification (Invited Tutorial)
P. Madhusudan
VMCAI1
2007 Visibly pushdown automata for streaming XML
abstract
We propose the study of visibly pushdown automata (VPA) for processing XML documents. VPAs are pushdown automata where the input determines the stack operation, and XML documents are naturally visibly pushdown with the VPA pushing onto the stack on open-tags and popping the stack on close-tags. In this paper we demonstrate the power and ease visibly pushdown automata give in the design of streaming algorithms for XML documents.
Viraj Kumar, P. Madhusudan, Mahesh Viswanathan 0001
WWW2
2006 Languages of Nested Trees
Rajeev Alur, Swarat Chaudhuri, P. Madhusudan
CAV3
2006 Causal Atomicity
Azadeh Farzan, P. Madhusudan
CAV2
2006 Minimization, Learning, and Conformance Testing of Boolean Programs
Viraj Kumar, P. Madhusudan, Mahesh Viswanathan 0001
CONCUR2
2006 Adding Nesting Structure to Words
Rajeev Alur, P. Madhusudan
Developments in Language Theory2
2006 A fixpoint calculus for local and global program flows
abstract
We define a new fixpoint modal logic, the visibly pushdown μ-calculus (VP-μ), as an extension of the modal μ-calculus. The models of this logic are execution trees of structured programs where the procedure calls and returns are made visible. This new logic can express pushdown specifications on the model that its classical counterpart cannot, and is motivated by recent work on visibly pushdown languages [4]. We show that our logic naturally captures several interesting program specifications in program verification and dataflow analysis. This includes a variety of program specifications such as computing combinations of local and global program flows, pre/post conditions of procedures, security properties involving the context stack, and interprocedural dataflow analysis properties. The logic can capture flow-sensitive and inter-procedural analysis, and it has constructs that allow skipping procedure calls so that local flows in a procedure can also be tracked. The logic generalizes the semantics of the modal μ-calculus by considering summaries instead of nodes as first-class objects, with appropriate constructs for concatenating summaries, and naturally captures the way in which pushdown models are model-checked. The main result of the paper is that the model-checking problem for VP-μ is effectively solvable against pushdown models with no more effort than that required for weaker logics such as CTL. We also investigate the expressive power of the logic VP-μ: we show that it encompasses all properties expressed by a corresponding pushdown temporal logic on linear structures (caret [2]) as well as by the classical μ-calculus. This makes VP-μ the most expressive known program logic for which algorithmic software model checking is feasible. In fact, the decidability of most known program logics (μ-calculus, temporal logics LTL and CTL, caret, etc.) can be understood by their interpretation in the monadic second-order logic over trees. This is not true for the logic VP-μ, making it a new powerful tractable program logic.
Rajeev Alur, Swarat Chaudhuri, P. Madhusudan
POPL3
2006 Modular strategies for recursive game graphs
Rajeev Alur, Salvatore La Torre, P. Madhusudan
Theor. Comput. Sci.3
2005 Symbolic Compositional Verification by Learning Assumptions
Rajeev Alur, P. Madhusudan, Wonhong Nam
CAV2
2005 The MSO Theory of Connectedly Communicating Processes
P. Madhusudan, P. S. Thiagarajan, Shaofa Yang
FSTTCS1
2005 Congruences for Visibly Pushdown Languages
Rajeev Alur, Viraj Kumar, P. Madhusudan, Mahesh Viswanathan 0001
ICALP3
2005 Synthesis of interface specifications for Java classes
abstract
While a typical software component has a clearly specified (static) interface in terms of the methods and the input/output types they support, information about the correct sequencing of method calls the client must invoke is usually undocumented. In this paper, we propose a novel solution for automatically extracting such temporal specifications for Java classes. Given a Java class, and a safety property such as “the exception E should not be raised”, the corresponding (dynamic) interface is the most general way of invoking the methods in the class so that the safety property is not violated. Our synthesis method first constructs a symbolic representation of the finite state-transition system obtained from the class using predicate abstraction. Constructingthe interface then corresponds to solving a partial-information two-player game on this symbolic graph. We present a sound approach to solve this computationally-hard problem approximately using algorithms for learning finite automata and symbolic model checking for branching-time logics. We describe an implementation of the proposed techniques in the tool JIST — Java Interface Synthesis Tool—and demonstrate that the tool can construct interfaces accurately and efficiently for sample Java2SDK library classes. Categories and Subject Descriptors: D.2.4 [Software Engineering] Software/Program Verification-formal methods, model checking; D.2.1 [Software Engineering] Requirements/Specification-methodologies, tools; D.2.2 [Software
Rajeev Alur, Pavol Cerný, P. Madhusudan, Wonhong Nam
POPL3
2005 On-the-Fly Reachability and Cycle Detection for Recursive State Machines
Rajeev Alur, Swarat Chaudhuri, Kousha Etessami, P. Madhusudan
TACAS4
2005 Symbolic computational techniques for solving games
Rajeev Alur, P. Madhusudan, Wonhong Nam
Int. J. Softw. Tools Technol. Transf.2
2004 Visibly Pushdown Games
Christof Löding, P. Madhusudan, Olivier Serre
FSTTCS2
2004 Optimal Reachability for Weighted Timed Games
Rajeev Alur, Mikhail Bernadsky, P. Madhusudan
ICALP3
2004 Visibly pushdown languages
abstract
We propose the class of visibly pushdown languages as embeddings of context-free languages that is rich enough to model program analysis questions and yet is tractable and robust like the class of regular languages. In our definition, the input symbol determines when the pushdown automaton can push or pop, and thus the stack depth at every position. We show that the resulting class Vpl of languages is closed under union, intersection, complementation, renaming, concatenation, and Kleene-*, and problems such as inclusion that are undecidable for context-free languages are Exptime-complete for visibly pushdown automata. Our framework explains, unifies, and generalizes many of the decision procedures in the program analysis literature, and allows algorithmic verification of recursive programs with respect to many context-free properties including access control properties via stack inspection and correctness of procedures with respect to pre and post conditions. We demonstrate that the class Vpl is robust by giving two alternative characterizations: a logical characterization using the monadic second order (MSO) theory over words augmented with a binary matching predicate, and a correspondence to regular tree languages. We also consider visibly pushdown languages of infinite words and show that the closure properties, MSO-characterization and the characterization in terms of regular trees carry over. The main difference with respect to the case of finite words turns out to be determinizability: nondeterministic Büchi visibly pushdown automata are strictly more expressive than deterministic Muller visibly pushdown automata.
Rajeev Alur, P. Madhusudan
STOC2
2004 A Temporal Logic of Nested Calls and Returns
Rajeev Alur, Kousha Etessami, P. Madhusudan
TACAS3
2003 Modular Strategies for Infinite Games on Recursive Graphs
Rajeev Alur, Salvatore La Torre, P. Madhusudan
CAV3
2003 Timed Control with Partial Observability
Patricia Bouyer, Deepak D'Souza, P. Madhusudan, Antoine Petit 0001
CAV3
2003 Playing Games with Boxes and Diamonds
Rajeev Alur, Salvatore La Torre, P. Madhusudan
CONCUR3
2003 Model-checking Trace Event Structures
abstract
Given regular collection of Mazurkiewicz traces, which can be seen as the behaviors of a finite-state concurrent system, one can associate with it a canonical regular event structure. This event structure is a single (often infinite) structure that captures both the concurrency and conflict information present in the system. We study the problem of model-checking such structures against logics such as first-order logic (FOL), monadic second-order logic (MSOL) and a new logic that lies in between these two called monadic trace logic (MTL). MTL is a fragment of MSOL where the quantification is restricted to sets that are conflict-free. While it is known that model-checking such event structures against MSOL is undecidable, our main results are that FOL and MTL admit effective model-checking procedures. It turns out that FOL captures previously known decidable temporal logics on event structures. MTL is more powerful and can express interesting branching-time properties of event structures, and when restricted to a sequential setting, can express the standard logic CTL over trees.
P. Madhusudan
LICS1
2003 Modular Strategies for Recursive Game Graphs
Rajeev Alur, Salvatore La Torre, P. Madhusudan
TACAS3
2002 A Decidable Class of Asynchronous Distributed Controllers
P. Madhusudan, P. S. Thiagarajan
CONCUR1
2002 Dynamic Message Sequence Charts
Martin Leucker, P. Madhusudan, Supratik Mukhopadhyay
FSTTCS2
2002 Timed Control Synthesis for External Specifications
Deepak D'Souza, P. Madhusudan
STACS2
2002 Branching time controllers for discrete event systems
P. Madhusudan, P. S. Thiagarajan
Theor. Comput. Sci.1
2001 Beyond Message Sequence Graphs
P. Madhusudan, Meenakshi D'Souza
FSTTCS1
2001 Reasoning about Sequential and Branching Behaviours of Message Sequence Graphs
P. Madhusudan
ICALP1
2001 Distributed Controller Synthesis for Local Specifications
P. Madhusudan, P. S. Thiagarajan
ICALP1
2000 Open Systems in Reactive Environments: Control and Synthesis
Orna Kupferman, P. Madhusudan, P. S. Thiagarajan, Moshe Y. Vardi
CONCUR2
1998 Controllers for Discrete Event Systems via Morphisms
P. Madhusudan, P. S. Thiagarajan
CONCUR1