Wat is Model Checking?

Vergelijkbare documenten
Over Betrouwbaarheid van Computersystemen

Bellen Zonder Zorgen

PDF hosted at the Radboud Repository of the Radboud University Nijmegen

Cover Page. The handle holds various files of this Leiden University dissertation.

De vruchten van een hype: nieuwe en onmogelijke Franklin vierkanten

MODELLEREN ISS HET NIEUWE PROGRAMMEREEN I&I Conferentie, 23 november 2011 Profielwerkstukthema s Arend Rensink, Universiteit Twente

Cover Page. The handle holds various files of this Leiden University dissertation.

VERZAMELINGEN EN AFBEELDINGEN

Sensornetwerk controleert omgeving

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Cyber security. Het nieuwe wereldprobleem? Erik Poll Digital Security

Sequentiële Logica. Processoren 24 november 2014

Een combinatorische oplossing voor vraag 10 van de LIMO 2010

Modulewijzer InfPbs00DT

Examen VWO. wiskunde A1. tijdvak 1 maandag 25 mei uur. Bij dit examen hoort een uitwerkbijlage.

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Het leek ons wel een interessante opdracht, een uitdaging en een leuke aanvulling bij het hoofdstuk.

Toeristen stad Dominerende verzamelingen

Module Limieten van de berekenbaarheid : antwoorden

1 Binaire plaatjes en Japanse puzzels

5. Geavanceerde formules

Migrerende euromunten

math inside Model orde reductie

Examen VWO. wiskunde A1 Compex. Vragen 1 tot en met 11. In dit deel van het examen staan de vragen waarbij de computer niet wordt gebruikt.

Tiende college algoritmiek. 26 april Gretige algoritmen

Tiende college algoritmiek. 14 april Gretige algoritmen

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Beknopte uitwerking Examen Neurale Netwerken (2L490) d.d

Hertentamen Biostatistiek 3 / Biomedische wiskunde

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

4. Determinanten en eigenwaarden


Cover Page. The handle holds various files of this Leiden University dissertation

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Examen VWO. wiskunde C (pilot) tijdvak 1 woensdag 18 mei uur. Bij dit examen hoort een uitwerkbijlage.

Examen VWO. wiskunde A1

Waarmaken van Leibniz s droom

HET SCHAAKSPEL OPGELOST Cees Timmer

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Automaten en Berekenbaarheid 2016 Oplossingen #4

3. Structuren in de taal

Examen VWO. wiskunde A1. tijdvak 2 woensdag 20 juni uur. Bij dit examen hoort een bijlage.

Opgave 2. Binaire informatie

Notatie van verzamelingen. Lidmaatschap. Opgave. Verzamelingen specificeren

Een voorbeeld. Computationele Intelligentie Zoeken met een tegenstander. Een voorbeeld vervolg. Een zoekprobleem met een tegenstander

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

13 Hidden Markov Modellen.

6,4. Werkstuk door een scholier 1810 woorden 11 maart keer beoordeeld

Het vermoeden van Poincaré

Examen HAVO. Wiskunde B1,2 (nieuwe stijl)

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

opgaven formele structuren deterministische eindige automaten

Logica voor AI. Verschillende modale systemen en correctheid. Antje Rumberg. 30 november 2012.

Projectieve Vlakken en Codes

Eliminatie van parameters en substitutie met computeralgebra

Examen Datastructuren en Algoritmen II

Inhoudsopgave Voorwoord 5 Nieuwsbrief 5 Introductie Visual Steps 6 Wat heeft u nodig? 6 Voorkennis 7 Hoe werkt u met dit boek?

Examen HAVO. Wiskunde A (oude stijl)

Logic for Computer Science

1 De permanent van een matrix

Combinatoriek groep 1 & 2: Recursie

Stelling. SAT is NP-compleet.

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

Ontwerp van Algoritmen: opgaven weken 3 en 4

Les 4. Webform Inleiding. Voorbereiding

Korte uitleg van twee veelvoorkomende statistische toetsen Veel wetenschappelijke hypothesen kunnen statistisch worden getoetst. Aan de hand van een

Wanneer zijn veelvouden van proniks proniks?

Examen VWO. wiskunde A1,2. tijdvak 2 woensdag 20 juni uur. Bij dit examen hoort een uitwerkbijlage.

Les Webform INLEIDING VOORBEREIDING

Getaltheorie I. c = c 1 = 1 c (1)

E-Newsletter Een Econocom newsletter met focus op leasing

Hoofdstuk 1. Introductie. Wat is icloud?

Compex wiskunde A1-2 vwo 2003-I

MODULE 1 ZELFANALYSE WERKBOEK: STAP 5. 1 Persoonlijke successen 2 SWOT analyse 3 Samenvatting & conclusie

Lineaire Algebra (wi2142tn) Les 5: Determinanten. Joost de Groot Les 5. Faculteit EWI, Toegepaste Wiskunde. Technische Universiteit Delft

Stelsels Vergelijkingen

Bespreking Examen Analyse 1 (Augustus 2007)

TW2020 Optimalisering

Stochastische grafen in alledaagse modellen

Google met energie. Michiel Hochstenbach Universitair Docent Scientific Computing Group Wiskunde Faculteit Wiskunde en Informatica

Examen VWO - Compex. wiskunde A1,2

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Wiskunde D assignment problem. Hier stonden ooit namen

wiskunde C pilot vwo 2016-I

D-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?

The Power of Off. Verbind elke lamp, overal.

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Zoekproblemen met tegenstanders. Zoekalgoritmen ( ) College 9: Zoeken met een tegenstander (I) Een zoekprobleem met een tegenstander

Twaalfde college complexiteit. 11 mei Overzicht, MST

Hersenkrakers: De computer lost het voor je op

Eindexamen wiskunde A1 compex vwo I

Lights Out. 1 Inleiding

Ontmanteling contactloze chipkaart

Examen HAVO. wiskunde B1,2. tijdvak 1 woensdag 30 mei uur. Bij dit examen hoort een uitwerkbijlage.

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6.

Automaten. Informatica, UvA. Yde Venema

Kletsen met computers. Ontmasker de robot!

Transcriptie:

Wat is Model Checking? Frits Vaandrager 24 maart 28 (kleine aanpassing 9 november 2) Samenvatting Afgelopen maand werd bekend dat de ACM Turing Award dit jaar uitgereikt zal worden aan Ed Clarke, Allen Emerson en Joseph Sifakis voor hun werk op het gebied van model checking. De Turing Award, vaak aangeduid als de Nobelprijs voor de Informatica, is vernoemd naar de Britse wetenschapper Alan Turing, één van de pioniers van de Informatica. In deze bijdrage leg ik uit wat model checking is en hoe het werkt. Achtergrond Computers zijn beslist de meest complexe dingen die de mens ooit geconstrueerd heeft. De complexiteit van computertechnologie wordt door veel mensen schromelijk onderschat en bijna dagelijks staan er dan ook berichten in de krant over problemen die veroorzaakt zijn door fouten met computers. Zo hoorden we de laatste weken over gekraakte toegangspasjes en OV-dagkaarten, storingen in de nieuwe Roertunnel, 73. verloren belastingaangiften en een storing bij het internetbankieren van de Rabobank. Figuur : Model checking pioniers Clarke, Emerson en Sifakis.

Bedrijven die computersystemen bouwen willen fouten natuurlijk het liefst zo vroeg mogelijk vinden, bij voorkeur voordat de systemen in gebruik worden genomen. Model checking, voor het eerst beschreven in artikelen van de laureaten Clarke, Emerson en Sifakis, is een succesvolle methode om te bewijzen dat een ontwerp van een computersysteem voldoet aan de eisen die er aan gesteld worden. Het basisidee staat weergegeven in Figuur 2. Een model checker is een computerprogramma met als invoer een ontwerp van een systeem (het model ) en een eigenschap (de specificatie ) waaraan het systeem moet voldoen. De model checker berekent dan of het model voldoet aan de specificatie. Indien dit niet het geval is dan geeft het programma een tegenvoorbeeld dat laat zien waarom het model niet aan zijn specificatie voldoet. Door dit tegenvoorbeeld te bestuderen kun je er achter komen wat nu precies de oorzaak van het probleem is. Na model en/of specificatie verbeterd te hebben kun je het dan nog eens proberen. Het idee is dat door een groot aantal eigenschappen van het model te checken, het vertrouwen in de correctheid van het systeemontwerp toeneemt. Model van systeem Ja: model voldoet aan specificatie! Model Checker Specificatie Tegenvoorbeeld indien model niet voldoet aan specificatie Figuur 2: De model checking aanpak. Modellen Model checkers richten zich met name op modellen waarin dynamisch gedrag van een systeem beschreven wordt: in welke toestanden kan het systeem zich bevinden en welke overgangen tussen toestanden zijn er mogelijk? Om het gebruik van model checkers te illustreren kijken we naar een vraag die ooit gebruikt is bij de Nationale Wetenschapsquiz: Zes vriendinnen hebben ieder één roddel. Ze bellen elkaar. In elk gesprek wisselen ze alle roddels uit 2

Figuur 3: Toestandsruimte voor 3 roddelende vriendinnen. die ze op dat moment kennen. Hoeveel gesprekken zijn er minstens nodig om iedereen op de hoogte te brengen van alle zes de roddels? Figuur 3 laat de toestandsruimte zien voor de vereenvoudigde versie met 3 vriendinnen. Een toestand bestaat uit een 3 bij 3 matrix waarin voor iedere vriendin wordt bijgehouden welke roddels ze weet: indien vriendin i de roddel van vriendin j weet schrijven we een in het vakje in rij i en kolom j en als ze hem niet weet schrijven we een. In de begintoestand, bovenaan in het diagram, weet iedere vriendin alleen haar eigen roddel en dus staan er -tjes op de diagonaal en -en elders. Toestandsovergangen vinden plaats wanneer vriendinnen elkaar bellen. In de begintoestand zijn er drie mogelijke overgangen: vriendinnen en 2 bellen elkaar, vriendinnen en 3, of vriendinnen 2 en 3. In de nieuwe toestanden worden de rijen die horen bij de telefonerende vriendinnen aangepast: alle roddels worden uitgewisseld. Niet ieder telefoongesprek leidt noodzakelijk tot een nieuwe toestand: soms levert een gesprek geen nieuwe informatie op, dit correspondeert met een lusje van de toestand naar zichzelf. In totaal zijn er bereikbare toestanden. 3

EF p AF p EG p AG p Figuur 4: Operatoren van de temporele logica CTL. Specificaties Eigenschappen van modellen kunnen op een eenvoudige wijze beschreven worden in de taal van de temporele logica. Figuur 4 illustreert enkele operatoren uit de temporele logica CTL, die bedacht is door Clarke en Emerson. In CTL betekent E Er bestaat een pad waarvoor geldt dat, A Voor alle paden geldt dat, F uiteindelijk en G altijd. Stel dat p een eigenschap is van toestanden, bijvoorbeeld vriendin 2 weet de roddel van vriendin, en stel dat s een specifieke toestand is. In s geldt EF p indien er een pad is van s naar een toestand waarin p geldt, AF p indien op alle uitgaande paden van s een toestand ligt waarin p geldt, EG p indien er een pad vertrekt in s met uitsluitend toestanden waar p geldt, AG p indien op alle uitgaande paden vanuit s overal p geldt. Een voorbeeld van een formule die geldt in de begintoestand van ons voorbeeld is AG iedere vriendin weet haar eigen roddel. Een voorbeeld van een formule die niet geldt is AG als i de roddel van j weet dan weet j de roddel van i. De vraag uit de wetenschapsquiz kunnen we oplossen door een 4

model checker te vragen naar het kortste pad dat aantoont dat eigenschap EF iedere vriendin weet iedere roddel geldt in de begintoestand. In het geval met 3 vriendinnen volgt direct uit Figuur 3 dat dit kortste pad lengte 3 heeft. Voor 6 vriendinnen, de instantie uit de wetenschapsquiz, bevat het toestandsdiagram vele duizenden toestanden en kan een oplossing alleen gevonden worden door nadenken of brute rekenkracht. Figuur 5 toont een minimale oplossing met 8 gesprekken die gevonden is door de model checker Uppaal. Wiskundigen hebben bewezen dat n vriendinnen altijd minimaal 2n 4 gesprekken nodig hebben om alle roddels uit te wisselen. Figuur 5: Door model checker gevonden oplossing voor 6 vriendinnen. C.A.J. Hurkens. Spreading gossip efficiently. Nieuw Archief voor Wiskunde, 5/(2):28 2, Juni 2. 5

Toestandsexplosies Wanneer het aantal vriendinnen toeneemt dan groeit het aantal toestanden explosief. Immers, bij n vriendinnen bestaat een toestand uit een n n matrix gevuld met enen en nullen. Weliswaar weten we dat op de diagonaal altijd enen staan, maar dan nog zijn er 2 n2 n mogelijke matrices. Niet al deze matrices zijn bereikbaar (zo geldt bijvoorbeeld altijd dat als i de roddel weet van j er iemand is, naast i zelf, die de roddel weet van i). Toch is er sprake van een enorme toestandsexplosie, een exponentiële groei van het aantal bereikbare toestanden als functie van n. Toen Clarke, Emerson en Sifakis begonnen met hun werk aan model checkers meenden veel collega s dat deze lijn van onderzoek gedoemd was te mislukken: immers bij realistische toepassingen is het aantal toestanden veelste groot om met brute kracht door te rekenen. Met brute rekenkracht, zo meende men, konden systemen met hooguit een miljard toestanden doorgerekend worden, terwijl je voor realistische systemen toch al snel toestanden hebt. Met grote vasthoudendheid en een enorm doorzettingsvermogen hebben Clarke, Emerson en Sifakis gewerkt aan technieken waarmee toch gerekend kon worden aan praktische toepassingen. Een basisidee is hierbij was om gebruik te maken van zogenaamde symbolische berekeningen. Daarbij reken je over een heleboel toestanden tegelijk, net zoals je met de berekening x 2 y 2 = (x y) (x+y) in één keer laat zien dat 36 6 = 2, 49 4 = 5 9, enzovoorts. Door symbolisch te rekenen en toestandsverzamelingen compact te representeren met slimme datastructuren, kunnen we immense toestandsruimtes efficiënt doorzoeken. Zo heeft Emerson veel gewerkt aan het benutten van symmetrie. In Figuur 3 zien we dat de drie toestanden die volgen op de begintoestand eigenlijk allemaal gelijk zijn: twee vriendinnen hebben een roddel uitgewisseld en de derde weet alleen nog haar eigen roddel. Ook de zes toestanden die daarop volgen zijn in essentie allemaal symmetrisch: twee vriendinnen weten alles en de derde weet één roddel nog niet. Door te rekenen met verzamelingen van symmetrische toestanden tegelijk kunnen toestandsexplosies in veel gevallen omzeild worden. Zo hoeft de model checker Uppaal bij 6 vriendinnen slechts 3439 toestanden te doorzoeken met gebruik van symmetriereductie, terwijl het er 83986 zijn zonder gebruik van deze optie. Naast symmetriereductie hebben onderzoekers nog een talloze technieken bedacht om toestandsexplosies tegen te gaan. Uiteindelijk is het door de combinatie van rekentechnieken dat model checking zich ontwikkeld heeft tot een buitengewoon effectieve technologie waarmee op een efficiënte manier fouten gevonden kunnen worden in complexe ontwerpen. 6

Toepassingen Inmiddels zijn er honderden zoniet duizenden aansprekende toepassingen van model checking. Ik noem een paar voorbeelden: De meest prominente toepassing van model checkers is zonder twijfel die door Intel op het gebied van hardwareverificatie. In 994 verloor de chipgigant 475 miljoen dollar door een fout met de drijvendekommadeling in de Pentium-processor. Sindsdien is het gebruik van model checking en andere wiskundige verificatietechnieken uitgegroeid tot een standaard praktijk in de hardware-industrie. Zo is bijvoorbeeld 2 procent van het Pentium IV ontwerp met deze technieken gecontroleerd. De SPIN model checker is gebruikt om de multi-threaded plan execition module voor de NASA DEEP SPACE missie correct te bewijzen. Hiermee zijn 5 fouten ontdekt die nog niet eerder gevonden waren. De SPIN model checker is ook gebruikt om de correctheid te bewijzen van de besturingssoftware van de stormvloedkering bij Rotterdam. Mijn student Matthijs Mekking heeft model checking gebruikt om een aantal diepe fouten op te sporen in SHIM6, een nieuwe internetstandaard voor multihoming waarbij als één internetverbinding uitvalt een andere het overneemt zonder dat de gebruiker er iets van merkt. Samen met collega s heb ik een aantal fouten gevonden in het Zeroconf protocol, een Internet standaard die gebruikers in staat stelt om locaal een internet netwerk te configureren zonder handmatig IP adressen toe te kennen of gebruik te maken van een DNS server. Model checking wordt tegenwoordig wel veel gebruikt bij het analyseren van security protocollen. Bij de recente kraak van de Mifare RFID chip door de Nijmeegse digital security groep is gebruik gemaakt van een fout in het protocol, het geheel van afspraken dat beschrijft hoe de Mifare chip communiceert met zijn omgeving. Indien Philips/NXP indertijd bij het ontwerp van Mifare gebruik zou hebben gemaakt van model checking technieken, dan zou men het huidige lek wellicht al ontdekt hebben voor het in productie nemen van de chip. Ondanks al deze successen staat het onderzoek op het gebied van model checking nog in de kinderschoenen. Te vaak gebeurt het dat modellen niet doorgerekend kunnen worden vanwege toestandsexplosies. Ook omdat de complexiteit van computersystemen nog steeds groeit, is nog heel veel onderzoek nodig om de effectiviteit van model checkers verder te vergroten. 7