Initial Problem

Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5, l6
Transitions:
t₀: l0(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃)
t₂: l1(X₀, X₁, X₂, X₃) → l3(X₀, X₁, X₂, X₃) :|: 0 ≤ X₀ ∧ X₀ ≤ X₁
t₃: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: X₀ < 0
t₄: l1(X₀, X₁, X₂, X₃) → l4(X₀, X₁, X₂, X₃) :|: X₁ < X₀
t₁: l2(X₀, X₁, X₂, X₃) → l1(X₂, 20, X₂, X₃)
t₅: l3(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃) :|: 0 ≤ X₀ ∧ X₀ ≤ 0 ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₆: l3(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃) :|: 0 < X₀
t₇: l3(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃) :|: X₀ < 0
t₈: l3(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃) :|: X₀ < X₁
t₉: l3(X₀, X₁, X₂, X₃) → l5(X₀, X₁, X₂, X₃) :|: X₁ < X₀
t₁₉: l4(X₀, X₁, X₂, X₃) → l6(X₀, X₁, X₂, X₃)
t₁₀: l5(X₀, X₁, X₂, X₃) → l1(0, X₁-1, X₂, X₃) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₁₁: l5(X₀, X₁, X₂, X₃) → l1(X₀+1, X₁-1, X₂, X₃) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₀ < X₁
t₁₂: l5(X₀, X₁, X₂, X₃) → l1(X₀+1, X₁-1, X₂, X₃) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₁ < X₀
t₁₃: l5(X₀, X₁, X₂, X₃) → l1(0, X₁, X₂, X₃) :|: X₀ < X₁ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₁₄: l5(X₀, X₁, X₂, X₃) → l1(0, X₁, X₂, X₃) :|: X₁ < X₀ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀
t₁₅: l5(X₀, X₁, X₂, X₃) → l1(X₀+1, X₁, X₂, X₃) :|: X₀ < X₁ ∧ X₀ < X₁
t₁₆: l5(X₀, X₁, X₂, X₃) → l1(X₀+1, X₁, X₂, X₃) :|: X₀ < X₁ ∧ X₁ < X₀
t₁₇: l5(X₀, X₁, X₂, X₃) → l1(X₀+1, X₁, X₂, X₃) :|: X₁ < X₀ ∧ X₀ < X₁
t₁₈: l5(X₀, X₁, X₂, X₃) → l1(X₀+1, X₁, X₂, X₃) :|: X₁ < X₀ ∧ X₁ < X₀

Preprocessing

Cut unsatisfiable transition t₇: l3→l5

Cut unsatisfiable transition t₉: l3→l5

Cut unsatisfiable transition t₁₁: l5→l1

Cut unsatisfiable transition t₁₂: l5→l1

Cut unsatisfiable transition t₁₃: l5→l1

Cut unsatisfiable transition t₁₄: l5→l1

Cut unsatisfiable transition t₁₆: l5→l1

Cut unsatisfiable transition t₁₇: l5→l1

Eliminate variables {X₃} that do not contribute to the problem

Found invariant X₁ ≤ 20 ∧ 0 ≤ X₁ for location l6

Found invariant X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ for location l5

Found invariant X₁ ≤ 20 ∧ 0 ≤ X₁ for location l1

Found invariant X₁ ≤ 20 ∧ 0 ≤ X₁ for location l4

Found invariant X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ for location l3

Cut unsatisfiable transition t₇₅: l5→l1

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁, X₂
Temp_Vars:
Locations: l0, l1, l2, l3, l4, l5, l6
Transitions:
t₆₄: l0(X₀, X₁, X₂) → l2(X₀, X₁, X₂)
t₆₅: l1(X₀, X₁, X₂) → l3(X₀, X₁, X₂) :|: 0 ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₁ ≤ 20 ∧ 0 ≤ X₁
t₆₆: l1(X₀, X₁, X₂) → l4(X₀, X₁, X₂) :|: X₀ < 0 ∧ X₁ ≤ 20 ∧ 0 ≤ X₁
t₆₇: l1(X₀, X₁, X₂) → l4(X₀, X₁, X₂) :|: X₁ < X₀ ∧ X₁ ≤ 20 ∧ 0 ≤ X₁
t₆₈: l2(X₀, X₁, X₂) → l1(X₂, 20, X₂)
t₆₉: l3(X₀, X₁, X₂) → l1(X₀, X₁, X₂) :|: 0 ≤ X₀ ∧ X₀ ≤ 0 ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀
t₇₀: l3(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: 0 < X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀
t₇₁: l3(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀
t₇₂: l4(X₀, X₁, X₂) → l6(X₀, X₁, X₂) :|: X₁ ≤ 20 ∧ 0 ≤ X₁
t₇₃: l5(X₀, X₁, X₂) → l1(0, X₁-1, X₂) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀
t₇₄: l5(X₀, X₁, X₂) → l1(X₀+1, X₁, X₂) :|: X₀ < X₁ ∧ X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀

MPRF for transition t₇₀: l3(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: 0 < X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ of depth 1:

new bound:

20⋅X₂+8801 {O(n)}

MPRF:

l3 [420⋅X₁+401-20⋅X₀ ]
l5 [420⋅X₁+401-21⋅X₀ ]
l1 [420⋅X₁+401-20⋅X₀ ]

MPRF for transition t₇₁: l3(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ of depth 1:

new bound:

X₂+421 {O(n)}

MPRF:

l3 [21⋅X₁+1-X₀ ]
l5 [21⋅X₁-X₀ ]
l1 [21⋅X₁+1-X₀ ]

MPRF for transition t₇₃: l5(X₀, X₁, X₂) → l1(0, X₁-1, X₂) :|: X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₁ ≤ X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ of depth 1:

new bound:

19⋅X₂+8000 {O(n)}

MPRF:

l3 [400⋅X₁-19⋅X₀ ]
l5 [399⋅X₁+1-19⋅X₀ ]
l1 [400⋅X₁-19⋅X₀ ]

MPRF for transition t₇₄: l5(X₀, X₁, X₂) → l1(X₀+1, X₁, X₂) :|: X₀ < X₁ ∧ X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ of depth 1:

new bound:

X₂+420 {O(n)}

MPRF:

l3 [20⋅X₁+20-X₀ ]
l5 [20⋅X₁+20-X₀ ]
l1 [20⋅X₁+20-X₀ ]

Analysing control-flow refined program

Cut unsatisfiable transition t₁₆₃: n_l3___2→l5

Cut unsatisfiable transition t₁₆₇: n_l3___2→l5

Cut unsatisfiable transition t₁₆₄: n_l3___4→l5

Found invariant X₁ ≤ 19 ∧ X₁ ≤ 19+X₀ ∧ X₀+X₁ ≤ 19 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ for location n_l3___4

Found invariant X₁ ≤ 20 ∧ 0 ≤ X₁ for location l6

Found invariant X₂ ≤ 20 ∧ X₂ ≤ X₁ ∧ X₁+X₂ ≤ 40 ∧ X₂ ≤ X₀ ∧ X₀+X₂ ≤ 40 ∧ 0 ≤ X₂ ∧ 20 ≤ X₁+X₂ ∧ X₁ ≤ 20+X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 20 ≤ X₁ ∧ 20 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ for location n_l3___5

Found invariant X₁ ≤ 0 ∧ X₁ ≤ X₀ ∧ X₀+X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ for location n_l1___3

Found invariant X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ for location l5

Found invariant X₁ ≤ 0 ∧ X₁ ≤ X₀ ∧ X₀+X₁ ≤ 0 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ for location n_l3___2

Found invariant X₁ ≤ 20 ∧ 0 ≤ X₁ for location l1

Found invariant X₁ ≤ 20 ∧ 0 ≤ X₁ for location l4

Found invariant X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ for location n_l3___1

knowledge_propagation leads to new time bound 20⋅X₂+8421 {O(n)} for transition t₁₅₀: l1(X₀, X₁, X₂) → n_l3___1(X₀, X₁, X₂) :|: X₁ ≤ 20 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ X₁ ≤ 20 ∧ X₀ ≤ X₁ ∧ X₁ ≤ 20 ∧ 0 ≤ X₁

knowledge_propagation leads to new time bound 19⋅X₂+8000 {O(n)} for transition t₁₅₁: l1(X₀, X₁, X₂) → n_l3___4(X₀, X₁, X₂) :|: X₁ ≤ 20 ∧ 0 ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 19 ∧ 0 ≤ X₀ ∧ X₀ ≤ X₁ ∧ X₁ ≤ 20 ∧ 0 ≤ X₀ ∧ X₁ ≤ 20 ∧ X₀ ≤ X₁ ∧ X₁ ≤ 20 ∧ 0 ≤ X₁

knowledge_propagation leads to new time bound X₂+421 {O(n)} for transition t₁₅₂: l1(X₀, X₁, X₂) → n_l3___5(X₀, X₁, X₂) :|: X₁ ≤ 20 ∧ 0 ≤ X₁ ∧ X₁ ≤ 20 ∧ 20 ≤ X₁ ∧ X₀ ≤ X₂ ∧ X₂ ≤ X₀ ∧ 0 ≤ X₀ ∧ X₁ ≤ 20 ∧ X₀ ≤ X₁ ∧ X₁ ≤ 20 ∧ 0 ≤ X₁

knowledge_propagation leads to new time bound 20⋅X₂+8421 {O(n)} for transition t₁₆₂: n_l3___1(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: 0 < X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀

knowledge_propagation leads to new time bound 20⋅X₂+8421 {O(n)} for transition t₁₆₆: n_l3___1(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀

knowledge_propagation leads to new time bound 19⋅X₂+8000 {O(n)} for transition t₁₆₈: n_l3___4(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ ∧ X₁ ≤ 19 ∧ X₁ ≤ 19+X₀ ∧ X₀+X₁ ≤ 19 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀

knowledge_propagation leads to new time bound X₂+421 {O(n)} for transition t₁₆₅: n_l3___5(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: 0 < X₀ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ ∧ X₂ ≤ 20 ∧ X₂ ≤ X₁ ∧ X₁+X₂ ≤ 40 ∧ X₂ ≤ X₀ ∧ X₀+X₂ ≤ 40 ∧ 0 ≤ X₂ ∧ 20 ≤ X₁+X₂ ∧ X₁ ≤ 20+X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 20 ≤ X₁ ∧ 20 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀

knowledge_propagation leads to new time bound X₂+421 {O(n)} for transition t₁₆₉: n_l3___5(X₀, X₁, X₂) → l5(X₀, X₁, X₂) :|: X₀ < X₁ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀ ∧ X₂ ≤ 20 ∧ X₂ ≤ X₁ ∧ X₁+X₂ ≤ 40 ∧ X₂ ≤ X₀ ∧ X₀+X₂ ≤ 40 ∧ 0 ≤ X₂ ∧ 20 ≤ X₁+X₂ ∧ X₁ ≤ 20+X₂ ∧ 0 ≤ X₀+X₂ ∧ X₀ ≤ X₂ ∧ X₁ ≤ 20 ∧ X₁ ≤ 20+X₀ ∧ X₀+X₁ ≤ 40 ∧ 20 ≤ X₁ ∧ 20 ≤ X₀+X₁ ∧ X₀ ≤ X₁ ∧ X₀ ≤ 20 ∧ 0 ≤ X₀

CFR did not improve the program. Rolling back

All Bounds

Timebounds

Overall timebound:inf {Infinity}
t₆₄: 1 {O(1)}
t₆₅: inf {Infinity}
t₆₆: 1 {O(1)}
t₆₇: 1 {O(1)}
t₆₈: 1 {O(1)}
t₆₉: inf {Infinity}
t₇₀: 20⋅X₂+8801 {O(n)}
t₇₁: X₂+421 {O(n)}
t₇₂: 1 {O(1)}
t₇₃: 19⋅X₂+8000 {O(n)}
t₇₄: X₂+420 {O(n)}

Costbounds

Overall costbound: inf {Infinity}
t₆₄: 1 {O(1)}
t₆₅: inf {Infinity}
t₆₆: 1 {O(1)}
t₆₇: 1 {O(1)}
t₆₈: 1 {O(1)}
t₆₉: inf {Infinity}
t₇₀: 20⋅X₂+8801 {O(n)}
t₇₁: X₂+421 {O(n)}
t₇₂: 1 {O(1)}
t₇₃: 19⋅X₂+8000 {O(n)}
t₇₄: X₂+420 {O(n)}

Sizebounds

t₆₄, X₀: X₀ {O(n)}
t₆₄, X₁: X₁ {O(n)}
t₆₄, X₂: X₂ {O(n)}
t₆₅, X₀: 20 {O(1)}
t₆₅, X₁: 20 {O(1)}
t₆₅, X₂: X₂ {O(n)}
t₆₆, X₀: X₂ {O(n)}
t₆₆, X₁: 20 {O(1)}
t₆₆, X₂: X₂ {O(n)}
t₆₇, X₀: X₂ {O(n)}
t₆₇, X₁: 20 {O(1)}
t₆₇, X₂: X₂ {O(n)}
t₆₈, X₀: X₂ {O(n)}
t₆₈, X₁: 20 {O(1)}
t₆₈, X₂: X₂ {O(n)}
t₆₉, X₀: 0 {O(1)}
t₆₉, X₁: 0 {O(1)}
t₆₉, X₂: X₂ {O(n)}
t₇₀, X₀: 20 {O(1)}
t₇₀, X₁: 20 {O(1)}
t₇₀, X₂: X₂ {O(n)}
t₇₁, X₀: 19 {O(1)}
t₇₁, X₁: 20 {O(1)}
t₇₁, X₂: X₂ {O(n)}
t₇₂, X₀: 2⋅X₂ {O(n)}
t₇₂, X₁: 20 {O(1)}
t₇₂, X₂: 2⋅X₂ {O(n)}
t₇₃, X₀: 0 {O(1)}
t₇₃, X₁: 19 {O(1)}
t₇₃, X₂: X₂ {O(n)}
t₇₄, X₀: 20 {O(1)}
t₇₄, X₁: 20 {O(1)}
t₇₄, X₂: X₂ {O(n)}