0 CpxTRS
↳1 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxWeightedTrs
↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 7 ms)
↳4 CpxTypedWeightedTrs
↳5 CompletionProof (UPPER BOUND(ID), 0 ms)
↳6 CpxTypedWeightedCompleteTrs
↳7 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳10 CpxRNTS
↳11 SimplificationProof (BOTH BOUNDS(ID, ID), 3 ms)
↳12 CpxRNTS
↳13 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 IntTrsBoundProof (UPPER BOUND(ID), 810 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 159 ms)
↳18 CpxRNTS
↳19 FinalProof (⇔, 0 ms)
↳20 BOUNDS(1, n^1)
implies(not(x), y) → or(x, y)
implies(not(x), or(y, z)) → implies(y, or(x, z))
implies(x, or(y, z)) → or(y, implies(x, z))
implies(not(x), y) → or(x, y) [1]
implies(not(x), or(y, z)) → implies(y, or(x, z)) [1]
implies(x, or(y, z)) → or(y, implies(x, z)) [1]
implies(not(x), y) → or(x, y) [1]
implies(not(x), or(y, z)) → implies(y, or(x, z)) [1]
implies(x, or(y, z)) → or(y, implies(x, z)) [1]
implies :: not → or → or not :: not → not or :: not → or → or |
(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:
implies
const, const1
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 |
const => 0
const1 => 0
implies(z', z'') -{ 1 }→ implies(y, 1 + x + z) :|: z' = 1 + x, z >= 0, x >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + x + y :|: z' = 1 + x, z'' = y, x >= 0, y >= 0
implies(z', z'') -{ 1 }→ 1 + y + implies(x, z) :|: z >= 0, z' = x, x >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ implies(y, 1 + (z' - 1) + z) :|: z >= 0, z' - 1 >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + y + implies(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + (z' - 1) + z'' :|: z' - 1 >= 0, z'' >= 0
{ implies } |
implies(z', z'') -{ 1 }→ implies(y, 1 + (z' - 1) + z) :|: z >= 0, z' - 1 >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + y + implies(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + (z' - 1) + z'' :|: z' - 1 >= 0, z'' >= 0
implies(z', z'') -{ 1 }→ implies(y, 1 + (z' - 1) + z) :|: z >= 0, z' - 1 >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + y + implies(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + (z' - 1) + z'' :|: z' - 1 >= 0, z'' >= 0
implies: runtime: ?, size: O(n1) [z' + z''] |
implies(z', z'') -{ 1 }→ implies(y, 1 + (z' - 1) + z) :|: z >= 0, z' - 1 >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + y + implies(z', z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z
implies(z', z'') -{ 1 }→ 1 + (z' - 1) + z'' :|: z' - 1 >= 0, z'' >= 0
implies: runtime: O(n1) [1 + z' + z''], size: O(n1) [z' + z''] |