16.24/10.53 MAYBE 16.24/10.54 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 16.24/10.54 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 16.24/10.54 16.24/10.54 16.24/10.54 Termination of the given ETRS could not be shown: 16.24/10.54 16.24/10.54 (0) ETRS 16.24/10.54 (1) EquationalDependencyPairsProof [EQUIVALENT, 0 ms] 16.24/10.54 (2) EDP 16.24/10.54 (3) EDependencyGraphProof [EQUIVALENT, 0 ms] 16.24/10.54 (4) AND 16.24/10.54 (5) EDP 16.24/10.54 (6) ESharpUsableEquationsProof [EQUIVALENT, 12 ms] 16.24/10.54 (7) EDP 16.24/10.54 (8) EUsableRulesReductionPairsProof [EQUIVALENT, 77 ms] 16.24/10.54 (9) EDP 16.24/10.54 (10) EDependencyGraphProof [EQUIVALENT, 0 ms] 16.24/10.54 (11) TRUE 16.24/10.54 (12) EDP 16.24/10.54 (13) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 16.24/10.54 (14) EDP 16.24/10.54 (15) EUsableRulesReductionPairsProof [EQUIVALENT, 37 ms] 16.24/10.54 (16) EDP 16.24/10.54 (17) EDependencyGraphProof [EQUIVALENT, 0 ms] 16.24/10.54 (18) TRUE 16.24/10.54 (19) EDP 16.24/10.54 (20) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 16.24/10.54 (21) EDP 16.24/10.54 (22) EUsableRulesReductionPairsProof [EQUIVALENT, 40 ms] 16.24/10.54 (23) EDP 16.24/10.54 (24) EDependencyGraphProof [EQUIVALENT, 0 ms] 16.24/10.54 (25) TRUE 16.24/10.54 (26) EDP 16.24/10.54 (27) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 16.24/10.54 (28) EDP 16.24/10.54 (29) EUsableRulesReductionPairsProof [EQUIVALENT, 41 ms] 16.24/10.54 (30) EDP 16.24/10.54 (31) PisEmptyProof [EQUIVALENT, 0 ms] 16.24/10.54 (32) YES 16.24/10.54 (33) EDP 16.24/10.54 (34) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 16.24/10.54 (35) EDP 16.24/10.54 (36) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 16.24/10.54 (37) EDP 16.24/10.54 (38) PisEmptyProof [EQUIVALENT, 0 ms] 16.24/10.54 (39) YES 16.24/10.54 (40) EDP 16.24/10.54 (41) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 16.24/10.54 (42) EDP 16.24/10.54 (43) EUsableRulesProof [EQUIVALENT, 0 ms] 16.24/10.54 (44) EDP 16.24/10.54 (45) EDP 16.24/10.54 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (0) 16.24/10.54 Obligation: 16.24/10.54 Equational rewrite system: 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The set E consists of the following equations: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (1) EquationalDependencyPairsProof (EQUIVALENT) 16.24/10.54 Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 U101^1(tt, M, N) -> D(N, M) 16.24/10.54 U121^1(tt, M', N') -> U122^1(equal(_>_(N', M'), true), M', N') 16.24/10.54 U121^1(tt, M', N') -> EQUAL(_>_(N', M'), true) 16.24/10.54 U121^1(tt, M', N') -> _>_^1(N', M') 16.24/10.54 U122^1(tt, M', N') -> GCD(d(N', M'), M') 16.24/10.54 U122^1(tt, M', N') -> D(N', M') 16.24/10.54 U161^1(tt, M', N) -> U162^1(equal(_>_(M', N), true)) 16.24/10.54 U161^1(tt, M', N) -> EQUAL(_>_(M', N), true) 16.24/10.54 U161^1(tt, M', N) -> _>_^1(M', N) 16.24/10.54 U171^1(tt, M', N) -> U172^1(equal(_>_(N, M'), true), M', N) 16.24/10.54 U171^1(tt, M', N) -> EQUAL(_>_(N, M'), true) 16.24/10.54 U171^1(tt, M', N) -> _>_^1(N, M') 16.24/10.54 U172^1(tt, M', N) -> QUOT(d(N, M'), M') 16.24/10.54 U172^1(tt, M', N) -> D(N, M') 16.24/10.54 U21^1(tt, M, N) -> _+_^1(N, _+_(M, _*_(N, M))) 16.24/10.54 U21^1(tt, M, N) -> _+_^1(M, _*_(N, M)) 16.24/10.54 U21^1(tt, M, N) -> _*_^1(N, M) 16.24/10.54 U41^1(tt, M, N) -> _+_^1(N, M) 16.24/10.54 U51^1(tt, M, N) -> _>_^1(M, N) 16.24/10.54 U81^1(tt, M, N) -> _>_^1(N, M) 16.24/10.54 _*_^1(N, 0) -> U11^1(isNat(N)) 16.24/10.54 _*_^1(N, 0) -> ISNAT(N) 16.24/10.54 _*_^1(s_(N), s_(M)) -> U21^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _*_^1(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 _*_^1(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 _*_^1(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 _+_^1(N, 0) -> U31^1(isNat(N), N) 16.24/10.54 _+_^1(N, 0) -> ISNAT(N) 16.24/10.54 _+_^1(s_(N), s_(M)) -> U41^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_^1(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 _+_^1(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 _+_^1(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 _<_^1(N, M) -> U51^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_^1(N, M) -> AND(isNat(M), isNat(N)) 16.24/10.54 _<_^1(N, M) -> ISNAT(M) 16.24/10.54 _<_^1(N, M) -> ISNAT(N) 16.24/10.54 _>_^1(0, M) -> U61^1(isNat(M)) 16.24/10.54 _>_^1(0, M) -> ISNAT(M) 16.24/10.54 _>_^1(N', 0) -> U71^1(isNzNat(N')) 16.24/10.54 _>_^1(N', 0) -> ISNZNAT(N') 16.24/10.54 _>_^1(s_(N), s_(M)) -> U81^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_^1(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 _>_^1(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 _>_^1(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 D(0, N) -> U91^1(isNat(N), N) 16.24/10.54 D(0, N) -> ISNAT(N) 16.24/10.54 D(s_(N), s_(M)) -> U101^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 D(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 D(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 D(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 GCD(0, N) -> U111^1(isNat(N)) 16.24/10.54 GCD(0, N) -> ISNAT(N) 16.24/10.54 GCD(N', M') -> U121^1(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 GCD(N', M') -> AND(isNzNat(M'), isNzNat(N')) 16.24/10.54 GCD(N', M') -> ISNZNAT(M') 16.24/10.54 GCD(N', M') -> ISNZNAT(N') 16.24/10.54 GCD(N', N') -> U131^1(isNzNat(N'), N') 16.24/10.54 GCD(N', N') -> ISNZNAT(N') 16.24/10.54 ISBOOLEAN(_<_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISBOOLEAN(_<_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISBOOLEAN(_<_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISBOOLEAN(_>_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISBOOLEAN(_>_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISBOOLEAN(_>_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(V) -> ISNZNAT(V) 16.24/10.54 ISNAT(_*_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(_+_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(d(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(gcd(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(p_(V1)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(quot(V1, V2)) -> AND(isNat(V1), isNzNat(V2)) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> AND(isNzNat(V1), isNzNat(V2)) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> AND(isNzNat(V1), isNzNat(V2)) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(s_(V1)) -> ISNAT(V1) 16.24/10.54 P_(s_(N)) -> U141^1(isNat(N), N) 16.24/10.54 P_(s_(N)) -> ISNAT(N) 16.24/10.54 QUOT(M', M') -> U151^1(isNzNat(M')) 16.24/10.54 QUOT(M', M') -> ISNZNAT(M') 16.24/10.54 QUOT(N, M') -> U161^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 QUOT(N, M') -> AND(isNzNat(M'), isNat(N)) 16.24/10.54 QUOT(N, M') -> ISNZNAT(M') 16.24/10.54 QUOT(N, M') -> ISNAT(N) 16.24/10.54 QUOT(N, M') -> U171^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The set E consists of the following equations: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 16.24/10.54 The set E# consists of the following equations: 16.24/10.54 16.24/10.54 _*_^1(x, y) == _*_^1(y, x) 16.24/10.54 _+_^1(x, y) == _+_^1(y, x) 16.24/10.54 D(x, y) == D(y, x) 16.24/10.54 GCD(x, y) == GCD(y, x) 16.24/10.54 16.24/10.54 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (2) 16.24/10.54 Obligation: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 U101^1(tt, M, N) -> D(N, M) 16.24/10.54 U121^1(tt, M', N') -> U122^1(equal(_>_(N', M'), true), M', N') 16.24/10.54 U121^1(tt, M', N') -> EQUAL(_>_(N', M'), true) 16.24/10.54 U121^1(tt, M', N') -> _>_^1(N', M') 16.24/10.54 U122^1(tt, M', N') -> GCD(d(N', M'), M') 16.24/10.54 U122^1(tt, M', N') -> D(N', M') 16.24/10.54 U161^1(tt, M', N) -> U162^1(equal(_>_(M', N), true)) 16.24/10.54 U161^1(tt, M', N) -> EQUAL(_>_(M', N), true) 16.24/10.54 U161^1(tt, M', N) -> _>_^1(M', N) 16.24/10.54 U171^1(tt, M', N) -> U172^1(equal(_>_(N, M'), true), M', N) 16.24/10.54 U171^1(tt, M', N) -> EQUAL(_>_(N, M'), true) 16.24/10.54 U171^1(tt, M', N) -> _>_^1(N, M') 16.24/10.54 U172^1(tt, M', N) -> QUOT(d(N, M'), M') 16.24/10.54 U172^1(tt, M', N) -> D(N, M') 16.24/10.54 U21^1(tt, M, N) -> _+_^1(N, _+_(M, _*_(N, M))) 16.24/10.54 U21^1(tt, M, N) -> _+_^1(M, _*_(N, M)) 16.24/10.54 U21^1(tt, M, N) -> _*_^1(N, M) 16.24/10.54 U41^1(tt, M, N) -> _+_^1(N, M) 16.24/10.54 U51^1(tt, M, N) -> _>_^1(M, N) 16.24/10.54 U81^1(tt, M, N) -> _>_^1(N, M) 16.24/10.54 _*_^1(N, 0) -> U11^1(isNat(N)) 16.24/10.54 _*_^1(N, 0) -> ISNAT(N) 16.24/10.54 _*_^1(s_(N), s_(M)) -> U21^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _*_^1(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 _*_^1(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 _*_^1(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 _+_^1(N, 0) -> U31^1(isNat(N), N) 16.24/10.54 _+_^1(N, 0) -> ISNAT(N) 16.24/10.54 _+_^1(s_(N), s_(M)) -> U41^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_^1(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 _+_^1(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 _+_^1(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 _<_^1(N, M) -> U51^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_^1(N, M) -> AND(isNat(M), isNat(N)) 16.24/10.54 _<_^1(N, M) -> ISNAT(M) 16.24/10.54 _<_^1(N, M) -> ISNAT(N) 16.24/10.54 _>_^1(0, M) -> U61^1(isNat(M)) 16.24/10.54 _>_^1(0, M) -> ISNAT(M) 16.24/10.54 _>_^1(N', 0) -> U71^1(isNzNat(N')) 16.24/10.54 _>_^1(N', 0) -> ISNZNAT(N') 16.24/10.54 _>_^1(s_(N), s_(M)) -> U81^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_^1(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 _>_^1(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 _>_^1(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 D(0, N) -> U91^1(isNat(N), N) 16.24/10.54 D(0, N) -> ISNAT(N) 16.24/10.54 D(s_(N), s_(M)) -> U101^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 D(s_(N), s_(M)) -> AND(isNat(M), isNat(N)) 16.24/10.54 D(s_(N), s_(M)) -> ISNAT(M) 16.24/10.54 D(s_(N), s_(M)) -> ISNAT(N) 16.24/10.54 GCD(0, N) -> U111^1(isNat(N)) 16.24/10.54 GCD(0, N) -> ISNAT(N) 16.24/10.54 GCD(N', M') -> U121^1(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 GCD(N', M') -> AND(isNzNat(M'), isNzNat(N')) 16.24/10.54 GCD(N', M') -> ISNZNAT(M') 16.24/10.54 GCD(N', M') -> ISNZNAT(N') 16.24/10.54 GCD(N', N') -> U131^1(isNzNat(N'), N') 16.24/10.54 GCD(N', N') -> ISNZNAT(N') 16.24/10.54 ISBOOLEAN(_<_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISBOOLEAN(_<_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISBOOLEAN(_<_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISBOOLEAN(_>_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISBOOLEAN(_>_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISBOOLEAN(_>_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(V) -> ISNZNAT(V) 16.24/10.54 ISNAT(_*_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(_+_(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(d(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(gcd(V1, V2)) -> AND(isNat(V1), isNat(V2)) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(p_(V1)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(quot(V1, V2)) -> AND(isNat(V1), isNzNat(V2)) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> AND(isNzNat(V1), isNzNat(V2)) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> AND(isNzNat(V1), isNzNat(V2)) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(s_(V1)) -> ISNAT(V1) 16.24/10.54 P_(s_(N)) -> U141^1(isNat(N), N) 16.24/10.54 P_(s_(N)) -> ISNAT(N) 16.24/10.54 QUOT(M', M') -> U151^1(isNzNat(M')) 16.24/10.54 QUOT(M', M') -> ISNZNAT(M') 16.24/10.54 QUOT(N, M') -> U161^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 QUOT(N, M') -> AND(isNzNat(M'), isNat(N)) 16.24/10.54 QUOT(N, M') -> ISNZNAT(M') 16.24/10.54 QUOT(N, M') -> ISNAT(N) 16.24/10.54 QUOT(N, M') -> U171^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The set E consists of the following equations: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 16.24/10.54 The set E# consists of the following equations: 16.24/10.54 16.24/10.54 _*_^1(x, y) == _*_^1(y, x) 16.24/10.54 _+_^1(x, y) == _+_^1(y, x) 16.24/10.54 D(x, y) == D(y, x) 16.24/10.54 GCD(x, y) == GCD(y, x) 16.24/10.54 16.24/10.54 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (3) EDependencyGraphProof (EQUIVALENT) 16.24/10.54 The approximation of the Equational Dependency Graph [DA_STEIN] contains 7 SCCs with 66 less nodes. 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (4) 16.24/10.54 Complex Obligation (AND) 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (5) 16.24/10.54 Obligation: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(V) -> ISNZNAT(V) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(p_(V1)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(s_(V1)) -> ISNAT(V1) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNAT(V1) 16.24/10.54 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The set E consists of the following equations: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 16.24/10.54 The set E# consists of the following equations: 16.24/10.54 16.24/10.54 _*_^1(x, y) == _*_^1(y, x) 16.24/10.54 _+_^1(x, y) == _+_^1(y, x) 16.24/10.54 D(x, y) == D(y, x) 16.24/10.54 GCD(x, y) == GCD(y, x) 16.24/10.54 16.24/10.54 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (6) ESharpUsableEquationsProof (EQUIVALENT) 16.24/10.54 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 16.24/10.54 _*_^1(x, y) == _*_^1(y, x) 16.24/10.54 _+_^1(x, y) == _+_^1(y, x) 16.24/10.54 D(x, y) == D(y, x) 16.24/10.54 GCD(x, y) == GCD(y, x) 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (7) 16.24/10.54 Obligation: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(V) -> ISNZNAT(V) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(p_(V1)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(s_(V1)) -> ISNAT(V1) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNAT(V1) 16.24/10.54 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The set E consists of the following equations: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 16.24/10.54 E# is empty. 16.24/10.54 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (8) EUsableRulesReductionPairsProof (EQUIVALENT) 16.24/10.54 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. 16.24/10.54 16.24/10.54 The following dependency pairs can be deleted: 16.24/10.54 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(p_(V1)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNZNAT(s_(V1)) -> ISNAT(V1) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNZNAT(gcd(V1, V2)) -> ISNZNAT(V1) 16.24/10.54 ISNAT(_+_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(_*_(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(gcd(V1, V2)) -> ISNAT(V1) 16.24/10.54 ISNAT(d(V1, V2)) -> ISNAT(V2) 16.24/10.54 ISNZNAT(_*_(V1, V2)) -> ISNZNAT(V2) 16.24/10.54 ISNAT(quot(V1, V2)) -> ISNAT(V1) 16.24/10.54 The following rules are removed from R: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 The following equations are removed from E: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 Used ordering: POLO with Polynomial interpretation [POLO]: 16.24/10.54 16.24/10.54 POL(ISNAT(x_1)) = x_1 16.24/10.54 POL(ISNZNAT(x_1)) = x_1 16.24/10.54 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 16.24/10.54 POL(_+_(x_1, x_2)) = 3*x_1 + 3*x_2 16.24/10.54 POL(d(x_1, x_2)) = 3*x_1 + 3*x_2 16.24/10.54 POL(gcd(x_1, x_2)) = 3*x_1 + 3*x_2 16.24/10.54 POL(p_(x_1)) = 3*x_1 16.24/10.54 POL(quot(x_1, x_2)) = 3*x_1 + 3*x_2 16.24/10.54 POL(s_(x_1)) = 3*x_1 16.24/10.54 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (9) 16.24/10.54 Obligation: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 ISNAT(V) -> ISNZNAT(V) 16.24/10.54 16.24/10.54 R is empty. 16.24/10.54 E is empty. 16.24/10.54 E# is empty. 16.24/10.54 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (10) EDependencyGraphProof (EQUIVALENT) 16.24/10.54 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (11) 16.24/10.54 TRUE 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (12) 16.24/10.54 Obligation: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 _>_^1(s_(N), s_(M)) -> U81^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 U81^1(tt, M, N) -> _>_^1(N, M) 16.24/10.54 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.54 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.54 U101(tt, M, N) -> d(N, M) 16.24/10.54 U11(tt) -> 0 16.24/10.54 U111(tt) -> 0 16.24/10.54 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.54 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.54 U131(tt, N') -> N' 16.24/10.54 U141(tt, N) -> N 16.24/10.54 U151(tt) -> s_(0) 16.24/10.54 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.54 U162(tt) -> 0 16.24/10.54 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.54 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.54 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.54 U31(tt, N) -> N 16.24/10.54 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.54 U51(tt, M, N) -> _>_(M, N) 16.24/10.54 U61(tt) -> false 16.24/10.54 U71(tt) -> true 16.24/10.54 U81(tt, M, N) -> _>_(N, M) 16.24/10.54 U91(tt, N) -> N 16.24/10.54 _*_(N, 0) -> U11(isNat(N)) 16.24/10.54 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.54 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.54 _>_(0, M) -> U61(isNat(M)) 16.24/10.54 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.54 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.54 and(tt, X) -> X 16.24/10.54 d(0, N) -> U91(isNat(N), N) 16.24/10.54 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.54 equal(X, X) -> tt 16.24/10.54 gcd(0, N) -> U111(isNat(N)) 16.24/10.54 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.54 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.54 isBoolean(false) -> tt 16.24/10.54 isBoolean(true) -> tt 16.24/10.54 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(0) -> tt 16.24/10.54 isNat(V) -> isNzNat(V) 16.24/10.54 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.54 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.54 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(1) -> tt 16.24/10.54 isNzNat(2) -> tt 16.24/10.54 isNzNat(3) -> tt 16.24/10.54 isNzNat(4) -> tt 16.24/10.54 isNzNat(5) -> tt 16.24/10.54 isNzNat(6) -> tt 16.24/10.54 isNzNat(7) -> tt 16.24/10.54 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.54 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.54 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.54 quot(M', M') -> U151(isNzNat(M')) 16.24/10.54 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.54 16.24/10.54 The set E consists of the following equations: 16.24/10.54 16.24/10.54 _*_(x, y) == _*_(y, x) 16.24/10.54 _+_(x, y) == _+_(y, x) 16.24/10.54 d(x, y) == d(y, x) 16.24/10.54 gcd(x, y) == gcd(y, x) 16.24/10.54 16.24/10.54 The set E# consists of the following equations: 16.24/10.54 16.24/10.54 _*_^1(x, y) == _*_^1(y, x) 16.24/10.54 _+_^1(x, y) == _+_^1(y, x) 16.24/10.54 D(x, y) == D(y, x) 16.24/10.54 GCD(x, y) == GCD(y, x) 16.24/10.54 16.24/10.54 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (13) ESharpUsableEquationsProof (EQUIVALENT) 16.24/10.54 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 16.24/10.54 _*_^1(x, y) == _*_^1(y, x) 16.24/10.54 _+_^1(x, y) == _+_^1(y, x) 16.24/10.54 D(x, y) == D(y, x) 16.24/10.54 GCD(x, y) == GCD(y, x) 16.24/10.54 16.24/10.54 ---------------------------------------- 16.24/10.54 16.24/10.54 (14) 16.24/10.54 Obligation: 16.24/10.54 The TRS P consists of the following rules: 16.24/10.54 16.24/10.54 _>_^1(s_(N), s_(M)) -> U81^1(and(isNat(M), isNat(N)), M, N) 16.24/10.54 U81^1(tt, M, N) -> _>_^1(N, M) 16.24/10.54 16.24/10.54 The TRS R consists of the following rules: 16.24/10.54 16.24/10.54 1 -> s_(0) 16.24/10.54 2 -> s_(s_(0)) 16.24/10.54 3 -> s_(s_(s_(0))) 16.24/10.54 4 -> s_(s_(s_(s_(0)))) 16.24/10.54 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.54 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 E# is empty. 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (15) EUsableRulesReductionPairsProof (EQUIVALENT) 16.24/10.55 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. 16.24/10.55 16.24/10.55 The following dependency pairs can be deleted: 16.24/10.55 16.24/10.55 _>_^1(s_(N), s_(M)) -> U81^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 The following rules are removed from R: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 The following equations are removed from E: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 Used ordering: POLO with Polynomial interpretation [POLO]: 16.24/10.55 16.24/10.55 POL(0) = 0 16.24/10.55 POL(1) = 0 16.24/10.55 POL(2) = 0 16.24/10.55 POL(3) = 0 16.24/10.55 POL(4) = 0 16.24/10.55 POL(5) = 0 16.24/10.55 POL(6) = 0 16.24/10.55 POL(7) = 0 16.24/10.55 POL(U81^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 16.24/10.55 POL(_*_(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 16.24/10.55 POL(_+_(x_1, x_2)) = 2 + 3*x_1 + 2*x_2 16.24/10.55 POL(_>_^1(x_1, x_2)) = 2*x_1 + 2*x_2 16.24/10.55 POL(and(x_1, x_2)) = 2*x_1 + 2*x_2 16.24/10.55 POL(d(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 16.24/10.55 POL(gcd(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 16.24/10.55 POL(isNat(x_1)) = x_1 16.24/10.55 POL(isNzNat(x_1)) = x_1 16.24/10.55 POL(p_(x_1)) = 3*x_1 16.24/10.55 POL(quot(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 16.24/10.55 POL(s_(x_1)) = 3*x_1 16.24/10.55 POL(tt) = 0 16.24/10.55 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (16) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U81^1(tt, M, N) -> _>_^1(N, M) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 and(tt, X) -> X 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 16.24/10.55 E is empty. 16.24/10.55 E# is empty. 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (17) EDependencyGraphProof (EQUIVALENT) 16.24/10.55 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (18) 16.24/10.55 TRUE 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (19) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U41^1(tt, M, N) -> _+_^1(N, M) 16.24/10.55 _+_^1(s_(N), s_(M)) -> U41^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (20) ESharpUsableEquationsProof (EQUIVALENT) 16.24/10.55 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (21) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U41^1(tt, M, N) -> _+_^1(N, M) 16.24/10.55 _+_^1(s_(N), s_(M)) -> U41^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (22) EUsableRulesReductionPairsProof (EQUIVALENT) 16.24/10.55 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. 16.24/10.55 16.24/10.55 The following dependency pairs can be deleted: 16.24/10.55 16.24/10.55 _+_^1(s_(N), s_(M)) -> U41^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 The following rules are removed from R: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 The following equations are removed from E: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 Used ordering: POLO with Polynomial interpretation [POLO]: 16.24/10.55 16.24/10.55 POL(0) = 0 16.24/10.55 POL(1) = 0 16.24/10.55 POL(2) = 0 16.24/10.55 POL(3) = 0 16.24/10.55 POL(4) = 0 16.24/10.55 POL(5) = 0 16.24/10.55 POL(6) = 0 16.24/10.55 POL(7) = 0 16.24/10.55 POL(U41^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 16.24/10.55 POL(_*_(x_1, x_2)) = 3 + 2*x_1 + 2*x_2 16.24/10.55 POL(_+_(x_1, x_2)) = 3 + 2*x_1 + 2*x_2 16.24/10.55 POL(_+_^1(x_1, x_2)) = 2*x_1 + 2*x_2 16.24/10.55 POL(and(x_1, x_2)) = x_1 + x_2 16.24/10.55 POL(d(x_1, x_2)) = 2*x_1 + 2*x_2 16.24/10.55 POL(gcd(x_1, x_2)) = 3 + 2*x_1 + 2*x_2 16.24/10.55 POL(isNat(x_1)) = 2*x_1 16.24/10.55 POL(isNzNat(x_1)) = x_1 16.24/10.55 POL(p_(x_1)) = 3*x_1 16.24/10.55 POL(quot(x_1, x_2)) = 2 + 2*x_1 + 3*x_2 16.24/10.55 POL(s_(x_1)) = 3*x_1 16.24/10.55 POL(tt) = 0 16.24/10.55 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (23) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U41^1(tt, M, N) -> _+_^1(N, M) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 and(tt, X) -> X 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 16.24/10.55 E is empty. 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (24) EDependencyGraphProof (EQUIVALENT) 16.24/10.55 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (25) 16.24/10.55 TRUE 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (26) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 _*_^1(s_(N), s_(M)) -> U21^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U21^1(tt, M, N) -> _*_^1(N, M) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (27) ESharpUsableEquationsProof (EQUIVALENT) 16.24/10.55 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (28) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 _*_^1(s_(N), s_(M)) -> U21^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U21^1(tt, M, N) -> _*_^1(N, M) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (29) EUsableRulesReductionPairsProof (EQUIVALENT) 16.24/10.55 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. 16.24/10.55 16.24/10.55 The following dependency pairs can be deleted: 16.24/10.55 16.24/10.55 _*_^1(s_(N), s_(M)) -> U21^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U21^1(tt, M, N) -> _*_^1(N, M) 16.24/10.55 The following rules are removed from R: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 The following equations are removed from E: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 Used ordering: POLO with Polynomial interpretation [POLO]: 16.24/10.55 16.24/10.55 POL(0) = 2 16.24/10.55 POL(1) = 2 16.24/10.55 POL(2) = 2 16.24/10.55 POL(3) = 1 16.24/10.55 POL(4) = 2 16.24/10.55 POL(5) = 2 16.24/10.55 POL(6) = 1 16.24/10.55 POL(7) = 2 16.24/10.55 POL(U21^1(x_1, x_2, x_3)) = 2 + 2*x_1 + 3*x_2 + 3*x_3 16.24/10.55 POL(_*_(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(_*_^1(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 16.24/10.55 POL(_+_(x_1, x_2)) = 3 + 2*x_1 + 2*x_2 16.24/10.55 POL(and(x_1, x_2)) = 3 + x_1 + 2*x_2 16.24/10.55 POL(d(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(gcd(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(isNat(x_1)) = x_1 16.24/10.55 POL(isNzNat(x_1)) = x_1 16.24/10.55 POL(p_(x_1)) = 3*x_1 16.24/10.55 POL(quot(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(s_(x_1)) = 3 + 3*x_1 16.24/10.55 POL(tt) = 1 16.24/10.55 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (30) 16.24/10.55 Obligation: 16.24/10.55 P is empty. 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 16.24/10.55 E is empty. 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (31) PisEmptyProof (EQUIVALENT) 16.24/10.55 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (32) 16.24/10.55 YES 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (33) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 D(s_(N), s_(M)) -> U101^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U101^1(tt, M, N) -> D(N, M) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (34) ESharpUsableEquationsProof (EQUIVALENT) 16.24/10.55 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (35) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 D(s_(N), s_(M)) -> U101^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U101^1(tt, M, N) -> D(N, M) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (36) EUsableRulesReductionPairsProof (EQUIVALENT) 16.24/10.55 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. 16.24/10.55 16.24/10.55 The following dependency pairs can be deleted: 16.24/10.55 16.24/10.55 D(s_(N), s_(M)) -> U101^1(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U101^1(tt, M, N) -> D(N, M) 16.24/10.55 The following rules are removed from R: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 The following equations are removed from E: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 Used ordering: POLO with Polynomial interpretation [POLO]: 16.24/10.55 16.24/10.55 POL(0) = 2 16.24/10.55 POL(1) = 2 16.24/10.55 POL(2) = 2 16.24/10.55 POL(3) = 1 16.24/10.55 POL(4) = 2 16.24/10.55 POL(5) = 2 16.24/10.55 POL(6) = 1 16.24/10.55 POL(7) = 2 16.24/10.55 POL(D(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 16.24/10.55 POL(U101^1(x_1, x_2, x_3)) = 2 + 2*x_1 + 3*x_2 + 3*x_3 16.24/10.55 POL(_*_(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(_+_(x_1, x_2)) = 3 + 2*x_1 + 2*x_2 16.24/10.55 POL(and(x_1, x_2)) = 3 + x_1 + 2*x_2 16.24/10.55 POL(d(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(gcd(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(isNat(x_1)) = x_1 16.24/10.55 POL(isNzNat(x_1)) = x_1 16.24/10.55 POL(p_(x_1)) = 3*x_1 16.24/10.55 POL(quot(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 16.24/10.55 POL(s_(x_1)) = 3 + 3*x_1 16.24/10.55 POL(tt) = 1 16.24/10.55 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (37) 16.24/10.55 Obligation: 16.24/10.55 P is empty. 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 16.24/10.55 E is empty. 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (38) PisEmptyProof (EQUIVALENT) 16.24/10.55 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (39) 16.24/10.55 YES 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (40) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U171^1(tt, M', N) -> U172^1(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172^1(tt, M', N) -> QUOT(d(N, M'), M') 16.24/10.55 QUOT(N, M') -> U171^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (41) ESharpUsableEquationsProof (EQUIVALENT) 16.24/10.55 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (42) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U171^1(tt, M', N) -> U172^1(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172^1(tt, M', N) -> QUOT(d(N, M'), M') 16.24/10.55 QUOT(N, M') -> U171^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 E# is empty. 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (43) EUsableRulesProof (EQUIVALENT) 16.24/10.55 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: 16.24/10.55 c(x, y) -> x 16.24/10.55 c(x, y) -> y 16.24/10.55 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (44) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 U171^1(tt, M', N) -> U172^1(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172^1(tt, M', N) -> QUOT(d(N, M'), M') 16.24/10.55 QUOT(N, M') -> U171^1(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 and(tt, X) -> X 16.24/10.55 isNat(0) -> tt 16.24/10.55 equal(X, X) -> tt 16.24/10.55 U61(tt) -> false 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 U71(tt) -> true 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 c(x, y) -> x 16.24/10.55 c(x, y) -> y 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 16.24/10.55 E# is empty. 16.24/10.55 We have to consider all (P,E#,R,E)-chains 16.24/10.55 ---------------------------------------- 16.24/10.55 16.24/10.55 (45) 16.24/10.55 Obligation: 16.24/10.55 The TRS P consists of the following rules: 16.24/10.55 16.24/10.55 GCD(N', M') -> U121^1(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 U122^1(tt, M', N') -> GCD(d(N', M'), M') 16.24/10.55 U121^1(tt, M', N') -> U122^1(equal(_>_(N', M'), true), M', N') 16.24/10.55 16.24/10.55 The TRS R consists of the following rules: 16.24/10.55 16.24/10.55 1 -> s_(0) 16.24/10.55 2 -> s_(s_(0)) 16.24/10.55 3 -> s_(s_(s_(0))) 16.24/10.55 4 -> s_(s_(s_(s_(0)))) 16.24/10.55 5 -> s_(s_(s_(s_(s_(0))))) 16.24/10.55 6 -> s_(s_(s_(s_(s_(s_(0)))))) 16.24/10.55 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 16.24/10.55 U101(tt, M, N) -> d(N, M) 16.24/10.55 U11(tt) -> 0 16.24/10.55 U111(tt) -> 0 16.24/10.55 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 16.24/10.55 U122(tt, M', N') -> gcd(d(N', M'), M') 16.24/10.55 U131(tt, N') -> N' 16.24/10.55 U141(tt, N) -> N 16.24/10.55 U151(tt) -> s_(0) 16.24/10.55 U161(tt, M', N) -> U162(equal(_>_(M', N), true)) 16.24/10.55 U162(tt) -> 0 16.24/10.55 U171(tt, M', N) -> U172(equal(_>_(N, M'), true), M', N) 16.24/10.55 U172(tt, M', N) -> s_(quot(d(N, M'), M')) 16.24/10.55 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 16.24/10.55 U31(tt, N) -> N 16.24/10.55 U41(tt, M, N) -> s_(s_(_+_(N, M))) 16.24/10.55 U51(tt, M, N) -> _>_(M, N) 16.24/10.55 U61(tt) -> false 16.24/10.55 U71(tt) -> true 16.24/10.55 U81(tt, M, N) -> _>_(N, M) 16.24/10.55 U91(tt, N) -> N 16.24/10.55 _*_(N, 0) -> U11(isNat(N)) 16.24/10.55 _*_(s_(N), s_(M)) -> U21(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _+_(N, 0) -> U31(isNat(N), N) 16.24/10.55 _+_(s_(N), s_(M)) -> U41(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _<_(N, M) -> U51(and(isNat(M), isNat(N)), M, N) 16.24/10.55 _>_(0, M) -> U61(isNat(M)) 16.24/10.55 _>_(N', 0) -> U71(isNzNat(N')) 16.24/10.55 _>_(s_(N), s_(M)) -> U81(and(isNat(M), isNat(N)), M, N) 16.24/10.55 and(tt, X) -> X 16.24/10.55 d(0, N) -> U91(isNat(N), N) 16.24/10.55 d(s_(N), s_(M)) -> U101(and(isNat(M), isNat(N)), M, N) 16.24/10.55 equal(X, X) -> tt 16.24/10.55 gcd(0, N) -> U111(isNat(N)) 16.24/10.55 gcd(N', M') -> U121(and(isNzNat(M'), isNzNat(N')), M', N') 16.24/10.55 gcd(N', N') -> U131(isNzNat(N'), N') 16.24/10.55 isBoolean(false) -> tt 16.24/10.55 isBoolean(true) -> tt 16.24/10.55 isBoolean(_<_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isBoolean(_>_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(0) -> tt 16.24/10.55 isNat(V) -> isNzNat(V) 16.24/10.55 isNat(_*_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(_+_(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(d(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(gcd(V1, V2)) -> and(isNat(V1), isNat(V2)) 16.24/10.55 isNat(p_(V1)) -> isNzNat(V1) 16.24/10.55 isNat(quot(V1, V2)) -> and(isNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(1) -> tt 16.24/10.55 isNzNat(2) -> tt 16.24/10.55 isNzNat(3) -> tt 16.24/10.55 isNzNat(4) -> tt 16.24/10.55 isNzNat(5) -> tt 16.24/10.55 isNzNat(6) -> tt 16.24/10.55 isNzNat(7) -> tt 16.24/10.55 isNzNat(_*_(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(gcd(V1, V2)) -> and(isNzNat(V1), isNzNat(V2)) 16.24/10.55 isNzNat(s_(V1)) -> isNat(V1) 16.24/10.55 p_(s_(N)) -> U141(isNat(N), N) 16.24/10.55 quot(M', M') -> U151(isNzNat(M')) 16.24/10.55 quot(N, M') -> U161(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 quot(N, M') -> U171(and(isNzNat(M'), isNat(N)), M', N) 16.24/10.55 16.24/10.55 The set E consists of the following equations: 16.24/10.55 16.24/10.55 _*_(x, y) == _*_(y, x) 16.24/10.55 _+_(x, y) == _+_(y, x) 16.24/10.55 d(x, y) == d(y, x) 16.24/10.55 gcd(x, y) == gcd(y, x) 16.24/10.55 16.24/10.55 The set E# consists of the following equations: 16.24/10.55 16.24/10.55 _*_^1(x, y) == _*_^1(y, x) 16.24/10.55 _+_^1(x, y) == _+_^1(y, x) 16.24/10.55 D(x, y) == D(y, x) 16.24/10.55 GCD(x, y) == GCD(y, x) 16.24/10.55 16.24/10.55 We have to consider all minimal (P,E#,R,E)-chains 16.24/10.58 EOF