0 CpxRelTRS
↳1 RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxWeightedTrs
↳3 CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CpxWeightedTrs
↳5 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)
↳6 CpxTypedWeightedTrs
↳7 CompletionProof (UPPER BOUND(ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳10 CpxTypedWeightedCompleteTrs
↳11 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳12 CpxRNTS
↳13 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 491 ms)
↳18 CpxRNTS
↳19 IntTrsBoundProof (UPPER BOUND(ID), 135 ms)
↳20 CpxRNTS
↳21 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳22 CpxRNTS
↳23 IntTrsBoundProof (UPPER BOUND(ID), 60 ms)
↳24 CpxRNTS
↳25 IntTrsBoundProof (UPPER BOUND(ID), 55 ms)
↳26 CpxRNTS
↳27 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳28 CpxRNTS
↳29 IntTrsBoundProof (UPPER BOUND(ID), 1374 ms)
↳30 CpxRNTS
↳31 IntTrsBoundProof (UPPER BOUND(ID), 728 ms)
↳32 CpxRNTS
↳33 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳34 CpxRNTS
↳35 IntTrsBoundProof (UPPER BOUND(ID), 134 ms)
↳36 CpxRNTS
↳37 IntTrsBoundProof (UPPER BOUND(ID), 63 ms)
↳38 CpxRNTS
↳39 FinalProof (⇔, 0 ms)
↳40 BOUNDS(1, n^1)
ordered(Cons(x', Cons(x, xs))) → ordered[Ite](<(x', x), Cons(x', Cons(x, xs)))
ordered(Cons(x, Nil)) → True
ordered(Nil) → True
notEmpty(Cons(x, xs)) → True
notEmpty(Nil) → False
goal(xs) → ordered(xs)
<(S(x), S(y)) → <(x, y)
<(0, S(y)) → True
<(x, 0) → False
ordered[Ite](True, Cons(x, xs)) → ordered(xs)
ordered[Ite](False, xs) → False
ordered(Cons(x', Cons(x, xs))) → ordered[Ite](<(x', x), Cons(x', Cons(x, xs))) [1]
ordered(Cons(x, Nil)) → True [1]
ordered(Nil) → True [1]
notEmpty(Cons(x, xs)) → True [1]
notEmpty(Nil) → False [1]
goal(xs) → ordered(xs) [1]
<(S(x), S(y)) → <(x, y) [0]
<(0, S(y)) → True [0]
<(x, 0) → False [0]
ordered[Ite](True, Cons(x, xs)) → ordered(xs) [0]
ordered[Ite](False, xs) → False [0]
< => lt |
ordered(Cons(x', Cons(x, xs))) → ordered[Ite](lt(x', x), Cons(x', Cons(x, xs))) [1]
ordered(Cons(x, Nil)) → True [1]
ordered(Nil) → True [1]
notEmpty(Cons(x, xs)) → True [1]
notEmpty(Nil) → False [1]
goal(xs) → ordered(xs) [1]
lt(S(x), S(y)) → lt(x, y) [0]
lt(0, S(y)) → True [0]
lt(x, 0) → False [0]
ordered[Ite](True, Cons(x, xs)) → ordered(xs) [0]
ordered[Ite](False, xs) → False [0]
ordered(Cons(x', Cons(x, xs))) → ordered[Ite](lt(x', x), Cons(x', Cons(x, xs))) [1]
ordered(Cons(x, Nil)) → True [1]
ordered(Nil) → True [1]
notEmpty(Cons(x, xs)) → True [1]
notEmpty(Nil) → False [1]
goal(xs) → ordered(xs) [1]
lt(S(x), S(y)) → lt(x, y) [0]
lt(0, S(y)) → True [0]
lt(x, 0) → False [0]
ordered[Ite](True, Cons(x, xs)) → ordered(xs) [0]
ordered[Ite](False, xs) → False [0]
ordered :: Cons:Nil → True:False Cons :: S:0 → Cons:Nil → Cons:Nil ordered[Ite] :: True:False → Cons:Nil → True:False lt :: S:0 → S:0 → True:False Nil :: Cons:Nil True :: True:False notEmpty :: Cons:Nil → True:False False :: True:False goal :: Cons:Nil → True:False S :: S:0 → S:0 0 :: S:0 |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
ordered
notEmpty
goal
lt
ordered[Ite]
lt(v0, v1) → null_lt [0]
ordered[Ite](v0, v1) → null_ordered[Ite] [0]
null_lt, null_ordered[Ite]
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Nil => 0
True => 2
False => 1
0 => 0
null_lt => 0
null_ordered[Ite] => 0
goal(z) -{ 1 }→ ordered(xs) :|: xs >= 0, z = xs
lt(z, z') -{ 0 }→ lt(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x
lt(z, z') -{ 0 }→ 2 :|: z' = 1 + y, y >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: x >= 0, z = x, z' = 0
lt(z, z') -{ 0 }→ 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](lt(x'', y'), 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: x >= 0, z = 1 + x + 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: xs >= 0, z = 1, z' = xs
ordered[Ite](z, z') -{ 0 }→ 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ lt(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](lt(x'', y'), 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
{ lt } { notEmpty } { ordered[Ite], ordered } { goal } |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ lt(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](lt(x'', y'), 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ lt(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](lt(x'', y'), 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: ?, size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ lt(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](lt(x'', y'), 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](s, 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](s, 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: ?, size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](s, 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](s, 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](s, 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] ordered[Ite]: runtime: ?, size: O(1) [2] ordered: runtime: ?, size: O(1) [2] |
goal(z) -{ 1 }→ ordered(z) :|: z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 1 }→ ordered[Ite](s, 1 + (1 + x'') + (1 + (1 + y') + xs)) :|: s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](2, 1 + 0 + (1 + (1 + y'') + xs)) :|: xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 1 }→ ordered[Ite](1, 1 + x' + (1 + 0 + xs)) :|: xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 1 }→ ordered[Ite](0, 1 + x' + (1 + x + xs)) :|: xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 0 }→ ordered(xs) :|: z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] ordered[Ite]: runtime: O(n1) [3 + z'], size: O(1) [2] ordered: runtime: O(n1) [4 + z], size: O(1) [2] |
goal(z) -{ 5 + z }→ s4 :|: s4 >= 0, s4 <= 2, z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 8 + x'' + xs + y' }→ s'' :|: s'' >= 0, s'' <= 2, s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 7 + xs + y'' }→ s1 :|: s1 >= 0, s1 <= 2, xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 6 + x' + xs }→ s2 :|: s2 >= 0, s2 <= 2, xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 6 + x + x' + xs }→ s3 :|: s3 >= 0, s3 <= 2, xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 4 + xs }→ s5 :|: s5 >= 0, s5 <= 2, z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] ordered[Ite]: runtime: O(n1) [3 + z'], size: O(1) [2] ordered: runtime: O(n1) [4 + z], size: O(1) [2] |
goal(z) -{ 5 + z }→ s4 :|: s4 >= 0, s4 <= 2, z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 8 + x'' + xs + y' }→ s'' :|: s'' >= 0, s'' <= 2, s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 7 + xs + y'' }→ s1 :|: s1 >= 0, s1 <= 2, xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 6 + x' + xs }→ s2 :|: s2 >= 0, s2 <= 2, xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 6 + x + x' + xs }→ s3 :|: s3 >= 0, s3 <= 2, xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 4 + xs }→ s5 :|: s5 >= 0, s5 <= 2, z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] ordered[Ite]: runtime: O(n1) [3 + z'], size: O(1) [2] ordered: runtime: O(n1) [4 + z], size: O(1) [2] goal: runtime: ?, size: O(1) [2] |
goal(z) -{ 5 + z }→ s4 :|: s4 >= 0, s4 <= 2, z >= 0
lt(z, z') -{ 0 }→ s' :|: s' >= 0, s' <= 2, z - 1 >= 0, z' - 1 >= 0
lt(z, z') -{ 0 }→ 2 :|: z' - 1 >= 0, z = 0
lt(z, z') -{ 0 }→ 1 :|: z >= 0, z' = 0
lt(z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
notEmpty(z) -{ 1 }→ 2 :|: z = 1 + x + xs, xs >= 0, x >= 0
notEmpty(z) -{ 1 }→ 1 :|: z = 0
ordered(z) -{ 8 + x'' + xs + y' }→ s'' :|: s'' >= 0, s'' <= 2, s >= 0, s <= 2, xs >= 0, z = 1 + (1 + x'') + (1 + (1 + y') + xs), y' >= 0, x'' >= 0
ordered(z) -{ 7 + xs + y'' }→ s1 :|: s1 >= 0, s1 <= 2, xs >= 0, z = 1 + 0 + (1 + (1 + y'') + xs), y'' >= 0
ordered(z) -{ 6 + x' + xs }→ s2 :|: s2 >= 0, s2 <= 2, xs >= 0, x' >= 0, z = 1 + x' + (1 + 0 + xs)
ordered(z) -{ 6 + x + x' + xs }→ s3 :|: s3 >= 0, s3 <= 2, xs >= 0, x' >= 0, x >= 0, z = 1 + x' + (1 + x + xs)
ordered(z) -{ 1 }→ 2 :|: z - 1 >= 0
ordered(z) -{ 1 }→ 2 :|: z = 0
ordered[Ite](z, z') -{ 4 + xs }→ s5 :|: s5 >= 0, s5 <= 2, z = 2, xs >= 0, z' = 1 + x + xs, x >= 0
ordered[Ite](z, z') -{ 0 }→ 1 :|: z' >= 0, z = 1
ordered[Ite](z, z') -{ 0 }→ 0 :|: z >= 0, z' >= 0
lt: runtime: O(1) [0], size: O(1) [2] notEmpty: runtime: O(1) [1], size: O(1) [2] ordered[Ite]: runtime: O(n1) [3 + z'], size: O(1) [2] ordered: runtime: O(n1) [4 + z], size: O(1) [2] goal: runtime: O(n1) [5 + z], size: O(1) [2] |