|
 |
Formal Methods Seminar at UIUC
|
 |
|
Welcome to the formal methods seminar's website at
UIUC.
Any UIUC student, visitor or faculty member is welcome to subscribe to
our list and to attend our meetings. To subscribe, please follow this
link.
We currently meet every Friday at 10:00AM in 2124SC, but sometimes
there are exceptions, so make sure that you check the exact meeting
place, date and time.
Past talks
Past years
Related UIUC Laboratories
Upcoming talks
Friday, September 22nd, 10:00AM, 3405SC
- Grigore Rosu,
University of Illinois at Urbana-Champaign
Equality of Streams is a $\Pi_2^0$-Complete Problem
We give a precise characterization for the complexity of the
problem of proving equal two streams defined with a finite number of
equations: $\Pi_2^0$. Since the $\Pi_2^0$ class includes properly
both the recursively enumerable and the co-recursively enumerable
classes, this result implies that neither the set of pairs of equal
streams nor the set of pairs of unequal streams is recursively
enumerable. Consequently, one can find no algorithm for determining
equality of streams, as well as no algorithm for determining
inequality of streams. In particular, there is no complete proof
system for equality of streams and no complete system for inequality
of streams.
This is a post-mortem "preparation" ICFP talk :-)
Past talks
Monday, June 12th, 04:00PM, 2124SC
Friday, May 12th, 10:00AM, 2124SC
- Matthew Wilding
,
Rockwell Collins Advanced Technology Center, Cedar Rapids, Iowa
Formal Verification of a Secure Microprocessor
Formal models and proofs can help demonstrate that a computer system
implementation is correct, and they are required for some kinds of
secure
system certifications. Rockwell Collins, which has been conducting
"formal methods" research for 10+ years, used this approach to establish
correct microcode implementation of aspects of its AAMP7G
microprocessor. A formal low-level design model of the trusted microcode
implementation of the AAMP7G was proved to preserve proper separation
that the AAMP7G enforces with its intrinsic partitioning mechanism. The
AAMP7G separation
correctness theorem proof was developed using the ACL2 theorem prover,
and
the hundreds of pages of definitions and lemmas that lead ACL2 to accept
the separation correctness proof are checked using this
publically-available tool. This proof led in part to the National
Security Agency's certification of this microprocessor as capable of
simultaneously processing information at all levels of classification.
This work was done in collaboration with David Greve and Raymond
Richards
of the Rockwell Collins Advanced Technology Center.
Bio: Matthew Wilding is a principal engineering manager in the Rockwell
Collins
Advanced Technology Center in Cedar Rapids, Iowa. Dr. Wilding received
his PhD in Computer Sciences in 1996 from The University of Texas at
Austin, and his research at Rockwell Collins applies formal methods and
automated reasoning to critical system development. He currently
manages the Advanced Technology Center's Automated Analysis group, which
in collaboration with Rockwell Collins product areas and government
research sponsors is developing and applying automated analysis to
systems with safety and security critical functionality.
Thursday, April 27th, 03:00PM, 2124SC
- Dr. Byron Cook
,
Microsoft Research
Automatically proving the termination of software
In this talk I will discuss TERMINATOR, which is an automatic program
termination prover that supports large programs with arbitrarily
nested loops or recursive functions, and imperative features such as
references, functions with side-effects, and function pointers.
TERMINATOR is based on a newly discovered method of
counterexample-guided abstraction refinement for program termination
proofs. The termination argument that TERMINATOR finds is
constructed
incrementally, based on failed proof attempts. TERMINATOR also
infers, and proves, required program invariants on demand. The
lecture
will close with information about the results of some experiments
with
TERMINATOR on
Windows device drivers.
Bio: Dr. Byron Cook is researcher at Microsoft's laboratory at Cambridge
University. He is also a visiting professor at Chalmers University
and
at Queen Mary, University of London. Byron interests include
automatic formal software verification, automatic theorem proving,
and
programming language theory. Byron has recently been working on an
automatic tool, called TERMINATOR for proving program termination.
Byron is also actively investigating methods of proving properties
about data structures. Byron developed the SLAM software model
checker
together with Tom Ball, Vladimir Levin, Jakob Lichtenberg, Sriram
Rajamani, and many others. SLAM is now used in a Windows product
called Static Driver Verifier, which automatically finds bugs in
Windows OS device drivers.
Before joining Microsoft, Byron worked at Prover Technology, where he
investigated new algorithms for use in SAT solvers and symbolic model
checking tools. Byron's PhD is from OGI.
For more information about Byron, see
http://research.microsoft.com/~bycook
.
Friday, February 21st, 10:00AM, 2124SC
- Darko Marinov
,
University of Illinois at Urbana-Champaign
Analyzing the Uses of a Software Modeling Tool
While a lot of progress has been made in improving analyses and tools
that aid software development, little effort has been spent on
studying how such tools are commonly used in practice. A study into a
tool's usage is important not only because it can help improve the
tool's usability but also because it can provide key insights for
improving the tool's underlying analysis technology in a common usage
scenario. We present a study that explores how (beginner) users work
with the Alloy Analyzer, a tool for automatic analysis of software
models written in Alloy, a first-order, declarative language. We have
modified the analyzer to log (some of) its interactions with the user.
Using this modified analyzer, 11 students in two of our graduate
classes formulated their Alloy models to solve a problem set. Our
analysis of the resulting logs (total of 68 analyzer sessions) shows
several interesting observations, and based on them, we propose how to
improve the analyzer, both the performance of analyses and the user
interaction. Specifically, we show that: (i) users often perform
consecutive analyses with slightly different models, and thus
incremental analysis can speed up the interaction; (ii) users'
interaction with the analyzer are sometimes predictable, and the
analyzer can precompute the result of a future action while the user
is editing the model; and (iii) (beginner) users can naturally develop
semantically equivalent models that have significantly different
analysis time.
Join work with Xiaoming Li, Daryl Shannon, Jabari Walker, and Sarfraz
Khurshid.
Friday, April 7th, 3:30PM, 3405SC
- Cesare Tinelli
,
University of Iowa
Formalizing DPLL-based Solvers for Propositional Satisfiability and for
Satisfiability Modulo Theories
The first part of this talk introduces Abstract DPLL, a general
rule-based
formulation of the Davis-Putnam-Logemann-Loveland (DPLL) procedure, one
of
the most successful decision procedures for propositional
satisfiability.
Abstract DPLL allows one to model and formally reason about several DPLL
variants and enhancements in a simple way. Its main properties, such as
soundness, completeness or termination, immediately carry over to modern
DPLL implementations with such advanced features as non-chronological
backtracking, lemma learning, and restarts.
The second part of the talk extends the framework to Satisfiability
Modulo
Theories (SMT), the problem of determining the satisfiability of
quantifier-free formulas in the context of logical theories of interest.
Abstract DPLL Modulo Theories allows one to formalize a family of SMT
techniques that couple a DPLL engine, a generic DPLL-style SAT solver,
with
a theory solver, a procedure for deciding the satisfiability of sets of
literals in a background theory T.
This is joint work with Robert Nieuwenhuis and Albert Oliveras of the
Technical University of Catalonia, and with Clark Barrett of New York
University.
Bio: Dr. Tinelli is an associate professor of Computer Science at
the
University
of Iowa. He received a PhD in Computer Science from the University of
Illinois at Urbana-Champaign in 1999. His work concentrates on
constraint-based approaches and combination methods for automated
reasoning,
and their applications to formal verification. His research interests
include automated reasoning, formal methods, foundations of programming
languages, and applications of logic in computer science. In 2003, Dr.
Tinelli received an NSF CAREER award for a project on improving extended
static checking of software by means of advanced automated reasoning
techniques. He co-leads an international initiative, called SMT-LIB,
supported by several research groups in academia and industry, aimed at
producing various common standards for SMT-LIB applications as well as a
large library theories and benchmarks. Dr. Tinelli has served in the
program committee of several conferences and workshops, such as CADE,
LPAR,
FroCoS, UNIF, PDPAR, and ECAI. He is currently a steering committee
member
of IJCAR, FTP, and FroCoS, and a trustee of CADE Inc.
Thursday, April 6th, 11:00AM, 2405SC
- John Rushby
,
Computer Science Laboratory, SRI International
SMT Solvers: A Disruptive Technology
SMT stands for "Satisfiability Modulo Theories": an SMT solver finds
satisfying assignments to propositionally complex expressions over
combinations of decidable theories such as linear arithmetic and
equality with uninterpreted functions.
The performance of SMT solvers, which are essentially SAT solvers
interacting with decision procedures, is increasing rapidly, spurred
on by an annual competition. They are a disruptive technology because
they have the potential to replace many kinds of special-purpose
automation. Beyond the attraction that a single technology can solve
many different kinds of problem lies the larger benefit that it may be
able to solve mixed problems (e.g., real time plus fault tolerance).
I will outline the capabilities of SMT solvers and describe their use
in formal verification, focusing on verification of real-time systems
by infinite bounded model checking. I will also sketch their
application to planning in AI, and extensions such as MaxSMT.
The SAL tool suite, freely available at http://fm.csl.sri.com/,
includes the SMT solver ICS and an infinite bounded model checker.
For an update on SMT solvers, see the competition from CAV 05
http://www.csl.sri.com/users/demoura/smt-comp/index.shtml
Friday, March 17th, 10:00AM, 2124SC
- Traian Florin Serbanuta
,
University of Illinois at Urbana-Champaign
A Semantic Approach to Interpolation
Interpolation results are investigated for various types of formulae.
By shifting the focus from syntactic to semantic interpolation ,
we generate, prove and classify more than twenty interpolation results
for first-order logic and some for richer logics. A few of these
results non-trivially generalize known interpolation results. All the
others are new.
joint work with Andrei Popescu and Grigore Rosu
Friday, March 10th, 10:00AM, 2124SC
- YoungMin Kwon
,
University of Illinois at Urbana-Champaign
Probabilistic modeling and verification of large scale systems
A notable feature of many proposed Wireless Sensor Networks
(WSNs) deployments is their scale: a small system can have more than 50
nodes, sometimes hundreds to thousands of nodes linked together. In
such systems, modeling the state of the entire system as a cross-product
of the states of individual nodes results in the well-known state
explosion problem.
Instead, we represent the system state by the probability
distribution
on the state of each node. In other words, the system state represents
the probability that a randomly picked node is in a certain state.
Although such statistical abstraction of the global state loses some
information, it is nevertheless useful in determining many performance
metrics of systems that exhibit Markov behavior. We have previously
developed a method for specifying the performance metrics of such
systems in a probabilistic temporal logic called iLTL and for evaluating
the behavior through a novel method for model checking iLTL properties.
We extend the iLTL so that it can specify concurrent runs of multiple
independent systems. In this paper, we describe a method for estimating
the probabilities in a Discrete Time Markov Chain (DTMC) model of a
large-scale system. We also provide a statistical test so that we can
reject estimated DTMCs if the actual system does not have Markov
behavior. We describe results of experiments applying our method to
WSNs in an experimental test-bed, as well as using simulations. The
results of our experiments suggest that our model estimation and model
checking method provides a systematic, precise and easy way of
evaluating performance metrics of some large-scale WSNs.
Friday, February 24th, 10:00AM, 2124SC
- Carlos Pacheco
,
Massachusetts Institute of Technology (MIT)
Feedback-directed Random Test Generation
We present a technique that improves on traditional random testing by
incorporating feedback obtained from executing test inputs as they are
created. Our technique builds inputs incrementally by randomly selecting
a method call to apply and finding arguments from among
previously-constructed inputs. As soon as it is built, the input is
executed and checked against a set of contracts; the technique then uses
the result of the execution to determine if the input is redundant or
illegal (if so, the input is discarded), or if it violates a contract
(if so, it is made into a test case). Test inputs that exhibit violating
behavior are minimized and output as small, failing test cases.
We have implemented the technique in two tools, RANDOOP (for Microsoft's
.Net Framework) and JOE (for Java). To evaluate the technique's
effectiveness, we have applied the tools to a set of 14 widely-used
libraries comprising 780KLOC, and found many serious errors. Compared
with traditional unguided random test generation (as implemented both by
us and by an independent tool), feedback-directed test generation finds
more bugs, finds more interesting and severe bugs, and produces fewer
redundant tests.
joint wotk with Shuvendu K. Lahiri, Sanjukta Pal, Thomas Ball,
and Michael D. Ernst
Friday, February 17th, 10:00AM, 2124SC
- Zhenmin Li
,
University of Illinois at Urbana-Champaign
Applying Data Mining Techniques to Computer Systems
As computer systems are becoming increasingly complex, it is challenging
to provide high performance, reliability and manageability that are
demanded by enterprise customers. In order to provide a solution, it is
necessary to first analyze and characterize such systems and identify
the critical issues. The system data such as source code, running
traces, etc. provide a valuable asset for us to target the solution. In
the meantime, the huge amount of system data, however, renders a tedious
and difficult task on managers and developers, and hence the hidden
information would be difficult to extract for system characterization.
During this talk, I will present a novel approach to analyze various
system data by applying data mining techniques. This approach can
effectively obtain useful information hidden in huge amount of system
data and then we can exploit such information to improve system
performance, reliability and manageability. Specifically, we apply
different data mining algorithms on different types of system data such
as source code, access traces, and system call traces, to achieve
different goals including automated debugging and system behavior
characterization. The results demonstrate that using data mining
techniques is an efficient and effective approach to solving computer
system problems.
Bio: Zhenmin Li is a PhD student supervised by Prof. Yuanyuan Zhou. His
research interests include computer systems, software reliability, data
mining, storage systems, and energy management. He received his BE and
ME in computer science from Tsinghua University, China. Further
information is available at http://opera.cs.uiuc.edu/~zli4
Friday, February 10th, 10:00AM, 2124SC
- Elsa Gunter
,
University of Illinois at Urbana-Champaign
Types for Security in a Mobile World
Our society is increasingly moving towards richer forms of information
exchange where mobility of processes and devices plays a prominent role.
This tendency has prompted the academic community to study the security
problems arising from such mobile environments, and in particular, the
security policies regulating who can access the information in question.
In this talk we propose a calculs for mobile agents and a type system for
specifying access privileges based on a combination of the identity of
the user seeking access, its credentials, and the location from which he
seeks it, within a reconfigurable nested structure.
We define BACI_R, a boxed ambient calculus extended with a Distributed
Role-Based Access Control mechanism where each ambient controls its own
access policy. A process in BACI_R is associated with an owner and a set
of activated roles that grant permissions for mobility and
communication. The calculus includes primitives to activate and
deactivate roles. The behavior of these primitives is determined by the
process?s owner, its current location and its currently activated roles.
We consider two forms of security violations that our type system
prevents: 1) attempting to move into an ambient without having the
authorizing roles granting entry activated and 2) trying to use a
communication port without having the roles required for access
activated. We accomplish 1) and 2) by giving a static type system, an
untyped transition semantics, and a typed transition semantics. We then
show that a well-typed program never violates the dynamic security
checks.
Friday, February 3rd, 10:00AM, 2124SC
- Koushik Sen,
University of Illinois at Urbana-Champaign
Scalable Automated Methods for Software Reliability
Testing with manually generated test cases is the primary
technique used in industry to improve reliability of software--in
fact, such testing is reported to account for over half of the typical
cost of software development. I will describe Concolic Testing, an
efficient approach which combines random and symbolic testing.
Concolic testing enables automatic and systematic testing of large
programs, avoids redundant test cases and does not generate false
warnings. Experiments on real-world software show that concolic
testing can be used to effectively catch generic errors such as
assertion violations, memory leaks, uncaught exceptions, and
segmentation faults. Combined with dynamic partial order reduction
techniques, concolic testing is effective in catching concurrency bugs
such as data races and deadlocks. I will describe my experience with
building two concolic testing tools, CUTE for C programs and jCUTE for
Java programs, and applying these tools to real-world software
systems. Finally, I will provide a brief overview of my research in
predictive runtime monitoring, statistical and probabilistic
model checking, application of machine learning to verify infinite
state systems, and probabilistic programming.
Past years
2005Monday, December 5th, 10:00AM, 2124SC
- Mahesh Viswanathan,
University of Illinois at Urbana-Champaign
A Higher Order Modal Fixpoint Logic
We present a higher order modal fixed point logic (HFL) that extends
the modal $\mu$-calculus to allow predicates on states (sets of
states) to be specified using recursively defined higher order functions on
predicates. The logic HFL includes negation as a first-class construct
and uses a simple type system to identify the monotonic functions on
which the application of fixed point operators is semantically
meaningful. The model checking problem for HFL over finite transition
systems remains decidable, but its expressiveness is rich. We
construct a property of finite transition systems that is not
expressible in the Fixed Point Logic with Chop (FLC) but which can be
expressed in HFL. A similar argument is used to show that HFL is
strictly more expressive, even over finite transition systems, than the
restriction of HFL to any fixed order. Over infinite transition
systems, we show that HFL can express bisimulation and simulation of
push down automata, and any recursively enumerable property of a class
of transition systems representing the natural numbers.
Monday, November 28th, 10:00AM, 2124SC
- Koushik Sen,
University of Illinois at Urbana-Champaign
An Automated Scalable Approach for Improving Software Quality
Software testing accounts for an estimated 50% of the total cost of
software development. We present an automated scalable approach to
improve software reliability and security of real-world software
systems. The approach combines a number of novel techniques, which
include a combination of random and symbolic testing, runtime partial
order reduction, predictive analysis, and runtime monitoring. Based
on this approach, we have developed tools and combined them to provide
a complete automated testing and runtime monitoring solution for
software. The results of applying this tool and its components to
real-world software were encouraging. For example, CUTE, a tool
implementing concolic testing, found two previously unknown errors --
a segmentation fault and an infinite loop -- in SGLIB, a popular C
data-structure library used in a commercial software. On the other
hand, DART has been successfully used at Bell-laboratories, Lucent
Technologies, to test and debug open-source session initiation
protocol and other real-world protocol implementations. The extension
of CUTE to concurrent Java programs, called jCUTE, found a subtle
time-partitioning error in the Honeywell's DEOS real-time operating
system developed for use in small business aircraft. The runtime
monitoring engine \textsc{Eagle}, which is used in conjunction with
testing, has been used successfully to analyze NASA's K9 Mars Rover
and to \emph{identify security attacks in DARPA logs}. Finding these
bugs took a few seconds to a minute. In contrast, many other tools
either missed those errors or found those bugs after hours of search.
Monday, November 14th, 10:00AM, 2124SC
- Madhusudan Parthasarathy,
University of Illinois at Urbana-Champaign
Making the stack visible: visibly pushdown languages
We study visibly pushdown languages, a subclass of context-free
languages defined using pushdown automata where the input determines
the stack operations permitted. Most usages of context-free languages
seem to only require this subclass, and surprisingly, it turns out
that this subclass is very well behaved: it is closed under all
boolean operations, inclusion and equivalence are decidable, etc. In
the verification context, it provides a theory for how to check
programs with recursion against correctness properties that require
the stack. We will also show robustness of this class by giving
logical and tree-automata characterizations, and will also briefly
look at its extension to infinite words.
Visibly pushdown languages hence emerge as a tractable insertion into
the Chomsky hierarchy worthy of study (and perhaps a class that can
be introduced in a basic theory-of-computation course).
- Viraj Kumar,
University of Illinois at Urbana-Champaign
Congruences for visibly pushdown languages
We study congruences on words in order to characterize the class of
visibly pushdown languages (VPL). For any language L, we define a
natural congruence on words that resembles the syntactic congruence
for regular languages, such that this congruence is of finite index
if, and only if, L is a VPL. We then study the problem of finding
canonical minimal deterministic automata for VPL. Though {\VPL}s
in general do not have unique minimal automata, we consider a subclass
of VPAs called k-module single-entry VPAs that correspond to
programs with recursive procedures without input parameters,
and show that the class of well-matched VPLs do indeed have
unique minimal k-module single-entry automata.
We also give a polynomial time algorithm that minimizes such k-module
single-entry VPAs.
Monday, October 31, 10:00AM, 2124SC
- Moshe Y. Vardi, Rice University
The Design of A Formal Property-Specification LanguageIn recent years, the need for formal specification languages is
growing rapidly as the functional validation environment in
semiconductor design is changing to include more and more validation
engines based on formal verification technologies. In particular, the
usage of Formal Equivalence Verification and Formal Property
Verification is growing, new symbolic simulation engines are
introduced and hybrid environments of scalar and symbolic simulators are
developed. To facilitate the use of these new-generation validation
engines - properties, checkers and reference models need to be
developed in a formal language.
In this talk we describe the design of the ForSpec Temporal Logic
(FTL), the temporal logic of ForSpec, Intel's new formal
property-specification language, which is today part of Synopsis
OpenVera hardware verification language (www.open-vera.com).
The key features of FTL are: it is a linear temporal logic, based on
Pnueli's LTL, it enables the user to define temporal connectives over
time windows, it enables the user to define regular events, which are
regular sequences of Boolean events, and then relate such events via
special connectives, and it contains constructs that enable the user
to model multiple clock and reset signals, which is useful in the
verification of globally asynchronous and locally synchronous hardware
designs.
The focus of the talk is on design rationale, rather
than a detailed language description.
Monday, October 24th, 10:00AM, 2124SC
- Grigore Rosu,
University of Illinois at Urbana-Champaign
Continuation-based Rewriting Logic
Definitions of Programming LanguagesA technique to define programming languages in rewriting logic is
presented. Based on a first-order representation of continuations and
on matching modulo associativity, commutativity and identity, the
technique is introduced by defining a non-trivial concurrent
higher-order programming language. The rewrite logic definition of a
language can serve multiple purposes: (1) it can be executed on
rewrite engines, thus providing potentially very efficient interpreters;
(2) it can be formally analyzed with analysis tools, such as model
checkers, for rewrite logic theories; (3) it gives an initial model
semantics, amenable to inductive theorem proving.
Moreover, the presented definitional technique is easy to understand
and teach, compact, modular and scales well.
Monday, October 17th, 10:00AM, 3405SC - Yuri Gurevich,
Microsoft Research
Interactive AlgorithmsWe report on the study of interactive algorithms within the framework of
behavioral computation theory. First we describe what behavioral
computation theory is, and then we consider a single sequential-time
algorithm interacting intra-step with the rest of the world.
Such interaction is more common that one may think: input and output
operations, remote procedure calls, receiving and sending mail, making
non-deterministic choices, creating new objects, ping commands, print
commands, and so on. Does nondeterminism really involve interaction? It
does; all by itself, an algorithm is inherently deterministic. Similarly,
the NEW command is nothing but a cry for help.
There are numerous communication mechanisms: remote procedure calls,
messages, single-answer queries, multiple-answer queries, and so on. Is
there a simple universal communication mechanism? Yes, and we will
exhibit such a mechanism.
Finally, we will present interactive abstract state machine and a
characterization theorem: every interactive algorithm is behaviorally
equivalent to an interactive abstract state machine.
This is joint work with Andreas Blass, Benjamin Rossman and Dean
Rosenzweig. A more extended abstract is found in article #175 at the
speaker's website. Many (but not all) details are found in articles #166,
#170, #171, #176 at the website.
Bio:
Yuri Gurevich is Sr. Researcher at Microsoft Research in Redmond, WA. He
is also Professor Emeritus at the University of Michigan, ACM Fellow,
Guggenheim Fellow, and Dr. Honoris Causa of Limburg University in Belgium.
Monday, October 10th, 10:00AM, 2124SC
- Ralf Sasse,
University of Illinois at Urbana-Champaign
Automatic Validation of
Transformation Rules for Java Verification
against a Rewriting SemanticsThis paper presents a methodology for automatically validating
program transformation rules that are part of a calculus for Java
source code verification. We target the Java Dynamic Logic
calculus which is implemented in the interactive prover of the
KeY system. As a basis for validation, we take an existing SOS
style rewriting logic semantics for Java, formalized in the input
language of the Maude system. That semantics is lifted to cope
with schematic programs like the ones appearing in program
transformation rules. The rewriting theory is further extended to
generate valid initial states for involved program fragments, and
to check the final states for equivalence. The result is used in
nightly validation runs over the relevant fragment of the calculus
in the KeY system.
Monday, October 3rd, 10:00AM, 2405SC
- Dana S. Scott,
Carnegie Mellon University (Retired)
TOPOLOGY, CATEGORIES, and LAMBDA-CALCULUSMany categories have injective objects, but their properties
depend on what families of subobjects are allowed. In the case of
topological T_0-spaces, for example, two alternatives suggest
themselves: (1) arbitrary subspaces, and (2) dense subspaces. Both
notions are interesting. Thus, a space D is injective in sense (1) iff
for any space Y and subspace X and any continuous function f:X->D
there is a continuous extension f':Y->D of f. Injective spaces are
easily proved to be closed under arbitrary products and continuous
retracts, which facts provide many examples once a few such spaces are
known. Perhaps it is not so obvious, however, that injective spaces
are also closed under the formation of function spaces, once the space
of continuous functions is given the right topology; indeed the
category of injective spaces and continuous functions is a cartesian
closed category. The talk will review old and new results about
injective spaces, applications of the results, and a recent use of
injectives to define a cartesian closed extension of the category of
all T_0-spaces. This topological point of view makes it obvious that
(untyped) lambda-calculus models exist in many forms. A suitable
choice of an injective space also shows how a notion of computability
transfers to many familiar spaces.
Monday, September 26th, 10:00AM, 2124SC
- Timo Latvala,
University of Illinois at Urbana-Champaign
Incremental and Complete Bounded Model Checking for Full PLTLjoint work with Keijo Heljanko, Tommi Junttila, Helsinki University
of Technology and Armin Biere, ETH Zurich
Bounded model checking is an efficient method for finding bugs in system designs. The major drawback of the basic method is that it cannot prove properties, only disprove them. Recently, some progress has been made towards proving properties of LTL using bounded model checking. We present an incremental and complete bounded model checking method for the full linear temporal logic with past (PLTL). Compared to previous works, our method both improves and extends current results in many ways:
(i) Our encoding is incremental, maximizing the potential gain of using incremental SAT-solvers. (ii) We can prove non-existence of a counterexample at shallower depths
than previous techniques in many cases.
(iii) We support full PLTL.
We have implemented our method in the NuSMV2 model checker and report encouraging experimental results.
- Sumant Kowshik,
University of Illinois at Urbana-Champaign
Statically guaranteeing critical system behaviour in the presence of untrusted components in real-time control
The increasing demand for functionality and performance in real-time control systems have led to the interaction between trusted and untrusted components in the system. In this work, we statically analyze the trusted and untrusted components in the system to determine if critical functionality is dependent on errors in untrusted components in the system.
Monday, September 19th, 10:00AM, 2124SC
- Jose Meseguer,
University of Illinois at Urbana-Champaign
A categorical Approach to Simulationsjoint work with Miguel Palomino and Narciso Marti-Oliet
Simulations between Kripke Structures are a very useful way to
relate concurrent systems for verification purposes. They
are useful because they allow us to relate different levels of
abstraction of a system, and also because they reflect logical
properies (in the backward direction).
Simulations compose, thus forming a category; however, the categorical properties of simulations do not seem to have been studied much previously. In this talk, the notion of simulation is generalized as much as possible, leading to several (increasingly more general) categories. The relation of such categories to temporal logic,
in the sense of being categories of models for temporal logic
institutions, and also in the sense of reflection of properties
is also discussed.
Monday, September 12th, 10:00AM, 2124SC
- Darko Marinov,
University of Illinois at Urbana-Champaign
Symstra: A Framework for Generating Object-Oriented Unit Tests
using Symbolic Executionjoint work with Tao Xie, Wolfram Schulte, and David Notkin.
Object-oriented unit tests consist of sequences of method invocations.
Behavior of an invocation depends on the method's arguments and the
state of the receiver at the beginning of the invocation.
Correspondingly, generating unit tests involves two tasks: generating
method sequences that build relevant receiverobject states and
generating relevant method arguments. This paper proposes Symstra, a
framework that achieves both test generation tasks using symbolic
execution of method sequences with symbolic arguments. The paper
defines symbolic states of object-oriented programs and novel
comparisons of states. Given a set of methods from the class under
test and a bound on the length of sequences, Symstra systematically
explores the object-state space of the class and prunes this
exploration based on the state comparisons. Experimental results show
that Symstra generates unit tests that achieve higher branch coverage
faster than the existing test-generation techniques based on concrete
method arguments.
- Marcelo d'Amorim,
University of Illinois at Urbana-Champaign
Eclat: Automatic Generation and Classification of Test InputsArticle by: Carlos Pacheco and Michael D. Ernst
This paper describes a technique that selects, from a large set of
test inputs, a small subset likely to reveal faults in the software
under test. The technique takes a program or software component, plus
a set of correct executions---say, from observations of the software
running properly, or from an existing test suite that a user wishes to
enhance. The technique first infers an operational model of the
software's operation. Then, inputs whose operational pattern of
execution differs from the model in specific ways are suggestive of
faults. These inputs are further reduced by selecting only one input
per operational pattern. The result is a small portion of the
original inputs, deemed by the technique as most likely to reveal
faults. Thus, the technique can also be seen as an error-detection
technique.
The paper describes two additional techniques that complement test
input selection. One is a technique for automatically producing an
oracle (a set of assertions) for a test input from the operational
model, thus transforming the test input into a test case. The other
is a classification-guided test input generation technique that also
makes use of operational models and patterns. When generating inputs,
it filters out code sequences that are unlikely to contribute to legal
inputs, improving the efficiency of its search for fault-revealing
inputs.
We have implemented these techniques in the Eclat tool, which
generates unit tests for Java classes. Eclat's input is a set of
classes to test and an example program execution---say, a passing test
suite. Eclat's output is a set of JUnit test cases, each containing a
potentially fault-revealing input and a set of assertions at least one
of which fails. In our experiments, Eclat successfully generated
inputs that exposed fault-revealing behavior; we have used Eclat to
reveal real errors in programs. The inputs it selects as
fault-revealing are an order of magnitude as likely to reveal a fault
as all generated inputs.
Related UIUC Labs
Last update:
Wednesday, September 20th, 2006
tserban2@uiuc.edu
|