Initial Problem
Start: evalNestedMultipleDepstart
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars:
Locations: evalNestedMultipleDepbb1in, evalNestedMultipleDepbb2in, evalNestedMultipleDepbb3in, evalNestedMultipleDepbbin, evalNestedMultipleDepentryin, evalNestedMultipleDepreturnin, evalNestedMultipleDepstart, evalNestedMultipleDepstop
Transitions:
t₇: evalNestedMultipleDepbb1in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb2in(X₀, X₁, X₂, 1+X₃, X₄)
t₅: evalNestedMultipleDepbb2in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb1in(X₀, X₁, X₂, X₃, X₄) :|: 1+X₃ ≤ X₄
t₆: evalNestedMultipleDepbb2in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb3in(X₂, X₁, X₂, X₃, X₄) :|: X₄ ≤ X₃
t₂: evalNestedMultipleDepbb3in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbbin(X₀, X₁, X₂, X₃, X₄) :|: 1+X₀ ≤ X₁
t₃: evalNestedMultipleDepbb3in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepreturnin(X₀, X₁, X₂, X₃, X₄) :|: X₁ ≤ X₀
t₄: evalNestedMultipleDepbbin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb2in(X₀, X₁, 1+X₀, 0, X₄)
t₁: evalNestedMultipleDepentryin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb3in(0, X₁, X₂, X₃, X₄)
t₈: evalNestedMultipleDepreturnin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepstop(X₀, X₁, X₂, X₃, X₄)
t₀: evalNestedMultipleDepstart(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepentryin(X₀, X₁, X₂, X₃, X₄)
Preprocessing
Found invariant 1 ≤ X₄ ∧ 1 ≤ X₃+X₄ ∧ 1+X₃ ≤ X₄ ∧ 2 ≤ X₂+X₄ ∧ 2 ≤ X₁+X₄ ∧ 1 ≤ X₀+X₄ ∧ 0 ≤ X₃ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbb1in
Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₀ for location evalNestedMultipleDepreturnin
Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₀ for location evalNestedMultipleDepstop
Found invariant 0 ≤ X₃ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbb2in
Found invariant 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbbin
Found invariant 0 ≤ X₀ for location evalNestedMultipleDepbb3in
Problem after Preprocessing
Start: evalNestedMultipleDepstart
Program_Vars: X₀, X₁, X₂, X₃, X₄
Temp_Vars:
Locations: evalNestedMultipleDepbb1in, evalNestedMultipleDepbb2in, evalNestedMultipleDepbb3in, evalNestedMultipleDepbbin, evalNestedMultipleDepentryin, evalNestedMultipleDepreturnin, evalNestedMultipleDepstart, evalNestedMultipleDepstop
Transitions:
t₇: evalNestedMultipleDepbb1in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb2in(X₀, X₁, X₂, 1+X₃, X₄) :|: X₂ ≤ 1+X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₀+X₄ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₄ ∧ 1+X₃ ≤ X₄ ∧ 1 ≤ X₄ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₄ ∧ 2 ≤ X₂+X₄ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ X₃
t₅: evalNestedMultipleDepbb2in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb1in(X₀, X₁, X₂, X₃, X₄) :|: 1+X₃ ≤ X₄ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ X₃
t₆: evalNestedMultipleDepbb2in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb3in(X₂, X₁, X₂, X₃, X₄) :|: X₄ ≤ X₃ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ X₃
t₂: evalNestedMultipleDepbb3in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbbin(X₀, X₁, X₂, X₃, X₄) :|: 1+X₀ ≤ X₁ ∧ 0 ≤ X₀
t₃: evalNestedMultipleDepbb3in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepreturnin(X₀, X₁, X₂, X₃, X₄) :|: X₁ ≤ X₀ ∧ 0 ≤ X₀
t₄: evalNestedMultipleDepbbin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb2in(X₀, X₁, 1+X₀, 0, X₄) :|: 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₁ ∧ 0 ≤ X₀
t₁: evalNestedMultipleDepentryin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb3in(0, X₁, X₂, X₃, X₄)
t₈: evalNestedMultipleDepreturnin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepstop(X₀, X₁, X₂, X₃, X₄) :|: 0 ≤ X₀ ∧ X₁ ≤ X₀
t₀: evalNestedMultipleDepstart(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepentryin(X₀, X₁, X₂, X₃, X₄)
MPRF for transition t₂: evalNestedMultipleDepbb3in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbbin(X₀, X₁, X₂, X₃, X₄) :|: 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
X₁ {O(n)}
MPRF:
• evalNestedMultipleDepbb1in: [X₁-X₂]
• evalNestedMultipleDepbb2in: [X₁-X₂]
• evalNestedMultipleDepbb3in: [X₁-X₀]
• evalNestedMultipleDepbbin: [X₁-1-X₀]
MPRF for transition t₄: evalNestedMultipleDepbbin(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb2in(X₀, X₁, 1+X₀, 0, X₄) :|: 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 1 ≤ X₁ ∧ 0 ≤ X₀ of depth 1:
new bound:
X₁ {O(n)}
MPRF:
• evalNestedMultipleDepbb1in: [X₁-1-X₀]
• evalNestedMultipleDepbb2in: [X₁-1-X₀]
• evalNestedMultipleDepbb3in: [X₁-X₀]
• evalNestedMultipleDepbbin: [X₁-X₀]
MPRF for transition t₆: evalNestedMultipleDepbb2in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb3in(X₂, X₁, X₂, X₃, X₄) :|: X₄ ≤ X₃ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ X₃ of depth 1:
new bound:
X₁ {O(n)}
MPRF:
• evalNestedMultipleDepbb1in: [X₁-X₀]
• evalNestedMultipleDepbb2in: [X₁-X₀]
• evalNestedMultipleDepbb3in: [X₁-X₀]
• evalNestedMultipleDepbbin: [X₁-X₀]
MPRF for transition t₅: evalNestedMultipleDepbb2in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb1in(X₀, X₁, X₂, X₃, X₄) :|: 1+X₃ ≤ X₄ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₂ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ X₃ of depth 1:
new bound:
X₁⋅X₄+X₄ {O(n^2)}
MPRF:
• evalNestedMultipleDepbb1in: [X₄-1-X₃]
• evalNestedMultipleDepbb2in: [X₄-X₃]
• evalNestedMultipleDepbb3in: [X₄]
• evalNestedMultipleDepbbin: [X₄]
MPRF for transition t₇: evalNestedMultipleDepbb1in(X₀, X₁, X₂, X₃, X₄) → evalNestedMultipleDepbb2in(X₀, X₁, X₂, 1+X₃, X₄) :|: X₂ ≤ 1+X₀ ∧ 1 ≤ X₀+X₁ ∧ 1 ≤ X₀+X₂ ∧ 1 ≤ X₀+X₄ ∧ 1+X₀ ≤ X₁ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₁+X₃ ∧ 1 ≤ X₂ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₃+X₄ ∧ 1+X₃ ≤ X₄ ∧ 1 ≤ X₄ ∧ 2 ≤ X₁+X₂ ∧ 2 ≤ X₁+X₄ ∧ 2 ≤ X₂+X₄ ∧ 0 ≤ X₀ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ 0 ≤ X₃ of depth 1:
new bound:
X₁⋅X₄+X₄ {O(n^2)}
MPRF:
• evalNestedMultipleDepbb1in: [X₄-X₃]
• evalNestedMultipleDepbb2in: [X₄-X₃]
• evalNestedMultipleDepbb3in: [X₄]
• evalNestedMultipleDepbbin: [X₄]
Found invariant X₃ ≤ 0 ∧ 1+X₃ ≤ X₂ ∧ 1+X₃ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 0 ≤ X₃ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbb2in
Found invariant 2 ≤ X₄ ∧ 3 ≤ X₃+X₄ ∧ 1+X₃ ≤ X₄ ∧ 3 ≤ X₂+X₄ ∧ 3 ≤ X₁+X₄ ∧ 2 ≤ X₀+X₄ ∧ 1 ≤ X₃ ∧ 2 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₃ ∧ 1 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbb1in_v2
Found invariant 1 ≤ X₄ ∧ 2 ≤ X₃+X₄ ∧ X₃ ≤ X₄ ∧ 2 ≤ X₂+X₄ ∧ 2 ≤ X₁+X₄ ∧ 1 ≤ X₀+X₄ ∧ 1 ≤ X₃ ∧ 2 ≤ X₂+X₃ ∧ 2 ≤ X₁+X₃ ∧ 1 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbb2in_v1
Found invariant 0 ≤ X₀ for location evalNestedMultipleDepbb3in
Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₀ for location evalNestedMultipleDepreturnin
Found invariant X₁ ≤ X₀ ∧ 0 ≤ X₀ for location evalNestedMultipleDepstop
Found invariant 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbbin
Found invariant 1 ≤ X₄ ∧ 1 ≤ X₃+X₄ ∧ 1+X₃ ≤ X₄ ∧ 2 ≤ X₂+X₄ ∧ 2 ≤ X₁+X₄ ∧ 1 ≤ X₀+X₄ ∧ X₃ ≤ 0 ∧ 1+X₃ ≤ X₂ ∧ 1+X₃ ≤ X₁ ∧ X₃ ≤ X₀ ∧ 0 ≤ X₃ ∧ 1 ≤ X₂+X₃ ∧ 1 ≤ X₁+X₃ ∧ 0 ≤ X₀+X₃ ∧ X₂ ≤ X₁ ∧ X₂ ≤ 1+X₀ ∧ 1 ≤ X₂ ∧ 2 ≤ X₁+X₂ ∧ 1 ≤ X₀+X₂ ∧ 1+X₀ ≤ X₂ ∧ 1 ≤ X₁ ∧ 1 ≤ X₀+X₁ ∧ 1+X₀ ≤ X₁ ∧ 0 ≤ X₀ for location evalNestedMultipleDepbb1in_v1
All Bounds
Timebounds
Overall timebound:2⋅X₁⋅X₄+2⋅X₄+3⋅X₁+4 {O(n^2)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: X₁ {O(n)}
t₃: 1 {O(1)}
t₄: X₁ {O(n)}
t₅: X₁⋅X₄+X₄ {O(n^2)}
t₆: X₁ {O(n)}
t₇: X₁⋅X₄+X₄ {O(n^2)}
t₈: 1 {O(1)}
Costbounds
Overall costbound: 2⋅X₁⋅X₄+2⋅X₄+3⋅X₁+4 {O(n^2)}
t₀: 1 {O(1)}
t₁: 1 {O(1)}
t₂: X₁ {O(n)}
t₃: 1 {O(1)}
t₄: X₁ {O(n)}
t₅: X₁⋅X₄+X₄ {O(n^2)}
t₆: X₁ {O(n)}
t₇: X₁⋅X₄+X₄ {O(n^2)}
t₈: 1 {O(1)}
Sizebounds
t₀, X₀: X₀ {O(n)}
t₀, X₁: X₁ {O(n)}
t₀, X₂: X₂ {O(n)}
t₀, X₃: X₃ {O(n)}
t₀, X₄: X₄ {O(n)}
t₁, X₀: 0 {O(1)}
t₁, X₁: X₁ {O(n)}
t₁, X₂: X₂ {O(n)}
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₂+2 {O(n)}
t₂, X₃: X₁⋅X₄+X₃+X₄ {O(n^2)}
t₂, X₄: X₄ {O(n)}
t₃, X₀: X₁ {O(n)}
t₃, X₁: 2⋅X₁ {O(n)}
t₃, X₂: 2⋅X₁+X₂+2 {O(n)}
t₃, X₃: X₁⋅X₄+X₃+X₄ {O(n^2)}
t₃, X₄: 2⋅X₄ {O(n)}
t₄, X₀: X₁ {O(n)}
t₄, X₁: X₁ {O(n)}
t₄, X₂: X₁+1 {O(n)}
t₄, X₃: 0 {O(1)}
t₄, X₄: X₄ {O(n)}
t₅, X₀: X₁ {O(n)}
t₅, X₁: X₁ {O(n)}
t₅, X₂: X₁+1 {O(n)}
t₅, X₃: X₁⋅X₄+X₄ {O(n^2)}
t₅, X₄: X₄ {O(n)}
t₆, X₀: X₁ {O(n)}
t₆, X₁: X₁ {O(n)}
t₆, X₂: 2⋅X₁+2 {O(n)}
t₆, X₃: X₁⋅X₄+X₄ {O(n^2)}
t₆, X₄: X₄ {O(n)}
t₇, X₀: X₁ {O(n)}
t₇, X₁: X₁ {O(n)}
t₇, X₂: X₁+1 {O(n)}
t₇, X₃: X₁⋅X₄+X₄ {O(n^2)}
t₇, X₄: X₄ {O(n)}
t₈, X₀: X₁ {O(n)}
t₈, X₁: 2⋅X₁ {O(n)}
t₈, X₂: 2⋅X₁+X₂+2 {O(n)}
t₈, X₃: X₁⋅X₄+X₃+X₄ {O(n^2)}
t₈, X₄: 2⋅X₄ {O(n)}