SlideShare una empresa de Scribd logo
1 de 45
4. Using LoLA
You will learn how

• to choose and manage LoLA configurations
• to ask the right verification questions
• to optimally model a Petri net
• to employ scripts, makefiles, etc.
• to call LoLA from another tool
LoLA Configurations

   • Get LoLA:
    • http://service-technology.org/files/lola
   • Standard Workflow:
    • edit userconfig.H
    • compile LoLA
setup
userconfig.H


     • What to check?
     • Which reduction
       techniques to use?
     • Other parameters
The optimal configuration

1. Know your net!
  • Is it bounded? Do you know the bound? Is it safe?
  • Do you have a feeling on the outcome?
  • Is the net made of several components?
  • Does the net have a lot of concurrency?

2. Experiment!
Analysis Tasks
• DEADLOCK
• REACHABILITY, FINDPATH, STATEPREDICATE
• BOUNDEDPLACE, BOUNDEDNET
• DEADTRANSITION
• REVERSIBILITY, HOME
• LIVEPROP, FAIRPROP, STABLEPROP, EVENTUALLYPROP
• MODELCHECKING
• FULL, NONE
Reduction Techniques

• STUBBORN - stubborn sets
• PREDUCTION - invariant-based compression
• SYMMETRY - symmetry reduction
• COVER - coverability graph
• CYCLE - cycle coverage
• SWEEP - sweep-line method
• SMALLSTATE - internal representation
Stubborn Sets

• STUBBORN
• when to use: always
• compatibility: all other techniques
• switch RELAXED to chose more efficient
  technique if state/predicate is unreachable
Invariant-based Compression

    • PREDUCTION
    • when to use: always
    • compatibility: not with sweep-line method



 preduction
Symmetries
• SYMMETRY
• when to use: net is made of several
  symmetric components
• runtime overhead
• compatibility: not with sweep-line method
• switch SYMMINTEGRATION and
  MAXATTEMPT to control time/memory
  trade-off
Coverability Graph

• COVER
• when to use: mostly clear from the context
• compatibility: stubborn sets and symmetry
• use with BREADTH_FIRST to have
  shorter paths to check
Cycle Coverage
• CYCLE
• when to use: can help sometimes
• runtime overhead
• use with stubborn sets to reduce number
  of successors

• Switches NONBRANCHINGONLY and
  MAXUNSAVED to control memory/time
  tradeoff
Sweep-line

• SWEEP
• when to use: behavior has several acyclic
  stages - always worth a try
• compatibility: stubborn set method
• in fact: only use with stubborn set method
  to avoid a lot of regress transitions
Small State Representation

  • SMALLSTATE
  • when to use: only for simple reachability
    questions
  • compatibility: all other techniques
Reduction techniques
               Not all
               combinations
               make sense!

               LoLA takes
               care about
               this.
Other parameters
• BREADTH_FIRST: search strategy
• CAPACITY: fix a maximal number of tokens per place
• CHECKCAPACITY: check capacity and abort
• MAXPATH: maximal length of paths for FINDPATH
• REPORTFREQUENCY: report firing of transitions
• HASHSIZE: number of hash buckets
• MAXIMALSTATES: maximal size of the statespace
  maximalstates
Manage configurations

   • one binary for each configuration

   • fight complexity:
    • ask LoLA for its configuration
    • predefined standard configurations
    • offspring generation
configurations
Ask LoLA
Predefined configurations



             several reasonable
                  standard
               configurations
Generate offspring



        generate a userconfig.H
          for the given binary
Build script


    downloads the sources
   and generate a configured
   binary with random name
You will learn how

• to choose and manage LoLA configurations ✔
• to ask the right verification questions
• to optimally model a Petri net
• to employ scripts, makefiles, etc.
• to call LoLA from another tool
Ask the right questions


• be as specific as possible
• ask one aspect at a time
• exploit all knowledge
• transform complex questions
Be specific!

  • most questions can be formulated with CTL
  • LoLA has dedicated routines:
   • EF φ - use STATEPREDICATE
   • AG EF φ - use LIVEPROP
  • yields more efficient reduction
specific
Ask one aspect at a time!
• Garavel’s challenge: check quasiliveness of a
  net with 776 transitions
• naive way: build one statespace and check each
  transition
  • Problem: 9794739147610899087361 states
• clever way: build 776 statespaces and check each
  transition independently
  • all but two state spaces have < 20000 states
Use all knowledge!
                   end of a procedure, see Figure 1. The tasks are modeled by transit
                   ordering of tasks is modeled by places connecting these transitions.

• original question:
  soundness of workflow nets

• naive: AG EF φ                            i
                                                         WF-net
                                                                                  o

• Petri-netty: liveness and                 Fig. 1. A procedure modeled by a W F-net.

  boundedness of short-circuited net
                   The processing of a case starts the moment we put a token in plac

• Knowledge: net is free-choice and built from
                   the moment a token appears in place o. One of the main properties
                   should satisfy is the following:
  standard patterns    For any case, the procedure will terminate eventually, and at t


• boundedness boils down to 1-safeness
                       procedure terminates there is a token in place o and all the ot
                       empty.



• clever way: two checks: liveness and 1-safeness
                   This property is called the soundness property. In this paper we p
                   to verify this property using standard Petri-net tools. If we restric
                   choice Petri nets (cf. Best [8], Desel and Esparza [12]), this propert
                   polynomial time.
                   W F-nets have some interesting properties. For example, it turns ou
Transform your problem!
• original question: relaxed soundness (every
  transition fires in at least one terminating run)
• standard algorithm: build statespace, remove
  nonterminating behavior and check transitions




• clever way: create special net for each transition t
  and check for reachability of marking [o, pt]
Problem hierarchy
•   MODELCHECKING (CTL algorithms, hardly any reduction possible)

•   BOUNDEDNET (coverability graph)

•   STABLEPROP, EVENTUALLYPROP, FAIRPROP (strongly connected sets)

•   HOMESTATE (mutual reachability of TSCCs)

•   LIVEPROP, REVERSIBILITY (reachability within TSCC)

•   REACHABILITY (global property)

•   BOUNDEDPLACE (overhead for coverability check)

•   STATEPREDICATE (possibly local property)

•   DEADTRANSITION (local property)

•   DEADLOCK (best stubborn sets available)

•   FINDPATH (memoryless exploration)
You will learn how

• to choose and manage LoLA configurations ✔
• to ask the right verification questions ✔
• to optimally model a Petri net
• to employ scripts, makefiles, etc.
• to call LoLA from another tool
“optimal” Petri nets


• have verification in mind
• don’t use expensive constructs (reset arcs)
• don’t spoil the reduction techniques
• help LoLA help you
High-level guards
   • use guards to exclude implausible transition bindings
   • results in quicker unfolding
TRANSITION ManInTheMiddle
 VAR
  bob : bobAgents;
  alice : aliceAgents;
  bobKey : bobKeys;
  aliceKey : aliceKeys;
 GUARD
  alice <> getMaliceAlice() AND
  bob <> getMaliceBob() AND
  isSessionKeyForAlice(alice,bob,aliceKey) AND
  isSessionKeyForBob(bob,alice,bobKey)
 CONSUME
  connStateAlice : makeConnectionState(alice,bob,aliceKey,bobKey),
  mGoalBobKeys : bobKey;
 PRODUCE
  goal : 1;
Concurrency

• use concurrency where possible
• avoid unnecessary ordering of events
• makes symmetry/stubborn sets applicable
                                                 ...
      initialize     initialize     initialize
    component 1    component 2    component 3
erformed only if scope Q is allowed to continue its normal p
             Avoid global states
op, the core action of X is bypassed, as captured by the τ -tr
 bypassing a normal event can be defined in a similar way.

        •
n a fault occurs in scope Q,synchronization changes from to co
            avoid excessive the status of Q or “global
            state places”         rX
                                       X
                 to_stopQ
                   X              sX
                                           to_continueQ
                "bypass"      X                C

                                  cX



                                  fX

        • such nets13. Terminationconcurrency
            Figure have no real of a basic activity.
Flexible model generation

    • model with verification question in mind
    • for each question have a dedicated model
       with proper abstractions
    • implemented in compiler BPEL2oWFN


flexible
Scale by structure

• when possible, scale model by structure,
  not by the number of tokens
• in LoLA: just increase sort
• rationale: symmetry and stubborn sets
  SORT
   dimensions = [ 1 , 3 ];
  
 row = [ 1 , 3 ];
You will learn how

• to choose and manage LoLA configurations ✔
• to ask the right verification questions ✔
• to optimally model a Petri net ✔
• to employ scripts, makefiles, etc.
• to call LoLA from another tool
Script LoLA
• LoLA follows the UNIX philosophy
 • every tool does one thing
    (and that thing right)
  • tools communicate with files/streams
  • exit codes tell about outcome of LoLA

• this all allows to quickly build powerful tool chains
LoLA’s exit codes

• 0: specified state or deadlock found/net or place
  unbounded/home marking exists/net is reversible/
  predicate is live/CTL formula true/transition not
  dead/liveness property does not hold
• 1: the opposite verification result
• rule of thumb, if the outcome of a verification result
  can be supported by a counterexample or witness
  path, that case corresponds to return value 0

exit
LoLA’s exit codes
• exit code allow for simple workflows in the shell
• (lola1 net.lola && lola2 net.lola && echo
  “OK”) || echo “not OK”)
• translation:
   • execute lola1
   • if the exit code is 0, execute lola2
   • if the exit code is again 0, print “OK”
   • otherwise, print “not OK”
Example: Scripting
• Garavel’s challenge
• quasiliveness of 776 transitions checked in 776 runs
• shell script:
    1. extract transitions from net
    2. generate analysis task for DEADTRANSITION
       ("ANALYZE TRANSITION t1")
    3. call LoLA
    4. evaluate exit code
•   DEADTRANSITION succeeds in all but 2 cases
•   then use FINDPATH
garavel
Example: Makefile
• check for relaxed soundness
• for each transition:
    1. create manipulated net
    2. generate analysis task
       for STATEPREDICATE
       ("FORMULA (pt = 1 AND o = 1)")
    3. call LoLA
    4. evaluate exit code
•   use Makefile to collect the results
•   benefit: parallel execution
relaxed
You will learn how

• to choose and manage LoLA configurations ✔
• to ask the right verification questions ✔
• to optimally model a Petri net ✔
• to employ scripts, makefiles, etc. ✔
• to call LoLA from another tool
Integrating LoLA into Wendy
• Wendy: a tool to synthesize partners for services
• algorithm needs a lot of small state spaces
• before: calculate them on-the-fly
• now: calculate one big one in advance and
  preprocess - helps to avoid “bad” states
• tool of choice for this: LoLA (lola-full)
• benefits:
 • modularity
 • get Tarjan numbers for free
 • interprocess concurrency
 wendy
Integrating LoLA
• integration is easy when using C:
 const char *c = "lola-full tempfile.lola -M";
 FILE *pipe = popen(c, "r");
 parse_pipe();
 pclose(pipe);

• UNIX streams allow parallel generation and parsing of
  the state space
You will learn how

• to choose and manage LoLA configurations ✔
• to ask the right verification questions ✔
• to optimally model a Petri net ✔
• to employ scripts, makefiles, etc. ✔
• to call LoLA from another tool ✔

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Java Concurrency, Memory Model, and Trends
Java Concurrency, Memory Model, and TrendsJava Concurrency, Memory Model, and Trends
Java Concurrency, Memory Model, and Trends
 
Concurrency & Parallel Programming
Concurrency & Parallel ProgrammingConcurrency & Parallel Programming
Concurrency & Parallel Programming
 
Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk User
 
Lock free programming - pro tips devoxx uk
Lock free programming - pro tips devoxx ukLock free programming - pro tips devoxx uk
Lock free programming - pro tips devoxx uk
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
 
Semaphore
SemaphoreSemaphore
Semaphore
 

Destacado (7)

Quick Adaptability Checks
Quick Adaptability ChecksQuick Adaptability Checks
Quick Adaptability Checks
 
Verification with LoLA: 3 State Space Reduction
Verification with LoLA: 3 State Space ReductionVerification with LoLA: 3 State Space Reduction
Verification with LoLA: 3 State Space Reduction
 
Managing test suites for services
Managing test suites for servicesManaging test suites for services
Managing test suites for services
 
Teilen und Herrschen von Bedienungsanleitungen
Teilen und Herrschen von BedienungsanleitungenTeilen und Herrschen von Bedienungsanleitungen
Teilen und Herrschen von Bedienungsanleitungen
 
Fixing Choreographies using Graph Similarities
Fixing Choreographies using Graph SimilaritiesFixing Choreographies using Graph Similarities
Fixing Choreographies using Graph Similarities
 
Verification with LoLA: 5 Case Studies
Verification with LoLA: 5 Case StudiesVerification with LoLA: 5 Case Studies
Verification with LoLA: 5 Case Studies
 
Inside LoLA - Experiences from building a state space tool for place transiti...
Inside LoLA - Experiences from building a state space tool for place transiti...Inside LoLA - Experiences from building a state space tool for place transiti...
Inside LoLA - Experiences from building a state space tool for place transiti...
 

Similar a Verification with LoLA: 4 Using LoLA

FP Days: Down the Clojure Rabbit Hole
FP Days: Down the Clojure Rabbit HoleFP Days: Down the Clojure Rabbit Hole
FP Days: Down the Clojure Rabbit Hole
Christophe Grand
 
AOS Lab 4: If you liked it, then you should have put a “lock” on it
AOS Lab 4: If you liked it, then you should have put a “lock” on itAOS Lab 4: If you liked it, then you should have put a “lock” on it
AOS Lab 4: If you liked it, then you should have put a “lock” on it
Zubair Nabi
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Network emulator
Network emulatorNetwork emulator
Network emulator
jeromy fu
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
Tomas Doran
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
Harry Potter
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
Young Alista
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
Tony Nguyen
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
Fraboni Ec
 

Similar a Verification with LoLA: 4 Using LoLA (20)

Search at Twitter: Presented by Michael Busch, Twitter
Search at Twitter: Presented by Michael Busch, TwitterSearch at Twitter: Presented by Michael Busch, Twitter
Search at Twitter: Presented by Michael Busch, Twitter
 
Verification with LoLA: 1 Basics
Verification with LoLA: 1 BasicsVerification with LoLA: 1 Basics
Verification with LoLA: 1 Basics
 
FP Days: Down the Clojure Rabbit Hole
FP Days: Down the Clojure Rabbit HoleFP Days: Down the Clojure Rabbit Hole
FP Days: Down the Clojure Rabbit Hole
 
AOS Lab 4: If you liked it, then you should have put a “lock” on it
AOS Lab 4: If you liked it, then you should have put a “lock” on itAOS Lab 4: If you liked it, then you should have put a “lock” on it
AOS Lab 4: If you liked it, then you should have put a “lock” on it
 
Bringing Concurrency to Ruby - RubyConf India 2014
Bringing Concurrency to Ruby - RubyConf India 2014Bringing Concurrency to Ruby - RubyConf India 2014
Bringing Concurrency to Ruby - RubyConf India 2014
 
Using the big guns: Advanced OS performance tools for troubleshooting databas...
Using the big guns: Advanced OS performance tools for troubleshooting databas...Using the big guns: Advanced OS performance tools for troubleshooting databas...
Using the big guns: Advanced OS performance tools for troubleshooting databas...
 
Composable Futures with Akka 2.0
Composable Futures with Akka 2.0Composable Futures with Akka 2.0
Composable Futures with Akka 2.0
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 
Network emulator
Network emulatorNetwork emulator
Network emulator
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)
 
Actors and Threads
Actors and ThreadsActors and Threads
Actors and Threads
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
 
Akka Actors
Akka ActorsAkka Actors
Akka Actors
 
无锁编程
无锁编程无锁编程
无锁编程
 
PAC 2019 virtual Antoine Toulme
PAC 2019 virtual Antoine ToulmePAC 2019 virtual Antoine Toulme
PAC 2019 virtual Antoine Toulme
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
 
Concurrency with java
Concurrency with javaConcurrency with java
Concurrency with java
 

Más de Universität Rostock

Verification with LoLA: 7 Implementation
Verification with LoLA: 7 ImplementationVerification with LoLA: 7 Implementation
Verification with LoLA: 7 Implementation
Universität Rostock
 
Verification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLAVerification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLA
Universität Rostock
 
Verification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input LanguageVerification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input Language
Universität Rostock
 
Karsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial SymposiumKarsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial Symposium
Universität Rostock
 

Más de Universität Rostock (20)

Pragmatic model checking: from theory to implementations
Pragmatic model checking: from theory to implementationsPragmatic model checking: from theory to implementations
Pragmatic model checking: from theory to implementations
 
Where did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process modelsWhere did I go wrong? Explaining errors in process models
Where did I go wrong? Explaining errors in process models
 
Decidability Results for Choreography Realization
Decidability Results for Choreography RealizationDecidability Results for Choreography Realization
Decidability Results for Choreography Realization
 
Artifact-centric modeling using BPMN
Artifact-centric modeling using BPMNArtifact-centric modeling using BPMN
Artifact-centric modeling using BPMN
 
Compliance by Design for Artifact-Centric Business Processes
Compliance by Design for Artifact-Centric Business ProcessesCompliance by Design for Artifact-Centric Business Processes
Compliance by Design for Artifact-Centric Business Processes
 
Verification with LoLA
Verification with LoLAVerification with LoLA
Verification with LoLA
 
Verification with LoLA: 7 Implementation
Verification with LoLA: 7 ImplementationVerification with LoLA: 7 Implementation
Verification with LoLA: 7 Implementation
 
Verification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLAVerification with LoLA: 6 Integrating LoLA
Verification with LoLA: 6 Integrating LoLA
 
Verification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input LanguageVerification with LoLA: 2 The LoLA Input Language
Verification with LoLA: 2 The LoLA Input Language
 
Saarbruecken
SaarbrueckenSaarbruecken
Saarbruecken
 
Ws4 dsec talk @ Kickoff RS3
Ws4 dsec talk @ Kickoff RS3Ws4 dsec talk @ Kickoff RS3
Ws4 dsec talk @ Kickoff RS3
 
Internal Behavior Reduction for Services
Internal Behavior Reduction for ServicesInternal Behavior Reduction for Services
Internal Behavior Reduction for Services
 
Karsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial SymposiumKarsten Wolf @ Carl Adam Petri Memorial Symposium
Karsten Wolf @ Carl Adam Petri Memorial Symposium
 
Implementation of an Interleaving Semantics for TLDA
Implementation of an Interleaving Semantics for TLDAImplementation of an Interleaving Semantics for TLDA
Implementation of an Interleaving Semantics for TLDA
 
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
 
Demonstration of BPEL2oWFN and Fiona
Demonstration of BPEL2oWFN and FionaDemonstration of BPEL2oWFN and Fiona
Demonstration of BPEL2oWFN and Fiona
 
service-technology.org — A tool family for correct
business processes and ser...
service-technology.org — A tool family for correct
business processes and ser...service-technology.org — A tool family for correct
business processes and ser...
service-technology.org — A tool family for correct
business processes and ser...
 
Tools4BPEL Tutorial
Tools4BPEL TutorialTools4BPEL Tutorial
Tools4BPEL Tutorial
 
Diagnosis of Open Workflow Nets
Diagnosis of Open Workflow NetsDiagnosis of Open Workflow Nets
Diagnosis of Open Workflow Nets
 
Analyzing Web Service Behavior
Analyzing Web Service BehaviorAnalyzing Web Service Behavior
Analyzing Web Service Behavior
 

Último

Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
fonyou31
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 

Último (20)

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 

Verification with LoLA: 4 Using LoLA

  • 2. You will learn how • to choose and manage LoLA configurations • to ask the right verification questions • to optimally model a Petri net • to employ scripts, makefiles, etc. • to call LoLA from another tool
  • 3. LoLA Configurations • Get LoLA: • http://service-technology.org/files/lola • Standard Workflow: • edit userconfig.H • compile LoLA setup
  • 4. userconfig.H • What to check? • Which reduction techniques to use? • Other parameters
  • 5. The optimal configuration 1. Know your net! • Is it bounded? Do you know the bound? Is it safe? • Do you have a feeling on the outcome? • Is the net made of several components? • Does the net have a lot of concurrency? 2. Experiment!
  • 6. Analysis Tasks • DEADLOCK • REACHABILITY, FINDPATH, STATEPREDICATE • BOUNDEDPLACE, BOUNDEDNET • DEADTRANSITION • REVERSIBILITY, HOME • LIVEPROP, FAIRPROP, STABLEPROP, EVENTUALLYPROP • MODELCHECKING • FULL, NONE
  • 7. Reduction Techniques • STUBBORN - stubborn sets • PREDUCTION - invariant-based compression • SYMMETRY - symmetry reduction • COVER - coverability graph • CYCLE - cycle coverage • SWEEP - sweep-line method • SMALLSTATE - internal representation
  • 8. Stubborn Sets • STUBBORN • when to use: always • compatibility: all other techniques • switch RELAXED to chose more efficient technique if state/predicate is unreachable
  • 9. Invariant-based Compression • PREDUCTION • when to use: always • compatibility: not with sweep-line method preduction
  • 10. Symmetries • SYMMETRY • when to use: net is made of several symmetric components • runtime overhead • compatibility: not with sweep-line method • switch SYMMINTEGRATION and MAXATTEMPT to control time/memory trade-off
  • 11. Coverability Graph • COVER • when to use: mostly clear from the context • compatibility: stubborn sets and symmetry • use with BREADTH_FIRST to have shorter paths to check
  • 12. Cycle Coverage • CYCLE • when to use: can help sometimes • runtime overhead • use with stubborn sets to reduce number of successors • Switches NONBRANCHINGONLY and MAXUNSAVED to control memory/time tradeoff
  • 13. Sweep-line • SWEEP • when to use: behavior has several acyclic stages - always worth a try • compatibility: stubborn set method • in fact: only use with stubborn set method to avoid a lot of regress transitions
  • 14. Small State Representation • SMALLSTATE • when to use: only for simple reachability questions • compatibility: all other techniques
  • 15. Reduction techniques Not all combinations make sense! LoLA takes care about this.
  • 16. Other parameters • BREADTH_FIRST: search strategy • CAPACITY: fix a maximal number of tokens per place • CHECKCAPACITY: check capacity and abort • MAXPATH: maximal length of paths for FINDPATH • REPORTFREQUENCY: report firing of transitions • HASHSIZE: number of hash buckets • MAXIMALSTATES: maximal size of the statespace maximalstates
  • 17. Manage configurations • one binary for each configuration • fight complexity: • ask LoLA for its configuration • predefined standard configurations • offspring generation configurations
  • 19. Predefined configurations several reasonable standard configurations
  • 20. Generate offspring generate a userconfig.H for the given binary
  • 21. Build script downloads the sources and generate a configured binary with random name
  • 22. You will learn how • to choose and manage LoLA configurations ✔ • to ask the right verification questions • to optimally model a Petri net • to employ scripts, makefiles, etc. • to call LoLA from another tool
  • 23. Ask the right questions • be as specific as possible • ask one aspect at a time • exploit all knowledge • transform complex questions
  • 24. Be specific! • most questions can be formulated with CTL • LoLA has dedicated routines: • EF φ - use STATEPREDICATE • AG EF φ - use LIVEPROP • yields more efficient reduction specific
  • 25. Ask one aspect at a time! • Garavel’s challenge: check quasiliveness of a net with 776 transitions • naive way: build one statespace and check each transition • Problem: 9794739147610899087361 states • clever way: build 776 statespaces and check each transition independently • all but two state spaces have < 20000 states
  • 26. Use all knowledge! end of a procedure, see Figure 1. The tasks are modeled by transit ordering of tasks is modeled by places connecting these transitions. • original question: soundness of workflow nets • naive: AG EF φ i WF-net o • Petri-netty: liveness and Fig. 1. A procedure modeled by a W F-net. boundedness of short-circuited net The processing of a case starts the moment we put a token in plac • Knowledge: net is free-choice and built from the moment a token appears in place o. One of the main properties should satisfy is the following: standard patterns For any case, the procedure will terminate eventually, and at t • boundedness boils down to 1-safeness procedure terminates there is a token in place o and all the ot empty. • clever way: two checks: liveness and 1-safeness This property is called the soundness property. In this paper we p to verify this property using standard Petri-net tools. If we restric choice Petri nets (cf. Best [8], Desel and Esparza [12]), this propert polynomial time. W F-nets have some interesting properties. For example, it turns ou
  • 27. Transform your problem! • original question: relaxed soundness (every transition fires in at least one terminating run) • standard algorithm: build statespace, remove nonterminating behavior and check transitions • clever way: create special net for each transition t and check for reachability of marking [o, pt]
  • 28. Problem hierarchy • MODELCHECKING (CTL algorithms, hardly any reduction possible) • BOUNDEDNET (coverability graph) • STABLEPROP, EVENTUALLYPROP, FAIRPROP (strongly connected sets) • HOMESTATE (mutual reachability of TSCCs) • LIVEPROP, REVERSIBILITY (reachability within TSCC) • REACHABILITY (global property) • BOUNDEDPLACE (overhead for coverability check) • STATEPREDICATE (possibly local property) • DEADTRANSITION (local property) • DEADLOCK (best stubborn sets available) • FINDPATH (memoryless exploration)
  • 29. You will learn how • to choose and manage LoLA configurations ✔ • to ask the right verification questions ✔ • to optimally model a Petri net • to employ scripts, makefiles, etc. • to call LoLA from another tool
  • 30. “optimal” Petri nets • have verification in mind • don’t use expensive constructs (reset arcs) • don’t spoil the reduction techniques • help LoLA help you
  • 31. High-level guards • use guards to exclude implausible transition bindings • results in quicker unfolding TRANSITION ManInTheMiddle VAR bob : bobAgents; alice : aliceAgents; bobKey : bobKeys; aliceKey : aliceKeys; GUARD alice <> getMaliceAlice() AND bob <> getMaliceBob() AND isSessionKeyForAlice(alice,bob,aliceKey) AND isSessionKeyForBob(bob,alice,bobKey) CONSUME connStateAlice : makeConnectionState(alice,bob,aliceKey,bobKey), mGoalBobKeys : bobKey; PRODUCE goal : 1;
  • 32. Concurrency • use concurrency where possible • avoid unnecessary ordering of events • makes symmetry/stubborn sets applicable ... initialize initialize initialize component 1 component 2 component 3
  • 33. erformed only if scope Q is allowed to continue its normal p Avoid global states op, the core action of X is bypassed, as captured by the τ -tr bypassing a normal event can be defined in a similar way. • n a fault occurs in scope Q,synchronization changes from to co avoid excessive the status of Q or “global state places” rX X to_stopQ X sX to_continueQ "bypass" X C cX fX • such nets13. Terminationconcurrency Figure have no real of a basic activity.
  • 34. Flexible model generation • model with verification question in mind • for each question have a dedicated model with proper abstractions • implemented in compiler BPEL2oWFN flexible
  • 35. Scale by structure • when possible, scale model by structure, not by the number of tokens • in LoLA: just increase sort • rationale: symmetry and stubborn sets SORT dimensions = [ 1 , 3 ]; row = [ 1 , 3 ];
  • 36. You will learn how • to choose and manage LoLA configurations ✔ • to ask the right verification questions ✔ • to optimally model a Petri net ✔ • to employ scripts, makefiles, etc. • to call LoLA from another tool
  • 37. Script LoLA • LoLA follows the UNIX philosophy • every tool does one thing (and that thing right) • tools communicate with files/streams • exit codes tell about outcome of LoLA • this all allows to quickly build powerful tool chains
  • 38. LoLA’s exit codes • 0: specified state or deadlock found/net or place unbounded/home marking exists/net is reversible/ predicate is live/CTL formula true/transition not dead/liveness property does not hold • 1: the opposite verification result • rule of thumb, if the outcome of a verification result can be supported by a counterexample or witness path, that case corresponds to return value 0 exit
  • 39. LoLA’s exit codes • exit code allow for simple workflows in the shell • (lola1 net.lola && lola2 net.lola && echo “OK”) || echo “not OK”) • translation: • execute lola1 • if the exit code is 0, execute lola2 • if the exit code is again 0, print “OK” • otherwise, print “not OK”
  • 40. Example: Scripting • Garavel’s challenge • quasiliveness of 776 transitions checked in 776 runs • shell script: 1. extract transitions from net 2. generate analysis task for DEADTRANSITION ("ANALYZE TRANSITION t1") 3. call LoLA 4. evaluate exit code • DEADTRANSITION succeeds in all but 2 cases • then use FINDPATH garavel
  • 41. Example: Makefile • check for relaxed soundness • for each transition: 1. create manipulated net 2. generate analysis task for STATEPREDICATE ("FORMULA (pt = 1 AND o = 1)") 3. call LoLA 4. evaluate exit code • use Makefile to collect the results • benefit: parallel execution relaxed
  • 42. You will learn how • to choose and manage LoLA configurations ✔ • to ask the right verification questions ✔ • to optimally model a Petri net ✔ • to employ scripts, makefiles, etc. ✔ • to call LoLA from another tool
  • 43. Integrating LoLA into Wendy • Wendy: a tool to synthesize partners for services • algorithm needs a lot of small state spaces • before: calculate them on-the-fly • now: calculate one big one in advance and preprocess - helps to avoid “bad” states • tool of choice for this: LoLA (lola-full) • benefits: • modularity • get Tarjan numbers for free • interprocess concurrency wendy
  • 44. Integrating LoLA • integration is easy when using C: const char *c = "lola-full tempfile.lola -M"; FILE *pipe = popen(c, "r"); parse_pipe(); pclose(pipe); • UNIX streams allow parallel generation and parsing of the state space
  • 45. You will learn how • to choose and manage LoLA configurations ✔ • to ask the right verification questions ✔ • to optimally model a Petri net ✔ • to employ scripts, makefiles, etc. ✔ • to call LoLA from another tool ✔

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n