Initial Problem

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

Preprocessing

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

Found invariant X₁ ≤ 51 ∧ X₁ ≤ 2+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 49 ≤ X₀ for location l6

Found invariant X₁ ≤ 50 ∧ X₁ ≤ X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 50 ≤ X₀ for location l7

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 0 ≤ X₀ for location l5

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location l1

Found invariant X₁ ≤ 50 ∧ X₁ ≤ X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 50 ≤ X₀ for location l4

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 50 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 0 ≤ X₀ for location l3

Cut unsatisfiable transition t₁₉: l1→l4

Cut unreachable locations [l4; l7] from the program graph

Problem after Preprocessing

Start: l0
Program_Vars: X₀, X₁
Temp_Vars:
Locations: l0, l1, l2, l3, l5, l6
Transitions:
t₁₇: l0(X₀, X₁) → l2(X₀, X₁)
t₁₈: l1(X₀, X₁) → l3(X₀, X₁) :|: X₀ < X₁ ∧ X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 0 ≤ X₀
t₂₀: l2(X₀, X₁) → l1(0, 100)
t₂₁: l3(X₀, X₁) → l5(X₀, X₁) :|: 51 < X₁ ∧ X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 50 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 0 ≤ X₀
t₂₂: l3(X₀, X₁) → l6(X₀, X₁) :|: X₁ ≤ 51 ∧ X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 50 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 0 ≤ X₀
t₂₄: l5(X₀, X₁) → l1(X₀+1, X₁-1) :|: X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 0 ≤ X₀
t₂₅: l6(X₀, X₁) → l1(X₀-1, X₁+1) :|: X₁ ≤ 51 ∧ X₁ ≤ 2+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 49 ≤ X₀

Chain transitions t₂₅: l6→l1 and t₁₈: l1→l3 to t₈₁: l6→l3

Chain transitions t₂₄: l5→l1 and t₁₈: l1→l3 to t₈₂: l5→l3

Chain transitions t₂₀: l2→l1 and t₁₈: l1→l3 to t₈₃: l2→l3

Chain transitions t₈₁: l6→l3 and t₂₂: l3→l6 to t₈₄: l6→l6

Chain transitions t₈₂: l5→l3 and t₂₂: l3→l6 to t₈₅: l5→l6

Chain transitions t₈₂: l5→l3 and t₂₁: l3→l5 to t₈₆: l5→l5

Chain transitions t₈₁: l6→l3 and t₂₁: l3→l5 to t₈₇: l6→l5

Chain transitions t₈₃: l2→l3 and t₂₁: l3→l5 to t₈₈: l2→l5

Chain transitions t₈₃: l2→l3 and t₂₂: l3→l6 to t₈₉: l2→l6

Analysing control-flow refined program

Cut unsatisfiable transition t₈₄: l6→l6

Cut unsatisfiable transition t₈₉: l2→l6

Found invariant X₁ ≤ 51 ∧ X₁ ≤ 2+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 49 ≤ X₀ for location l6

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 0 ≤ X₀ for location l5

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 0 ≤ X₀ for location l1

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 0 ≤ X₀ for location l3

MPRF for transition t₈₆: l5(X₀, X₁) -{3}> l5(1+X₀, X₁-1) :|: 2+X₀ < X₁ ∧ 52 < X₁ ∧ X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 0 ≤ X₀ ∧ X₁ ≤ 101 ∧ X₁ ≤ 102+X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 0 ≤ 1+X₀ ∧ X₁ ≤ 101 ∧ X₁ ≤ 102+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 3+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 0 ≤ 1+X₀ ∧ X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 0 ≤ X₀ of depth 1:

new bound:

49 {O(1)}

TWN: t₈₅: l5→l6

cycle: [t₈₅: l5→l6; t₈₇: l6→l5]
loop: (2+X₀ < X₁ ∧ X₁ ≤ 52 ∧ X₀ < X₁ ∧ 51 < X₁,(X₀,X₁) -> (X₀,X₁)
order: [X₀; X₁]
closed-form:
X₀: X₀
X₁: X₁

Termination: true
Formula:

51 < X₁ ∧ X₀ < X₁ ∧ X₁ < 52 ∧ 2+X₀ < X₁
∨ 51 < X₁ ∧ X₀ < X₁ ∧ X₁ ≤ 52 ∧ 52 ≤ X₁ ∧ 2+X₀ < X₁

TWN - Lifting for t₈₅: l5→l6 of 6 {O(1)}

relevant size-bounds w.r.t. t₈₆:
Runtime-bound of t₈₆: 49 {O(1)}
Results in: 294 {O(1)}

TWN: t₈₇: l6→l5

TWN - Lifting for t₈₇: l6→l5 of 6 {O(1)}

relevant size-bounds w.r.t. t₈₆:
Runtime-bound of t₈₆: 49 {O(1)}
Results in: 294 {O(1)}

Analysing control-flow refined program

Found invariant X₁ ≤ 99 ∧ X₁ ≤ 98+X₀ ∧ X₀+X₁ ≤ 100 ∧ 99 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 98+X₀ ≤ X₁ ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ for location n_l1___12

Found invariant X₁ ≤ 51 ∧ X₁ ≤ 2+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 49 ≤ X₀ for location n_l6___6

Found invariant X₁ ≤ 52 ∧ X₁ ≤ 4+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 48 ≤ X₀ for location n_l3___4

Found invariant X₁ ≤ 98 ∧ X₁ ≤ 96+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 2 ≤ X₀ for location n_l1___9

Found invariant X₁ ≤ 51 ∧ X₁ ≤ 2+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 49 ≤ X₀ for location n_l1___2

Found invariant X₁ ≤ 99 ∧ X₁ ≤ 98+X₀ ∧ X₀+X₁ ≤ 100 ∧ 99 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 98+X₀ ≤ X₁ ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ for location n_l5___10

Found invariant X₁ ≤ 99 ∧ X₁ ≤ 98+X₀ ∧ X₀+X₁ ≤ 100 ∧ 99 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 98+X₀ ≤ X₁ ∧ X₀ ≤ 1 ∧ 1 ≤ X₀ for location n_l3___11

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 100+X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ for location n_l3___14

Found invariant X₁ ≤ 98 ∧ X₁ ≤ 96+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 2 ≤ X₀ for location n_l3___8

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 100+X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ for location n_l5___13

Found invariant X₁ ≤ 52 ∧ X₁ ≤ 4+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 48 ≤ X₀ for location n_l1___5

Found invariant X₁ ≤ 98 ∧ X₁ ≤ 96+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 2 ≤ X₀ for location n_l5___7

Found invariant X₁ ≤ 100 ∧ X₁ ≤ 100+X₀ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 100+X₀ ≤ X₁ ∧ X₀ ≤ 0 ∧ 0 ≤ X₀ for location l1

Found invariant X₁ ≤ 51 ∧ X₁ ≤ 2+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 49 ≤ X₀ for location n_l3___1

Found invariant X₁ ≤ 52 ∧ X₁ ≤ 4+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 48 ≤ X₀ for location n_l5___3

MPRF for transition t₁₇₃: n_l1___9(X₀, X₁) → n_l3___8(X₀, 100-X₀) :|: X₀+X₁ ≤ 100 ∧ 100 < 2⋅X₁ ∧ 101 ≤ 2⋅X₁ ∧ X₁ ≤ 99 ∧ 51 ≤ X₁ ∧ 2⋅X₀ < 100 ∧ X₀+X₁ ≤ 100 ∧ X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ X₁ ≤ 100 ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 0 ≤ X₀ ∧ 100 ≤ X₀+X₁ ∧ X₁ ≤ 98 ∧ X₁ ≤ 96+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 2 ≤ X₀ of depth 1:

new bound:

104 {O(1)}

MPRF for transition t₁₇₈: n_l3___8(X₀, X₁) → n_l5___7(X₀, 100-X₀) :|: 51 ≤ X₁ ∧ X₁ ≤ 99 ∧ X₀+X₁ ≤ 100 ∧ X₀ < 49 ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 0 ≤ X₀ ∧ 100 ≤ X₀+X₁ ∧ X₁ ≤ 98 ∧ X₁ ≤ 96+X₀ ∧ X₀+X₁ ≤ 100 ∧ 51 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 2+X₀ ≤ X₁ ∧ X₀ ≤ 49 ∧ 2 ≤ X₀ of depth 1:

new bound:

52 {O(1)}

MPRF for transition t₁₈₃: n_l5___7(X₀, X₁) → n_l1___9(X₀+1, 99-X₀) :|: 51 < X₁ ∧ X₁ ≤ 99 ∧ X₀+X₁ ≤ 100 ∧ X₀+X₁ ≤ 100 ∧ 100 ≤ X₀+X₁ ∧ 0 ≤ X₀ ∧ X₀ ≤ 48 ∧ 100 ≤ X₀+X₁ ∧ X₁ ≤ 98 ∧ X₁ ≤ 96+X₀ ∧ X₀+X₁ ≤ 100 ∧ 52 ≤ X₁ ∧ 100 ≤ X₀+X₁ ∧ 4+X₀ ≤ X₁ ∧ X₀ ≤ 48 ∧ 2 ≤ X₀ of depth 1:

new bound:

149 {O(1)}

CFR did not improve the program. Rolling back

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₂₁: inf {Infinity}
t₂₂: inf {Infinity}
t₂₄: inf {Infinity}
t₂₅: inf {Infinity}

Costbounds

Overall costbound: inf {Infinity}
t₁₇: 1 {O(1)}
t₁₈: inf {Infinity}
t₂₀: 1 {O(1)}
t₂₁: inf {Infinity}
t₂₂: inf {Infinity}
t₂₄: inf {Infinity}
t₂₅: inf {Infinity}

Sizebounds

t₁₇, X₀: X₀ {O(n)}
t₁₇, X₁: X₁ {O(n)}
t₁₈, X₀: 49 {O(1)}
t₁₈, X₁: 100 {O(1)}
t₂₀, X₀: 0 {O(1)}
t₂₀, X₁: 100 {O(1)}
t₂₁, X₀: 48 {O(1)}
t₂₁, X₁: 100 {O(1)}
t₂₂, X₀: 49 {O(1)}
t₂₂, X₁: 51 {O(1)}
t₂₄, X₀: 49 {O(1)}
t₂₄, X₁: 99 {O(1)}
t₂₅, X₀: 48 {O(1)}
t₂₅, X₁: 52 {O(1)}