Meetings

We now usually meet on Friday mornings at 10.15 in 'Sektionsgemensamt Sammanträdesrum'. The following talks are scheduled in the near future. There is also a list of past talks. If you use ical, you can include this schedule using the calendar located at /users/cs/group_fmethods/home/fm-meeting.cal.

Date Speaker Title Extra

Introduction

The Formal Methods Group is a research subgroup at the Computing Science Department of Chalmers University of Technology. It was founded in 1997. The group is working with applying formal methods both in hardware and software.

Hardware Description and Verification

Hardware Verification
The goal is to develop methods and tools for the design of correct circuits and systems.

We have developed high performance SAT-solvers that are able to work incrementally, so that they are particualary good at solving a sequence of similar problems. Such problems arise for example when trying to verify properties of circuits over time. Here the solver MiniSat won all three industrial categories of the international SAT competition in 2005, showing that the technology is state of the art. There are however situations where propositional logic is simply not expressive enough. First order logic (FOL) offers higher expressiveness, while we can still retain a high degree of automation in proofs. We are developing a novel FOL theorem prover based on Stålmarck's mehtod of proof for propositional logic. We have also developed a tool called Paradox that finds finite-domain models of first order formulas. Here, again, we have showed immediate success in that Paradox won one of the classes in the international competition for FOL tools.

    
  

Members

Wolfgang Ahrendt wwwe-mail
Emil Axelsson wwwe-mail
Magnus Björk wwwe-mail
Koen Claessen wwwe-mail
Niklas Eén wwwe-mail
Tobias Gedell wwwe-mail
Martin Giese wwwe-mail
Reiner Hähnle wwwe-mail
Wojciech Mostowski wwwe-mail
Jan-Willem Roorda wwwe-mail
Philipp Rümmerwwwe-mail
Ingo Sander wwwe-mail
Mary Sheeran wwwe-mail
Hans Svensson wwwe-mail
Niklas Sörensson wwwe-mail
Angela Wallenburg wwwe-mail
 
    
    
Hardware Description
Our recent work focus on design methods where circuit performance is taken into account. As the size of components in integrated circuits continue to shrink, it is the routing of wires that account for most of the power consumption and signal dealy in the design. We therefore propose a design language, Wired, that aims to give the designer just the right amount of control over low level details. The new methods has been applied to the design of a multiplier that promises to be faster than existing designs. Our belief is that new design must both make use of ideas from computing science and take into account low level circuit details. This belif has led us to start a new collaboration with the VLSI Research Group (also at CSE). Together these two groups have a spread of competence that is not only necessary but unusual.
 

Formal Methods for Software

The goal is to apply formal methods in the area of software development. This means that we have to develop methods and implementations which perform a logical analysis of software in order to either find bugs or prove that the software is correct. It is also crucial that the methods fit into already existing development processes.

The KeY project.
We have developed the KeY tool, which is a commercial tool for object-oriented software development augmented with a prover. The KeY allows users to develop guaranteed correct Java Card programs. During 2003 we reached the goal of covering 100% of the Java Card language. One of the challenges in treating this language designed for programming smart cards is the analysis of behaviour when a card is forcibly removed from the reading device before the end of a transaction (rip-out).
     There is also an ongoing project trying to translate program specifications, written in a logic language into a natural language. This is done in collaboration with Aarne Ranta and Kristofer Johannisson from the Language Technology group.

Analysis of Erlang Traces
Another thing that we study are ways to trace Erlang programs, and to extract really useful information from those traces.