(0) Obligation:

The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

m2(S(0), b, res, True) → False
m2(S(S(x)), b, res, True) → True
m2(0, b, res, True) → False
m3(S(0), b, res, t) → False
m3(S(S(x)), b, res, t) → True
m3(0, b, res, t) → False
l8(res, y, res', True, mtmp, t) → res
l5(x, y, res, tmp, mtmp, True) → 0
help1(S(0)) → False
help1(S(S(x))) → True
e4(a, b, res, False) → False
e4(a, b, res, True) → True
e2(a, b, res, False) → False
l15(x, y, res, tmp, False, t) → l16(x, y, gcd(y, 0), tmp, False, t)
l15(x, y, res, tmp, True, t) → l16(x, y, gcd(y, S(0)), tmp, True, t)
l13(x, y, res, tmp, False, t) → l16(x, y, gcd(0, y), tmp, False, t)
l13(x, y, res, tmp, True, t) → l16(x, y, gcd(S(0), y), tmp, True, t)
m4(S(x'), S(x), res, t) → m5(S(x'), S(x), monus(x', x), t)
m2(a, b, res, False) → m4(a, b, res, False)
l8(x, y, res, False, mtmp, t) → l10(x, y, res, False, mtmp, t)
l5(x, y, res, tmp, mtmp, False) → l7(x, y, res, tmp, mtmp, False)
l2(x, y, res, tmp, mtmp, False) → l3(x, y, res, tmp, mtmp, False)
l2(x, y, res, tmp, mtmp, True) → res
l11(x, y, res, tmp, mtmp, False) → l14(x, y, res, tmp, mtmp, False)
l11(x, y, res, tmp, mtmp, True) → l12(x, y, res, tmp, mtmp, True)
help1(0) → False
e2(a, b, res, True) → e3(a, b, res, True)
bool2Nat(False) → 0
bool2Nat(True) → S(0)
m1(a, x, res, t) → m2(a, x, res, False)
l9(res, y, res', tmp, mtmp, t) → res
l6(x, y, res, tmp, mtmp, t) → 0
l4(x', x, res, tmp, mtmp, t) → l5(x', x, res, tmp, mtmp, False)
l1(x, y, res, tmp, mtmp, t) → l2(x, y, res, tmp, mtmp, False)
e7(a, b, res, t) → False
e6(a, b, res, t) → False
e5(a, b, res, t) → True
monus(a, b) → m1(a, b, False, False)
m5(a, b, res, t) → res
l7(x, y, res, tmp, mtmp, t) → l8(x, y, res, equal0(x, y), mtmp, t)
l3(x, y, res, tmp, mtmp, t) → l4(x, y, 0, tmp, mtmp, t)
l16(x, y, res, tmp, mtmp, t) → res
l14(x, y, res, tmp, mtmp, t) → l15(x, y, res, tmp, monus(x, y), t)
l12(x, y, res, tmp, mtmp, t) → l13(x, y, res, tmp, monus(x, y), t)
l10(x, y, res, tmp, mtmp, t) → l11(x, y, res, tmp, mtmp, <(x, y))
gcd(x, y) → l1(x, y, 0, False, False, False)
equal0(a, b) → e1(a, b, False, False)
e8(a, b, res, t) → res
e3(a, b, res, t) → e4(a, b, res, <(b, a))
e1(a, b, res, t) → e2(a, b, res, <(a, b))

The (relative) TRS S consists of the following rules:

<(S(x), S(y)) → <(x, y)
<(0, S(y)) → True
<(x, 0) → False

Rewrite Strategy: INNERMOST

(1) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID) transformation)

Transformed relative TRS to weighted TRS

(2) Obligation:

The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

m2(S(0), b, res, True) → False [1]
m2(S(S(x)), b, res, True) → True [1]
m2(0, b, res, True) → False [1]
m3(S(0), b, res, t) → False [1]
m3(S(S(x)), b, res, t) → True [1]
m3(0, b, res, t) → False [1]
l8(res, y, res', True, mtmp, t) → res [1]
l5(x, y, res, tmp, mtmp, True) → 0 [1]
help1(S(0)) → False [1]
help1(S(S(x))) → True [1]
e4(a, b, res, False) → False [1]
e4(a, b, res, True) → True [1]
e2(a, b, res, False) → False [1]
l15(x, y, res, tmp, False, t) → l16(x, y, gcd(y, 0), tmp, False, t) [1]
l15(x, y, res, tmp, True, t) → l16(x, y, gcd(y, S(0)), tmp, True, t) [1]
l13(x, y, res, tmp, False, t) → l16(x, y, gcd(0, y), tmp, False, t) [1]
l13(x, y, res, tmp, True, t) → l16(x, y, gcd(S(0), y), tmp, True, t) [1]
m4(S(x'), S(x), res, t) → m5(S(x'), S(x), monus(x', x), t) [1]
m2(a, b, res, False) → m4(a, b, res, False) [1]
l8(x, y, res, False, mtmp, t) → l10(x, y, res, False, mtmp, t) [1]
l5(x, y, res, tmp, mtmp, False) → l7(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, False) → l3(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, True) → res [1]
l11(x, y, res, tmp, mtmp, False) → l14(x, y, res, tmp, mtmp, False) [1]
l11(x, y, res, tmp, mtmp, True) → l12(x, y, res, tmp, mtmp, True) [1]
help1(0) → False [1]
e2(a, b, res, True) → e3(a, b, res, True) [1]
bool2Nat(False) → 0 [1]
bool2Nat(True) → S(0) [1]
m1(a, x, res, t) → m2(a, x, res, False) [1]
l9(res, y, res', tmp, mtmp, t) → res [1]
l6(x, y, res, tmp, mtmp, t) → 0 [1]
l4(x', x, res, tmp, mtmp, t) → l5(x', x, res, tmp, mtmp, False) [1]
l1(x, y, res, tmp, mtmp, t) → l2(x, y, res, tmp, mtmp, False) [1]
e7(a, b, res, t) → False [1]
e6(a, b, res, t) → False [1]
e5(a, b, res, t) → True [1]
monus(a, b) → m1(a, b, False, False) [1]
m5(a, b, res, t) → res [1]
l7(x, y, res, tmp, mtmp, t) → l8(x, y, res, equal0(x, y), mtmp, t) [1]
l3(x, y, res, tmp, mtmp, t) → l4(x, y, 0, tmp, mtmp, t) [1]
l16(x, y, res, tmp, mtmp, t) → res [1]
l14(x, y, res, tmp, mtmp, t) → l15(x, y, res, tmp, monus(x, y), t) [1]
l12(x, y, res, tmp, mtmp, t) → l13(x, y, res, tmp, monus(x, y), t) [1]
l10(x, y, res, tmp, mtmp, t) → l11(x, y, res, tmp, mtmp, <(x, y)) [1]
gcd(x, y) → l1(x, y, 0, False, False, False) [1]
equal0(a, b) → e1(a, b, False, False) [1]
e8(a, b, res, t) → res [1]
e3(a, b, res, t) → e4(a, b, res, <(b, a)) [1]
e1(a, b, res, t) → e2(a, b, res, <(a, b)) [1]
<(S(x), S(y)) → <(x, y) [0]
<(0, S(y)) → True [0]
<(x, 0) → False [0]

Rewrite Strategy: INNERMOST

(3) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID) transformation)

Renamed defined symbols to avoid conflicts with arithmetic symbols:

< => lt

(4) Obligation:

The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

m2(S(0), b, res, True) → False [1]
m2(S(S(x)), b, res, True) → True [1]
m2(0, b, res, True) → False [1]
m3(S(0), b, res, t) → False [1]
m3(S(S(x)), b, res, t) → True [1]
m3(0, b, res, t) → False [1]
l8(res, y, res', True, mtmp, t) → res [1]
l5(x, y, res, tmp, mtmp, True) → 0 [1]
help1(S(0)) → False [1]
help1(S(S(x))) → True [1]
e4(a, b, res, False) → False [1]
e4(a, b, res, True) → True [1]
e2(a, b, res, False) → False [1]
l15(x, y, res, tmp, False, t) → l16(x, y, gcd(y, 0), tmp, False, t) [1]
l15(x, y, res, tmp, True, t) → l16(x, y, gcd(y, S(0)), tmp, True, t) [1]
l13(x, y, res, tmp, False, t) → l16(x, y, gcd(0, y), tmp, False, t) [1]
l13(x, y, res, tmp, True, t) → l16(x, y, gcd(S(0), y), tmp, True, t) [1]
m4(S(x'), S(x), res, t) → m5(S(x'), S(x), monus(x', x), t) [1]
m2(a, b, res, False) → m4(a, b, res, False) [1]
l8(x, y, res, False, mtmp, t) → l10(x, y, res, False, mtmp, t) [1]
l5(x, y, res, tmp, mtmp, False) → l7(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, False) → l3(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, True) → res [1]
l11(x, y, res, tmp, mtmp, False) → l14(x, y, res, tmp, mtmp, False) [1]
l11(x, y, res, tmp, mtmp, True) → l12(x, y, res, tmp, mtmp, True) [1]
help1(0) → False [1]
e2(a, b, res, True) → e3(a, b, res, True) [1]
bool2Nat(False) → 0 [1]
bool2Nat(True) → S(0) [1]
m1(a, x, res, t) → m2(a, x, res, False) [1]
l9(res, y, res', tmp, mtmp, t) → res [1]
l6(x, y, res, tmp, mtmp, t) → 0 [1]
l4(x', x, res, tmp, mtmp, t) → l5(x', x, res, tmp, mtmp, False) [1]
l1(x, y, res, tmp, mtmp, t) → l2(x, y, res, tmp, mtmp, False) [1]
e7(a, b, res, t) → False [1]
e6(a, b, res, t) → False [1]
e5(a, b, res, t) → True [1]
monus(a, b) → m1(a, b, False, False) [1]
m5(a, b, res, t) → res [1]
l7(x, y, res, tmp, mtmp, t) → l8(x, y, res, equal0(x, y), mtmp, t) [1]
l3(x, y, res, tmp, mtmp, t) → l4(x, y, 0, tmp, mtmp, t) [1]
l16(x, y, res, tmp, mtmp, t) → res [1]
l14(x, y, res, tmp, mtmp, t) → l15(x, y, res, tmp, monus(x, y), t) [1]
l12(x, y, res, tmp, mtmp, t) → l13(x, y, res, tmp, monus(x, y), t) [1]
l10(x, y, res, tmp, mtmp, t) → l11(x, y, res, tmp, mtmp, lt(x, y)) [1]
gcd(x, y) → l1(x, y, 0, False, False, False) [1]
equal0(a, b) → e1(a, b, False, False) [1]
e8(a, b, res, t) → res [1]
e3(a, b, res, t) → e4(a, b, res, lt(b, a)) [1]
e1(a, b, res, t) → e2(a, b, res, lt(a, b)) [1]
lt(S(x), S(y)) → lt(x, y) [0]
lt(0, S(y)) → True [0]
lt(x, 0) → False [0]

Rewrite Strategy: INNERMOST

(5) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)

Infered types.

(6) Obligation:

Runtime Complexity Weighted TRS with Types.
The TRS R consists of the following rules:

m2(S(0), b, res, True) → False [1]
m2(S(S(x)), b, res, True) → True [1]
m2(0, b, res, True) → False [1]
m3(S(0), b, res, t) → False [1]
m3(S(S(x)), b, res, t) → True [1]
m3(0, b, res, t) → False [1]
l8(res, y, res', True, mtmp, t) → res [1]
l5(x, y, res, tmp, mtmp, True) → 0 [1]
help1(S(0)) → False [1]
help1(S(S(x))) → True [1]
e4(a, b, res, False) → False [1]
e4(a, b, res, True) → True [1]
e2(a, b, res, False) → False [1]
l15(x, y, res, tmp, False, t) → l16(x, y, gcd(y, 0), tmp, False, t) [1]
l15(x, y, res, tmp, True, t) → l16(x, y, gcd(y, S(0)), tmp, True, t) [1]
l13(x, y, res, tmp, False, t) → l16(x, y, gcd(0, y), tmp, False, t) [1]
l13(x, y, res, tmp, True, t) → l16(x, y, gcd(S(0), y), tmp, True, t) [1]
m4(S(x'), S(x), res, t) → m5(S(x'), S(x), monus(x', x), t) [1]
m2(a, b, res, False) → m4(a, b, res, False) [1]
l8(x, y, res, False, mtmp, t) → l10(x, y, res, False, mtmp, t) [1]
l5(x, y, res, tmp, mtmp, False) → l7(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, False) → l3(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, True) → res [1]
l11(x, y, res, tmp, mtmp, False) → l14(x, y, res, tmp, mtmp, False) [1]
l11(x, y, res, tmp, mtmp, True) → l12(x, y, res, tmp, mtmp, True) [1]
help1(0) → False [1]
e2(a, b, res, True) → e3(a, b, res, True) [1]
bool2Nat(False) → 0 [1]
bool2Nat(True) → S(0) [1]
m1(a, x, res, t) → m2(a, x, res, False) [1]
l9(res, y, res', tmp, mtmp, t) → res [1]
l6(x, y, res, tmp, mtmp, t) → 0 [1]
l4(x', x, res, tmp, mtmp, t) → l5(x', x, res, tmp, mtmp, False) [1]
l1(x, y, res, tmp, mtmp, t) → l2(x, y, res, tmp, mtmp, False) [1]
e7(a, b, res, t) → False [1]
e6(a, b, res, t) → False [1]
e5(a, b, res, t) → True [1]
monus(a, b) → m1(a, b, False, False) [1]
m5(a, b, res, t) → res [1]
l7(x, y, res, tmp, mtmp, t) → l8(x, y, res, equal0(x, y), mtmp, t) [1]
l3(x, y, res, tmp, mtmp, t) → l4(x, y, 0, tmp, mtmp, t) [1]
l16(x, y, res, tmp, mtmp, t) → res [1]
l14(x, y, res, tmp, mtmp, t) → l15(x, y, res, tmp, monus(x, y), t) [1]
l12(x, y, res, tmp, mtmp, t) → l13(x, y, res, tmp, monus(x, y), t) [1]
l10(x, y, res, tmp, mtmp, t) → l11(x, y, res, tmp, mtmp, lt(x, y)) [1]
gcd(x, y) → l1(x, y, 0, False, False, False) [1]
equal0(a, b) → e1(a, b, False, False) [1]
e8(a, b, res, t) → res [1]
e3(a, b, res, t) → e4(a, b, res, lt(b, a)) [1]
e1(a, b, res, t) → e2(a, b, res, lt(a, b)) [1]
lt(S(x), S(y)) → lt(x, y) [0]
lt(0, S(y)) → True [0]
lt(x, 0) → False [0]

The TRS has the following type information:
m2 :: 0:S → 0:S → True:False → True:False → True:False
S :: 0:S → 0:S
0 :: 0:S
True :: True:False
False :: True:False
m3 :: 0:S → a → b → c → True:False
l8 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l5 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
help1 :: 0:S → True:False
e4 :: 0:S → 0:S → True:False → True:False → True:False
e2 :: 0:S → 0:S → True:False → True:False → True:False
l15 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l16 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
gcd :: 0:S → 0:S → 0:S
l13 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
m4 :: 0:S → 0:S → True:False → True:False → True:False
m5 :: 0:S → 0:S → True:False → True:False → True:False
monus :: 0:S → 0:S → True:False
l10 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l7 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l2 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l3 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l11 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l14 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l12 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
e3 :: 0:S → 0:S → True:False → True:False → True:False
bool2Nat :: True:False → 0:S
m1 :: 0:S → 0:S → True:False → True:False → True:False
l9 :: l9 → d → e → f → g → h → l9
l6 :: i → j → k → l → m → n → 0:S
l4 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
l1 :: 0:S → 0:S → 0:S → True:False → True:False → True:False → 0:S
e7 :: o → p → q → r → True:False
e6 :: s → t → u → v → True:False
e5 :: w → x → y → z → True:False
equal0 :: 0:S → 0:S → True:False
lt :: 0:S → 0:S → True:False
e1 :: 0:S → 0:S → True:False → True:False → True:False
e8 :: za → zaa → e8 → zaaa → e8

Rewrite Strategy: INNERMOST

(7) CompletionProof (UPPER BOUND(ID) transformation)

The transformation into a RNTS is sound, since:

(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:


m3
help1
bool2Nat
l9
l6
e7
e6
e5
e8

(c) The following functions are completely defined:

gcd
equal0
monus
e1
l1
l2
e2
m1
l3
m2
l4
m4
e3
m5
e4
l5
l7
l8
l10
l11
l14
l12
l15
l16
l13
lt

Due to the following rules being added:

lt(v0, v1) → null_lt [0]
l2(v0, v1, v2, v3, v4, v5) → 0 [0]
e2(v0, v1, v2, v3) → null_e2 [0]
m2(v0, v1, v2, v3) → null_m2 [0]
m4(v0, v1, v2, v3) → null_m4 [0]
e4(v0, v1, v2, v3) → null_e4 [0]
l5(v0, v1, v2, v3, v4, v5) → 0 [0]
l8(v0, v1, v2, v3, v4, v5) → 0 [0]
l11(v0, v1, v2, v3, v4, v5) → 0 [0]
l15(v0, v1, v2, v3, v4, v5) → 0 [0]
l13(v0, v1, v2, v3, v4, v5) → 0 [0]

And the following fresh constants:

null_lt, null_e2, null_m2, null_m4, null_e4, const, const1, const2, const3, const4, const5, const6, const7, const8, const9, const10, const11, const12, const13, const14, const15, const16, const17, const18, const19, const20, const21, const22, const23, const24, const25, const26, const27, const28, const29, const30

(8) Obligation:

Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is:

Runtime Complexity Weighted TRS with Types.
The TRS R consists of the following rules:

m2(S(0), b, res, True) → False [1]
m2(S(S(x)), b, res, True) → True [1]
m2(0, b, res, True) → False [1]
m3(S(0), b, res, t) → False [1]
m3(S(S(x)), b, res, t) → True [1]
m3(0, b, res, t) → False [1]
l8(res, y, res', True, mtmp, t) → res [1]
l5(x, y, res, tmp, mtmp, True) → 0 [1]
help1(S(0)) → False [1]
help1(S(S(x))) → True [1]
e4(a, b, res, False) → False [1]
e4(a, b, res, True) → True [1]
e2(a, b, res, False) → False [1]
l15(x, y, res, tmp, False, t) → l16(x, y, gcd(y, 0), tmp, False, t) [1]
l15(x, y, res, tmp, True, t) → l16(x, y, gcd(y, S(0)), tmp, True, t) [1]
l13(x, y, res, tmp, False, t) → l16(x, y, gcd(0, y), tmp, False, t) [1]
l13(x, y, res, tmp, True, t) → l16(x, y, gcd(S(0), y), tmp, True, t) [1]
m4(S(x'), S(x), res, t) → m5(S(x'), S(x), monus(x', x), t) [1]
m2(a, b, res, False) → m4(a, b, res, False) [1]
l8(x, y, res, False, mtmp, t) → l10(x, y, res, False, mtmp, t) [1]
l5(x, y, res, tmp, mtmp, False) → l7(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, False) → l3(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, True) → res [1]
l11(x, y, res, tmp, mtmp, False) → l14(x, y, res, tmp, mtmp, False) [1]
l11(x, y, res, tmp, mtmp, True) → l12(x, y, res, tmp, mtmp, True) [1]
help1(0) → False [1]
e2(a, b, res, True) → e3(a, b, res, True) [1]
bool2Nat(False) → 0 [1]
bool2Nat(True) → S(0) [1]
m1(a, x, res, t) → m2(a, x, res, False) [1]
l9(res, y, res', tmp, mtmp, t) → res [1]
l6(x, y, res, tmp, mtmp, t) → 0 [1]
l4(x', x, res, tmp, mtmp, t) → l5(x', x, res, tmp, mtmp, False) [1]
l1(x, y, res, tmp, mtmp, t) → l2(x, y, res, tmp, mtmp, False) [1]
e7(a, b, res, t) → False [1]
e6(a, b, res, t) → False [1]
e5(a, b, res, t) → True [1]
monus(a, b) → m1(a, b, False, False) [1]
m5(a, b, res, t) → res [1]
l7(x, y, res, tmp, mtmp, t) → l8(x, y, res, equal0(x, y), mtmp, t) [1]
l3(x, y, res, tmp, mtmp, t) → l4(x, y, 0, tmp, mtmp, t) [1]
l16(x, y, res, tmp, mtmp, t) → res [1]
l14(x, y, res, tmp, mtmp, t) → l15(x, y, res, tmp, monus(x, y), t) [1]
l12(x, y, res, tmp, mtmp, t) → l13(x, y, res, tmp, monus(x, y), t) [1]
l10(x, y, res, tmp, mtmp, t) → l11(x, y, res, tmp, mtmp, lt(x, y)) [1]
gcd(x, y) → l1(x, y, 0, False, False, False) [1]
equal0(a, b) → e1(a, b, False, False) [1]
e8(a, b, res, t) → res [1]
e3(a, b, res, t) → e4(a, b, res, lt(b, a)) [1]
e1(a, b, res, t) → e2(a, b, res, lt(a, b)) [1]
lt(S(x), S(y)) → lt(x, y) [0]
lt(0, S(y)) → True [0]
lt(x, 0) → False [0]
lt(v0, v1) → null_lt [0]
l2(v0, v1, v2, v3, v4, v5) → 0 [0]
e2(v0, v1, v2, v3) → null_e2 [0]
m2(v0, v1, v2, v3) → null_m2 [0]
m4(v0, v1, v2, v3) → null_m4 [0]
e4(v0, v1, v2, v3) → null_e4 [0]
l5(v0, v1, v2, v3, v4, v5) → 0 [0]
l8(v0, v1, v2, v3, v4, v5) → 0 [0]
l11(v0, v1, v2, v3, v4, v5) → 0 [0]
l15(v0, v1, v2, v3, v4, v5) → 0 [0]
l13(v0, v1, v2, v3, v4, v5) → 0 [0]

The TRS has the following type information:
m2 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
S :: 0:S → 0:S
0 :: 0:S
True :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
False :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
m3 :: 0:S → a → b → c → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l8 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l5 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
help1 :: 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e4 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e2 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l15 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l16 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
gcd :: 0:S → 0:S → 0:S
l13 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
m4 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
m5 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
monus :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l10 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l7 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l2 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l3 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l11 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l14 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l12 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
e3 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
bool2Nat :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
m1 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l9 :: l9 → d → e → f → g → h → l9
l6 :: i → j → k → l → m → n → 0:S
l4 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l1 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
e7 :: o → p → q → r → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e6 :: s → t → u → v → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e5 :: w → x → y → z → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
equal0 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
lt :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e1 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e8 :: za → zaa → e8 → zaaa → e8
null_lt :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_e2 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_m2 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_m4 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_e4 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
const :: a
const1 :: b
const2 :: c
const3 :: l9
const4 :: d
const5 :: e
const6 :: f
const7 :: g
const8 :: h
const9 :: i
const10 :: j
const11 :: k
const12 :: l
const13 :: m
const14 :: n
const15 :: o
const16 :: p
const17 :: q
const18 :: r
const19 :: s
const20 :: t
const21 :: u
const22 :: v
const23 :: w
const24 :: x
const25 :: y
const26 :: z
const27 :: e8
const28 :: za
const29 :: zaa
const30 :: zaaa

Rewrite Strategy: INNERMOST

(9) NarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Narrowed the inner basic terms of all right-hand sides by a single narrowing step.

(10) Obligation:

Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is:

Runtime Complexity Weighted TRS with Types.
The TRS R consists of the following rules:

m2(S(0), b, res, True) → False [1]
m2(S(S(x)), b, res, True) → True [1]
m2(0, b, res, True) → False [1]
m3(S(0), b, res, t) → False [1]
m3(S(S(x)), b, res, t) → True [1]
m3(0, b, res, t) → False [1]
l8(res, y, res', True, mtmp, t) → res [1]
l5(x, y, res, tmp, mtmp, True) → 0 [1]
help1(S(0)) → False [1]
help1(S(S(x))) → True [1]
e4(a, b, res, False) → False [1]
e4(a, b, res, True) → True [1]
e2(a, b, res, False) → False [1]
l15(x, y, res, tmp, False, t) → l16(x, y, l1(y, 0, 0, False, False, False), tmp, False, t) [2]
l15(x, y, res, tmp, True, t) → l16(x, y, l1(y, S(0), 0, False, False, False), tmp, True, t) [2]
l13(x, y, res, tmp, False, t) → l16(x, y, l1(0, y, 0, False, False, False), tmp, False, t) [2]
l13(x, y, res, tmp, True, t) → l16(x, y, l1(S(0), y, 0, False, False, False), tmp, True, t) [2]
m4(S(x'), S(x), res, t) → m5(S(x'), S(x), m1(x', x, False, False), t) [2]
m2(a, b, res, False) → m4(a, b, res, False) [1]
l8(x, y, res, False, mtmp, t) → l10(x, y, res, False, mtmp, t) [1]
l5(x, y, res, tmp, mtmp, False) → l7(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, False) → l3(x, y, res, tmp, mtmp, False) [1]
l2(x, y, res, tmp, mtmp, True) → res [1]
l11(x, y, res, tmp, mtmp, False) → l14(x, y, res, tmp, mtmp, False) [1]
l11(x, y, res, tmp, mtmp, True) → l12(x, y, res, tmp, mtmp, True) [1]
help1(0) → False [1]
e2(a, b, res, True) → e3(a, b, res, True) [1]
bool2Nat(False) → 0 [1]
bool2Nat(True) → S(0) [1]
m1(a, x, res, t) → m2(a, x, res, False) [1]
l9(res, y, res', tmp, mtmp, t) → res [1]
l6(x, y, res, tmp, mtmp, t) → 0 [1]
l4(x', x, res, tmp, mtmp, t) → l5(x', x, res, tmp, mtmp, False) [1]
l1(x, y, res, tmp, mtmp, t) → l2(x, y, res, tmp, mtmp, False) [1]
e7(a, b, res, t) → False [1]
e6(a, b, res, t) → False [1]
e5(a, b, res, t) → True [1]
monus(a, b) → m1(a, b, False, False) [1]
m5(a, b, res, t) → res [1]
l7(x, y, res, tmp, mtmp, t) → l8(x, y, res, e1(x, y, False, False), mtmp, t) [2]
l3(x, y, res, tmp, mtmp, t) → l4(x, y, 0, tmp, mtmp, t) [1]
l16(x, y, res, tmp, mtmp, t) → res [1]
l14(x, y, res, tmp, mtmp, t) → l15(x, y, res, tmp, m1(x, y, False, False), t) [2]
l12(x, y, res, tmp, mtmp, t) → l13(x, y, res, tmp, m1(x, y, False, False), t) [2]
l10(S(x''), S(y'), res, tmp, mtmp, t) → l11(S(x''), S(y'), res, tmp, mtmp, lt(x'', y')) [1]
l10(0, S(y''), res, tmp, mtmp, t) → l11(0, S(y''), res, tmp, mtmp, True) [1]
l10(x, 0, res, tmp, mtmp, t) → l11(x, 0, res, tmp, mtmp, False) [1]
l10(x, y, res, tmp, mtmp, t) → l11(x, y, res, tmp, mtmp, null_lt) [1]
gcd(x, y) → l1(x, y, 0, False, False, False) [1]
equal0(a, b) → e1(a, b, False, False) [1]
e8(a, b, res, t) → res [1]
e3(S(y1), S(x1), res, t) → e4(S(y1), S(x1), res, lt(x1, y1)) [1]
e3(S(y2), 0, res, t) → e4(S(y2), 0, res, True) [1]
e3(0, b, res, t) → e4(0, b, res, False) [1]
e3(a, b, res, t) → e4(a, b, res, null_lt) [1]
e1(S(x2), S(y3), res, t) → e2(S(x2), S(y3), res, lt(x2, y3)) [1]
e1(0, S(y4), res, t) → e2(0, S(y4), res, True) [1]
e1(a, 0, res, t) → e2(a, 0, res, False) [1]
e1(a, b, res, t) → e2(a, b, res, null_lt) [1]
lt(S(x), S(y)) → lt(x, y) [0]
lt(0, S(y)) → True [0]
lt(x, 0) → False [0]
lt(v0, v1) → null_lt [0]
l2(v0, v1, v2, v3, v4, v5) → 0 [0]
e2(v0, v1, v2, v3) → null_e2 [0]
m2(v0, v1, v2, v3) → null_m2 [0]
m4(v0, v1, v2, v3) → null_m4 [0]
e4(v0, v1, v2, v3) → null_e4 [0]
l5(v0, v1, v2, v3, v4, v5) → 0 [0]
l8(v0, v1, v2, v3, v4, v5) → 0 [0]
l11(v0, v1, v2, v3, v4, v5) → 0 [0]
l15(v0, v1, v2, v3, v4, v5) → 0 [0]
l13(v0, v1, v2, v3, v4, v5) → 0 [0]

The TRS has the following type information:
m2 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
S :: 0:S → 0:S
0 :: 0:S
True :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
False :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
m3 :: 0:S → a → b → c → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l8 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l5 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
help1 :: 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e4 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e2 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l15 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l16 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
gcd :: 0:S → 0:S → 0:S
l13 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
m4 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
m5 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
monus :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l10 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l7 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l2 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l3 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l11 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l14 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l12 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
e3 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
bool2Nat :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
m1 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
l9 :: l9 → d → e → f → g → h → l9
l6 :: i → j → k → l → m → n → 0:S
l4 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
l1 :: 0:S → 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → 0:S
e7 :: o → p → q → r → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e6 :: s → t → u → v → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e5 :: w → x → y → z → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
equal0 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
lt :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e1 :: 0:S → 0:S → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4 → True:False:null_lt:null_e2:null_m2:null_m4:null_e4
e8 :: za → zaa → e8 → zaaa → e8
null_lt :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_e2 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_m2 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_m4 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
null_e4 :: True:False:null_lt:null_e2:null_m2:null_m4:null_e4
const :: a
const1 :: b
const2 :: c
const3 :: l9
const4 :: d
const5 :: e
const6 :: f
const7 :: g
const8 :: h
const9 :: i
const10 :: j
const11 :: k
const12 :: l
const13 :: m
const14 :: n
const15 :: o
const16 :: p
const17 :: q
const18 :: r
const19 :: s
const20 :: t
const21 :: u
const22 :: v
const23 :: w
const24 :: x
const25 :: y
const26 :: z
const27 :: e8
const28 :: za
const29 :: zaa
const30 :: zaaa

Rewrite Strategy: INNERMOST

(11) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID) transformation)

Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction.
The constant constructors are abstracted as follows:

0 => 0
True => 2
False => 1
null_lt => 0
null_e2 => 0
null_m2 => 0
null_m4 => 0
null_e4 => 0
const => 0
const1 => 0
const2 => 0
const3 => 0
const4 => 0
const5 => 0
const6 => 0
const7 => 0
const8 => 0
const9 => 0
const10 => 0
const11 => 0
const12 => 0
const13 => 0
const14 => 0
const15 => 0
const16 => 0
const17 => 0
const18 => 0
const19 => 0
const20 => 0
const21 => 0
const22 => 0
const23 => 0
const24 => 0
const25 => 0
const26 => 0
const27 => 0
const28 => 0
const29 => 0
const30 => 0

(12) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(a, b, res, 0) :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(a, 0, res, 1) :|: z = a, a >= 0, z'' = res, z1 = t, t >= 0, res >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + y4, res, 2) :|: z'' = res, z1 = t, t >= 0, z' = 1 + y4, res >= 0, y4 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + x2, 1 + y3, res, lt(x2, y3)) :|: z'' = res, z1 = t, z = 1 + x2, y3 >= 0, t >= 0, z' = 1 + y3, res >= 0, x2 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(a, b, res, 2) :|: z = a, b >= 0, z1 = 2, a >= 0, z'' = res, z' = b, res >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(a, b, res, 0) :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(0, b, res, 1) :|: b >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0, z = 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + y1, 1 + x1, res, lt(x1, y1)) :|: z = 1 + y1, y1 >= 0, x1 >= 0, z'' = res, z1 = t, t >= 0, res >= 0, z' = 1 + x1
e3(z, z', z'', z1) -{ 1 }→ e4(1 + y2, 0, res, 2) :|: z'' = res, z = 1 + y2, z1 = t, t >= 0, res >= 0, y2 >= 0, z' = 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z = a, b >= 0, z1 = 2, a >= 0, z'' = res, z' = b, res >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e8(z, z', z'', z1) -{ 1 }→ res :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
equal0(z, z') -{ 1 }→ e1(a, b, 1, 1) :|: z = a, b >= 0, a >= 0, z' = b
gcd(z, z') -{ 1 }→ l1(x, y, 0, 1, 1, 1) :|: x >= 0, y >= 0, z = x, z' = y
help1(z) -{ 1 }→ 2 :|: x >= 0, z = 1 + (1 + x)
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(x, y, res, tmp, mtmp, 0) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(x, 0, res, tmp, mtmp, 1) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z1 = tmp, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + y'', res, tmp, mtmp, 2) :|: mtmp >= 0, z' = 1 + y'', z3 = t, z2 = mtmp, z'' = res, y'' >= 0, t >= 0, res >= 0, tmp >= 0, z = 0, z1 = tmp
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + x'', 1 + y', res, tmp, mtmp, lt(x'', y')) :|: z = 1 + x'', mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, y' >= 0, t >= 0, res >= 0, tmp >= 0, z' = 1 + y', x'' >= 0, z1 = tmp
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, z3 = 1, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(x, y, res, tmp, mtmp, 2) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(x, y, res, tmp, m1(x, y, 1, 1), t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(0, y, 0, 1, 1, 1), tmp, 1, t) :|: z3 = t, z2 = 1, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(1 + 0, y, 0, 1, 1, 1), tmp, 2, t) :|: z2 = 2, z3 = t, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(x, y, res, tmp, m1(x, y, 1, 1), t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(y, 0, 0, 1, 1, 1), tmp, 1, t) :|: z3 = t, z2 = 1, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(y, 1 + 0, 0, 1, 1, 1), tmp, 2, t) :|: z2 = 2, z3 = t, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l2(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, z3 = 1, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(x, y, 0, tmp, mtmp, t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(x', x, res, tmp, mtmp, 1) :|: mtmp >= 0, z3 = t, z' = x, z2 = mtmp, z'' = res, x' >= 0, x >= 0, t >= 0, res >= 0, tmp >= 0, z1 = tmp, z = x'
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, z3 = 1, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(x, y, res, e1(x, y, 1, 1), mtmp, t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l8(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z'' = res', z1 = 2, z2 = mtmp, y >= 0, t >= 0, z = res, res >= 0, z' = y, res' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(x, y, res, 1, mtmp, t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, z1 = 1, t >= 0, res >= 0, z = x, z' = y
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z'' = res', z2 = mtmp, y >= 0, t >= 0, z = res, res >= 0, tmp >= 0, z' = y, z1 = tmp, res' >= 0
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
m1(z, z', z'', z1) -{ 1 }→ m2(a, x, res, 1) :|: z = a, z' = x, a >= 0, z'' = res, x >= 0, z1 = t, t >= 0, res >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(a, b, res, 1) :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: b >= 0, z1 = 2, z'' = res, x >= 0, z' = b, res >= 0, z = 1 + (1 + x)
m2(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z1 = 2, z = 1 + 0, z'' = res, z' = b, res >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z1 = 2, z'' = res, z' = b, res >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: b >= 0, z'' = res, x >= 0, z1 = t, z' = b, t >= 0, res >= 0, z = 1 + (1 + x)
m3(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z = 1 + 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + x', 1 + x, m1(x', x, 1, 1), t) :|: z = 1 + x', z' = 1 + x, z'' = res, x' >= 0, x >= 0, z1 = t, t >= 0, res >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
m5(z, z', z'', z1) -{ 1 }→ res :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
monus(z, z') -{ 1 }→ m1(a, b, 1, 1) :|: z = a, b >= 0, a >= 0, z' = b

(13) InliningProof (UPPER BOUND(ID) transformation)

Inlined the following terminating rules on right-hand sides where appropriate:

e4(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z = a, b >= 0, z1 = 2, a >= 0, z'' = res, z' = b, res >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
m5(z, z', z'', z1) -{ 1 }→ res :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp

(14) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(a, b, res, 0) :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(a, 0, res, 1) :|: z = a, a >= 0, z'' = res, z1 = t, t >= 0, res >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + y4, res, 2) :|: z'' = res, z1 = t, t >= 0, z' = 1 + y4, res >= 0, y4 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + x2, 1 + y3, res, lt(x2, y3)) :|: z'' = res, z1 = t, z = 1 + x2, y3 >= 0, t >= 0, z' = 1 + y3, res >= 0, x2 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(a, b, res, 2) :|: z = a, b >= 0, z1 = 2, a >= 0, z'' = res, z' = b, res >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + y1, 1 + x1, res, lt(x1, y1)) :|: z = 1 + y1, y1 >= 0, x1 >= 0, z'' = res, z1 = t, t >= 0, res >= 0, z' = 1 + x1
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z'' = res, z = 1 + y2, z1 = t, t >= 0, res >= 0, y2 >= 0, z' = 0, 1 + y2 = a, b >= 0, 2 = 2, a >= 0, res = res', 0 = b, res' >= 0
e3(z, z', z'', z1) -{ 2 }→ 1 :|: b >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0, z = 0, 0 = a, b' >= 0, a >= 0, res = res', 1 = 1, b = b', res' >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z'' = res, z = 1 + y2, z1 = t, t >= 0, res >= 0, y2 >= 0, z' = 0, 2 = v3, v0 >= 0, res = v2, v1 >= 0, 1 + y2 = v0, 0 = v1, v2 >= 0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: b >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0, z = 0, 1 = v3, v0 >= 0, res = v2, v1 >= 0, 0 = v0, b = v1, v2 >= 0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0, 0 = v3, v0 >= 0, res = v2, v1 >= 0, a = v0, b = v1, v2 >= 0, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z = a, b >= 0, z1 = 2, a >= 0, z'' = res, z' = b, res >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
e8(z, z', z'', z1) -{ 1 }→ res :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
equal0(z, z') -{ 1 }→ e1(a, b, 1, 1) :|: z = a, b >= 0, a >= 0, z' = b
gcd(z, z') -{ 1 }→ l1(x, y, 0, 1, 1, 1) :|: x >= 0, y >= 0, z = x, z' = y
help1(z) -{ 1 }→ 2 :|: x >= 0, z = 1 + (1 + x)
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(x, y, res, tmp, mtmp, 0) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(x, 0, res, tmp, mtmp, 1) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z1 = tmp, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + y'', res, tmp, mtmp, 2) :|: mtmp >= 0, z' = 1 + y'', z3 = t, z2 = mtmp, z'' = res, y'' >= 0, t >= 0, res >= 0, tmp >= 0, z = 0, z1 = tmp
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + x'', 1 + y', res, tmp, mtmp, lt(x'', y')) :|: z = 1 + x'', mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, y' >= 0, t >= 0, res >= 0, tmp >= 0, z' = 1 + y', x'' >= 0, z1 = tmp
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, z3 = 1, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(x, y, res, tmp, mtmp, 2) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(x, y, res, tmp, m1(x, y, 1, 1), t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(0, y, 0, 1, 1, 1), tmp, 1, t) :|: z3 = t, z2 = 1, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(1 + 0, y, 0, 1, 1, 1), tmp, 2, t) :|: z2 = 2, z3 = t, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(x, y, res, tmp, m1(x, y, 1, 1), t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(y, 0, 0, 1, 1, 1), tmp, 1, t) :|: z3 = t, z2 = 1, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(x, y, l1(y, 1 + 0, 0, 1, 1, 1), tmp, 2, t) :|: z2 = 2, z3 = t, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l2(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, z3 = 1, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(x, y, 0, tmp, mtmp, t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(x', x, res, tmp, mtmp, 1) :|: mtmp >= 0, z3 = t, z' = x, z2 = mtmp, z'' = res, x' >= 0, x >= 0, t >= 0, res >= 0, tmp >= 0, z1 = tmp, z = x'
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(x, y, res, tmp, mtmp, 1) :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, z3 = 1, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: mtmp >= 0, z2 = mtmp, z'' = res, x >= 0, y >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(x, y, res, e1(x, y, 1, 1), mtmp, t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, t >= 0, res >= 0, tmp >= 0, z = x, z' = y, z1 = tmp
l8(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z'' = res', z1 = 2, z2 = mtmp, y >= 0, t >= 0, z = res, res >= 0, z' = y, res' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(x, y, res, 1, mtmp, t) :|: mtmp >= 0, z3 = t, z2 = mtmp, z'' = res, x >= 0, y >= 0, z1 = 1, t >= 0, res >= 0, z = x, z' = y
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ res :|: mtmp >= 0, z3 = t, z'' = res', z2 = mtmp, y >= 0, t >= 0, z = res, res >= 0, tmp >= 0, z' = y, z1 = tmp, res' >= 0
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
m1(z, z', z'', z1) -{ 1 }→ m2(a, x, res, 1) :|: z = a, z' = x, a >= 0, z'' = res, x >= 0, z1 = t, t >= 0, res >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(a, b, res, 1) :|: z = a, b >= 0, a >= 0, z'' = res, z1 = 1, z' = b, res >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: b >= 0, z1 = 2, z'' = res, x >= 0, z' = b, res >= 0, z = 1 + (1 + x)
m2(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z1 = 2, z = 1 + 0, z'' = res, z' = b, res >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z1 = 2, z'' = res, z' = b, res >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: b >= 0, z'' = res, x >= 0, z1 = t, z' = b, t >= 0, res >= 0, z = 1 + (1 + x)
m3(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z = 1 + 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: b >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + x', 1 + x, m1(x', x, 1, 1), t) :|: z = 1 + x', z' = 1 + x, z'' = res, x' >= 0, x >= 0, z1 = t, t >= 0, res >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0
m5(z, z', z'', z1) -{ 1 }→ res :|: z = a, b >= 0, a >= 0, z'' = res, z1 = t, z' = b, t >= 0, res >= 0
monus(z, z') -{ 1 }→ m1(a, b, 1, 1) :|: z = a, b >= 0, a >= 0, z' = b

(15) SimplificationProof (BOTH BOUNDS(ID, ID) transformation)

Simplified the RNTS by moving equalities from the constraints into the right-hand sides.

(16) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

(17) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID) transformation)

Found the following analysis order by SCC decomposition:

{ e4 }
{ l16 }
{ e5 }
{ e8 }
{ m5 }
{ l6 }
{ bool2Nat }
{ l9 }
{ e6 }
{ lt }
{ m3 }
{ e7 }
{ help1 }
{ e3 }
{ m1, m4, m2 }
{ e2 }
{ monus }
{ e1 }
{ equal0 }
{ l5, l7, l11, l1, l3, l13, l2, l14, l4, l10, l8, l15, l12 }
{ gcd }

(18) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e4}, {l16}, {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}

(19) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e4
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(20) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e4}, {l16}, {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: ?, size: O(1) [2]

(21) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e4
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(22) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l16}, {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]

(23) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(24) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l16}, {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]

(25) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: l16
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z''

(26) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l16}, {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: ?, size: O(n1) [z'']

(27) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: l16
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(28) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']

(29) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(30) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']

(31) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e5
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(32) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e5}, {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: ?, size: O(1) [2]

(33) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e5
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(34) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]

(35) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(36) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]

(37) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e8
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z''

(38) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e8}, {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: ?, size: O(n1) [z'']

(39) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e8
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(40) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']

(41) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(42) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']

(43) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: m5
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z''

(44) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m5}, {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: ?, size: O(n1) [z'']

(45) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: m5
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(46) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']

(47) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(48) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']

(49) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: l6
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

(50) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l6}, {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: ?, size: O(1) [0]

(51) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: l6
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(52) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]

(53) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(54) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]

(55) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: bool2Nat
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(56) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {bool2Nat}, {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: ?, size: O(1) [1]

(57) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: bool2Nat
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(58) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]

(59) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(60) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]

(61) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: l9
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

(62) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {l9}, {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: ?, size: O(n1) [z]

(63) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: l9
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(64) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]

(65) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(66) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]

(67) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e6
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(68) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e6}, {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: ?, size: O(1) [1]

(69) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e6
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(70) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]

(71) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(72) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]

(73) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: lt
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(74) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {lt}, {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: ?, size: O(1) [2]

(75) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: lt
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

(76) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', lt(z - 1, z' - 1)) :|: z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 1 }→ e4(1 + (z - 1), 1 + (z' - 1), z'', lt(z' - 1, z - 1)) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, lt(z - 1, z' - 1)) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]

(77) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(78) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]

(79) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: m3
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(80) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m3}, {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: ?, size: O(1) [2]

(81) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: m3
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(82) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]

(83) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(84) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]

(85) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e7
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(86) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e7}, {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: ?, size: O(1) [1]

(87) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e7
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(88) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]

(89) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(90) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]

(91) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: help1
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(92) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {help1}, {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: ?, size: O(1) [2]

(93) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: help1
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(94) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]

(95) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(96) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]

(97) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e3
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(98) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e3}, {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: ?, size: O(1) [2]

(99) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e3
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(100) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 1 }→ e3(z, z', z'', 2) :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]

(101) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(102) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]

(103) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: m1
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

Computed SIZE bound using CoFloCo for: m4
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

Computed SIZE bound using CoFloCo for: m2
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(104) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {m1,m4,m2}, {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: ?, size: O(1) [0]
m4: runtime: ?, size: O(1) [0]
m2: runtime: ?, size: O(1) [2]

(105) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: m1
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 2 + 5·z'

Computed RUNTIME bound using CoFloCo for: m4
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 5·z'

Computed RUNTIME bound using CoFloCo for: m2
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 1 + 5·z'

(106) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 2 }→ l13(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 2 }→ l15(z, z', z'', z1, m1(z, z', 1, 1), z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 1 }→ m2(z, z', z'', 1) :|: z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ m4(z, z', z'', 1) :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 2 }→ m5(1 + (z - 1), 1 + (z' - 1), m1(z - 1, z' - 1, 1, 1), z1) :|: z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 1 }→ m1(z, z', 1, 1) :|: z' >= 0, z >= 0

Function symbols to be analyzed: {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]

(107) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(108) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]

(109) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e2
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(110) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {e2}, {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: ?, size: O(1) [2]

(111) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e2
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 3

(112) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 1 }→ e2(z, z', z'', 0) :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e1(z, z', z'', z1) -{ 1 }→ e2(z, 0, z'', 1) :|: z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 1 }→ e2(0, 1 + (z' - 1), z'', 2) :|: z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 1 }→ e2(1 + (z - 1), 1 + (z' - 1), z'', s') :|: s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]

(113) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(114) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]

(115) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: monus
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

(116) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {monus}, {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: ?, size: O(1) [0]

(117) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: monus
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 3 + 5·z'

(118) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]

(119) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(120) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]

(121) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: e1
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(122) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {e1}, {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: ?, size: O(1) [2]

(123) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: e1
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 4

(124) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 1 }→ e1(z, z', 1, 1) :|: z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 2 }→ l8(z, z', z'', e1(z, z', 1, 1), z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]

(125) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(126) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 6 }→ l8(z, z', z'', s15, z2, z3) :|: s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]

(127) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: equal0
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 2

(128) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 6 }→ l8(z, z', z'', s15, z2, z3) :|: s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {equal0}, {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: ?, size: O(1) [2]

(129) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: equal0
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 5

(130) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 6 }→ l8(z, z', z'', s15, z2, z3) :|: s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]

(131) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(132) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 6 }→ l8(z, z', z'', s15, z2, z3) :|: s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]

(133) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: l5
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

Computed SIZE bound using CoFloCo for: l7
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

Computed SIZE bound using CoFloCo for: l11
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

Computed SIZE bound using CoFloCo for: l1
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

Computed SIZE bound using CoFloCo for: l3
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

Computed SIZE bound using CoFloCo for: l13
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

Computed SIZE bound using CoFloCo for: l2
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z + z''

Computed SIZE bound using CoFloCo for: l14
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

Computed SIZE bound using CoFloCo for: l4
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

Computed SIZE bound using CoFloCo for: l10
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 0

Computed SIZE bound using CoFloCo for: l8
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

Computed SIZE bound using CoFloCo for: l15
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z'

Computed SIZE bound using CoFloCo for: l12
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(134) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 6 }→ l8(z, z', z'', s15, z2, z3) :|: s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {l5,l7,l11,l1,l3,l13,l2,l14,l4,l10,l8,l15,l12}, {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]
l5: runtime: ?, size: O(n1) [z]
l7: runtime: ?, size: O(n1) [z]
l11: runtime: ?, size: O(1) [0]
l1: runtime: ?, size: O(n1) [z]
l3: runtime: ?, size: O(n1) [z]
l13: runtime: ?, size: O(1) [1]
l2: runtime: ?, size: O(n1) [z + z'']
l14: runtime: ?, size: O(1) [0]
l4: runtime: ?, size: O(n1) [z]
l10: runtime: ?, size: O(1) [0]
l8: runtime: ?, size: O(n1) [z]
l15: runtime: ?, size: O(n1) [z']
l12: runtime: ?, size: O(1) [1]

(135) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: l5
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 14 + 5·z'

Computed RUNTIME bound using CoFloCo for: l7
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 13 + 5·z'

Computed RUNTIME bound using CoFloCo for: l11
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 5 + 5·z'

Computed RUNTIME bound using CoFloCo for: l1
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 18 + 5·z'

Computed RUNTIME bound using CoFloCo for: l3
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 16 + 5·z'

Computed RUNTIME bound using CoFloCo for: l13
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 21 + 5·z'

Computed RUNTIME bound using CoFloCo for: l2
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 17 + 5·z'

Computed RUNTIME bound using CoFloCo for: l14
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 4 + 5·z'

Computed RUNTIME bound using CoFloCo for: l4
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 15 + 5·z'

Computed RUNTIME bound using CoFloCo for: l10
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 6 + 5·z'

Computed RUNTIME bound using CoFloCo for: l8
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 7 + 5·z'

Computed RUNTIME bound using CoFloCo for: l15
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 26

Computed RUNTIME bound using CoFloCo for: l12
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 25 + 10·z'

(136) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 1 }→ l1(z, z', 0, 1, 1, 1) :|: z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 1 }→ l2(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, z', z'', z1, z2, 0) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(z, 0, z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(0, 1 + (z' - 1), z'', z1, z2, 2) :|: z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 1 }→ l11(1 + (z - 1), 1 + (z' - 1), z'', z1, z2, s) :|: s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l14(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 1 }→ l12(z, z', z'', z1, z2, 2) :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l13(z, z', z'', z1, s8, z3) :|: s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(0, z', 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(1 + 0, z', 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 4 + 5·z' }→ l15(z, z', z'', z1, s7, z3) :|: s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 0, 0, 1, 1, 1), z1, 1, z3) :|: z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 2 }→ l16(z, z', l1(z', 1 + 0, 0, 1, 1, 1), z1, 2, z3) :|: z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 1 }→ l3(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 1 }→ l4(z, z', 0, z1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 1 }→ l5(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ l7(z, z', z'', z1, z2, 1) :|: z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 6 }→ l8(z, z', z'', s15, z2, z3) :|: s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ l10(z, z', z'', 1, z2, z3) :|: z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]
l5: runtime: O(n1) [14 + 5·z'], size: O(n1) [z]
l7: runtime: O(n1) [13 + 5·z'], size: O(n1) [z]
l11: runtime: O(n1) [5 + 5·z'], size: O(1) [0]
l1: runtime: O(n1) [18 + 5·z'], size: O(n1) [z]
l3: runtime: O(n1) [16 + 5·z'], size: O(n1) [z]
l13: runtime: O(n1) [21 + 5·z'], size: O(1) [1]
l2: runtime: O(n1) [17 + 5·z'], size: O(n1) [z + z'']
l14: runtime: O(n1) [4 + 5·z'], size: O(1) [0]
l4: runtime: O(n1) [15 + 5·z'], size: O(n1) [z]
l10: runtime: O(n1) [6 + 5·z'], size: O(1) [0]
l8: runtime: O(n1) [7 + 5·z'], size: O(n1) [z]
l15: runtime: O(1) [26], size: O(n1) [z']
l12: runtime: O(n1) [25 + 10·z'], size: O(1) [1]

(137) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(138) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 19 + 5·z' }→ s32 :|: s32 >= 0, s32 <= 1 * z, z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 18 + 5·z' }→ s23 :|: s23 >= 0, s23 <= 1 * z'' + 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s28 :|: s28 >= 0, s28 <= 0, s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s29 :|: s29 >= 0, s29 <= 0, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 6 }→ s30 :|: s30 >= 0, s30 <= 0, z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s31 :|: s31 >= 0, s31 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 5 + 5·z' }→ s20 :|: s20 >= 0, s20 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 26 + 10·z' }→ s21 :|: s21 >= 0, s21 <= 1, z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 25 + 10·z' }→ s27 :|: s27 >= 0, s27 <= 1, s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 21 + 5·z' }→ s38 :|: s37 >= 0, s37 <= 1 * 0, s38 >= 0, s38 <= 1 * s37, z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 21 + 5·z' }→ s40 :|: s39 >= 0, s39 <= 1 * (1 + 0), s40 >= 0, s40 <= 1 * s39, z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 30 + 5·z' }→ s26 :|: s26 >= 0, s26 <= 1 * z', s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 21 }→ s34 :|: s33 >= 0, s33 <= 1 * z', s34 >= 0, s34 <= 1 * s33, z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 26 }→ s36 :|: s35 >= 0, s35 <= 1 * z', s36 >= 0, s36 <= 1 * s35, z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 17 + 5·z' }→ s19 :|: s19 >= 0, s19 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 16 + 5·z' }→ s25 :|: s25 >= 0, s25 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 15 + 5·z' }→ s22 :|: s22 >= 0, s22 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 14 + 5·z' }→ s18 :|: s18 >= 0, s18 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 13 + 5·z' }→ s24 :|: s24 >= 0, s24 <= 1 * z, s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 7 + 5·z' }→ s17 :|: s17 >= 0, s17 <= 0, z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]
l5: runtime: O(n1) [14 + 5·z'], size: O(n1) [z]
l7: runtime: O(n1) [13 + 5·z'], size: O(n1) [z]
l11: runtime: O(n1) [5 + 5·z'], size: O(1) [0]
l1: runtime: O(n1) [18 + 5·z'], size: O(n1) [z]
l3: runtime: O(n1) [16 + 5·z'], size: O(n1) [z]
l13: runtime: O(n1) [21 + 5·z'], size: O(1) [1]
l2: runtime: O(n1) [17 + 5·z'], size: O(n1) [z + z'']
l14: runtime: O(n1) [4 + 5·z'], size: O(1) [0]
l4: runtime: O(n1) [15 + 5·z'], size: O(n1) [z]
l10: runtime: O(n1) [6 + 5·z'], size: O(1) [0]
l8: runtime: O(n1) [7 + 5·z'], size: O(n1) [z]
l15: runtime: O(1) [26], size: O(n1) [z']
l12: runtime: O(n1) [25 + 10·z'], size: O(1) [1]

(139) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: gcd
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

(140) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 19 + 5·z' }→ s32 :|: s32 >= 0, s32 <= 1 * z, z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 18 + 5·z' }→ s23 :|: s23 >= 0, s23 <= 1 * z'' + 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s28 :|: s28 >= 0, s28 <= 0, s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s29 :|: s29 >= 0, s29 <= 0, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 6 }→ s30 :|: s30 >= 0, s30 <= 0, z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s31 :|: s31 >= 0, s31 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 5 + 5·z' }→ s20 :|: s20 >= 0, s20 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 26 + 10·z' }→ s21 :|: s21 >= 0, s21 <= 1, z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 25 + 10·z' }→ s27 :|: s27 >= 0, s27 <= 1, s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 21 + 5·z' }→ s38 :|: s37 >= 0, s37 <= 1 * 0, s38 >= 0, s38 <= 1 * s37, z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 21 + 5·z' }→ s40 :|: s39 >= 0, s39 <= 1 * (1 + 0), s40 >= 0, s40 <= 1 * s39, z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 30 + 5·z' }→ s26 :|: s26 >= 0, s26 <= 1 * z', s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 21 }→ s34 :|: s33 >= 0, s33 <= 1 * z', s34 >= 0, s34 <= 1 * s33, z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 26 }→ s36 :|: s35 >= 0, s35 <= 1 * z', s36 >= 0, s36 <= 1 * s35, z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 17 + 5·z' }→ s19 :|: s19 >= 0, s19 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 16 + 5·z' }→ s25 :|: s25 >= 0, s25 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 15 + 5·z' }→ s22 :|: s22 >= 0, s22 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 14 + 5·z' }→ s18 :|: s18 >= 0, s18 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 13 + 5·z' }→ s24 :|: s24 >= 0, s24 <= 1 * z, s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 7 + 5·z' }→ s17 :|: s17 >= 0, s17 <= 0, z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed: {gcd}
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]
l5: runtime: O(n1) [14 + 5·z'], size: O(n1) [z]
l7: runtime: O(n1) [13 + 5·z'], size: O(n1) [z]
l11: runtime: O(n1) [5 + 5·z'], size: O(1) [0]
l1: runtime: O(n1) [18 + 5·z'], size: O(n1) [z]
l3: runtime: O(n1) [16 + 5·z'], size: O(n1) [z]
l13: runtime: O(n1) [21 + 5·z'], size: O(1) [1]
l2: runtime: O(n1) [17 + 5·z'], size: O(n1) [z + z'']
l14: runtime: O(n1) [4 + 5·z'], size: O(1) [0]
l4: runtime: O(n1) [15 + 5·z'], size: O(n1) [z]
l10: runtime: O(n1) [6 + 5·z'], size: O(1) [0]
l8: runtime: O(n1) [7 + 5·z'], size: O(n1) [z]
l15: runtime: O(1) [26], size: O(n1) [z']
l12: runtime: O(n1) [25 + 10·z'], size: O(1) [1]
gcd: runtime: ?, size: O(n1) [z]

(141) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: gcd
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 19 + 5·z'

(142) Obligation:

Complexity RNTS consisting of the following rules:

bool2Nat(z) -{ 1 }→ 0 :|: z = 1
bool2Nat(z) -{ 1 }→ 1 + 0 :|: z = 2
e1(z, z', z'', z1) -{ 4 }→ s11 :|: s11 >= 0, s11 <= 2, s' >= 0, s' <= 2, z' - 1 >= 0, z1 >= 0, z'' >= 0, z - 1 >= 0
e1(z, z', z'', z1) -{ 4 }→ s12 :|: s12 >= 0, s12 <= 2, z1 >= 0, z'' >= 0, z' - 1 >= 0, z = 0
e1(z, z', z'', z1) -{ 4 }→ s13 :|: s13 >= 0, s13 <= 2, z >= 0, z1 >= 0, z'' >= 0, z' = 0
e1(z, z', z'', z1) -{ 4 }→ s14 :|: s14 >= 0, s14 <= 2, z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 3 }→ s3 :|: s3 >= 0, s3 <= 2, z' >= 0, z1 = 2, z >= 0, z'' >= 0
e2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e3(z, z', z'', z1) -{ 2 }→ s2 :|: s1 >= 0, s1 <= 2, s2 >= 0, s2 <= 2, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
e3(z, z', z'', z1) -{ 2 }→ 2 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 1 + (z - 1) = a, b >= 0, 2 = 2, a >= 0, 0 = b
e3(z, z', z'', z1) -{ 2 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 0 = a, a >= 0, 1 = 1
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z1 >= 0, z'' >= 0, z - 1 >= 0, z' = 0, 2 = v3, v0 >= 0, v1 >= 0, 1 + (z - 1) = v0, 0 = v1, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0, 1 = v3, v0 >= 0, 0 = v0, v3 >= 0
e3(z, z', z'', z1) -{ 1 }→ 0 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0, 0 = v3, v3 >= 0
e4(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z >= 0, z'' >= 0
e4(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 = 1, z'' >= 0
e4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
e5(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e6(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e7(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
e8(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
equal0(z, z') -{ 5 }→ s16 :|: s16 >= 0, s16 <= 2, z' >= 0, z >= 0
gcd(z, z') -{ 19 + 5·z' }→ s32 :|: s32 >= 0, s32 <= 1 * z, z >= 0, z' >= 0
help1(z) -{ 1 }→ 2 :|: z - 2 >= 0
help1(z) -{ 1 }→ 1 :|: z = 1 + 0
help1(z) -{ 1 }→ 1 :|: z = 0
l1(z, z', z'', z1, z2, z3) -{ 18 + 5·z' }→ s23 :|: s23 >= 0, s23 <= 1 * z'' + 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s28 :|: s28 >= 0, s28 <= 0, s >= 0, s <= 2, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z - 1 >= 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s29 :|: s29 >= 0, s29 <= 0, z2 >= 0, z' - 1 >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z = 0
l10(z, z', z'', z1, z2, z3) -{ 6 }→ s30 :|: s30 >= 0, s30 <= 0, z2 >= 0, z >= 0, z3 >= 0, z'' >= 0, z1 >= 0, z' = 0
l10(z, z', z'', z1, z2, z3) -{ 6 + 5·z' }→ s31 :|: s31 >= 0, s31 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 5 + 5·z' }→ s20 :|: s20 >= 0, s20 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l11(z, z', z'', z1, z2, z3) -{ 26 + 10·z' }→ s21 :|: s21 >= 0, s21 <= 1, z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l11(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l12(z, z', z'', z1, z2, z3) -{ 25 + 10·z' }→ s27 :|: s27 >= 0, s27 <= 1, s8 >= 0, s8 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 21 + 5·z' }→ s38 :|: s37 >= 0, s37 <= 1 * 0, s38 >= 0, s38 <= 1 * s37, z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 21 + 5·z' }→ s40 :|: s39 >= 0, s39 <= 1 * (1 + 0), s40 >= 0, s40 <= 1 * s39, z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l13(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l14(z, z', z'', z1, z2, z3) -{ 30 + 5·z' }→ s26 :|: s26 >= 0, s26 <= 1 * z', s7 >= 0, s7 <= 0, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 21 }→ s34 :|: s33 >= 0, s33 <= 1 * z', s34 >= 0, s34 <= 1 * s33, z2 = 1, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 26 }→ s36 :|: s35 >= 0, s35 <= 1 * z', s36 >= 0, s36 <= 1 * s35, z2 = 2, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l15(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l16(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 17 + 5·z' }→ s19 :|: s19 >= 0, s19 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l2(z, z', z'', z1, z2, z3) -{ 1 }→ z'' :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l2(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l3(z, z', z'', z1, z2, z3) -{ 16 + 5·z' }→ s25 :|: s25 >= 0, s25 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l4(z, z', z'', z1, z2, z3) -{ 15 + 5·z' }→ s22 :|: s22 >= 0, s22 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 14 + 5·z' }→ s18 :|: s18 >= 0, s18 <= 1 * z, z2 >= 0, z >= 0, z' >= 0, z3 = 1, z'' >= 0, z1 >= 0
l5(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z'' >= 0, z1 >= 0, z3 = 2
l5(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l6(z, z', z'', z1, z2, z3) -{ 1 }→ 0 :|: z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l7(z, z', z'', z1, z2, z3) -{ 13 + 5·z' }→ s24 :|: s24 >= 0, s24 <= 1 * z, s15 >= 0, s15 <= 2, z2 >= 0, z >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l8(z, z', z'', z1, z2, z3) -{ 7 + 5·z' }→ s17 :|: s17 >= 0, s17 <= 0, z2 >= 0, z >= 0, z' >= 0, z1 = 1, z3 >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z1 = 2, z' >= 0, z3 >= 0, z >= 0, z'' >= 0
l8(z, z', z'', z1, z2, z3) -{ 0 }→ 0 :|: z >= 0, z2 >= 0, z' >= 0, z3 >= 0, z'' >= 0, z1 >= 0
l9(z, z', z'', z1, z2, z3) -{ 1 }→ z :|: z2 >= 0, z' >= 0, z3 >= 0, z >= 0, z1 >= 0, 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
m1(z, z', z'', z1) -{ 2 + 5·z' }→ s5 :|: s5 >= 0, s5 <= 2, z >= 0, z' >= 0, z1 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 + 5·z' }→ s4 :|: s4 >= 0, s4 <= 0, z' >= 0, z >= 0, z1 = 1, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z1 = 2, z - 2 >= 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z = 1 + 0, z'' >= 0
m2(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 = 2, z'' >= 0, z = 0
m2(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m3(z, z', z'', z1) -{ 1 }→ 2 :|: z' >= 0, z - 2 >= 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z = 1 + 0, z1 >= 0, z'' >= 0
m3(z, z', z'', z1) -{ 1 }→ 1 :|: z' >= 0, z1 >= 0, z'' >= 0, z = 0
m4(z, z', z'', z1) -{ 5·z' }→ s10 :|: s9 >= 0, s9 <= 0, s10 >= 0, s10 <= 1 * s9, z - 1 >= 0, z' - 1 >= 0, z1 >= 0, z'' >= 0
m4(z, z', z'', z1) -{ 0 }→ 0 :|: z >= 0, z' >= 0, z'' >= 0, z1 >= 0
m5(z, z', z'', z1) -{ 1 }→ z'' :|: z' >= 0, z >= 0, z1 >= 0, z'' >= 0
monus(z, z') -{ 3 + 5·z' }→ s6 :|: s6 >= 0, s6 <= 0, z' >= 0, z >= 0

Function symbols to be analyzed:
Previous analysis results are:
e4: runtime: O(1) [1], size: O(1) [2]
l16: runtime: O(1) [1], size: O(n1) [z'']
e5: runtime: O(1) [1], size: O(1) [2]
e8: runtime: O(1) [1], size: O(n1) [z'']
m5: runtime: O(1) [1], size: O(n1) [z'']
l6: runtime: O(1) [1], size: O(1) [0]
bool2Nat: runtime: O(1) [1], size: O(1) [1]
l9: runtime: O(1) [1], size: O(n1) [z]
e6: runtime: O(1) [1], size: O(1) [1]
lt: runtime: O(1) [0], size: O(1) [2]
m3: runtime: O(1) [1], size: O(1) [2]
e7: runtime: O(1) [1], size: O(1) [1]
help1: runtime: O(1) [1], size: O(1) [2]
e3: runtime: O(1) [2], size: O(1) [2]
m1: runtime: O(n1) [2 + 5·z'], size: O(1) [0]
m4: runtime: O(n1) [5·z'], size: O(1) [0]
m2: runtime: O(n1) [1 + 5·z'], size: O(1) [2]
e2: runtime: O(1) [3], size: O(1) [2]
monus: runtime: O(n1) [3 + 5·z'], size: O(1) [0]
e1: runtime: O(1) [4], size: O(1) [2]
equal0: runtime: O(1) [5], size: O(1) [2]
l5: runtime: O(n1) [14 + 5·z'], size: O(n1) [z]
l7: runtime: O(n1) [13 + 5·z'], size: O(n1) [z]
l11: runtime: O(n1) [5 + 5·z'], size: O(1) [0]
l1: runtime: O(n1) [18 + 5·z'], size: O(n1) [z]
l3: runtime: O(n1) [16 + 5·z'], size: O(n1) [z]
l13: runtime: O(n1) [21 + 5·z'], size: O(1) [1]
l2: runtime: O(n1) [17 + 5·z'], size: O(n1) [z + z'']
l14: runtime: O(n1) [4 + 5·z'], size: O(1) [0]
l4: runtime: O(n1) [15 + 5·z'], size: O(n1) [z]
l10: runtime: O(n1) [6 + 5·z'], size: O(1) [0]
l8: runtime: O(n1) [7 + 5·z'], size: O(n1) [z]
l15: runtime: O(1) [26], size: O(n1) [z']
l12: runtime: O(n1) [25 + 10·z'], size: O(1) [1]
gcd: runtime: O(n1) [19 + 5·z'], size: O(n1) [z]

(143) FinalProof (EQUIVALENT transformation)

Computed overall runtime complexity

(144) BOUNDS(1, n^1)