Initial Problem
Start: evaleasy1start
Program_Vars: X₀, X₁
Temp_Vars:
Locations: evaleasy1bb1in, evaleasy1bb2in, evaleasy1bb3in, evaleasy1bbin, evaleasy1entryin, evaleasy1returnin, evaleasy1start, evaleasy1stop
Transitions:
t₇: evaleasy1bb1in(X₀, X₁) → evaleasy1bb3in(1+X₀, X₁)
t₈: evaleasy1bb2in(X₀, X₁) → evaleasy1bb3in(2+X₀, X₁)
t₂: evaleasy1bb3in(X₀, X₁) → evaleasy1bbin(X₀, X₁) :|: X₀ ≤ 39
t₃: evaleasy1bb3in(X₀, X₁) → evaleasy1returnin(X₀, X₁) :|: 40 ≤ X₀
t₄: evaleasy1bbin(X₀, X₁) → evaleasy1bb1in(X₀, X₁) :|: 0 ≤ X₁ ∧ X₁ ≤ 0
t₅: evaleasy1bbin(X₀, X₁) → evaleasy1bb2in(X₀, X₁) :|: 1+X₁ ≤ 0
t₆: evaleasy1bbin(X₀, X₁) → evaleasy1bb2in(X₀, X₁) :|: 1 ≤ X₁
t₁: evaleasy1entryin(X₀, X₁) → evaleasy1bb3in(0, X₁)
t₉: evaleasy1returnin(X₀, X₁) → evaleasy1stop(X₀, X₁)
t₀: evaleasy1start(X₀, X₁) → evaleasy1entryin(X₀, X₁)
Preprocessing
Found invariant 40 ≤ X₀ for location evaleasy1returnin
Found invariant 0 ≤ X₀ for location evaleasy1bb3in
Found invariant 40 ≤ X₀ for location evaleasy1stop
Found invariant X₁ ≤ 0 ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ 0 ≤ X₀+X₁ ∧ 0 ≤ X₀ for location evaleasy1bb1in
Found invariant X₀ ≤ 39 ∧ 0 ≤ X₀ for location evaleasy1bbin
Found invariant X₀ ≤ 39 ∧ 0 ≤ X₀ for location evaleasy1bb2in
Problem after Preprocessing
Start: evaleasy1start
Program_Vars: X₀, X₁
Temp_Vars:
Locations: evaleasy1bb1in, evaleasy1bb2in, evaleasy1bb3in, evaleasy1bbin, evaleasy1entryin, evaleasy1returnin, evaleasy1start, evaleasy1stop
Transitions:
t₇: evaleasy1bb1in(X₀, X₁) → evaleasy1bb3in(1+X₀, X₁) :|: 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
t₈: evaleasy1bb2in(X₀, X₁) → evaleasy1bb3in(2+X₀, X₁) :|: X₀ ≤ 39 ∧ 0 ≤ X₀
t₂: evaleasy1bb3in(X₀, X₁) → evaleasy1bbin(X₀, X₁) :|: X₀ ≤ 39 ∧ 0 ≤ X₀
t₃: evaleasy1bb3in(X₀, X₁) → evaleasy1returnin(X₀, X₁) :|: 40 ≤ X₀ ∧ 0 ≤ X₀
t₄: evaleasy1bbin(X₀, X₁) → evaleasy1bb1in(X₀, X₁) :|: 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀
t₅: evaleasy1bbin(X₀, X₁) → evaleasy1bb2in(X₀, X₁) :|: 1+X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀
t₆: evaleasy1bbin(X₀, X₁) → evaleasy1bb2in(X₀, X₁) :|: 1 ≤ X₁ ∧ X₀ ≤ 39 ∧ 0 ≤ X₀
t₁: evaleasy1entryin(X₀, X₁) → evaleasy1bb3in(0, X₁)
t₉: evaleasy1returnin(X₀, X₁) → evaleasy1stop(X₀, X₁) :|: 40 ≤ X₀
t₀: evaleasy1start(X₀, X₁) → evaleasy1entryin(X₀, X₁)
MPRF for transition t₂: evaleasy1bb3in(X₀, X₁) → evaleasy1bbin(X₀, X₁) :|: X₀ ≤ 39 ∧ 0 ≤ X₀ of depth 1:
new bound:
40 {O(1)}
MPRF:
• evaleasy1bb1in: [39-X₀]
• evaleasy1bb2in: [38-X₀]
• evaleasy1bb3in: [40-X₀]
• evaleasy1bbin: [39-X₀]
MPRF for transition t₄: evaleasy1bbin(X₀, X₁) → evaleasy1bb1in(X₀, X₁) :|: 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ of depth 1:
new bound:
40 {O(1)}
MPRF:
• evaleasy1bb1in: [39-X₀]
• evaleasy1bb2in: [38-X₀]
• evaleasy1bb3in: [40-X₀]
• evaleasy1bbin: [40-X₀]
MPRF for transition t₅: evaleasy1bbin(X₀, X₁) → evaleasy1bb2in(X₀, X₁) :|: 1+X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ of depth 1:
new bound:
40 {O(1)}
MPRF:
• evaleasy1bb1in: [39-X₀]
• evaleasy1bb2in: [38-X₀]
• evaleasy1bb3in: [40-X₀]
• evaleasy1bbin: [40-X₀]
MPRF for transition t₆: evaleasy1bbin(X₀, X₁) → evaleasy1bb2in(X₀, X₁) :|: 1 ≤ X₁ ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ of depth 1:
new bound:
40 {O(1)}
MPRF:
• evaleasy1bb1in: [39-X₀]
• evaleasy1bb2in: [38-X₀]
• evaleasy1bb3in: [40-X₀]
• evaleasy1bbin: [40-X₀]
MPRF for transition t₈: evaleasy1bb2in(X₀, X₁) → evaleasy1bb3in(2+X₀, X₁) :|: X₀ ≤ 39 ∧ 0 ≤ X₀ of depth 1:
new bound:
41 {O(1)}
MPRF:
• evaleasy1bb1in: [40-X₀]
• evaleasy1bb2in: [40-X₀]
• evaleasy1bb3in: [41-X₀]
• evaleasy1bbin: [41-X₀]
TWN: t₇: evaleasy1bb1in→evaleasy1bb3in
cycle: [t₇: evaleasy1bb1in→evaleasy1bb3in; t₂: evaleasy1bb3in→evaleasy1bbin; t₄: evaleasy1bbin→evaleasy1bb1in]
original loop: (X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0,(X₀,X₁) -> (1+X₀,X₁))
transformed loop: (X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0,(X₀,X₁) -> (1+X₀,X₁))
loop: (X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0,(X₀,X₁) -> (1+X₀,X₁))
order: [X₁; X₀]
closed-form:X₁: X₁
X₀: X₀ + [[n != 0]]⋅n^1
Termination: true
Formula:
X₀ ≤ 39 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 39 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
∨ X₀ ≤ 38 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
∨ 1 ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
Stabilization-Threshold for: X₀ ≤ 39
alphas_abs: 40+X₀
M: 0
N: 1
Bound: 2⋅X₀+82 {O(n)}
original loop: (X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0,(X₀,X₁) -> (1+X₀,X₁))
transformed loop: (X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0,(X₀,X₁) -> (1+X₀,X₁))
loop: (X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0 ∧ X₀ ≤ 39 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0,(X₀,X₁) -> (1+X₀,X₁))
order: [X₁; X₀]
closed-form:X₁: X₁
X₀: X₀ + [[n != 0]]⋅n^1
Termination: true
Formula:
X₀ ≤ 39 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 39 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
∨ X₀ ≤ 38 ∧ 0 ≤ 1 ∧ 1 ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
∨ 1 ≤ 0 ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₁ ∧ X₁ ≤ X₀ ∧ 0 ≤ X₁ ∧ X₁ ≤ 0
Stabilization-Threshold for: X₀ ≤ 39
alphas_abs: 40+X₀
M: 0
N: 1
Bound: 2⋅X₀+82 {O(n)}
TWN - Lifting for [2: evaleasy1bb3in->evaleasy1bbin; 4: evaleasy1bbin->evaleasy1bb1in; 7: evaleasy1bb1in->evaleasy1bb3in] of 2⋅X₀+84 {O(n)}
relevant size-bounds w.r.t. t₁: evaleasy1entryin→evaleasy1bb3in:
X₀: 0 {O(1)}
Runtime-bound of t₁: 1 {O(1)}
Results in: 84 {O(1)}
TWN - Lifting for [2: evaleasy1bb3in->evaleasy1bbin; 4: evaleasy1bbin->evaleasy1bb1in; 7: evaleasy1bb1in->evaleasy1bb3in] of 2⋅X₀+84 {O(n)}
relevant size-bounds w.r.t. t₈: evaleasy1bb2in→evaleasy1bb3in:
X₀: 41 {O(1)}
Runtime-bound of t₈: 41 {O(1)}
Results in: 6806 {O(1)}
All Bounds
Timebounds
Overall timebound:7095 {O(1)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 40 {O(1)}
t₃: 1 {O(1)}
t₄: 40 {O(1)}
t₅: 40 {O(1)}
t₆: 40 {O(1)}
t₇: 6890 {O(1)}
t₈: 41 {O(1)}
t₉: 1 {O(1)}
Costbounds
Overall costbound: 7095 {O(1)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: 40 {O(1)}
t₃: 1 {O(1)}
t₄: 40 {O(1)}
t₅: 40 {O(1)}
t₆: 40 {O(1)}
t₇: 6890 {O(1)}
t₈: 41 {O(1)}
t₉: 1 {O(1)}
Sizebounds
t₀, X₀: X₀ {O(n)}
t₀, X₁: X₁ {O(n)}
t₁, X₀: 0 {O(1)}
t₁, X₁: X₁ {O(n)}
t₂, X₀: 39 {O(1)}
t₂, X₁: X₁ {O(n)}
t₃, X₀: 81 {O(1)}
t₃, X₁: X₁ {O(n)}
t₄, X₀: 39 {O(1)}
t₄, X₁: 0 {O(1)}
t₅, X₀: 39 {O(1)}
t₅, X₁: X₁ {O(n)}
t₆, X₀: 39 {O(1)}
t₆, X₁: X₁ {O(n)}
t₇, X₀: 40 {O(1)}
t₇, X₁: 0 {O(1)}
t₈, X₀: 41 {O(1)}
t₈, X₁: X₁ {O(n)}
t₉, X₀: 81 {O(1)}
t₉, X₁: X₁ {O(n)}