Initial Problem
Start: l0
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₀: l0(X₀, X₁, X₂, X₃, X₄) → l1(X₀, X₁, X₂, X₃, X₄) :|: 0 < X₀ ∧ 0 < X₄
t₁: l1(X₀, X₁, X₂, X₃, X₄) → l1(X₀-1, 3⋅X₁+2⋅X₂, -5⋅X₁-3⋅X₂, (X₀)²+X₃, X₄) :|: 0 < X₀
t₂: l1(X₀, X₁, X₂, X₃, X₄) → l2(X₀, X₁, X₂, X₃, X₄)
t₄: l2(X₀, X₁, X₂, X₃, X₄) → l1(X₄, 2⋅X₄, 3⋅X₄, X₀, X₄-1) :|: 0 < X₄
t₃: l2(X₀, X₁, X₂, X₃, X₄) → l2(X₀, X₁-1, X₂, X₃, X₄) :|: 0 < X₁
Preprocessing
Eliminate variables {X₃} that do not contribute to the problem
Found invariant 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ for location l2
Found invariant 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ for location l1
Problem after Preprocessing
Start: l0
Program_Vars: X₀, X₁, X₂, X₃
Temp_Vars:
Locations: l0, l1, l2
Transitions:
t₁₀: l0(X₀, X₁, X₂, X₃) → l1(X₀, X₁, X₂, X₃) :|: 0 < X₀ ∧ 0 < X₃
t₁₁: l1(X₀, X₁, X₂, X₃) → l1(X₀-1, 3⋅X₁+2⋅X₂, -5⋅X₁-3⋅X₂, X₃) :|: 0 < X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀
t₁₂: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀
t₁₃: l2(X₀, X₁, X₂, X₃) → l1(X₃, 2⋅X₃, 3⋅X₃, X₃-1) :|: 0 < X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀
t₁₄: l2(X₀, X₁, X₂, X₃) → l2(X₀, X₁-1, X₂, X₃) :|: 0 < X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀
MPRF for transition t₁₂: l1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ of depth 1:
new bound:
X₃+1 {O(n)}
MPRF for transition t₁₃: l2(X₀, X₁, X₂, X₃) → l1(X₃, 2⋅X₃, 3⋅X₃, X₃-1) :|: 0 < X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ of depth 1:
new bound:
X₃+1 {O(n)}
TWN: t₁₁: l1→l1
cycle: [t₁₁: l1→l1]
loop: (0 < X₀,(X₀) -> (X₀-1)
order: [X₀]
closed-form:
X₀: X₀ + [[n != 0]] * -1 * n^1
Termination: true
Formula:
1 < 0
∨ 0 < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1
Stabilization-Threshold for: 0 < X₀
alphas_abs: X₀
M: 0
N: 1
Bound: 2⋅X₀+2 {O(n)}
loop: (0 < X₀,(X₀) -> (X₀-1)
order: [X₀]
closed-form:
X₀: X₀ + [[n != 0]] * -1 * n^1
Termination: true
Formula:
1 < 0
∨ 0 < X₀ ∧ 1 ≤ 0 ∧ 0 ≤ 1
Stabilization-Threshold for: 0 < X₀
alphas_abs: X₀
M: 0
N: 1
Bound: 2⋅X₀+2 {O(n)}
TWN - Lifting for t₁₁: l1→l1 of 2⋅X₀+4 {O(n)}
relevant size-bounds w.r.t. t₁₃:
X₀: 2⋅X₃ {O(n)}
Runtime-bound of t₁₃: X₃+1 {O(n)}
Results in: 4⋅X₃⋅X₃+8⋅X₃+4 {O(n^2)}
TWN - Lifting for t₁₁: l1→l1 of 2⋅X₀+4 {O(n)}
relevant size-bounds w.r.t. t₁₀:
X₀: X₀ {O(n)}
Runtime-bound of t₁₀: 1 {O(1)}
Results in: 2⋅X₀+4 {O(n)}
MPRF for transition t₁₄: l2(X₀, X₁, X₂, X₃) → l2(X₀, X₁-1, X₂, X₃) :|: 0 < X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ of depth 1:
new bound:
10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂⋅X₃+4⋅X₃⋅X₃+X₁⋅X₃+4⋅X₃+X₁ {O(EXP)}
Analysing control-flow refined program
Found invariant 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ for location l2
Found invariant 0 ≤ X₃ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₀ for location l1
Found invariant 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ for location n_l1___1
knowledge_propagation leads to new time bound X₃+2 {O(n)} for transition t₅₁: l1(X₀, X₁, X₂, X₃) → n_l1___1(X₀-1, 3⋅X₁+2⋅X₂, -5⋅X₁-3⋅X₂, X₃) :|: 0 < X₀ ∧ 0 < X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₃ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₀
knowledge_propagation leads to new time bound X₃+2 {O(n)} for transition t₅₂: l1(X₀, X₁, X₂, X₃) → n_l1___1(X₀-1, 3⋅X₁+2⋅X₂, -5⋅X₁-3⋅X₂, X₃) :|: 0 < X₀ ∧ 0 < X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₃ ∧ 1 ≤ X₀+X₃ ∧ 1 ≤ X₀
MPRF for transition t₅₀: n_l1___1(X₀, X₁, X₂, X₃) → n_l1___1(X₀-1, 3⋅X₁+2⋅X₂, -5⋅X₁-3⋅X₂, X₃) :|: 0 < X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ of depth 1:
new bound:
2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4 {O(n^2)}
MPRF for transition t₅₅: n_l1___1(X₀, X₁, X₂, X₃) → l2(X₀, X₁, X₂, X₃) :|: 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ of depth 1:
new bound:
X₃+1 {O(n)}
MPRF for transition t₆₄: l2(X₀, X₁, X₂, X₃) → l2(X₀, X₁-1, X₂, X₃) :|: 0 < X₁ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀ ∧ 0 ≤ X₃ ∧ 0 ≤ X₃ ∧ 0 ≤ X₀+X₃ ∧ 0 ≤ X₀ of depth 1:
new bound:
10^(2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4)⋅16⋅X₁+10^(2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4)⋅16⋅X₁⋅X₃+10^(2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4)⋅16⋅X₂+10^(2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4)⋅16⋅X₂⋅X₃+10^(2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4)⋅240⋅X₃+10^(2⋅X₀⋅X₃+6⋅X₃⋅X₃+14⋅X₃+4⋅X₀+4)⋅240⋅X₃⋅X₃+6⋅X₁⋅X₃+6⋅X₂⋅X₃+96⋅X₃⋅X₃+6⋅X₂+7⋅X₁+96⋅X₃ {O(EXP)}
CFR did not improve the program. Rolling back
CFR did not improve the program. Rolling back
All Bounds
Timebounds
Overall timebound:10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂⋅X₃+8⋅X₃⋅X₃+X₁⋅X₃+14⋅X₃+2⋅X₀+X₁+11 {O(EXP)}
t₁₀: 1 {O(1)}
t₁₁: 4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8 {O(n^2)}
t₁₂: X₃+1 {O(n)}
t₁₃: X₃+1 {O(n)}
t₁₄: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂⋅X₃+4⋅X₃⋅X₃+X₁⋅X₃+4⋅X₃+X₁ {O(EXP)}
Costbounds
Overall costbound: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂⋅X₃+8⋅X₃⋅X₃+X₁⋅X₃+14⋅X₃+2⋅X₀+X₁+11 {O(EXP)}
t₁₀: 1 {O(1)}
t₁₁: 4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8 {O(n^2)}
t₁₂: X₃+1 {O(n)}
t₁₃: X₃+1 {O(n)}
t₁₄: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂⋅X₃+4⋅X₃⋅X₃+X₁⋅X₃+4⋅X₃+X₁ {O(EXP)}
Sizebounds
t₁₀, X₀: X₀ {O(n)}
t₁₀, X₁: X₁ {O(n)}
t₁₀, X₂: X₂ {O(n)}
t₁₀, X₃: X₃ {O(n)}
t₁₁, X₀: 2⋅X₃+X₀ {O(n)}
t₁₁, X₁: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂ {O(EXP)}
t₁₁, X₂: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂ {O(EXP)}
t₁₁, X₃: X₃ {O(n)}
t₁₂, X₀: 2⋅X₀+4⋅X₃ {O(n)}
t₁₂, X₁: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+4⋅X₃+X₁ {O(EXP)}
t₁₂, X₂: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+6⋅X₃+X₂ {O(EXP)}
t₁₂, X₃: X₃ {O(n)}
t₁₃, X₀: 2⋅X₃ {O(n)}
t₁₃, X₁: 4⋅X₃ {O(n)}
t₁₃, X₂: 6⋅X₃ {O(n)}
t₁₃, X₃: X₃ {O(n)}
t₁₄, X₀: 2⋅X₀+4⋅X₃ {O(n)}
t₁₄, X₁: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+4⋅X₃+X₁ {O(EXP)}
t₁₄, X₂: 10⋅10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₃+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₁+10^(4⋅X₃⋅X₃+2⋅X₀+8⋅X₃+8)⋅X₂+6⋅X₃+X₂ {O(EXP)}
t₁₄, X₃: X₃ {O(n)}