• No results found

Improving formal analysis of computerised rail traffic control systems using domain models

N/A
N/A
Protected

Academic year: 2021

Share "Improving formal analysis of computerised rail traffic control systems using domain models"

Copied!
37
0
0

Loading.... (view fulltext now)

Full text

(1)

IT 16 014

Examensarbete 15 hp

Mars 2016

Improving formal analysis of

computerised rail traffic control

systems using domain models

Karin Ahlman

Institutionen för informationsteknologi

(2)
(3)

Teknisk- naturvetenskaplig fakultet UTH-enheten Besöksadress: Ångströmlaboratoriet Lägerhyddsvägen 1 Hus 4, Plan 0 Postadress: Box 536 751 21 Uppsala Telefon: 018 – 471 30 03 Telefax: 018 – 471 30 00 Hemsida: http://www.teknat.uu.se/student

Abstract

Improving formal analysis of computerised rail traffic

control systems using domain models

Karin Ahlman

During the formal analysis of a computerized railway control system, it may be difficult to understand if a found counterexample to a requirement is a scenario which can happen in the real world or not. By putting sensible constraints on the inputs to the system, i.e. by defining a domain model for the system, some impossible scenarios are excluded from the formal analysis, which means that the formal analysis is simplified. This thesis presents a domain model for railway control systems, expressing constraints on how trains can behave in a railway network. The railway network is abstracted into a simple graph structure and the model is described in a temporal predicate logic using operators for the initial (I) and the next (X) value. The model is carefully defined in order not to introduce any unrealistic behavior.

Tryckt av: Reprocentralen ITC IT 16 014

Examinator: Olle Gällmo

Ämnesgranskare: Lars-Henrik Eriksson Handledare: Olav Bandmann

(4)
(5)
(6)
(7)

I X I X

(8)

• •

(9)

• •

• •

(10)
(11)
(12)
(13)

I X I X φ ::= P (t1, t2, ..., tn)| ¬φ | φ ∧ φ | φ ∨ φ | φ ⇒ φ | φ ⇔ φ | ∀xφ | ∃xφ | I(φ) | X(φ) x t1, t2, ..., tn P n≥ 1 ¬ ∀x ∃x ∧ ∨ ⇒ ⇔ := P (x) := φ φ P (x)⇔ φ

(14)

b1, b2, b3

b1 b2 b3 b1 b2 b3 b1 b2 b3

Occupied(bi) b1, b2, b3

Occupied(bi)⇔ bi

Occupied(b1)∧ ¬Occupied(b2)∧ ¬Occupied(b3)

¬(Occupied(b1)∧ Occupied(b2)∧ Occupied(b3))

Occupied(b1)

Occupied(b2) Occupied(b3)

(15)

I X P z P (z) P z X(P (z)) P (z) I(P (z)) P (z) A B x A(x) B(x) A(x) I(A(x)) := f alse X(A(x)) := A(x)∨ B(x) A(x) B(x) A(x) I X A(x) b1 b3 X ¬(Occupied(b1)∧ X(Occupied(b3))) M (x, y) := x y P P (a)↔ X(P (a)) a P F (x, y) := x y

(16)

B b bi Occ Occ(b)⇔ b Occ(bi) Occ(bi) N ext block N ext block(bi, bj)⇔ bi bj bj bi b1 b2 B ={b1, b2} N ext block(bi, bj) i = 1 j = 2 (B, N ext block) b1 b2 b3 b4 b5 b6 b7 b8 b9 b10

(17)

N ext block ∀b ∈ B [¬Next block(b, b)] b∈ B b End End(b) :=¬∃bi, bj∈ B  bi�= bj∧ 

 (N ext block(b, bi)∨ Next block(b i, b)) (N ext block(b, bj)∨ Next block(bj, b))

   

Linear(b) :=∃!bi[N ext block(b, bi)]∧ ∃!bi[N ext block(bi, b)]

Even switch Odd switch

(18)

Even switch(b) :=∃!bi∃!bj∃!bk

 bi�= bj∧ bi�= b k∧ bj �= bk

N ext block(bi, b)∧ Next block(b, bj)∧ Next block(b, bk)

 

Odd switch(b) :=∃!bi∃!bj∃!bk

 bi�= bj∧ bi�= b k∧ bj �= bk

N ext block(bi, b)∧ Next block(bj, b)∧ Next block(b, bk)

 

Switch(b) := Even switch(b)∨ Odd switch(b)

b ∈ B

∀b ∈ B [End(b) ∨ Linear(b) ∨ Switch(b)]

F ork path bi bj F ork path(bi, bj) bi bj F ork path(bi, bj) :=∃bk  bj�= bk∧ 

 (N ext block(bi, bj)∧ Next block(b i, bk)) (N ext block(bj, bi)∧ Next block(bk, bi))

    b bi bj bi�= bj F ork path(b, bi) F ork path(b, bj)

F ork path(bi, bj) bi, bj ∈ B Switch(bi) bj

Locked in position(bi, bj) Locked in position(bi, bj)⇔ bi bi bj bi Open(bi, bj) Open(bi, bj) :=      

(N ext block(bi, bj)∨ Next block(bj, bi))

(F ork path(bi, bj)⇒ Locked in position(bi, bj))

(F ork path(bj, bi)⇒ Locked in position(bj, bi))

     

(19)

bi bj

Locked in position(bi, bj)

F ork path(bi, bj) bi bj

Open bi bj

Open Locked in position

Locked in position

∀bi, bj, bk ∈ B [bj�= bk⇒ ¬(Locked in position(bi, bj)∧ Locked in position(bi, bk))]

∀bi, bj, bk∈ B [bj �= bk ⇒ ¬(Locked in position(bi, bj)∧ X(Locked in position(bi, bk)))]

bi

Locked in position(bi, bj) bi Locked in position(bi, bj)

Open bi Locked in position

Occ(b) b Occ(b) Occ(b) Occ(b) b (bi1, ..., bim) End(b) Occ(b)

(20)

b b (i) Occ(b) • b • b b Occ(b) b Occ(b) Occ(b) Occ(b) X(Occ(b)) b b b� b b b� b b b� b b� Occ(b�) Occ(b) X(Occ(b)) b b X(Occ(b�)) b� b b� b b

Occ(b)

b b� b b� ∀b ∈ B 

Occ(b) �= X(Occ(b)) ⇒ End(b) ∨ ∃b�

  Occ(b �)∧ Open(b, b) ∧ X(Occ(b�)∧ Open(b, b))    

(21)

t1, ..., tl ti p1, ..., pm T P p∈ P P occ(p) P occ(p) p t Pt⊆ P t P osition f or(p, t)⇔ p t t∈ T Pt Pt:={p ∈ P | P osition for(p, t)}

(22)

N ext position(pi, pj) pj

pi

(P, N ext position) Pt

(Pt, N ext position|Pt) t∈ T

Pt

¬∃p ∈ P [∃ti, tj∈ T [P osition for(p, ti)∧ P osition for(p, tj)]]

N ext position

∀pi, pj∈ P [Next position(pi, pj)⇒ ∃t ∈ T [P osition for(t, pi)∧ P osition for(t, pj)]]

t t {p1, ..., p6} p1 p2 p3 p4 p5 p6 t N ext position P1 p1 p2 p3 p6 p5 p4 ti p P t occ(p, ti) P t occ

P t occ(p, t) := P occ(p)∧ P osition for(p, t)

P t occ ∀t ∈ T ∃!p ∈ Pt[P t occ(p, t)] ∀t ∈ T ∀pj, pk ∈ Pt     P t occ(p j, t) X(P t occ(pk, t))   ⇒   N ext position(p j, pk) N ext position(pk, pj)    

(23)

p∈ P

P osition

P osition(b, p)⇔ b p

∀b ∈ B [Occ(b) ⇔ ∃p ∈ P [P osition(b, p) ∧ P occ(p)]]

b p b p Occ t1 t2 Pt1 Pt2 p1 ∈ Pt1 p2 ∈ Pt2 p1 p2 b3 b1 b2 b3 b4 b5

(24)

b1 b2 b3 b4

p b

U tmost(b, p) := P osition(b, p)∧ ∃b�[(N ext block(b, b�)∨ Next block(b�, b))∧ ¬P osition(b�, p)]

p1 p2 b b p1 p2 ∀pi, pj ∈ P ∀b ∈ B  pi�= pj∧   P occ(p i) P occ(pj)   ∧   P osition(b, p i) P osition(b, pj)   ⇒   U tmost(b, p i) U tmost(b, pj)    

(25)

Occ N ext block End Linear Even switch Odd switch Switch F ork path Locked in position Open

• I(Occ(b))

b ∀b ∈ B [I(Occ(b)) := F alse]

• Occ(b) := F alse

b∈ B

• Locked open(bi, bj) := T rue

bi, bj ∈ B bj bk bi bk bi • n≥ 2 ∀b ∈ B      ∃b �∈ B   Locked in position(b, b �) ∧ ¬X(Locked in position(b, b�))   ⇒       ¬∃b�∈ B [XX(Locked in position(b, b))] ∧ ... ∧ ¬∃b�∈ B [XX...X(Locked in position(b, b�))]             X n • bi bj bk b�i b�j b�k

Locked open(bi, bj)⇔ Locked open(b�i, b�j)

(26)

•   N ext block(b i, bj) N ext block(bj, bk)   ∧   Occ(b j) ¬X(Occ(bj))   ⇒ ¬   Occ(bi)∧ Open(b j, bi) Occ(bk)∧ Open(bj, bk)   •   N ext block(b i, bj) N ext block(bj, bk)   ∧   ¬Occ(b j) X(Occ(bj))   ⇒ ¬   X(Occ(bi)∧ Open(b j, bi)) X(Occ(bk)∧ Open(bj, bk))   b1, ..., bn N ext block(bi, bj) bi, bj b b Occ(bi) bi∈ B bi ∀b ∈ B [¬I(Occ(b))] ⇒ ¬Occ(bi) bi bi bi Occ

(27)

• •

(28)
(29)
(30)

t1, ..., tn ti

(31)
(32)

B ={b1, ..., bn}

N ext block N ext block

N ext block N ext block(bi, bj) bi bj bj bi End(b) b Linear(b) b Even switch(b) b Odd switch(b) b Switch(b) b F ork path(bi, bj) bi bj

(33)

End(b) :=¬∃bi, bj ∈ B

bi�= bj∧

 (N ext block(b, bi)∨ Next block(b∧ i, b)) (N ext block(b, bj)∨ Next block(bj, b))

   

Linear(b) :=∃!bi[N ext block(b, bi)]∧ ∃!bi[N ext block(bi, b)]

Even switch(b) :=∃!bi∃!bj∃!bk

 bi�= bj∧ bi �= b k∧ bj �= bk

N ext block(bi, b)∧ Next block(b, bj)∧ Next block(b, bk)

 

Odd switch(b) :=∃!bi∃!bj∃!bk

 bi�= bj∧ bi�= b k∧ bj�= bk

N ext block(bi, b)∧ Next block(bj, b)∧ Next block(b, bk)

 

Switch(b) := Even switch(b)∨ Odd switch(b)

F ork path(bi, bj) :=∃bk

bj�= bk∧

 (N ext block(bi, bj)∧ Next block(b i, bk)) (N ext block(bj, bi)∧ Next block(bk, bi))

   

Occ Locked in position

Occ(b) b Locked in position(bi, bj) bi bi bj bi Open(bi, bj) bi bj Open(bi, bj) :=      

(N ext block(bi, bj)∨ Next block(bj, bi))

(F ork path(bi, bj)⇒ Locked in position(bi, bj))

(F ork path(bj, bi)⇒ Locked in position(bj, bi))

      ∀b ∈ B [¬Next block(b, b)]

(34)

∀b ∈ B [End(b) ∨ Linear(b) ∨ Switch(b)]

∀bi, bj, bk ∈ B [bj�= bk⇒ ¬(Locked in position(bi, bj)∧ Locked in position(bi, bk))]

∀bi, bj, bk∈ B [bj �= bk ⇒ ¬(Locked in position(bi, bj)∧ X(Locked in position(bi, bk)))]

∀b ∈ B 

Occ(b) �= X(Occ(b)) ⇒ End(b) ∨ ∃b�

  Occ(b �)∧ Open(b, b) ∧ X(Occ(b�)∧ Open(b, b))    

(35)

P ={p1, ..., pm} T ={t1, ..., tl} P osition f or(p, t) p t N ext position(pi, pj) pj pi P occ(p) p P t occ(p, t) p t

P t occ(p, t) := P occ(p)∧ P osition for(p, t)

¬∃p ∈ P [∃ti, tj ∈ T [P osition for(p, ti)∧ P osition for(p, tj)]]

∀pi, pj∈ P [Next position(pi, pj)⇒ ∃t ∈ T [P osition for(t, pi)∧ P osition for(t, pj)]]

∀t ∈ T ∃!p ∈ Pt[P t occ(p, t)] ∀t ∈ T ∀pj, pk∈ Pt     P t occ(p j, t) X(P t occ(pk, t))   ⇒   N ext position(p j, pk) N ext position(pk, pj)    

(36)

P osition(b, p) b p

U tmost(b, p) b p

U tmost(b, p) := P osition(b, p)∧ ∃b�[(N ext block(b, b)∨ Next block(b, b))∧ ¬P osition(b, p)]

∀b ∈ B [Occ(b) ⇔ ∃p ∈ P [P osition(b, p) ∧ P occ(p)]] ∀pi, pj∈ P ∀b ∈ B  pi�= pj∧   P occ(p i) P occ(pj)   ∧   P osition(b, p i) P osition(b, pj)   ⇒   U tmost(b, p i) U tmost(b, pj)    

(37)

References

Related documents

The increasing availability of data and attention to services has increased the understanding of the contribution of services to innovation and productivity in

Generella styrmedel kan ha varit mindre verksamma än man har trott De generella styrmedlen, till skillnad från de specifika styrmedlen, har kommit att användas i större

Parallellmarknader innebär dock inte en drivkraft för en grön omställning Ökad andel direktförsäljning räddar många lokala producenter och kan tyckas utgöra en drivkraft

Närmare 90 procent av de statliga medlen (intäkter och utgifter) för näringslivets klimatomställning går till generella styrmedel, det vill säga styrmedel som påverkar

I dag uppgår denna del av befolkningen till knappt 4 200 personer och år 2030 beräknas det finnas drygt 4 800 personer i Gällivare kommun som är 65 år eller äldre i

Det har inte varit möjligt att skapa en tydlig överblick över hur FoI-verksamheten på Energimyndigheten bidrar till målet, det vill säga hur målen påverkar resursprioriteringar

Detta projekt utvecklar policymixen för strategin Smart industri (Näringsdepartementet, 2016a). En av anledningarna till en stark avgränsning är att analysen bygger på djupa

DIN representerar Tyskland i ISO och CEN, och har en permanent plats i ISO:s råd. Det ger dem en bra position för att påverka strategiska frågor inom den internationella