209.95/194.32 MAYBE 210.10/194.34 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 210.10/194.34 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 210.10/194.34 210.10/194.34 210.10/194.34 Termination of the given ETRS could not be shown: 210.10/194.34 210.10/194.34 (0) ETRS 210.10/194.34 (1) EquationalDependencyPairsProof [EQUIVALENT, 103 ms] 210.10/194.34 (2) EDP 210.10/194.34 (3) EDependencyGraphProof [EQUIVALENT, 0 ms] 210.10/194.34 (4) AND 210.10/194.34 (5) EDP 210.10/194.34 (6) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (7) EDP 210.10/194.34 (8) EUsableRulesReductionPairsProof [EQUIVALENT, 77 ms] 210.10/194.34 (9) EDP 210.10/194.34 (10) PisEmptyProof [EQUIVALENT, 0 ms] 210.10/194.34 (11) YES 210.10/194.34 (12) EDP 210.10/194.34 (13) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (14) EDP 210.10/194.34 (15) EUsableRulesReductionPairsProof [EQUIVALENT, 237 ms] 210.10/194.34 (16) EDP 210.10/194.34 (17) EDependencyGraphProof [EQUIVALENT, 0 ms] 210.10/194.34 (18) TRUE 210.10/194.34 (19) EDP 210.10/194.34 (20) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (21) EDP 210.10/194.34 (22) EUsableRulesReductionPairsProof [EQUIVALENT, 99 ms] 210.10/194.34 (23) EDP 210.10/194.34 (24) EDependencyGraphProof [EQUIVALENT, 0 ms] 210.10/194.34 (25) TRUE 210.10/194.34 (26) EDP 210.10/194.34 (27) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (28) EDP 210.10/194.34 (29) EUsableRulesReductionPairsProof [EQUIVALENT, 136 ms] 210.10/194.34 (30) EDP 210.10/194.34 (31) EDependencyGraphProof [EQUIVALENT, 0 ms] 210.10/194.34 (32) TRUE 210.10/194.34 (33) EDP 210.10/194.34 (34) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (35) EDP 210.10/194.34 (36) EUsableRulesReductionPairsProof [EQUIVALENT, 69 ms] 210.10/194.34 (37) EDP 210.10/194.34 (38) EDependencyGraphProof [EQUIVALENT, 0 ms] 210.10/194.34 (39) TRUE 210.10/194.34 (40) EDP 210.10/194.34 (41) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (42) EDP 210.10/194.34 (43) EUsableRulesReductionPairsProof [EQUIVALENT, 102 ms] 210.10/194.34 (44) EDP 210.10/194.34 (45) EDependencyGraphProof [EQUIVALENT, 0 ms] 210.10/194.34 (46) TRUE 210.10/194.34 (47) EDP 210.10/194.34 (48) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 210.10/194.34 (49) EDP 210.10/194.34 (50) EUsableRulesProof [EQUIVALENT, 7 ms] 210.10/194.34 (51) EDP 210.10/194.34 (52) EDP 210.10/194.34 210.10/194.34 210.10/194.34 ---------------------------------------- 210.10/194.34 210.10/194.34 (0) 210.10/194.34 Obligation: 210.10/194.34 Equational rewrite system: 210.10/194.34 The TRS R consists of the following rules: 210.10/194.34 210.10/194.34 1 -> s_(0) 210.10/194.34 2 -> s_(s_(0)) 210.10/194.34 3 -> s_(s_(s_(0))) 210.10/194.34 4 -> s_(s_(s_(s_(0)))) 210.10/194.34 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.34 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.34 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.34 U101(tt, M, N) -> d(N, M) 210.10/194.34 U11(tt) -> 0 210.10/194.34 U111(tt) -> 0 210.10/194.34 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.34 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.34 U131(tt, N') -> N' 210.10/194.34 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.34 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.34 U143(tt) -> tt 210.10/194.34 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.34 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.34 U153(tt) -> tt 210.10/194.34 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.34 U162(tt) -> tt 210.10/194.34 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.34 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.34 U173(tt) -> tt 210.10/194.34 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.34 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.34 U183(tt) -> tt 210.10/194.34 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.34 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.34 U193(tt) -> tt 210.10/194.34 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.34 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.34 U203(tt) -> tt 210.10/194.34 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.34 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.34 U212(tt) -> tt 210.10/194.34 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.34 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.34 U223(tt) -> tt 210.10/194.34 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.34 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.34 U233(tt) -> tt 210.10/194.34 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.34 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.34 U243(tt) -> tt 210.10/194.34 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.34 U252(tt) -> tt 210.10/194.34 U261(tt, N) -> N 210.10/194.34 U271(tt) -> s_(0) 210.10/194.34 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.34 U282(tt) -> 0 210.10/194.34 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.34 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.34 U31(tt, N) -> N 210.10/194.34 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.34 U51(tt, M, N) -> _>_(M, N) 210.10/194.34 U61(tt) -> false 210.10/194.34 U71(tt) -> true 210.10/194.34 U81(tt, M, N) -> _>_(N, M) 210.10/194.34 U91(tt, N) -> N 210.10/194.34 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.34 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.34 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.34 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.34 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 and(tt, X) -> X 210.10/194.34 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.34 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 equal(X, X) -> tt 210.10/194.34 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.34 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.34 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.34 isBoolean(false) -> tt 210.10/194.34 isBoolean(true) -> tt 210.10/194.34 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isBooleanKind(false) -> tt 210.10/194.34 isBooleanKind(true) -> tt 210.10/194.34 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNat(0) -> tt 210.10/194.34 isNat(V) -> U161(isNatKind(V), V) 210.10/194.34 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.34 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNatKind(0) -> tt 210.10/194.34 isNatKind(1) -> tt 210.10/194.34 isNatKind(2) -> tt 210.10/194.34 isNatKind(3) -> tt 210.10/194.34 isNatKind(4) -> tt 210.10/194.34 isNatKind(5) -> tt 210.10/194.34 isNatKind(6) -> tt 210.10/194.34 isNatKind(7) -> tt 210.10/194.34 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.34 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.34 isNzNat(1) -> tt 210.10/194.34 isNzNat(2) -> tt 210.10/194.34 isNzNat(3) -> tt 210.10/194.34 isNzNat(4) -> tt 210.10/194.34 isNzNat(5) -> tt 210.10/194.34 isNzNat(6) -> tt 210.10/194.34 isNzNat(7) -> tt 210.10/194.34 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.34 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.34 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.34 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.34 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.34 210.10/194.34 The set E consists of the following equations: 210.10/194.34 210.10/194.34 _*_(x, y) == _*_(y, x) 210.10/194.34 _+_(x, y) == _+_(y, x) 210.10/194.34 d(x, y) == d(y, x) 210.10/194.34 gcd(x, y) == gcd(y, x) 210.10/194.34 210.10/194.34 210.10/194.34 ---------------------------------------- 210.10/194.34 210.10/194.34 (1) EquationalDependencyPairsProof (EQUIVALENT) 210.10/194.34 Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: 210.10/194.34 The TRS P consists of the following rules: 210.10/194.34 210.10/194.34 U101^1(tt, M, N) -> D(N, M) 210.10/194.34 U121^1(tt, M', N') -> U122^1(equal(_>_(N', M'), true), M', N') 210.10/194.34 U121^1(tt, M', N') -> EQUAL(_>_(N', M'), true) 210.10/194.34 U121^1(tt, M', N') -> _>_^1(N', M') 210.10/194.34 U122^1(tt, M', N') -> GCD(d(N', M'), M') 210.10/194.34 U122^1(tt, M', N') -> D(N', M') 210.10/194.34 U141^1(tt, V1, V2) -> U142^1(isNat(V1), V2) 210.10/194.34 U141^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U142^1(tt, V2) -> U143^1(isNat(V2)) 210.10/194.34 U142^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U151^1(tt, V1, V2) -> U152^1(isNat(V1), V2) 210.10/194.34 U151^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U152^1(tt, V2) -> U153^1(isNat(V2)) 210.10/194.34 U152^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U161^1(tt, V) -> U162^1(isNzNat(V)) 210.10/194.34 U161^1(tt, V) -> ISNZNAT(V) 210.10/194.34 U171^1(tt, V1, V2) -> U172^1(isNat(V1), V2) 210.10/194.34 U171^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U172^1(tt, V2) -> U173^1(isNat(V2)) 210.10/194.34 U172^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U181^1(tt, V1, V2) -> U182^1(isNat(V1), V2) 210.10/194.34 U181^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U182^1(tt, V2) -> U183^1(isNat(V2)) 210.10/194.34 U182^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U191^1(tt, V1, V2) -> U192^1(isNat(V1), V2) 210.10/194.34 U191^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U192^1(tt, V2) -> U193^1(isNat(V2)) 210.10/194.34 U192^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U201^1(tt, V1, V2) -> U202^1(isNat(V1), V2) 210.10/194.34 U201^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U202^1(tt, V2) -> U203^1(isNat(V2)) 210.10/194.34 U202^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U21^1(tt, M, N) -> _+_^1(N, _+_(M, _*_(N, M))) 210.10/194.34 U21^1(tt, M, N) -> _+_^1(M, _*_(N, M)) 210.10/194.34 U21^1(tt, M, N) -> _*_^1(N, M) 210.10/194.34 U211^1(tt, V1) -> U212^1(isNzNat(V1)) 210.10/194.34 U211^1(tt, V1) -> ISNZNAT(V1) 210.10/194.34 U221^1(tt, V1, V2) -> U222^1(isNat(V1), V2) 210.10/194.34 U221^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U222^1(tt, V2) -> U223^1(isNzNat(V2)) 210.10/194.34 U222^1(tt, V2) -> ISNZNAT(V2) 210.10/194.34 U231^1(tt, V1, V2) -> U232^1(isNzNat(V1), V2) 210.10/194.34 U231^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.34 U232^1(tt, V2) -> U233^1(isNzNat(V2)) 210.10/194.34 U232^1(tt, V2) -> ISNZNAT(V2) 210.10/194.34 U241^1(tt, V1, V2) -> U242^1(isNzNat(V1), V2) 210.10/194.34 U241^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.34 U242^1(tt, V2) -> U243^1(isNzNat(V2)) 210.10/194.34 U242^1(tt, V2) -> ISNZNAT(V2) 210.10/194.34 U251^1(tt, V1) -> U252^1(isNat(V1)) 210.10/194.34 U251^1(tt, V1) -> ISNAT(V1) 210.10/194.34 U281^1(tt, M', N) -> U282^1(equal(_>_(M', N), true)) 210.10/194.34 U281^1(tt, M', N) -> EQUAL(_>_(M', N), true) 210.10/194.34 U281^1(tt, M', N) -> _>_^1(M', N) 210.10/194.34 U291^1(tt, M', N) -> U292^1(equal(_>_(N, M'), true), M', N) 210.10/194.34 U291^1(tt, M', N) -> EQUAL(_>_(N, M'), true) 210.10/194.34 U291^1(tt, M', N) -> _>_^1(N, M') 210.10/194.34 U292^1(tt, M', N) -> QUOT(d(N, M'), M') 210.10/194.34 U292^1(tt, M', N) -> D(N, M') 210.10/194.34 U41^1(tt, M, N) -> _+_^1(N, M) 210.10/194.34 U51^1(tt, M, N) -> _>_^1(M, N) 210.10/194.34 U81^1(tt, M, N) -> _>_^1(N, M) 210.10/194.34 _*_^1(N, 0) -> U11^1(and(isNat(N), isNatKind(N))) 210.10/194.34 _*_^1(N, 0) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 _*_^1(N, 0) -> ISNAT(N) 210.10/194.34 _*_^1(N, 0) -> ISNATKIND(N) 210.10/194.34 _*_^1(s_(N), s_(M)) -> U21^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _*_^1(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.34 _*_^1(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.34 _*_^1(s_(N), s_(M)) -> ISNAT(M) 210.10/194.34 _*_^1(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.34 _*_^1(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 _*_^1(s_(N), s_(M)) -> ISNAT(N) 210.10/194.34 _*_^1(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.34 _+_^1(N, 0) -> U31^1(and(isNat(N), isNatKind(N)), N) 210.10/194.34 _+_^1(N, 0) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 _+_^1(N, 0) -> ISNAT(N) 210.10/194.34 _+_^1(N, 0) -> ISNATKIND(N) 210.10/194.34 _+_^1(s_(N), s_(M)) -> U41^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _+_^1(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.34 _+_^1(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.34 _+_^1(s_(N), s_(M)) -> ISNAT(M) 210.10/194.34 _+_^1(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.34 _+_^1(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 _+_^1(s_(N), s_(M)) -> ISNAT(N) 210.10/194.34 _+_^1(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.34 _<_^1(N, M) -> U51^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _<_^1(N, M) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.34 _<_^1(N, M) -> AND(isNat(M), isNatKind(M)) 210.10/194.34 _<_^1(N, M) -> ISNAT(M) 210.10/194.34 _<_^1(N, M) -> ISNATKIND(M) 210.10/194.34 _<_^1(N, M) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 _<_^1(N, M) -> ISNAT(N) 210.10/194.34 _<_^1(N, M) -> ISNATKIND(N) 210.10/194.34 _>_^1(0, M) -> U61^1(and(isNat(M), isNatKind(M))) 210.10/194.34 _>_^1(0, M) -> AND(isNat(M), isNatKind(M)) 210.10/194.34 _>_^1(0, M) -> ISNAT(M) 210.10/194.34 _>_^1(0, M) -> ISNATKIND(M) 210.10/194.34 _>_^1(N', 0) -> U71^1(and(isNzNat(N'), isNatKind(N'))) 210.10/194.34 _>_^1(N', 0) -> AND(isNzNat(N'), isNatKind(N')) 210.10/194.34 _>_^1(N', 0) -> ISNZNAT(N') 210.10/194.34 _>_^1(N', 0) -> ISNATKIND(N') 210.10/194.34 _>_^1(s_(N), s_(M)) -> U81^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _>_^1(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.34 _>_^1(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.34 _>_^1(s_(N), s_(M)) -> ISNAT(M) 210.10/194.34 _>_^1(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.34 _>_^1(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 _>_^1(s_(N), s_(M)) -> ISNAT(N) 210.10/194.34 _>_^1(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.34 D(0, N) -> U91^1(and(isNat(N), isNatKind(N)), N) 210.10/194.34 D(0, N) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 D(0, N) -> ISNAT(N) 210.10/194.34 D(0, N) -> ISNATKIND(N) 210.10/194.34 D(s_(N), s_(M)) -> U101^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 D(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.34 D(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.34 D(s_(N), s_(M)) -> ISNAT(M) 210.10/194.34 D(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.34 D(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 D(s_(N), s_(M)) -> ISNAT(N) 210.10/194.34 D(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.34 GCD(0, N) -> U111^1(and(isNat(N), isNatKind(N))) 210.10/194.34 GCD(0, N) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 GCD(0, N) -> ISNAT(N) 210.10/194.34 GCD(0, N) -> ISNATKIND(N) 210.10/194.34 GCD(N', M') -> U121^1(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.34 GCD(N', M') -> AND(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))) 210.10/194.34 GCD(N', M') -> AND(isNzNat(M'), isNatKind(M')) 210.10/194.34 GCD(N', M') -> ISNZNAT(M') 210.10/194.34 GCD(N', M') -> ISNATKIND(M') 210.10/194.34 GCD(N', M') -> AND(isNzNat(N'), isNatKind(N')) 210.10/194.34 GCD(N', M') -> ISNZNAT(N') 210.10/194.34 GCD(N', M') -> ISNATKIND(N') 210.10/194.34 GCD(N', N') -> U131^1(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.34 GCD(N', N') -> AND(isNzNat(N'), isNatKind(N')) 210.10/194.34 GCD(N', N') -> ISNZNAT(N') 210.10/194.34 GCD(N', N') -> ISNATKIND(N') 210.10/194.34 ISBOOLEAN(_<_(V1, V2)) -> U141^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISBOOLEAN(_<_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISBOOLEAN(_<_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISBOOLEAN(_<_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISBOOLEAN(_>_(V1, V2)) -> U151^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISBOOLEAN(_>_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISBOOLEAN(_>_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISBOOLEAN(_>_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISBOOLEANKIND(_<_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISBOOLEANKIND(_<_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISBOOLEANKIND(_<_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISBOOLEANKIND(_>_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISBOOLEANKIND(_>_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISBOOLEANKIND(_>_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNAT(V) -> U161^1(isNatKind(V), V) 210.10/194.34 ISNAT(V) -> ISNATKIND(V) 210.10/194.34 ISNAT(_*_(V1, V2)) -> U171^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNAT(_*_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNAT(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNAT(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNAT(_+_(V1, V2)) -> U181^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNAT(_+_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNAT(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNAT(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNAT(d(V1, V2)) -> U191^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNAT(d(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNAT(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNAT(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNAT(gcd(V1, V2)) -> U201^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNAT(gcd(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNAT(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNAT(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNAT(p_(V1)) -> U211^1(isNatKind(V1), V1) 210.10/194.34 ISNAT(p_(V1)) -> ISNATKIND(V1) 210.10/194.34 ISNAT(quot(V1, V2)) -> U221^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNAT(quot(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNAT(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNAT(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNATKIND(_*_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNATKIND(_+_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNATKIND(d(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNATKIND(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNATKIND(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNATKIND(gcd(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNATKIND(p_(V1)) -> ISNATKIND(V1) 210.10/194.34 ISNATKIND(quot(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNATKIND(s_(V1)) -> ISNATKIND(V1) 210.10/194.34 ISNZNAT(_*_(V1, V2)) -> U231^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNZNAT(_*_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNZNAT(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNZNAT(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNZNAT(gcd(V1, V2)) -> U241^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 ISNZNAT(gcd(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.34 ISNZNAT(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.34 ISNZNAT(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.34 ISNZNAT(s_(V1)) -> U251^1(isNatKind(V1), V1) 210.10/194.34 ISNZNAT(s_(V1)) -> ISNATKIND(V1) 210.10/194.34 P_(s_(N)) -> U261^1(and(isNat(N), isNatKind(N)), N) 210.10/194.34 P_(s_(N)) -> AND(isNat(N), isNatKind(N)) 210.10/194.34 P_(s_(N)) -> ISNAT(N) 210.10/194.34 P_(s_(N)) -> ISNATKIND(N) 210.10/194.34 QUOT(M', M') -> U271^1(and(isNzNat(M'), isNatKind(M'))) 210.10/194.34 QUOT(M', M') -> AND(isNzNat(M'), isNatKind(M')) 210.10/194.34 QUOT(M', M') -> ISNZNAT(M') 210.10/194.34 QUOT(M', M') -> ISNATKIND(M') 210.10/194.34 QUOT(N, M') -> U281^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.34 QUOT(N, M') -> AND(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))) 210.10/194.34 QUOT(N, M') -> AND(isNzNat(M'), isNatKind(M')) 210.10/194.34 QUOT(N, M') -> ISNZNAT(M') 210.10/194.34 QUOT(N, M') -> ISNATKIND(M') 210.10/194.34 QUOT(N, M') -> AND(isNat(N), isNatKind(N)) 210.10/194.34 QUOT(N, M') -> ISNAT(N) 210.10/194.34 QUOT(N, M') -> ISNATKIND(N) 210.10/194.34 QUOT(N, M') -> U291^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.34 210.10/194.34 The TRS R consists of the following rules: 210.10/194.34 210.10/194.34 1 -> s_(0) 210.10/194.34 2 -> s_(s_(0)) 210.10/194.34 3 -> s_(s_(s_(0))) 210.10/194.34 4 -> s_(s_(s_(s_(0)))) 210.10/194.34 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.34 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.34 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.34 U101(tt, M, N) -> d(N, M) 210.10/194.34 U11(tt) -> 0 210.10/194.34 U111(tt) -> 0 210.10/194.34 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.34 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.34 U131(tt, N') -> N' 210.10/194.34 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.34 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.34 U143(tt) -> tt 210.10/194.34 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.34 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.34 U153(tt) -> tt 210.10/194.34 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.34 U162(tt) -> tt 210.10/194.34 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.34 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.34 U173(tt) -> tt 210.10/194.34 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.34 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.34 U183(tt) -> tt 210.10/194.34 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.34 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.34 U193(tt) -> tt 210.10/194.34 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.34 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.34 U203(tt) -> tt 210.10/194.34 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.34 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.34 U212(tt) -> tt 210.10/194.34 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.34 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.34 U223(tt) -> tt 210.10/194.34 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.34 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.34 U233(tt) -> tt 210.10/194.34 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.34 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.34 U243(tt) -> tt 210.10/194.34 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.34 U252(tt) -> tt 210.10/194.34 U261(tt, N) -> N 210.10/194.34 U271(tt) -> s_(0) 210.10/194.34 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.34 U282(tt) -> 0 210.10/194.34 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.34 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.34 U31(tt, N) -> N 210.10/194.34 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.34 U51(tt, M, N) -> _>_(M, N) 210.10/194.34 U61(tt) -> false 210.10/194.34 U71(tt) -> true 210.10/194.34 U81(tt, M, N) -> _>_(N, M) 210.10/194.34 U91(tt, N) -> N 210.10/194.34 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.34 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.34 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.34 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.34 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 and(tt, X) -> X 210.10/194.34 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.34 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.34 equal(X, X) -> tt 210.10/194.34 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.34 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.34 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.34 isBoolean(false) -> tt 210.10/194.34 isBoolean(true) -> tt 210.10/194.34 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isBooleanKind(false) -> tt 210.10/194.34 isBooleanKind(true) -> tt 210.10/194.34 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNat(0) -> tt 210.10/194.34 isNat(V) -> U161(isNatKind(V), V) 210.10/194.34 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.34 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNatKind(0) -> tt 210.10/194.34 isNatKind(1) -> tt 210.10/194.34 isNatKind(2) -> tt 210.10/194.34 isNatKind(3) -> tt 210.10/194.34 isNatKind(4) -> tt 210.10/194.34 isNatKind(5) -> tt 210.10/194.34 isNatKind(6) -> tt 210.10/194.34 isNatKind(7) -> tt 210.10/194.34 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.34 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.34 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.34 isNzNat(1) -> tt 210.10/194.34 isNzNat(2) -> tt 210.10/194.34 isNzNat(3) -> tt 210.10/194.34 isNzNat(4) -> tt 210.10/194.34 isNzNat(5) -> tt 210.10/194.34 isNzNat(6) -> tt 210.10/194.34 isNzNat(7) -> tt 210.10/194.34 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.34 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.34 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.34 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.34 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.34 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.34 210.10/194.34 The set E consists of the following equations: 210.10/194.34 210.10/194.34 _*_(x, y) == _*_(y, x) 210.10/194.34 _+_(x, y) == _+_(y, x) 210.10/194.34 d(x, y) == d(y, x) 210.10/194.34 gcd(x, y) == gcd(y, x) 210.10/194.34 210.10/194.34 The set E# consists of the following equations: 210.10/194.34 210.10/194.34 _*_^1(x, y) == _*_^1(y, x) 210.10/194.34 _+_^1(x, y) == _+_^1(y, x) 210.10/194.34 D(x, y) == D(y, x) 210.10/194.34 GCD(x, y) == GCD(y, x) 210.10/194.34 210.10/194.34 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.34 210.10/194.34 ---------------------------------------- 210.10/194.34 210.10/194.34 (2) 210.10/194.34 Obligation: 210.10/194.34 The TRS P consists of the following rules: 210.10/194.34 210.10/194.34 U101^1(tt, M, N) -> D(N, M) 210.10/194.34 U121^1(tt, M', N') -> U122^1(equal(_>_(N', M'), true), M', N') 210.10/194.34 U121^1(tt, M', N') -> EQUAL(_>_(N', M'), true) 210.10/194.34 U121^1(tt, M', N') -> _>_^1(N', M') 210.10/194.34 U122^1(tt, M', N') -> GCD(d(N', M'), M') 210.10/194.34 U122^1(tt, M', N') -> D(N', M') 210.10/194.34 U141^1(tt, V1, V2) -> U142^1(isNat(V1), V2) 210.10/194.34 U141^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U142^1(tt, V2) -> U143^1(isNat(V2)) 210.10/194.34 U142^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U151^1(tt, V1, V2) -> U152^1(isNat(V1), V2) 210.10/194.34 U151^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U152^1(tt, V2) -> U153^1(isNat(V2)) 210.10/194.34 U152^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U161^1(tt, V) -> U162^1(isNzNat(V)) 210.10/194.34 U161^1(tt, V) -> ISNZNAT(V) 210.10/194.34 U171^1(tt, V1, V2) -> U172^1(isNat(V1), V2) 210.10/194.34 U171^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U172^1(tt, V2) -> U173^1(isNat(V2)) 210.10/194.34 U172^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U181^1(tt, V1, V2) -> U182^1(isNat(V1), V2) 210.10/194.34 U181^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U182^1(tt, V2) -> U183^1(isNat(V2)) 210.10/194.34 U182^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U191^1(tt, V1, V2) -> U192^1(isNat(V1), V2) 210.10/194.34 U191^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U192^1(tt, V2) -> U193^1(isNat(V2)) 210.10/194.34 U192^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U201^1(tt, V1, V2) -> U202^1(isNat(V1), V2) 210.10/194.34 U201^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U202^1(tt, V2) -> U203^1(isNat(V2)) 210.10/194.34 U202^1(tt, V2) -> ISNAT(V2) 210.10/194.34 U21^1(tt, M, N) -> _+_^1(N, _+_(M, _*_(N, M))) 210.10/194.34 U21^1(tt, M, N) -> _+_^1(M, _*_(N, M)) 210.10/194.34 U21^1(tt, M, N) -> _*_^1(N, M) 210.10/194.34 U211^1(tt, V1) -> U212^1(isNzNat(V1)) 210.10/194.34 U211^1(tt, V1) -> ISNZNAT(V1) 210.10/194.34 U221^1(tt, V1, V2) -> U222^1(isNat(V1), V2) 210.10/194.34 U221^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.34 U222^1(tt, V2) -> U223^1(isNzNat(V2)) 210.10/194.35 U222^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U231^1(tt, V1, V2) -> U232^1(isNzNat(V1), V2) 210.10/194.35 U231^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 U232^1(tt, V2) -> U233^1(isNzNat(V2)) 210.10/194.35 U232^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U241^1(tt, V1, V2) -> U242^1(isNzNat(V1), V2) 210.10/194.35 U241^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 U242^1(tt, V2) -> U243^1(isNzNat(V2)) 210.10/194.35 U242^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U251^1(tt, V1) -> U252^1(isNat(V1)) 210.10/194.35 U251^1(tt, V1) -> ISNAT(V1) 210.10/194.35 U281^1(tt, M', N) -> U282^1(equal(_>_(M', N), true)) 210.10/194.35 U281^1(tt, M', N) -> EQUAL(_>_(M', N), true) 210.10/194.35 U281^1(tt, M', N) -> _>_^1(M', N) 210.10/194.35 U291^1(tt, M', N) -> U292^1(equal(_>_(N, M'), true), M', N) 210.10/194.35 U291^1(tt, M', N) -> EQUAL(_>_(N, M'), true) 210.10/194.35 U291^1(tt, M', N) -> _>_^1(N, M') 210.10/194.35 U292^1(tt, M', N) -> QUOT(d(N, M'), M') 210.10/194.35 U292^1(tt, M', N) -> D(N, M') 210.10/194.35 U41^1(tt, M, N) -> _+_^1(N, M) 210.10/194.35 U51^1(tt, M, N) -> _>_^1(M, N) 210.10/194.35 U81^1(tt, M, N) -> _>_^1(N, M) 210.10/194.35 _*_^1(N, 0) -> U11^1(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_^1(N, 0) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 _*_^1(N, 0) -> ISNAT(N) 210.10/194.35 _*_^1(N, 0) -> ISNATKIND(N) 210.10/194.35 _*_^1(s_(N), s_(M)) -> U21^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _*_^1(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.35 _*_^1(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.35 _*_^1(s_(N), s_(M)) -> ISNAT(M) 210.10/194.35 _*_^1(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.35 _*_^1(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 _*_^1(s_(N), s_(M)) -> ISNAT(N) 210.10/194.35 _*_^1(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.35 _+_^1(N, 0) -> U31^1(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_^1(N, 0) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 _+_^1(N, 0) -> ISNAT(N) 210.10/194.35 _+_^1(N, 0) -> ISNATKIND(N) 210.10/194.35 _+_^1(s_(N), s_(M)) -> U41^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_^1(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.35 _+_^1(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.35 _+_^1(s_(N), s_(M)) -> ISNAT(M) 210.10/194.35 _+_^1(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.35 _+_^1(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 _+_^1(s_(N), s_(M)) -> ISNAT(N) 210.10/194.35 _+_^1(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.35 _<_^1(N, M) -> U51^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_^1(N, M) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.35 _<_^1(N, M) -> AND(isNat(M), isNatKind(M)) 210.10/194.35 _<_^1(N, M) -> ISNAT(M) 210.10/194.35 _<_^1(N, M) -> ISNATKIND(M) 210.10/194.35 _<_^1(N, M) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 _<_^1(N, M) -> ISNAT(N) 210.10/194.35 _<_^1(N, M) -> ISNATKIND(N) 210.10/194.35 _>_^1(0, M) -> U61^1(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_^1(0, M) -> AND(isNat(M), isNatKind(M)) 210.10/194.35 _>_^1(0, M) -> ISNAT(M) 210.10/194.35 _>_^1(0, M) -> ISNATKIND(M) 210.10/194.35 _>_^1(N', 0) -> U71^1(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_^1(N', 0) -> AND(isNzNat(N'), isNatKind(N')) 210.10/194.35 _>_^1(N', 0) -> ISNZNAT(N') 210.10/194.35 _>_^1(N', 0) -> ISNATKIND(N') 210.10/194.35 _>_^1(s_(N), s_(M)) -> U81^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_^1(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.35 _>_^1(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.35 _>_^1(s_(N), s_(M)) -> ISNAT(M) 210.10/194.35 _>_^1(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.35 _>_^1(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 _>_^1(s_(N), s_(M)) -> ISNAT(N) 210.10/194.35 _>_^1(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.35 D(0, N) -> U91^1(and(isNat(N), isNatKind(N)), N) 210.10/194.35 D(0, N) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 D(0, N) -> ISNAT(N) 210.10/194.35 D(0, N) -> ISNATKIND(N) 210.10/194.35 D(s_(N), s_(M)) -> U101^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 D(s_(N), s_(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 210.10/194.35 D(s_(N), s_(M)) -> AND(isNat(M), isNatKind(M)) 210.10/194.35 D(s_(N), s_(M)) -> ISNAT(M) 210.10/194.35 D(s_(N), s_(M)) -> ISNATKIND(M) 210.10/194.35 D(s_(N), s_(M)) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 D(s_(N), s_(M)) -> ISNAT(N) 210.10/194.35 D(s_(N), s_(M)) -> ISNATKIND(N) 210.10/194.35 GCD(0, N) -> U111^1(and(isNat(N), isNatKind(N))) 210.10/194.35 GCD(0, N) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 GCD(0, N) -> ISNAT(N) 210.10/194.35 GCD(0, N) -> ISNATKIND(N) 210.10/194.35 GCD(N', M') -> U121^1(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 GCD(N', M') -> AND(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 GCD(N', M') -> AND(isNzNat(M'), isNatKind(M')) 210.10/194.35 GCD(N', M') -> ISNZNAT(M') 210.10/194.35 GCD(N', M') -> ISNATKIND(M') 210.10/194.35 GCD(N', M') -> AND(isNzNat(N'), isNatKind(N')) 210.10/194.35 GCD(N', M') -> ISNZNAT(N') 210.10/194.35 GCD(N', M') -> ISNATKIND(N') 210.10/194.35 GCD(N', N') -> U131^1(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 GCD(N', N') -> AND(isNzNat(N'), isNatKind(N')) 210.10/194.35 GCD(N', N') -> ISNZNAT(N') 210.10/194.35 GCD(N', N') -> ISNATKIND(N') 210.10/194.35 ISBOOLEAN(_<_(V1, V2)) -> U141^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISBOOLEAN(_<_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISBOOLEAN(_<_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISBOOLEAN(_<_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISBOOLEAN(_>_(V1, V2)) -> U151^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISBOOLEAN(_>_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISBOOLEAN(_>_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISBOOLEAN(_>_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISBOOLEANKIND(_<_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISBOOLEANKIND(_<_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISBOOLEANKIND(_<_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISBOOLEANKIND(_>_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISBOOLEANKIND(_>_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISBOOLEANKIND(_>_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNAT(V) -> U161^1(isNatKind(V), V) 210.10/194.35 ISNAT(V) -> ISNATKIND(V) 210.10/194.35 ISNAT(_*_(V1, V2)) -> U171^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(_*_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNAT(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNAT(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNAT(_+_(V1, V2)) -> U181^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(_+_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNAT(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNAT(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNAT(d(V1, V2)) -> U191^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(d(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNAT(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNAT(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNAT(gcd(V1, V2)) -> U201^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(gcd(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNAT(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNAT(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNAT(p_(V1)) -> U211^1(isNatKind(V1), V1) 210.10/194.35 ISNAT(p_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNAT(quot(V1, V2)) -> U221^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(quot(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNAT(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNAT(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(d(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(p_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(quot(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(s_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> U231^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> U241^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNZNAT(s_(V1)) -> U251^1(isNatKind(V1), V1) 210.10/194.35 ISNZNAT(s_(V1)) -> ISNATKIND(V1) 210.10/194.35 P_(s_(N)) -> U261^1(and(isNat(N), isNatKind(N)), N) 210.10/194.35 P_(s_(N)) -> AND(isNat(N), isNatKind(N)) 210.10/194.35 P_(s_(N)) -> ISNAT(N) 210.10/194.35 P_(s_(N)) -> ISNATKIND(N) 210.10/194.35 QUOT(M', M') -> U271^1(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 QUOT(M', M') -> AND(isNzNat(M'), isNatKind(M')) 210.10/194.35 QUOT(M', M') -> ISNZNAT(M') 210.10/194.35 QUOT(M', M') -> ISNATKIND(M') 210.10/194.35 QUOT(N, M') -> U281^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 QUOT(N, M') -> AND(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))) 210.10/194.35 QUOT(N, M') -> AND(isNzNat(M'), isNatKind(M')) 210.10/194.35 QUOT(N, M') -> ISNZNAT(M') 210.10/194.35 QUOT(N, M') -> ISNATKIND(M') 210.10/194.35 QUOT(N, M') -> AND(isNat(N), isNatKind(N)) 210.10/194.35 QUOT(N, M') -> ISNAT(N) 210.10/194.35 QUOT(N, M') -> ISNATKIND(N) 210.10/194.35 QUOT(N, M') -> U291^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 The set E# consists of the following equations: 210.10/194.35 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (3) EDependencyGraphProof (EQUIVALENT) 210.10/194.35 The approximation of the Equational Dependency Graph [DA_STEIN] contains 8 SCCs with 160 less nodes. 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (4) 210.10/194.35 Complex Obligation (AND) 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (5) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(s_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(p_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 The set E# consists of the following equations: 210.10/194.35 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (6) ESharpUsableEquationsProof (EQUIVALENT) 210.10/194.35 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (7) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(s_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(p_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 E# is empty. 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (8) EUsableRulesReductionPairsProof (EQUIVALENT) 210.10/194.35 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. 210.10/194.35 210.10/194.35 The following dependency pairs can be deleted: 210.10/194.35 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(quot(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(s_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(_+_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(_*_(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V2) 210.10/194.35 ISNATKIND(p_(V1)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(gcd(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 ISNATKIND(d(V1, V2)) -> ISNATKIND(V1) 210.10/194.35 The following rules are removed from R: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 The following equations are removed from E: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 Used ordering: POLO with Polynomial interpretation [POLO]: 210.10/194.35 210.10/194.35 POL(ISNATKIND(x_1)) = 2*x_1 210.10/194.35 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(_+_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(d(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(gcd(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(p_(x_1)) = 3*x_1 210.10/194.35 POL(quot(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(s_(x_1)) = 3*x_1 210.10/194.35 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (9) 210.10/194.35 Obligation: 210.10/194.35 P is empty. 210.10/194.35 R is empty. 210.10/194.35 E is empty. 210.10/194.35 E# is empty. 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (10) PisEmptyProof (EQUIVALENT) 210.10/194.35 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (11) 210.10/194.35 YES 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (12) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 U231^1(tt, V1, V2) -> U232^1(isNzNat(V1), V2) 210.10/194.35 U232^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U192^1(tt, V2) -> ISNAT(V2) 210.10/194.35 ISNAT(p_(V1)) -> U211^1(isNatKind(V1), V1) 210.10/194.35 U201^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U242^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> U231^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(d(V1, V2)) -> U191^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 U201^1(tt, V1, V2) -> U202^1(isNat(V1), V2) 210.10/194.35 U171^1(tt, V1, V2) -> U172^1(isNat(V1), V2) 210.10/194.35 ISNAT(_+_(V1, V2)) -> U181^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNZNAT(s_(V1)) -> U251^1(isNatKind(V1), V1) 210.10/194.35 U221^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U182^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U181^1(tt, V1, V2) -> U182^1(isNat(V1), V2) 210.10/194.35 U172^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U202^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U222^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U251^1(tt, V1) -> ISNAT(V1) 210.10/194.35 U161^1(tt, V) -> ISNZNAT(V) 210.10/194.35 U191^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 ISNAT(V) -> U161^1(isNatKind(V), V) 210.10/194.35 U241^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 ISNAT(gcd(V1, V2)) -> U201^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(_*_(V1, V2)) -> U171^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 U231^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 U171^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U211^1(tt, V1) -> ISNZNAT(V1) 210.10/194.35 U181^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U241^1(tt, V1, V2) -> U242^1(isNzNat(V1), V2) 210.10/194.35 U191^1(tt, V1, V2) -> U192^1(isNat(V1), V2) 210.10/194.35 U221^1(tt, V1, V2) -> U222^1(isNat(V1), V2) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> U241^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(quot(V1, V2)) -> U221^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 The set E# consists of the following equations: 210.10/194.35 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (13) ESharpUsableEquationsProof (EQUIVALENT) 210.10/194.35 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (14) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 U231^1(tt, V1, V2) -> U232^1(isNzNat(V1), V2) 210.10/194.35 U232^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U192^1(tt, V2) -> ISNAT(V2) 210.10/194.35 ISNAT(p_(V1)) -> U211^1(isNatKind(V1), V1) 210.10/194.35 U201^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U242^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> U231^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(d(V1, V2)) -> U191^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 U201^1(tt, V1, V2) -> U202^1(isNat(V1), V2) 210.10/194.35 U171^1(tt, V1, V2) -> U172^1(isNat(V1), V2) 210.10/194.35 ISNAT(_+_(V1, V2)) -> U181^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNZNAT(s_(V1)) -> U251^1(isNatKind(V1), V1) 210.10/194.35 U221^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U182^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U181^1(tt, V1, V2) -> U182^1(isNat(V1), V2) 210.10/194.35 U172^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U202^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U222^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U251^1(tt, V1) -> ISNAT(V1) 210.10/194.35 U161^1(tt, V) -> ISNZNAT(V) 210.10/194.35 U191^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 ISNAT(V) -> U161^1(isNatKind(V), V) 210.10/194.35 U241^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 ISNAT(gcd(V1, V2)) -> U201^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(_*_(V1, V2)) -> U171^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 U231^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 U171^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U211^1(tt, V1) -> ISNZNAT(V1) 210.10/194.35 U181^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U241^1(tt, V1, V2) -> U242^1(isNzNat(V1), V2) 210.10/194.35 U191^1(tt, V1, V2) -> U192^1(isNat(V1), V2) 210.10/194.35 U221^1(tt, V1, V2) -> U222^1(isNat(V1), V2) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> U241^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(quot(V1, V2)) -> U221^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 E# is empty. 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (15) EUsableRulesReductionPairsProof (EQUIVALENT) 210.10/194.35 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. 210.10/194.35 210.10/194.35 The following dependency pairs can be deleted: 210.10/194.35 210.10/194.35 ISNAT(p_(V1)) -> U211^1(isNatKind(V1), V1) 210.10/194.35 ISNZNAT(_*_(V1, V2)) -> U231^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(d(V1, V2)) -> U191^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(_+_(V1, V2)) -> U181^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNZNAT(s_(V1)) -> U251^1(isNatKind(V1), V1) 210.10/194.35 U221^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U181^1(tt, V1, V2) -> U182^1(isNat(V1), V2) 210.10/194.35 ISNAT(gcd(V1, V2)) -> U201^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(_*_(V1, V2)) -> U171^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 U181^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U221^1(tt, V1, V2) -> U222^1(isNat(V1), V2) 210.10/194.35 ISNZNAT(gcd(V1, V2)) -> U241^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 ISNAT(quot(V1, V2)) -> U221^1(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 The following rules are removed from R: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 The following equations are removed from E: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 Used ordering: POLO with Polynomial interpretation [POLO]: 210.10/194.35 210.10/194.35 POL(0) = 0 210.10/194.35 POL(1) = 0 210.10/194.35 POL(2) = 0 210.10/194.35 POL(3) = 0 210.10/194.35 POL(4) = 0 210.10/194.35 POL(5) = 0 210.10/194.35 POL(6) = 0 210.10/194.35 POL(7) = 0 210.10/194.35 POL(ISNAT(x_1)) = 3*x_1 210.10/194.35 POL(ISNZNAT(x_1)) = 2*x_1 210.10/194.35 POL(U161(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(U161^1(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U162(x_1)) = x_1 210.10/194.35 POL(U171(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U171^1(x_1, x_2, x_3)) = 3*x_1 + 3*x_2 + 3*x_3 210.10/194.35 POL(U172(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U172^1(x_1, x_2)) = x_1 + 3*x_2 210.10/194.35 POL(U173(x_1)) = x_1 210.10/194.35 POL(U181(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U181^1(x_1, x_2, x_3)) = 2 + x_1 + 3*x_2 + 3*x_3 210.10/194.35 POL(U182(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U182^1(x_1, x_2)) = x_1 + 3*x_2 210.10/194.35 POL(U183(x_1)) = x_1 210.10/194.35 POL(U191(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U191^1(x_1, x_2, x_3)) = 3*x_1 + 3*x_2 + 3*x_3 210.10/194.35 POL(U192(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U192^1(x_1, x_2)) = x_1 + 3*x_2 210.10/194.35 POL(U193(x_1)) = x_1 210.10/194.35 POL(U201(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U201^1(x_1, x_2, x_3)) = x_1 + 3*x_2 + 3*x_3 210.10/194.35 POL(U202(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U202^1(x_1, x_2)) = x_1 + 3*x_2 210.10/194.35 POL(U203(x_1)) = x_1 210.10/194.35 POL(U211(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(U211^1(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U212(x_1)) = x_1 210.10/194.35 POL(U221(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U221^1(x_1, x_2, x_3)) = 2 + 3*x_1 + 3*x_2 + 2*x_3 210.10/194.35 POL(U222(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U222^1(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U223(x_1)) = 2*x_1 210.10/194.35 POL(U231(x_1, x_2, x_3)) = x_1 + x_2 + x_3 210.10/194.35 POL(U231^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U232(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(U232^1(x_1, x_2)) = 2*x_1 + 2*x_2 210.10/194.35 POL(U233(x_1)) = x_1 210.10/194.35 POL(U241(x_1, x_2, x_3)) = x_1 + x_2 + x_3 210.10/194.35 POL(U241^1(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U242(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(U242^1(x_1, x_2)) = 2*x_1 + 2*x_2 210.10/194.35 POL(U243(x_1)) = x_1 210.10/194.35 POL(U251(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U251^1(x_1, x_2)) = x_1 + 3*x_2 210.10/194.35 POL(U252(x_1)) = x_1 210.10/194.35 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(_+_(x_1, x_2)) = 3 + 2*x_1 + 2*x_2 210.10/194.35 POL(and(x_1, x_2)) = 2*x_1 + 2*x_2 210.10/194.35 POL(d(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(gcd(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(isNat(x_1)) = 2*x_1 210.10/194.35 POL(isNatKind(x_1)) = x_1 210.10/194.35 POL(isNzNat(x_1)) = x_1 210.10/194.35 POL(p_(x_1)) = x_1 210.10/194.35 POL(quot(x_1, x_2)) = 3 + 3*x_1 + 3*x_2 210.10/194.35 POL(s_(x_1)) = 3 + 3*x_1 210.10/194.35 POL(tt) = 0 210.10/194.35 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (16) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 U231^1(tt, V1, V2) -> U232^1(isNzNat(V1), V2) 210.10/194.35 U232^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U192^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U201^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U242^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U201^1(tt, V1, V2) -> U202^1(isNat(V1), V2) 210.10/194.35 U171^1(tt, V1, V2) -> U172^1(isNat(V1), V2) 210.10/194.35 U182^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U172^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U202^1(tt, V2) -> ISNAT(V2) 210.10/194.35 U222^1(tt, V2) -> ISNZNAT(V2) 210.10/194.35 U251^1(tt, V1) -> ISNAT(V1) 210.10/194.35 U161^1(tt, V) -> ISNZNAT(V) 210.10/194.35 U191^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 ISNAT(V) -> U161^1(isNatKind(V), V) 210.10/194.35 U241^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 U231^1(tt, V1, V2) -> ISNZNAT(V1) 210.10/194.35 U171^1(tt, V1, V2) -> ISNAT(V1) 210.10/194.35 U211^1(tt, V1) -> ISNZNAT(V1) 210.10/194.35 U241^1(tt, V1, V2) -> U242^1(isNzNat(V1), V2) 210.10/194.35 U191^1(tt, V1, V2) -> U192^1(isNat(V1), V2) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 and(tt, X) -> X 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U162(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U223(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 210.10/194.35 E is empty. 210.10/194.35 E# is empty. 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (17) EDependencyGraphProof (EQUIVALENT) 210.10/194.35 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 21 less nodes. 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (18) 210.10/194.35 TRUE 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (19) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 _>_^1(s_(N), s_(M)) -> U81^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 U81^1(tt, M, N) -> _>_^1(N, M) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 The set E# consists of the following equations: 210.10/194.35 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (20) ESharpUsableEquationsProof (EQUIVALENT) 210.10/194.35 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.10/194.35 _*_^1(x, y) == _*_^1(y, x) 210.10/194.35 _+_^1(x, y) == _+_^1(y, x) 210.10/194.35 D(x, y) == D(y, x) 210.10/194.35 GCD(x, y) == GCD(y, x) 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (21) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 _>_^1(s_(N), s_(M)) -> U81^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 U81^1(tt, M, N) -> _>_^1(N, M) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U212(tt) -> tt 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U223(tt) -> tt 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U243(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 and(tt, X) -> X 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 210.10/194.35 The set E consists of the following equations: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 210.10/194.35 E# is empty. 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (22) EUsableRulesReductionPairsProof (EQUIVALENT) 210.10/194.35 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. 210.10/194.35 210.10/194.35 The following dependency pairs can be deleted: 210.10/194.35 210.10/194.35 _>_^1(s_(N), s_(M)) -> U81^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 The following rules are removed from R: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U261(tt, N) -> N 210.10/194.35 U271(tt) -> s_(0) 210.10/194.35 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.35 U282(tt) -> 0 210.10/194.35 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.35 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.35 U31(tt, N) -> N 210.10/194.35 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.35 U51(tt, M, N) -> _>_(M, N) 210.10/194.35 U61(tt) -> false 210.10/194.35 U71(tt) -> true 210.10/194.35 U81(tt, M, N) -> _>_(N, M) 210.10/194.35 U91(tt, N) -> N 210.10/194.35 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.35 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.35 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.35 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.35 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.35 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 equal(X, X) -> tt 210.10/194.35 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.35 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.35 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.35 isBoolean(false) -> tt 210.10/194.35 isBoolean(true) -> tt 210.10/194.35 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isBooleanKind(false) -> tt 210.10/194.35 isBooleanKind(true) -> tt 210.10/194.35 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNat(0) -> tt 210.10/194.35 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.35 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNatKind(0) -> tt 210.10/194.35 isNatKind(1) -> tt 210.10/194.35 isNatKind(2) -> tt 210.10/194.35 isNatKind(3) -> tt 210.10/194.35 isNatKind(4) -> tt 210.10/194.35 isNatKind(5) -> tt 210.10/194.35 isNatKind(6) -> tt 210.10/194.35 isNatKind(7) -> tt 210.10/194.35 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.35 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.35 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.35 isNzNat(1) -> tt 210.10/194.35 isNzNat(2) -> tt 210.10/194.35 isNzNat(3) -> tt 210.10/194.35 isNzNat(4) -> tt 210.10/194.35 isNzNat(5) -> tt 210.10/194.35 isNzNat(6) -> tt 210.10/194.35 isNzNat(7) -> tt 210.10/194.35 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.35 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.35 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.35 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.35 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.35 The following equations are removed from E: 210.10/194.35 210.10/194.35 _*_(x, y) == _*_(y, x) 210.10/194.35 _+_(x, y) == _+_(y, x) 210.10/194.35 d(x, y) == d(y, x) 210.10/194.35 gcd(x, y) == gcd(y, x) 210.10/194.35 Used ordering: POLO with Polynomial interpretation [POLO]: 210.10/194.35 210.10/194.35 POL(0) = 0 210.10/194.35 POL(1) = 0 210.10/194.35 POL(2) = 0 210.10/194.35 POL(3) = 0 210.10/194.35 POL(4) = 0 210.10/194.35 POL(5) = 0 210.10/194.35 POL(6) = 0 210.10/194.35 POL(7) = 0 210.10/194.35 POL(U161(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(U162(x_1)) = x_1 210.10/194.35 POL(U171(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U172(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U173(x_1)) = x_1 210.10/194.35 POL(U181(x_1, x_2, x_3)) = 2 + 2*x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U182(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U183(x_1)) = x_1 210.10/194.35 POL(U191(x_1, x_2, x_3)) = 3 + 2*x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U192(x_1, x_2)) = 2 + x_1 + 2*x_2 210.10/194.35 POL(U193(x_1)) = x_1 210.10/194.35 POL(U201(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U202(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U203(x_1)) = x_1 210.10/194.35 POL(U211(x_1, x_2)) = 2*x_1 + 2*x_2 210.10/194.35 POL(U212(x_1)) = 2*x_1 210.10/194.35 POL(U221(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 210.10/194.35 POL(U222(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U223(x_1)) = 2*x_1 210.10/194.35 POL(U231(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 210.10/194.35 POL(U232(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U233(x_1)) = 2*x_1 210.10/194.35 POL(U241(x_1, x_2, x_3)) = x_1 + 2*x_2 + x_3 210.10/194.35 POL(U242(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(U243(x_1)) = x_1 210.10/194.35 POL(U251(x_1, x_2)) = x_1 + 2*x_2 210.10/194.35 POL(U252(x_1)) = x_1 210.10/194.35 POL(U81^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 210.10/194.35 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.35 POL(_+_(x_1, x_2)) = 1 + 3*x_1 + 3*x_2 210.10/194.35 POL(_>_^1(x_1, x_2)) = 3*x_1 + 2*x_2 210.10/194.35 POL(and(x_1, x_2)) = x_1 + x_2 210.10/194.35 POL(d(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.10/194.35 POL(gcd(x_1, x_2)) = 1 + 3*x_1 + 2*x_2 210.10/194.35 POL(isNat(x_1)) = 2*x_1 210.10/194.35 POL(isNatKind(x_1)) = x_1 210.10/194.35 POL(isNzNat(x_1)) = x_1 210.10/194.35 POL(p_(x_1)) = 3 + 3*x_1 210.10/194.35 POL(quot(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.10/194.35 POL(s_(x_1)) = 3*x_1 210.10/194.35 POL(tt) = 0 210.10/194.35 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (23) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 U81^1(tt, M, N) -> _>_^1(N, M) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 and(tt, X) -> X 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.35 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.35 U233(tt) -> tt 210.10/194.35 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.35 isNat(V) -> U161(isNatKind(V), V) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.35 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.35 U252(tt) -> tt 210.10/194.35 U162(tt) -> tt 210.10/194.35 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U223(tt) -> tt 210.10/194.35 U212(tt) -> tt 210.10/194.35 U243(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 210.10/194.35 E is empty. 210.10/194.35 E# is empty. 210.10/194.35 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (24) EDependencyGraphProof (EQUIVALENT) 210.10/194.35 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (25) 210.10/194.35 TRUE 210.10/194.35 210.10/194.35 ---------------------------------------- 210.10/194.35 210.10/194.35 (26) 210.10/194.35 Obligation: 210.10/194.35 The TRS P consists of the following rules: 210.10/194.35 210.10/194.35 U41^1(tt, M, N) -> _+_^1(N, M) 210.10/194.35 _+_^1(s_(N), s_(M)) -> U41^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.35 210.10/194.35 The TRS R consists of the following rules: 210.10/194.35 210.10/194.35 1 -> s_(0) 210.10/194.35 2 -> s_(s_(0)) 210.10/194.35 3 -> s_(s_(s_(0))) 210.10/194.35 4 -> s_(s_(s_(s_(0)))) 210.10/194.35 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.35 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.35 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.35 U101(tt, M, N) -> d(N, M) 210.10/194.35 U11(tt) -> 0 210.10/194.35 U111(tt) -> 0 210.10/194.35 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.35 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.35 U131(tt, N') -> N' 210.10/194.35 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.35 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.35 U143(tt) -> tt 210.10/194.35 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.35 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.35 U153(tt) -> tt 210.10/194.35 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.35 U162(tt) -> tt 210.10/194.35 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.35 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.35 U173(tt) -> tt 210.10/194.35 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.35 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.35 U183(tt) -> tt 210.10/194.35 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.35 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.35 U193(tt) -> tt 210.10/194.35 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.35 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.35 U203(tt) -> tt 210.10/194.35 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.35 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U212(tt) -> tt 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U223(tt) -> tt 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U243(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 and(tt, X) -> X 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 210.10/194.36 The set E consists of the following equations: 210.10/194.36 210.10/194.36 _*_(x, y) == _*_(y, x) 210.10/194.36 _+_(x, y) == _+_(y, x) 210.10/194.36 d(x, y) == d(y, x) 210.10/194.36 gcd(x, y) == gcd(y, x) 210.10/194.36 210.10/194.36 The set E# consists of the following equations: 210.10/194.36 210.10/194.36 _*_^1(x, y) == _*_^1(y, x) 210.10/194.36 _+_^1(x, y) == _+_^1(y, x) 210.10/194.36 D(x, y) == D(y, x) 210.10/194.36 GCD(x, y) == GCD(y, x) 210.10/194.36 210.10/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (27) ESharpUsableEquationsProof (EQUIVALENT) 210.10/194.36 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.10/194.36 _*_^1(x, y) == _*_^1(y, x) 210.10/194.36 D(x, y) == D(y, x) 210.10/194.36 GCD(x, y) == GCD(y, x) 210.10/194.36 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (28) 210.10/194.36 Obligation: 210.10/194.36 The TRS P consists of the following rules: 210.10/194.36 210.10/194.36 U41^1(tt, M, N) -> _+_^1(N, M) 210.10/194.36 _+_^1(s_(N), s_(M)) -> U41^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 210.10/194.36 The TRS R consists of the following rules: 210.10/194.36 210.10/194.36 1 -> s_(0) 210.10/194.36 2 -> s_(s_(0)) 210.10/194.36 3 -> s_(s_(s_(0))) 210.10/194.36 4 -> s_(s_(s_(s_(0)))) 210.10/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.36 U101(tt, M, N) -> d(N, M) 210.10/194.36 U11(tt) -> 0 210.10/194.36 U111(tt) -> 0 210.10/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.36 U131(tt, N') -> N' 210.10/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.36 U143(tt) -> tt 210.10/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.36 U153(tt) -> tt 210.10/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.36 U162(tt) -> tt 210.10/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.36 U173(tt) -> tt 210.10/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.36 U183(tt) -> tt 210.10/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.36 U193(tt) -> tt 210.10/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.36 U203(tt) -> tt 210.10/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U212(tt) -> tt 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U223(tt) -> tt 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U243(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 and(tt, X) -> X 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 210.10/194.36 The set E consists of the following equations: 210.10/194.36 210.10/194.36 _*_(x, y) == _*_(y, x) 210.10/194.36 _+_(x, y) == _+_(y, x) 210.10/194.36 d(x, y) == d(y, x) 210.10/194.36 gcd(x, y) == gcd(y, x) 210.10/194.36 210.10/194.36 The set E# consists of the following equations: 210.10/194.36 210.10/194.36 _+_^1(x, y) == _+_^1(y, x) 210.10/194.36 210.10/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (29) EUsableRulesReductionPairsProof (EQUIVALENT) 210.10/194.36 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. 210.10/194.36 210.10/194.36 The following dependency pairs can be deleted: 210.10/194.36 210.10/194.36 _+_^1(s_(N), s_(M)) -> U41^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 The following rules are removed from R: 210.10/194.36 210.10/194.36 1 -> s_(0) 210.10/194.36 2 -> s_(s_(0)) 210.10/194.36 3 -> s_(s_(s_(0))) 210.10/194.36 4 -> s_(s_(s_(s_(0)))) 210.10/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.36 U101(tt, M, N) -> d(N, M) 210.10/194.36 U11(tt) -> 0 210.10/194.36 U111(tt) -> 0 210.10/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.36 U131(tt, N') -> N' 210.10/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.36 U143(tt) -> tt 210.10/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.36 U153(tt) -> tt 210.10/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 The following equations are removed from E: 210.10/194.36 210.10/194.36 _*_(x, y) == _*_(y, x) 210.10/194.36 _+_(x, y) == _+_(y, x) 210.10/194.36 d(x, y) == d(y, x) 210.10/194.36 gcd(x, y) == gcd(y, x) 210.10/194.36 Used ordering: POLO with Polynomial interpretation [POLO]: 210.10/194.36 210.10/194.36 POL(0) = 0 210.10/194.36 POL(1) = 0 210.10/194.36 POL(2) = 0 210.10/194.36 POL(3) = 0 210.10/194.36 POL(4) = 0 210.10/194.36 POL(5) = 0 210.10/194.36 POL(6) = 0 210.10/194.36 POL(7) = 0 210.10/194.36 POL(U161(x_1, x_2)) = x_1 + x_2 210.10/194.36 POL(U162(x_1)) = x_1 210.10/194.36 POL(U171(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U172(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U173(x_1)) = x_1 210.10/194.36 POL(U181(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 3*x_3 210.10/194.36 POL(U182(x_1, x_2)) = x_1 + 3*x_2 210.10/194.36 POL(U183(x_1)) = x_1 210.10/194.36 POL(U191(x_1, x_2, x_3)) = 3 + x_1 + 3*x_2 + 3*x_3 210.10/194.36 POL(U192(x_1, x_2)) = 2 + x_1 + 3*x_2 210.10/194.36 POL(U193(x_1)) = x_1 210.10/194.36 POL(U201(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U202(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U203(x_1)) = x_1 210.10/194.36 POL(U211(x_1, x_2)) = 2*x_1 + 2*x_2 210.10/194.36 POL(U212(x_1)) = x_1 210.10/194.36 POL(U221(x_1, x_2, x_3)) = 2 + 2*x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U222(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U223(x_1)) = 2*x_1 210.10/194.36 POL(U231(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 210.10/194.36 POL(U232(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U233(x_1)) = 2*x_1 210.10/194.36 POL(U241(x_1, x_2, x_3)) = 2*x_1 + x_2 + x_3 210.10/194.36 POL(U242(x_1, x_2)) = x_1 + x_2 210.10/194.36 POL(U243(x_1)) = x_1 210.10/194.36 POL(U251(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U252(x_1)) = x_1 210.10/194.36 POL(U41^1(x_1, x_2, x_3)) = 2*x_1 + 3*x_2 + 3*x_3 210.10/194.36 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.36 POL(_+_(x_1, x_2)) = 1 + 2*x_1 + 3*x_2 210.10/194.36 POL(_+_^1(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.36 POL(and(x_1, x_2)) = x_1 + x_2 210.10/194.36 POL(d(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.10/194.36 POL(gcd(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.10/194.36 POL(isNat(x_1)) = 2*x_1 210.10/194.36 POL(isNatKind(x_1)) = x_1 210.10/194.36 POL(isNzNat(x_1)) = x_1 210.10/194.36 POL(p_(x_1)) = 3 + 3*x_1 210.10/194.36 POL(quot(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.10/194.36 POL(s_(x_1)) = 3*x_1 210.10/194.36 POL(tt) = 0 210.10/194.36 210.10/194.36 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (30) 210.10/194.36 Obligation: 210.10/194.36 The TRS P consists of the following rules: 210.10/194.36 210.10/194.36 U41^1(tt, M, N) -> _+_^1(N, M) 210.10/194.36 210.10/194.36 The TRS R consists of the following rules: 210.10/194.36 210.10/194.36 and(tt, X) -> X 210.10/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U183(tt) -> tt 210.10/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.36 U203(tt) -> tt 210.10/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 U173(tt) -> tt 210.10/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U162(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U193(tt) -> tt 210.10/194.36 U223(tt) -> tt 210.10/194.36 U212(tt) -> tt 210.10/194.36 U243(tt) -> tt 210.10/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.36 210.10/194.36 E is empty. 210.10/194.36 The set E# consists of the following equations: 210.10/194.36 210.10/194.36 _+_^1(x, y) == _+_^1(y, x) 210.10/194.36 210.10/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (31) EDependencyGraphProof (EQUIVALENT) 210.10/194.36 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (32) 210.10/194.36 TRUE 210.10/194.36 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (33) 210.10/194.36 Obligation: 210.10/194.36 The TRS P consists of the following rules: 210.10/194.36 210.10/194.36 _*_^1(s_(N), s_(M)) -> U21^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 U21^1(tt, M, N) -> _*_^1(N, M) 210.10/194.36 210.10/194.36 The TRS R consists of the following rules: 210.10/194.36 210.10/194.36 1 -> s_(0) 210.10/194.36 2 -> s_(s_(0)) 210.10/194.36 3 -> s_(s_(s_(0))) 210.10/194.36 4 -> s_(s_(s_(s_(0)))) 210.10/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.36 U101(tt, M, N) -> d(N, M) 210.10/194.36 U11(tt) -> 0 210.10/194.36 U111(tt) -> 0 210.10/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.36 U131(tt, N') -> N' 210.10/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.36 U143(tt) -> tt 210.10/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.36 U153(tt) -> tt 210.10/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.36 U162(tt) -> tt 210.10/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.36 U173(tt) -> tt 210.10/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.36 U183(tt) -> tt 210.10/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.36 U193(tt) -> tt 210.10/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.36 U203(tt) -> tt 210.10/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U212(tt) -> tt 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U223(tt) -> tt 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U243(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 and(tt, X) -> X 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 210.10/194.36 The set E consists of the following equations: 210.10/194.36 210.10/194.36 _*_(x, y) == _*_(y, x) 210.10/194.36 _+_(x, y) == _+_(y, x) 210.10/194.36 d(x, y) == d(y, x) 210.10/194.36 gcd(x, y) == gcd(y, x) 210.10/194.36 210.10/194.36 The set E# consists of the following equations: 210.10/194.36 210.10/194.36 _*_^1(x, y) == _*_^1(y, x) 210.10/194.36 _+_^1(x, y) == _+_^1(y, x) 210.10/194.36 D(x, y) == D(y, x) 210.10/194.36 GCD(x, y) == GCD(y, x) 210.10/194.36 210.10/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (34) ESharpUsableEquationsProof (EQUIVALENT) 210.10/194.36 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.10/194.36 _+_^1(x, y) == _+_^1(y, x) 210.10/194.36 D(x, y) == D(y, x) 210.10/194.36 GCD(x, y) == GCD(y, x) 210.10/194.36 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (35) 210.10/194.36 Obligation: 210.10/194.36 The TRS P consists of the following rules: 210.10/194.36 210.10/194.36 _*_^1(s_(N), s_(M)) -> U21^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 U21^1(tt, M, N) -> _*_^1(N, M) 210.10/194.36 210.10/194.36 The TRS R consists of the following rules: 210.10/194.36 210.10/194.36 1 -> s_(0) 210.10/194.36 2 -> s_(s_(0)) 210.10/194.36 3 -> s_(s_(s_(0))) 210.10/194.36 4 -> s_(s_(s_(s_(0)))) 210.10/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.36 U101(tt, M, N) -> d(N, M) 210.10/194.36 U11(tt) -> 0 210.10/194.36 U111(tt) -> 0 210.10/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.36 U131(tt, N') -> N' 210.10/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.36 U143(tt) -> tt 210.10/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.36 U153(tt) -> tt 210.10/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.36 U162(tt) -> tt 210.10/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.36 U173(tt) -> tt 210.10/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.36 U183(tt) -> tt 210.10/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.36 U193(tt) -> tt 210.10/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.36 U203(tt) -> tt 210.10/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U212(tt) -> tt 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U223(tt) -> tt 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U243(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 and(tt, X) -> X 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 210.10/194.36 The set E consists of the following equations: 210.10/194.36 210.10/194.36 _*_(x, y) == _*_(y, x) 210.10/194.36 _+_(x, y) == _+_(y, x) 210.10/194.36 d(x, y) == d(y, x) 210.10/194.36 gcd(x, y) == gcd(y, x) 210.10/194.36 210.10/194.36 The set E# consists of the following equations: 210.10/194.36 210.10/194.36 _*_^1(x, y) == _*_^1(y, x) 210.10/194.36 210.10/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (36) EUsableRulesReductionPairsProof (EQUIVALENT) 210.10/194.36 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. 210.10/194.36 210.10/194.36 The following dependency pairs can be deleted: 210.10/194.36 210.10/194.36 _*_^1(s_(N), s_(M)) -> U21^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 The following rules are removed from R: 210.10/194.36 210.10/194.36 1 -> s_(0) 210.10/194.36 2 -> s_(s_(0)) 210.10/194.36 3 -> s_(s_(s_(0))) 210.10/194.36 4 -> s_(s_(s_(s_(0)))) 210.10/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.36 U101(tt, M, N) -> d(N, M) 210.10/194.36 U11(tt) -> 0 210.10/194.36 U111(tt) -> 0 210.10/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.36 U131(tt, N') -> N' 210.10/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.36 U143(tt) -> tt 210.10/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.36 U153(tt) -> tt 210.10/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.10/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.10/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.10/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.10/194.36 The following equations are removed from E: 210.10/194.36 210.10/194.36 _*_(x, y) == _*_(y, x) 210.10/194.36 _+_(x, y) == _+_(y, x) 210.10/194.36 d(x, y) == d(y, x) 210.10/194.36 gcd(x, y) == gcd(y, x) 210.10/194.36 Used ordering: POLO with Polynomial interpretation [POLO]: 210.10/194.36 210.10/194.36 POL(0) = 0 210.10/194.36 POL(1) = 0 210.10/194.36 POL(2) = 0 210.10/194.36 POL(3) = 0 210.10/194.36 POL(4) = 0 210.10/194.36 POL(5) = 0 210.10/194.36 POL(6) = 0 210.10/194.36 POL(7) = 0 210.10/194.36 POL(U161(x_1, x_2)) = x_1 + x_2 210.10/194.36 POL(U162(x_1)) = x_1 210.10/194.36 POL(U171(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U172(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U173(x_1)) = x_1 210.10/194.36 POL(U181(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U182(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U183(x_1)) = x_1 210.10/194.36 POL(U191(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 210.10/194.36 POL(U192(x_1, x_2)) = x_1 + 3*x_2 210.10/194.36 POL(U193(x_1)) = x_1 210.10/194.36 POL(U201(x_1, x_2, x_3)) = x_1 + 3*x_2 + 3*x_3 210.10/194.36 POL(U202(x_1, x_2)) = x_1 + 3*x_2 210.10/194.36 POL(U203(x_1)) = x_1 210.10/194.36 POL(U211(x_1, x_2)) = 3*x_1 + x_2 210.10/194.36 POL(U212(x_1)) = x_1 210.10/194.36 POL(U21^1(x_1, x_2, x_3)) = 2*x_1 + 3*x_2 + 3*x_3 210.10/194.36 POL(U221(x_1, x_2, x_3)) = 3 + 2*x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U222(x_1, x_2)) = 2 + x_1 + x_2 210.10/194.36 POL(U223(x_1)) = x_1 210.10/194.36 POL(U231(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.10/194.36 POL(U232(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U233(x_1)) = 2*x_1 210.10/194.36 POL(U241(x_1, x_2, x_3)) = x_1 + x_2 + x_3 210.10/194.36 POL(U242(x_1, x_2)) = x_1 + x_2 210.10/194.36 POL(U243(x_1)) = x_1 210.10/194.36 POL(U251(x_1, x_2)) = x_1 + 2*x_2 210.10/194.36 POL(U252(x_1)) = x_1 210.10/194.36 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.36 POL(_*_^1(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.36 POL(_+_(x_1, x_2)) = 3*x_1 + 3*x_2 210.10/194.36 POL(and(x_1, x_2)) = x_1 + x_2 210.10/194.36 POL(d(x_1, x_2)) = 2*x_1 + 3*x_2 210.10/194.36 POL(gcd(x_1, x_2)) = 2*x_1 + 3*x_2 210.10/194.36 POL(isNat(x_1)) = 2*x_1 210.10/194.36 POL(isNatKind(x_1)) = x_1 210.10/194.36 POL(isNzNat(x_1)) = x_1 210.10/194.36 POL(p_(x_1)) = 1 + 3*x_1 210.10/194.36 POL(quot(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.10/194.36 POL(s_(x_1)) = 1 + 3*x_1 210.10/194.36 POL(tt) = 0 210.10/194.36 210.10/194.36 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (37) 210.10/194.36 Obligation: 210.10/194.36 The TRS P consists of the following rules: 210.10/194.36 210.10/194.36 U21^1(tt, M, N) -> _*_^1(N, M) 210.10/194.36 210.10/194.36 The TRS R consists of the following rules: 210.10/194.36 210.10/194.36 and(tt, X) -> X 210.10/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.36 U183(tt) -> tt 210.10/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.36 U203(tt) -> tt 210.10/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 U173(tt) -> tt 210.10/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U162(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U193(tt) -> tt 210.10/194.36 U223(tt) -> tt 210.10/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.36 U212(tt) -> tt 210.10/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.36 U243(tt) -> tt 210.10/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.36 210.10/194.36 E is empty. 210.10/194.36 The set E# consists of the following equations: 210.10/194.36 210.10/194.36 _*_^1(x, y) == _*_^1(y, x) 210.10/194.36 210.10/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (38) EDependencyGraphProof (EQUIVALENT) 210.10/194.36 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (39) 210.10/194.36 TRUE 210.10/194.36 210.10/194.36 ---------------------------------------- 210.10/194.36 210.10/194.36 (40) 210.10/194.36 Obligation: 210.10/194.36 The TRS P consists of the following rules: 210.10/194.36 210.10/194.36 U101^1(tt, M, N) -> D(N, M) 210.10/194.36 D(s_(N), s_(M)) -> U101^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 210.10/194.36 The TRS R consists of the following rules: 210.10/194.36 210.10/194.36 1 -> s_(0) 210.10/194.36 2 -> s_(s_(0)) 210.10/194.36 3 -> s_(s_(s_(0))) 210.10/194.36 4 -> s_(s_(s_(s_(0)))) 210.10/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.10/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.10/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.10/194.36 U101(tt, M, N) -> d(N, M) 210.10/194.36 U11(tt) -> 0 210.10/194.36 U111(tt) -> 0 210.10/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.10/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.10/194.36 U131(tt, N') -> N' 210.10/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.10/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.10/194.36 U143(tt) -> tt 210.10/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.10/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.10/194.36 U153(tt) -> tt 210.10/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.10/194.36 U162(tt) -> tt 210.10/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.10/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.10/194.36 U173(tt) -> tt 210.10/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.10/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.10/194.36 U183(tt) -> tt 210.10/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.10/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.10/194.36 U193(tt) -> tt 210.10/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.10/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.10/194.36 U203(tt) -> tt 210.10/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.10/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.10/194.36 U212(tt) -> tt 210.10/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.10/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.10/194.36 U223(tt) -> tt 210.10/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.10/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.10/194.36 U233(tt) -> tt 210.10/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.10/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.10/194.36 U243(tt) -> tt 210.10/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.10/194.36 U252(tt) -> tt 210.10/194.36 U261(tt, N) -> N 210.10/194.36 U271(tt) -> s_(0) 210.10/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.10/194.36 U282(tt) -> 0 210.10/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.10/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.10/194.36 U31(tt, N) -> N 210.10/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.10/194.36 U51(tt, M, N) -> _>_(M, N) 210.10/194.36 U61(tt) -> false 210.10/194.36 U71(tt) -> true 210.10/194.36 U81(tt, M, N) -> _>_(N, M) 210.10/194.36 U91(tt, N) -> N 210.10/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.10/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.10/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.10/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.10/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 and(tt, X) -> X 210.10/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.10/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.10/194.36 equal(X, X) -> tt 210.10/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.10/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.10/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.10/194.36 isBoolean(false) -> tt 210.10/194.36 isBoolean(true) -> tt 210.10/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isBooleanKind(false) -> tt 210.10/194.36 isBooleanKind(true) -> tt 210.10/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNat(0) -> tt 210.10/194.36 isNat(V) -> U161(isNatKind(V), V) 210.10/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.10/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNatKind(0) -> tt 210.10/194.36 isNatKind(1) -> tt 210.10/194.36 isNatKind(2) -> tt 210.10/194.36 isNatKind(3) -> tt 210.10/194.36 isNatKind(4) -> tt 210.10/194.36 isNatKind(5) -> tt 210.10/194.36 isNatKind(6) -> tt 210.10/194.36 isNatKind(7) -> tt 210.10/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.10/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.10/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.10/194.36 isNzNat(1) -> tt 210.10/194.36 isNzNat(2) -> tt 210.10/194.36 isNzNat(3) -> tt 210.10/194.36 isNzNat(4) -> tt 210.10/194.36 isNzNat(5) -> tt 210.10/194.36 isNzNat(6) -> tt 210.10/194.36 isNzNat(7) -> tt 210.10/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.10/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.21/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.21/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 210.21/194.36 The set E consists of the following equations: 210.21/194.36 210.21/194.36 _*_(x, y) == _*_(y, x) 210.21/194.36 _+_(x, y) == _+_(y, x) 210.21/194.36 d(x, y) == d(y, x) 210.21/194.36 gcd(x, y) == gcd(y, x) 210.21/194.36 210.21/194.36 The set E# consists of the following equations: 210.21/194.36 210.21/194.36 _*_^1(x, y) == _*_^1(y, x) 210.21/194.36 _+_^1(x, y) == _+_^1(y, x) 210.21/194.36 D(x, y) == D(y, x) 210.21/194.36 GCD(x, y) == GCD(y, x) 210.21/194.36 210.21/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (41) ESharpUsableEquationsProof (EQUIVALENT) 210.21/194.36 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.21/194.36 _*_^1(x, y) == _*_^1(y, x) 210.21/194.36 _+_^1(x, y) == _+_^1(y, x) 210.21/194.36 GCD(x, y) == GCD(y, x) 210.21/194.36 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (42) 210.21/194.36 Obligation: 210.21/194.36 The TRS P consists of the following rules: 210.21/194.36 210.21/194.36 U101^1(tt, M, N) -> D(N, M) 210.21/194.36 D(s_(N), s_(M)) -> U101^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 210.21/194.36 The TRS R consists of the following rules: 210.21/194.36 210.21/194.36 1 -> s_(0) 210.21/194.36 2 -> s_(s_(0)) 210.21/194.36 3 -> s_(s_(s_(0))) 210.21/194.36 4 -> s_(s_(s_(s_(0)))) 210.21/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.21/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.21/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.21/194.36 U101(tt, M, N) -> d(N, M) 210.21/194.36 U11(tt) -> 0 210.21/194.36 U111(tt) -> 0 210.21/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.21/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.21/194.36 U131(tt, N') -> N' 210.21/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.21/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.21/194.36 U143(tt) -> tt 210.21/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.21/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.21/194.36 U153(tt) -> tt 210.21/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.21/194.36 U162(tt) -> tt 210.21/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.21/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.21/194.36 U173(tt) -> tt 210.21/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.21/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.21/194.36 U183(tt) -> tt 210.21/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.21/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.21/194.36 U193(tt) -> tt 210.21/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.21/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.21/194.36 U203(tt) -> tt 210.21/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.21/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.21/194.36 U212(tt) -> tt 210.21/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.21/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.21/194.36 U223(tt) -> tt 210.21/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.21/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.21/194.36 U233(tt) -> tt 210.21/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.21/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.21/194.36 U243(tt) -> tt 210.21/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.21/194.36 U252(tt) -> tt 210.21/194.36 U261(tt, N) -> N 210.21/194.36 U271(tt) -> s_(0) 210.21/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.21/194.36 U282(tt) -> 0 210.21/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.21/194.36 U31(tt, N) -> N 210.21/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.21/194.36 U51(tt, M, N) -> _>_(M, N) 210.21/194.36 U61(tt) -> false 210.21/194.36 U71(tt) -> true 210.21/194.36 U81(tt, M, N) -> _>_(N, M) 210.21/194.36 U91(tt, N) -> N 210.21/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.21/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.21/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.21/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.21/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 and(tt, X) -> X 210.21/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.21/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 equal(X, X) -> tt 210.21/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.21/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.21/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.21/194.36 isBoolean(false) -> tt 210.21/194.36 isBoolean(true) -> tt 210.21/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBooleanKind(false) -> tt 210.21/194.36 isBooleanKind(true) -> tt 210.21/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNat(0) -> tt 210.21/194.36 isNat(V) -> U161(isNatKind(V), V) 210.21/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.21/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNatKind(0) -> tt 210.21/194.36 isNatKind(1) -> tt 210.21/194.36 isNatKind(2) -> tt 210.21/194.36 isNatKind(3) -> tt 210.21/194.36 isNatKind(4) -> tt 210.21/194.36 isNatKind(5) -> tt 210.21/194.36 isNatKind(6) -> tt 210.21/194.36 isNatKind(7) -> tt 210.21/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.21/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.21/194.36 isNzNat(1) -> tt 210.21/194.36 isNzNat(2) -> tt 210.21/194.36 isNzNat(3) -> tt 210.21/194.36 isNzNat(4) -> tt 210.21/194.36 isNzNat(5) -> tt 210.21/194.36 isNzNat(6) -> tt 210.21/194.36 isNzNat(7) -> tt 210.21/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.21/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.21/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 210.21/194.36 The set E consists of the following equations: 210.21/194.36 210.21/194.36 _*_(x, y) == _*_(y, x) 210.21/194.36 _+_(x, y) == _+_(y, x) 210.21/194.36 d(x, y) == d(y, x) 210.21/194.36 gcd(x, y) == gcd(y, x) 210.21/194.36 210.21/194.36 The set E# consists of the following equations: 210.21/194.36 210.21/194.36 D(x, y) == D(y, x) 210.21/194.36 210.21/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (43) EUsableRulesReductionPairsProof (EQUIVALENT) 210.21/194.36 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. 210.21/194.36 210.21/194.36 The following dependency pairs can be deleted: 210.21/194.36 210.21/194.36 D(s_(N), s_(M)) -> U101^1(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 The following rules are removed from R: 210.21/194.36 210.21/194.36 1 -> s_(0) 210.21/194.36 2 -> s_(s_(0)) 210.21/194.36 3 -> s_(s_(s_(0))) 210.21/194.36 4 -> s_(s_(s_(s_(0)))) 210.21/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.21/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.21/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.21/194.36 U101(tt, M, N) -> d(N, M) 210.21/194.36 U11(tt) -> 0 210.21/194.36 U111(tt) -> 0 210.21/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.21/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.21/194.36 U131(tt, N') -> N' 210.21/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.21/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.21/194.36 U143(tt) -> tt 210.21/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.21/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.21/194.36 U153(tt) -> tt 210.21/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.21/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.21/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.21/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.21/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.21/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.21/194.36 U261(tt, N) -> N 210.21/194.36 U271(tt) -> s_(0) 210.21/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.21/194.36 U282(tt) -> 0 210.21/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.21/194.36 U31(tt, N) -> N 210.21/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.21/194.36 U51(tt, M, N) -> _>_(M, N) 210.21/194.36 U61(tt) -> false 210.21/194.36 U71(tt) -> true 210.21/194.36 U81(tt, M, N) -> _>_(N, M) 210.21/194.36 U91(tt, N) -> N 210.21/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.21/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.21/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.21/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.21/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.21/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 equal(X, X) -> tt 210.21/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.21/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.21/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.21/194.36 isBoolean(false) -> tt 210.21/194.36 isBoolean(true) -> tt 210.21/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBooleanKind(false) -> tt 210.21/194.36 isBooleanKind(true) -> tt 210.21/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNat(0) -> tt 210.21/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.21/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNatKind(0) -> tt 210.21/194.36 isNatKind(1) -> tt 210.21/194.36 isNatKind(2) -> tt 210.21/194.36 isNatKind(3) -> tt 210.21/194.36 isNatKind(4) -> tt 210.21/194.36 isNatKind(5) -> tt 210.21/194.36 isNatKind(6) -> tt 210.21/194.36 isNatKind(7) -> tt 210.21/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.21/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.21/194.36 isNzNat(1) -> tt 210.21/194.36 isNzNat(2) -> tt 210.21/194.36 isNzNat(3) -> tt 210.21/194.36 isNzNat(4) -> tt 210.21/194.36 isNzNat(5) -> tt 210.21/194.36 isNzNat(6) -> tt 210.21/194.36 isNzNat(7) -> tt 210.21/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.21/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.21/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 The following equations are removed from E: 210.21/194.36 210.21/194.36 _*_(x, y) == _*_(y, x) 210.21/194.36 _+_(x, y) == _+_(y, x) 210.21/194.36 d(x, y) == d(y, x) 210.21/194.36 gcd(x, y) == gcd(y, x) 210.21/194.36 Used ordering: POLO with Polynomial interpretation [POLO]: 210.21/194.36 210.21/194.36 POL(0) = 0 210.21/194.36 POL(1) = 0 210.21/194.36 POL(2) = 0 210.21/194.36 POL(3) = 0 210.21/194.36 POL(4) = 0 210.21/194.36 POL(5) = 0 210.21/194.36 POL(6) = 0 210.21/194.36 POL(7) = 0 210.21/194.36 POL(D(x_1, x_2)) = 3*x_1 + 3*x_2 210.21/194.36 POL(U101^1(x_1, x_2, x_3)) = 2*x_1 + 3*x_2 + 3*x_3 210.21/194.36 POL(U161(x_1, x_2)) = x_1 + x_2 210.21/194.36 POL(U162(x_1)) = x_1 210.21/194.36 POL(U171(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 210.21/194.36 POL(U172(x_1, x_2)) = x_1 + 2*x_2 210.21/194.36 POL(U173(x_1)) = x_1 210.21/194.36 POL(U181(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 3*x_3 210.21/194.36 POL(U182(x_1, x_2)) = x_1 + 3*x_2 210.21/194.36 POL(U183(x_1)) = x_1 210.21/194.36 POL(U191(x_1, x_2, x_3)) = 3 + x_1 + 3*x_2 + 3*x_3 210.21/194.36 POL(U192(x_1, x_2)) = 2 + x_1 + 3*x_2 210.21/194.36 POL(U193(x_1)) = x_1 210.21/194.36 POL(U201(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 2*x_3 210.21/194.36 POL(U202(x_1, x_2)) = x_1 + 2*x_2 210.21/194.36 POL(U203(x_1)) = x_1 210.21/194.36 POL(U211(x_1, x_2)) = 2*x_1 + 2*x_2 210.21/194.36 POL(U212(x_1)) = x_1 210.21/194.36 POL(U221(x_1, x_2, x_3)) = 2 + 2*x_1 + 2*x_2 + 2*x_3 210.21/194.36 POL(U222(x_1, x_2)) = x_1 + 2*x_2 210.21/194.36 POL(U223(x_1)) = 2*x_1 210.21/194.36 POL(U231(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 210.21/194.36 POL(U232(x_1, x_2)) = x_1 + 2*x_2 210.21/194.36 POL(U233(x_1)) = 2*x_1 210.21/194.36 POL(U241(x_1, x_2, x_3)) = 2*x_1 + x_2 + x_3 210.21/194.36 POL(U242(x_1, x_2)) = x_1 + x_2 210.21/194.36 POL(U243(x_1)) = x_1 210.21/194.36 POL(U251(x_1, x_2)) = x_1 + 2*x_2 210.21/194.36 POL(U252(x_1)) = x_1 210.21/194.36 POL(_*_(x_1, x_2)) = 3*x_1 + 3*x_2 210.21/194.36 POL(_+_(x_1, x_2)) = 1 + 2*x_1 + 3*x_2 210.21/194.36 POL(and(x_1, x_2)) = x_1 + x_2 210.21/194.36 POL(d(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.21/194.36 POL(gcd(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.21/194.36 POL(isNat(x_1)) = 2*x_1 210.21/194.36 POL(isNatKind(x_1)) = x_1 210.21/194.36 POL(isNzNat(x_1)) = x_1 210.21/194.36 POL(p_(x_1)) = 3 + 3*x_1 210.21/194.36 POL(quot(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 210.21/194.36 POL(s_(x_1)) = 3*x_1 210.21/194.36 POL(tt) = 0 210.21/194.36 210.21/194.36 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (44) 210.21/194.36 Obligation: 210.21/194.36 The TRS P consists of the following rules: 210.21/194.36 210.21/194.36 U101^1(tt, M, N) -> D(N, M) 210.21/194.36 210.21/194.36 The TRS R consists of the following rules: 210.21/194.36 210.21/194.36 and(tt, X) -> X 210.21/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.21/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.21/194.36 U233(tt) -> tt 210.21/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.21/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.21/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.21/194.36 U183(tt) -> tt 210.21/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.21/194.36 U203(tt) -> tt 210.21/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.21/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.21/194.36 isNat(V) -> U161(isNatKind(V), V) 210.21/194.36 U173(tt) -> tt 210.21/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.21/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.21/194.36 U252(tt) -> tt 210.21/194.36 U162(tt) -> tt 210.21/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.21/194.36 U193(tt) -> tt 210.21/194.36 U223(tt) -> tt 210.21/194.36 U212(tt) -> tt 210.21/194.36 U243(tt) -> tt 210.21/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.21/194.36 210.21/194.36 E is empty. 210.21/194.36 The set E# consists of the following equations: 210.21/194.36 210.21/194.36 D(x, y) == D(y, x) 210.21/194.36 210.21/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (45) EDependencyGraphProof (EQUIVALENT) 210.21/194.36 The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 1 less node. 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (46) 210.21/194.36 TRUE 210.21/194.36 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (47) 210.21/194.36 Obligation: 210.21/194.36 The TRS P consists of the following rules: 210.21/194.36 210.21/194.36 QUOT(N, M') -> U291^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 U291^1(tt, M', N) -> U292^1(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292^1(tt, M', N) -> QUOT(d(N, M'), M') 210.21/194.36 210.21/194.36 The TRS R consists of the following rules: 210.21/194.36 210.21/194.36 1 -> s_(0) 210.21/194.36 2 -> s_(s_(0)) 210.21/194.36 3 -> s_(s_(s_(0))) 210.21/194.36 4 -> s_(s_(s_(s_(0)))) 210.21/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.21/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.21/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.21/194.36 U101(tt, M, N) -> d(N, M) 210.21/194.36 U11(tt) -> 0 210.21/194.36 U111(tt) -> 0 210.21/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.21/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.21/194.36 U131(tt, N') -> N' 210.21/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.21/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.21/194.36 U143(tt) -> tt 210.21/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.21/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.21/194.36 U153(tt) -> tt 210.21/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.21/194.36 U162(tt) -> tt 210.21/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.21/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.21/194.36 U173(tt) -> tt 210.21/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.21/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.21/194.36 U183(tt) -> tt 210.21/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.21/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.21/194.36 U193(tt) -> tt 210.21/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.21/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.21/194.36 U203(tt) -> tt 210.21/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.21/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.21/194.36 U212(tt) -> tt 210.21/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.21/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.21/194.36 U223(tt) -> tt 210.21/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.21/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.21/194.36 U233(tt) -> tt 210.21/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.21/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.21/194.36 U243(tt) -> tt 210.21/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.21/194.36 U252(tt) -> tt 210.21/194.36 U261(tt, N) -> N 210.21/194.36 U271(tt) -> s_(0) 210.21/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.21/194.36 U282(tt) -> 0 210.21/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.21/194.36 U31(tt, N) -> N 210.21/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.21/194.36 U51(tt, M, N) -> _>_(M, N) 210.21/194.36 U61(tt) -> false 210.21/194.36 U71(tt) -> true 210.21/194.36 U81(tt, M, N) -> _>_(N, M) 210.21/194.36 U91(tt, N) -> N 210.21/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.21/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.21/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.21/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.21/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 and(tt, X) -> X 210.21/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.21/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 equal(X, X) -> tt 210.21/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.21/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.21/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.21/194.36 isBoolean(false) -> tt 210.21/194.36 isBoolean(true) -> tt 210.21/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBooleanKind(false) -> tt 210.21/194.36 isBooleanKind(true) -> tt 210.21/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNat(0) -> tt 210.21/194.36 isNat(V) -> U161(isNatKind(V), V) 210.21/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.21/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNatKind(0) -> tt 210.21/194.36 isNatKind(1) -> tt 210.21/194.36 isNatKind(2) -> tt 210.21/194.36 isNatKind(3) -> tt 210.21/194.36 isNatKind(4) -> tt 210.21/194.36 isNatKind(5) -> tt 210.21/194.36 isNatKind(6) -> tt 210.21/194.36 isNatKind(7) -> tt 210.21/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.21/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.21/194.36 isNzNat(1) -> tt 210.21/194.36 isNzNat(2) -> tt 210.21/194.36 isNzNat(3) -> tt 210.21/194.36 isNzNat(4) -> tt 210.21/194.36 isNzNat(5) -> tt 210.21/194.36 isNzNat(6) -> tt 210.21/194.36 isNzNat(7) -> tt 210.21/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.21/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.21/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 210.21/194.36 The set E consists of the following equations: 210.21/194.36 210.21/194.36 _*_(x, y) == _*_(y, x) 210.21/194.36 _+_(x, y) == _+_(y, x) 210.21/194.36 d(x, y) == d(y, x) 210.21/194.36 gcd(x, y) == gcd(y, x) 210.21/194.36 210.21/194.36 The set E# consists of the following equations: 210.21/194.36 210.21/194.36 _*_^1(x, y) == _*_^1(y, x) 210.21/194.36 _+_^1(x, y) == _+_^1(y, x) 210.21/194.36 D(x, y) == D(y, x) 210.21/194.36 GCD(x, y) == GCD(y, x) 210.21/194.36 210.21/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (48) ESharpUsableEquationsProof (EQUIVALENT) 210.21/194.36 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 210.21/194.36 _*_^1(x, y) == _*_^1(y, x) 210.21/194.36 _+_^1(x, y) == _+_^1(y, x) 210.21/194.36 D(x, y) == D(y, x) 210.21/194.36 GCD(x, y) == GCD(y, x) 210.21/194.36 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (49) 210.21/194.36 Obligation: 210.21/194.36 The TRS P consists of the following rules: 210.21/194.36 210.21/194.36 QUOT(N, M') -> U291^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 U291^1(tt, M', N) -> U292^1(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292^1(tt, M', N) -> QUOT(d(N, M'), M') 210.21/194.36 210.21/194.36 The TRS R consists of the following rules: 210.21/194.36 210.21/194.36 1 -> s_(0) 210.21/194.36 2 -> s_(s_(0)) 210.21/194.36 3 -> s_(s_(s_(0))) 210.21/194.36 4 -> s_(s_(s_(s_(0)))) 210.21/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.21/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.21/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.21/194.36 U101(tt, M, N) -> d(N, M) 210.21/194.36 U11(tt) -> 0 210.21/194.36 U111(tt) -> 0 210.21/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.21/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.21/194.36 U131(tt, N') -> N' 210.21/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.21/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.21/194.36 U143(tt) -> tt 210.21/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.21/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.21/194.36 U153(tt) -> tt 210.21/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.21/194.36 U162(tt) -> tt 210.21/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.21/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.21/194.36 U173(tt) -> tt 210.21/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.21/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.21/194.36 U183(tt) -> tt 210.21/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.21/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.21/194.36 U193(tt) -> tt 210.21/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.21/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.21/194.36 U203(tt) -> tt 210.21/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.21/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.21/194.36 U212(tt) -> tt 210.21/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.21/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.21/194.36 U223(tt) -> tt 210.21/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.21/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.21/194.36 U233(tt) -> tt 210.21/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.21/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.21/194.36 U243(tt) -> tt 210.21/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.21/194.36 U252(tt) -> tt 210.21/194.36 U261(tt, N) -> N 210.21/194.36 U271(tt) -> s_(0) 210.21/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.21/194.36 U282(tt) -> 0 210.21/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.21/194.36 U31(tt, N) -> N 210.21/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.21/194.36 U51(tt, M, N) -> _>_(M, N) 210.21/194.36 U61(tt) -> false 210.21/194.36 U71(tt) -> true 210.21/194.36 U81(tt, M, N) -> _>_(N, M) 210.21/194.36 U91(tt, N) -> N 210.21/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.21/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.21/194.36 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.21/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.21/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 and(tt, X) -> X 210.21/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.21/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 equal(X, X) -> tt 210.21/194.36 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.21/194.36 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.21/194.36 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.21/194.36 isBoolean(false) -> tt 210.21/194.36 isBoolean(true) -> tt 210.21/194.36 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isBooleanKind(false) -> tt 210.21/194.36 isBooleanKind(true) -> tt 210.21/194.36 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNat(0) -> tt 210.21/194.36 isNat(V) -> U161(isNatKind(V), V) 210.21/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.21/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNatKind(0) -> tt 210.21/194.36 isNatKind(1) -> tt 210.21/194.36 isNatKind(2) -> tt 210.21/194.36 isNatKind(3) -> tt 210.21/194.36 isNatKind(4) -> tt 210.21/194.36 isNatKind(5) -> tt 210.21/194.36 isNatKind(6) -> tt 210.21/194.36 isNatKind(7) -> tt 210.21/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.21/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.21/194.36 isNzNat(1) -> tt 210.21/194.36 isNzNat(2) -> tt 210.21/194.36 isNzNat(3) -> tt 210.21/194.36 isNzNat(4) -> tt 210.21/194.36 isNzNat(5) -> tt 210.21/194.36 isNzNat(6) -> tt 210.21/194.36 isNzNat(7) -> tt 210.21/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.36 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.21/194.36 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.21/194.36 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 210.21/194.36 The set E consists of the following equations: 210.21/194.36 210.21/194.36 _*_(x, y) == _*_(y, x) 210.21/194.36 _+_(x, y) == _+_(y, x) 210.21/194.36 d(x, y) == d(y, x) 210.21/194.36 gcd(x, y) == gcd(y, x) 210.21/194.36 210.21/194.36 E# is empty. 210.21/194.36 We have to consider all minimal (P,E#,R,E)-chains 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (50) EUsableRulesProof (EQUIVALENT) 210.21/194.36 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: 210.21/194.36 c(x, y) -> x 210.21/194.36 c(x, y) -> y 210.21/194.36 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (51) 210.21/194.36 Obligation: 210.21/194.36 The TRS P consists of the following rules: 210.21/194.36 210.21/194.36 QUOT(N, M') -> U291^1(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.36 U291^1(tt, M', N) -> U292^1(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292^1(tt, M', N) -> QUOT(d(N, M'), M') 210.21/194.36 210.21/194.36 The TRS R consists of the following rules: 210.21/194.36 210.21/194.36 isNzNat(6) -> tt 210.21/194.36 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 and(tt, X) -> X 210.21/194.36 isNat(0) -> tt 210.21/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.21/194.36 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.21/194.36 U233(tt) -> tt 210.21/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.21/194.36 equal(X, X) -> tt 210.21/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.21/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.21/194.36 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.21/194.36 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNatKind(5) -> tt 210.21/194.36 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 U183(tt) -> tt 210.21/194.36 isNatKind(4) -> tt 210.21/194.36 isNatKind(3) -> tt 210.21/194.36 isNatKind(0) -> tt 210.21/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.21/194.36 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 U203(tt) -> tt 210.21/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.21/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.21/194.36 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNat(V) -> U161(isNatKind(V), V) 210.21/194.36 U173(tt) -> tt 210.21/194.36 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.21/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.21/194.36 U81(tt, M, N) -> _>_(N, M) 210.21/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.21/194.36 U101(tt, M, N) -> d(N, M) 210.21/194.36 U252(tt) -> tt 210.21/194.36 isNzNat(7) -> tt 210.21/194.36 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 isNzNat(1) -> tt 210.21/194.36 isNzNat(4) -> tt 210.21/194.36 isNzNat(5) -> tt 210.21/194.36 isNzNat(2) -> tt 210.21/194.36 isNzNat(3) -> tt 210.21/194.36 U162(tt) -> tt 210.21/194.36 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.21/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.21/194.36 U193(tt) -> tt 210.21/194.36 U223(tt) -> tt 210.21/194.36 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.21/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.21/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.21/194.36 U212(tt) -> tt 210.21/194.36 U61(tt) -> false 210.21/194.36 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.21/194.36 U91(tt, N) -> N 210.21/194.36 isNatKind(7) -> tt 210.21/194.36 isNatKind(p_(V1)) -> isNatKind(V1) 210.21/194.36 U243(tt) -> tt 210.21/194.36 isNatKind(1) -> tt 210.21/194.36 isNatKind(6) -> tt 210.21/194.36 isNatKind(2) -> tt 210.21/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.21/194.36 isNatKind(s_(V1)) -> isNatKind(V1) 210.21/194.36 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.21/194.36 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.21/194.36 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.36 U71(tt) -> true 210.21/194.36 c(x, y) -> x 210.21/194.36 c(x, y) -> y 210.21/194.36 210.21/194.36 The set E consists of the following equations: 210.21/194.36 210.21/194.36 d(x, y) == d(y, x) 210.21/194.36 210.21/194.36 E# is empty. 210.21/194.36 We have to consider all (P,E#,R,E)-chains 210.21/194.36 ---------------------------------------- 210.21/194.36 210.21/194.36 (52) 210.21/194.36 Obligation: 210.21/194.36 The TRS P consists of the following rules: 210.21/194.36 210.21/194.36 U122^1(tt, M', N') -> GCD(d(N', M'), M') 210.21/194.36 GCD(N', M') -> U121^1(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.21/194.36 U121^1(tt, M', N') -> U122^1(equal(_>_(N', M'), true), M', N') 210.21/194.36 210.21/194.36 The TRS R consists of the following rules: 210.21/194.36 210.21/194.36 1 -> s_(0) 210.21/194.36 2 -> s_(s_(0)) 210.21/194.36 3 -> s_(s_(s_(0))) 210.21/194.36 4 -> s_(s_(s_(s_(0)))) 210.21/194.36 5 -> s_(s_(s_(s_(s_(0))))) 210.21/194.36 6 -> s_(s_(s_(s_(s_(s_(0)))))) 210.21/194.36 7 -> s_(s_(s_(s_(s_(s_(s_(0))))))) 210.21/194.36 U101(tt, M, N) -> d(N, M) 210.21/194.36 U11(tt) -> 0 210.21/194.36 U111(tt) -> 0 210.21/194.36 U121(tt, M', N') -> U122(equal(_>_(N', M'), true), M', N') 210.21/194.36 U122(tt, M', N') -> gcd(d(N', M'), M') 210.21/194.36 U131(tt, N') -> N' 210.21/194.36 U141(tt, V1, V2) -> U142(isNat(V1), V2) 210.21/194.36 U142(tt, V2) -> U143(isNat(V2)) 210.21/194.36 U143(tt) -> tt 210.21/194.36 U151(tt, V1, V2) -> U152(isNat(V1), V2) 210.21/194.36 U152(tt, V2) -> U153(isNat(V2)) 210.21/194.36 U153(tt) -> tt 210.21/194.36 U161(tt, V) -> U162(isNzNat(V)) 210.21/194.36 U162(tt) -> tt 210.21/194.36 U171(tt, V1, V2) -> U172(isNat(V1), V2) 210.21/194.36 U172(tt, V2) -> U173(isNat(V2)) 210.21/194.36 U173(tt) -> tt 210.21/194.36 U181(tt, V1, V2) -> U182(isNat(V1), V2) 210.21/194.36 U182(tt, V2) -> U183(isNat(V2)) 210.21/194.36 U183(tt) -> tt 210.21/194.36 U191(tt, V1, V2) -> U192(isNat(V1), V2) 210.21/194.36 U192(tt, V2) -> U193(isNat(V2)) 210.21/194.36 U193(tt) -> tt 210.21/194.36 U201(tt, V1, V2) -> U202(isNat(V1), V2) 210.21/194.36 U202(tt, V2) -> U203(isNat(V2)) 210.21/194.36 U203(tt) -> tt 210.21/194.36 U21(tt, M, N) -> s_(_+_(N, _+_(M, _*_(N, M)))) 210.21/194.36 U211(tt, V1) -> U212(isNzNat(V1)) 210.21/194.36 U212(tt) -> tt 210.21/194.36 U221(tt, V1, V2) -> U222(isNat(V1), V2) 210.21/194.36 U222(tt, V2) -> U223(isNzNat(V2)) 210.21/194.36 U223(tt) -> tt 210.21/194.36 U231(tt, V1, V2) -> U232(isNzNat(V1), V2) 210.21/194.36 U232(tt, V2) -> U233(isNzNat(V2)) 210.21/194.36 U233(tt) -> tt 210.21/194.36 U241(tt, V1, V2) -> U242(isNzNat(V1), V2) 210.21/194.36 U242(tt, V2) -> U243(isNzNat(V2)) 210.21/194.36 U243(tt) -> tt 210.21/194.36 U251(tt, V1) -> U252(isNat(V1)) 210.21/194.36 U252(tt) -> tt 210.21/194.36 U261(tt, N) -> N 210.21/194.36 U271(tt) -> s_(0) 210.21/194.36 U281(tt, M', N) -> U282(equal(_>_(M', N), true)) 210.21/194.36 U282(tt) -> 0 210.21/194.36 U291(tt, M', N) -> U292(equal(_>_(N, M'), true), M', N) 210.21/194.36 U292(tt, M', N) -> s_(quot(d(N, M'), M')) 210.21/194.36 U31(tt, N) -> N 210.21/194.36 U41(tt, M, N) -> s_(s_(_+_(N, M))) 210.21/194.36 U51(tt, M, N) -> _>_(M, N) 210.21/194.36 U61(tt) -> false 210.21/194.36 U71(tt) -> true 210.21/194.36 U81(tt, M, N) -> _>_(N, M) 210.21/194.36 U91(tt, N) -> N 210.21/194.36 _*_(N, 0) -> U11(and(isNat(N), isNatKind(N))) 210.21/194.36 _*_(s_(N), s_(M)) -> U21(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.36 _+_(N, 0) -> U31(and(isNat(N), isNatKind(N)), N) 210.21/194.37 _+_(s_(N), s_(M)) -> U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.37 _<_(N, M) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.37 _>_(0, M) -> U61(and(isNat(M), isNatKind(M))) 210.21/194.37 _>_(N', 0) -> U71(and(isNzNat(N'), isNatKind(N'))) 210.21/194.37 _>_(s_(N), s_(M)) -> U81(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.37 and(tt, X) -> X 210.21/194.37 d(0, N) -> U91(and(isNat(N), isNatKind(N)), N) 210.21/194.37 d(s_(N), s_(M)) -> U101(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 210.21/194.37 equal(X, X) -> tt 210.21/194.37 gcd(0, N) -> U111(and(isNat(N), isNatKind(N))) 210.21/194.37 gcd(N', M') -> U121(and(and(isNzNat(M'), isNatKind(M')), and(isNzNat(N'), isNatKind(N'))), M', N') 210.21/194.37 gcd(N', N') -> U131(and(isNzNat(N'), isNatKind(N')), N') 210.21/194.37 isBoolean(false) -> tt 210.21/194.37 isBoolean(true) -> tt 210.21/194.37 isBoolean(_<_(V1, V2)) -> U141(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isBoolean(_>_(V1, V2)) -> U151(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isBooleanKind(false) -> tt 210.21/194.37 isBooleanKind(true) -> tt 210.21/194.37 isBooleanKind(_<_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isBooleanKind(_>_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isNat(0) -> tt 210.21/194.37 isNat(V) -> U161(isNatKind(V), V) 210.21/194.37 isNat(_*_(V1, V2)) -> U171(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNat(_+_(V1, V2)) -> U181(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNat(d(V1, V2)) -> U191(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNat(gcd(V1, V2)) -> U201(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNat(p_(V1)) -> U211(isNatKind(V1), V1) 210.21/194.37 isNat(quot(V1, V2)) -> U221(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNatKind(0) -> tt 210.21/194.37 isNatKind(1) -> tt 210.21/194.37 isNatKind(2) -> tt 210.21/194.37 isNatKind(3) -> tt 210.21/194.37 isNatKind(4) -> tt 210.21/194.37 isNatKind(5) -> tt 210.21/194.37 isNatKind(6) -> tt 210.21/194.37 isNatKind(7) -> tt 210.21/194.37 isNatKind(_*_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isNatKind(_+_(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isNatKind(d(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isNatKind(gcd(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isNatKind(p_(V1)) -> isNatKind(V1) 210.21/194.37 isNatKind(quot(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 210.21/194.37 isNatKind(s_(V1)) -> isNatKind(V1) 210.21/194.37 isNzNat(1) -> tt 210.21/194.37 isNzNat(2) -> tt 210.21/194.37 isNzNat(3) -> tt 210.21/194.37 isNzNat(4) -> tt 210.21/194.37 isNzNat(5) -> tt 210.21/194.37 isNzNat(6) -> tt 210.21/194.37 isNzNat(7) -> tt 210.21/194.37 isNzNat(_*_(V1, V2)) -> U231(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNzNat(gcd(V1, V2)) -> U241(and(isNatKind(V1), isNatKind(V2)), V1, V2) 210.21/194.37 isNzNat(s_(V1)) -> U251(isNatKind(V1), V1) 210.21/194.37 p_(s_(N)) -> U261(and(isNat(N), isNatKind(N)), N) 210.21/194.37 quot(M', M') -> U271(and(isNzNat(M'), isNatKind(M'))) 210.21/194.37 quot(N, M') -> U281(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.37 quot(N, M') -> U291(and(and(isNzNat(M'), isNatKind(M')), and(isNat(N), isNatKind(N))), M', N) 210.21/194.37 210.21/194.37 The set E consists of the following equations: 210.21/194.37 210.21/194.37 _*_(x, y) == _*_(y, x) 210.21/194.37 _+_(x, y) == _+_(y, x) 210.21/194.37 d(x, y) == d(y, x) 210.21/194.37 gcd(x, y) == gcd(y, x) 210.21/194.37 210.21/194.37 The set E# consists of the following equations: 210.21/194.37 210.21/194.37 _*_^1(x, y) == _*_^1(y, x) 210.21/194.37 _+_^1(x, y) == _+_^1(y, x) 210.21/194.37 D(x, y) == D(y, x) 210.21/194.37 GCD(x, y) == GCD(y, x) 210.21/194.37 210.21/194.37 We have to consider all minimal (P,E#,R,E)-chains 210.21/194.40 EOF