YES Problem 1: (VAR A B V1 V2 X Y) (THEORY (AC mult plus union)) (RULES 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X ) Problem 1: Dependency Pairs Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) UNION(union(x6,x7),x8) = UNION(x6,union(x7,x8)) UNION(x6,x7) = UNION(x7,x6) -> Pairs: U101#(tt,V1) -> U102#(isBagKind(V1),V1) U101#(tt,V1) -> ISBAGKIND(V1) U102#(tt,V1) -> U103#(isBag(V1)) U102#(tt,V1) -> ISBAG(V1) U11#(tt,V1) -> U12#(isBinKind(V1),V1) U11#(tt,V1) -> ISBINKIND(V1) U12#(tt,V1) -> U13#(isBin(V1)) U12#(tt,V1) -> ISBIN(V1) U131#(tt,V2) -> U132#(isBinKind(V2)) U131#(tt,V2) -> ISBINKIND(V2) U141#(tt,V2) -> U142#(isBinKind(V2)) U141#(tt,V2) -> ISBINKIND(V2) U171#(tt,X) -> U172#(isBinKind(X)) U171#(tt,X) -> ISBINKIND(X) U181#(tt,X,Y) -> U182#(isBinKind(X),X,Y) U181#(tt,X,Y) -> ISBINKIND(X) U182#(tt,X,Y) -> U183#(isBin(Y),X,Y) U182#(tt,X,Y) -> ISBIN(Y) U183#(tt,X,Y) -> U184#(isBinKind(Y),X,Y) U183#(tt,X,Y) -> ISBINKIND(Y) U184#(tt,X,Y) -> 0#(mult(X,Y)) U184#(tt,X,Y) -> MULT(X,Y) U191#(tt,X,Y) -> U192#(isBinKind(X),X,Y) U191#(tt,X,Y) -> ISBINKIND(X) U192#(tt,X,Y) -> U193#(isBin(Y),X,Y) U192#(tt,X,Y) -> ISBIN(Y) U193#(tt,X,Y) -> U194#(isBinKind(Y),X,Y) U193#(tt,X,Y) -> ISBINKIND(Y) U194#(tt,X,Y) -> 0#(mult(X,Y)) U194#(tt,X,Y) -> MULT(X,Y) U194#(tt,X,Y) -> PLUS(0(mult(X,Y)),Y) U201#(tt,X) -> U202#(isBinKind(X),X) U201#(tt,X) -> ISBINKIND(X) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U21#(tt,V1,V2) -> ISBAGKIND(V1) U211#(tt,X,Y) -> U212#(isBinKind(X),X,Y) U211#(tt,X,Y) -> ISBINKIND(X) U212#(tt,X,Y) -> U213#(isBin(Y),X,Y) U212#(tt,X,Y) -> ISBIN(Y) U213#(tt,X,Y) -> U214#(isBinKind(Y),X,Y) U213#(tt,X,Y) -> ISBINKIND(Y) U214#(tt,X,Y) -> 0#(plus(X,Y)) U214#(tt,X,Y) -> PLUS(X,Y) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U22#(tt,V1,V2) -> ISBAGKIND(V2) U221#(tt,X,Y) -> U222#(isBinKind(X),X,Y) U221#(tt,X,Y) -> ISBINKIND(X) U222#(tt,X,Y) -> U223#(isBin(Y),X,Y) U222#(tt,X,Y) -> ISBIN(Y) U223#(tt,X,Y) -> U224#(isBinKind(Y),X,Y) U223#(tt,X,Y) -> ISBINKIND(Y) U224#(tt,X,Y) -> PLUS(X,Y) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> ISBAGKIND(V2) U231#(tt,X,Y) -> U232#(isBinKind(X),X,Y) U231#(tt,X,Y) -> ISBINKIND(X) U232#(tt,X,Y) -> U233#(isBin(Y),X,Y) U232#(tt,X,Y) -> ISBIN(Y) U233#(tt,X,Y) -> U234#(isBinKind(Y),X,Y) U233#(tt,X,Y) -> ISBINKIND(Y) U234#(tt,X,Y) -> 0#(plus(plus(X,Y),1(z))) U234#(tt,X,Y) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U241#(tt,X) -> U242#(isBinKind(X),X) U241#(tt,X) -> ISBINKIND(X) U25#(tt,V2) -> U26#(isBag(V2)) U25#(tt,V2) -> ISBAG(V2) U251#(tt,A,B) -> U252#(isBagKind(A),A,B) U251#(tt,A,B) -> ISBAGKIND(A) U252#(tt,A,B) -> U253#(isBag(B),A,B) U252#(tt,A,B) -> ISBAG(B) U253#(tt,A,B) -> U254#(isBagKind(B),A,B) U253#(tt,A,B) -> ISBAGKIND(B) U254#(tt,A,B) -> MULT(prod(A),prod(B)) U254#(tt,A,B) -> PROD(A) U254#(tt,A,B) -> PROD(B) U261#(tt,X) -> U262#(isBinKind(X),X) U261#(tt,X) -> ISBINKIND(X) U271#(tt,A,B) -> U272#(isBagKind(A),A,B) U271#(tt,A,B) -> ISBAGKIND(A) U272#(tt,A,B) -> U273#(isBag(B),A,B) U272#(tt,A,B) -> ISBAG(B) U273#(tt,A,B) -> U274#(isBagKind(B),A,B) U273#(tt,A,B) -> ISBAGKIND(B) U274#(tt,A,B) -> PLUS(sum(A),sum(B)) U274#(tt,A,B) -> SUM(A) U274#(tt,A,B) -> SUM(B) U41#(tt,V2) -> U42#(isBagKind(V2)) U41#(tt,V2) -> ISBAGKIND(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U51#(tt,V1) -> ISBINKIND(V1) U52#(tt,V1) -> U53#(isBin(V1)) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U61#(tt,V1) -> ISBINKIND(V1) U62#(tt,V1) -> U63#(isBin(V1)) U62#(tt,V1) -> ISBIN(V1) U71#(tt,V1,V2) -> U72#(isBinKind(V1),V1,V2) U71#(tt,V1,V2) -> ISBINKIND(V1) U72#(tt,V1,V2) -> U73#(isBinKind(V2),V1,V2) U72#(tt,V1,V2) -> ISBINKIND(V2) U73#(tt,V1,V2) -> U74#(isBinKind(V2),V1,V2) U73#(tt,V1,V2) -> ISBINKIND(V2) U74#(tt,V1,V2) -> U75#(isBin(V1),V2) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> U76#(isBin(V2)) U75#(tt,V2) -> ISBIN(V2) U81#(tt,V1,V2) -> U82#(isBinKind(V1),V1,V2) U81#(tt,V1,V2) -> ISBINKIND(V1) U82#(tt,V1,V2) -> U83#(isBinKind(V2),V1,V2) U82#(tt,V1,V2) -> ISBINKIND(V2) U83#(tt,V1,V2) -> U84#(isBinKind(V2),V1,V2) U83#(tt,V1,V2) -> ISBINKIND(V2) U84#(tt,V1,V2) -> U85#(isBin(V1),V2) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> U86#(isBin(V2)) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U91#(tt,V1) -> ISBAGKIND(V1) U92#(tt,V1) -> U93#(isBag(V1)) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(union(V1,V2)) -> ISBAGKIND(V1) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBAG(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1,V2)) -> U41#(isBagKind(V1),V2) ISBAGKIND(union(V1,V2)) -> ISBAGKIND(V1) ISBAGKIND(singl(V1)) -> U31#(isBinKind(V1)) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBIN(0(V1)) -> U51#(isBinKind(V1),V1) ISBIN(0(V1)) -> ISBINKIND(V1) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(mult(V1,V2)) -> ISBINKIND(V1) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> ISBINKIND(V1) ISBIN(prod(V1)) -> U91#(isBagKind(V1),V1) ISBIN(prod(V1)) -> ISBAGKIND(V1) ISBIN(sum(V1)) -> U101#(isBagKind(V1),V1) ISBIN(sum(V1)) -> ISBAGKIND(V1) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) ISBIN(1(V1)) -> ISBINKIND(V1) ISBINKIND(0(V1)) -> U111#(isBinKind(V1)) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(mult(V1,V2)) -> U131#(isBinKind(V1),V2) ISBINKIND(mult(V1,V2)) -> ISBINKIND(V1) ISBINKIND(plus(V1,V2)) -> U141#(isBinKind(V1),V2) ISBINKIND(plus(V1,V2)) -> ISBINKIND(V1) ISBINKIND(prod(V1)) -> U151#(isBagKind(V1)) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) ISBINKIND(sum(V1)) -> U161#(isBagKind(V1)) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(1(V1)) -> U121#(isBinKind(V1)) ISBINKIND(1(V1)) -> ISBINKIND(V1) MULT(0(X),Y) -> U181#(isBin(X),X,Y) MULT(0(X),Y) -> ISBIN(X) MULT(mult(0(X),Y),x6) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> ISBIN(X) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> ISBIN(X) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> U171#(isBin(X),X) MULT(mult(z,X),x6) -> ISBIN(X) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) MULT(1(X),Y) -> ISBIN(X) MULT(z,X) -> U171#(isBin(X),X) MULT(z,X) -> ISBIN(X) PLUS(0(X),0(Y)) -> U211#(isBin(X),X,Y) PLUS(0(X),0(Y)) -> ISBIN(X) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(0(X),1(Y)) -> ISBIN(X) PLUS(plus(0(X),0(Y)),x6) -> U211#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> ISBIN(X) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> ISBIN(X) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> ISBIN(X) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> U201#(isBin(X),X) PLUS(plus(z,X),x6) -> ISBIN(X) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) PLUS(1(X),1(Y)) -> ISBIN(X) PLUS(z,X) -> U201#(isBin(X),X) PLUS(z,X) -> ISBIN(X) PROD(union(A,B)) -> U251#(isBag(A),A,B) PROD(union(A,B)) -> ISBAG(A) PROD(singl(X)) -> U241#(isBin(X),X) PROD(singl(X)) -> ISBIN(X) SUM(union(A,B)) -> U271#(isBag(A),A,B) SUM(union(A,B)) -> ISBAG(A) SUM(empty) -> 0#(z) SUM(singl(X)) -> U261#(isBin(X),X) SUM(singl(X)) -> ISBIN(X) UNION(union(empty,X),x6) -> UNION(X,x6) UNION(union(X,empty),x6) -> UNION(X,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) Problem 1: SCC Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) UNION(union(x6,x7),x8) = UNION(x6,union(x7,x8)) UNION(x6,x7) = UNION(x7,x6) -> Pairs: U101#(tt,V1) -> U102#(isBagKind(V1),V1) U101#(tt,V1) -> ISBAGKIND(V1) U102#(tt,V1) -> U103#(isBag(V1)) U102#(tt,V1) -> ISBAG(V1) U11#(tt,V1) -> U12#(isBinKind(V1),V1) U11#(tt,V1) -> ISBINKIND(V1) U12#(tt,V1) -> U13#(isBin(V1)) U12#(tt,V1) -> ISBIN(V1) U131#(tt,V2) -> U132#(isBinKind(V2)) U131#(tt,V2) -> ISBINKIND(V2) U141#(tt,V2) -> U142#(isBinKind(V2)) U141#(tt,V2) -> ISBINKIND(V2) U171#(tt,X) -> U172#(isBinKind(X)) U171#(tt,X) -> ISBINKIND(X) U181#(tt,X,Y) -> U182#(isBinKind(X),X,Y) U181#(tt,X,Y) -> ISBINKIND(X) U182#(tt,X,Y) -> U183#(isBin(Y),X,Y) U182#(tt,X,Y) -> ISBIN(Y) U183#(tt,X,Y) -> U184#(isBinKind(Y),X,Y) U183#(tt,X,Y) -> ISBINKIND(Y) U184#(tt,X,Y) -> 0#(mult(X,Y)) U184#(tt,X,Y) -> MULT(X,Y) U191#(tt,X,Y) -> U192#(isBinKind(X),X,Y) U191#(tt,X,Y) -> ISBINKIND(X) U192#(tt,X,Y) -> U193#(isBin(Y),X,Y) U192#(tt,X,Y) -> ISBIN(Y) U193#(tt,X,Y) -> U194#(isBinKind(Y),X,Y) U193#(tt,X,Y) -> ISBINKIND(Y) U194#(tt,X,Y) -> 0#(mult(X,Y)) U194#(tt,X,Y) -> MULT(X,Y) U194#(tt,X,Y) -> PLUS(0(mult(X,Y)),Y) U201#(tt,X) -> U202#(isBinKind(X),X) U201#(tt,X) -> ISBINKIND(X) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U21#(tt,V1,V2) -> ISBAGKIND(V1) U211#(tt,X,Y) -> U212#(isBinKind(X),X,Y) U211#(tt,X,Y) -> ISBINKIND(X) U212#(tt,X,Y) -> U213#(isBin(Y),X,Y) U212#(tt,X,Y) -> ISBIN(Y) U213#(tt,X,Y) -> U214#(isBinKind(Y),X,Y) U213#(tt,X,Y) -> ISBINKIND(Y) U214#(tt,X,Y) -> 0#(plus(X,Y)) U214#(tt,X,Y) -> PLUS(X,Y) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U22#(tt,V1,V2) -> ISBAGKIND(V2) U221#(tt,X,Y) -> U222#(isBinKind(X),X,Y) U221#(tt,X,Y) -> ISBINKIND(X) U222#(tt,X,Y) -> U223#(isBin(Y),X,Y) U222#(tt,X,Y) -> ISBIN(Y) U223#(tt,X,Y) -> U224#(isBinKind(Y),X,Y) U223#(tt,X,Y) -> ISBINKIND(Y) U224#(tt,X,Y) -> PLUS(X,Y) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> ISBAGKIND(V2) U231#(tt,X,Y) -> U232#(isBinKind(X),X,Y) U231#(tt,X,Y) -> ISBINKIND(X) U232#(tt,X,Y) -> U233#(isBin(Y),X,Y) U232#(tt,X,Y) -> ISBIN(Y) U233#(tt,X,Y) -> U234#(isBinKind(Y),X,Y) U233#(tt,X,Y) -> ISBINKIND(Y) U234#(tt,X,Y) -> 0#(plus(plus(X,Y),1(z))) U234#(tt,X,Y) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U241#(tt,X) -> U242#(isBinKind(X),X) U241#(tt,X) -> ISBINKIND(X) U25#(tt,V2) -> U26#(isBag(V2)) U25#(tt,V2) -> ISBAG(V2) U251#(tt,A,B) -> U252#(isBagKind(A),A,B) U251#(tt,A,B) -> ISBAGKIND(A) U252#(tt,A,B) -> U253#(isBag(B),A,B) U252#(tt,A,B) -> ISBAG(B) U253#(tt,A,B) -> U254#(isBagKind(B),A,B) U253#(tt,A,B) -> ISBAGKIND(B) U254#(tt,A,B) -> MULT(prod(A),prod(B)) U254#(tt,A,B) -> PROD(A) U254#(tt,A,B) -> PROD(B) U261#(tt,X) -> U262#(isBinKind(X),X) U261#(tt,X) -> ISBINKIND(X) U271#(tt,A,B) -> U272#(isBagKind(A),A,B) U271#(tt,A,B) -> ISBAGKIND(A) U272#(tt,A,B) -> U273#(isBag(B),A,B) U272#(tt,A,B) -> ISBAG(B) U273#(tt,A,B) -> U274#(isBagKind(B),A,B) U273#(tt,A,B) -> ISBAGKIND(B) U274#(tt,A,B) -> PLUS(sum(A),sum(B)) U274#(tt,A,B) -> SUM(A) U274#(tt,A,B) -> SUM(B) U41#(tt,V2) -> U42#(isBagKind(V2)) U41#(tt,V2) -> ISBAGKIND(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U51#(tt,V1) -> ISBINKIND(V1) U52#(tt,V1) -> U53#(isBin(V1)) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U61#(tt,V1) -> ISBINKIND(V1) U62#(tt,V1) -> U63#(isBin(V1)) U62#(tt,V1) -> ISBIN(V1) U71#(tt,V1,V2) -> U72#(isBinKind(V1),V1,V2) U71#(tt,V1,V2) -> ISBINKIND(V1) U72#(tt,V1,V2) -> U73#(isBinKind(V2),V1,V2) U72#(tt,V1,V2) -> ISBINKIND(V2) U73#(tt,V1,V2) -> U74#(isBinKind(V2),V1,V2) U73#(tt,V1,V2) -> ISBINKIND(V2) U74#(tt,V1,V2) -> U75#(isBin(V1),V2) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> U76#(isBin(V2)) U75#(tt,V2) -> ISBIN(V2) U81#(tt,V1,V2) -> U82#(isBinKind(V1),V1,V2) U81#(tt,V1,V2) -> ISBINKIND(V1) U82#(tt,V1,V2) -> U83#(isBinKind(V2),V1,V2) U82#(tt,V1,V2) -> ISBINKIND(V2) U83#(tt,V1,V2) -> U84#(isBinKind(V2),V1,V2) U83#(tt,V1,V2) -> ISBINKIND(V2) U84#(tt,V1,V2) -> U85#(isBin(V1),V2) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> U86#(isBin(V2)) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U91#(tt,V1) -> ISBAGKIND(V1) U92#(tt,V1) -> U93#(isBag(V1)) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(union(V1,V2)) -> ISBAGKIND(V1) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBAG(singl(V1)) -> ISBINKIND(V1) ISBAGKIND(union(V1,V2)) -> U41#(isBagKind(V1),V2) ISBAGKIND(union(V1,V2)) -> ISBAGKIND(V1) ISBAGKIND(singl(V1)) -> U31#(isBinKind(V1)) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBIN(0(V1)) -> U51#(isBinKind(V1),V1) ISBIN(0(V1)) -> ISBINKIND(V1) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(mult(V1,V2)) -> ISBINKIND(V1) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> ISBINKIND(V1) ISBIN(prod(V1)) -> U91#(isBagKind(V1),V1) ISBIN(prod(V1)) -> ISBAGKIND(V1) ISBIN(sum(V1)) -> U101#(isBagKind(V1),V1) ISBIN(sum(V1)) -> ISBAGKIND(V1) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) ISBIN(1(V1)) -> ISBINKIND(V1) ISBINKIND(0(V1)) -> U111#(isBinKind(V1)) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(mult(V1,V2)) -> U131#(isBinKind(V1),V2) ISBINKIND(mult(V1,V2)) -> ISBINKIND(V1) ISBINKIND(plus(V1,V2)) -> U141#(isBinKind(V1),V2) ISBINKIND(plus(V1,V2)) -> ISBINKIND(V1) ISBINKIND(prod(V1)) -> U151#(isBagKind(V1)) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) ISBINKIND(sum(V1)) -> U161#(isBagKind(V1)) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(1(V1)) -> U121#(isBinKind(V1)) ISBINKIND(1(V1)) -> ISBINKIND(V1) MULT(0(X),Y) -> U181#(isBin(X),X,Y) MULT(0(X),Y) -> ISBIN(X) MULT(mult(0(X),Y),x6) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> ISBIN(X) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> ISBIN(X) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> U171#(isBin(X),X) MULT(mult(z,X),x6) -> ISBIN(X) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) MULT(1(X),Y) -> ISBIN(X) MULT(z,X) -> U171#(isBin(X),X) MULT(z,X) -> ISBIN(X) PLUS(0(X),0(Y)) -> U211#(isBin(X),X,Y) PLUS(0(X),0(Y)) -> ISBIN(X) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(0(X),1(Y)) -> ISBIN(X) PLUS(plus(0(X),0(Y)),x6) -> U211#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> ISBIN(X) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> ISBIN(X) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> ISBIN(X) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> U201#(isBin(X),X) PLUS(plus(z,X),x6) -> ISBIN(X) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) PLUS(1(X),1(Y)) -> ISBIN(X) PLUS(z,X) -> U201#(isBin(X),X) PLUS(z,X) -> ISBIN(X) PROD(union(A,B)) -> U251#(isBag(A),A,B) PROD(union(A,B)) -> ISBAG(A) PROD(singl(X)) -> U241#(isBin(X),X) PROD(singl(X)) -> ISBIN(X) SUM(union(A,B)) -> U271#(isBag(A),A,B) SUM(union(A,B)) -> ISBAG(A) SUM(empty) -> 0#(z) SUM(singl(X)) -> U261#(isBin(X),X) SUM(singl(X)) -> ISBIN(X) UNION(union(empty,X),x6) -> UNION(X,x6) UNION(union(X,empty),x6) -> UNION(X,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: UNION(union(empty,X),x6) -> UNION(X,x6) UNION(union(X,empty),x6) -> UNION(X,x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) UNION(union(x6,x7),x8) -> UNION(x6,union(x7,x8)) UNION(x6,x7) -> UNION(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) ->->Cycle: ->->-> Pairs: U131#(tt,V2) -> ISBINKIND(V2) U141#(tt,V2) -> ISBINKIND(V2) U41#(tt,V2) -> ISBAGKIND(V2) ISBAGKIND(union(V1,V2)) -> U41#(isBagKind(V1),V2) ISBAGKIND(union(V1,V2)) -> ISBAGKIND(V1) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(mult(V1,V2)) -> U131#(isBinKind(V1),V2) ISBINKIND(mult(V1,V2)) -> ISBINKIND(V1) ISBINKIND(plus(V1,V2)) -> U141#(isBinKind(V1),V2) ISBINKIND(plus(V1,V2)) -> ISBINKIND(V1) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(1(V1)) -> ISBINKIND(V1) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->->Cycle: ->->-> Pairs: U101#(tt,V1) -> U102#(isBagKind(V1),V1) U102#(tt,V1) -> ISBAG(V1) U11#(tt,V1) -> U12#(isBinKind(V1),V1) U12#(tt,V1) -> ISBIN(V1) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBIN(0(V1)) -> U51#(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) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->->Cycle: ->->-> Pairs: 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) -> 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) -> 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(0(X),0(Y)) -> U211#(isBin(X),X,Y) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> U211#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->->Cycle: ->->-> Pairs: 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) -> 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) -> MULT(X,Y) MULT(0(X),Y) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) MULT(mult(x6,x7),x8) -> MULT(x6,mult(x7,x8)) MULT(x6,x7) -> MULT(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->->Cycle: ->->-> Pairs: 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) -> PROD(A) U254#(tt,A,B) -> PROD(B) PROD(union(A,B)) -> U251#(isBag(A),A,B) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->->Cycle: ->->-> Pairs: 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) -> SUM(A) U274#(tt,A,B) -> SUM(B) SUM(union(A,B)) -> U271#(isBag(A),A,B) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty The problem is decomposed in 7 subproblems. Problem 1.1: Reduction Pairs Processor: -> FAxioms: UNION(union(x6,x7),x8) = UNION(x6,union(x7,x8)) UNION(x6,x7) = UNION(x7,x6) -> Pairs: UNION(union(empty,X),x6) -> UNION(X,x6) UNION(union(X,empty),x6) -> UNION(X,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: union(empty,X) -> X union(X,empty) -> X -> SRules: UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 0 [U101](X1,X2) = 0 [U102](X1,X2) = 0 [U103](X) = 0 [U11](X1,X2) = 0 [U111](X) = 0 [U12](X1,X2) = 0 [U121](X) = 0 [U13](X) = 0 [U131](X1,X2) = 0 [U132](X) = 0 [U141](X1,X2) = 0 [U142](X) = 0 [U151](X) = 0 [U161](X) = 0 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 0 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = 0 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = 0 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 0 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 0 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 0 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U42](X) = 0 [U51](X1,X2) = 0 [U52](X1,X2) = 0 [U53](X) = 0 [U61](X1,X2) = 0 [U62](X1,X2) = 0 [U63](X) = 0 [U71](X1,X2,X3) = 0 [U72](X1,X2,X3) = 0 [U73](X1,X2,X3) = 0 [U74](X1,X2,X3) = 0 [U75](X1,X2) = 0 [U76](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U83](X1,X2,X3) = 0 [U84](X1,X2,X3) = 0 [U85](X1,X2) = 0 [U86](X) = 0 [U91](X1,X2) = 0 [U92](X1,X2) = 0 [U93](X) = 0 [isBag](X) = 0 [isBagKind](X) = 0 [isBin](X) = 0 [isBinKind](X) = 0 [mult](X1,X2) = 0 [plus](X1,X2) = 0 [prod](X) = 0 [sum](X) = 0 [union](X1,X2) = X1 + X2 [1](X) = 0 [empty] = 2 [singl](X) = 0 [tt] = 0 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 2.X1 + 2.X2 Problem 1.1: SCC Processor: -> FAxioms: UNION(union(x6,x7),x8) = UNION(x6,union(x7,x8)) UNION(x6,x7) = UNION(x7,x6) -> Pairs: UNION(union(X,empty),x6) -> UNION(X,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: UNION(union(X,empty),x6) -> UNION(X,x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) UNION(union(x6,x7),x8) -> UNION(x6,union(x7,x8)) UNION(x6,x7) -> UNION(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) Problem 1.1: Reduction Pairs Processor: -> FAxioms: UNION(union(x6,x7),x8) = UNION(x6,union(x7,x8)) UNION(x6,x7) = UNION(x7,x6) -> Pairs: UNION(union(X,empty),x6) -> UNION(X,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: union(empty,X) -> X union(X,empty) -> X -> SRules: UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 0 [U101](X1,X2) = 0 [U102](X1,X2) = 0 [U103](X) = 0 [U11](X1,X2) = 0 [U111](X) = 0 [U12](X1,X2) = 0 [U121](X) = 0 [U13](X) = 0 [U131](X1,X2) = 0 [U132](X) = 0 [U141](X1,X2) = 0 [U142](X) = 0 [U151](X) = 0 [U161](X) = 0 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 0 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = 0 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = 0 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 0 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 0 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 0 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U42](X) = 0 [U51](X1,X2) = 0 [U52](X1,X2) = 0 [U53](X) = 0 [U61](X1,X2) = 0 [U62](X1,X2) = 0 [U63](X) = 0 [U71](X1,X2,X3) = 0 [U72](X1,X2,X3) = 0 [U73](X1,X2,X3) = 0 [U74](X1,X2,X3) = 0 [U75](X1,X2) = 0 [U76](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U83](X1,X2,X3) = 0 [U84](X1,X2,X3) = 0 [U85](X1,X2) = 0 [U86](X) = 0 [U91](X1,X2) = 0 [U92](X1,X2) = 0 [U93](X) = 0 [isBag](X) = 0 [isBagKind](X) = 0 [isBin](X) = 0 [isBinKind](X) = 0 [mult](X1,X2) = 0 [plus](X1,X2) = 0 [prod](X) = 0 [sum](X) = 0 [union](X1,X2) = X1 + X2 + 2 [1](X) = 0 [empty] = 2 [singl](X) = 0 [tt] = 0 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 2.X1 + 2.X2 Problem 1.1: SCC Processor: -> FAxioms: UNION(union(x6,x7),x8) = UNION(x6,union(x7,x8)) UNION(x6,x7) = UNION(x7,x6) -> Pairs: Empty -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: UNION(union(x6,x7),x8) -> UNION(x6,x7) UNION(x6,union(x7,x8)) -> UNION(x7,x8) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> FAxioms: Empty -> Pairs: U131#(tt,V2) -> ISBINKIND(V2) U141#(tt,V2) -> ISBINKIND(V2) U41#(tt,V2) -> ISBAGKIND(V2) ISBAGKIND(union(V1,V2)) -> U41#(isBagKind(V1),V2) ISBAGKIND(union(V1,V2)) -> ISBAGKIND(V1) ISBAGKIND(singl(V1)) -> ISBINKIND(V1) ISBINKIND(0(V1)) -> ISBINKIND(V1) ISBINKIND(mult(V1,V2)) -> U131#(isBinKind(V1),V2) ISBINKIND(mult(V1,V2)) -> ISBINKIND(V1) ISBINKIND(plus(V1,V2)) -> U141#(isBinKind(V1),V2) ISBINKIND(plus(V1,V2)) -> ISBINKIND(V1) ISBINKIND(prod(V1)) -> ISBAGKIND(V1) ISBINKIND(sum(V1)) -> ISBAGKIND(V1) ISBINKIND(1(V1)) -> ISBINKIND(V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Projection: pi(U131#) = [2] pi(U141#) = [2] pi(U41#) = [2] pi(ISBAGKIND) = [1] pi(ISBINKIND) = [1] Problem 1.2: SCC Processor: -> FAxioms: Empty -> Pairs: U131#(tt,V2) -> ISBINKIND(V2) U141#(tt,V2) -> ISBINKIND(V2) U41#(tt,V2) -> ISBAGKIND(V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: U101#(tt,V1) -> U102#(isBagKind(V1),V1) U102#(tt,V1) -> ISBAG(V1) U11#(tt,V1) -> U12#(isBinKind(V1),V1) U12#(tt,V1) -> ISBIN(V1) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBIN(0(V1)) -> U51#(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) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X + 2 [U101](X1,X2) = 2.X1 + 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = X1 + 2 [U121](X) = 2.X + 2 [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 + 2 [U132](X) = 2 [U141](X1,X2) = X1 + 2.X2 + 2 [U142](X) = X + 2 [U151](X) = 2.X + 2 [U161](X) = 2.X [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = 2.X3 + 2 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = X1 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2.X [U41](X1,X2) = 2.X1 + 2.X2 + 2 [U42](X) = X + 1 [U51](X1,X2) = X1 + 2.X2 + 2 [U52](X1,X2) = X1 + 1 [U53](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 2 [U62](X1,X2) = X1 + 2 [U63](X) = 2 [U71](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U72](X1,X2,X3) = X1 + 2.X3 + 2 [U73](X1,X2,X3) = X1 + 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = X1 + 2.X3 + 2 [U83](X1,X2,X3) = X1 + 2 [U84](X1,X2,X3) = 2 [U85](X1,X2) = 2 [U86](X) = 2 [U91](X1,X2) = 2.X2 + 2 [U92](X1,X2) = X1 + 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = 2.X [isBin](X) = 2.X + 2 [isBinKind](X) = 2.X + 2 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 1 [prod](X) = 2.X + 1 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X + 2 [empty] = 2 [singl](X) = 2.X + 2 [tt] = 2 [z] = 1 [0#](X) = 0 [U101#](X1,X2) = X1 + 2.X2 + 2 [U102#](X1,X2) = 2.X2 + 1 [U103#](X) = 0 [U11#](X1,X2) = X1 + 2.X2 + 2 [U111#](X) = 0 [U12#](X1,X2) = 2.X2 + 2 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 2.X2 + 2.X3 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 2.X2 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 2.X2 + 2 [U52#](X1,X2) = 2.X2 + 2 [U53#](X) = 0 [U61#](X1,X2) = X1 + 2.X2 + 2 [U62#](X1,X2) = 2.X2 + 2 [U63#](X) = 0 [U71#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U72#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U73#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U74#](X1,X2,X3) = 2.X2 + 2.X3 [U75#](X1,X2) = 2.X2 [U76#](X) = 0 [U81#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U82#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85#](X1,X2) = X1 + 2.X2 [U86#](X) = 0 [U91#](X1,X2) = X1 + 2.X2 + 2 [U92#](X1,X2) = 2.X2 + 2 [U93#](X) = 0 [ISBAG](X) = 2.X [ISBAGKIND](X) = 0 [ISBIN](X) = 2.X [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: Empty -> Pairs: U102#(tt,V1) -> ISBAG(V1) U11#(tt,V1) -> U12#(isBinKind(V1),V1) U12#(tt,V1) -> ISBIN(V1) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBIN(0(V1)) -> U51#(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) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U11#(tt,V1) -> U12#(isBinKind(V1),V1) U12#(tt,V1) -> ISBIN(V1) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBIN(0(V1)) -> U51#(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(1(V1)) -> U61#(isBinKind(V1),V1) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty Problem 1.3: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: U11#(tt,V1) -> U12#(isBinKind(V1),V1) U12#(tt,V1) -> ISBIN(V1) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBIN(0(V1)) -> U51#(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(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X + 2 [U101](X1,X2) = 2.X1 [U102](X1,X2) = X1 + 2 [U103](X) = 2.X [U11](X1,X2) = 2 [U111](X) = X + 2 [U12](X1,X2) = 2 [U121](X) = 2.X + 1 [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = 2.X1 + 2.X2 + 2 [U142](X) = X + 2 [U151](X) = X + 2 [U161](X) = 2.X + 1 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = X1 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = X1 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = X1 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = X [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = 2 [U42](X) = 2 [U51](X1,X2) = X1 + 2.X2 + 2 [U52](X1,X2) = X1 + 2 [U53](X) = 2 [U61](X1,X2) = X1 + 2.X2 [U62](X1,X2) = 2.X2 [U63](X) = X [U71](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U72](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U73](X1,X2,X3) = X1 + 2.X2 [U74](X1,X2,X3) = 2.X2 + 2 [U75](X1,X2) = X1 + 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84](X1,X2,X3) = X1 + 2.X2 [U85](X1,X2) = X1 + 2 [U86](X) = 2 [U91](X1,X2) = X1 + 2 [U92](X1,X2) = X1 + 2 [U93](X) = X + 1 [isBag](X) = 2 [isBagKind](X) = 2 [isBin](X) = 2.X [isBinKind](X) = 2.X + 2 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2.X + 2 [union](X1,X2) = X1 + X2 + 2 [1](X) = 2.X + 2 [empty] = 1 [singl](X) = 2.X + 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = X1 + 2.X2 + 1 [U111#](X) = 0 [U12#](X1,X2) = 2.X2 + 2 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = X1 + 2.X2 + 2 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 2.X2 + 2 [U52#](X1,X2) = 2.X2 + 2 [U53#](X) = 0 [U61#](X1,X2) = X1 + 2.X2 + 1 [U62#](X1,X2) = 2.X2 + 2 [U63#](X) = 0 [U71#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U72#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U73#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U74#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U75#](X1,X2) = X1 + 2.X2 + 2 [U76#](X) = 0 [U81#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U82#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85#](X1,X2) = X1 + 2.X2 [U86#](X) = 0 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 [U92#](X1,X2) = 2.X1 + 2.X2 + 1 [U93#](X) = 0 [ISBAG](X) = 2.X + 2 [ISBAGKIND](X) = 0 [ISBIN](X) = 2.X + 2 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3: SCC Processor: -> FAxioms: Empty -> Pairs: U12#(tt,V1) -> ISBIN(V1) U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) U91#(tt,V1) -> U92#(isBagKind(V1),V1) U92#(tt,V1) -> ISBAG(V1) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) ISBAG(singl(V1)) -> U11#(isBinKind(V1),V1) ISBIN(0(V1)) -> U51#(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(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->->Cycle: ->->-> Pairs: U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(0(V1)) -> U51#(isBinKind(V1),V1) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty The problem is decomposed in 2 subproblems. Problem 1.3.1: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: U21#(tt,V1,V2) -> U22#(isBagKind(V1),V1,V2) U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X + 2 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = 2.X1 + 2 [U111](X) = 2.X + 1 [U12](X1,X2) = 2 [U121](X) = 2.X + 1 [U13](X) = X [U131](X1,X2) = 2.X1 + 1 [U132](X) = 2 [U141](X1,X2) = 2.X2 + 1 [U142](X) = X + 1 [U151](X) = X + 1 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 2.X1 + X2 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = X1 + 2.X3 + 2 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = X1 + X3 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = X1 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 2 [U41](X1,X2) = X1 + 2.X2 + 2 [U42](X) = 2.X [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2 [U72](X1,X2,X3) = 2 [U73](X1,X2,X3) = 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = 2 [U82](X1,X2,X3) = 2 [U83](X1,X2,X3) = 2 [U84](X1,X2,X3) = 2 [U85](X1,X2) = 2 [U86](X) = X [U91](X1,X2) = 2 [U92](X1,X2) = 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = X + 2 [isBin](X) = 2 [isBinKind](X) = 2.X [mult](X1,X2) = 2.X1 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 1 [prod](X) = 2.X + 2 [sum](X) = 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X + 2 [empty] = 0 [singl](X) = 2.X + 1 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 2.X2 + 1 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 2.X + 1 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3.1: SCC Processor: -> FAxioms: Empty -> Pairs: U22#(tt,V1,V2) -> U23#(isBagKind(V2),V1,V2) U23#(tt,V1,V2) -> U24#(isBagKind(V2),V1,V2) U24#(tt,V1,V2) -> U25#(isBag(V1),V2) U24#(tt,V1,V2) -> ISBAG(V1) U25#(tt,V2) -> ISBAG(V2) ISBAG(union(V1,V2)) -> U21#(isBagKind(V1),V1,V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3.2: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: U51#(tt,V1) -> U52#(isBinKind(V1),V1) U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(0(V1)) -> U51#(isBinKind(V1),V1) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X + 2 [U101](X1,X2) = 2.X2 + 2 [U102](X1,X2) = 2.X2 + 2 [U103](X) = X [U11](X1,X2) = 2 [U111](X) = 2.X + 2 [U12](X1,X2) = 2 [U121](X) = 2.X + 2 [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 [U132](X) = X + 1 [U141](X1,X2) = 2.X1 + 2.X2 + 2 [U142](X) = X + 2 [U151](X) = 2.X + 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = X1 + X2 + 2.X3 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = X1 + X2 + X3 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = X1 + X2 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = 2.X1 + 2.X2 + 2 [U42](X) = 2.X + 2 [U51](X1,X2) = 2.X2 + 2 [U52](X1,X2) = X1 [U53](X) = 2 [U61](X1,X2) = 2.X2 + 2 [U62](X1,X2) = 2.X2 + 2 [U63](X) = 2.X [U71](X1,X2,X3) = X1 + 2.X3 + 1 [U72](X1,X2,X3) = 2.X3 + 2 [U73](X1,X2,X3) = 2.X3 + 2 [U74](X1,X2,X3) = X1 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85](X1,X2) = 2.X1 + 2.X2 [U86](X) = 2.X + 2 [U91](X1,X2) = 2.X2 + 2 [U92](X1,X2) = 2.X1 + 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = X [isBin](X) = X + 1 [isBinKind](X) = 2.X + 2 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X + 2 [empty] = 2 [singl](X) = 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = X1 + 2.X2 + 2 [U52#](X1,X2) = 2.X2 + 2 [U53#](X) = 0 [U61#](X1,X2) = X1 + 2.X2 + 2 [U62#](X1,X2) = 2.X2 + 2 [U63#](X) = 0 [U71#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U72#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U73#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U74#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U75#](X1,X2) = 2.X2 + 2 [U76#](X) = 0 [U81#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U82#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85#](X1,X2) = X1 + 2.X2 + 1 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 2.X + 2 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3.2: SCC Processor: -> FAxioms: Empty -> Pairs: U52#(tt,V1) -> ISBIN(V1) U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(0(V1)) -> U51#(isBinKind(V1),V1) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty Problem 1.3.2: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: U61#(tt,V1) -> U62#(isBinKind(V1),V1) U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X [U101](X1,X2) = 2.X2 + 2 [U102](X1,X2) = X1 + 2 [U103](X) = 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = X1 + 2 [U121](X) = 2.X + 2 [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = 2.X1 + 2.X2 + 2 [U142](X) = X + 1 [U151](X) = 2.X + 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = 2.X3 + 2 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = X1 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 1 [U41](X1,X2) = 2.X1 + 2.X2 + 2 [U42](X) = X + 1 [U51](X1,X2) = X1 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 1 [U62](X1,X2) = X2 + 2 [U63](X) = 2 [U71](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U72](X1,X2,X3) = X1 + 2.X3 + 2 [U73](X1,X2,X3) = 2.X3 + 2 [U74](X1,X2,X3) = X1 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = X1 + 2.X3 + 1 [U83](X1,X2,X3) = 2.X3 + 2 [U84](X1,X2,X3) = X1 [U85](X1,X2) = 2 [U86](X) = 2 [U91](X1,X2) = X1 + 2.X2 [U92](X1,X2) = X1 + 1 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = 2.X [isBin](X) = 2.X + 2 [isBinKind](X) = 2.X + 2 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X + 2 [sum](X) = X + 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X + 2 [empty] = 1 [singl](X) = 2.X + 2 [tt] = 2 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = X1 + 2.X2 + 1 [U62#](X1,X2) = 2.X2 + 2 [U63#](X) = 0 [U71#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U72#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U73#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U74#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U75#](X1,X2) = 2.X2 + 1 [U76#](X) = 0 [U81#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U82#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85#](X1,X2) = 2.X2 + 2 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 2.X + 1 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3.2: SCC Processor: -> FAxioms: Empty -> Pairs: U62#(tt,V1) -> ISBIN(V1) 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) ISBIN(1(V1)) -> U61#(isBinKind(V1),V1) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty Problem 1.3.2: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = X + 2 [U101](X1,X2) = 2.X1 + 2.X2 [U102](X1,X2) = 2.X2 + 2 [U103](X) = X [U11](X1,X2) = 2.X1 + 2 [U111](X) = X + 1 [U12](X1,X2) = 2 [U121](X) = X + 1 [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 + 1 [U132](X) = 2.X + 2 [U141](X1,X2) = 2.X1 + 2.X2 + 1 [U142](X) = 2.X + 2 [U151](X) = 2.X + 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 2.X1 + 2.X2 + X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = 2.X1 + X3 + 2 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = X3 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = X3 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = X2 + 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 1 [U41](X1,X2) = 2.X2 + 2 [U42](X) = 2.X + 2 [U51](X1,X2) = X1 + X2 + 2 [U52](X1,X2) = X1 + 2 [U53](X) = 2 [U61](X1,X2) = 2.X1 + 2.X2 [U62](X1,X2) = X1 + X2 + 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2.X2 + 2 [U72](X1,X2,X3) = 2.X1 + 2 [U73](X1,X2,X3) = 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U82](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83](X1,X2,X3) = X1 + 2.X2 + X3 [U84](X1,X2,X3) = X1 + 2.X2 [U85](X1,X2) = X1 + 2 [U86](X) = 2 [U91](X1,X2) = 2.X1 + X2 [U92](X1,X2) = X1 + 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = X [isBin](X) = 2.X [isBinKind](X) = X + 1 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2.X + 1 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X + 1 [empty] = 2 [singl](X) = X + 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U72#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U73#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U74#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U75#](X1,X2) = X1 + 2.X2 + 2 [U76#](X) = 0 [U81#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U82#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85#](X1,X2) = X1 + 2.X2 + 2 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 2.X + 2 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3.2: SCC Processor: -> FAxioms: Empty -> Pairs: 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) U74#(tt,V1,V2) -> ISBIN(V1) U75#(tt,V2) -> ISBIN(V2) 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(mult(V1,V2)) -> U71#(isBinKind(V1),V1,V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty Problem 1.3.2: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 0 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = 2.X1 + 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = 2.X2 + 2 [U121](X) = X [U13](X) = X [U131](X1,X2) = 2 [U132](X) = 2 [U141](X1,X2) = 2 [U142](X) = 2 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = 2.X1 + X2 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = X1 + 2.X3 + 2 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = 2.X1 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = X1 + 2.X2 + 2 [U42](X) = 2.X + 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 2 [U62](X1,X2) = X1 + 2.X2 + 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2.X2 [U72](X1,X2,X3) = X1 + 2.X2 + 2 [U73](X1,X2,X3) = X1 + 2.X2 + 2 [U74](X1,X2,X3) = X1 + 2.X2 + 2 [U75](X1,X2) = 2.X1 [U76](X) = 2 [U81](X1,X2,X3) = 2.X1 + X2 [U82](X1,X2,X3) = X1 + X2 + 2 [U83](X1,X2,X3) = 2.X1 + X2 [U84](X1,X2,X3) = X1 + X2 + 2 [U85](X1,X2) = X1 [U86](X) = 2 [U91](X1,X2) = X1 + X2 + 2 [U92](X1,X2) = X1 + 1 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = X [isBin](X) = X + 2 [isBinKind](X) = 2 [mult](X1,X2) = 2.X1 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X [sum](X) = 0 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X + 2 [empty] = 2 [singl](X) = 2.X + 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U82#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U83#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U84#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U85#](X1,X2) = 2.X1 + 2.X2 + 1 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 2.X + 2 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.3.2: SCC Processor: -> FAxioms: Empty -> Pairs: 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) U84#(tt,V1,V2) -> ISBIN(V1) U85#(tt,V2) -> ISBIN(V2) ISBIN(plus(V1,V2)) -> U81#(isBinKind(V1),V1,V2) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: 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) -> 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) -> 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(0(X),0(Y)) -> U211#(isBin(X),X,Y) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> U211#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = X + 2 [U101](X1,X2) = X1 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = 2.X1 + 2 [U111](X) = 2 [U12](X1,X2) = 2.X1 + 2 [U121](X) = 2 [U13](X) = 2.X + 2 [U131](X1,X2) = 2 [U132](X) = 2 [U141](X1,X2) = 2 [U142](X) = 2 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U211](X1,X2,X3) = X1 + X2 + X3 + 2 [U212](X1,X2,X3) = 2.X1 + X2 + X3 [U213](X1,X2,X3) = X1 + X2 + X3 + 2 [U214](X1,X2,X3) = 2.X1 + X2 + X3 [U22](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U221](X1,X2,X3) = X1 + X2 + X3 + 2 [U222](X1,X2,X3) = X1 + X2 + X3 + 2 [U223](X1,X2,X3) = X1 + X2 + X3 + 2 [U224](X1,X2,X3) = X1 + X2 + X3 + 1 [U23](X1,X2,X3) = X1 + 2.X3 + 2 [U231](X1,X2,X3) = X1 + X2 + X3 + 2 [U232](X1,X2,X3) = X1 + X2 + X3 + 2 [U233](X1,X2,X3) = X1 + X2 + X3 + 2 [U234](X1,X2,X3) = X1 + X2 + X3 + 2 [U24](X1,X2,X3) = X1 + X3 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = 2 [U42](X) = X [U51](X1,X2) = X1 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = X1 [U72](X1,X2,X3) = 2 [U73](X1,X2,X3) = 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = X [U81](X1,X2,X3) = X1 [U82](X1,X2,X3) = 2 [U83](X1,X2,X3) = X1 [U84](X1,X2,X3) = X1 [U85](X1,X2) = X1 [U86](X) = 2 [U91](X1,X2) = 2 [U92](X1,X2) = 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = 2 [isBin](X) = 2 [isBinKind](X) = 2 [mult](X1,X2) = 2.X2 + 2 [plus](X1,X2) = X1 + X2 [prod](X) = 2.X [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + X2 + 2 [1](X) = X + 2 [empty] = 0 [singl](X) = 2 [tt] = 2 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U212#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U213#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U214#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U222#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U223#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U224#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U232#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U233#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U234#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 + 1 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: U212#(tt,X,Y) -> U213#(isBin(Y),X,Y) U213#(tt,X,Y) -> U214#(isBinKind(Y),X,Y) U214#(tt,X,Y) -> 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) -> 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(0(X),0(Y)) -> U211#(isBin(X),X,Y) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> U211#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: 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) -> 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: 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) -> 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X [U101](X1,X2) = 2.X1 + 2.X2 + 2 [U102](X1,X2) = 2.X1 + 2.X2 + 1 [U103](X) = X + 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = X1 + 2 [U121](X) = X + 1 [U13](X) = 2 [U131](X1,X2) = 2.X1 + X2 + 2 [U132](X) = 2 [U141](X1,X2) = X1 + 2.X2 [U142](X) = 2 [U151](X) = 2.X + 2 [U161](X) = 2.X + 1 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = X1 + 2.X2 + 2 [U211](X1,X2,X3) = 2.X2 + 2.X3 [U212](X1,X2,X3) = 2.X2 + 2.X3 [U213](X1,X2,X3) = 2.X2 + 2.X3 [U214](X1,X2,X3) = 2.X2 + 2.X3 [U22](X1,X2,X3) = X1 + 2.X2 + 2 [U221](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U222](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U223](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U224](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U23](X1,X2,X3) = 2.X2 + 2 [U231](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U232](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U233](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U234](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U24](X1,X2,X3) = 2.X2 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = X1 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = X1 [U42](X) = 2 [U51](X1,X2) = 2.X2 + 2 [U52](X1,X2) = X1 [U53](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 2 [U62](X1,X2) = X1 + 2 [U63](X) = 2 [U71](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U72](X1,X2,X3) = X1 + 2.X3 [U73](X1,X2,X3) = 2.X3 + 2 [U74](X1,X2,X3) = X1 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X3 [U82](X1,X2,X3) = 2.X3 + 2 [U83](X1,X2,X3) = 2.X3 + 2 [U84](X1,X2,X3) = 2.X3 + 2 [U85](X1,X2) = 2.X2 + 2 [U86](X) = 2 [U91](X1,X2) = 2.X1 + 2.X2 + 1 [U92](X1,X2) = 2.X1 + 2.X2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = 2 [isBin](X) = 2.X + 2 [isBinKind](X) = 2.X + 2 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = X1 + X2 [prod](X) = 2.X + 2 [sum](X) = X + 2 [union](X1,X2) = 2.X1 + 2 [1](X) = 2.X + 1 [empty] = 2 [singl](X) = 2.X + 2 [tt] = 2 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U222#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U223#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U224#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U232#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U233#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U234#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: U222#(tt,X,Y) -> U223#(isBin(Y),X,Y) U223#(tt,X,Y) -> U224#(isBinKind(Y),X,Y) U224#(tt,X,Y) -> 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(0(X),1(Y)) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> U221#(isBin(X),X,Y) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: 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) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = X + 2 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = X [U11](X1,X2) = 2 [U111](X) = 2 [U12](X1,X2) = 2 [U121](X) = 2 [U13](X) = 2 [U131](X1,X2) = X1 [U132](X) = 2 [U141](X1,X2) = 2 [U142](X) = X [U151](X) = X [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = X1 [U211](X1,X2,X3) = X1 + X2 + X3 + 2 [U212](X1,X2,X3) = X1 + X2 + X3 + 2 [U213](X1,X2,X3) = 2.X1 + X2 + X3 [U214](X1,X2,X3) = X1 + X2 + X3 + 2 [U22](X1,X2,X3) = X1 [U221](X1,X2,X3) = 2.X1 + X2 + X3 [U222](X1,X2,X3) = X1 + X2 + X3 + 2 [U223](X1,X2,X3) = X1 + X2 + X3 + 2 [U224](X1,X2,X3) = X1 + X2 + X3 + 2 [U23](X1,X2,X3) = X1 [U231](X1,X2,X3) = X1 + X2 + X3 + 2 [U232](X1,X2,X3) = 2.X1 + X2 + X3 [U233](X1,X2,X3) = 2.X1 + X2 + X3 [U234](X1,X2,X3) = 2.X1 + X2 + X3 [U24](X1,X2,X3) = 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = X [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = X1 [U42](X) = 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = X1 [U63](X) = 2 [U71](X1,X2,X3) = X1 [U72](X1,X2,X3) = X1 [U73](X1,X2,X3) = X1 [U74](X1,X2,X3) = X1 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 [U82](X1,X2,X3) = 2 [U83](X1,X2,X3) = X1 [U84](X1,X2,X3) = X1 [U85](X1,X2) = X1 [U86](X) = X [U91](X1,X2) = X1 [U92](X1,X2) = 2 [U93](X) = 2 [isBag](X) = 2 [isBagKind](X) = 2 [isBin](X) = 2 [isBinKind](X) = 2 [mult](X1,X2) = 2.X2 [plus](X1,X2) = X1 + X2 [prod](X) = 2.X [sum](X) = X + 1 [union](X1,X2) = 0 [1](X) = X + 2 [empty] = 2 [singl](X) = 2 [tt] = 2 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U232#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U233#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U234#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: U232#(tt,X,Y) -> U233#(isBin(Y),X,Y) U233#(tt,X,Y) -> U234#(isBinKind(Y),X,Y) U234#(tt,X,Y) -> PLUS(plus(X,Y),1(z)) U234#(tt,X,Y) -> PLUS(X,Y) PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> U231#(isBin(X),X,Y) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) PLUS(1(X),1(Y)) -> U231#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(0(X),0(Y)),x6) -> PLUS(U211(isBin(X),X,Y),x6) PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 1 [U101](X1,X2) = 2.X1 + 2.X2 + 2 [U102](X1,X2) = X1 + 2.X2 + 2 [U103](X) = X + 2 [U11](X1,X2) = 2 [U111](X) = 2 [U12](X1,X2) = 2 [U121](X) = 2 [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 [U132](X) = 2.X + 2 [U141](X1,X2) = X1 + X2 + 1 [U142](X) = X + 1 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X2 + 2 [U202](X1,X2) = X2 + 2 [U21](X1,X2,X3) = X1 [U211](X1,X2,X3) = 2 [U212](X1,X2,X3) = 2 [U213](X1,X2,X3) = 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = X1 [U221](X1,X2,X3) = 2 [U222](X1,X2,X3) = 2 [U223](X1,X2,X3) = 2 [U224](X1,X2,X3) = 2 [U23](X1,X2,X3) = 2 [U231](X1,X2,X3) = 2 [U232](X1,X2,X3) = 2 [U233](X1,X2,X3) = 2 [U234](X1,X2,X3) = 1 [U24](X1,X2,X3) = 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = X1 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = X [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2 [U41](X1,X2) = 2 [U42](X) = 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U72](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U73](X1,X2,X3) = 2.X3 + 2 [U74](X1,X2,X3) = X1 + X3 + 1 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + X2 + 2.X3 + 1 [U82](X1,X2,X3) = X1 + 2.X3 + 2 [U83](X1,X2,X3) = X1 + X3 + 1 [U84](X1,X2,X3) = X1 [U85](X1,X2) = 2 [U86](X) = 2 [U91](X1,X2) = 2.X1 + X2 [U92](X1,X2) = X1 + X2 + 2 [U93](X) = 2.X [isBag](X) = 2 [isBagKind](X) = 2 [isBin](X) = 2.X + 2 [isBinKind](X) = X + 1 [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = X1 + X2 + 2 [prod](X) = 2.X + 2 [sum](X) = X + 2 [union](X1,X2) = 2.X2 [1](X) = 2 [empty] = 0 [singl](X) = 2 [tt] = 2 [z] = 1 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(0(X),1(Y)),x6) -> PLUS(U221(isBin(X),X,Y),x6) PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2 [U101](X1,X2) = X1 + X2 + 2 [U102](X1,X2) = X1 + 2 [U103](X) = 2 [U11](X1,X2) = 2.X1 + 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = X1 + X2 + 2 [U121](X) = 2 [U13](X) = X + 2 [U131](X1,X2) = 2.X1 + X2 [U132](X) = X + 2 [U141](X1,X2) = X1 + X2 + 2 [U142](X) = X [U151](X) = 2 [U161](X) = 2.X + 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 2 [U212](X1,X2,X3) = 2 [U213](X1,X2,X3) = 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U221](X1,X2,X3) = 2 [U222](X1,X2,X3) = 2 [U223](X1,X2,X3) = 2 [U224](X1,X2,X3) = 2 [U23](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U231](X1,X2,X3) = 2 [U232](X1,X2,X3) = 2 [U233](X1,X2,X3) = 2 [U234](X1,X2,X3) = 2 [U24](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = X1 + 2.X2 + 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = X + 1 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2.X + 1 [U41](X1,X2) = 2.X1 + 2 [U42](X) = 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U72](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U73](X1,X2,X3) = X2 + 2.X3 + 2 [U74](X1,X2,X3) = X1 + X2 + X3 + 2 [U75](X1,X2) = X1 + X2 + 2 [U76](X) = X + 2 [U81](X1,X2,X3) = X2 + X3 + 2 [U82](X1,X2,X3) = X1 + X3 [U83](X1,X2,X3) = X3 + 2 [U84](X1,X2,X3) = X1 + 2 [U85](X1,X2) = 2 [U86](X) = 2 [U91](X1,X2) = 2.X2 + 1 [U92](X1,X2) = 2.X2 + 1 [U93](X) = X [isBag](X) = 2.X [isBagKind](X) = X [isBin](X) = X + 1 [isBinKind](X) = X [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = X1 + X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2 [empty] = 2 [singl](X) = 2.X + 1 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(1(X),1(Y)),x6) -> PLUS(U231(isBin(X),X,Y),x6) PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = 2.X1 + X2 + 2 [U111](X) = X [U12](X1,X2) = 2.X1 + 2 [U121](X) = 2 [U13](X) = X + 2 [U131](X1,X2) = 2 [U132](X) = X [U141](X1,X2) = X1 [U142](X) = 2 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X1 + X2 [U202](X1,X2) = X2 + 2 [U21](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 2.X1 + 2 [U212](X1,X2,X3) = 2.X1 + 2 [U213](X1,X2,X3) = 2.X1 + 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = X1 + 2.X3 + 2 [U221](X1,X2,X3) = 2.X1 + 2 [U222](X1,X2,X3) = 2.X1 + 2 [U223](X1,X2,X3) = 2.X1 + 2 [U224](X1,X2,X3) = 2.X1 + 2 [U23](X1,X2,X3) = 2.X3 + 2 [U231](X1,X2,X3) = X1 + 2 [U232](X1,X2,X3) = X1 + 2 [U233](X1,X2,X3) = 2.X1 [U234](X1,X2,X3) = X1 + 2 [U24](X1,X2,X3) = X1 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 2 [U41](X1,X2) = 2.X1 + 2.X2 + 2 [U42](X) = X + 2 [U51](X1,X2) = 2 [U52](X1,X2) = X1 [U53](X) = X [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2 [U72](X1,X2,X3) = 2 [U73](X1,X2,X3) = X1 [U74](X1,X2,X3) = X1 [U75](X1,X2) = X1 [U76](X) = 2 [U81](X1,X2,X3) = 2 [U82](X1,X2,X3) = X1 [U83](X1,X2,X3) = X1 [U84](X1,X2,X3) = 2 [U85](X1,X2) = X1 [U86](X) = 2 [U91](X1,X2) = 2 [U92](X1,X2) = 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = 2.X [isBin](X) = 2 [isBinKind](X) = 2 [mult](X1,X2) = 2.X1 + X2 + 2 [plus](X1,X2) = X1 + X2 + 2 [prod](X) = 0 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + X2 + 2 [1](X) = 2 [empty] = 2 [singl](X) = 2.X + 2 [tt] = 2 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) PLUS(plus(x6,x7),x8) -> PLUS(x6,plus(x7,x8)) PLUS(x6,x7) -> PLUS(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) Problem 1.4: Reduction Pairs Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: PLUS(plus(z,X),x6) -> PLUS(U201(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt 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) plus(z,X) -> U201(isBin(X),X) -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2 [U101](X1,X2) = 2.X2 + 2 [U102](X1,X2) = 2.X2 + 2 [U103](X) = X [U11](X1,X2) = X1 + X2 + 2 [U111](X) = 2 [U12](X1,X2) = X1 + 2 [U121](X) = 2 [U13](X) = 2 [U131](X1,X2) = X1 + X2 + 2 [U132](X) = X + 1 [U141](X1,X2) = X1 + X2 + 2 [U142](X) = X + 2 [U151](X) = 2.X [U161](X) = X + 1 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = X1 + 2.X2 + 2 [U211](X1,X2,X3) = 2 [U212](X1,X2,X3) = 2 [U213](X1,X2,X3) = 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = 2.X1 + 2 [U221](X1,X2,X3) = 2 [U222](X1,X2,X3) = 2 [U223](X1,X2,X3) = 2 [U224](X1,X2,X3) = 2 [U23](X1,X2,X3) = 2 [U231](X1,X2,X3) = 2 [U232](X1,X2,X3) = 2 [U233](X1,X2,X3) = 2 [U234](X1,X2,X3) = 2 [U24](X1,X2,X3) = 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 2 [U41](X1,X2) = X1 + 1 [U42](X) = 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U72](X1,X2,X3) = 2.X2 + 2.X3 [U73](X1,X2,X3) = X1 + 2.X2 + X3 [U74](X1,X2,X3) = X1 + 2.X2 + 1 [U75](X1,X2) = X1 + 1 [U76](X) = 2 [U81](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U82](X1,X2,X3) = X1 + 2.X3 + 2 [U83](X1,X2,X3) = 2.X3 + 2 [U84](X1,X2,X3) = 2.X3 + 2 [U85](X1,X2) = 2.X2 + 2 [U86](X) = X [U91](X1,X2) = 2.X1 + 2.X2 + 2 [U92](X1,X2) = 2.X1 + 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = X + 1 [isBin](X) = 2.X + 2 [isBinKind](X) = X [mult](X1,X2) = 2.X1 + X2 + 2 [plus](X1,X2) = X1 + X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + 1 [1](X) = 2 [empty] = 2 [singl](X) = X + 1 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 2.X1 + 2.X2 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.4: SCC Processor: -> FAxioms: PLUS(plus(x6,x7),x8) = PLUS(x6,plus(x7,x8)) PLUS(x6,x7) = PLUS(x7,x6) -> Pairs: Empty -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: PLUS(plus(x6,x7),x8) -> PLUS(x6,x7) PLUS(x6,plus(x7,x8)) -> PLUS(x7,x8) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Reduction Pairs Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: 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) -> 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) -> MULT(X,Y) MULT(0(X),Y) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [0](X) = X + 1 [U101](X1,X2) = 1 [U102](X1,X2) = 1 [U103](X) = 1 [U11](X1,X2) = X1.X2 + X1 + X2 + 1 [U111](X) = X.X [U12](X1,X2) = X1.X2 + X1 + X2 + 1 [U121](X) = X [U13](X) = X.X + 1 [U131](X1,X2) = X1 [U132](X) = 1 [U141](X1,X2) = 1 [U142](X) = 1 [U151](X) = 1 [U161](X) = 1 [U171](X1,X2) = X1.X2 [U172](X) = 0 [U181](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 [U182](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 [U183](X1,X2,X3) = X2.X3 + X1 + X2 + X3 [U184](X1,X2,X3) = X1.X2.X3 + X1.X3 + X2 + 1 [U191](X1,X2,X3) = X1.X2.X3 + X1.X3 + X1 + X2 + X3 [U192](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 [U193](X1,X2,X3) = X1.X2.X3 + X1.X3 + X2 + X3 + 1 [U194](X1,X2,X3) = X1.X2.X3 + X1.X3 + X1 + X2 + X3 [U201](X1,X2) = X1.X2 [U202](X1,X2) = X1.X2 [U21](X1,X2,X3) = X1.X2.X3 + X1.X2 + X1.X3 + X2.X3 + X1 + X2 + X3 + 1 [U211](X1,X2,X3) = X1.X3 + X1 + X2 + 1 [U212](X1,X2,X3) = X1.X2 + X1.X3 + X1 + 1 [U213](X1,X2,X3) = X1.X2 + X1 + X3 + 1 [U214](X1,X2,X3) = X1 + X2 + X3 + 1 [U22](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 + 1 [U221](X1,X2,X3) = X1.X3 + X1 + X2 + 1 [U222](X1,X2,X3) = X1.X2 + X1.X3 + X1 + 1 [U223](X1,X2,X3) = X1.X2 + X1 + X3 + 1 [U224](X1,X2,X3) = X1.X2 + X1.X3 + X1 [U23](X1,X2,X3) = X2.X3 + X1 + X2 + 1 [U231](X1,X2,X3) = X1 + X2 + X3 + 1 [U232](X1,X2,X3) = X1.X2 + X1.X3 + X1 + 1 [U233](X1,X2,X3) = X1 + X2 + X3 + 1 [U234](X1,X2,X3) = X1.X2 + X1 + X3 + 1 [U24](X1,X2,X3) = X1.X2 + 1 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 1 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 1 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X.X + X [U41](X1,X2) = X1.X2 + X1 + 1 [U42](X) = X + 1 [U51](X1,X2) = 1 [U52](X1,X2) = 1 [U53](X) = X [U61](X1,X2) = X1 [U62](X1,X2) = X1 [U63](X) = 1 [U71](X1,X2,X3) = 1 [U72](X1,X2,X3) = 1 [U73](X1,X2,X3) = 1 [U74](X1,X2,X3) = 1 [U75](X1,X2) = X1 [U76](X) = X.X [U81](X1,X2,X3) = X1 [U82](X1,X2,X3) = 1 [U83](X1,X2,X3) = X1 [U84](X1,X2,X3) = 1 [U85](X1,X2) = 1 [U86](X) = 1 [U91](X1,X2) = 1 [U92](X1,X2) = 1 [U93](X) = 1 [isBag](X) = X.X + X + 1 [isBagKind](X) = X + 1 [isBin](X) = 1 [isBinKind](X) = 1 [mult](X1,X2) = X1.X2 + X1 + X2 [plus](X1,X2) = X1 + X2 [prod](X) = 0 [sum](X) = X.X + X + 1 [union](X1,X2) = X1.X2 + X1 + X2 + 1 [1](X) = X + 1 [empty] = 1 [singl](X) = X.X + X + 1 [tt] = 1 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X3 + 1 [U182#](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X3 [U183#](X1,X2,X3) = X1.X2.X3 + X1.X2 + X1 + X3 [U184#](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 [U191#](X1,X2,X3) = X1.X2.X3 + X1.X3 + X2 + X3 + 1 [U192#](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X3 + 1 [U193#](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X3 + 1 [U194#](X1,X2,X3) = X1.X2.X3 + X1.X2 + X1.X3 + X3 + 1 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = X1.X2 + X1 + X2 + 1 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.5: SCC Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: U182#(tt,X,Y) -> U183#(isBin(Y),X,Y) U183#(tt,X,Y) -> U184#(isBinKind(Y),X,Y) U184#(tt,X,Y) -> 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) -> MULT(X,Y) MULT(0(X),Y) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> U181#(isBin(X),X,Y) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: 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) -> MULT(X,Y) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) MULT(mult(x6,x7),x8) -> MULT(x6,mult(x7,x8)) MULT(x6,x7) -> MULT(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) Problem 1.5: Reduction Pairs Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: 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) -> MULT(X,Y) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [0](X) = X + 1 [U101](X1,X2) = 1 [U102](X1,X2) = 1 [U103](X) = 1 [U11](X1,X2) = X1.X2 + X1 + X2 + 1 [U111](X) = X [U12](X1,X2) = X1.X2 + X1 + X2 + 1 [U121](X) = 1 [U13](X) = X + 1 [U131](X1,X2) = 1 [U132](X) = X.X [U141](X1,X2) = 1 [U142](X) = 1 [U151](X) = 1 [U161](X) = 1 [U171](X1,X2) = X1.X2 [U172](X) = 0 [U181](X1,X2,X3) = X1.X2.X3 + X1.X3 + X1 + X2 + X3 [U182](X1,X2,X3) = X1.X3 + X2.X3 + X2 + X3 + 1 [U183](X1,X2,X3) = X1.X3 + X2.X3 + X2 + X3 + 1 [U184](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X3 [U191](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X3 [U192](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X3 [U193](X1,X2,X3) = X1.X2.X3 + X1.X3 + X1 + X2 + X3 [U194](X1,X2,X3) = X1.X2 + X1.X3 + X2.X3 + X1 + X3 [U201](X1,X2) = X1.X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 + 1 [U211](X1,X2,X3) = X1.X3 + X1 + X2 + 1 [U212](X1,X2,X3) = X1.X2 + X1 + X3 + 1 [U213](X1,X2,X3) = X1.X2 + X1.X3 + X1 + 1 [U214](X1,X2,X3) = X1.X2 + X1.X3 + X1 [U22](X1,X2,X3) = X2.X3 + X2 + X3 + 1 [U221](X1,X2,X3) = X1 + X2 + X3 + 1 [U222](X1,X2,X3) = X2 + X3 + 1 [U223](X1,X2,X3) = X1.X2 + X1.X3 + 1 [U224](X1,X2,X3) = X1.X2 + X3 + 1 [U23](X1,X2,X3) = X2.X3 + X2 + X3 + 1 [U231](X1,X2,X3) = X1.X2 + X1.X3 + X1 + 1 [U232](X1,X2,X3) = X1.X3 + X1 + X2 + 1 [U233](X1,X2,X3) = X1 + X2 + X3 + 1 [U234](X1,X2,X3) = X1.X2 + X1.X3 + X1 + 1 [U24](X1,X2,X3) = X2 + 1 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 1 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 1 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 1 [U41](X1,X2) = X1 + X2 + 1 [U42](X) = 1 [U51](X1,X2) = X1 [U52](X1,X2) = X1 [U53](X) = 1 [U61](X1,X2) = 1 [U62](X1,X2) = X1 [U63](X) = X.X [U71](X1,X2,X3) = X1 [U72](X1,X2,X3) = 1 [U73](X1,X2,X3) = 1 [U74](X1,X2,X3) = X1 [U75](X1,X2) = 1 [U76](X) = 1 [U81](X1,X2,X3) = 1 [U82](X1,X2,X3) = X1 [U83](X1,X2,X3) = X1 [U84](X1,X2,X3) = X1 [U85](X1,X2) = 1 [U86](X) = 1 [U91](X1,X2) = 1 [U92](X1,X2) = 1 [U93](X) = 1 [isBag](X) = X.X + X + 1 [isBagKind](X) = X.X + X [isBin](X) = 1 [isBinKind](X) = 1 [mult](X1,X2) = X1.X2 + X1 + X2 [plus](X1,X2) = X1 + X2 [prod](X) = X.X + X + 1 [sum](X) = X + 1 [union](X1,X2) = X1.X2 + X1 + X2 + 1 [1](X) = X + 1 [empty] = 1 [singl](X) = X.X + X + 1 [tt] = 1 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = X1.X2.X3 + X1.X3 + X1 + X2 + X3 + 1 [U192#](X1,X2,X3) = X1.X3 + X2.X3 + X1 + X2 + X3 [U193#](X1,X2,X3) = X1.X2.X3 + X1.X3 + X1 + X2 + X3 [U194#](X1,X2,X3) = X1.X2.X3 + X1.X2 + X1.X3 + X3 + 1 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = X1.X2 + X1 + X2 + 1 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.5: SCC Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: U192#(tt,X,Y) -> U193#(isBin(Y),X,Y) U193#(tt,X,Y) -> U194#(isBinKind(Y),X,Y) U194#(tt,X,Y) -> MULT(X,Y) MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> U191#(isBin(X),X,Y) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) MULT(1(X),Y) -> U191#(isBin(X),X,Y) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) MULT(mult(x6,x7),x8) -> MULT(x6,mult(x7,x8)) MULT(x6,x7) -> MULT(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) Problem 1.5: Reduction Pairs Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: MULT(mult(0(X),Y),x6) -> MULT(U181(isBin(X),X,Y),x6) MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2 [U101](X1,X2) = 2.X1 + 2.X2 + 2 [U102](X1,X2) = 2.X1 + 2 [U103](X) = 2 [U11](X1,X2) = 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = 2.X2 + 2 [U121](X) = 2 [U13](X) = X + 2 [U131](X1,X2) = X1 + X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = X1 + X2 [U142](X) = X + 1 [U151](X) = X + 1 [U161](X) = 2.X [U171](X1,X2) = X2 + 2 [U172](X) = X + 2 [U181](X1,X2,X3) = X3 + 2 [U182](X1,X2,X3) = X3 + 2 [U183](X1,X2,X3) = X3 + 2 [U184](X1,X2,X3) = X1 + 2 [U191](X1,X2,X3) = X3 + 2 [U192](X1,X2,X3) = X3 + 2 [U193](X1,X2,X3) = X3 + 2 [U194](X1,X2,X3) = X3 + 2 [U201](X1,X2) = X2 + 2 [U202](X1,X2) = X2 + 2 [U21](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 2 [U212](X1,X2,X3) = 2 [U213](X1,X2,X3) = 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U221](X1,X2,X3) = 2 [U222](X1,X2,X3) = 2 [U223](X1,X2,X3) = 2 [U224](X1,X2,X3) = 2 [U23](X1,X2,X3) = 2.X1 + X2 + 2 [U231](X1,X2,X3) = 2 [U232](X1,X2,X3) = 2 [U233](X1,X2,X3) = 2 [U234](X1,X2,X3) = 2 [U24](X1,X2,X3) = X2 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 1 [U41](X1,X2) = X1 + 2 [U42](X) = 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U72](X1,X2,X3) = X1 + 2.X3 + 2 [U73](X1,X2,X3) = 2.X3 + 2 [U74](X1,X2,X3) = 2.X1 + 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = 2.X1 + 2.X3 [U82](X1,X2,X3) = 2.X3 + 2 [U83](X1,X2,X3) = X1 + X3 + 1 [U84](X1,X2,X3) = X1 + 2 [U85](X1,X2) = 2 [U86](X) = 2 [U91](X1,X2) = X1 + X2 + 2 [U92](X1,X2) = X1 + 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = X + 1 [isBin](X) = 2.X [isBinKind](X) = X [mult](X1,X2) = X1 + X2 + 2 [plus](X1,X2) = X1 + X2 [prod](X) = X + 2 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2 [empty] = 2 [singl](X) = 2.X [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 2.X1 + 2.X2 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.5: SCC Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) MULT(mult(x6,x7),x8) -> MULT(x6,mult(x7,x8)) MULT(x6,x7) -> MULT(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) Problem 1.5: Reduction Pairs Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: MULT(mult(1(X),Y),x6) -> MULT(U191(isBin(X),X,Y),x6) MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 0 [U101](X1,X2) = X1 + 2.X2 + 1 [U102](X1,X2) = 2.X2 + 2 [U103](X) = X + 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U111](X) = 2 [U12](X1,X2) = 2.X2 + 2 [U121](X) = 2 [U13](X) = X [U131](X1,X2) = X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = X1 + 2.X2 + 2 [U142](X) = X + 2 [U151](X) = X + 1 [U161](X) = 2.X + 2 [U171](X1,X2) = 2 [U172](X) = 2 [U181](X1,X2,X3) = X3 + 2 [U182](X1,X2,X3) = X3 + 2 [U183](X1,X2,X3) = X3 + 2 [U184](X1,X2,X3) = X3 + 2 [U191](X1,X2,X3) = X3 + 2 [U192](X1,X2,X3) = X3 + 2 [U193](X1,X2,X3) = X3 + 2 [U194](X1,X2,X3) = X3 + 2 [U201](X1,X2) = X2 [U202](X1,X2) = X2 [U21](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U211](X1,X2,X3) = 2 [U212](X1,X2,X3) = 2 [U213](X1,X2,X3) = 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U221](X1,X2,X3) = 2 [U222](X1,X2,X3) = 2 [U223](X1,X2,X3) = 2 [U224](X1,X2,X3) = 2 [U23](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U231](X1,X2,X3) = 2 [U232](X1,X2,X3) = 2 [U233](X1,X2,X3) = 2 [U234](X1,X2,X3) = 2 [U24](X1,X2,X3) = X1 + 2.X2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = X1 + 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 2 [U41](X1,X2) = 2.X1 + 2.X2 + 1 [U42](X) = X + 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = X1 + 2.X3 [U72](X1,X2,X3) = 2.X3 + 2 [U73](X1,X2,X3) = 2.X3 + 2 [U74](X1,X2,X3) = X1 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X3 + 2 [U82](X1,X2,X3) = 2.X3 + 2 [U83](X1,X2,X3) = 2.X3 + 2 [U84](X1,X2,X3) = 2.X3 + 2 [U85](X1,X2) = 2.X2 + 2 [U86](X) = X [U91](X1,X2) = 2.X1 + 2 [U92](X1,X2) = 2 [U93](X) = 2 [isBag](X) = 2.X [isBagKind](X) = 2.X + 2 [isBin](X) = 2.X + 2 [isBinKind](X) = 2.X + 2 [mult](X1,X2) = X1 + X2 + 2 [plus](X1,X2) = X1 + X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2.X + 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2 [empty] = 2 [singl](X) = 2.X + 2 [tt] = 2 [z] = 0 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 2.X1 + 2.X2 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.5: SCC Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> FAxioms: mult(mult(x6,x7),x8) -> mult(x6,mult(x7,x8)) mult(x6,x7) -> mult(x7,x6) plus(plus(x6,x7),x8) -> plus(x6,plus(x7,x8)) plus(x6,x7) -> plus(x7,x6) union(union(x6,x7),x8) -> union(x6,union(x7,x8)) union(x6,x7) -> union(x7,x6) MULT(mult(x6,x7),x8) -> MULT(x6,mult(x7,x8)) MULT(x6,x7) -> MULT(x7,x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) ->->-> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) Problem 1.5: Reduction Pairs Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: MULT(mult(z,X),x6) -> MULT(U171(isBin(X),X),x6) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = 2.X1 + 2.X2 + 1 [U111](X) = 2 [U12](X1,X2) = 2.X1 + 2 [U121](X) = 2 [U13](X) = 2 [U131](X1,X2) = X1 + X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = X1 + X2 [U142](X) = X + 2 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = X2 + 2 [U172](X) = X + 2 [U181](X1,X2,X3) = X3 + 2 [U182](X1,X2,X3) = X3 + 2 [U183](X1,X2,X3) = X3 + 2 [U184](X1,X2,X3) = X1 + 2 [U191](X1,X2,X3) = X3 + 2 [U192](X1,X2,X3) = X3 + 2 [U193](X1,X2,X3) = X3 + 2 [U194](X1,X2,X3) = X3 + 2 [U201](X1,X2) = X2 + 2 [U202](X1,X2) = X2 + 2 [U21](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 2 [U212](X1,X2,X3) = 2 [U213](X1,X2,X3) = 2 [U214](X1,X2,X3) = 2 [U22](X1,X2,X3) = X1 + 2.X3 + 2 [U221](X1,X2,X3) = 2 [U222](X1,X2,X3) = 2 [U223](X1,X2,X3) = 2 [U224](X1,X2,X3) = 2 [U23](X1,X2,X3) = 2.X3 + 2 [U231](X1,X2,X3) = 2 [U232](X1,X2,X3) = 2 [U233](X1,X2,X3) = 2 [U234](X1,X2,X3) = 2 [U24](X1,X2,X3) = X1 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = 2 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = 2.X + 1 [U41](X1,X2) = 2.X2 + 2 [U42](X) = X + 2 [U51](X1,X2) = 2 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U72](X1,X2,X3) = 2.X3 + 2 [U73](X1,X2,X3) = 2.X1 + 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83](X1,X2,X3) = X1 + 2.X2 + X3 + 2 [U84](X1,X2,X3) = X1 + 2.X2 + 2 [U85](X1,X2) = X1 [U86](X) = 2 [U91](X1,X2) = 2.X1 + 2 [U92](X1,X2) = 2 [U93](X) = 2 [isBag](X) = 2.X + 2 [isBagKind](X) = 2.X [isBin](X) = 2.X + 2 [isBinKind](X) = X [mult](X1,X2) = X1 + X2 + 2 [plus](X1,X2) = X1 + X2 [prod](X) = 2.X + 2 [sum](X) = 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2 [empty] = 1 [singl](X) = 2.X + 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 2.X1 + 2.X2 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.5: SCC Processor: -> FAxioms: MULT(mult(x6,x7),x8) = MULT(x6,mult(x7,x8)) MULT(x6,x7) = MULT(x7,x6) -> Pairs: Empty -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: MULT(mult(x6,x7),x8) -> MULT(x6,x7) MULT(x6,mult(x7,x8)) -> MULT(x7,x8) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.6: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: 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) -> PROD(A) U254#(tt,A,B) -> PROD(B) PROD(union(A,B)) -> U251#(isBag(A),A,B) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X + 2 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U111](X) = 2.X + 1 [U12](X1,X2) = X1 + 2 [U121](X) = 2.X [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = 2.X1 + 2.X2 + 2 [U142](X) = X + 1 [U151](X) = X + 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = X1 + 2.X3 + 1 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = 2.X3 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 2.X3 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2.X2 + 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = X + 1 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 2 [U41](X1,X2) = 2.X1 + 2.X2 + 1 [U42](X) = X + 2 [U51](X1,X2) = 2.X1 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2.X1 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2 [U72](X1,X2,X3) = 2 [U73](X1,X2,X3) = 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85](X1,X2) = X1 + 2.X2 + 2 [U86](X) = X + 1 [U91](X1,X2) = X1 + 2.X2 + 2 [U92](X1,X2) = 2.X2 + 2 [U93](X) = 2 [isBag](X) = 2.X + 1 [isBagKind](X) = 2.X + 2 [isBin](X) = 2.X [isBinKind](X) = 2.X [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X [empty] = 1 [singl](X) = 2.X + 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U252#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U253#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U254#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = 0 [U272#](X1,X2,X3) = 0 [U273#](X1,X2,X3) = 0 [U274#](X1,X2,X3) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 2.X + 2 [SUM](X) = 0 [UNION](X1,X2) = 0 Problem 1.6: SCC Processor: -> FAxioms: Empty -> Pairs: U252#(tt,A,B) -> U253#(isBag(B),A,B) U253#(tt,A,B) -> U254#(isBagKind(B),A,B) U254#(tt,A,B) -> PROD(A) U254#(tt,A,B) -> PROD(B) PROD(union(A,B)) -> U251#(isBag(A),A,B) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.7: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: 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) -> SUM(A) U274#(tt,A,B) -> SUM(B) SUM(union(A,B)) -> U271#(isBag(A),A,B) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Usable Equations: Empty -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> Usable Rules: 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 U21(tt,V1,V2) -> U22(isBagKind(V1),V1,V2) U22(tt,V1,V2) -> U23(isBagKind(V2),V1,V2) U23(tt,V1,V2) -> U24(isBagKind(V2),V1,V2) U24(tt,V1,V2) -> U25(isBag(V1),V2) U25(tt,V2) -> U26(isBag(V2)) U26(tt) -> tt 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0](X) = 2.X + 2 [U101](X1,X2) = 2 [U102](X1,X2) = 2 [U103](X) = 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U111](X) = 2.X + 1 [U12](X1,X2) = X1 + 2 [U121](X) = 2.X [U13](X) = 2 [U131](X1,X2) = 2.X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = 2.X1 + 2.X2 + 2 [U142](X) = X + 1 [U151](X) = X + 2 [U161](X) = 2 [U171](X1,X2) = 0 [U172](X) = 0 [U181](X1,X2,X3) = 0 [U182](X1,X2,X3) = 0 [U183](X1,X2,X3) = 0 [U184](X1,X2,X3) = 0 [U191](X1,X2,X3) = 0 [U192](X1,X2,X3) = 0 [U193](X1,X2,X3) = 0 [U194](X1,X2,X3) = 0 [U201](X1,X2) = 0 [U202](X1,X2) = 0 [U21](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U211](X1,X2,X3) = 0 [U212](X1,X2,X3) = 0 [U213](X1,X2,X3) = 0 [U214](X1,X2,X3) = 0 [U22](X1,X2,X3) = X1 + 2.X3 + 1 [U221](X1,X2,X3) = 0 [U222](X1,X2,X3) = 0 [U223](X1,X2,X3) = 0 [U224](X1,X2,X3) = 0 [U23](X1,X2,X3) = 2.X3 + 2 [U231](X1,X2,X3) = 0 [U232](X1,X2,X3) = 0 [U233](X1,X2,X3) = 0 [U234](X1,X2,X3) = 0 [U24](X1,X2,X3) = 2.X3 + 2 [U241](X1,X2) = 0 [U242](X1,X2) = 0 [U25](X1,X2) = 2.X2 + 2 [U251](X1,X2,X3) = 0 [U252](X1,X2,X3) = 0 [U253](X1,X2,X3) = 0 [U254](X1,X2,X3) = 0 [U26](X) = X + 1 [U261](X1,X2) = 0 [U262](X1,X2) = 0 [U271](X1,X2,X3) = 0 [U272](X1,X2,X3) = 0 [U273](X1,X2,X3) = 0 [U274](X1,X2,X3) = 0 [U31](X) = X + 2 [U41](X1,X2) = 2.X1 + 2.X2 + 1 [U42](X) = X + 2 [U51](X1,X2) = 2.X1 [U52](X1,X2) = 2 [U53](X) = 2 [U61](X1,X2) = 2.X1 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2,X3) = 2.X1 + 2 [U72](X1,X2,X3) = 2 [U73](X1,X2,X3) = 2 [U74](X1,X2,X3) = 2 [U75](X1,X2) = 2 [U76](X) = 2 [U81](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U82](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U83](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U84](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U85](X1,X2) = X1 + 2.X2 + 2 [U86](X) = X + 1 [U91](X1,X2) = X1 + 2.X2 + 2 [U92](X1,X2) = 2.X2 + 2 [U93](X) = 2 [isBag](X) = 2.X + 1 [isBagKind](X) = 2.X + 2 [isBin](X) = 2.X [isBinKind](X) = 2.X [mult](X1,X2) = 2.X1 + 2.X2 + 2 [plus](X1,X2) = 2.X1 + 2.X2 + 2 [prod](X) = 2.X + 2 [sum](X) = 2 [union](X1,X2) = 2.X1 + 2.X2 + 2 [1](X) = 2.X [empty] = 1 [singl](X) = 2.X + 2 [tt] = 2 [z] = 2 [0#](X) = 0 [U101#](X1,X2) = 0 [U102#](X1,X2) = 0 [U103#](X) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U12#](X1,X2) = 0 [U121#](X) = 0 [U13#](X) = 0 [U131#](X1,X2) = 0 [U132#](X) = 0 [U141#](X1,X2) = 0 [U142#](X) = 0 [U151#](X) = 0 [U161#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2,X3) = 0 [U182#](X1,X2,X3) = 0 [U183#](X1,X2,X3) = 0 [U184#](X1,X2,X3) = 0 [U191#](X1,X2,X3) = 0 [U192#](X1,X2,X3) = 0 [U193#](X1,X2,X3) = 0 [U194#](X1,X2,X3) = 0 [U201#](X1,X2) = 0 [U202#](X1,X2) = 0 [U21#](X1,X2,X3) = 0 [U211#](X1,X2,X3) = 0 [U212#](X1,X2,X3) = 0 [U213#](X1,X2,X3) = 0 [U214#](X1,X2,X3) = 0 [U22#](X1,X2,X3) = 0 [U221#](X1,X2,X3) = 0 [U222#](X1,X2,X3) = 0 [U223#](X1,X2,X3) = 0 [U224#](X1,X2,X3) = 0 [U23#](X1,X2,X3) = 0 [U231#](X1,X2,X3) = 0 [U232#](X1,X2,X3) = 0 [U233#](X1,X2,X3) = 0 [U234#](X1,X2,X3) = 0 [U24#](X1,X2,X3) = 0 [U241#](X1,X2) = 0 [U242#](X1,X2) = 0 [U25#](X1,X2) = 0 [U251#](X1,X2,X3) = 0 [U252#](X1,X2,X3) = 0 [U253#](X1,X2,X3) = 0 [U254#](X1,X2,X3) = 0 [U26#](X) = 0 [U261#](X1,X2) = 0 [U262#](X1,X2) = 0 [U271#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U272#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U273#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U274#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U31#](X) = 0 [U41#](X1,X2) = 0 [U42#](X) = 0 [U51#](X1,X2) = 0 [U52#](X1,X2) = 0 [U53#](X) = 0 [U61#](X1,X2) = 0 [U62#](X1,X2) = 0 [U63#](X) = 0 [U71#](X1,X2,X3) = 0 [U72#](X1,X2,X3) = 0 [U73#](X1,X2,X3) = 0 [U74#](X1,X2,X3) = 0 [U75#](X1,X2) = 0 [U76#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U83#](X1,X2,X3) = 0 [U84#](X1,X2,X3) = 0 [U85#](X1,X2) = 0 [U86#](X) = 0 [U91#](X1,X2) = 0 [U92#](X1,X2) = 0 [U93#](X) = 0 [ISBAG](X) = 0 [ISBAGKIND](X) = 0 [ISBIN](X) = 0 [ISBINKIND](X) = 0 [MULT](X1,X2) = 0 [PLUS](X1,X2) = 0 [PROD](X) = 0 [SUM](X) = 2.X + 2 [UNION](X1,X2) = 0 Problem 1.7: SCC Processor: -> FAxioms: Empty -> Pairs: U272#(tt,A,B) -> U273#(isBag(B),A,B) U273#(tt,A,B) -> U274#(isBagKind(B),A,B) U274#(tt,A,B) -> SUM(A) U274#(tt,A,B) -> SUM(B) SUM(union(A,B)) -> U271#(isBag(A),A,B) -> EAxioms: mult(mult(x6,x7),x8) = mult(x6,mult(x7,x8)) mult(x6,x7) = mult(x7,x6) plus(plus(x6,x7),x8) = plus(x6,plus(x7,x8)) plus(x6,x7) = plus(x7,x6) union(union(x6,x7),x8) = union(x6,union(x7,x8)) union(x6,x7) = union(x7,x6) -> Rules: 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(union(V1,V2)) -> U21(isBagKind(V1),V1,V2) isBag(empty) -> tt isBag(singl(V1)) -> U11(isBinKind(V1),V1) isBagKind(union(V1,V2)) -> U41(isBagKind(V1),V2) isBagKind(empty) -> tt isBagKind(singl(V1)) -> U31(isBinKind(V1)) isBin(0(V1)) -> U51(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) isBin(1(V1)) -> U61(isBinKind(V1),V1) isBin(z) -> tt isBinKind(0(V1)) -> U111(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)) isBinKind(1(V1)) -> U121(isBinKind(V1)) isBinKind(z) -> tt mult(0(X),Y) -> U181(isBin(X),X,Y) mult(1(X),Y) -> U191(isBin(X),X,Y) mult(z,X) -> U171(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) plus(z,X) -> U201(isBin(X),X) prod(union(A,B)) -> U251(isBag(A),A,B) prod(empty) -> 1(z) prod(singl(X)) -> U241(isBin(X),X) sum(union(A,B)) -> U271(isBag(A),A,B) sum(empty) -> 0(z) sum(singl(X)) -> U261(isBin(X),X) union(empty,X) -> X union(X,empty) -> X -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite.