YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given ETRS could be proven: (0) ETRS (1) EquationalDependencyPairsProof [EQUIVALENT, 135 ms] (2) EDP (3) EDependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) EDP (6) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (7) EDP (8) EUsableRulesReductionPairsProof [EQUIVALENT, 8 ms] (9) EDP (10) PisEmptyProof [EQUIVALENT, 0 ms] (11) YES (12) EDP (13) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (14) EDP (15) EUsableRulesReductionPairsProof [EQUIVALENT, 112 ms] (16) EDP (17) EDependencyGraphProof [EQUIVALENT, 0 ms] (18) TRUE (19) EDP (20) ESharpUsableEquationsProof [EQUIVALENT, 19 ms] (21) EDP (22) EDPPoloProof [EQUIVALENT, 588 ms] (23) EDP (24) EDependencyGraphProof [EQUIVALENT, 0 ms] (25) EDP (26) EDPPoloProof [EQUIVALENT, 332 ms] (27) EDP (28) EDPPoloProof [EQUIVALENT, 378 ms] (29) EDP (30) PisEmptyProof [EQUIVALENT, 0 ms] (31) YES (32) EDP (33) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (34) EDP (35) EDPPoloProof [EQUIVALENT, 16.2 s] (36) EDP (37) EDependencyGraphProof [EQUIVALENT, 0 ms] (38) EDP (39) EDPPoloProof [EQUIVALENT, 14.9 s] (40) EDP (41) EDependencyGraphProof [EQUIVALENT, 0 ms] (42) EDP (43) EDPPoloProof [EQUIVALENT, 455 ms] (44) EDP (45) PisEmptyProof [EQUIVALENT, 0 ms] (46) YES (47) EDP (48) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (49) EDP (50) EUsableRulesReductionPairsProof [EQUIVALENT, 12 ms] (51) EDP (52) EDependencyGraphProof [EQUIVALENT, 0 ms] (53) TRUE (54) EDP (55) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (56) EDP (57) EUsableRulesReductionPairsProof [EQUIVALENT, 18 ms] (58) EDP (59) EDependencyGraphProof [EQUIVALENT, 0 ms] (60) TRUE ---------------------------------------- (0) Obligation: Equational rewrite system: The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) ---------------------------------------- (1) EquationalDependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: The TRS P consists of the following rules: U101^1(tt, V1) -> U102^1(isBagKind(V1), V1) U101^1(tt, V1) -> ISBAGKIND(V1) U102^1(tt, V1) -> U103^1(isBag(V1)) U102^1(tt, V1) -> ISBAG(V1) U11^1(tt, V1) -> U12^1(isBinKind(V1), V1) U11^1(tt, V1) -> ISBINKIND(V1) U12^1(tt, V1) -> U13^1(isBin(V1)) U12^1(tt, V1) -> ISBIN(V1) U131^1(tt, V2) -> U132^1(isBinKind(V2)) U131^1(tt, V2) -> ISBINKIND(V2) U141^1(tt, V2) -> U142^1(isBinKind(V2)) U141^1(tt, V2) -> ISBINKIND(V2) U171^1(tt, X) -> U172^1(isBinKind(X)) U171^1(tt, X) -> ISBINKIND(X) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) U181^1(tt, X, Y) -> ISBINKIND(X) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) U182^1(tt, X, Y) -> ISBIN(Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U183^1(tt, X, Y) -> ISBINKIND(Y) U184^1(tt, X, Y) -> 0^1(mult(X, Y)) U184^1(tt, X, Y) -> MULT(X, Y) U191^1(tt, X, Y) -> U192^1(isBinKind(X), X, Y) U191^1(tt, X, Y) -> ISBINKIND(X) U192^1(tt, X, Y) -> U193^1(isBin(Y), X, Y) U192^1(tt, X, Y) -> ISBIN(Y) U193^1(tt, X, Y) -> U194^1(isBinKind(Y), X, Y) U193^1(tt, X, Y) -> ISBINKIND(Y) U194^1(tt, X, Y) -> PLUS(0(mult(X, Y)), Y) U194^1(tt, X, Y) -> 0^1(mult(X, Y)) U194^1(tt, X, Y) -> MULT(X, Y) U201^1(tt, X) -> U202^1(isBinKind(X), X) U201^1(tt, X) -> ISBINKIND(X) U21^1(tt, V1, V2) -> U22^1(isBagKind(V1), V1, V2) U21^1(tt, V1, V2) -> ISBAGKIND(V1) U211^1(tt, X, Y) -> U212^1(isBinKind(X), X, Y) U211^1(tt, X, Y) -> ISBINKIND(X) U212^1(tt, X, Y) -> U213^1(isBin(Y), X, Y) U212^1(tt, X, Y) -> ISBIN(Y) U213^1(tt, X, Y) -> U214^1(isBinKind(Y), X, Y) U213^1(tt, X, Y) -> ISBINKIND(Y) U214^1(tt, X, Y) -> 0^1(plus(X, Y)) U214^1(tt, X, Y) -> PLUS(X, Y) U22^1(tt, V1, V2) -> U23^1(isBagKind(V2), V1, V2) U22^1(tt, V1, V2) -> ISBAGKIND(V2) U221^1(tt, X, Y) -> U222^1(isBinKind(X), X, Y) U221^1(tt, X, Y) -> ISBINKIND(X) U222^1(tt, X, Y) -> U223^1(isBin(Y), X, Y) U222^1(tt, X, Y) -> ISBIN(Y) U223^1(tt, X, Y) -> U224^1(isBinKind(Y), X, Y) U223^1(tt, X, Y) -> ISBINKIND(Y) U224^1(tt, X, Y) -> PLUS(X, Y) U23^1(tt, V1, V2) -> U24^1(isBagKind(V2), V1, V2) U23^1(tt, V1, V2) -> ISBAGKIND(V2) U231^1(tt, X, Y) -> U232^1(isBinKind(X), X, Y) U231^1(tt, X, Y) -> ISBINKIND(X) U232^1(tt, X, Y) -> U233^1(isBin(Y), X, Y) U232^1(tt, X, Y) -> ISBIN(Y) U233^1(tt, X, Y) -> U234^1(isBinKind(Y), X, Y) U233^1(tt, X, Y) -> ISBINKIND(Y) U234^1(tt, X, Y) -> 0^1(plus(plus(X, Y), 1(z))) U234^1(tt, X, Y) -> PLUS(plus(X, Y), 1(z)) U234^1(tt, X, Y) -> PLUS(X, Y) U24^1(tt, V1, V2) -> U25^1(isBag(V1), V2) U24^1(tt, V1, V2) -> ISBAG(V1) U241^1(tt, X) -> U242^1(isBinKind(X), X) U241^1(tt, X) -> ISBINKIND(X) U25^1(tt, V2) -> U26^1(isBag(V2)) U25^1(tt, V2) -> ISBAG(V2) U251^1(tt, A, B) -> U252^1(isBagKind(A), A, B) U251^1(tt, A, B) -> ISBAGKIND(A) U252^1(tt, A, B) -> U253^1(isBag(B), A, B) U252^1(tt, A, B) -> ISBAG(B) U253^1(tt, A, B) -> U254^1(isBagKind(B), A, B) U253^1(tt, A, B) -> ISBAGKIND(B) U254^1(tt, A, B) -> MULT(prod(A), prod(B)) U254^1(tt, A, B) -> PROD(A) U254^1(tt, A, B) -> PROD(B) U261^1(tt, X) -> U262^1(isBinKind(X), X) U261^1(tt, X) -> ISBINKIND(X) U271^1(tt, A, B) -> U272^1(isBagKind(A), A, B) U271^1(tt, A, B) -> ISBAGKIND(A) U272^1(tt, A, B) -> U273^1(isBag(B), A, B) U272^1(tt, A, B) -> ISBAG(B) U273^1(tt, A, B) -> U274^1(isBagKind(B), A, B) U273^1(tt, A, B) -> ISBAGKIND(B) U274^1(tt, A, B) -> PLUS(sum(A), sum(B)) U274^1(tt, A, B) -> SUM(A) U274^1(tt, A, B) -> SUM(B) U41^1(tt, V2) -> U42^1(isBagKind(V2)) U41^1(tt, V2) -> ISBAGKIND(V2) U51^1(tt, V1) -> U52^1(isBinKind(V1), V1) U51^1(tt, V1) -> ISBINKIND(V1) U52^1(tt, V1) -> U53^1(isBin(V1)) U52^1(tt, V1) -> ISBIN(V1) U61^1(tt, V1) -> U62^1(isBinKind(V1), V1) U61^1(tt, V1) -> ISBINKIND(V1) U62^1(tt, V1) -> U63^1(isBin(V1)) U62^1(tt, V1) -> ISBIN(V1) U71^1(tt, V1, V2) -> U72^1(isBinKind(V1), V1, V2) U71^1(tt, V1, V2) -> ISBINKIND(V1) U72^1(tt, V1, V2) -> U73^1(isBinKind(V2), V1, V2) U72^1(tt, V1, V2) -> ISBINKIND(V2) U73^1(tt, V1, V2) -> U74^1(isBinKind(V2), V1, V2) U73^1(tt, V1, V2) -> ISBINKIND(V2) U74^1(tt, V1, V2) -> U75^1(isBin(V1), V2) U74^1(tt, V1, V2) -> ISBIN(V1) U75^1(tt, V2) -> U76^1(isBin(V2)) U75^1(tt, V2) -> ISBIN(V2) U81^1(tt, V1, V2) -> U82^1(isBinKind(V1), V1, V2) U81^1(tt, V1, V2) -> ISBINKIND(V1) U82^1(tt, V1, V2) -> U83^1(isBinKind(V2), V1, V2) U82^1(tt, V1, V2) -> ISBINKIND(V2) U83^1(tt, V1, V2) -> U84^1(isBinKind(V2), V1, V2) U83^1(tt, V1, V2) -> ISBINKIND(V2) U84^1(tt, V1, V2) -> U85^1(isBin(V1), V2) U84^1(tt, V1, V2) -> ISBIN(V1) U85^1(tt, V2) -> U86^1(isBin(V2)) U85^1(tt, V2) -> ISBIN(V2) U91^1(tt, V1) -> U92^1(isBagKind(V1), V1) U91^1(tt, V1) -> ISBAGKIND(V1) U92^1(tt, V1) -> U93^1(isBag(V1)) U92^1(tt, V1) -> ISBAG(V1) ISBAG(singl(V1)) -> U11^1(isBinKind(V1), V1) ISBAG(singl(V1)) -> ISBINKIND(V1) ISBAG(union(V1, V2)) -> U21^1(isBagKind(V1), V1, V2) ISBAG(union(V1, V2)) -> ISBAGKIND(V1) ISBAGKIND(singl(V1)) -> U31^1(isBinKind(V1)) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1, V2)) -> U41^1(isBagKind(V1), V2) ISBAGKIND(union(V1, V2)) -> ISBAGKIND(V1) ISBIN(0(V1)) -> U51^1(isBinKind(V1), V1) ISBIN(0(V1)) -> ISBINKIND(V1) ISBIN(1(V1)) -> U61^1(isBinKind(V1), V1) ISBIN(1(V1)) -> ISBINKIND(V1) ISBIN(mult(V1, V2)) -> U71^1(isBinKind(V1), V1, V2) ISBIN(mult(V1, V2)) -> ISBINKIND(V1) ISBIN(plus(V1, V2)) -> U81^1(isBinKind(V1), V1, V2) ISBIN(plus(V1, V2)) -> ISBINKIND(V1) ISBIN(prod(V1)) -> U91^1(isBagKind(V1), V1) ISBIN(prod(V1)) -> ISBAGKIND(V1) ISBIN(sum(V1)) -> U101^1(isBagKind(V1), V1) ISBIN(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(0(V1)) -> U111^1(isBinKind(V1)) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(1(V1)) -> U121^1(isBinKind(V1)) ISBINKIND(1(V1)) -> ISBINKIND(V1) ISBINKIND(mult(V1, V2)) -> U131^1(isBinKind(V1), V2) ISBINKIND(mult(V1, V2)) -> ISBINKIND(V1) ISBINKIND(plus(V1, V2)) -> U141^1(isBinKind(V1), V2) ISBINKIND(plus(V1, V2)) -> ISBINKIND(V1) ISBINKIND(prod(V1)) -> U151^1(isBagKind(V1)) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) ISBINKIND(sum(V1)) -> U161^1(isBagKind(V1)) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) MULT(z, X) -> U171^1(isBin(X), X) MULT(z, X) -> ISBIN(X) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) MULT(0(X), Y) -> ISBIN(X) MULT(1(X), Y) -> U191^1(isBin(X), X, Y) MULT(1(X), Y) -> ISBIN(X) PLUS(z, X) -> U201^1(isBin(X), X) PLUS(z, X) -> ISBIN(X) PLUS(0(X), 0(Y)) -> U211^1(isBin(X), X, Y) PLUS(0(X), 0(Y)) -> ISBIN(X) PLUS(0(X), 1(Y)) -> U221^1(isBin(X), X, Y) PLUS(0(X), 1(Y)) -> ISBIN(X) PLUS(1(X), 1(Y)) -> U231^1(isBin(X), X, Y) PLUS(1(X), 1(Y)) -> ISBIN(X) PROD(singl(X)) -> U241^1(isBin(X), X) PROD(singl(X)) -> ISBIN(X) PROD(union(A, B)) -> U251^1(isBag(A), A, B) PROD(union(A, B)) -> ISBAG(A) SUM(empty) -> 0^1(z) SUM(singl(X)) -> U261^1(isBin(X), X) SUM(singl(X)) -> ISBIN(X) SUM(union(A, B)) -> U271^1(isBag(A), A, B) SUM(union(A, B)) -> ISBAG(A) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(z, X), ext) -> U171^1(isBin(X), X) MULT(mult(z, X), ext) -> ISBIN(X) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) MULT(mult(0(X), Y), ext) -> ISBIN(X) MULT(mult(1(X), Y), ext) -> MULT(U191(isBin(X), X, Y), ext) MULT(mult(1(X), Y), ext) -> U191^1(isBin(X), X, Y) MULT(mult(1(X), Y), ext) -> ISBIN(X) PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) PLUS(plus(z, X), ext) -> U201^1(isBin(X), X) PLUS(plus(z, X), ext) -> ISBIN(X) PLUS(plus(0(X), 0(Y)), ext) -> PLUS(U211(isBin(X), X, Y), ext) PLUS(plus(0(X), 0(Y)), ext) -> U211^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> ISBIN(X) PLUS(plus(0(X), 1(Y)), ext) -> PLUS(U221(isBin(X), X, Y), ext) PLUS(plus(0(X), 1(Y)), ext) -> U221^1(isBin(X), X, Y) PLUS(plus(0(X), 1(Y)), ext) -> ISBIN(X) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) PLUS(plus(1(X), 1(Y)), ext) -> U231^1(isBin(X), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> ISBIN(X) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (2) Obligation: The TRS P consists of the following rules: U101^1(tt, V1) -> U102^1(isBagKind(V1), V1) U101^1(tt, V1) -> ISBAGKIND(V1) U102^1(tt, V1) -> U103^1(isBag(V1)) U102^1(tt, V1) -> ISBAG(V1) U11^1(tt, V1) -> U12^1(isBinKind(V1), V1) U11^1(tt, V1) -> ISBINKIND(V1) U12^1(tt, V1) -> U13^1(isBin(V1)) U12^1(tt, V1) -> ISBIN(V1) U131^1(tt, V2) -> U132^1(isBinKind(V2)) U131^1(tt, V2) -> ISBINKIND(V2) U141^1(tt, V2) -> U142^1(isBinKind(V2)) U141^1(tt, V2) -> ISBINKIND(V2) U171^1(tt, X) -> U172^1(isBinKind(X)) U171^1(tt, X) -> ISBINKIND(X) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) U181^1(tt, X, Y) -> ISBINKIND(X) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) U182^1(tt, X, Y) -> ISBIN(Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U183^1(tt, X, Y) -> ISBINKIND(Y) U184^1(tt, X, Y) -> 0^1(mult(X, Y)) U184^1(tt, X, Y) -> MULT(X, Y) U191^1(tt, X, Y) -> U192^1(isBinKind(X), X, Y) U191^1(tt, X, Y) -> ISBINKIND(X) U192^1(tt, X, Y) -> U193^1(isBin(Y), X, Y) U192^1(tt, X, Y) -> ISBIN(Y) U193^1(tt, X, Y) -> U194^1(isBinKind(Y), X, Y) U193^1(tt, X, Y) -> ISBINKIND(Y) U194^1(tt, X, Y) -> PLUS(0(mult(X, Y)), Y) U194^1(tt, X, Y) -> 0^1(mult(X, Y)) U194^1(tt, X, Y) -> MULT(X, Y) U201^1(tt, X) -> U202^1(isBinKind(X), X) U201^1(tt, X) -> ISBINKIND(X) U21^1(tt, V1, V2) -> U22^1(isBagKind(V1), V1, V2) U21^1(tt, V1, V2) -> ISBAGKIND(V1) U211^1(tt, X, Y) -> U212^1(isBinKind(X), X, Y) U211^1(tt, X, Y) -> ISBINKIND(X) U212^1(tt, X, Y) -> U213^1(isBin(Y), X, Y) U212^1(tt, X, Y) -> ISBIN(Y) U213^1(tt, X, Y) -> U214^1(isBinKind(Y), X, Y) U213^1(tt, X, Y) -> ISBINKIND(Y) U214^1(tt, X, Y) -> 0^1(plus(X, Y)) U214^1(tt, X, Y) -> PLUS(X, Y) U22^1(tt, V1, V2) -> U23^1(isBagKind(V2), V1, V2) U22^1(tt, V1, V2) -> ISBAGKIND(V2) U221^1(tt, X, Y) -> U222^1(isBinKind(X), X, Y) U221^1(tt, X, Y) -> ISBINKIND(X) U222^1(tt, X, Y) -> U223^1(isBin(Y), X, Y) U222^1(tt, X, Y) -> ISBIN(Y) U223^1(tt, X, Y) -> U224^1(isBinKind(Y), X, Y) U223^1(tt, X, Y) -> ISBINKIND(Y) U224^1(tt, X, Y) -> PLUS(X, Y) U23^1(tt, V1, V2) -> U24^1(isBagKind(V2), V1, V2) U23^1(tt, V1, V2) -> ISBAGKIND(V2) U231^1(tt, X, Y) -> U232^1(isBinKind(X), X, Y) U231^1(tt, X, Y) -> ISBINKIND(X) U232^1(tt, X, Y) -> U233^1(isBin(Y), X, Y) U232^1(tt, X, Y) -> ISBIN(Y) U233^1(tt, X, Y) -> U234^1(isBinKind(Y), X, Y) U233^1(tt, X, Y) -> ISBINKIND(Y) U234^1(tt, X, Y) -> 0^1(plus(plus(X, Y), 1(z))) U234^1(tt, X, Y) -> PLUS(plus(X, Y), 1(z)) U234^1(tt, X, Y) -> PLUS(X, Y) U24^1(tt, V1, V2) -> U25^1(isBag(V1), V2) U24^1(tt, V1, V2) -> ISBAG(V1) U241^1(tt, X) -> U242^1(isBinKind(X), X) U241^1(tt, X) -> ISBINKIND(X) U25^1(tt, V2) -> U26^1(isBag(V2)) U25^1(tt, V2) -> ISBAG(V2) U251^1(tt, A, B) -> U252^1(isBagKind(A), A, B) U251^1(tt, A, B) -> ISBAGKIND(A) U252^1(tt, A, B) -> U253^1(isBag(B), A, B) U252^1(tt, A, B) -> ISBAG(B) U253^1(tt, A, B) -> U254^1(isBagKind(B), A, B) U253^1(tt, A, B) -> ISBAGKIND(B) U254^1(tt, A, B) -> MULT(prod(A), prod(B)) U254^1(tt, A, B) -> PROD(A) U254^1(tt, A, B) -> PROD(B) U261^1(tt, X) -> U262^1(isBinKind(X), X) U261^1(tt, X) -> ISBINKIND(X) U271^1(tt, A, B) -> U272^1(isBagKind(A), A, B) U271^1(tt, A, B) -> ISBAGKIND(A) U272^1(tt, A, B) -> U273^1(isBag(B), A, B) U272^1(tt, A, B) -> ISBAG(B) U273^1(tt, A, B) -> U274^1(isBagKind(B), A, B) U273^1(tt, A, B) -> ISBAGKIND(B) U274^1(tt, A, B) -> PLUS(sum(A), sum(B)) U274^1(tt, A, B) -> SUM(A) U274^1(tt, A, B) -> SUM(B) U41^1(tt, V2) -> U42^1(isBagKind(V2)) U41^1(tt, V2) -> ISBAGKIND(V2) U51^1(tt, V1) -> U52^1(isBinKind(V1), V1) U51^1(tt, V1) -> ISBINKIND(V1) U52^1(tt, V1) -> U53^1(isBin(V1)) U52^1(tt, V1) -> ISBIN(V1) U61^1(tt, V1) -> U62^1(isBinKind(V1), V1) U61^1(tt, V1) -> ISBINKIND(V1) U62^1(tt, V1) -> U63^1(isBin(V1)) U62^1(tt, V1) -> ISBIN(V1) U71^1(tt, V1, V2) -> U72^1(isBinKind(V1), V1, V2) U71^1(tt, V1, V2) -> ISBINKIND(V1) U72^1(tt, V1, V2) -> U73^1(isBinKind(V2), V1, V2) U72^1(tt, V1, V2) -> ISBINKIND(V2) U73^1(tt, V1, V2) -> U74^1(isBinKind(V2), V1, V2) U73^1(tt, V1, V2) -> ISBINKIND(V2) U74^1(tt, V1, V2) -> U75^1(isBin(V1), V2) U74^1(tt, V1, V2) -> ISBIN(V1) U75^1(tt, V2) -> U76^1(isBin(V2)) U75^1(tt, V2) -> ISBIN(V2) U81^1(tt, V1, V2) -> U82^1(isBinKind(V1), V1, V2) U81^1(tt, V1, V2) -> ISBINKIND(V1) U82^1(tt, V1, V2) -> U83^1(isBinKind(V2), V1, V2) U82^1(tt, V1, V2) -> ISBINKIND(V2) U83^1(tt, V1, V2) -> U84^1(isBinKind(V2), V1, V2) U83^1(tt, V1, V2) -> ISBINKIND(V2) U84^1(tt, V1, V2) -> U85^1(isBin(V1), V2) U84^1(tt, V1, V2) -> ISBIN(V1) U85^1(tt, V2) -> U86^1(isBin(V2)) U85^1(tt, V2) -> ISBIN(V2) U91^1(tt, V1) -> U92^1(isBagKind(V1), V1) U91^1(tt, V1) -> ISBAGKIND(V1) U92^1(tt, V1) -> U93^1(isBag(V1)) U92^1(tt, V1) -> ISBAG(V1) ISBAG(singl(V1)) -> U11^1(isBinKind(V1), V1) ISBAG(singl(V1)) -> ISBINKIND(V1) ISBAG(union(V1, V2)) -> U21^1(isBagKind(V1), V1, V2) ISBAG(union(V1, V2)) -> ISBAGKIND(V1) ISBAGKIND(singl(V1)) -> U31^1(isBinKind(V1)) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1, V2)) -> U41^1(isBagKind(V1), V2) ISBAGKIND(union(V1, V2)) -> ISBAGKIND(V1) ISBIN(0(V1)) -> U51^1(isBinKind(V1), V1) ISBIN(0(V1)) -> ISBINKIND(V1) ISBIN(1(V1)) -> U61^1(isBinKind(V1), V1) ISBIN(1(V1)) -> ISBINKIND(V1) ISBIN(mult(V1, V2)) -> U71^1(isBinKind(V1), V1, V2) ISBIN(mult(V1, V2)) -> ISBINKIND(V1) ISBIN(plus(V1, V2)) -> U81^1(isBinKind(V1), V1, V2) ISBIN(plus(V1, V2)) -> ISBINKIND(V1) ISBIN(prod(V1)) -> U91^1(isBagKind(V1), V1) ISBIN(prod(V1)) -> ISBAGKIND(V1) ISBIN(sum(V1)) -> U101^1(isBagKind(V1), V1) ISBIN(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(0(V1)) -> U111^1(isBinKind(V1)) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(1(V1)) -> U121^1(isBinKind(V1)) ISBINKIND(1(V1)) -> ISBINKIND(V1) ISBINKIND(mult(V1, V2)) -> U131^1(isBinKind(V1), V2) ISBINKIND(mult(V1, V2)) -> ISBINKIND(V1) ISBINKIND(plus(V1, V2)) -> U141^1(isBinKind(V1), V2) ISBINKIND(plus(V1, V2)) -> ISBINKIND(V1) ISBINKIND(prod(V1)) -> U151^1(isBagKind(V1)) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) ISBINKIND(sum(V1)) -> U161^1(isBagKind(V1)) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) MULT(z, X) -> U171^1(isBin(X), X) MULT(z, X) -> ISBIN(X) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) MULT(0(X), Y) -> ISBIN(X) MULT(1(X), Y) -> U191^1(isBin(X), X, Y) MULT(1(X), Y) -> ISBIN(X) PLUS(z, X) -> U201^1(isBin(X), X) PLUS(z, X) -> ISBIN(X) PLUS(0(X), 0(Y)) -> U211^1(isBin(X), X, Y) PLUS(0(X), 0(Y)) -> ISBIN(X) PLUS(0(X), 1(Y)) -> U221^1(isBin(X), X, Y) PLUS(0(X), 1(Y)) -> ISBIN(X) PLUS(1(X), 1(Y)) -> U231^1(isBin(X), X, Y) PLUS(1(X), 1(Y)) -> ISBIN(X) PROD(singl(X)) -> U241^1(isBin(X), X) PROD(singl(X)) -> ISBIN(X) PROD(union(A, B)) -> U251^1(isBag(A), A, B) PROD(union(A, B)) -> ISBAG(A) SUM(empty) -> 0^1(z) SUM(singl(X)) -> U261^1(isBin(X), X) SUM(singl(X)) -> ISBIN(X) SUM(union(A, B)) -> U271^1(isBag(A), A, B) SUM(union(A, B)) -> ISBAG(A) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(z, X), ext) -> U171^1(isBin(X), X) MULT(mult(z, X), ext) -> ISBIN(X) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) MULT(mult(0(X), Y), ext) -> ISBIN(X) MULT(mult(1(X), Y), ext) -> MULT(U191(isBin(X), X, Y), ext) MULT(mult(1(X), Y), ext) -> U191^1(isBin(X), X, Y) MULT(mult(1(X), Y), ext) -> ISBIN(X) PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) PLUS(plus(z, X), ext) -> U201^1(isBin(X), X) PLUS(plus(z, X), ext) -> ISBIN(X) PLUS(plus(0(X), 0(Y)), ext) -> PLUS(U211(isBin(X), X, Y), ext) PLUS(plus(0(X), 0(Y)), ext) -> U211^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> ISBIN(X) PLUS(plus(0(X), 1(Y)), ext) -> PLUS(U221(isBin(X), X, Y), ext) PLUS(plus(0(X), 1(Y)), ext) -> U221^1(isBin(X), X, Y) PLUS(plus(0(X), 1(Y)), ext) -> ISBIN(X) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) PLUS(plus(1(X), 1(Y)), ext) -> U231^1(isBin(X), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> ISBIN(X) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (3) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 6 SCCs with 99 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: The TRS P consists of the following rules: U141^1(tt, V2) -> ISBINKIND(V2) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) U41^1(tt, V2) -> ISBAGKIND(V2) ISBAGKIND(union(V1, V2)) -> ISBAGKIND(V1) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(1(V1)) -> ISBINKIND(V1) ISBINKIND(plus(V1, V2)) -> ISBINKIND(V1) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(plus(V1, V2)) -> U141^1(isBinKind(V1), V2) U131^1(tt, V2) -> ISBINKIND(V2) ISBINKIND(mult(V1, V2)) -> ISBINKIND(V1) ISBINKIND(mult(V1, V2)) -> U131^1(isBinKind(V1), V2) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1, V2)) -> U41^1(isBagKind(V1), V2) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (6) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) ---------------------------------------- (7) Obligation: The TRS P consists of the following rules: U141^1(tt, V2) -> ISBINKIND(V2) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) U41^1(tt, V2) -> ISBAGKIND(V2) ISBAGKIND(union(V1, V2)) -> ISBAGKIND(V1) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(1(V1)) -> ISBINKIND(V1) ISBINKIND(plus(V1, V2)) -> ISBINKIND(V1) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(plus(V1, V2)) -> U141^1(isBinKind(V1), V2) U131^1(tt, V2) -> ISBINKIND(V2) ISBINKIND(mult(V1, V2)) -> ISBINKIND(V1) ISBINKIND(mult(V1, V2)) -> U131^1(isBinKind(V1), V2) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1, V2)) -> U41^1(isBagKind(V1), V2) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (8) EUsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: U141^1(tt, V2) -> ISBINKIND(V2) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) U41^1(tt, V2) -> ISBAGKIND(V2) ISBAGKIND(union(V1, V2)) -> ISBAGKIND(V1) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(1(V1)) -> ISBINKIND(V1) ISBINKIND(plus(V1, V2)) -> ISBINKIND(V1) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(plus(V1, V2)) -> U141^1(isBinKind(V1), V2) U131^1(tt, V2) -> ISBINKIND(V2) ISBINKIND(mult(V1, V2)) -> ISBINKIND(V1) ISBINKIND(mult(V1, V2)) -> U131^1(isBinKind(V1), V2) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1, V2)) -> U41^1(isBagKind(V1), V2) The following rules are removed from R: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The following equations are removed from E: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 2 + 2*x_1 POL(1(x_1)) = 3*x_1 POL(ISBAGKIND(x_1)) = 3*x_1 POL(ISBINKIND(x_1)) = 2*x_1 POL(U111(x_1)) = x_1 POL(U121(x_1)) = 2*x_1 POL(U131(x_1, x_2)) = 2*x_1 + 3*x_2 POL(U131^1(x_1, x_2)) = 2*x_1 + 3*x_2 POL(U132(x_1)) = 2 + x_1 POL(U141(x_1, x_2)) = x_1 + 3*x_2 POL(U141^1(x_1, x_2)) = x_1 + 3*x_2 POL(U142(x_1)) = x_1 POL(U151(x_1)) = 2*x_1 POL(U161(x_1)) = 2*x_1 POL(U31(x_1)) = 2*x_1 POL(U41(x_1, x_2)) = 2*x_1 + 3*x_2 POL(U41^1(x_1, x_2)) = 2*x_1 + 3*x_2 POL(U42(x_1)) = x_1 POL(empty) = 1 POL(isBagKind(x_1)) = 2 + 2*x_1 POL(isBinKind(x_1)) = 2*x_1 POL(mult(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 POL(plus(x_1, x_2)) = x_1 + 3*x_2 POL(prod(x_1)) = 3 + 2*x_1 POL(singl(x_1)) = 3*x_1 POL(sum(x_1)) = 3 + 3*x_1 POL(tt) = 2 POL(union(x_1, x_2)) = 3 + 2*x_1 + 3*x_2 POL(z) = 2 ---------------------------------------- (9) Obligation: P is empty. The TRS R consists of the following rules: U142(tt) -> tt U42(tt) -> tt U111(tt) -> tt E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (10) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,E#,R,E) chain. ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: The TRS P consists of the following rules: U24^1(tt, V1, V2) -> ISBAG(V1) U102^1(tt, V1) -> ISBAG(V1) U12^1(tt, V1) -> ISBIN(V1) U11^1(tt, V1) -> U12^1(isBinKind(V1), V1) U83^1(tt, V1, V2) -> U84^1(isBinKind(V2), V1, V2) U85^1(tt, V2) -> ISBIN(V2) U25^1(tt, V2) -> ISBAG(V2) U72^1(tt, V1, V2) -> U73^1(isBinKind(V2), V1, V2) ISBIN(0(V1)) -> U51^1(isBinKind(V1), V1) U91^1(tt, V1) -> U92^1(isBagKind(V1), V1) U61^1(tt, V1) -> U62^1(isBinKind(V1), V1) U21^1(tt, V1, V2) -> U22^1(isBagKind(V1), V1, V2) U75^1(tt, V2) -> ISBIN(V2) U23^1(tt, V1, V2) -> U24^1(isBagKind(V2), V1, V2) U81^1(tt, V1, V2) -> U82^1(isBinKind(V1), V1, V2) U51^1(tt, V1) -> U52^1(isBinKind(V1), V1) U74^1(tt, V1, V2) -> ISBIN(V1) ISBIN(sum(V1)) -> U101^1(isBagKind(V1), V1) U24^1(tt, V1, V2) -> U25^1(isBag(V1), V2) U101^1(tt, V1) -> U102^1(isBagKind(V1), V1) ISBAG(union(V1, V2)) -> U21^1(isBagKind(V1), V1, V2) U52^1(tt, V1) -> ISBIN(V1) U92^1(tt, V1) -> ISBAG(V1) U73^1(tt, V1, V2) -> U74^1(isBinKind(V2), V1, V2) U74^1(tt, V1, V2) -> U75^1(isBin(V1), V2) U71^1(tt, V1, V2) -> U72^1(isBinKind(V1), V1, V2) ISBIN(1(V1)) -> U61^1(isBinKind(V1), V1) ISBAG(singl(V1)) -> U11^1(isBinKind(V1), V1) U84^1(tt, V1, V2) -> U85^1(isBin(V1), V2) ISBIN(prod(V1)) -> U91^1(isBagKind(V1), V1) U22^1(tt, V1, V2) -> U23^1(isBagKind(V2), V1, V2) ISBIN(plus(V1, V2)) -> U81^1(isBinKind(V1), V1, V2) U82^1(tt, V1, V2) -> U83^1(isBinKind(V2), V1, V2) U62^1(tt, V1) -> ISBIN(V1) U84^1(tt, V1, V2) -> ISBIN(V1) ISBIN(mult(V1, V2)) -> U71^1(isBinKind(V1), V1, V2) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (13) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) ---------------------------------------- (14) Obligation: The TRS P consists of the following rules: U24^1(tt, V1, V2) -> ISBAG(V1) U102^1(tt, V1) -> ISBAG(V1) U12^1(tt, V1) -> ISBIN(V1) U11^1(tt, V1) -> U12^1(isBinKind(V1), V1) U83^1(tt, V1, V2) -> U84^1(isBinKind(V2), V1, V2) U85^1(tt, V2) -> ISBIN(V2) U25^1(tt, V2) -> ISBAG(V2) U72^1(tt, V1, V2) -> U73^1(isBinKind(V2), V1, V2) ISBIN(0(V1)) -> U51^1(isBinKind(V1), V1) U91^1(tt, V1) -> U92^1(isBagKind(V1), V1) U61^1(tt, V1) -> U62^1(isBinKind(V1), V1) U21^1(tt, V1, V2) -> U22^1(isBagKind(V1), V1, V2) U75^1(tt, V2) -> ISBIN(V2) U23^1(tt, V1, V2) -> U24^1(isBagKind(V2), V1, V2) U81^1(tt, V1, V2) -> U82^1(isBinKind(V1), V1, V2) U51^1(tt, V1) -> U52^1(isBinKind(V1), V1) U74^1(tt, V1, V2) -> ISBIN(V1) ISBIN(sum(V1)) -> U101^1(isBagKind(V1), V1) U24^1(tt, V1, V2) -> U25^1(isBag(V1), V2) U101^1(tt, V1) -> U102^1(isBagKind(V1), V1) ISBAG(union(V1, V2)) -> U21^1(isBagKind(V1), V1, V2) U52^1(tt, V1) -> ISBIN(V1) U92^1(tt, V1) -> ISBAG(V1) U73^1(tt, V1, V2) -> U74^1(isBinKind(V2), V1, V2) U74^1(tt, V1, V2) -> U75^1(isBin(V1), V2) U71^1(tt, V1, V2) -> U72^1(isBinKind(V1), V1, V2) ISBIN(1(V1)) -> U61^1(isBinKind(V1), V1) ISBAG(singl(V1)) -> U11^1(isBinKind(V1), V1) U84^1(tt, V1, V2) -> U85^1(isBin(V1), V2) ISBIN(prod(V1)) -> U91^1(isBagKind(V1), V1) U22^1(tt, V1, V2) -> U23^1(isBagKind(V2), V1, V2) ISBIN(plus(V1, V2)) -> U81^1(isBinKind(V1), V1, V2) U82^1(tt, V1, V2) -> U83^1(isBinKind(V2), V1, V2) U62^1(tt, V1) -> ISBIN(V1) U84^1(tt, V1, V2) -> ISBIN(V1) ISBIN(mult(V1, V2)) -> U71^1(isBinKind(V1), V1, V2) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (15) EUsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: U24^1(tt, V1, V2) -> ISBAG(V1) U102^1(tt, V1) -> ISBAG(V1) U12^1(tt, V1) -> ISBIN(V1) U83^1(tt, V1, V2) -> U84^1(isBinKind(V2), V1, V2) U85^1(tt, V2) -> ISBIN(V2) U25^1(tt, V2) -> ISBAG(V2) U72^1(tt, V1, V2) -> U73^1(isBinKind(V2), V1, V2) ISBIN(0(V1)) -> U51^1(isBinKind(V1), V1) U91^1(tt, V1) -> U92^1(isBagKind(V1), V1) U61^1(tt, V1) -> U62^1(isBinKind(V1), V1) U21^1(tt, V1, V2) -> U22^1(isBagKind(V1), V1, V2) U75^1(tt, V2) -> ISBIN(V2) U23^1(tt, V1, V2) -> U24^1(isBagKind(V2), V1, V2) U81^1(tt, V1, V2) -> U82^1(isBinKind(V1), V1, V2) U51^1(tt, V1) -> U52^1(isBinKind(V1), V1) U74^1(tt, V1, V2) -> ISBIN(V1) ISBIN(sum(V1)) -> U101^1(isBagKind(V1), V1) U24^1(tt, V1, V2) -> U25^1(isBag(V1), V2) U101^1(tt, V1) -> U102^1(isBagKind(V1), V1) ISBAG(union(V1, V2)) -> U21^1(isBagKind(V1), V1, V2) U52^1(tt, V1) -> ISBIN(V1) U92^1(tt, V1) -> ISBAG(V1) U73^1(tt, V1, V2) -> U74^1(isBinKind(V2), V1, V2) ISBIN(1(V1)) -> U61^1(isBinKind(V1), V1) ISBAG(singl(V1)) -> U11^1(isBinKind(V1), V1) U84^1(tt, V1, V2) -> U85^1(isBin(V1), V2) ISBIN(prod(V1)) -> U91^1(isBagKind(V1), V1) ISBIN(plus(V1, V2)) -> U81^1(isBinKind(V1), V1, V2) U82^1(tt, V1, V2) -> U83^1(isBinKind(V2), V1, V2) U62^1(tt, V1) -> ISBIN(V1) U84^1(tt, V1, V2) -> ISBIN(V1) ISBIN(mult(V1, V2)) -> U71^1(isBinKind(V1), V1, V2) The following rules are removed from R: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U11(tt, V1) -> U12(isBinKind(V1), V1) U12(tt, V1) -> U13(isBin(V1)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The following equations are removed from E: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 3 + 3*x_1 POL(1(x_1)) = 2 + 3*x_1 POL(ISBAG(x_1)) = x_1 POL(ISBIN(x_1)) = x_1 POL(U101(x_1, x_2)) = x_1 + 2*x_2 POL(U101^1(x_1, x_2)) = x_1 + 2*x_2 POL(U102(x_1, x_2)) = x_1 + x_2 POL(U102^1(x_1, x_2)) = x_1 + x_2 POL(U103(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 + 2*x_2 POL(U111(x_1)) = x_1 POL(U11^1(x_1, x_2)) = x_1 + 2*x_2 POL(U12(x_1, x_2)) = x_1 + x_2 POL(U121(x_1)) = x_1 POL(U12^1(x_1, x_2)) = 2 + x_1 + x_2 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2)) = x_1 + 2*x_2 POL(U132(x_1)) = 2 + x_1 POL(U141(x_1, x_2)) = 2*x_1 + 2*x_2 POL(U142(x_1)) = 2 + x_1 POL(U151(x_1)) = 2 + x_1 POL(U161(x_1)) = 2*x_1 POL(U21(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U21^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U22(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U22^1(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U23(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U23^1(x_1, x_2, x_3)) = 2 + x_1 + x_2 + 2*x_3 POL(U24(x_1, x_2, x_3)) = 2 + x_1 + x_2 + x_3 POL(U24^1(x_1, x_2, x_3)) = 2 + x_1 + x_2 + x_3 POL(U25(x_1, x_2)) = 2 + x_1 + x_2 POL(U25^1(x_1, x_2)) = x_1 + x_2 POL(U26(x_1)) = 2 + x_1 POL(U31(x_1)) = x_1 POL(U41(x_1, x_2)) = x_1 + 2*x_2 POL(U42(x_1)) = 2*x_1 POL(U51(x_1, x_2)) = x_1 + 2*x_2 POL(U51^1(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U52(x_1, x_2)) = 2 + x_1 + x_2 POL(U52^1(x_1, x_2)) = x_1 + x_2 POL(U53(x_1)) = 2 + x_1 POL(U61(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U61^1(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U62(x_1, x_2)) = x_1 + x_2 POL(U62^1(x_1, x_2)) = x_1 + x_2 POL(U63(x_1)) = 2 + x_1 POL(U71(x_1, x_2, x_3)) = 1 + x_1 + 2*x_2 + 3*x_3 POL(U71^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = 2 + x_1 + x_2 + 3*x_3 POL(U72^1(x_1, x_2, x_3)) = 2 + x_1 + x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U73^1(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U74(x_1, x_2, x_3)) = 2 + x_1 + x_2 + x_3 POL(U74^1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U75(x_1, x_2)) = 1 + x_1 + x_2 POL(U75^1(x_1, x_2)) = 2 + x_1 + x_2 POL(U76(x_1)) = 2 + x_1 POL(U81(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U81^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U82^1(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U83^1(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U84(x_1, x_2, x_3)) = 2 + x_1 + x_2 + x_3 POL(U84^1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U85(x_1, x_2)) = x_1 + x_2 POL(U85^1(x_1, x_2)) = x_1 + x_2 POL(U86(x_1)) = x_1 POL(U91(x_1, x_2)) = x_1 + 2*x_2 POL(U91^1(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U92(x_1, x_2)) = x_1 + x_2 POL(U92^1(x_1, x_2)) = x_1 + x_2 POL(U93(x_1)) = x_1 POL(empty) = 2 POL(isBag(x_1)) = 1 + x_1 POL(isBagKind(x_1)) = x_1 POL(isBin(x_1)) = x_1 POL(isBinKind(x_1)) = x_1 POL(mult(x_1, x_2)) = 1 + 3*x_1 + 3*x_2 POL(plus(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 POL(prod(x_1)) = 2 + 3*x_1 POL(singl(x_1)) = 3*x_1 POL(sum(x_1)) = 1 + 3*x_1 POL(tt) = 2 POL(union(x_1, x_2)) = 1 + 3*x_1 + 3*x_2 POL(z) = 2 ---------------------------------------- (16) Obligation: The TRS P consists of the following rules: U11^1(tt, V1) -> U12^1(isBinKind(V1), V1) U74^1(tt, V1, V2) -> U75^1(isBin(V1), V2) U71^1(tt, V1, V2) -> U72^1(isBinKind(V1), V1, V2) U22^1(tt, V1, V2) -> U23^1(isBagKind(V2), V1, V2) The TRS R consists of the following rules: U103(tt) -> tt U93(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U51(tt, V1) -> U52(isBinKind(V1), V1) U13(tt) -> tt U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U31(tt) -> tt U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U86(tt) -> tt U62(tt, V1) -> U63(isBin(V1)) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (17) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 4 less nodes. ---------------------------------------- (18) TRUE ---------------------------------------- (19) Obligation: The TRS P consists of the following rules: U214^1(tt, X, Y) -> PLUS(X, Y) PLUS(plus(0(X), 1(Y)), ext) -> U221^1(isBin(X), X, Y) U221^1(tt, X, Y) -> U222^1(isBinKind(X), X, Y) PLUS(1(X), 1(Y)) -> U231^1(isBin(X), X, Y) U212^1(tt, X, Y) -> U213^1(isBin(Y), X, Y) PLUS(0(X), 1(Y)) -> U221^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> U211^1(isBin(X), X, Y) U223^1(tt, X, Y) -> U224^1(isBinKind(Y), X, Y) U231^1(tt, X, Y) -> U232^1(isBinKind(X), X, Y) U232^1(tt, X, Y) -> U233^1(isBin(Y), X, Y) U224^1(tt, X, Y) -> PLUS(X, Y) PLUS(plus(0(X), 1(Y)), ext) -> PLUS(U221(isBin(X), X, Y), ext) PLUS(0(X), 0(Y)) -> U211^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> PLUS(U211(isBin(X), X, Y), ext) PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) U233^1(tt, X, Y) -> U234^1(isBinKind(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) U234^1(tt, X, Y) -> PLUS(X, Y) U234^1(tt, X, Y) -> PLUS(plus(X, Y), 1(z)) U213^1(tt, X, Y) -> U214^1(isBinKind(Y), X, Y) U211^1(tt, X, Y) -> U212^1(isBinKind(X), X, Y) U222^1(tt, X, Y) -> U223^1(isBin(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> U231^1(isBin(X), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (20) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: MULT(x, y) == MULT(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) ---------------------------------------- (21) Obligation: The TRS P consists of the following rules: U214^1(tt, X, Y) -> PLUS(X, Y) PLUS(plus(0(X), 1(Y)), ext) -> U221^1(isBin(X), X, Y) U221^1(tt, X, Y) -> U222^1(isBinKind(X), X, Y) PLUS(1(X), 1(Y)) -> U231^1(isBin(X), X, Y) U212^1(tt, X, Y) -> U213^1(isBin(Y), X, Y) PLUS(0(X), 1(Y)) -> U221^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> U211^1(isBin(X), X, Y) U223^1(tt, X, Y) -> U224^1(isBinKind(Y), X, Y) U231^1(tt, X, Y) -> U232^1(isBinKind(X), X, Y) U232^1(tt, X, Y) -> U233^1(isBin(Y), X, Y) U224^1(tt, X, Y) -> PLUS(X, Y) PLUS(plus(0(X), 1(Y)), ext) -> PLUS(U221(isBin(X), X, Y), ext) PLUS(0(X), 0(Y)) -> U211^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> PLUS(U211(isBin(X), X, Y), ext) PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) U233^1(tt, X, Y) -> U234^1(isBinKind(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) U234^1(tt, X, Y) -> PLUS(X, Y) U234^1(tt, X, Y) -> PLUS(plus(X, Y), 1(z)) U213^1(tt, X, Y) -> U214^1(isBinKind(Y), X, Y) U211^1(tt, X, Y) -> U212^1(isBinKind(X), X, Y) U222^1(tt, X, Y) -> U223^1(isBin(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> U231^1(isBin(X), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (22) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. The following set of Dependency Pairs of this DP problem can be strictly oriented. PLUS(plus(0(X), 1(Y)), ext) -> U221^1(isBin(X), X, Y) U221^1(tt, X, Y) -> U222^1(isBinKind(X), X, Y) PLUS(1(X), 1(Y)) -> U231^1(isBin(X), X, Y) PLUS(0(X), 1(Y)) -> U221^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> U211^1(isBin(X), X, Y) U231^1(tt, X, Y) -> U232^1(isBinKind(X), X, Y) PLUS(plus(0(X), 1(Y)), ext) -> PLUS(U221(isBin(X), X, Y), ext) PLUS(0(X), 0(Y)) -> U211^1(isBin(X), X, Y) PLUS(plus(0(X), 0(Y)), ext) -> PLUS(U211(isBin(X), X, Y), ext) U234^1(tt, X, Y) -> PLUS(X, Y) U211^1(tt, X, Y) -> U212^1(isBinKind(X), X, Y) U222^1(tt, X, Y) -> U223^1(isBin(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> U231^1(isBin(X), X, Y) The remaining Dependency Pairs were at least non-strictly oriented. U214^1(tt, X, Y) -> PLUS(X, Y) U212^1(tt, X, Y) -> U213^1(isBin(Y), X, Y) U223^1(tt, X, Y) -> U224^1(isBinKind(Y), X, Y) U232^1(tt, X, Y) -> U233^1(isBin(Y), X, Y) U224^1(tt, X, Y) -> PLUS(X, Y) PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) U233^1(tt, X, Y) -> U234^1(isBinKind(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) U234^1(tt, X, Y) -> PLUS(plus(X, Y), 1(z)) U213^1(tt, X, Y) -> U214^1(isBinKind(Y), X, Y) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. U212(tt, X, Y) -> U213(isBin(Y), X, Y) U201(tt, X) -> U202(isBinKind(X), X) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U202(tt, X) -> X U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) 0(z) -> z U214(tt, X, Y) -> 0(plus(X, Y)) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) We had to orient the following equations of E# equivalently. PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) With the implicit AFS we had to orient the following usable equations of E equivalently. plus(plus(x, y), z') == plus(x, plus(y, z')) plus(x, y) == plus(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 1 + x_1 POL(1(x_1)) = 1 + x_1 POL(PLUS(x_1, x_2)) = 2*x_1 + 2*x_2 POL(U101(x_1, x_2)) = 3 + 3*x_2 POL(U102(x_1, x_2)) = 3 + 3*x_2 POL(U103(x_1)) = 3 POL(U11(x_1, x_2)) = 3 + 3*x_2 POL(U111(x_1)) = 3 POL(U12(x_1, x_2)) = 3 + 3*x_2 POL(U121(x_1)) = 3 POL(U13(x_1)) = 3 POL(U131(x_1, x_2)) = 3 + 3*x_2 POL(U132(x_1)) = 3 POL(U141(x_1, x_2)) = 3 + 3*x_2 POL(U142(x_1)) = 3 POL(U151(x_1)) = 3 POL(U161(x_1)) = 3 POL(U201(x_1, x_2)) = x_2 POL(U202(x_1, x_2)) = x_2 POL(U21(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U211(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U211^1(x_1, x_2, x_3)) = 3 + 2*x_2 + 2*x_3 POL(U212(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U212^1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(U213(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U213^1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(U214(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U214^1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(U22(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U221(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U221^1(x_1, x_2, x_3)) = 3 + 2*x_2 + 2*x_3 POL(U222(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U222^1(x_1, x_2, x_3)) = 1 + 2*x_2 + 2*x_3 POL(U223(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U223^1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(U224(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U224^1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(U23(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U231(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(U231^1(x_1, x_2, x_3)) = 3 + 2*x_2 + 2*x_3 POL(U232(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(U232^1(x_1, x_2, x_3)) = 2 + 2*x_2 + 2*x_3 POL(U233(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(U233^1(x_1, x_2, x_3)) = 2 + 2*x_2 + 2*x_3 POL(U234(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(U234^1(x_1, x_2, x_3)) = 2 + 2*x_2 + 2*x_3 POL(U24(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U25(x_1, x_2)) = 3 + 3*x_2 POL(U26(x_1)) = 3 POL(U31(x_1)) = 3 POL(U41(x_1, x_2)) = 3 + 3*x_2 POL(U42(x_1)) = 3 POL(U51(x_1, x_2)) = 3 + 3*x_2 POL(U52(x_1, x_2)) = 3 + 3*x_2 POL(U53(x_1)) = 3 POL(U61(x_1, x_2)) = 3 + 3*x_2 POL(U62(x_1, x_2)) = 3 + 3*x_2 POL(U63(x_1)) = 3 POL(U71(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U74(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U75(x_1, x_2)) = 3 + 3*x_2 POL(U76(x_1)) = 3 POL(U81(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U84(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U85(x_1, x_2)) = 3 + 3*x_2 POL(U86(x_1)) = 3 POL(U91(x_1, x_2)) = 3 + 3*x_2 POL(U92(x_1, x_2)) = 3 + 3*x_2 POL(U93(x_1)) = 3 POL(empty) = 0 POL(isBag(x_1)) = 0 POL(isBagKind(x_1)) = 0 POL(isBin(x_1)) = 0 POL(isBinKind(x_1)) = 0 POL(mult(x_1, x_2)) = 0 POL(plus(x_1, x_2)) = x_1 + x_2 POL(prod(x_1)) = 0 POL(singl(x_1)) = 0 POL(sum(x_1)) = 0 POL(tt) = 0 POL(union(x_1, x_2)) = 0 POL(z) = 0 ---------------------------------------- (23) Obligation: The TRS P consists of the following rules: U214^1(tt, X, Y) -> PLUS(X, Y) U212^1(tt, X, Y) -> U213^1(isBin(Y), X, Y) U223^1(tt, X, Y) -> U224^1(isBinKind(Y), X, Y) U232^1(tt, X, Y) -> U233^1(isBin(Y), X, Y) U224^1(tt, X, Y) -> PLUS(X, Y) PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) U233^1(tt, X, Y) -> U234^1(isBinKind(Y), X, Y) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) U234^1(tt, X, Y) -> PLUS(plus(X, Y), 1(z)) U213^1(tt, X, Y) -> U214^1(isBinKind(Y), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (24) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 1 SCC with 8 less nodes. ---------------------------------------- (25) Obligation: The TRS P consists of the following rules: PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (26) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. The following set of Dependency Pairs of this DP problem can be strictly oriented. PLUS(plus(1(X), 1(Y)), ext) -> PLUS(U231(isBin(X), X, Y), ext) The remaining Dependency Pairs were at least non-strictly oriented. PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) 0(z) -> z U212(tt, X, Y) -> U213(isBin(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U201(tt, X) -> U202(isBinKind(X), X) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U202(tt, X) -> X plus(z, X) -> U201(isBin(X), X) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) We had to orient the following equations of E# equivalently. PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) With the implicit AFS we had to orient the following usable equations of E equivalently. plus(plus(x, y), z') == plus(x, plus(y, z')) plus(x, y) == plus(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 0 POL(1(x_1)) = 1 POL(PLUS(x_1, x_2)) = 2*x_1 + 2*x_2 POL(U101(x_1, x_2)) = 3 + 3*x_2 POL(U102(x_1, x_2)) = 3 + 3*x_2 POL(U103(x_1)) = 3 POL(U11(x_1, x_2)) = 3 + 3*x_2 POL(U111(x_1)) = 3 POL(U12(x_1, x_2)) = 3 + 3*x_2 POL(U121(x_1)) = 3 POL(U13(x_1)) = 3 POL(U131(x_1, x_2)) = 3 + 3*x_2 POL(U132(x_1)) = 3 POL(U141(x_1, x_2)) = 3 + 3*x_2 POL(U142(x_1)) = 3 POL(U151(x_1)) = 3 POL(U161(x_1)) = 3 POL(U201(x_1, x_2)) = x_2 POL(U202(x_1, x_2)) = x_2 POL(U21(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U211(x_1, x_2, x_3)) = 0 POL(U212(x_1, x_2, x_3)) = 0 POL(U213(x_1, x_2, x_3)) = 0 POL(U214(x_1, x_2, x_3)) = 0 POL(U22(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U221(x_1, x_2, x_3)) = 1 POL(U222(x_1, x_2, x_3)) = 1 POL(U223(x_1, x_2, x_3)) = 1 POL(U224(x_1, x_2, x_3)) = 1 POL(U23(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U231(x_1, x_2, x_3)) = 0 POL(U232(x_1, x_2, x_3)) = 0 POL(U233(x_1, x_2, x_3)) = 0 POL(U234(x_1, x_2, x_3)) = 0 POL(U24(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U25(x_1, x_2)) = 3 + 3*x_2 POL(U26(x_1)) = 3 POL(U31(x_1)) = 3 POL(U41(x_1, x_2)) = 3 + 3*x_2 POL(U42(x_1)) = 3 POL(U51(x_1, x_2)) = 3 + 3*x_2 POL(U52(x_1, x_2)) = 3 + 3*x_2 POL(U53(x_1)) = 3 POL(U61(x_1, x_2)) = 3 + 3*x_2 POL(U62(x_1, x_2)) = 3 + 3*x_2 POL(U63(x_1)) = 3 POL(U71(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U74(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U75(x_1, x_2)) = 3 + 3*x_2 POL(U76(x_1)) = 3 POL(U81(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U84(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U85(x_1, x_2)) = 3 + 3*x_2 POL(U86(x_1)) = 3 POL(U91(x_1, x_2)) = 3 + 3*x_2 POL(U92(x_1, x_2)) = 3 + 3*x_2 POL(U93(x_1)) = 3 POL(empty) = 0 POL(isBag(x_1)) = 0 POL(isBagKind(x_1)) = 0 POL(isBin(x_1)) = 0 POL(isBinKind(x_1)) = 0 POL(mult(x_1, x_2)) = 0 POL(plus(x_1, x_2)) = x_1 + x_2 POL(prod(x_1)) = 0 POL(singl(x_1)) = 0 POL(sum(x_1)) = 0 POL(tt) = 0 POL(union(x_1, x_2)) = 0 POL(z) = 0 ---------------------------------------- (27) Obligation: The TRS P consists of the following rules: PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (28) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. All Dependency Pairs of this DP problem can be strictly oriented. PLUS(plus(z, X), ext) -> PLUS(U201(isBin(X), X), ext) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. U211(tt, X, Y) -> U212(isBinKind(X), X, Y) 0(z) -> z U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U201(tt, X) -> U202(isBinKind(X), X) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U214(tt, X, Y) -> 0(plus(X, Y)) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U202(tt, X) -> X U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) We had to orient the following equations of E# equivalently. PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) With the implicit AFS we had to orient the following usable equations of E equivalently. plus(plus(x, y), z') == plus(x, plus(y, z')) plus(x, y) == plus(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 0 POL(1(x_1)) = 2 POL(PLUS(x_1, x_2)) = x_1 + x_2 POL(U101(x_1, x_2)) = 3 + 3*x_2 POL(U102(x_1, x_2)) = 3 + 3*x_2 POL(U103(x_1)) = 3 POL(U11(x_1, x_2)) = 3 + 3*x_2 POL(U111(x_1)) = 3 POL(U12(x_1, x_2)) = 3 + 3*x_2 POL(U121(x_1)) = 3 POL(U13(x_1)) = 3 POL(U131(x_1, x_2)) = 3 + 3*x_2 POL(U132(x_1)) = 3 POL(U141(x_1, x_2)) = 3 + 3*x_2 POL(U142(x_1)) = 3 POL(U151(x_1)) = 3 POL(U161(x_1)) = 3 POL(U201(x_1, x_2)) = x_2 POL(U202(x_1, x_2)) = x_2 POL(U21(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U211(x_1, x_2, x_3)) = 0 POL(U212(x_1, x_2, x_3)) = 0 POL(U213(x_1, x_2, x_3)) = 0 POL(U214(x_1, x_2, x_3)) = 0 POL(U22(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U221(x_1, x_2, x_3)) = 3 POL(U222(x_1, x_2, x_3)) = 3 POL(U223(x_1, x_2, x_3)) = 3 POL(U224(x_1, x_2, x_3)) = 3 POL(U23(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U231(x_1, x_2, x_3)) = 2 POL(U232(x_1, x_2, x_3)) = 2 POL(U233(x_1, x_2, x_3)) = 1 POL(U234(x_1, x_2, x_3)) = 0 POL(U24(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U25(x_1, x_2)) = 3 + 3*x_2 POL(U26(x_1)) = 3 POL(U31(x_1)) = 3 POL(U41(x_1, x_2)) = 3 + 3*x_2 POL(U42(x_1)) = 3 POL(U51(x_1, x_2)) = 3 + 3*x_2 POL(U52(x_1, x_2)) = 3 + 3*x_2 POL(U53(x_1)) = 3 POL(U61(x_1, x_2)) = 3 + 3*x_2 POL(U62(x_1, x_2)) = 3 + 3*x_2 POL(U63(x_1)) = 3 POL(U71(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U74(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U75(x_1, x_2)) = 3 + 3*x_2 POL(U76(x_1)) = 3 POL(U81(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U84(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U85(x_1, x_2)) = 3 + 3*x_2 POL(U86(x_1)) = 3 POL(U91(x_1, x_2)) = 3 + 3*x_2 POL(U92(x_1, x_2)) = 3 + 3*x_2 POL(U93(x_1)) = 3 POL(empty) = 0 POL(isBag(x_1)) = 0 POL(isBagKind(x_1)) = 0 POL(isBin(x_1)) = 0 POL(isBinKind(x_1)) = 0 POL(mult(x_1, x_2)) = 0 POL(plus(x_1, x_2)) = 1 + x_1 + x_2 POL(prod(x_1)) = 0 POL(singl(x_1)) = 0 POL(sum(x_1)) = 0 POL(tt) = 0 POL(union(x_1, x_2)) = 0 POL(z) = 0 ---------------------------------------- (29) Obligation: P is empty. The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) PLUS(x, y) == PLUS(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (30) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,E#,R,E) chain. ---------------------------------------- (31) YES ---------------------------------------- (32) Obligation: The TRS P consists of the following rules: U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) U193^1(tt, X, Y) -> U194^1(isBinKind(Y), X, Y) MULT(mult(1(X), Y), ext) -> U191^1(isBin(X), X, Y) U194^1(tt, X, Y) -> MULT(X, Y) MULT(1(X), Y) -> U191^1(isBin(X), X, Y) U191^1(tt, X, Y) -> U192^1(isBinKind(X), X, Y) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) MULT(mult(1(X), Y), ext) -> MULT(U191(isBin(X), X, Y), ext) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) U192^1(tt, X, Y) -> U193^1(isBin(Y), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (33) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) ---------------------------------------- (34) Obligation: The TRS P consists of the following rules: U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) U193^1(tt, X, Y) -> U194^1(isBinKind(Y), X, Y) MULT(mult(1(X), Y), ext) -> U191^1(isBin(X), X, Y) U194^1(tt, X, Y) -> MULT(X, Y) MULT(1(X), Y) -> U191^1(isBin(X), X, Y) U191^1(tt, X, Y) -> U192^1(isBinKind(X), X, Y) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) MULT(mult(1(X), Y), ext) -> MULT(U191(isBin(X), X, Y), ext) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) U192^1(tt, X, Y) -> U193^1(isBin(Y), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (35) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. The following set of Dependency Pairs of this DP problem can be strictly oriented. MULT(mult(1(X), Y), ext) -> MULT(U191(isBin(X), X, Y), ext) U192^1(tt, X, Y) -> U193^1(isBin(Y), X, Y) The remaining Dependency Pairs were at least non-strictly oriented. U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) U193^1(tt, X, Y) -> U194^1(isBinKind(Y), X, Y) MULT(mult(1(X), Y), ext) -> U191^1(isBin(X), X, Y) U194^1(tt, X, Y) -> MULT(X, Y) MULT(1(X), Y) -> U191^1(isBin(X), X, Y) U191^1(tt, X, Y) -> U192^1(isBinKind(X), X, Y) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. U172(tt) -> z U42(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U111(tt) -> tt U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U142(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U31(tt) -> tt U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U201(tt, X) -> U202(isBinKind(X), X) U53(tt) -> tt U26(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U76(tt) -> tt U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(z, X) -> U171(isBin(X), X) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) mult(1(X), Y) -> U191(isBin(X), X, Y) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U74(tt, V1, V2) -> U75(isBin(V1), V2) isBinKind(sum(V1)) -> U161(isBagKind(V1)) isBinKind(z) -> tt isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) U92(tt, V1) -> U93(isBag(V1)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U41(tt, V2) -> U42(isBagKind(V2)) U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U132(tt) -> tt U151(tt) -> tt U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U61(tt, V1) -> U62(isBinKind(V1), V1) U171(tt, X) -> U172(isBinKind(X)) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U24(tt, V1, V2) -> U25(isBag(V1), V2) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(empty) -> tt isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) U25(tt, V2) -> U26(isBag(V2)) U52(tt, V1) -> U53(isBin(V1)) U202(tt, X) -> X U75(tt, V2) -> U76(isBin(V2)) U222(tt, X, Y) -> U223(isBin(Y), X, Y) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(z) -> tt isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) U141(tt, V2) -> U142(isBinKind(V2)) U13(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U86(tt) -> tt U161(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U93(tt) -> tt U214(tt, X, Y) -> 0(plus(X, Y)) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U11(tt, V1) -> U12(isBinKind(V1), V1) U85(tt, V2) -> U86(isBin(V2)) U182(tt, X, Y) -> U183(isBin(Y), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) U103(tt) -> tt U84(tt, V1, V2) -> U85(isBin(V1), V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U62(tt, V1) -> U63(isBin(V1)) U121(tt) -> tt U63(tt) -> tt U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U102(tt, V1) -> U103(isBag(V1)) We had to orient the following equations of E# equivalently. MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) With the implicit AFS we had to orient the following usable equations of E equivalently. mult(x, y) == mult(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) plus(x, y) == plus(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = x_1 POL(1(x_1)) = 1 + x_1 POL(MULT(x_1, x_2)) = 1 + x_1 + x_1*x_2 + x_2 POL(U101(x_1, x_2)) = 1 POL(U102(x_1, x_2)) = 1 POL(U103(x_1)) = 1 POL(U11(x_1, x_2)) = 1 POL(U111(x_1)) = 1 POL(U12(x_1, x_2)) = 1 POL(U121(x_1)) = x_1^2 POL(U13(x_1)) = 1 POL(U131(x_1, x_2)) = x_1 POL(U132(x_1)) = x_1^2 POL(U141(x_1, x_2)) = x_1 POL(U142(x_1)) = x_1^2 POL(U151(x_1)) = 1 POL(U161(x_1)) = 1 POL(U171(x_1, x_2)) = 0 POL(U172(x_1)) = 0 POL(U181(x_1, x_2, x_3)) = x_2 + x_2*x_3 + x_3 POL(U181^1(x_1, x_2, x_3)) = 1 + x_2 + x_2*x_3 + x_3 POL(U182(x_1, x_2, x_3)) = x_2 + x_2*x_3 + x_3 POL(U182^1(x_1, x_2, x_3)) = 1 + x_1*x_2 + x_2*x_3 + x_3 POL(U183(x_1, x_2, x_3)) = x_2 + x_2*x_3 + x_3 POL(U183^1(x_1, x_2, x_3)) = 1 + x_2 + x_2*x_3 + x_3 POL(U184(x_1, x_2, x_3)) = x_2 + x_2*x_3 + x_3 POL(U184^1(x_1, x_2, x_3)) = 1 + x_1*x_2 + x_1*x_3 + x_2*x_3 POL(U191(x_1, x_2, x_3)) = x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U191^1(x_1, x_2, x_3)) = 1 + x_1 + x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U192(x_1, x_2, x_3)) = x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U192^1(x_1, x_2, x_3)) = 1 + x_1 + x_1*x_2*x_3 + x_2 + x_3 POL(U193(x_1, x_2, x_3)) = x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U193^1(x_1, x_2, x_3)) = 1 + x_2 + x_2*x_3 + x_3 POL(U194(x_1, x_2, x_3)) = x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U194^1(x_1, x_2, x_3)) = 1 + x_1*x_3 + x_2 + x_2*x_3 POL(U201(x_1, x_2)) = x_2 POL(U202(x_1, x_2)) = x_2 POL(U21(x_1, x_2, x_3)) = x_2*x_3 POL(U211(x_1, x_2, x_3)) = x_1*x_2 + x_3 POL(U212(x_1, x_2, x_3)) = x_1*x_2 + x_3 POL(U213(x_1, x_2, x_3)) = x_2 + x_3 POL(U214(x_1, x_2, x_3)) = x_2 + x_3 POL(U22(x_1, x_2, x_3)) = x_2*x_3 POL(U221(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U222(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U223(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U224(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U23(x_1, x_2, x_3)) = x_2*x_3 POL(U231(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U232(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U233(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U234(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U24(x_1, x_2, x_3)) = x_2*x_3 POL(U25(x_1, x_2)) = x_1*x_2 POL(U26(x_1)) = x_1 POL(U31(x_1)) = 1 + x_1 POL(U41(x_1, x_2)) = x_1 POL(U42(x_1)) = 1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1, x_2)) = 1 POL(U53(x_1)) = x_1^2 POL(U61(x_1, x_2)) = 1 POL(U62(x_1, x_2)) = 1 POL(U63(x_1)) = 1 POL(U71(x_1, x_2, x_3)) = 1 POL(U72(x_1, x_2, x_3)) = 1 POL(U73(x_1, x_2, x_3)) = 1 POL(U74(x_1, x_2, x_3)) = 1 POL(U75(x_1, x_2)) = x_1 POL(U76(x_1)) = x_1 POL(U81(x_1, x_2, x_3)) = 1 POL(U82(x_1, x_2, x_3)) = 1 POL(U83(x_1, x_2, x_3)) = 1 POL(U84(x_1, x_2, x_3)) = x_1 POL(U85(x_1, x_2)) = x_1 POL(U86(x_1)) = 1 POL(U91(x_1, x_2)) = 1 POL(U92(x_1, x_2)) = 1 POL(U93(x_1)) = 1 POL(empty) = 1 POL(isBag(x_1)) = x_1 POL(isBagKind(x_1)) = 1 + x_1^2 POL(isBin(x_1)) = 1 POL(isBinKind(x_1)) = 1 POL(mult(x_1, x_2)) = x_1 + x_1*x_2 + x_2 POL(plus(x_1, x_2)) = x_1 + x_2 POL(prod(x_1)) = 0 POL(singl(x_1)) = 1 + x_1 POL(sum(x_1)) = 0 POL(tt) = 1 POL(union(x_1, x_2)) = x_1 + x_1*x_2 POL(z) = 0 ---------------------------------------- (36) Obligation: The TRS P consists of the following rules: U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) U193^1(tt, X, Y) -> U194^1(isBinKind(Y), X, Y) MULT(mult(1(X), Y), ext) -> U191^1(isBin(X), X, Y) U194^1(tt, X, Y) -> MULT(X, Y) MULT(1(X), Y) -> U191^1(isBin(X), X, Y) U191^1(tt, X, Y) -> U192^1(isBinKind(X), X, Y) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (37) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 1 SCC with 5 less nodes. ---------------------------------------- (38) Obligation: The TRS P consists of the following rules: U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (39) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. The following set of Dependency Pairs of this DP problem can be strictly oriented. MULT(mult(0(X), Y), ext) -> U181^1(isBin(X), X, Y) MULT(0(X), Y) -> U181^1(isBin(X), X, Y) The remaining Dependency Pairs were at least non-strictly oriented. U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. U151(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(z) -> tt isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) U201(tt, X) -> U202(isBinKind(X), X) U52(tt, V1) -> U53(isBin(V1)) U132(tt) -> tt U13(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U25(tt, V2) -> U26(isBag(V2)) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U172(tt) -> z U12(tt, V1) -> U13(isBin(V1)) U85(tt, V2) -> U86(isBin(V2)) U92(tt, V1) -> U93(isBag(V1)) U51(tt, V1) -> U52(isBinKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U84(tt, V1, V2) -> U85(isBin(V1), V2) U111(tt) -> tt U222(tt, X, Y) -> U223(isBin(Y), X, Y) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U91(tt, V1) -> U92(isBagKind(V1), V1) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U24(tt, V1, V2) -> U25(isBag(V1), V2) U11(tt, V1) -> U12(isBinKind(V1), V1) U53(tt) -> tt U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U93(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U142(tt) -> tt U232(tt, X, Y) -> U233(isBin(Y), X, Y) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U101(tt, V1) -> U102(isBagKind(V1), V1) 0(z) -> z U182(tt, X, Y) -> U183(isBin(Y), X, Y) U74(tt, V1, V2) -> U75(isBin(V1), V2) U224(tt, X, Y) -> 1(plus(X, Y)) U202(tt, X) -> X U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U75(tt, V2) -> U76(isBin(V2)) U31(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U26(tt) -> tt U192(tt, X, Y) -> U193(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U161(tt) -> tt U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U76(tt) -> tt U86(tt) -> tt U62(tt, V1) -> U63(isBin(V1)) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U41(tt, V2) -> U42(isBagKind(V2)) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U131(tt, V2) -> U132(isBinKind(V2)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U214(tt, X, Y) -> 0(plus(X, Y)) isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(empty) -> tt isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(z, X) -> U171(isBin(X), X) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) mult(1(X), Y) -> U191(isBin(X), X, Y) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBinKind(sum(V1)) -> U161(isBagKind(V1)) isBinKind(z) -> tt isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) U121(tt) -> tt U42(tt) -> tt U184(tt, X, Y) -> 0(mult(X, Y)) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) We had to orient the following equations of E# equivalently. MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) With the implicit AFS we had to orient the following usable equations of E equivalently. mult(x, y) == mult(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) plus(x, y) == plus(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 1 + x_1 POL(1(x_1)) = 1 + x_1 POL(MULT(x_1, x_2)) = x_1 + x_1*x_2 + x_2 POL(U101(x_1, x_2)) = 1 POL(U102(x_1, x_2)) = 1 POL(U103(x_1)) = 1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1)) = 1 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1)) = 1 POL(U13(x_1)) = x_1^2 POL(U131(x_1, x_2)) = 1 POL(U132(x_1)) = x_1^2 POL(U141(x_1, x_2)) = 1 POL(U142(x_1)) = x_1 POL(U151(x_1)) = 1 POL(U161(x_1)) = 1 POL(U171(x_1, x_2)) = 0 POL(U172(x_1)) = 0 POL(U181(x_1, x_2, x_3)) = x_1 + x_1*x_2*x_3 + x_2 + x_3 POL(U181^1(x_1, x_2, x_3)) = x_1*x_2 + x_1*x_2*x_3 + x_3 POL(U182(x_1, x_2, x_3)) = 1 + x_1*x_2*x_3 + x_2 + x_3 POL(U182^1(x_1, x_2, x_3)) = x_1*x_2 + x_2*x_3 + x_3 POL(U183(x_1, x_2, x_3)) = 1 + x_2 + x_2*x_3 + x_3 POL(U183^1(x_1, x_2, x_3)) = x_2 + x_2*x_3 + x_3 POL(U184(x_1, x_2, x_3)) = 1 + x_1*x_2 + x_1*x_2*x_3 + x_3 POL(U184^1(x_1, x_2, x_3)) = x_1*x_2 + x_2*x_3 + x_3 POL(U191(x_1, x_2, x_3)) = 1 + x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U192(x_1, x_2, x_3)) = 1 + x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U193(x_1, x_2, x_3)) = 1 + x_1*x_2 + x_1*x_3 + x_2*x_3 + x_3 POL(U194(x_1, x_2, x_3)) = 1 + x_1*x_3 + x_2 + x_2*x_3 + x_3 POL(U201(x_1, x_2)) = x_1*x_2 POL(U202(x_1, x_2)) = x_2 POL(U21(x_1, x_2, x_3)) = 1 POL(U211(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U212(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U213(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U214(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U22(x_1, x_2, x_3)) = 1 POL(U221(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U222(x_1, x_2, x_3)) = 1 + x_1*x_3 + x_2 POL(U223(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U224(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U23(x_1, x_2, x_3)) = 1 POL(U231(x_1, x_2, x_3)) = 1 + x_1 + x_1*x_2 + x_1*x_3 POL(U232(x_1, x_2, x_3)) = 1 + x_1 + x_1*x_2 + x_3 POL(U233(x_1, x_2, x_3)) = 1 + x_1 + x_1*x_2 + x_1*x_3 POL(U234(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(U24(x_1, x_2, x_3)) = 1 POL(U25(x_1, x_2)) = 1 POL(U26(x_1)) = 1 POL(U31(x_1)) = x_1^2 POL(U41(x_1, x_2)) = 1 + x_1 POL(U42(x_1)) = 1 POL(U51(x_1, x_2)) = 1 POL(U52(x_1, x_2)) = x_1 POL(U53(x_1)) = x_1^2 POL(U61(x_1, x_2)) = 1 POL(U62(x_1, x_2)) = 1 POL(U63(x_1)) = 1 POL(U71(x_1, x_2, x_3)) = 1 POL(U72(x_1, x_2, x_3)) = 1 POL(U73(x_1, x_2, x_3)) = 1 POL(U74(x_1, x_2, x_3)) = 1 POL(U75(x_1, x_2)) = 1 POL(U76(x_1)) = 1 POL(U81(x_1, x_2, x_3)) = 1 POL(U82(x_1, x_2, x_3)) = 1 POL(U83(x_1, x_2, x_3)) = 1 POL(U84(x_1, x_2, x_3)) = 1 POL(U85(x_1, x_2)) = 1 POL(U86(x_1)) = x_1^2 POL(U91(x_1, x_2)) = 1 POL(U92(x_1, x_2)) = 1 POL(U93(x_1)) = 1 POL(empty) = 1 POL(isBag(x_1)) = x_1^2 POL(isBagKind(x_1)) = x_1^2 POL(isBin(x_1)) = 1 POL(isBinKind(x_1)) = 1 POL(mult(x_1, x_2)) = x_1 + x_1*x_2 + x_2 POL(plus(x_1, x_2)) = x_1 + x_2 POL(prod(x_1)) = 0 POL(singl(x_1)) = 1 POL(sum(x_1)) = 0 POL(tt) = 1 POL(union(x_1, x_2)) = 1 + x_1 POL(z) = 0 ---------------------------------------- (40) Obligation: The TRS P consists of the following rules: U184^1(tt, X, Y) -> MULT(X, Y) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) U182^1(tt, X, Y) -> U183^1(isBin(Y), X, Y) U183^1(tt, X, Y) -> U184^1(isBinKind(Y), X, Y) U181^1(tt, X, Y) -> U182^1(isBinKind(X), X, Y) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (41) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 1 SCC with 4 less nodes. ---------------------------------------- (42) Obligation: The TRS P consists of the following rules: MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (43) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. All Dependency Pairs of this DP problem can be strictly oriented. MULT(mult(z, X), ext) -> MULT(U171(isBin(X), X), ext) MULT(mult(0(X), Y), ext) -> MULT(U181(isBin(X), X, Y), ext) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. U224(tt, X, Y) -> 1(plus(X, Y)) U172(tt) -> z U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U171(tt, X) -> U172(isBinKind(X)) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) U201(tt, X) -> U202(isBinKind(X), X) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(z, X) -> U171(isBin(X), X) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) mult(1(X), Y) -> U191(isBin(X), X, Y) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U202(tt, X) -> X U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) 0(z) -> z U192(tt, X, Y) -> U193(isBin(Y), X, Y) We had to orient the following equations of E# equivalently. MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) With the implicit AFS we had to orient the following usable equations of E equivalently. plus(plus(x, y), z') == plus(x, plus(y, z')) plus(x, y) == plus(y, x) mult(x, y) == mult(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 0 POL(1(x_1)) = 0 POL(MULT(x_1, x_2)) = x_1 + x_2 POL(U101(x_1, x_2)) = 3 + 3*x_2 POL(U102(x_1, x_2)) = 3 + 3*x_2 POL(U103(x_1)) = 3 POL(U11(x_1, x_2)) = 3 + 3*x_2 POL(U111(x_1)) = 3 POL(U12(x_1, x_2)) = 3 + 3*x_2 POL(U121(x_1)) = 3 POL(U13(x_1)) = 3 POL(U131(x_1, x_2)) = 3 + 3*x_2 POL(U132(x_1)) = 3 POL(U141(x_1, x_2)) = 3 + 3*x_2 POL(U142(x_1)) = 3 POL(U151(x_1)) = 3 POL(U161(x_1)) = 3 POL(U171(x_1, x_2)) = 2 POL(U172(x_1)) = 0 POL(U181(x_1, x_2, x_3)) = 0 POL(U182(x_1, x_2, x_3)) = 0 POL(U183(x_1, x_2, x_3)) = 0 POL(U184(x_1, x_2, x_3)) = 0 POL(U191(x_1, x_2, x_3)) = x_3 POL(U192(x_1, x_2, x_3)) = x_3 POL(U193(x_1, x_2, x_3)) = x_3 POL(U194(x_1, x_2, x_3)) = x_3 POL(U201(x_1, x_2)) = x_2 POL(U202(x_1, x_2)) = x_2 POL(U21(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U211(x_1, x_2, x_3)) = 0 POL(U212(x_1, x_2, x_3)) = 0 POL(U213(x_1, x_2, x_3)) = 0 POL(U214(x_1, x_2, x_3)) = 0 POL(U22(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U221(x_1, x_2, x_3)) = 0 POL(U222(x_1, x_2, x_3)) = 0 POL(U223(x_1, x_2, x_3)) = 0 POL(U224(x_1, x_2, x_3)) = 0 POL(U23(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U231(x_1, x_2, x_3)) = 0 POL(U232(x_1, x_2, x_3)) = 0 POL(U233(x_1, x_2, x_3)) = 0 POL(U234(x_1, x_2, x_3)) = 0 POL(U24(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U25(x_1, x_2)) = 3 + 3*x_2 POL(U26(x_1)) = 3 POL(U31(x_1)) = 3 POL(U41(x_1, x_2)) = 3 + 3*x_2 POL(U42(x_1)) = 3 POL(U51(x_1, x_2)) = 3 + 3*x_2 POL(U52(x_1, x_2)) = 3 + 3*x_2 POL(U53(x_1)) = 3 POL(U61(x_1, x_2)) = 3 + 3*x_2 POL(U62(x_1, x_2)) = 3 + 3*x_2 POL(U63(x_1)) = 3 POL(U71(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U74(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U75(x_1, x_2)) = 3 + 3*x_2 POL(U76(x_1)) = 3 POL(U81(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U84(x_1, x_2, x_3)) = 3 + 3*x_2 + 3*x_3 POL(U85(x_1, x_2)) = 3 + 3*x_2 POL(U86(x_1)) = 3 POL(U91(x_1, x_2)) = 3 + 3*x_2 POL(U92(x_1, x_2)) = 3 + 3*x_2 POL(U93(x_1)) = 3 POL(empty) = 0 POL(isBag(x_1)) = 0 POL(isBagKind(x_1)) = 0 POL(isBin(x_1)) = 0 POL(isBinKind(x_1)) = 0 POL(mult(x_1, x_2)) = 3 + x_1 + x_2 POL(plus(x_1, x_2)) = x_1 + x_2 POL(prod(x_1)) = 0 POL(singl(x_1)) = 0 POL(sum(x_1)) = 0 POL(tt) = 0 POL(union(x_1, x_2)) = 0 POL(z) = 0 ---------------------------------------- (44) Obligation: P is empty. The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (45) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,E#,R,E) chain. ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: The TRS P consists of the following rules: U271^1(tt, A, B) -> U272^1(isBagKind(A), A, B) U272^1(tt, A, B) -> U273^1(isBag(B), A, B) U274^1(tt, A, B) -> SUM(A) U274^1(tt, A, B) -> SUM(B) U273^1(tt, A, B) -> U274^1(isBagKind(B), A, B) SUM(union(A, B)) -> U271^1(isBag(A), A, B) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (48) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) ---------------------------------------- (49) Obligation: The TRS P consists of the following rules: U271^1(tt, A, B) -> U272^1(isBagKind(A), A, B) U272^1(tt, A, B) -> U273^1(isBag(B), A, B) U274^1(tt, A, B) -> SUM(A) U274^1(tt, A, B) -> SUM(B) U273^1(tt, A, B) -> U274^1(isBagKind(B), A, B) SUM(union(A, B)) -> U271^1(isBag(A), A, B) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (50) EUsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: SUM(union(A, B)) -> U271^1(isBag(A), A, B) The following rules are removed from R: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U52(tt, V1) -> U53(isBin(V1)) U91(tt, V1) -> U92(isBagKind(V1), V1) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The following equations are removed from E: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 2 + 3*x_1 POL(1(x_1)) = 3*x_1 POL(SUM(x_1)) = x_1 POL(U101(x_1, x_2)) = x_1 + 2*x_2 POL(U102(x_1, x_2)) = x_1 + x_2 POL(U103(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 + 2*x_2 POL(U111(x_1)) = x_1 POL(U12(x_1, x_2)) = x_1 + x_2 POL(U121(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2)) = 2*x_1 + 2*x_2 POL(U132(x_1)) = 2*x_1 POL(U141(x_1, x_2)) = x_1 + 2*x_2 POL(U142(x_1)) = x_1 POL(U151(x_1)) = x_1 POL(U161(x_1)) = 2 + x_1 POL(U21(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U22(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U23(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U24(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U25(x_1, x_2)) = x_1 + x_2 POL(U26(x_1)) = x_1 POL(U271^1(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U272^1(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U273^1(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U274^1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U31(x_1)) = x_1 POL(U41(x_1, x_2)) = x_1 + 2*x_2 POL(U42(x_1)) = 2*x_1 POL(U51(x_1, x_2)) = 1 + x_1 + 2*x_2 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 POL(U53(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 + 2*x_2 POL(U62(x_1, x_2)) = x_1 + x_2 POL(U63(x_1)) = x_1 POL(U71(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U74(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U75(x_1, x_2)) = x_1 + x_2 POL(U76(x_1)) = x_1 POL(U81(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U84(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U85(x_1, x_2)) = x_1 + x_2 POL(U86(x_1)) = x_1 POL(U91(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U92(x_1, x_2)) = x_1 + x_2 POL(U93(x_1)) = x_1 POL(empty) = 0 POL(isBag(x_1)) = x_1 POL(isBagKind(x_1)) = x_1 POL(isBin(x_1)) = x_1 POL(isBinKind(x_1)) = x_1 POL(mult(x_1, x_2)) = 1 + 3*x_1 + 3*x_2 POL(plus(x_1, x_2)) = 3*x_1 + 3*x_2 POL(prod(x_1)) = 3 + 3*x_1 POL(singl(x_1)) = 3*x_1 POL(sum(x_1)) = 2 + 3*x_1 POL(tt) = 0 POL(union(x_1, x_2)) = 3*x_1 + 3*x_2 POL(z) = 0 ---------------------------------------- (51) Obligation: The TRS P consists of the following rules: U271^1(tt, A, B) -> U272^1(isBagKind(A), A, B) U272^1(tt, A, B) -> U273^1(isBag(B), A, B) U274^1(tt, A, B) -> SUM(A) U274^1(tt, A, B) -> SUM(B) U273^1(tt, A, B) -> U274^1(isBagKind(B), A, B) The TRS R consists of the following rules: U103(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U25(tt, V2) -> U26(isBag(V2)) U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U61(tt, V1) -> U62(isBinKind(V1), V1) U84(tt, V1, V2) -> U85(isBin(V1), V2) U141(tt, V2) -> U142(isBinKind(V2)) U12(tt, V1) -> U13(isBin(V1)) U85(tt, V2) -> U86(isBin(V2)) U24(tt, V1, V2) -> U25(isBag(V1), V2) U93(tt) -> tt U111(tt) -> tt U121(tt) -> tt U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U75(tt, V2) -> U76(isBin(V2)) U131(tt, V2) -> U132(isBinKind(V2)) U51(tt, V1) -> U52(isBinKind(V1), V1) U13(tt) -> tt U102(tt, V1) -> U103(isBag(V1)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U26(tt) -> tt U42(tt) -> tt U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U92(tt, V1) -> U93(isBag(V1)) U101(tt, V1) -> U102(isBagKind(V1), V1) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U11(tt, V1) -> U12(isBinKind(V1), V1) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U142(tt) -> tt U76(tt) -> tt U132(tt) -> tt U86(tt) -> tt U53(tt) -> tt U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U151(tt) -> tt U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (52) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 5 less nodes. ---------------------------------------- (53) TRUE ---------------------------------------- (54) Obligation: The TRS P consists of the following rules: U254^1(tt, A, B) -> PROD(A) U252^1(tt, A, B) -> U253^1(isBag(B), A, B) U254^1(tt, A, B) -> PROD(B) U253^1(tt, A, B) -> U254^1(isBagKind(B), A, B) PROD(union(A, B)) -> U251^1(isBag(A), A, B) U251^1(tt, A, B) -> U252^1(isBagKind(A), A, B) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) The set E# consists of the following equations: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (55) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: MULT(x, y) == MULT(y, x) PLUS(x, y) == PLUS(y, x) UNION(x, y) == UNION(y, x) MULT(mult(x, y), z') == MULT(x, mult(y, z')) PLUS(plus(x, y), z') == PLUS(x, plus(y, z')) UNION(union(x, y), z') == UNION(x, union(y, z')) ---------------------------------------- (56) Obligation: The TRS P consists of the following rules: U254^1(tt, A, B) -> PROD(A) U252^1(tt, A, B) -> U253^1(isBag(B), A, B) U254^1(tt, A, B) -> PROD(B) U253^1(tt, A, B) -> U254^1(isBagKind(B), A, B) PROD(union(A, B)) -> U251^1(isBag(A), A, B) U251^1(tt, A, B) -> U252^1(isBagKind(A), A, B) The TRS R consists of the following rules: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U102(tt, V1) -> U103(isBag(V1)) U103(tt) -> tt U11(tt, V1) -> U12(isBinKind(V1), V1) U111(tt) -> tt U12(tt, V1) -> U13(isBin(V1)) U121(tt) -> tt U13(tt) -> tt U131(tt, V2) -> U132(isBinKind(V2)) U132(tt) -> tt U141(tt, V2) -> U142(isBinKind(V2)) U142(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U24(tt, V1, V2) -> U25(isBag(V1), V2) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U25(tt, V2) -> U26(isBag(V2)) U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U26(tt) -> tt U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U42(tt) -> tt U51(tt, V1) -> U52(isBinKind(V1), V1) U52(tt, V1) -> U53(isBin(V1)) U53(tt) -> tt U61(tt, V1) -> U62(isBinKind(V1), V1) U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U75(tt, V2) -> U76(isBin(V2)) U76(tt) -> tt U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U84(tt, V1, V2) -> U85(isBin(V1), V2) U85(tt, V2) -> U86(isBin(V2)) U86(tt) -> tt U91(tt, V1) -> U92(isBagKind(V1), V1) U92(tt, V1) -> U93(isBag(V1)) U93(tt) -> tt isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The set E consists of the following equations: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (57) EUsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: PROD(union(A, B)) -> U251^1(isBag(A), A, B) U251^1(tt, A, B) -> U252^1(isBagKind(A), A, B) The following rules are removed from R: union(X, empty) -> X union(empty, X) -> X 0(z) -> z U101(tt, V1) -> U102(isBagKind(V1), V1) U12(tt, V1) -> U13(isBin(V1)) U131(tt, V2) -> U132(isBinKind(V2)) U171(tt, X) -> U172(isBinKind(X)) U172(tt) -> z U181(tt, X, Y) -> U182(isBinKind(X), X, Y) U182(tt, X, Y) -> U183(isBin(Y), X, Y) U183(tt, X, Y) -> U184(isBinKind(Y), X, Y) U184(tt, X, Y) -> 0(mult(X, Y)) U191(tt, X, Y) -> U192(isBinKind(X), X, Y) U192(tt, X, Y) -> U193(isBin(Y), X, Y) U193(tt, X, Y) -> U194(isBinKind(Y), X, Y) U194(tt, X, Y) -> plus(0(mult(X, Y)), Y) U201(tt, X) -> U202(isBinKind(X), X) U202(tt, X) -> X U211(tt, X, Y) -> U212(isBinKind(X), X, Y) U212(tt, X, Y) -> U213(isBin(Y), X, Y) U213(tt, X, Y) -> U214(isBinKind(Y), X, Y) U214(tt, X, Y) -> 0(plus(X, Y)) U221(tt, X, Y) -> U222(isBinKind(X), X, Y) U222(tt, X, Y) -> U223(isBin(Y), X, Y) U223(tt, X, Y) -> U224(isBinKind(Y), X, Y) U224(tt, X, Y) -> 1(plus(X, Y)) U231(tt, X, Y) -> U232(isBinKind(X), X, Y) U232(tt, X, Y) -> U233(isBin(Y), X, Y) U233(tt, X, Y) -> U234(isBinKind(Y), X, Y) U234(tt, X, Y) -> 0(plus(plus(X, Y), 1(z))) U241(tt, X) -> U242(isBinKind(X), X) U242(tt, X) -> X U251(tt, A, B) -> U252(isBagKind(A), A, B) U252(tt, A, B) -> U253(isBag(B), A, B) U253(tt, A, B) -> U254(isBagKind(B), A, B) U254(tt, A, B) -> mult(prod(A), prod(B)) U261(tt, X) -> U262(isBinKind(X), X) U262(tt, X) -> X U271(tt, A, B) -> U272(isBagKind(A), A, B) U272(tt, A, B) -> U273(isBag(B), A, B) U273(tt, A, B) -> U274(isBagKind(B), A, B) U274(tt, A, B) -> plus(sum(A), sum(B)) U52(tt, V1) -> U53(isBin(V1)) U72(tt, V1, V2) -> U73(isBinKind(V2), V1, V2) U81(tt, V1, V2) -> U82(isBinKind(V1), V1, V2) U82(tt, V1, V2) -> U83(isBinKind(V2), V1, V2) U91(tt, V1) -> U92(isBagKind(V1), V1) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1), V1) isBag(union(V1, V2)) -> U21(isBagKind(V1), V1, V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBagKind(union(V1, V2)) -> U41(isBagKind(V1), V2) isBin(z) -> tt isBin(0(V1)) -> U51(isBinKind(V1), V1) isBin(1(V1)) -> U61(isBinKind(V1), V1) isBin(mult(V1, V2)) -> U71(isBinKind(V1), V1, V2) isBin(plus(V1, V2)) -> U81(isBinKind(V1), V1, V2) isBin(prod(V1)) -> U91(isBagKind(V1), V1) isBin(sum(V1)) -> U101(isBagKind(V1), V1) isBinKind(z) -> tt isBinKind(0(V1)) -> U111(isBinKind(V1)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(mult(V1, V2)) -> U131(isBinKind(V1), V2) isBinKind(plus(V1, V2)) -> U141(isBinKind(V1), V2) isBinKind(prod(V1)) -> U151(isBagKind(V1)) isBinKind(sum(V1)) -> U161(isBagKind(V1)) mult(z, X) -> U171(isBin(X), X) mult(0(X), Y) -> U181(isBin(X), X, Y) mult(1(X), Y) -> U191(isBin(X), X, Y) plus(z, X) -> U201(isBin(X), X) plus(0(X), 0(Y)) -> U211(isBin(X), X, Y) plus(0(X), 1(Y)) -> U221(isBin(X), X, Y) plus(1(X), 1(Y)) -> U231(isBin(X), X, Y) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X), X) prod(union(A, B)) -> U251(isBag(A), A, B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X), X) sum(union(A, B)) -> U271(isBag(A), A, B) mult(mult(z, X), ext) -> mult(U171(isBin(X), X), ext) mult(mult(0(X), Y), ext) -> mult(U181(isBin(X), X, Y), ext) mult(mult(1(X), Y), ext) -> mult(U191(isBin(X), X, Y), ext) plus(plus(z, X), ext) -> plus(U201(isBin(X), X), ext) plus(plus(0(X), 0(Y)), ext) -> plus(U211(isBin(X), X, Y), ext) plus(plus(0(X), 1(Y)), ext) -> plus(U221(isBin(X), X, Y), ext) plus(plus(1(X), 1(Y)), ext) -> plus(U231(isBin(X), X, Y), ext) The following equations are removed from E: mult(x, y) == mult(y, x) plus(x, y) == plus(y, x) union(x, y) == union(y, x) mult(mult(x, y), z') == mult(x, mult(y, z')) plus(plus(x, y), z') == plus(x, plus(y, z')) union(union(x, y), z') == union(x, union(y, z')) Used ordering: POLO with Polynomial interpretation [POLO]: POL(0(x_1)) = 2 + 3*x_1 POL(1(x_1)) = 3*x_1 POL(PROD(x_1)) = x_1 POL(U101(x_1, x_2)) = 1 + x_1 + 2*x_2 POL(U102(x_1, x_2)) = x_1 + x_2 POL(U103(x_1)) = x_1 POL(U11(x_1, x_2)) = 1 + x_1 + 2*x_2 POL(U111(x_1)) = x_1 POL(U12(x_1, x_2)) = 1 + x_1 + x_2 POL(U121(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(U132(x_1)) = x_1 POL(U141(x_1, x_2)) = x_1 + 2*x_2 POL(U142(x_1)) = x_1 POL(U151(x_1)) = x_1 POL(U161(x_1)) = x_1 POL(U21(x_1, x_2, x_3)) = x_1 + 2*x_2 + 3*x_3 POL(U22(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U23(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U24(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U25(x_1, x_2)) = x_1 + x_2 POL(U251^1(x_1, x_2, x_3)) = 1 + x_1 + 2*x_2 + 3*x_3 POL(U252^1(x_1, x_2, x_3)) = x_1 + x_2 + 3*x_3 POL(U253^1(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U254^1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U26(x_1)) = x_1 POL(U31(x_1)) = x_1 POL(U41(x_1, x_2)) = x_1 + 2*x_2 POL(U42(x_1)) = 2*x_1 POL(U51(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U52(x_1, x_2)) = 2 + x_1 + x_2 POL(U53(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 + 2*x_2 POL(U62(x_1, x_2)) = x_1 + x_2 POL(U63(x_1)) = x_1 POL(U71(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 3*x_3 POL(U72(x_1, x_2, x_3)) = 2 + x_1 + x_2 + 3*x_3 POL(U73(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U74(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U75(x_1, x_2)) = x_1 + x_2 POL(U76(x_1)) = x_1 POL(U81(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + 3*x_3 POL(U82(x_1, x_2, x_3)) = 1 + x_1 + x_2 + 3*x_3 POL(U83(x_1, x_2, x_3)) = x_1 + x_2 + 2*x_3 POL(U84(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U85(x_1, x_2)) = x_1 + x_2 POL(U86(x_1)) = x_1 POL(U91(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(U92(x_1, x_2)) = x_1 + x_2 POL(U93(x_1)) = x_1 POL(empty) = 0 POL(isBag(x_1)) = x_1 POL(isBagKind(x_1)) = x_1 POL(isBin(x_1)) = x_1 POL(isBinKind(x_1)) = x_1 POL(mult(x_1, x_2)) = 3 + 3*x_1 + 3*x_2 POL(plus(x_1, x_2)) = 2 + 3*x_1 + 3*x_2 POL(prod(x_1)) = 2 + 3*x_1 POL(singl(x_1)) = 2 + 3*x_1 POL(sum(x_1)) = 2 + 3*x_1 POL(tt) = 0 POL(union(x_1, x_2)) = 1 + 3*x_1 + 3*x_2 POL(z) = 0 ---------------------------------------- (58) Obligation: The TRS P consists of the following rules: U254^1(tt, A, B) -> PROD(A) U252^1(tt, A, B) -> U253^1(isBag(B), A, B) U254^1(tt, A, B) -> PROD(B) U253^1(tt, A, B) -> U254^1(isBagKind(B), A, B) The TRS R consists of the following rules: U103(tt) -> tt U25(tt, V2) -> U26(isBag(V2)) U71(tt, V1, V2) -> U72(isBinKind(V1), V1, V2) U74(tt, V1, V2) -> U75(isBin(V1), V2) U61(tt, V1) -> U62(isBinKind(V1), V1) U84(tt, V1, V2) -> U85(isBin(V1), V2) U141(tt, V2) -> U142(isBinKind(V2)) U85(tt, V2) -> U86(isBin(V2)) U24(tt, V1, V2) -> U25(isBag(V1), V2) U93(tt) -> tt U111(tt) -> tt U121(tt) -> tt U21(tt, V1, V2) -> U22(isBagKind(V1), V1, V2) U75(tt, V2) -> U76(isBin(V2)) U51(tt, V1) -> U52(isBinKind(V1), V1) U13(tt) -> tt U102(tt, V1) -> U103(isBag(V1)) U23(tt, V1, V2) -> U24(isBagKind(V2), V1, V2) U26(tt) -> tt U42(tt) -> tt U92(tt, V1) -> U93(isBag(V1)) U11(tt, V1) -> U12(isBinKind(V1), V1) U22(tt, V1, V2) -> U23(isBagKind(V2), V1, V2) U31(tt) -> tt U41(tt, V2) -> U42(isBagKind(V2)) U83(tt, V1, V2) -> U84(isBinKind(V2), V1, V2) U142(tt) -> tt U161(tt) -> tt U76(tt) -> tt U132(tt) -> tt U86(tt) -> tt U53(tt) -> tt U62(tt, V1) -> U63(isBin(V1)) U63(tt) -> tt U151(tt) -> tt U73(tt, V1, V2) -> U74(isBinKind(V2), V1, V2) E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (59) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 0 SCCs with 4 less nodes. ---------------------------------------- (60) TRUE