9 - Formale Methoden der Softwareentwicklung [ID:10438]
50 von 405 angezeigt

Welcome everybody to another tutorial of Formula in Methods.

Today we are going to do something more theoretical than usual in the tutorials as well, because

there's not enough time in the lecture to cover all the model checking algorithms.

You've learned how to model check against CTL formulas in the lecture and today I'm

going to tell you how we can do LTL model checking.

So for CTL this algorithm was quite intuitive, so you use your original system and then you

label states with information about which sub-formulas are satisfied in these states.

This is appropriate as the sub-formulas are actually evaluated in states, so CTL always

evaluates in states and not on paths, but for LTL we have a different story.

For LTL the sub-formulas are somehow evaluated along a path and not in single states of the

system.

So therefore we need a different approach.

There are a few different model checking algorithms for LTL, but they all share some basic methodology.

So there's a basic strategy that is always employed in these algorithms and we are going

to talk about one of these algorithms in detail.

So we have a model which consists of a transition system, the labeling function and the transition

relation state set and some state in which we want to evaluate the LTL formula, which

I call phi.

So we actually want to determine whether this phi holds in the state s in the system.

So what we are going to do is we are going to construct an automaton and you all know

finite state automaton, automata from other lectures probably and we are going to construct

a slightly different automaton so the technical term would be a generalized non-deterministic,

well GNBA in short, I don't know what the B stands for at the moment, we would have

to look it up, which doesn't accept just words, but it accepts traces.

So a trace would be a sequence, an infinite sequence of valuations for the variables that

we have.

And for a path pi, such an automaton would accept this trace of pi, so the sequence of

variable valuations that you can read off this path if and only if the formula not phi

is satisfied on this path.

And then we are combining this automaton that we obtained with our original model.

So this automaton will look similar to the original model, we can overlap these two and

then pull away all the transitions that don't occur in both systems and all that's left

are paths that simultaneously satisfy not phi and are present in our model.

So all we need to do is find some path in the combined system that starts in a state

that is derived from the original state s that we want to start with.

If such a path exists, then of course ms satisfies phi because there is a path that, wait, is

it the wrong way around?

Yes, it's actually, oh no, no, it's correct, right.

So no, it's the wrong way around.

So if no such path exists, there should be a no here.

So if no such path exists, then we have found no path that satisfies not phi and is present

in the model.

So the original property is satisfied and if we find a path, then we can say no, the

system in state s doesn't satisfy phi and we can read off the counter example from this

very path that we found.

So let's check this out with a really concrete example.

So there's a very simple model in new SMV which has just two variables, Boolean variables

a and b and a transition relation given by these two case distinctions.

And what we want to check is whether this model satisfies not a, u, b, so a should hold

until b is true.

Zugänglich über

Offener Zugang

Dauer

00:55:00 Min

Aufnahmedatum

2016-11-25

Hochgeladen am

2019-04-11 01:49:03

Sprache

en-US

In the first part of the course, we will engage in the formal verification of reactive systems. Students learn the syntax and semantics of the temporal logics LTL, CTL, and CTL* and their application in the specification of e.g. safety and liveness properties of systems. Simple models of systems are designed and verified using model checkers and dedicated frameworks for asynchronous and synchronous reactive systems, and the algorithms working in the background are explained.

The second part of the course focuses on functional correctness of programs; more precisely, we discuss the theory of pre- and postconditions, Hoare triples, loop invariants, and weakest (liberal) preconditions, in order to introduce automatised correctness proofs using the Hoare calculus.

 

Students are going to acquire the following competences:

Wissen
  • Reproduce the definition of syntax and semantics of temporal logics LTL, CTL, and CTL*.
  • Reproduce the definition of semantics of a simple programming languages like IMP, with special focus on axiomatic semantics (Hoare rules).

  • Explain how CTL can be characterised in terms of fixpoints.

Verstehen The students understand the workings of state of the art automatic frameworks, clarifying the role of model checking algorithms, semantics and Hoare calculi in formal verification. Anwenden In a series of exercises, the students use state of the art tools for
  • model checking

  • specification and verification of reactive systems,

  • verification of functional correctness or memory safety of simple programs.

Analysieren
  • Choose the optimal tool for a given verification or specification problem.
  • Differentiate between safety and liveness properties.

Einbetten
Wordpress FAU Plugin
iFrame
Teilen