Proving Correctness of Graph Programs Relative to Recursively Nested Conditions
Nils Erik Flick
Universität Oldenburg February 2017
Proving Correctness of Graph Programs Relative to Recursively Nested - - PowerPoint PPT Presentation
Proving Correctness of Graph Programs Relative to Recursively Nested Conditions Nils Erik Flick Universitt Oldenburg February 2017 Intro Correctness Results Rel. Work Conclusion Extras Outline Correctness and Graph Programs 1
Universität Oldenburg February 2017
Intro Correctness Results
Conclusion Extras
1
2
3
Nils Erik Flick Correctness of Graph Programs 2 / 23
Intro Correctness Results
Conclusion Extras Framework Graph Programs µ-conditions
♣r❡❝♦♥❞✐t✐♦♥ ❝❛❧❝✉❧✉s ♣r♦✈❡r
P ✭♣r♦❣r❛♠✮ ✇❡❛❦❡st ♣r❡❝♦♥❞✐t✐♦♥ d ✭♣♦st❝♦♥❞✐t✐♦♥✮ c ✭♣r❡❝♦♥❞✐t✐♦♥✮ ②❡s✱ ❝♦rr❡❝t ♥♦ ✉♥❦♥♦✇♥
❱❡r✐✜❝❛t✐♦♥ ♣r♦❝❡ss
Nils Erik Flick Correctness of Graph Programs 3 / 23
Intro Correctness Results
Conclusion Extras Framework Graph Programs µ-conditions
♣r❡❝♦♥❞✐t✐♦♥ ❝❛❧❝✉❧✉s ♣r♦✈❡r
P ✭♣r♦❣r❛♠✮ ✇❡❛❦❡st ♣r❡❝♦♥❞✐t✐♦♥ d ✭♣♦st❝♦♥❞✐t✐♦♥✮ c ✭♣r❡❝♦♥❞✐t✐♦♥✮ ②❡s✱ ❝♦rr❡❝t ♥♦ ✉♥❦♥♦✇♥
Nils Erik Flick Correctness of Graph Programs 3 / 23
Intro Correctness Results
Conclusion Extras Framework Graph Programs µ-conditions
Nils Erik Flick Correctness of Graph Programs 4 / 23
Intro Correctness Results
Conclusion Extras Framework Graph Programs µ-conditions
Nils Erik Flick Correctness of Graph Programs 5 / 23
Intro Correctness Results
Conclusion Extras Framework Graph Programs µ-conditions
Nils Erik Flick Correctness of Graph Programs 6 / 23
Intro Correctness Results
Conclusion Extras Framework Graph Programs µ-conditions
Correctness of Graph Programs 7 / 23
Intro Correctness Results
Conclusion Extras Wp Construction Proof Calculus Expressiveness
Nils Erik Flick Correctness of Graph Programs 8 / 23
Intro Correctness Results
Conclusion Extras Wp Construction Proof Calculus Expressiveness
∃(a, c) ∧ d ∃(a, c ∧ ∃−1(a, d))
✭❙✉♣♣♦rt✐♥❣✮▲✐❢t
¬∃(a) ∃(b, d) ¬∃(m∗) ■❢ ∃m ∈ M✱ m ◦ b = a ❛♥❞ (m∗, b∗) ✐s M✲♣✉s❤♦✉t ❝♦♠✲ ♣❧❡♠❡♥t ♦❢ (b, m)✱ d ≡ ⊥
P❛rt✐❛❧❘❡s♦❧✈❡
K ❬P❡♥♥❡♠❛♥♥✱ ✷✵✵✾❪ ✭❛❞❛♣t❡❞✮❀ str✉❝t✉r❛❧ ✫ ❧♦❣✐❝❛❧ r✉❧❡s Γ ⊢ ∆ D, Γ ⊢ ∆
❚❤✐♥♥✐♥❣
D, D, Γ ⊢ ∆ D, Γ ⊢ ∆
❈♦♥tr❛❝t✐♦♥
∆, D, E, Γ ⊢ Θ ∆, E, D, Γ ⊢ Θ
■♥t❡r❝❤❛♥❣❡ ✭❛❧❧ s✐♠✐❧❛r❧② ♦♥ s✉❝❝❡❞❡♥t✮
Γ ⊢ Θ, D D, ∆, ⊢ Λ Γ, ∆ ⊢ Θ, Λ
❈✉t
Γ ⊢ Θ, A Γ ⊢ Θ, B Γ ⊢ Θ, A ∧ B
❯❊❙
A, Γ ⊢ Θ A ∧ B, Γ ⊢ Θ
❯❊❆
A, Γ ⊢ Θ B, Γ ⊢ Θ A ∨ B, Γ ⊢ Θ
❖❊❆
Γ ⊢ Θ, A Γ ⊢ Θ, A ∨ B
❖❊❙
Nils Erik Flick Correctness of Graph Programs 9 / 23
Intro Correctness Results
Conclusion Extras Wp Construction Proof Calculus Expressiveness
F : c ⊢ c′ (resp. c′ ⊢ c) F ⊎F ′ : Ctx[x/c] ⊢ Ctx[x/c′] if Ctx is monotonic (antitonic) in x (CTX) F : Γ ⊢ ∆,x(n)
i
F : Γ ⊢ ∆,Fi( x(n−1)) Fi( x) is the right hand side for xi in F (UNROLL1) ∀i ∈ I.Hi( x(
n)) ⊢
G ( H ( x(
n′)))
⊥) = ⊥
x) = ⊥
n; G monotonic. (EMPTY)
∃(a◦a′,c) ∃(a,∃(a′,c)), ∃(a,ι◦ι′,c) ∃(a,ι′,∃−1(ι,c)) and vice versa, ∃(id,id,c) c
A(ι,c) , ∃(a,c) ra(c) .
Nils Erik Flick Correctness of Graph Programs 10 / 23
Intro Correctness Results
Conclusion Extras Wp Construction Proof Calculus Expressiveness
Nils Erik Flick Correctness of Graph Programs 11 / 23
Intro Correctness Results
Conclusion Extras Wp Construction Proof Calculus Expressiveness
Nils Erik Flick Correctness of Graph Programs 12 / 23
Intro Correctness Results
Conclusion Extras
Nils Erik Flick Correctness of Graph Programs 13 / 23
Intro Correctness Results
Conclusion Extras
Nils Erik Flick Correctness of Graph Programs 14 / 23
Intro Correctness Results
Conclusion Extras
Nils Erik Flick Correctness of Graph Programs 15 / 23
Intro Correctness Results
Conclusion Extras
Apt, K. R. and Olderog, E.-R. (1997). Verification of sequential and concurrent programs. Springer. Baldan, P ., König, B., and König, B. (2003). A logic for analyzing abstractions of graph transformation systems. In Static Analysis, pages 255–272. Dijkstra, E. W. (1976). A discipline of programming. Prentice Hall. Gadducci, F., Heckel, R., and Koch, M. (1998). A fully abstract model for graph-interpreted temporal logic. In TAGT’98, volume 1764 of Lecture Notes in Computer Science, pages 310–322. Habel, A. and Pennemann, K.-H. (2009). Correctness of high-level transformation systems relative to nested conditions.
Habel, A., Pennemann, K.-H., and Rensink, A. (2006). Weakest preconditions for high-level programs. In Proceedings of the Intl. Conf. on Graph Transformation, volume 4178 of Lecture Notes in Computer Science, pages 445–460. Nils Erik Flick Correctness of Graph Programs 16 / 23
Intro Correctness Results
Conclusion Extras
König, B. and Kozioura, V. (2006). Counterexample-guided abstraction refinement for the analysis of graph transformation systems. volume 3920 of Lecture Notes in Computer Science, pages 197–211. Pennemann, K.-H. (2009). Development of Correct Graph Transformation Systems. PhD thesis, Universität Oldenburg. Poskitt, C. M. and Plump, D. (2013). Verifying total correctness of graph programs. Electronic Communications of the EASST, 61. Poskitt, C. M. and Plump, D. (2014). Verifying monadic second-order properties of graph programs. In Proceedings of the Intl. Conf. on Graph Transformation, volume 8571 of Lecture Notes in Computer Science, pages 33–48. Radke, H. (2016). A Theory of HR∗ Graph Conditions and their Application to Meta-Modeling. PhD thesis, Universität Oldenburg. Rensink, A. and Distefano, D. (2006). Abstract graph transformation. Electronic Notes in Theoretical Computer Science, 157:39–59. Nils Erik Flick Correctness of Graph Programs 17 / 23
Intro Correctness Results
Conclusion Extras Small Proof Example Adversity
F : ①n
1 ∧ ¬①m 2 ⊢ F1(
①(n−1)) ∧ ¬F2( ①(n−1)) H1,2( ①) = ①1 ∧ ¬①2
✭✶✮
F : ①(n)
1
∧ ¬①(n)
2
⊢
✷
✷ ✸
, ①(n−1)
1
✷
✷ ✸
, ①(n−1)
2
F′ : ... ⊢ ∃
✷ ✸
, ①(n−1)
1
✷ ✸
, ①(n−1)
2
F′ : ①(n)
1
∧ ¬①(n)
2
⊢ ∃
✷ ✸
, ①(n−1)
1
2
✷ ✸
, ⊥
∃
✷ ✸
, ⊥
✷ ✸
, ⊥
F : ①1 ∧ ¬①2 ⊢ ⊥
Nils Erik Flick Correctness of Graph Programs 18 / 23
Intro Correctness Results
Conclusion Extras Small Proof Example Adversity
Nils Erik Flick Correctness of Graph Programs 19 / 23
Intro Correctness Results
Conclusion Extras Small Proof Example Adversity
Nils Erik Flick Correctness of Graph Programs 20 / 23
Intro Correctness Results
Conclusion Extras Small Proof Example Adversity
Nils Erik Flick Correctness of Graph Programs 21 / 23
Intro Correctness Results
Conclusion Extras Small Proof Example Adversity
Nils Erik Flick Correctness of Graph Programs 22 / 23
Intro Correctness Results
Conclusion Extras Small Proof Example Adversity
Nils Erik Flick Correctness of Graph Programs 23 / 23