Compliance and testing preorders differ
Giovanni Bernardi, Matthew Hennessy
TRINITY COLLEGE DUBLIN
COL ´
AISTE NA TR´ ION ´ OIDE, BAILE ´
ATHA CLIATH Compliance and testing preorders differ 1
Compliance and testing preorders differ Giovanni Bernardi, Matthew - - PowerPoint PPT Presentation
Compliance and testing preorders differ Giovanni Bernardi, Matthew Hennessy TRINITY COLLEGE DUBLIN OIDE , B AILE C OL AISTE NA T R ION A THA C LIATH Compliance and testing preorders differ 1 Why preorders? formalisms for web
TRINITY COLLEGE DUBLIN
COL ´
AISTE NA TR´ ION ´ OIDE, BAILE ´
ATHA CLIATH Compliance and testing preorders differ 1
formalisms for web services, 2006 onwards
(server satisfaction disregarded)
◮ server p satisfies a client r (complies, must, should, . . . ) ◮ server p′ better than server p
Compliance and testing preorders differ 2
greatest relation st
whenever
greatest relation st
whenever
r || p
τ
− → r1 || p1
τ
− → . . .
τ
− →
→ rk || pk
τ
− →
τ
τ
Compliance and testing preorders differ 3
greatest relation st
whenever
greatest relation st
whenever
r || p
τ
− → r1 || p1
τ
− → . . .
τ
− →
→ rk || pk
τ
− →
τ
τ
r
p
:-( r
p
:-)
Compliance and testing preorders differ 4
Standard definitions
tst
svr p2 if p1 must r implies p2 must r
for every client r
svr p2 if
for every client r
svr
De Nicola, Hennessy; Cleaveland, Hennessy
◮ behavioural characterisation ◮ axiomatisation ◮ decidable
svr
Castagna at el.; Padovani
◮ filters, orchestrators ◮ weak subcontract
Compliance and testing preorders differ 5
Compliance and testing preorders differ 6
Obvious definitions
tst
clt r2 if p must r1 implies p must r2
for every server p
clt r2 if
for every server p
clt
Bernardi, Hennessy
◮ behavioural characterisation ◮ axiomatisation
clt
Barbanera, De’Liguoro; Bernardi, Hennessy
◮ used to model first-order session types
full abstraction
svr ∩ ⊑cpl clt ∼
Compliance and testing preorders differ 7
Testing theory Compliance theory
svr, ❁
clt
svr, ⊑cpl clt
svr
svr,
clt
clt
Compliance and testing preorders differ 8
Infinite branching, divergent processes
Compliance and testing preorders differ 9
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
p p1 p2 . . .
svr
q
p p1 p2 . . .
tst
svr
q
Compliance and testing preorders differ 10
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
p p1 p2 . . .
svr
q
p p1 p2 . . .
tst
svr
q
τ
τ
:-)
Compliance and testing preorders differ 11
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
p p1 p2 . . .
svr
q
p p1 p2 . . .
tst
svr
q
r 1
τ
τ
:-)
:-(
Compliance and testing preorders differ 12
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
Ω
tst
svr
p
Ω
svr
p
Compliance and testing preorders differ 13
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
Ω
tst
svr
p
Ω
svr
p
:-(
Compliance and testing preorders differ 14
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
Ω
tst
svr
p
Ω
svr
p
r
:-(
:-)
Compliance and testing preorders differ 15
Infinite branching, divergent processes
svr ⊆ ❁
tst
svr
tst
svr ⊆ ⊑cpl svr
Ω
tst
svr
p
Ω
svr
p
r
axiom
svr
:-(
:-)
Compliance and testing preorders differ 16
Infinite branching, divergent processes
Compliance and testing preorders differ 17
Infinite branching, divergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
Ω
tst
clt
Ω
clt
Compliance and testing preorders differ 18
Infinite branching, divergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
Ω
tst
clt
Ω
clt
:-(
Compliance and testing preorders differ 19
Infinite branching, divergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
Ω
tst
clt
Ω
clt
:-(
:-)
Compliance and testing preorders differ 20
Infinite branching, divergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
Ω
tst
clt
Ω
clt
axiom
clt
:-(
:-)
Compliance and testing preorders differ 21
svr ⊆ ❁
tst
svr
clt ⊆ ❁
tst
clt
tst
svr ⊆ ⊑cpl svr
tst
clt ⊆ ⊑cpl clt
Compliance and testing preorders differ 22
svr ⊆ ❁
tst
svr
clt ⊆ ❁
tst
clt
tst
svr ⊆ ⊑cpl svr
tst
clt ⊆ ⊑cpl clt
Compliance and testing preorders differ 23
Finite branching, strongly convergent processes
◮ hinted at in concur 2007 Laneve, Padovani ◮ stated in toplas 2009, tcs 2010 Castagna et al.; Padovani ◮ proof to appear in MSCS Bernardi, Hennessy
Compliance and testing preorders differ 24
Finite branching, strongly convergent processes
Compliance and testing preorders differ 25
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r
clt
r
tst
clt
Compliance and testing preorders differ 26
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r
clt
r
tst
clt
τ
Compliance and testing preorders differ 27
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r
clt
r
tst
clt
τ
Compliance and testing preorders differ 28
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r
clt
r
tst
clt
τ
axiom
clt
clt r ⊑cpl clt 0 Compliance and testing preorders differ 29
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 r ′
1
tst
clt
r2 r ′
2
r1 r ′
1
clt
r2 r ′
2
Compliance and testing preorders differ 30
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 r ′
1
tst
clt
r2 r ′
2
r1 r ′
1
clt
r2 r ′
2
:-(
Compliance and testing preorders differ 31
Finite branching, strongly convergent processes
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 r ′
1
tst
clt
r2 r ′
2
r1 r ′
1
clt
r2 r ′
2
p
:-(
:-)
Compliance and testing preorders differ 32
svr = ❁
tst
svr
clt = ❁
tst
clt
svr = ❁
tst
svr
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
Compliance and testing preorders differ 33
svr = ❁
tst
svr
clt = ❁
tst
clt
svr = ❁
tst
svr
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
Compliance and testing preorders differ 34
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 1
tst
clt
r2
1
clt
r2
35
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 1
tst
clt
r2
1
clt
r2
Compliance and testing preorders differ 36
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 1
tst
clt
r2
1
clt
r2
p
Compliance and testing preorders differ 37
clt ⊆ ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
r1 1
tst
clt
r2
1
clt
r2
p
axiom
clt
Compliance and testing preorders differ 38
svr = ❁
tst
svr
clt = ❁
tst
clt
svr = ❁
tst
svr
clt = ❁
tst
clt
tst
clt ⊆ ⊑cpl clt
clt ⊆ ❁
tst
clt
Compliance and testing preorders differ 39
i∈[1;n]?li.ri | i∈[1;n] τ.!li.ri (li’s pairwise distinct labels)
svr = ❁
svr,
clt = ❁
clt.
Compliance and testing preorders differ 40
i∈[1;n]?li.ri | i∈[1;n] τ.!li.ri (li’s pairwise distinct labels)
svr = ❁
svr,
clt = ❁
clt.
Compliance and testing preorders differ 41
svr = ❁
tst
svr
clt = ❁
tst
clt
svr = ❁
tst
svr
clt = ❁
tst
clt
clt = ❁
tst
svr
svr = ❁
tst
svr
clt = ❁
tst
clt
Compliance and testing preorders differ 42
in general Compliance and testing preorders differ
tst
clt do not hold for ⊑cpl clt
(axiomatisation, behav. char.)
clt
◮ properties ◮ reasoning techniques
Compliance and testing preorders differ 43
Compliance and testing preorders differ 44
Thorny business
◮ usability
tst
clt 0 ◮ broken axioms
tst
clt a.τ. 1 ◮ not compositional
tst
clt b. 0
tst
clt a. 1
tst
clt a. 1 + b. 0 ◮ no Park Induction (compliance, should)
clt 0
clt 0
clt 0
clt 0 (witness: rec x.a.x) Compliance and testing preorders differ 45