Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Mana Taghdiri is active.

Publication


Featured researches published by Mana Taghdiri.


formal techniques for networked and distributed systems | 2003

A Lightweight Formal Analysis of a Multicast Key Management Scheme

Mana Taghdiri; Daniel Jackson

This paper describes the analysis of Pull-Based Asynchronous Rekeying Framework (ARF), a recently proposed solution to the scalable group key management problem in secure multicast. A model of this protocol is constructed in Alloy, a lightweight relational modeling language, and analyzed using the Alloy Analyzer, a fully automatic simulation and checking tool for Alloy models. In this analysis, some critical correctness properties that should be satisfied by any secure multicast protocol are checked. Some flaws, previously unknown to the protocol’s designers are exposed, including one serious security breach. To eliminate the most serious flaw, some fixes are proposed and checked using the Alloy Analyzer. The case study also illustrates a novel modeling idiom that supports better modularity and is generally simpler and more intuitive than the conventional idiom used for modeling distributed systems.


formal methods | 2011

Relational reasoning via SMT solving

Aboubakr Achraf El Ghazi; Mana Taghdiri

This paper explores the idea of using a SAT Modulo Theories (SMT) solver for proving properties of relational specifications. The goal is to automatically establish or refute consistency of a set of constraints expressed in a first-order relational logic, namely Alloy, without limiting the analysis to a bounded scope. Existing analysis of relational constraints - as performed by the Alloy Analyzer - is based on SAT solving and thus requires finitizing the set of values that each relation can take. Our technique complements this approach by axiomatizing all relational operators in a first-order SMT logic, and taking advantage of the background theories supported by SMT solvers. Consequently, it can potentially prove that a formula is a tautology - a capability completely missing from the Alloy Analyzer - and generate a counterexample when the proof fails. We also report on our experiments of applying this technique to various systems specified in Alloy.


foundations of software engineering | 2006

Lightweight extraction of syntactic specifications

Mana Taghdiri; Robert Seater; Daniel Jackson

A method for extracting syntactic specifications from heap-manipulating code is described. The state of the heap is represented as an environment mapping each variable or field to a relational expression. A procedure is executed symbolically, obtaining an environment for the post-state that gives the value of each variable and field in terms of the values of variables and fields of the pre-state. Approximation is introduced by forming relational unions at merge points in the control flow graph, and by widening union-of-join expressions to transitive closures. The resulting analysis is linear in the length of the code and the number of fields, but capable of producing non-trivial specifications of surprising accuracy.


international conference on software testing verification and validation | 2012

Bounded Program Verification Using an SMT Solver: A Case Study

Tianhai Liu; Michael Nagel; Mana Taghdiri

We present a novel approach to bounded program verification that exploits recent advances of SMT solvers in modular checking of object-oriented code against its full specification. Bounded program verification techniques exhaustively check the specifications of a bounded program with respect to a bounded domain. To our knowledge, however, those techniques that target data-structure-rich programs reduce the problem to propositional logic directly, and use a SAT solver as the backend engine. Scalability, therefore, becomes a major issue due to bit blasting problems. In this paper, we present a novel approach that translates bounded Java programs and their JML specifications to quantified bit-vector formulas (QBVF) with arrays, and solves them using an SMT solver. QBVF allows logical constraints that are structurally closer to the original program and specification, and can be significantly simplified via high-level reasonings before being flattened in a basic logic. We also present a case study on a large-scale implementation of Dijkstras shortest path algorithm. The results indicate that our approach provides significant speedups over a SAT-based approach.


formal aspects in security and trust | 2010

Information flow analysis via path condition refinement

Mana Taghdiri; Gregor Snelting; Carsten Sinz

We present a new approach to information flow control (IFC), which exploits counterexample-guided abstraction refinement (CEGAR) technology. The CEGAR process is built on top of our existing IFC analysis in which illegal flows are characterized using program dependence graphs (PDG) and path conditions (as described in [12]). Although path conditions provide an already precise abstraction that can be used to generate witnesses to the illegal flow, they may still cause false alarms. Our CEGAR process recognizes false witnesses by executing them and monitoring their executions, and eliminates them by automatically refining path conditions in an iterative way as needed. The paper sketches the foundations of CEGAR and PDG-based IFC, and describes the approach in detail. An example shows how the approach finds illegal flow, and demonstrates how CEGAR eliminates false alarms.


tools and algorithms for construction and analysis of systems | 2012

A proof assistant for alloy specifications

Mattias Ulbrich; Ulrich Geilmann; Aboubakr Achraf El Ghazi; Mana Taghdiri

Alloy is a specification language based on a relational first-order logic with built-in operators for transitive closure, set cardinality, and integer arithmetic. The Alloy Analyzer checks Alloy specifications automatically with respect to bounded domains. Thus, while suitable for finding counterexamples, it cannot, in general, provide correctness proofs. This paper presents Kelloy, a tool for verifying Alloy specifications with respect to potentially infinite domains. It describes an automatic translation of the full Alloy language to the first-order logic of the KeY theorem prover, and an Alloy-specific extension to KeYs calculus. It discusses correctness and completeness conditions of the translation, and reports on our automatic and interactive experiments.


haifa verification conference | 2014

A Comparative Study of Incremental Constraint Solving Approaches in Symbolic Execution

Tianhai Liu; Mateus Araújo; Marcelo d’Amorim; Mana Taghdiri

Constraint solving is a major source of cost in Symbolic Execution (SE). This paper presents a study to assess the importance of some sensible options for solving constraints in SE. The main observation is that stack-based approaches to incremental solving is often much faster compared to cache-based approaches, which are more popular. Considering all 96 C programs from the KLEE benchmark that we analyzed, the median speedup obtained with a (non-optimized) stack-based approach was of 5x. Results suggest that tools should take advantage of incremental solving support from modern SMT solvers and researchers should look for ways to combine stack- and cache-based approaches to reduce execution cost even further. Instructions to reproduce results are available online: http://asa.iti.kit.edu/130_392.php


Mathematical Structures in Computer Science | 2013

Applications and extensions of Alloy: past, present and future

Emina Torlak; Mana Taghdiri; Greg Dennis; Joseph P. Near

Alloy is a declarative language for lightweight modelling and analysis of software. The core of the language is based on first-order relational logic, which offers an attractive balance between analysability and expressiveness. The logic is expressive enough to capture the intricacies of real systems, but is also simple enough to support fully automated analysis with the Alloy Analyzer. The Analyzer is built on a SAT-based constraint solver and provides automated simulation, checking and debugging of Alloy specifications. Because of its automated analysis and expressive logic, Alloy has been applied in a wide variety of domains. These applications have motivated a number of extensions both to the Alloy language and to its SAT-based analysis. This paper provides an overview of Alloy in the context of its three largest application domains, lightweight modelling, bounded code verification and test-case generation, and three recent application-driven extensions, an imperative extension to the language, a compiler to executable code and a proof-capable analyser based on SMT.


nasa formal methods | 2014

JKelloy: A Proof Assistant for Relational Specifications of Java Programs

Aboubakr Achraf El Ghazi; Mattias Ulbrich; Christoph Gladisch; Shmuel S. Tyszberowicz; Mana Taghdiri

Alloy is a relational specification language with a built-in transitive closure operator which makes it particularly suitable for writing concise specifications of linked data structures. Several tools support Alloy specifications for Java programs. However, they can only check the validity of those specifications with respect to a bounded domain, and thus, in general, cannot provide correctness proofs. This paper presents JKelloy, a tool for deductive verification of Java programs with Alloy specifications. It includes automatically-generated coupling axioms that bridge between specifications and Java states, and two sets of calculus rules that 1 generate verification conditions in relational logic and 2 simplify reasoning about them. All rules have been proved correct. To increase automation capabilities, proof strategies are introduced that control the application of those rules. Our experiments on linked lists and binary graphs show the feasibility of the approach.


theory and applications of satisfiability testing | 2013

Minimizing models for tseitin-encoded SAT instances

Markus Iser; Carsten Sinz; Mana Taghdiri

Many applications of SAT solving can profit from minimal models--a partial variable assignment that is still a witness for satisfiability. Examples include software verification, model checking, and counterexample-guided abstraction refinement. In this paper, we examine how a given model can be minimized for SAT instances that have been obtained by Tseitin encoding of a full propositional logic formula. Our approach uses a SAT solver to efficiently minimize a given model, focusing on only the input variables. Experiments show that some models can be reduced by over 50 percent.

Collaboration


Dive into the Mana Taghdiri's collaboration.

Top Co-Authors

Avatar

Aboubakr Achraf El Ghazi

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Mattias Ulbrich

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Tianhai Liu

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Carsten Sinz

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Daniel Jackson

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Markus Iser

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Mihai Herda

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Ulrich Geilmann

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Bernhard Beckert

Karlsruhe Institute of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge