• No results found

Adtranz Signal's Formal Verification Process (2): The STERNOL Specification Tool (SST)

N/A
N/A
Protected

Academic year: 2022

Share "Adtranz Signal's Formal Verification Process (2): The STERNOL Specification Tool (SST)"

Copied!
15
0
0

Loading.... (view fulltext now)

Full text

(1)

Adtranz Signal’s

Formal Verification Process (2)

The STERNOL Specification Tool (SST)

Lars-Henrik Eriksson

Industrilogik L4i AB

(2)

Industrilogik L4i AB

• Swedish consultancy company in advanced logic, mathematics and computer science.

• Main business area: Formal methods

• Staff of 11. 7 Ph.D.

• Founded in 1997, but most of the staff worked industrially with

formal methods before that.

(3)

Structure of Ebilock interlocking software

vx131 si22

si31

si33

si32

si34

si21 vx101

si41

si42

vx131

si22

si31

si33 si34

si21 vx101

si41 si42

si32

Logical object

(instance of software module) Data channel

(4)

Detail of a logical object

The program code of a logical object is written in STERNOL, Adtranz Signal’s proprietary language for interlocking software.

Each type of logical object has its own program module.

Modules are instantiated with local configuration data for each actual logical object.

Each logical object instance has a local data area.

Communication is done using shared variables.

Manoeuvring system

Physical object

Neighbour Neighbour

(5)

Formal verification using SVT

STERNOL code can be formally verified using Prover Technology’s SVT tool.

Verification can be done on

• the uninstantiated code for a logical object type

+ can be done once, valid for every interlocking installation – difficult to verify high-level requirements

• the instantiated code for an entire interlocking system

– must be done separately for each interlocking installation + easy to verify high-level requirements

The specification language of SVT is propositional logic extended

with arithmetic. (However, arithmetic theorem proving capability is

limited.)

(6)

Train route locking process

(1)

vx131

si22 si41 si31 si32

Track object status

Manoeuvre Lock request Manoeuvre

(2)

vx131

si22 si41 si31 si32

Track object status

Manoeuvre Lock confirmation Manoeuvre

Green light

(7)

Logical object-level requirements

Sample requirement for a clear signal aspect:

• All track circuits in the route must be unoccupied for the signal to clear.

How is this expressed as a requirement on the logical objects?

”If the object sends a lock confirmation towards the beginning of the route, then it must receive a lock request from the beginning of the route, receive a lock confirmation from the end of the route and the track circuit must be free”

Wrong level of abstraction!

Difficult to prove formally since much irrelevant detail must be considered.

A good design architecture need not be

a good specification architecture!

Track circuit free

Lock conf. Lock conf.

Lock req. Lock req.

(8)

Rail yard level requirements

Alternatively, express requirement for a complete actual route!

vx131

si22 si41 si31 si32

Track circuits free Green light

If signal SI22 is cleared, then the track circuits of objects SI22, SI41, VX131, SI31 and SI32 must all be unoccupied.

Better level of abstraction. Easy to prove formally.

Drawbacks: A separate requirement must be stated for each route.

The requirements become specific to each particular installation.

(9)

Generalised requirements

Expressing requirements of an entire route means that the

requirements must be tailored to each route in each installation.

A single general requirement would be much better!

The SVT requirements language (essentially propositional logic) does not support generalised requirements.

Solution: Introduce more powerful specification language (IRSL – Interlocking Requirements Specification Language) based on

predicate logic to allow general requirements.

For all train routes: if the route entry signal is clear, every track circuit belonging to the route must be unoccupied.

Finally the right level of abstraction!

(10)

Translation of specifications

Since SVT can not handle the specifications directly, they must be translated into propositional logic.

The actual configuration data for an interlocking installation is used for the translation.

The specification

”For all train routes: if the route entry signal is clear, every track circuit belonging to the route must be unoccupied”

is translated into the specification

”If signal SI22 is cleared, then the track circuits of objects SI22, SI41, VX131, SI31 and SI32 must all be unoccupied AND

If signal SI31 is cleared, then the track circuits of objects SI31, VX131 and SI41 must all be unoccupied AND

If signal SI32 is cleared, then the track circuits of objects SI32, VX101 and SI42 must all be unoccupied AND ………”

This translation is done by the SST.

(11)

The Interlocking requirements specification language

IRSL is basically predicate logic.

IRSL includes bounded quantifiers,

e.g. ∀ x:S P(x) = For all x in the set S, P(x)

IRSL includes constructs (functions and predicates) that refer to interlocking configuration data,

e.g. leg(x,n) = Neighbour number n of logical object x.

e.g. POINT = The set of all point logical objects

IRSL presently does not include temporal operators.

(12)

Translation of IRSL formulae

SST translates IRSL formulae into SVT specification language formulae according to some interlocking configuration data.

• Quantification over finite sets are expanded:

x:POINT P(x) ---> P(VX101) P(VX131)

• Constructs referring to interlocking configuration data are replaced with the data in question:

leg(SI22,1) = SI21 ---> SI42 = SI21

• The formulae are simplified using known information (SI42 = SI21 P) Q ---> Q

This process is often called partial evaluation.

(13)

Using SST

Configuration files

SST

IRSL

specification

Configuration files

SVT

STERNOL code

SST

specification

Result of formal proof

(Simplified verification process)

(14)

Additional uses of SST

• To formally check interlocking configuration files.

Specifications can be written to express requirements on the configuration data itself.

• To aid in the development of an interlocking site by finding all train routes.

– A formal specification of train routes is written.

– SST translates the specification into a propositional formula characterising all valid train routes.

– SVT is used to find all models of the formula.

Each model represents a train route.

(15)

Formal verification of SST itself

The partial evaluator kernel of SST has been formally verified.

• Written in Prolog

• Formally verified using the LPTP tool (Logic Program Theorem prover)

• One error found!

Verification condition:

IRSL formula SVT formula

Partial evaluation

Same value

Evaluation using arbitrary variable values

References

Related documents

Re-examination of the actual 2 ♀♀ (ZML) revealed that they are Andrena labialis (det.. Andrena jacobi Perkins: Paxton & al. -Species synonymy- Schwarz & al. scotica while

It is known that an acoustic problem is not always mathematically simple to be estimated by a physical model. There are many factors that can influence sound propagation, for

In figure 2-2 is our design‟s hardware and sensor, actuators are all accomplished by laptop‟s integration voice card and microphone. Signal source Sensor Signal

The computation of the assertions is slightly more involved, we use local variables of both current and interfering threads, therefore the assertions at each program point in

To overcome these challenges, the serial to parallel conversion unit based on shift register has been designed in order to fetch the data into the on-chip memory at low frequency,

This feature of a frequency- dependent time window is also central when the wavelet transform is used to estimate a time-varying spectrum.. 3 Non-parametric

O’Boyle (2016) går däremot emot DeNisi och Pritchards (2006) åsikt och hävdade i sin meta-studie att mindre kontrollerande parametrar som binds till organisationens

Samtidigt som man redan idag skickar mindre försändelser direkt till kund skulle även denna verksamhet kunna behållas för att täcka in leveranser som