SlideShare a Scribd company logo
Pragmatic model checking:

from theory to implementations
Niels Lohmann
1 2 3

How does a
model checker
work?

How to build an
effective model
checker?

How to use a
model checker
pragmatically?
1 2 3

How does a
model checker
work?

How to build an
effective model
checker?

How to use a
model checker
pragmatically?
Model checking in a nutshell
model

'

specification

model
checker

yes

(
witness path)

no

(
counterexample)

4
Model checking in a nutshell
model

'

model
checker

yes

(
witness path)

no

(
counterexample)

specification

memory
overflow
4
State explosion
business process* with 66 parallel branches * modeled by IBM

customers using the
IBM Websphere
business modeler

5
State explosion
business process* with 66 parallel branches * modeled by IBM
state space:

66
19
2 ≈ 2.37 ∙ 10 markings

customers using the
IBM Websphere
business modeler

5
State explosion
business process* with 66 parallel branches * modeled by IBM
state space:

66
19
2 ≈ 2.37 ∙ 10 markings
memory for state space:

608 exabytes** (66 bit per marking)

customers using the
IBM Websphere
business modeler

** mega, giga, peta,

tera, exa…

5
State explosion
business process* with 66 parallel branches * modeled by IBM

customers using the
IBM Websphere
business modeler

state space:

66
19
2 ≈ 2.37 ∙ 10 markings
memory for state space:

608 exabytes** (66 bit per marking)

** mega, giga, peta,

tera, exa…

time for state space generation

7799 years (10 CPU cycles/marking at 3 GHz)

5
State explosion
business process* with 66 parallel branches * modeled by IBM

customers using the
IBM Websphere
business modeler

state space:

66
19
2 ≈ 2.37 ∙ 10 markings
memory for state space:

608 exabytes** (66 bit per marking)

** mega, giga, peta,

tera, exa…

time for state space generation

7799 years (10 CPU cycles/marking at 3 GHz)
energy consumption for state space generation

2,9 megatons of TNT (at 50 watts)

5
State explosion
business process* with 66 parallel branches * modeled by IBM

customers using the
IBM Websphere
business modeler

state space:

66
19
2 ≈ 2.37 ∙ 10 markings
memory for state space:

608 exabytes** (66 bit per marking)

** mega, giga, peta,

tera, exa…

time for state space generation

7799 years (10 CPU cycles/marking at 3 GHz)
energy consumption for state space generation

2,9 megatons of TNT (at 50 watts)

5
The core algorithm
!
!

markings = []
search(m0,φ)

! !
!

1
2
3
4
5
6

def search(m,φ):
check(m,φ)
markings.add(m)
for t in enabled(m):
m' = fire(m,t)
if not m' in markings:
search(m',φ)

• search is a simple depth first
search (+ SCC detection)
• check depends on the
nature of the property and
may terminate search
• enabled and fire implement
the Petri net firing rule
6
Reduction techniques
apply theoretic results to
1. store fewer markings
2. fire fewer transitions /

generate fewer markings






while preserving the property

3. store markings more efficiently

7
1. Partial order reduction
observation: concurrent
transitions can be fired in
any order, yielding the same
final state
idea: fix one ordering by
postponing the firing of
some transitions
implementation: search on
Petri net structure
8
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
1. Partial order reduction
algorithm (sketch):
•

choose one activated
transition

•

until fixed point is reached:
add all conflicting transitions

only fire these transitions
9
2. Symmetry reduction
observation: symmetric models
(e.g. due to copies of
components) have symmetric
behavior

i1

c1

idea: do not store markings if a
symmetric copy is already
stored
implementation: Petri net
graph automorphisms

i2

r1

s

c2

r2
10
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

r2
11
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

symmetric markings

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

symmetric markings

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

symmetric markings

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
i1

[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

i2

[r2,c2]

symmetric markings

c1

[i1,c2]

r1

s

c2

graph
automorphisms

r2
12
2. Symmetry reduction
[i1,s,i2]
[r1,s,i2]

[i1,s,r2]
[r1,s,r2]

[c1,i2]
[c1,r2]

[i1,c2]

[r2,c2]

complete state space

reduced state space
13
3. State compression
observation: the value of some
places depend on the value of
others

i1 r1 c1 s i2 r2 c2

m = [1,0,0,0,0,0,1]
i1

c1

idea: do not store markings of
“implicit places”
implementation: Petri net
place invariants

i2

r1

s

c2

r2
14
3. State compression
place invariants: for all
reachable markings m:

i1 r1 c1 s i2 r2 c2

m = [1,0,0,0,0,0,1]
i1

m(c1) + m(c2) + m(s) = 1

m(i1) + m(c1) + m(r1) = 1

m(i2) + m(c2) + m(r2) = 1

i2

c1

r1

s

c2

r2
15
3. State compression
place invariants: for all
reachable markings m:

i1 r1 c1 s i2 r2 c2

m = [1,0,0,0,0,0,1]
i1

m(c1) + m(c2) + m(s) = 1

m(i1) + m(c1) + m(r1) = 1

m(i2) + m(c2) + m(r2) = 1

c1

therefore:
m(s) = 1 − m(c1) − m(c2)

m(i1) = 1 − m(c1) − m(r1)

m(i2) = 1 − m(c2) − m(r2)

i2

s

c2

r1

i1, i2, and s are implicit

r2
16
Reduction techniques: implementation
!
!
!
!

markings = []
c = compressor()
s = symmetries()
search(m0,φ)

! !
!

1
2
3
4
5
6

def search(m,φ):
check(m,φ)
markings.add(c.compress(m))
for t in selection(enabled(m)):
m' = fire(m,t)
if not s.symm(m') in markings:
search(m',φ)

• compressor and
symmetries preprocess
the net
• compress creates
shorter marking vectors
• selection chooses some
enabled transitions
• symm checks if
symmetric marking is
already stored

17
Reduction techniques: summary
•

can be combined

•

a lot of them work on the

Petri net structure

•

preprocessing pays off

•

some are Petri net exclusive

•

decades of research
18
1 2 3

How does a
model checker
work?

How to build an
effective model
checker?

How to use a
model checker
pragmatically?
Key: Pragmatism
good news
model checking
is decidable

bad news
at a devastating
complexity

•

in the end: we only optimize a small depth-first search…

… that is run billions of times

•

we need to understand every aspect

•

pragmatism is key: we want a result at all costs

20
The programming language: C++
manual memory

management
type system
low-level

optimization

portability

preprocessor
optional

object orientation

threading
21
Used anti-patterns
•

heavy use of preprocessor (conditional
compilation, compile-time decisions,
architecture-dependent constants)

•

god objects

•

a lot of global variables

•

no standard libraries/

generic algorithms (STL, Boost)

•

remember: performance, not reusability

22
Data structures
frontend (parser)

backend (verification)

syntactic sugar

canonic representation

class hierarchies

flat C-style arrays

generated code/

standard libraries

simple and user-specified

data types

focus on simplicity

focus on performance
23
A remark on complexity
•

While solving an EXPSPACE-complete problems,

don’t be afraid of complexity!

•

Preprocessing and optimizations

can have dramatic impact.

•

NP-complete (SAT-solving) or

NP-hard (integer linear programming)

problems can be “feasible”.
24
Formalism

compilers

modeling formalisms

verification formalism

WS-BPEL
low-level Petri nets
AI planning
- varying feature set

- domain dependent

- moving target, short lifespan

- no structural restrictions

- domain independent

- sound, mature theory

25
Petri net model checking
•

exploit domain knowledge to optimize core functions
•

firing transitions

•

storing markings

•

know lifecycle of concepts

•

often contradicts object orientation
26
Checking enabledness
orange transition

is disabled

27
Checking enabledness
orange transition

is disabled

scapegoat

place
27
Checking enabledness
orange transition

is disabled

blue

transition

fires

scapegoat

place
27
Checking enabledness
orange transition

is disabled

scapegoat

place

blue

transition

fires

scapegoat place
still unmarked
27
Checking enabledness
orange transition

is disabled

scapegoat

place

blue

transition

fires

scapegoat place
still unmarked

orange transition

is still disabled
27
Storing markings
markings

bit vectors

bin tree

[0,1,3,3,1]

00 01 11 11 01

00 01 11 11 01

[0,1,3,2,0]

00 01 11 10 00

00 01 11 10 00

[0,1,3,2,1]

00 01 11 10 01

00 01 11 10 01

28
Storing markings
markings

bit vectors

bin tree

[0,1,3,3,1]

00 01 11 11 01

00 01 11 11 01

[0,1,3,2,0]

00 01 11 10 00

00 01 11 10 00

[0,1,3,2,1]

00 01 11 10 01

00 01 11 10 01

28
Storing markings
markings

bit vectors

bin tree

[0,1,3,3,1]

00 01 11 11 01

1 01

[0,1,3,2,0]

00 01 11 10 00

00 01 11 10 00

[0,1,3,2,1]

00 01 11 10 01

00 01 11 10 01

28
Storing markings
markings

bit vectors

bin tree

[0,1,3,3,1]

00 01 11 11 01

1 01

[0,1,3,2,0]

00 01 11 10 00

00 01 11 10 00

[0,1,3,2,1]

00 01 11 10 01

00 01 11 10 01

28
Storing markings
markings

bit vectors

bin tree

[0,1,3,3,1]

00 01 11 11 01

1 01

[0,1,3,2,0]

00 01 11 10 00

00 01 11 10 00

[0,1,3,2,1]

00 01 11 10 01

01

28
Know what you need
•

sometimes, only a special case is needed:
•
•

•

Tarjan algorithm where only TSCCs are needed
linear algebra (sparse matrix, only carrier is needed)

no library can offer this

29
Optimizations

•

profiling, low-level optimizations (caching)

•

know your limits: (in LoLA: malloc)

30
Academic software design
hardly any tenure
programmers

seldom seen as important

coding is never
top priority
your thesis is!

there is no
(paying) customer
no agreed feature set

definitely no coding
professionals

university cannot teach experience

very fast

scientific progress

maintenance is
not enforced

moving targets

once the paper is out, nobody cares

hard to collect/
keep knowledge

people leave frequently and for good

frequently
changing staff
2-5 year contracts

31
Lessons learned
•

prototyping and check on real data

•

KISS; few dependencies

•

split large tools to smaller

“brain-sized” units

•

test coverage to avoid the fear of
breaking everything

•

goal orientation:

no UI, integration via streams

32
1 2 3

How does a
model checker
work?

How to build an
effective model
checker?

How to use a
model checker
pragmatically?
Verification questions: the don’ts
Don’t ask for
global states.

Usually, only a few aspects (marking
of a few places) are relevant.

Don’t ask two
things at once.

If the properties affect different parts
of the model, ask separately.

Don’t use the
X operator.

In distributed systems, it makes no
sense to ask for “the” next state.

Don’t order
unordered things.

Usually, all components should be
correct, not just component #1.
34
Verification questions: the dos
Ask simple
questions.

Sometimes, you don’t need
temporal logics at all.

Make a
verification model.

Manipulating the original model
may help to ask simpler questions.

Use domain
knowledge.

Exploit implicit assumptions about
the model and the property.
35
Simple properties
complex

simple

reason

EF φ

reachability of φ

trivial check function

AG φ

¬EF ¬φ

again reachability

AGEF φ

check for φ
in all TSCC

reachability +

TSCC detection

lesson: (hardly) no need

for complex CTL* formulae
compilers will help to find best match

SCC

TSCC

36
Checking relaxed soundness
Definition: A workflow net is relaxed sound iff for all
transitions exists a terminating firing sequence.

o

i

if choices are not
synchronized, the net
deadlocks
but every transition
can fire in a
terminating sequence

net is relaxed sound

37
Net manipulation: algorithm
1. for all transitions t: create a net with test place pt:
pt
t
i

o

2. check for EF (pt > 0 ⋀ o = 1)
38
Net manipulation: summary
− check 8 nets instead of 1
+ checking reachability is simpler than extended CTL
+ each state space is smaller than the original
+ one counterexample for each failure
+ parallelizable
39
Checking soundness
Definition: A workflow net is sound iff (1) the final
marking [o] is always reachable (2) [o] is the only
marking with tokens on place o, and (3) no
transition is dead.
+ domain knowledge: nets are free-choice
Definition: A free-choice workflow net is sound iff

(1) AGEF [o] holds,

(2) the net is 1-safe, and

(3) no transition is dead.

40
Checking soundness
Definition: A free-choice workflow net is sound iff (1) AGEF
[o] holds, (2) the net is 1-safe, and (3) no transition is dead.
(1) check if the marking [o] is
reachable in all TSCCs.
(2) for every join-place p, check if m
with m(p)>1 is reachable.
(3) for every transition t, check if
reachable

•t

is

X

=
t

p

41
Pragmatic use: summary

•

help the model checker help you

•

reformulate your question

•

many small state spaces are better than one large

42
1 2 3

How does a
model checker
work?

How to build an
effective model
checker?

How to use a
model checker
pragmatically?

Conclusions
Take home points

•

model checking = theory + practice + pragmatism

•

academic software design is a discipline on its own

•

asking the right question(s) is crucial

44
Pragmatic model checking:

from theory to implementations
Niels Lohmann
Copyrights
Atombombentest Romeo, public domain United States Department of Energy

http://commons.wikimedia.org/wiki/File:Castle_Romeo.jpg
Raspberry Pi, CC-BY-SA Jwrodgers

http://commons.wikimedia.org/wiki/File:RaspberryPi.jpg
apoptosis inducing factor, GPL

http://en.wikipedia.org/wiki/File:Apoptosis_inducing_factor.png
Tux, by lewing@isc.tamu.edu

http://en.wikipedia.org/wiki/File:Tux.png
Integrated Circuit, public domain

http://commons.wikimedia.org/wiki/File:Chip.jpg
Websphere software logo, public domain

http://commons.wikimedia.org/wiki/File:Websphere_logo.png
BPMN logo, copyright Object Management Group (OMG)

46

More Related Content

PPTX
State Space Reduction Techniques to Verify Business Processes
PPT
Thesis F. Redaelli UIC Slides EN
PDF
Poster: Contract-Based Integration of Cyber-Physical Analyses
PDF
論文紹介 Combining Model-Based and Model-Free Updates for Trajectory-Centric Rein...
PPTX
Федор Поляков (Looksery) “Face Tracking на мобильных устройствах в режиме реа...
PPT
3DD 1e SyCers
PPT
Bounded Model Checking
PDF
MiL Testing of Highly Configurable Continuous Controllers
State Space Reduction Techniques to Verify Business Processes
Thesis F. Redaelli UIC Slides EN
Poster: Contract-Based Integration of Cyber-Physical Analyses
論文紹介 Combining Model-Based and Model-Free Updates for Trajectory-Centric Rein...
Федор Поляков (Looksery) “Face Tracking на мобильных устройствах в режиме реа...
3DD 1e SyCers
Bounded Model Checking
MiL Testing of Highly Configurable Continuous Controllers

What's hot (20)

PDF
Algorithm Analyzing
PDF
Concurrent Bounded Model Checking
PDF
(Paper Review)U-GAT-IT: unsupervised generative attentional networks with ada...
PDF
Doulos coverage-tips-tricks
PDF
Gordon morrison temporalengineering-delphi-v3
PDF
Introduction to Algorithms Complexity Analysis
PDF
Towards Automatic Code Selection with ppOpen-AT: A Case of FDM - Variants of ...
PDF
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
PPTX
Lecture 2 data structures and algorithms
PDF
Safety Verification of Deep Neural Networks_.pdf
PDF
Design & Analysis of Algorithms Lecture Notes
PDF
A calculus of mobile Real-Time processes
PDF
report
PPTX
Unit i basic concepts of algorithms
PDF
Analyzing algorithms
PPT
Algorithm analysis
PDF
Session 6 sv_randomization
PPT
Mutual exclusion and sync
PPTX
Introduction to algorithn class 1
PDF
01 Analysis of Algorithms: Introduction
Algorithm Analyzing
Concurrent Bounded Model Checking
(Paper Review)U-GAT-IT: unsupervised generative attentional networks with ada...
Doulos coverage-tips-tricks
Gordon morrison temporalengineering-delphi-v3
Introduction to Algorithms Complexity Analysis
Towards Automatic Code Selection with ppOpen-AT: A Case of FDM - Variants of ...
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Lecture 2 data structures and algorithms
Safety Verification of Deep Neural Networks_.pdf
Design & Analysis of Algorithms Lecture Notes
A calculus of mobile Real-Time processes
report
Unit i basic concepts of algorithms
Analyzing algorithms
Algorithm analysis
Session 6 sv_randomization
Mutual exclusion and sync
Introduction to algorithn class 1
01 Analysis of Algorithms: Introduction
Ad

Similar to Pragmatic model checking: from theory to implementations (20)

PPTX
all about petri netis model and simulation
PDF
Model Driven Developing & Model Based Checking: Applying Together
PDF
Laser 3-incremental
PPT
Using Petri Net Invariants in State Space Construction
PDF
overview.pdf
PDF
Poster chep2012 reduced_original1
PDF
Formal Verification
PDF
Colored petri nets theory and applications
PDF
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
PPT
PDF
Model Checking as a Service: Towards Pragmatic Hidden Formal Methods
PPT
Week 13-14.ppt ejje jekr krkekr jekek kej
PPTX
The secret life of rules in Software Engineering
ODP
NASA Formal Methods Symposium
PPTX
Introduction to formal methods lecture notes
PPTX
Petri Nets: Properties, Analysis and Applications
PDF
CS-438 WK13-15LEC25-30 Computer System Modeling.pdf
PDF
Hybrid use of machine learning and ontology
PDF
Automated Verification Of Concurrent Search Structures Siddharth Krishna
PDF
Modeling and Simulation lecture1.pdf
all about petri netis model and simulation
Model Driven Developing & Model Based Checking: Applying Together
Laser 3-incremental
Using Petri Net Invariants in State Space Construction
overview.pdf
Poster chep2012 reduced_original1
Formal Verification
Colored petri nets theory and applications
MODEL CHECKERS –TOOLS AND LANGUAGES FOR SYSTEM DESIGN- A SURVEY
Model Checking as a Service: Towards Pragmatic Hidden Formal Methods
Week 13-14.ppt ejje jekr krkekr jekek kej
The secret life of rules in Software Engineering
NASA Formal Methods Symposium
Introduction to formal methods lecture notes
Petri Nets: Properties, Analysis and Applications
CS-438 WK13-15LEC25-30 Computer System Modeling.pdf
Hybrid use of machine learning and ontology
Automated Verification Of Concurrent Search Structures Siddharth Krishna
Modeling and Simulation lecture1.pdf
Ad

More from Universität Rostock (20)

PDF
Where did I go wrong? Explaining errors in process models
PDF
Decidability Results for Choreography Realization
PDF
Artifact-centric modeling using BPMN
PDF
Compliance by Design for Artifact-Centric Business Processes
KEY
Verification with LoLA
KEY
Verification with LoLA: 7 Implementation
KEY
Verification with LoLA: 6 Integrating LoLA
KEY
Verification with LoLA: 5 Case Studies
KEY
Verification with LoLA: 4 Using LoLA
KEY
Verification with LoLA: 3 State Space Reduction
KEY
Verification with LoLA: 1 Basics
KEY
Verification with LoLA: 2 The LoLA Input Language
PDF
Saarbruecken
PDF
Ws4 dsec talk @ Kickoff RS3
PDF
Internal Behavior Reduction for Services
PDF
Karsten Wolf @ Carl Adam Petri Memorial Symposium
PDF
Implementation of an Interleaving Semantics for TLDA
PDF
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
PDF
Demonstration of BPEL2oWFN and Fiona
PDF
service-technology.org — A tool family for correct
business processes and ser...
Where did I go wrong? Explaining errors in process models
Decidability Results for Choreography Realization
Artifact-centric modeling using BPMN
Compliance by Design for Artifact-Centric Business Processes
Verification with LoLA
Verification with LoLA: 7 Implementation
Verification with LoLA: 6 Integrating LoLA
Verification with LoLA: 5 Case Studies
Verification with LoLA: 4 Using LoLA
Verification with LoLA: 3 State Space Reduction
Verification with LoLA: 1 Basics
Verification with LoLA: 2 The LoLA Input Language
Saarbruecken
Ws4 dsec talk @ Kickoff RS3
Internal Behavior Reduction for Services
Karsten Wolf @ Carl Adam Petri Memorial Symposium
Implementation of an Interleaving Semantics for TLDA
Formale Fundierung und effizientere Implementierung der schrittbasierten TLDA...
Demonstration of BPEL2oWFN and Fiona
service-technology.org — A tool family for correct
business processes and ser...

Recently uploaded (20)

PDF
RMMM.pdf make it easy to upload and study
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Pre independence Education in Inndia.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
01-Introduction-to-Information-Management.pdf
PDF
Complications of Minimal Access Surgery at WLH
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PPTX
Institutional Correction lecture only . . .
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
Pharma ospi slides which help in ospi learning
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
RMMM.pdf make it easy to upload and study
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
O7-L3 Supply Chain Operations - ICLT Program
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Pre independence Education in Inndia.pdf
Microbial disease of the cardiovascular and lymphatic systems
Final Presentation General Medicine 03-08-2024.pptx
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
Anesthesia in Laparoscopic Surgery in India
01-Introduction-to-Information-Management.pdf
Complications of Minimal Access Surgery at WLH
O5-L3 Freight Transport Ops (International) V1.pdf
Supply Chain Operations Speaking Notes -ICLT Program
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Institutional Correction lecture only . . .
2.FourierTransform-ShortQuestionswithAnswers.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Pharma ospi slides which help in ospi learning
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...

Pragmatic model checking: from theory to implementations