Proving Equivalence of Imperative Programs via Constrained Rewriting Induction
Carsten Fuhs
Birkbeck, University of London joint work with Cynthia Kop (U Copenhagen) and Naoki Nishida (U Nagoya)
Proving Equivalence of Imperative Programs via Constrained - - PowerPoint PPT Presentation
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs Birkbeck, University of London joint work with Cynthia Kop (U Copenhagen) and Naoki Nishida (U Nagoya) Workshop on Program Equivalence, London, UK 11
Birkbeck, University of London joint work with Cynthia Kop (U Copenhagen) and Naoki Nishida (U Nagoya)
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 2 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 3 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Marking Student Programs
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 4 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Marking Student Programs
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 4 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Example Assignment
k=1k.
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 5 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Example Homework Solutions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 6 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Example Homework Solutions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 7 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Example Homework Solutions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 8 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Example Homework Solutions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 9 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 10 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 10 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 10 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 10 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Solving the Problem
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 11 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 12 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 13 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 13 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 13 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 13 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 14 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 14 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 14 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 14 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 14 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 15 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 15 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 15 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 15 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 15 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 16 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 17 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 18 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Examples
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 19 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Summary
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 20 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Summary
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 20 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Summary
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 20 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Summary
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 20 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 21 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Simple Integer Functions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 22 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Simple Integer Functions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 22 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Simple Integer Functions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 22 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Simple Integer Functions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 22 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Error Checking
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 23 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Error Checking
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 23 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Error Checking
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 23 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Error Checking
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 23 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Error Checking
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 24 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Error Checking
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 24 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Further Extensions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 25 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 26 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 27 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 27 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 27 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 28 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 28 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
R tiγi.
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 28 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
R tiγi.
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 28 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
R tiγi.
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 28 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Goal
R tiγi.
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 28 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Approach
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 29 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Approach
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 29 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Approach
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 29 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Approach
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 29 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Approach
E ⊆ ↔∗ R∪H ⊆ ↔∗ R on ground terms:
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 29 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 30 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 31 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 32 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 32 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 32 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 33 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 34 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 35 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 35 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 35 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
i=1(si = ti)]}, H)
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 36 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 37 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 37 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 37 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 37 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 38 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 39 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 39 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Induction Rules
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 39 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 40 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 41 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 42 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 42 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Divergence
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 42 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Generalisation Method
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 43 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions
1 Motivation 2 Constrained Term Rewriting 3 Transforming C Programs 4 Rewriting Induction 5 Lemma Generation 6 Conclusions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 44 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions What was already there?
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 45 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 46 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 46 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 46 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 46 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 47 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 48 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 48 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 48 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 48 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 48 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Contributions
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 48 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Bonus Slides
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 49 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Function Calls
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 50 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Function Calls
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 50 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Function Calls
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 50 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Function Calls
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 50 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Function Calls
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 51 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Function Calls
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 51 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 52 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 52 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 53 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 53 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 54 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 54 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 54 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Side Effects
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 54 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48
Motivation Constrained Term Rewriting Transforming C Programs Rewriting Induction Lemma Generation Conclusions Dynamic Pointers
Proving Equivalence of Imperative Programs via Constrained Rewriting Induction Carsten Fuhs 55 / 48