Probabilistic Contracts for Component-based Design
Dana N. Xu Gregor G¨
- ssler
Alain Girault
INRIA, France
ATVA 2010
D.N. Xu, G. G¨
- ssler, A. Girault (INRIA, France)
Probabilistic contracts ATVA 2010 1 / 18
Probabilistic Contracts for Component-based Design Gregor G ossler - - PowerPoint PPT Presentation
Probabilistic Contracts for Component-based Design Gregor G ossler Alain Girault Dana N. Xu INRIA, France ATVA 2010 D.N. Xu, G. G ossler, A. Girault (INRIA, France) Probabilistic contracts ATVA 2010 1 / 18 Probabilistic Contracts
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 1 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 2 / 18
Client (C) Link (L) req rec res del Server (S) del’ req’ rec’ res’
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 3 / 18
Client (C) Link (L) req rec res del Server (S) del’ req’ rec’ res’
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 4 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 5 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 6 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 7 / 18
s1 s0 s3 s2 s4 er2 res′ 0.7 res′ 0.2 handle res′ 0.1 req′ req′ s1 s0 s3 s2 s4 er2 res′ [0.7, 0.7] res′ [0.2, 0.2] handle res′ [0.1, 0.1] req′ req′
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 8 / 18
s1 s0 s3 s2 s4 er2 res′ 0.7 res′ 0.2 handle res′ 0.1 req′ req′ s1 s0 s3 s2 s4 er2 res′ [0.7, 0.7] res′ [0.2, 0.2] handle res′ [0.1, 0.1] req′ req′
⊤ t2 t3 t0 t1 req′ req′ [0.9, 1] [0, 0.1] res′
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 8 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 9 / 18
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0)
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1]
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3]
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3] b
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3] b a|c
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3] b a|c d
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3] b a|c d b
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3] b a|c d b d
s1 s0 s3 s2 s6 s5 [0.9, 1] b b [0.5, 0.8] a [0, 0.1] [0.2, 0.5] a ⊤ t2 t3 t0 t1 c c [0.7, 0.9] [0.1, 0.3] d c
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a|c b (s5, t2) (s5, t3) (s6, t3) (s6, t2) [0.5 ∗ 0.1, 0.8 ∗ 0.3] [0.5 ∗ 0.7, 0.8 ∗ 0.9] [0.2 ∗ 0.7, 0.5 ∗ 0.9] [0.2 ∗ 0.1, 0.5 ∗ 0.3] b a|c d b d ⊤ a|c
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 10 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 11 / 18
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0)
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1]
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a c
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a c (s5, t3) (s6, t2) [0.1, 0.2] [0.8, 0.9]
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a c (s5, t3) (s6, t2) [0.1, 0.2] [0.8, 0.9] d
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a c (s5, t3) (s6, t2) [0.1, 0.2] [0.8, 0.9] d a
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a c (s5, t3) (s6, t2) [0.1, 0.2] [0.8, 0.9] d a (s1, ⊤) b
s1 s0 s3 s2 s6 s5 [0.9, 1] c [0.7, 0.9] a b [0, 0.1] [0.1, 0.3] a ⊤ t2 t3 t0 t1 b a [0.8, 0.9] [0.1, 0.2] d a
(s0, t0) (s2, t0) (s1, t0) [0, 0.1] [0.9, 1] (s3, t1) a c (s5, t3) (s6, t2) [0.1, 0.2] [0.8, 0.9] d a (s1, ⊤) b (s3, ⊤) (s5, ⊤) (s6, ⊤) [0.1, 0.3] [0.7, 0.9] a a b
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 12 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 13 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 14 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 15 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 16 / 18
1
2
3
4
1
2
3
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 17 / 18
D.N. Xu, G. G¨
Probabilistic contracts ATVA 2010 18 / 18