PresentationPDF Available

Ultimate GemCutter

Authors:
Ultimate GemCutter
Dominik Klumpp1Daniel Dietsch1Matthias Heizmann2
Frank Schüssele1Azadeh Farzan3Andreas Podelski1
1University of Freiburg, Germany
2University of Stuttgart, Germany
3University of Toronto, Canada
SV-COMP 2024
Ultimate GemCutter 1
Example Program
{x=y=i=j=0}
w h i l e (i<n) {
x+= A[i];
i++;
}
w h i l e (j<n) {
y+= A[j];
j++;
}
{x=y}
Ultimate GemCutter 2
Key Idea
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 3
Key Idea
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 3
Key Idea
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 3
Generalization
{x=y=i=j=0}
cl(
i<n x+=A[i] j<n y+=A[j] i++ j++
)*
i>=n j>=n
{x=y}
generalization
across loop iterations
using interpolation
generalization
across interleavings
using commutativity
Ultimate GemCutter 4
Generalization
{x=y=i=j=0}
cl(
i<n x+=A[i] j<n y+=A[j] i++ j++
)*
i>=n j>=n
{x=y}
generalization
across loop iterations
using interpolation
generalization
across interleavings
using commutativity
Ultimate GemCutter 4
Generalization
{x=y=i=j=0}
cl
(i<n x+=A[i] j<n y+=A[j] i++ j++ )* i>=n j>=n
{x=y}
generalization
across loop iterations
using interpolation
generalization
across interleavings
using commutativity
Ultimate GemCutter 4
Generalization
{x=y=i=j=0}
cl
(i<n x+=A[i] j<n y+=A[j] i++ j++ )* i>=n j>=n
{x=y}
generalization
across loop iterations
using interpolation
generalization
across interleavings
using commutativity
Ultimate GemCutter 4
Generalization
{x=y=i=j=0}
cl
(i<n x+=A[i] j<n y+=A[j] i++ j++ )* i>=n j>=n
{x=y}
generalization
across loop iterations
using interpolation
generalization
across interleavings
using commutativity
Ultimate GemCutter 4
Generalization
{x=y=i=j=0}
cl(i<n x+=A[i] j<n y+=A[j] i++ j++ )* i>=n j>=n
{x=y}
generalization
across loop iterations
using interpolation
generalization
across interleavings
using commutativity
Ultimate GemCutter 4
Generalization
interleavings
iterations
cl(L)
L=(a1a2)b
equivalence class [τ]
τ=a1a2b a1ba2ba1a2
(a1a2)2b
(a1a2)3b
Ultimate GemCutter 5
Generalization
interleavings
iterations
cl(L)
L=(a1a2)b
equivalence class [τ]
τ=a1a2b a1ba2ba1a2
(a1a2)2b
(a1a2)3b
Ultimate GemCutter 5
Generalization
interleavings
iterations
cl(L)
L=(a1a2)b
equivalence class [τ]
τ=a1a2b a1ba2ba1a2
(a1a2)2b
(a1a2)3b
Ultimate GemCutter 5
Generalization
interleavings
iterations
cl(L)
L=(a1a2)b
equivalence class [τ]
τ=a1a2b a1ba2ba1a2
(a1a2)2b
(a1a2)3b
Ultimate GemCutter 5
Key Idea
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 6
Key Idea
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 6
Benefits
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 6
Benefits
Counterexample:
τ=i<n x+=A[i] j<n y+=A[j] i++ j++ i>=n j>=n
Invariant: x=
i
P
k=0
A[k]y=
j
P
k=0
A[k]injn
Simple Invariant: x=yi=j
Small Automaton
Ultimate GemCutter 6
Ongoing & Future Work
find more commutativity
select the right representatives
programs with unbounded threads
Find out more:
ultimate-pa.org
GemCutter poster at ETAPS
talk to me
Ultimate GemCutter 7
Ongoing & Future Work
find more commutativity
select the right representatives
programs with unbounded threads
Find out more:
ultimate-pa.org
GemCutter poster at ETAPS
talk to me
Ultimate GemCutter 7
ResearchGate has not been able to resolve any citations for this publication.
ResearchGate has not been able to resolve any references for this publication.