MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given ETRS could not be shown: (0) ETRS (1) EquationalDependencyPairsProof [EQUIVALENT, 0 ms] (2) EDP (3) EDependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) EDP (6) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (7) EDP (8) EUsableRulesReductionPairsProof [EQUIVALENT, 163 ms] (9) EDP (10) EDependencyGraphProof [EQUIVALENT, 0 ms] (11) TRUE (12) EDP (13) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (14) EDP (15) EUsableRulesReductionPairsProof [EQUIVALENT, 26 ms] (16) EDP (17) EDependencyGraphProof [EQUIVALENT, 0 ms] (18) TRUE (19) EDP (20) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (21) EDP (22) EUsableRulesReductionPairsProof [EQUIVALENT, 10 ms] (23) EDP (24) EDependencyGraphProof [EQUIVALENT, 0 ms] (25) TRUE (26) EDP (27) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (28) EDP (29) EUsableRulesReductionPairsProof [EQUIVALENT, 52 ms] (30) EDP (31) EDependencyGraphProof [EQUIVALENT, 0 ms] (32) TRUE (33) EDP (34) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (35) EDP (36) EUsableRulesReductionPairsProof [EQUIVALENT, 49 ms] (37) EDP (38) EDependencyGraphProof [EQUIVALENT, 0 ms] (39) TRUE (40) EDP (41) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (42) EDP (43) EUsableRulesProof [EQUIVALENT, 0 ms] (44) EDP (45) EDP ---------------------------------------- (0) Obligation: Equational rewrite system: The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) ---------------------------------------- (1) EquationalDependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: The TRS P consists of the following rules: U101^1(tt, M, N) -> U102^1(isNat(N), M, N) U101^1(tt, M, N) -> ISNAT(N) U102^1(tt, M, N) -> D(N, M) U121^1(tt, M', N') -> U122^1(isNzNat(N'), M', N') U121^1(tt, M', N') -> ISNZNAT(N') U122^1(tt, M', N') -> U123^1(equal(_>_(N', M'), true), M', N') U122^1(tt, M', N') -> EQUAL(_>_(N', M'), true) U122^1(tt, M', N') -> _>_^1(N', M') U123^1(tt, M', N') -> GCD(d(N', M'), M') U123^1(tt, M', N') -> D(N', M') U141^1(tt, V2) -> U142^1(isNat(V2)) U141^1(tt, V2) -> ISNAT(V2) U151^1(tt, V2) -> U152^1(isNat(V2)) U151^1(tt, V2) -> ISNAT(V2) U171^1(tt, V2) -> U172^1(isNat(V2)) U171^1(tt, V2) -> ISNAT(V2) U181^1(tt, V2) -> U182^1(isNat(V2)) U181^1(tt, V2) -> ISNAT(V2) U191^1(tt, V2) -> U192^1(isNat(V2)) U191^1(tt, V2) -> ISNAT(V2) U201^1(tt, V2) -> U202^1(isNat(V2)) U201^1(tt, V2) -> ISNAT(V2) U21^1(tt, M, N) -> U22^1(isNat(N), M, N) U21^1(tt, M, N) -> ISNAT(N) U22^1(tt, M, N) -> _+_^1(N, _+_(M, _*_(N, M))) U22^1(tt, M, N) -> _+_^1(M, _*_(N, M)) U22^1(tt, M, N) -> _*_^1(N, M) U221^1(tt, V2) -> U222^1(isNzNat(V2)) U221^1(tt, V2) -> ISNZNAT(V2) U231^1(tt, V2) -> U232^1(isNzNat(V2)) U231^1(tt, V2) -> ISNZNAT(V2) U241^1(tt, V2) -> U242^1(isNzNat(V2)) U241^1(tt, V2) -> ISNZNAT(V2) U281^1(tt, M', N) -> U282^1(isNat(N), M', N) U281^1(tt, M', N) -> ISNAT(N) U282^1(tt, M', N) -> U283^1(equal(_>_(M', N), true)) U282^1(tt, M', N) -> EQUAL(_>_(M', N), true) U282^1(tt, M', N) -> _>_^1(M', N) U291^1(tt, M', N) -> U292^1(isNat(N), M', N) U291^1(tt, M', N) -> ISNAT(N) U292^1(tt, M', N) -> U293^1(equal(_>_(N, M'), true), M', N) U292^1(tt, M', N) -> EQUAL(_>_(N, M'), true) U292^1(tt, M', N) -> _>_^1(N, M') U293^1(tt, M', N) -> QUOT(d(N, M'), M') U293^1(tt, M', N) -> D(N, M') U41^1(tt, M, N) -> U42^1(isNat(N), M, N) U41^1(tt, M, N) -> ISNAT(N) U42^1(tt, M, N) -> _+_^1(N, M) U51^1(tt, M, N) -> U52^1(isNat(N), M, N) U51^1(tt, M, N) -> ISNAT(N) U52^1(tt, M, N) -> _>_^1(M, N) U81^1(tt, M, N) -> U82^1(isNat(N), M, N) U81^1(tt, M, N) -> ISNAT(N) U82^1(tt, M, N) -> _>_^1(N, M) _*_^1(N, 0) -> U11^1(isNat(N)) _*_^1(N, 0) -> ISNAT(N) _*_^1(s_(N), s_(M)) -> U21^1(isNat(M), M, N) _*_^1(s_(N), s_(M)) -> ISNAT(M) _+_^1(N, 0) -> U31^1(isNat(N), N) _+_^1(N, 0) -> ISNAT(N) _+_^1(s_(N), s_(M)) -> U41^1(isNat(M), M, N) _+_^1(s_(N), s_(M)) -> ISNAT(M) _<_^1(N, M) -> U51^1(isNat(M), M, N) _<_^1(N, M) -> ISNAT(M) _>_^1(0, M) -> U61^1(isNat(M)) _>_^1(0, M) -> ISNAT(M) _>_^1(N', 0) -> U71^1(isNzNat(N')) _>_^1(N', 0) -> ISNZNAT(N') _>_^1(s_(N), s_(M)) -> U81^1(isNat(M), M, N) _>_^1(s_(N), s_(M)) -> ISNAT(M) D(0, N) -> U91^1(isNat(N), N) D(0, N) -> ISNAT(N) D(s_(N), s_(M)) -> U101^1(isNat(M), M, N) D(s_(N), s_(M)) -> ISNAT(M) GCD(0, N) -> U111^1(isNat(N)) GCD(0, N) -> ISNAT(N) GCD(N', M') -> U121^1(isNzNat(M'), M', N') GCD(N', M') -> ISNZNAT(M') GCD(N', N') -> U131^1(isNzNat(N'), N') GCD(N', N') -> ISNZNAT(N') ISBOOLEAN(_<_(V1, V2)) -> U141^1(isNat(V1), V2) ISBOOLEAN(_<_(V1, V2)) -> ISNAT(V1) ISBOOLEAN(_>_(V1, V2)) -> U151^1(isNat(V1), V2) ISBOOLEAN(_>_(V1, V2)) -> ISNAT(V1) ISNAT(V) -> U161^1(isNzNat(V)) ISNAT(V) -> ISNZNAT(V) ISNAT(_*_(V1, V2)) -> U171^1(isNat(V1), V2) ISNAT(_*_(V1, V2)) -> ISNAT(V1) ISNAT(_+_(V1, V2)) -> U181^1(isNat(V1), V2) ISNAT(_+_(V1, V2)) -> ISNAT(V1) ISNAT(d(V1, V2)) -> U191^1(isNat(V1), V2) ISNAT(d(V1, V2)) -> ISNAT(V1) ISNAT(gcd(V1, V2)) -> U201^1(isNat(V1), V2) ISNAT(gcd(V1, V2)) -> ISNAT(V1) ISNAT(p_(V1)) -> U211^1(isNzNat(V1)) ISNAT(p_(V1)) -> ISNZNAT(V1) ISNAT(quot(V1, V2)) -> U221^1(isNat(V1), V2) ISNAT(quot(V1, V2)) -> ISNAT(V1) ISNZNAT(_*_(V1, V2)) -> U231^1(isNzNat(V1), V2) ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) ISNZNAT(gcd(V1, V2)) -> U241^1(isNzNat(V1), V2) ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) ISNZNAT(s_(V1)) -> U251^1(isNat(V1)) ISNZNAT(s_(V1)) -> ISNAT(V1) P_(s_(N)) -> U261^1(isNat(N), N) P_(s_(N)) -> ISNAT(N) QUOT(M', M') -> U271^1(isNzNat(M')) QUOT(M', M') -> ISNZNAT(M') QUOT(N, M') -> U281^1(isNzNat(M'), M', N) QUOT(N, M') -> ISNZNAT(M') QUOT(N, M') -> U291^1(isNzNat(M'), M', N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (2) Obligation: The TRS P consists of the following rules: U101^1(tt, M, N) -> U102^1(isNat(N), M, N) U101^1(tt, M, N) -> ISNAT(N) U102^1(tt, M, N) -> D(N, M) U121^1(tt, M', N') -> U122^1(isNzNat(N'), M', N') U121^1(tt, M', N') -> ISNZNAT(N') U122^1(tt, M', N') -> U123^1(equal(_>_(N', M'), true), M', N') U122^1(tt, M', N') -> EQUAL(_>_(N', M'), true) U122^1(tt, M', N') -> _>_^1(N', M') U123^1(tt, M', N') -> GCD(d(N', M'), M') U123^1(tt, M', N') -> D(N', M') U141^1(tt, V2) -> U142^1(isNat(V2)) U141^1(tt, V2) -> ISNAT(V2) U151^1(tt, V2) -> U152^1(isNat(V2)) U151^1(tt, V2) -> ISNAT(V2) U171^1(tt, V2) -> U172^1(isNat(V2)) U171^1(tt, V2) -> ISNAT(V2) U181^1(tt, V2) -> U182^1(isNat(V2)) U181^1(tt, V2) -> ISNAT(V2) U191^1(tt, V2) -> U192^1(isNat(V2)) U191^1(tt, V2) -> ISNAT(V2) U201^1(tt, V2) -> U202^1(isNat(V2)) U201^1(tt, V2) -> ISNAT(V2) U21^1(tt, M, N) -> U22^1(isNat(N), M, N) U21^1(tt, M, N) -> ISNAT(N) U22^1(tt, M, N) -> _+_^1(N, _+_(M, _*_(N, M))) U22^1(tt, M, N) -> _+_^1(M, _*_(N, M)) U22^1(tt, M, N) -> _*_^1(N, M) U221^1(tt, V2) -> U222^1(isNzNat(V2)) U221^1(tt, V2) -> ISNZNAT(V2) U231^1(tt, V2) -> U232^1(isNzNat(V2)) U231^1(tt, V2) -> ISNZNAT(V2) U241^1(tt, V2) -> U242^1(isNzNat(V2)) U241^1(tt, V2) -> ISNZNAT(V2) U281^1(tt, M', N) -> U282^1(isNat(N), M', N) U281^1(tt, M', N) -> ISNAT(N) U282^1(tt, M', N) -> U283^1(equal(_>_(M', N), true)) U282^1(tt, M', N) -> EQUAL(_>_(M', N), true) U282^1(tt, M', N) -> _>_^1(M', N) U291^1(tt, M', N) -> U292^1(isNat(N), M', N) U291^1(tt, M', N) -> ISNAT(N) U292^1(tt, M', N) -> U293^1(equal(_>_(N, M'), true), M', N) U292^1(tt, M', N) -> EQUAL(_>_(N, M'), true) U292^1(tt, M', N) -> _>_^1(N, M') U293^1(tt, M', N) -> QUOT(d(N, M'), M') U293^1(tt, M', N) -> D(N, M') U41^1(tt, M, N) -> U42^1(isNat(N), M, N) U41^1(tt, M, N) -> ISNAT(N) U42^1(tt, M, N) -> _+_^1(N, M) U51^1(tt, M, N) -> U52^1(isNat(N), M, N) U51^1(tt, M, N) -> ISNAT(N) U52^1(tt, M, N) -> _>_^1(M, N) U81^1(tt, M, N) -> U82^1(isNat(N), M, N) U81^1(tt, M, N) -> ISNAT(N) U82^1(tt, M, N) -> _>_^1(N, M) _*_^1(N, 0) -> U11^1(isNat(N)) _*_^1(N, 0) -> ISNAT(N) _*_^1(s_(N), s_(M)) -> U21^1(isNat(M), M, N) _*_^1(s_(N), s_(M)) -> ISNAT(M) _+_^1(N, 0) -> U31^1(isNat(N), N) _+_^1(N, 0) -> ISNAT(N) _+_^1(s_(N), s_(M)) -> U41^1(isNat(M), M, N) _+_^1(s_(N), s_(M)) -> ISNAT(M) _<_^1(N, M) -> U51^1(isNat(M), M, N) _<_^1(N, M) -> ISNAT(M) _>_^1(0, M) -> U61^1(isNat(M)) _>_^1(0, M) -> ISNAT(M) _>_^1(N', 0) -> U71^1(isNzNat(N')) _>_^1(N', 0) -> ISNZNAT(N') _>_^1(s_(N), s_(M)) -> U81^1(isNat(M), M, N) _>_^1(s_(N), s_(M)) -> ISNAT(M) D(0, N) -> U91^1(isNat(N), N) D(0, N) -> ISNAT(N) D(s_(N), s_(M)) -> U101^1(isNat(M), M, N) D(s_(N), s_(M)) -> ISNAT(M) GCD(0, N) -> U111^1(isNat(N)) GCD(0, N) -> ISNAT(N) GCD(N', M') -> U121^1(isNzNat(M'), M', N') GCD(N', M') -> ISNZNAT(M') GCD(N', N') -> U131^1(isNzNat(N'), N') GCD(N', N') -> ISNZNAT(N') ISBOOLEAN(_<_(V1, V2)) -> U141^1(isNat(V1), V2) ISBOOLEAN(_<_(V1, V2)) -> ISNAT(V1) ISBOOLEAN(_>_(V1, V2)) -> U151^1(isNat(V1), V2) ISBOOLEAN(_>_(V1, V2)) -> ISNAT(V1) ISNAT(V) -> U161^1(isNzNat(V)) ISNAT(V) -> ISNZNAT(V) ISNAT(_*_(V1, V2)) -> U171^1(isNat(V1), V2) ISNAT(_*_(V1, V2)) -> ISNAT(V1) ISNAT(_+_(V1, V2)) -> U181^1(isNat(V1), V2) ISNAT(_+_(V1, V2)) -> ISNAT(V1) ISNAT(d(V1, V2)) -> U191^1(isNat(V1), V2) ISNAT(d(V1, V2)) -> ISNAT(V1) ISNAT(gcd(V1, V2)) -> U201^1(isNat(V1), V2) ISNAT(gcd(V1, V2)) -> ISNAT(V1) ISNAT(p_(V1)) -> U211^1(isNzNat(V1)) ISNAT(p_(V1)) -> ISNZNAT(V1) ISNAT(quot(V1, V2)) -> U221^1(isNat(V1), V2) ISNAT(quot(V1, V2)) -> ISNAT(V1) ISNZNAT(_*_(V1, V2)) -> U231^1(isNzNat(V1), V2) ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) ISNZNAT(gcd(V1, V2)) -> U241^1(isNzNat(V1), V2) ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) ISNZNAT(s_(V1)) -> U251^1(isNat(V1)) ISNZNAT(s_(V1)) -> ISNAT(V1) P_(s_(N)) -> U261^1(isNat(N), N) P_(s_(N)) -> ISNAT(N) QUOT(M', M') -> U271^1(isNzNat(M')) QUOT(M', M') -> ISNZNAT(M') QUOT(N, M') -> U281^1(isNzNat(M'), M', N) QUOT(N, M') -> ISNZNAT(M') QUOT(N, M') -> U291^1(isNzNat(M'), M', N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (3) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 7 SCCs with 67 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: The TRS P consists of the following rules: ISNAT(_*_(V1, V2)) -> U171^1(isNat(V1), V2) U241^1(tt, V2) -> ISNZNAT(V2) U181^1(tt, V2) -> ISNAT(V2) ISNAT(d(V1, V2)) -> ISNAT(V1) ISNAT(V) -> ISNZNAT(V) ISNAT(p_(V1)) -> ISNZNAT(V1) ISNAT(gcd(V1, V2)) -> U201^1(isNat(V1), V2) U201^1(tt, V2) -> ISNAT(V2) U171^1(tt, V2) -> ISNAT(V2) ISNZNAT(s_(V1)) -> ISNAT(V1) U231^1(tt, V2) -> ISNZNAT(V2) ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) ISNZNAT(gcd(V1, V2)) -> U241^1(isNzNat(V1), V2) ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) ISNAT(_+_(V1, V2)) -> U181^1(isNat(V1), V2) ISNAT(_+_(V1, V2)) -> ISNAT(V1) ISNAT(d(V1, V2)) -> U191^1(isNat(V1), V2) ISNZNAT(_*_(V1, V2)) -> U231^1(isNzNat(V1), V2) ISNAT(_*_(V1, V2)) -> ISNAT(V1) ISNAT(gcd(V1, V2)) -> ISNAT(V1) U221^1(tt, V2) -> ISNZNAT(V2) ISNAT(quot(V1, V2)) -> U221^1(isNat(V1), V2) ISNAT(quot(V1, V2)) -> ISNAT(V1) U191^1(tt, V2) -> ISNAT(V2) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (6) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) ---------------------------------------- (7) Obligation: The TRS P consists of the following rules: ISNAT(_*_(V1, V2)) -> U171^1(isNat(V1), V2) U241^1(tt, V2) -> ISNZNAT(V2) U181^1(tt, V2) -> ISNAT(V2) ISNAT(d(V1, V2)) -> ISNAT(V1) ISNAT(V) -> ISNZNAT(V) ISNAT(p_(V1)) -> ISNZNAT(V1) ISNAT(gcd(V1, V2)) -> U201^1(isNat(V1), V2) U201^1(tt, V2) -> ISNAT(V2) U171^1(tt, V2) -> ISNAT(V2) ISNZNAT(s_(V1)) -> ISNAT(V1) U231^1(tt, V2) -> ISNZNAT(V2) ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) ISNZNAT(gcd(V1, V2)) -> U241^1(isNzNat(V1), V2) ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) ISNAT(_+_(V1, V2)) -> U181^1(isNat(V1), V2) ISNAT(_+_(V1, V2)) -> ISNAT(V1) ISNAT(d(V1, V2)) -> U191^1(isNat(V1), V2) ISNZNAT(_*_(V1, V2)) -> U231^1(isNzNat(V1), V2) ISNAT(_*_(V1, V2)) -> ISNAT(V1) ISNAT(gcd(V1, V2)) -> ISNAT(V1) U221^1(tt, V2) -> ISNZNAT(V2) ISNAT(quot(V1, V2)) -> U221^1(isNat(V1), V2) ISNAT(quot(V1, V2)) -> ISNAT(V1) U191^1(tt, V2) -> ISNAT(V2) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (8) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: ISNAT(_*_(V1, V2)) -> U171^1(isNat(V1), V2) ISNAT(d(V1, V2)) -> ISNAT(V1) ISNAT(p_(V1)) -> ISNZNAT(V1) ISNAT(gcd(V1, V2)) -> U201^1(isNat(V1), V2) ISNZNAT(s_(V1)) -> ISNAT(V1) ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) ISNZNAT(gcd(V1, V2)) -> U241^1(isNzNat(V1), V2) ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) ISNAT(_+_(V1, V2)) -> U181^1(isNat(V1), V2) ISNAT(_+_(V1, V2)) -> ISNAT(V1) ISNAT(d(V1, V2)) -> U191^1(isNat(V1), V2) ISNZNAT(_*_(V1, V2)) -> U231^1(isNzNat(V1), V2) ISNAT(_*_(V1, V2)) -> ISNAT(V1) ISNAT(gcd(V1, V2)) -> ISNAT(V1) ISNAT(quot(V1, V2)) -> U221^1(isNat(V1), V2) ISNAT(quot(V1, V2)) -> ISNAT(V1) The following rules are removed from R: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U181(tt, V2) -> U182(isNat(V2)) U191(tt, V2) -> U192(isNat(V2)) U21(tt, M, N) -> U22(isNat(N), M, N) U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The following equations are removed from E: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 0 POL(1) = 0 POL(2) = 0 POL(3) = 0 POL(4) = 0 POL(5) = 0 POL(6) = 0 POL(7) = 0 POL(ISNAT(x_1)) = x_1 POL(ISNZNAT(x_1)) = x_1 POL(U161(x_1)) = 2*x_1 POL(U171(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U171^1(x_1, x_2)) = x_1 + x_2 POL(U172(x_1)) = x_1 POL(U181(x_1, x_2)) = 2 + 2*x_1 + 3*x_2 POL(U181^1(x_1, x_2)) = x_1 + 2*x_2 POL(U182(x_1)) = x_1 POL(U191(x_1, x_2)) = 2 + 2*x_1 + 3*x_2 POL(U191^1(x_1, x_2)) = x_1 + 2*x_2 POL(U192(x_1)) = x_1 POL(U201(x_1, x_2)) = x_1 + 2*x_2 POL(U201^1(x_1, x_2)) = x_1 + x_2 POL(U202(x_1)) = x_1 POL(U211(x_1)) = x_1 POL(U221(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U221^1(x_1, x_2)) = x_1 + x_2 POL(U222(x_1)) = 2*x_1 POL(U231(x_1, x_2)) = x_1 + x_2 POL(U231^1(x_1, x_2)) = x_1 + x_2 POL(U232(x_1)) = x_1 POL(U241(x_1, x_2)) = x_1 + x_2 POL(U241^1(x_1, x_2)) = x_1 + x_2 POL(U242(x_1)) = x_1 POL(U251(x_1)) = x_1 POL(_*_(x_1, x_2)) = 2 + 2*x_1 + x_2 POL(_+_(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 POL(d(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 POL(gcd(x_1, x_2)) = 2*x_1 + x_2 POL(isNat(x_1)) = 2*x_1 POL(isNzNat(x_1)) = x_1 POL(p_(x_1)) = x_1 POL(quot(x_1, x_2)) = 2 + 2*x_1 + x_2 POL(s_(x_1)) = 2*x_1 POL(tt) = 0 ---------------------------------------- (9) Obligation: The TRS P consists of the following rules: U241^1(tt, V2) -> ISNZNAT(V2) U181^1(tt, V2) -> ISNAT(V2) ISNAT(V) -> ISNZNAT(V) U201^1(tt, V2) -> ISNAT(V2) U171^1(tt, V2) -> ISNAT(V2) U231^1(tt, V2) -> ISNZNAT(V2) U221^1(tt, V2) -> ISNZNAT(V2) U191^1(tt, V2) -> ISNAT(V2) The TRS R consists of the following rules: U242(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U251(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U222(tt) -> tt U161(tt) -> tt isNat(V) -> U161(isNzNat(V)) U172(tt) -> tt U232(tt) -> tt U192(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U182(tt) -> tt U211(tt) -> tt E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (10) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 8 less nodes. ---------------------------------------- (11) TRUE ---------------------------------------- (12) Obligation: The TRS P consists of the following rules: U81^1(tt, M, N) -> U82^1(isNat(N), M, N) _>_^1(s_(N), s_(M)) -> U81^1(isNat(M), M, N) U82^1(tt, M, N) -> _>_^1(N, M) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (13) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) ---------------------------------------- (14) Obligation: The TRS P consists of the following rules: U81^1(tt, M, N) -> U82^1(isNat(N), M, N) _>_^1(s_(N), s_(M)) -> U81^1(isNat(M), M, N) U82^1(tt, M, N) -> _>_^1(N, M) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (15) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: _>_^1(s_(N), s_(M)) -> U81^1(isNat(M), M, N) The following rules are removed from R: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U231(tt, V2) -> U232(isNzNat(V2)) U241(tt, V2) -> U242(isNzNat(V2)) U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The following equations are removed from E: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 0 POL(1) = 0 POL(2) = 0 POL(3) = 0 POL(4) = 0 POL(5) = 0 POL(6) = 0 POL(7) = 0 POL(U161(x_1)) = 2*x_1 POL(U171(x_1, x_2)) = 2*x_1 + 2*x_2 POL(U172(x_1)) = x_1 POL(U181(x_1, x_2)) = 2*x_1 + 3*x_2 POL(U182(x_1)) = x_1 POL(U191(x_1, x_2)) = 2*x_1 + 3*x_2 POL(U192(x_1)) = x_1 POL(U201(x_1, x_2)) = 2*x_1 + 2*x_2 POL(U202(x_1)) = x_1 POL(U211(x_1)) = 2*x_1 POL(U221(x_1, x_2)) = 2 + x_1 + 3*x_2 POL(U222(x_1)) = 2*x_1 POL(U231(x_1, x_2)) = 2 + x_1 + x_2 POL(U232(x_1)) = x_1 POL(U241(x_1, x_2)) = 2 + x_1 + x_2 POL(U242(x_1)) = x_1 POL(U251(x_1)) = x_1 POL(U81^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U82^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + x_3 POL(_*_(x_1, x_2)) = 2 + 3*x_1 + x_2 POL(_+_(x_1, x_2)) = 3 + 3*x_1 + 3*x_2 POL(_>_^1(x_1, x_2)) = x_1 + 2*x_2 POL(d(x_1, x_2)) = 3 + 3*x_1 + 3*x_2 POL(gcd(x_1, x_2)) = 3 + 2*x_1 + x_2 POL(isNat(x_1)) = 2*x_1 POL(isNzNat(x_1)) = x_1 POL(p_(x_1)) = 3 + 2*x_1 POL(quot(x_1, x_2)) = 1 + 2*x_1 + 3*x_2 POL(s_(x_1)) = 3*x_1 POL(tt) = 0 ---------------------------------------- (16) Obligation: The TRS P consists of the following rules: U81^1(tt, M, N) -> U82^1(isNat(N), M, N) U82^1(tt, M, N) -> _>_^1(N, M) The TRS R consists of the following rules: U242(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U181(tt, V2) -> U182(isNat(V2)) U202(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U171(tt, V2) -> U172(isNat(V2)) U251(tt) -> tt U222(tt) -> tt U161(tt) -> tt isNat(V) -> U161(isNzNat(V)) U172(tt) -> tt U232(tt) -> tt U192(tt) -> tt U182(tt) -> tt U211(tt) -> tt E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (17) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 2 less nodes. ---------------------------------------- (18) TRUE ---------------------------------------- (19) Obligation: The TRS P consists of the following rules: U41^1(tt, M, N) -> U42^1(isNat(N), M, N) U42^1(tt, M, N) -> _+_^1(N, M) _+_^1(s_(N), s_(M)) -> U41^1(isNat(M), M, N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (20) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: _*_^1(x, y) == _*_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) ---------------------------------------- (21) Obligation: The TRS P consists of the following rules: U41^1(tt, M, N) -> U42^1(isNat(N), M, N) U42^1(tt, M, N) -> _+_^1(N, M) _+_^1(s_(N), s_(M)) -> U41^1(isNat(M), M, N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _+_^1(x, y) == _+_^1(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (22) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: U41^1(tt, M, N) -> U42^1(isNat(N), M, N) _+_^1(s_(N), s_(M)) -> U41^1(isNat(M), M, N) The following rules are removed from R: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U21(tt, M, N) -> U22(isNat(N), M, N) U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The following equations are removed from E: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 0 POL(1) = 2 POL(2) = 2 POL(3) = 2 POL(4) = 2 POL(5) = 2 POL(6) = 2 POL(7) = 2 POL(U161(x_1)) = x_1 POL(U171(x_1, x_2)) = x_1 + 2*x_2 POL(U172(x_1)) = x_1 POL(U181(x_1, x_2)) = x_1 + 3*x_2 POL(U182(x_1)) = x_1 POL(U191(x_1, x_2)) = x_1 + 2*x_2 POL(U192(x_1)) = x_1 POL(U201(x_1, x_2)) = 1 + x_1 + x_2 POL(U202(x_1)) = x_1 POL(U211(x_1)) = x_1 POL(U221(x_1, x_2)) = x_1 + 3*x_2 POL(U222(x_1)) = x_1 POL(U231(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U232(x_1)) = 2*x_1 POL(U241(x_1, x_2)) = 2*x_1 + x_2 POL(U242(x_1)) = x_1 POL(U251(x_1)) = x_1 POL(U41^1(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 3*x_3 POL(U42^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(_*_(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(_+_(x_1, x_2)) = 2*x_1 + 3*x_2 POL(_+_^1(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(d(x_1, x_2)) = 2*x_1 + 3*x_2 POL(gcd(x_1, x_2)) = 2 + 3*x_1 + x_2 POL(isNat(x_1)) = 2 + x_1 POL(isNzNat(x_1)) = x_1 POL(p_(x_1)) = 2*x_1 POL(quot(x_1, x_2)) = 2 + 2*x_1 + 3*x_2 POL(s_(x_1)) = 2 + 2*x_1 POL(tt) = 2 ---------------------------------------- (23) Obligation: The TRS P consists of the following rules: U42^1(tt, M, N) -> _+_^1(N, M) The TRS R consists of the following rules: U242(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U202(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U171(tt, V2) -> U172(isNat(V2)) U251(tt) -> tt U222(tt) -> tt U161(tt) -> tt U172(tt) -> tt U192(tt) -> tt U182(tt) -> tt U211(tt) -> tt E is empty. The set E# consists of the following equations: _+_^1(x, y) == _+_^1(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (24) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. ---------------------------------------- (25) TRUE ---------------------------------------- (26) Obligation: The TRS P consists of the following rules: U21^1(tt, M, N) -> U22^1(isNat(N), M, N) U22^1(tt, M, N) -> _*_^1(N, M) _*_^1(s_(N), s_(M)) -> U21^1(isNat(M), M, N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (27) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) ---------------------------------------- (28) Obligation: The TRS P consists of the following rules: U21^1(tt, M, N) -> U22^1(isNat(N), M, N) U22^1(tt, M, N) -> _*_^1(N, M) _*_^1(s_(N), s_(M)) -> U21^1(isNat(M), M, N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (29) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: U21^1(tt, M, N) -> U22^1(isNat(N), M, N) _*_^1(s_(N), s_(M)) -> U21^1(isNat(M), M, N) The following rules are removed from R: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U21(tt, M, N) -> U22(isNat(N), M, N) U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The following equations are removed from E: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 0 POL(1) = 2 POL(2) = 2 POL(3) = 2 POL(4) = 2 POL(5) = 2 POL(6) = 2 POL(7) = 2 POL(U161(x_1)) = x_1 POL(U171(x_1, x_2)) = x_1 + 2*x_2 POL(U172(x_1)) = x_1 POL(U181(x_1, x_2)) = x_1 + 3*x_2 POL(U182(x_1)) = x_1 POL(U191(x_1, x_2)) = x_1 + 2*x_2 POL(U192(x_1)) = x_1 POL(U201(x_1, x_2)) = 1 + x_1 + x_2 POL(U202(x_1)) = x_1 POL(U211(x_1)) = x_1 POL(U21^1(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 3*x_3 POL(U221(x_1, x_2)) = x_1 + 3*x_2 POL(U222(x_1)) = x_1 POL(U22^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(U231(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U232(x_1)) = 2*x_1 POL(U241(x_1, x_2)) = 2*x_1 + x_2 POL(U242(x_1)) = x_1 POL(U251(x_1)) = x_1 POL(_*_(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(_*_^1(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(_+_(x_1, x_2)) = 2*x_1 + 3*x_2 POL(d(x_1, x_2)) = 2*x_1 + 3*x_2 POL(gcd(x_1, x_2)) = 2 + 3*x_1 + x_2 POL(isNat(x_1)) = 2 + x_1 POL(isNzNat(x_1)) = x_1 POL(p_(x_1)) = 2*x_1 POL(quot(x_1, x_2)) = 2 + 2*x_1 + 3*x_2 POL(s_(x_1)) = 2 + 2*x_1 POL(tt) = 2 ---------------------------------------- (30) Obligation: The TRS P consists of the following rules: U22^1(tt, M, N) -> _*_^1(N, M) The TRS R consists of the following rules: U242(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U202(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U171(tt, V2) -> U172(isNat(V2)) U251(tt) -> tt U222(tt) -> tt U161(tt) -> tt U172(tt) -> tt U192(tt) -> tt U182(tt) -> tt U211(tt) -> tt E is empty. The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (31) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. ---------------------------------------- (32) TRUE ---------------------------------------- (33) Obligation: The TRS P consists of the following rules: U101^1(tt, M, N) -> U102^1(isNat(N), M, N) U102^1(tt, M, N) -> D(N, M) D(s_(N), s_(M)) -> U101^1(isNat(M), M, N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (34) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) GCD(x, y) == GCD(y, x) ---------------------------------------- (35) Obligation: The TRS P consists of the following rules: U101^1(tt, M, N) -> U102^1(isNat(N), M, N) U102^1(tt, M, N) -> D(N, M) D(s_(N), s_(M)) -> U101^1(isNat(M), M, N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: D(x, y) == D(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (36) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: U101^1(tt, M, N) -> U102^1(isNat(N), M, N) D(s_(N), s_(M)) -> U101^1(isNat(M), M, N) The following rules are removed from R: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U21(tt, M, N) -> U22(isNat(N), M, N) U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The following equations are removed from E: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 0 POL(1) = 2 POL(2) = 2 POL(3) = 2 POL(4) = 2 POL(5) = 2 POL(6) = 2 POL(7) = 2 POL(D(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(U101^1(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 3*x_3 POL(U102^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(U161(x_1)) = x_1 POL(U171(x_1, x_2)) = x_1 + 2*x_2 POL(U172(x_1)) = x_1 POL(U181(x_1, x_2)) = x_1 + 3*x_2 POL(U182(x_1)) = x_1 POL(U191(x_1, x_2)) = x_1 + 2*x_2 POL(U192(x_1)) = x_1 POL(U201(x_1, x_2)) = 1 + x_1 + x_2 POL(U202(x_1)) = x_1 POL(U211(x_1)) = x_1 POL(U221(x_1, x_2)) = x_1 + 3*x_2 POL(U222(x_1)) = x_1 POL(U231(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U232(x_1)) = 2*x_1 POL(U241(x_1, x_2)) = 2*x_1 + x_2 POL(U242(x_1)) = x_1 POL(U251(x_1)) = x_1 POL(_*_(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(_+_(x_1, x_2)) = 2*x_1 + 3*x_2 POL(d(x_1, x_2)) = 2*x_1 + 3*x_2 POL(gcd(x_1, x_2)) = 2 + 3*x_1 + x_2 POL(isNat(x_1)) = 2 + x_1 POL(isNzNat(x_1)) = x_1 POL(p_(x_1)) = 2*x_1 POL(quot(x_1, x_2)) = 2 + 2*x_1 + 3*x_2 POL(s_(x_1)) = 2 + 2*x_1 POL(tt) = 2 ---------------------------------------- (37) Obligation: The TRS P consists of the following rules: U102^1(tt, M, N) -> D(N, M) The TRS R consists of the following rules: U242(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U202(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U171(tt, V2) -> U172(isNat(V2)) U251(tt) -> tt U222(tt) -> tt U161(tt) -> tt U172(tt) -> tt U192(tt) -> tt U182(tt) -> tt U211(tt) -> tt E is empty. The set E# consists of the following equations: D(x, y) == D(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (38) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. ---------------------------------------- (39) TRUE ---------------------------------------- (40) Obligation: The TRS P consists of the following rules: U293^1(tt, M', N) -> QUOT(d(N, M'), M') U291^1(tt, M', N) -> U292^1(isNat(N), M', N) QUOT(N, M') -> U291^1(isNzNat(M'), M', N) U292^1(tt, M', N) -> U293^1(equal(_>_(N, M'), true), M', N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (41) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) ---------------------------------------- (42) Obligation: The TRS P consists of the following rules: U293^1(tt, M', N) -> QUOT(d(N, M'), M') U291^1(tt, M', N) -> U292^1(isNat(N), M', N) QUOT(N, M') -> U291^1(isNzNat(M'), M', N) U292^1(tt, M', N) -> U293^1(equal(_>_(N, M'), true), M', N) The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (43) EUsableRulesProof (EQUIVALENT) We use the improved usable rules and equations processor [DA_STEIN] to delete all non-usable rules from R and all non-usable equations from E, but we lose minimality and add the following 2 Ce-rules: c(x, y) -> x c(x, y) -> y ---------------------------------------- (44) Obligation: The TRS P consists of the following rules: U293^1(tt, M', N) -> QUOT(d(N, M'), M') U291^1(tt, M', N) -> U292^1(isNat(N), M', N) QUOT(N, M') -> U291^1(isNzNat(M'), M', N) U292^1(tt, M', N) -> U293^1(equal(_>_(N, M'), true), M', N) The TRS R consists of the following rules: isNzNat(6) -> tt isNzNat(3) -> tt isNat(quot(V1, V2)) -> U221(isNat(V1), V2) U242(tt) -> tt isNat(0) -> tt U201(tt, V2) -> U202(isNat(V2)) U181(tt, V2) -> U182(isNat(V2)) U202(tt) -> tt isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) U82(tt, M, N) -> _>_(N, M) U191(tt, V2) -> U192(isNat(V2)) equal(X, X) -> tt U171(tt, V2) -> U172(isNat(V2)) U61(tt) -> false isNzNat(s_(V1)) -> U251(isNat(V1)) U102(tt, M, N) -> d(N, M) U251(tt) -> tt d(s_(N), s_(M)) -> U101(isNat(M), M, N) U91(tt, N) -> N U81(tt, M, N) -> U82(isNat(N), M, N) U231(tt, V2) -> U232(isNzNat(V2)) _>_(N', 0) -> U71(isNzNat(N')) U222(tt) -> tt _>_(0, M) -> U61(isNat(M)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) U161(tt) -> tt isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNat(V) -> U161(isNzNat(V)) U172(tt) -> tt U221(tt, V2) -> U222(isNzNat(V2)) U232(tt) -> tt d(0, N) -> U91(isNat(N), N) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) U192(tt) -> tt isNat(p_(V1)) -> U211(isNzNat(V1)) isNzNat(7) -> tt U241(tt, V2) -> U242(isNzNat(V2)) isNzNat(1) -> tt isNzNat(4) -> tt isNzNat(5) -> tt U182(tt) -> tt U101(tt, M, N) -> U102(isNat(N), M, N) isNzNat(2) -> tt isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) U71(tt) -> true isNat(d(V1, V2)) -> U191(isNat(V1), V2) U211(tt) -> tt c(x, y) -> x c(x, y) -> y The set E consists of the following equations: d(x, y) == d(y, x) E# is empty. We have to consider all (P,E#,R,E)-chains ---------------------------------------- (45) Obligation: The TRS P consists of the following rules: U122^1(tt, M', N') -> U123^1(equal(_>_(N', M'), true), M', N') U121^1(tt, M', N') -> U122^1(isNzNat(N'), M', N') GCD(N', M') -> U121^1(isNzNat(M'), M', N') U123^1(tt, M', N') -> GCD(d(N', M'), M') The TRS R consists of the following rules: 1 -> s_(0) 2 -> s_(s_(0)) 3 -> s_(s_(s_(0))) 4 -> s_(s_(s_(s_(0)))) 5 -> s_(s_(s_(s_(s_(0))))) 6 -> s_(s_(s_(s_(s_(s_(0)))))) 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) U101(tt, M, N) -> U102(isNat(N), M, N) U102(tt, M, N) -> d(N, M) U11(tt) -> 0 U111(tt) -> 0 U121(tt, M', N') -> U122(isNzNat(N'), M', N') U122(tt, M', N') -> U123(equal(_>_(N', M'), true), M', N') U123(tt, M', N') -> gcd(d(N', M'), M') U131(tt, N') -> N' U141(tt, V2) -> U142(isNat(V2)) U142(tt) -> tt U151(tt, V2) -> U152(isNat(V2)) U152(tt) -> tt U161(tt) -> tt U171(tt, V2) -> U172(isNat(V2)) U172(tt) -> tt U181(tt, V2) -> U182(isNat(V2)) U182(tt) -> tt U191(tt, V2) -> U192(isNat(V2)) U192(tt) -> tt U201(tt, V2) -> U202(isNat(V2)) U202(tt) -> tt U21(tt, M, N) -> U22(isNat(N), M, N) U211(tt) -> tt U22(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) U221(tt, V2) -> U222(isNzNat(V2)) U222(tt) -> tt U231(tt, V2) -> U232(isNzNat(V2)) U232(tt) -> tt U241(tt, V2) -> U242(isNzNat(V2)) U242(tt) -> tt U251(tt) -> tt U261(tt, N) -> N U271(tt) -> s_(0) U281(tt, M', N) -> U282(isNat(N), M', N) U282(tt, M', N) -> U283(equal(_>_(M', N), true)) U283(tt) -> 0 U291(tt, M', N) -> U292(isNat(N), M', N) U292(tt, M', N) -> U293(equal(_>_(N, M'), true), M', N) U293(tt, M', N) -> s_(quot(d(N, M'), M')) U31(tt, N) -> N U41(tt, M, N) -> U42(isNat(N), M, N) U42(tt, M, N) -> s_(s_(_+_(N, M))) U51(tt, M, N) -> U52(isNat(N), M, N) U52(tt, M, N) -> _>_(M, N) U61(tt) -> false U71(tt) -> true U81(tt, M, N) -> U82(isNat(N), M, N) U82(tt, M, N) -> _>_(N, M) U91(tt, N) -> N _*_(N, 0) -> U11(isNat(N)) _*_(s_(N), s_(M)) -> U21(isNat(M), M, N) _+_(N, 0) -> U31(isNat(N), N) _+_(s_(N), s_(M)) -> U41(isNat(M), M, N) _<_(N, M) -> U51(isNat(M), M, N) _>_(0, M) -> U61(isNat(M)) _>_(N', 0) -> U71(isNzNat(N')) _>_(s_(N), s_(M)) -> U81(isNat(M), M, N) d(0, N) -> U91(isNat(N), N) d(s_(N), s_(M)) -> U101(isNat(M), M, N) equal(X, X) -> tt gcd(0, N) -> U111(isNat(N)) gcd(N', M') -> U121(isNzNat(M'), M', N') gcd(N', N') -> U131(isNzNat(N'), N') isBoolean(false) -> tt isBoolean(true) -> tt isBoolean(_<_(V1, V2)) -> U141(isNat(V1), V2) isBoolean(_>_(V1, V2)) -> U151(isNat(V1), V2) isNat(0) -> tt isNat(V) -> U161(isNzNat(V)) isNat(_*_(V1, V2)) -> U171(isNat(V1), V2) isNat(_+_(V1, V2)) -> U181(isNat(V1), V2) isNat(d(V1, V2)) -> U191(isNat(V1), V2) isNat(gcd(V1, V2)) -> U201(isNat(V1), V2) isNat(p_(V1)) -> U211(isNzNat(V1)) isNat(quot(V1, V2)) -> U221(isNat(V1), V2) isNzNat(1) -> tt isNzNat(2) -> tt isNzNat(3) -> tt isNzNat(4) -> tt isNzNat(5) -> tt isNzNat(6) -> tt isNzNat(7) -> tt isNzNat(_*_(V1, V2)) -> U231(isNzNat(V1), V2) isNzNat(gcd(V1, V2)) -> U241(isNzNat(V1), V2) isNzNat(s_(V1)) -> U251(isNat(V1)) p_(s_(N)) -> U261(isNat(N), N) quot(M', M') -> U271(isNzNat(M')) quot(N, M') -> U281(isNzNat(M'), M', N) quot(N, M') -> U291(isNzNat(M'), M', N) The set E consists of the following equations: _*_(x, y) == _*_(y, x) _+_(x, y) == _+_(y, x) d(x, y) == d(y, x) gcd(x, y) == gcd(y, x) The set E# consists of the following equations: _*_^1(x, y) == _*_^1(y, x) _+_^1(x, y) == _+_^1(y, x) D(x, y) == D(y, x) GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains