YES Problem 1: (VAR A B C U U' V1 V2 X) (THEORY (AC _and_ _or_ _xor_)) (RULES U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) ) Problem 1: Dependency Pairs Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) _OR_(_or_(x8,x9),x10) = _OR_(x8,_or_(x9,x10)) _OR_(x8,x9) = _OR_(x9,x8) _XOR_(_xor_(x8,x9),x10) = _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) = _XOR_(x9,x8) -> Pairs: U101#(tt,A,B) -> U102#(isBool(B),A,B) U101#(tt,A,B) -> ISBOOL(B) U102#(tt,A,B) -> _AND_(A,B) U102#(tt,A,B) -> _XOR_(_and_(A,B),_xor_(A,B)) U102#(tt,A,B) -> _XOR_(A,B) U131#(tt,B,U',U) -> U132#(isS(U'),B,U',U) U132#(tt,B,U',U) -> U133#(isS(U),B,U') U133#(tt,B,U') -> U134#(equal(_isNotEqualTo_(B,true),true),U') U133#(tt,B,U') -> _ISNOTEQUALTO_(B,true) U133#(tt,B,U') -> EQUAL(_isNotEqualTo_(B,true),true) U141#(tt,U) -> U142#(isS(U),U) U151#(tt,V2) -> U152#(isBool(V2)) U151#(tt,V2) -> ISBOOL(V2) U161#(tt,V2) -> U162#(isBool(V2)) U161#(tt,V2) -> ISBOOL(V2) U171#(tt,V2) -> U172#(isUniversal(V2)) U181#(tt,V2) -> U182#(isUniversal(V2)) U191#(tt,V2) -> U192#(isBool(V2)) U191#(tt,V2) -> ISBOOL(V2) U201#(tt,V2) -> U202#(isBool(V2)) U201#(tt,V2) -> ISBOOL(V2) U21#(tt,A,B,C) -> U22#(isBool(B),A,B,C) U21#(tt,A,B,C) -> ISBOOL(B) U22#(tt,A,B,C) -> U23#(isBool(C),A,B,C) U22#(tt,A,B,C) -> ISBOOL(C) U221#(tt,A) -> _XOR_(A,true) U23#(tt,A,B,C) -> _AND_(A,B) U23#(tt,A,B,C) -> _AND_(A,C) U23#(tt,A,B,C) -> _XOR_(_and_(A,B),_and_(A,C)) U51#(tt,A,B) -> U52#(isBool(B),A,B) U51#(tt,A,B) -> ISBOOL(B) U52#(tt,A,B) -> _AND_(A,B) U52#(tt,A,B) -> _XOR_(A,_and_(A,B)) U52#(tt,A,B) -> NOT_(_xor_(A,_and_(A,B))) U61#(tt,U',U) -> U62#(isS(U),U',U) U62#(tt,U',U) -> U63#(equal(_isNotEqualTo_(U,U'),true)) U62#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U62#(tt,U',U) -> EQUAL(_isNotEqualTo_(U,U'),true) U81#(tt,U',U) -> U82#(isS(U),U',U) U82#(tt,U',U) -> _ISEQUALTO_(U,U') U82#(tt,U',U) -> IF_THEN_ELSE_FI(_isEqualTo_(U,U'),false,true) _AND_(_and_(false,A),x8) -> U31#(isBool(A)) _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(false,A),x8) -> ISBOOL(A) _AND_(_and_(true,A),x8) -> U41#(isBool(A),A) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(true,A),x8) -> ISBOOL(A) _AND_(_and_(A,_xor_(B,C)),x8) -> U21#(isBool(A),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(A) _AND_(_and_(A,A),x8) -> U11#(isBool(A),A) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(_and_(A,A),x8) -> ISBOOL(A) _AND_(false,A) -> U31#(isBool(A)) _AND_(false,A) -> ISBOOL(A) _AND_(true,A) -> U41#(isBool(A),A) _AND_(true,A) -> ISBOOL(A) _AND_(A,_xor_(B,C)) -> U21#(isBool(A),A,B,C) _AND_(A,_xor_(B,C)) -> ISBOOL(A) _AND_(A,A) -> U11#(isBool(A),A) _AND_(A,A) -> ISBOOL(A) _IMPLIES_(A,B) -> U51#(isBool(A),A,B) _IMPLIES_(A,B) -> ISBOOL(A) _ISEQUALTO_(U,U) -> U71#(isS(U)) _ISEQUALTO_(U,U') -> U61#(isS(U'),U',U) _ISNOTEQUALTO_(U,U) -> U91#(isS(U)) _ISNOTEQUALTO_(U,U') -> U81#(isS(U'),U',U) _OR_(_or_(A,B),x8) -> U101#(isBool(A),A,B) _OR_(_or_(A,B),x8) -> _OR_(U101(isBool(A),A,B),x8) _OR_(_or_(A,B),x8) -> ISBOOL(A) _OR_(A,B) -> U101#(isBool(A),A,B) _OR_(A,B) -> ISBOOL(A) _XOR_(_xor_(false,A),x8) -> U121#(isBool(A),A) _XOR_(_xor_(false,A),x8) -> _XOR_(U121(isBool(A),A),x8) _XOR_(_xor_(false,A),x8) -> ISBOOL(A) _XOR_(_xor_(A,A),x8) -> U111#(isBool(A)) _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) _XOR_(_xor_(A,A),x8) -> ISBOOL(A) _XOR_(false,A) -> U121#(isBool(A),A) _XOR_(false,A) -> ISBOOL(A) _XOR_(A,A) -> U111#(isBool(A)) _XOR_(A,A) -> ISBOOL(A) IF_THEN_ELSE_FI(true,U,U') -> U141#(isS(U'),U) IF_THEN_ELSE_FI(B,U,U') -> U131#(isBool(B),B,U',U) IF_THEN_ELSE_FI(B,U,U') -> ISBOOL(B) ISBOOL(_and_(V1,V2)) -> U151#(isBool(V1),V2) ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> U161#(isBool(V1),V2) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_isEqualTo_(V1,V2)) -> U171#(isUniversal(V1),V2) ISBOOL(_isNotEqualTo_(V1,V2)) -> U181#(isUniversal(V1),V2) ISBOOL(_or_(V1,V2)) -> U191#(isBool(V1),V2) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> U201#(isBool(V1),V2) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(not_(V1)) -> U211#(isBool(V1)) ISBOOL(not_(V1)) -> ISBOOL(V1) NOT_(A) -> U221#(isBool(A),A) NOT_(A) -> ISBOOL(A) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) _OR_(_or_(x8,x9),x10) -> _OR_(x8,x9) _OR_(x8,_or_(x9,x10)) -> _OR_(x9,x10) _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) Problem 1: SCC Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) _OR_(_or_(x8,x9),x10) = _OR_(x8,_or_(x9,x10)) _OR_(x8,x9) = _OR_(x9,x8) _XOR_(_xor_(x8,x9),x10) = _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) = _XOR_(x9,x8) -> Pairs: U101#(tt,A,B) -> U102#(isBool(B),A,B) U101#(tt,A,B) -> ISBOOL(B) U102#(tt,A,B) -> _AND_(A,B) U102#(tt,A,B) -> _XOR_(_and_(A,B),_xor_(A,B)) U102#(tt,A,B) -> _XOR_(A,B) U131#(tt,B,U',U) -> U132#(isS(U'),B,U',U) U132#(tt,B,U',U) -> U133#(isS(U),B,U') U133#(tt,B,U') -> U134#(equal(_isNotEqualTo_(B,true),true),U') U133#(tt,B,U') -> _ISNOTEQUALTO_(B,true) U133#(tt,B,U') -> EQUAL(_isNotEqualTo_(B,true),true) U141#(tt,U) -> U142#(isS(U),U) U151#(tt,V2) -> U152#(isBool(V2)) U151#(tt,V2) -> ISBOOL(V2) U161#(tt,V2) -> U162#(isBool(V2)) U161#(tt,V2) -> ISBOOL(V2) U171#(tt,V2) -> U172#(isUniversal(V2)) U181#(tt,V2) -> U182#(isUniversal(V2)) U191#(tt,V2) -> U192#(isBool(V2)) U191#(tt,V2) -> ISBOOL(V2) U201#(tt,V2) -> U202#(isBool(V2)) U201#(tt,V2) -> ISBOOL(V2) U21#(tt,A,B,C) -> U22#(isBool(B),A,B,C) U21#(tt,A,B,C) -> ISBOOL(B) U22#(tt,A,B,C) -> U23#(isBool(C),A,B,C) U22#(tt,A,B,C) -> ISBOOL(C) U221#(tt,A) -> _XOR_(A,true) U23#(tt,A,B,C) -> _AND_(A,B) U23#(tt,A,B,C) -> _AND_(A,C) U23#(tt,A,B,C) -> _XOR_(_and_(A,B),_and_(A,C)) U51#(tt,A,B) -> U52#(isBool(B),A,B) U51#(tt,A,B) -> ISBOOL(B) U52#(tt,A,B) -> _AND_(A,B) U52#(tt,A,B) -> _XOR_(A,_and_(A,B)) U52#(tt,A,B) -> NOT_(_xor_(A,_and_(A,B))) U61#(tt,U',U) -> U62#(isS(U),U',U) U62#(tt,U',U) -> U63#(equal(_isNotEqualTo_(U,U'),true)) U62#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U62#(tt,U',U) -> EQUAL(_isNotEqualTo_(U,U'),true) U81#(tt,U',U) -> U82#(isS(U),U',U) U82#(tt,U',U) -> _ISEQUALTO_(U,U') U82#(tt,U',U) -> IF_THEN_ELSE_FI(_isEqualTo_(U,U'),false,true) _AND_(_and_(false,A),x8) -> U31#(isBool(A)) _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(false,A),x8) -> ISBOOL(A) _AND_(_and_(true,A),x8) -> U41#(isBool(A),A) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(true,A),x8) -> ISBOOL(A) _AND_(_and_(A,_xor_(B,C)),x8) -> U21#(isBool(A),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(A) _AND_(_and_(A,A),x8) -> U11#(isBool(A),A) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(_and_(A,A),x8) -> ISBOOL(A) _AND_(false,A) -> U31#(isBool(A)) _AND_(false,A) -> ISBOOL(A) _AND_(true,A) -> U41#(isBool(A),A) _AND_(true,A) -> ISBOOL(A) _AND_(A,_xor_(B,C)) -> U21#(isBool(A),A,B,C) _AND_(A,_xor_(B,C)) -> ISBOOL(A) _AND_(A,A) -> U11#(isBool(A),A) _AND_(A,A) -> ISBOOL(A) _IMPLIES_(A,B) -> U51#(isBool(A),A,B) _IMPLIES_(A,B) -> ISBOOL(A) _ISEQUALTO_(U,U) -> U71#(isS(U)) _ISEQUALTO_(U,U') -> U61#(isS(U'),U',U) _ISNOTEQUALTO_(U,U) -> U91#(isS(U)) _ISNOTEQUALTO_(U,U') -> U81#(isS(U'),U',U) _OR_(_or_(A,B),x8) -> U101#(isBool(A),A,B) _OR_(_or_(A,B),x8) -> _OR_(U101(isBool(A),A,B),x8) _OR_(_or_(A,B),x8) -> ISBOOL(A) _OR_(A,B) -> U101#(isBool(A),A,B) _OR_(A,B) -> ISBOOL(A) _XOR_(_xor_(false,A),x8) -> U121#(isBool(A),A) _XOR_(_xor_(false,A),x8) -> _XOR_(U121(isBool(A),A),x8) _XOR_(_xor_(false,A),x8) -> ISBOOL(A) _XOR_(_xor_(A,A),x8) -> U111#(isBool(A)) _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) _XOR_(_xor_(A,A),x8) -> ISBOOL(A) _XOR_(false,A) -> U121#(isBool(A),A) _XOR_(false,A) -> ISBOOL(A) _XOR_(A,A) -> U111#(isBool(A)) _XOR_(A,A) -> ISBOOL(A) IF_THEN_ELSE_FI(true,U,U') -> U141#(isS(U'),U) IF_THEN_ELSE_FI(B,U,U') -> U131#(isBool(B),B,U',U) IF_THEN_ELSE_FI(B,U,U') -> ISBOOL(B) ISBOOL(_and_(V1,V2)) -> U151#(isBool(V1),V2) ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> U161#(isBool(V1),V2) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_isEqualTo_(V1,V2)) -> U171#(isUniversal(V1),V2) ISBOOL(_isNotEqualTo_(V1,V2)) -> U181#(isUniversal(V1),V2) ISBOOL(_or_(V1,V2)) -> U191#(isBool(V1),V2) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> U201#(isBool(V1),V2) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(not_(V1)) -> U211#(isBool(V1)) ISBOOL(not_(V1)) -> ISBOOL(V1) NOT_(A) -> U221#(isBool(A),A) NOT_(A) -> ISBOOL(A) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) _OR_(_or_(x8,x9),x10) -> _OR_(x8,x9) _OR_(x8,_or_(x9,x10)) -> _OR_(x9,x10) _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U151#(tt,V2) -> ISBOOL(V2) U161#(tt,V2) -> ISBOOL(V2) U191#(tt,V2) -> ISBOOL(V2) U201#(tt,V2) -> ISBOOL(V2) ISBOOL(_and_(V1,V2)) -> U151#(isBool(V1),V2) ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> U161#(isBool(V1),V2) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_or_(V1,V2)) -> U191#(isBool(V1),V2) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> U201#(isBool(V1),V2) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(not_(V1)) -> ISBOOL(V1) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: Empty ->->Cycle: ->->-> Pairs: _XOR_(_xor_(false,A),x8) -> _XOR_(U121(isBool(A),A),x8) _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) -> _XOR_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) ->->Cycle: ->->-> Pairs: U21#(tt,A,B,C) -> U22#(isBool(B),A,B,C) U22#(tt,A,B,C) -> U23#(isBool(C),A,B,C) U23#(tt,A,B,C) -> _AND_(A,B) U23#(tt,A,B,C) -> _AND_(A,C) _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> U21#(isBool(A),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(isBool(A),A,B,C) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _AND_(_and_(x8,x9),x10) -> _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) -> _AND_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->->Cycle: ->->-> Pairs: _OR_(_or_(A,B),x8) -> _OR_(U101(isBool(A),A,B),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _OR_(_or_(x8,x9),x10) -> _OR_(x8,_or_(x9,x10)) _OR_(x8,x9) -> _OR_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _OR_(_or_(x8,x9),x10) -> _OR_(x8,x9) _OR_(x8,_or_(x9,x10)) -> _OR_(x9,x10) The problem is decomposed in 4 subproblems. Problem 1.1: Subterm Processor: -> FAxioms: Empty -> Pairs: U151#(tt,V2) -> ISBOOL(V2) U161#(tt,V2) -> ISBOOL(V2) U191#(tt,V2) -> ISBOOL(V2) U201#(tt,V2) -> ISBOOL(V2) ISBOOL(_and_(V1,V2)) -> U151#(isBool(V1),V2) ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> U161#(isBool(V1),V2) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_or_(V1,V2)) -> U191#(isBool(V1),V2) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> U201#(isBool(V1),V2) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(not_(V1)) -> ISBOOL(V1) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: Empty ->Projection: pi(U151#) = [2] pi(U161#) = [2] pi(U191#) = [2] pi(U201#) = [2] pi(ISBOOL) = [1] Problem 1.1: SCC Processor: -> FAxioms: Empty -> Pairs: U151#(tt,V2) -> ISBOOL(V2) U161#(tt,V2) -> ISBOOL(V2) U191#(tt,V2) -> ISBOOL(V2) U201#(tt,V2) -> ISBOOL(V2) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Reduction Pairs Processor: -> FAxioms: _XOR_(_xor_(x8,x9),x10) = _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) = _XOR_(x9,x8) -> Pairs: _XOR_(_xor_(false,A),x8) -> _XOR_(U121(isBool(A),A),x8) _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U211(tt) -> tt _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = 0 [U111](X) = 2 [U121](X1,X2) = X2 + 1 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = X1 + 2.X2 + 2 [U152](X) = 2.X [U161](X1,X2) = 2.X1 + X2 [U162](X) = X [U171](X1,X2) = 2.X2 + 1 [U172](X) = 2.X [U181](X1,X2) = 2.X2 + 2 [U182](X) = X + 1 [U191](X1,X2) = 2.X1 + 2.X2 [U192](X) = 2 [U201](X1,X2) = X1 + X2 [U202](X) = 2 [U21](X1,X2,X3,X4) = 0 [U211](X) = X + 2 [U22](X1,X2,X3,X4) = 0 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 2.X1 + 2.X2 + 2 [_implies_](X1,X2) = 2.X1 + X2 + 2 [_isEqualTo_](X1,X2) = X1 + 2.X2 + 2 [_isNotEqualTo_](X1,X2) = X1 + 2.X2 [_or_](X1,X2) = 2.X1 + 2.X2 + 2 [_xor_](X1,X2) = X1 + X2 + 2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = X + 2 [not_](X) = 2.X + 2 [false] = 0 [isS](X) = 0 [isUniversal](X) = X [true] = 1 [tt] = 2 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = 0 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 2.X1 + 2.X2 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.2: SCC Processor: -> FAxioms: _XOR_(_xor_(x8,x9),x10) = _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) = _XOR_(x9,x8) -> Pairs: _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) -> _XOR_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) Problem 1.2: Reduction Pairs Processor: -> FAxioms: _XOR_(_xor_(x8,x9),x10) = _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) = _XOR_(x9,x8) -> Pairs: _XOR_(_xor_(A,A),x8) -> _XOR_(U111(isBool(A)),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U211(tt) -> tt _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = 0 [U111](X) = 1 [U121](X1,X2) = X2 + 2 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = X1 + 2 [U152](X) = 2 [U161](X1,X2) = X1 + X2 + 2 [U162](X) = 2 [U171](X1,X2) = X1 + 2.X2 + 2 [U172](X) = X + 2 [U181](X1,X2) = X1 + X2 + 1 [U182](X) = 2 [U191](X1,X2) = 2.X1 + 2.X2 + 2 [U192](X) = X + 2 [U201](X1,X2) = X1 + 2.X2 [U202](X) = X [U21](X1,X2,X3,X4) = 0 [U211](X) = X + 2 [U22](X1,X2,X3,X4) = 0 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1 + 2.X2 + 1 [_implies_](X1,X2) = X1 + X2 + 1 [_isEqualTo_](X1,X2) = 2.X1 + 2.X2 + 2 [_isNotEqualTo_](X1,X2) = 2.X1 + X2 + 2 [_or_](X1,X2) = 2.X1 + 2.X2 + 2 [_xor_](X1,X2) = X1 + X2 + 2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 2.X [not_](X) = X + 2 [false] = 1 [isS](X) = 0 [isUniversal](X) = 2.X + 2 [true] = 2 [tt] = 2 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = 0 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 2.X1 + 2.X2 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.2: SCC Processor: -> FAxioms: _XOR_(_xor_(x8,x9),x10) = _XOR_(x8,_xor_(x9,x10)) _XOR_(x8,x9) = _XOR_(x9,x8) -> Pairs: Empty -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _XOR_(_xor_(x8,x9),x10) -> _XOR_(x8,x9) _XOR_(x8,_xor_(x9,x10)) -> _XOR_(x9,x10) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Reduction Pairs Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: U21#(tt,A,B,C) -> U22#(isBool(B),A,B,C) U22#(tt,A,B,C) -> U23#(isBool(C),A,B,C) U23#(tt,A,B,C) -> _AND_(A,B) U23#(tt,A,B,C) -> _AND_(A,C) _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> U21#(isBool(A),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(isBool(A),A,B,C) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = X2 [U111](X) = 1 [U121](X1,X2) = X1 + X2 + 1 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = X1 [U152](X) = 1 [U161](X1,X2) = X1 [U162](X) = X [U171](X1,X2) = X1.X2 + X1 [U172](X) = X + 1 [U181](X1,X2) = X1.X2 + X1 [U182](X) = X.X + X [U191](X1,X2) = X1 [U192](X) = X [U201](X1,X2) = X1 [U202](X) = 1 [U21](X1,X2,X3,X4) = X1.X2.X3 + X1.X2.X4 + X1.X2 + X1 + X2 + X3 + X4 [U211](X) = X.X [U22](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X2.X4 + X1 + X2 + X3 + X4 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X1.X3 + X1.X4 + X2.X4 + X2 + 1 [U31](X) = X.X [U41](X1,X2) = X1.X2 + X2 + 1 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1.X2 + X1 + X2 [_implies_](X1,X2) = X1.X2 + X1 + X2 + 1 [_isEqualTo_](X1,X2) = X1.X2 + X2 [_isNotEqualTo_](X1,X2) = X1.X2 + 1 [_or_](X1,X2) = X1 + X2 + 1 [_xor_](X1,X2) = X1 + X2 + 1 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1 [not_](X) = X.X [false] = 1 [isS](X) = 0 [isUniversal](X) = 0 [true] = 1 [tt] = 1 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = X1.X2.X3 + X1.X2.X4 + X1.X2 + X1.X4 + X1 + X2 + X3 + 1 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X2.X4 + X1 + X2 + X3 + X4 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X1.X3 + X1.X4 + X2.X4 + X2 + 1 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = X1.X2 + X1 + X2 + 1 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: U22#(tt,A,B,C) -> U23#(isBool(C),A,B,C) U23#(tt,A,B,C) -> _AND_(A,B) U23#(tt,A,B,C) -> _AND_(A,C) _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> U21#(isBool(A),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(isBool(A),A,B,C) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _AND_(_and_(x8,x9),x10) -> _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) -> _AND_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) Problem 1.3: Reduction Pairs Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Interpretation type: Simple mixed ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 1 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = X1.X2 + X2 [U111](X) = 1 [U121](X1,X2) = X1.X2 + 1 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = 1 [U152](X) = 1 [U161](X1,X2) = X1 [U162](X) = 1 [U171](X1,X2) = 1 [U172](X) = X [U181](X1,X2) = X1 [U182](X) = 1 [U191](X1,X2) = X1 [U192](X) = 1 [U201](X1,X2) = X1 [U202](X) = 1 [U21](X1,X2,X3,X4) = X1.X2.X4 + X1.X2 + X1.X4 + X2.X3 + X2 + X3 + 1 [U211](X) = 1 [U22](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X2.X4 + X2 + X3 + X4 + 1 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X1.X4 + X2.X4 + X1 + X2 + X3 [U31](X) = X.X [U41](X1,X2) = X2 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1.X2 + X1 + X2 [_implies_](X1,X2) = X1.X2 + X2 + 1 [_isEqualTo_](X1,X2) = X2 + 1 [_isNotEqualTo_](X1,X2) = X2 [_or_](X1,X2) = X1.X2 + X1 + X2 [_xor_](X1,X2) = X1 + X2 + 1 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1 [not_](X) = 0 [false] = 1 [isS](X) = 0 [isUniversal](X) = 1 [true] = 1 [tt] = 1 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = X1.X2 + X1 + X2 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _AND_(_and_(x8,x9),x10) -> _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) -> _AND_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) Problem 1.3: Reduction Pairs Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(false,A),x8) -> _AND_(U31(isBool(A)),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = 2.X2 + 1/2 [U111](X) = 2/3 [U121](X1,X2) = X2 + 3/2 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = 1/2.X1 + 3/2.X2 + 2/3 [U152](X) = 2/3 [U161](X1,X2) = 1/2.X1 + 3/2.X2 + 1/2 [U162](X) = 0 [U171](X1,X2) = 3.X1.X2 + 1/3.X2 + 3/2 [U172](X) = 1/3 [U181](X1,X2) = 2/3.X1 + X2 + 1/2 [U182](X) = 2/3.X.X [U191](X1,X2) = 1 [U192](X) = 0 [U201](X1,X2) = 3/2.X2 + 3 [U202](X) = 1/2 [U21](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U211](X) = 1/3.X [U22](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U31](X) = 1/3 [U41](X1,X2) = 3/2.X2 + 2/3 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 3/2.X1.X2 + 3/2.X1 + 3/2.X2 + 1/2 [_implies_](X1,X2) = 2.X1.X2 + 3.X1 + 3.X2 + 3/2 [_isEqualTo_](X1,X2) = 2/3.X1.X2 + 2.X1 + 1/3.X2 + 2/3 [_isNotEqualTo_](X1,X2) = 3/2.X1.X2 + 2.X2 + 2/3 [_or_](X1,X2) = 2/3.X1.X2 + 3.X1 + X2 + 1/2 [_xor_](X1,X2) = X1 + X2 + 2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1/3.X.X + X + 2 [not_](X) = 1/2.X.X + 2/3.X + 2/3 [false] = 0 [isS](X) = 0 [isUniversal](X) = 0 [true] = 3 [tt] = 0 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = 3/2.X1.X2 + 3/2.X1 + 3/2.X2 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _AND_(_and_(x8,x9),x10) -> _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) -> _AND_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) Problem 1.3: Reduction Pairs Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(isBool(A),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = 3/2.X1.X2 + X2 [U111](X) = 2 [U121](X1,X2) = X2 + 2/3 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = X1 + 1/3.X2 [U152](X) = 1/3.X + 1/2 [U161](X1,X2) = 1/2.X1.X2 + 1/3.X2 + 1/2 [U162](X) = X [U171](X1,X2) = 3.X1.X2 + 3/2.X1 + 2/3.X2 + 2/3 [U172](X) = 1 [U181](X1,X2) = X1.X2 + 2.X1 + 1/3.X2 + 2 [U182](X) = 2.X.X + 1/3.X + 3 [U191](X1,X2) = 2/3.X1.X2 + 3/2.X2 + 2 [U192](X) = 1/2.X + 2/3 [U201](X1,X2) = X1 + 2/3.X2 + 3/2 [U202](X) = 2/3.X + 1 [U21](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 3.X1 + 2.X2 + X3 + X4 + 1 [U211](X) = 2/3.X.X + 1/2 [U22](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 3 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 3 [U31](X) = 3/2.X + 1 [U41](X1,X2) = X2 + 3 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 3.X1.X2 + X1 + X2 [_implies_](X1,X2) = 3.X1.X2 + 2.X1 + 2.X2 + 1/2 [_isEqualTo_](X1,X2) = 2.X1 + X2 + 2/3 [_isNotEqualTo_](X1,X2) = 1/3.X1.X2 + 2/3.X1 + 2/3.X2 + 3 [_or_](X1,X2) = 3.X1.X2 + X1 + 3.X2 + 3 [_xor_](X1,X2) = X1 + X2 + 3 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 2/3.X + 1/2 [not_](X) = 1/2.X.X + 3.X + 1/3 [false] = 2 [isS](X) = 0 [isUniversal](X) = 0 [true] = 3 [tt] = 2/3 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = X1.X2 + 1/3.X1 + 1/3.X2 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> FAxioms: _and_(_and_(x8,x9),x10) -> _and_(x8,_and_(x9,x10)) _and_(x8,x9) -> _and_(x9,x8) _or_(_or_(x8,x9),x10) -> _or_(x8,_or_(x9,x10)) _or_(x8,x9) -> _or_(x9,x8) _xor_(_xor_(x8,x9),x10) -> _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) -> _xor_(x9,x8) _AND_(_and_(x8,x9),x10) -> _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) -> _AND_(x9,x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) ->->-> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) Problem 1.3: Reduction Pairs Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [U101](X1,X2,X3) = 0 [U102](X1,X2,X3) = 0 [U11](X1,X2) = X2 + 1/3 [U111](X) = 1/3 [U121](X1,X2) = X2 + 1 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = X1.X2 + 1/2.X1 + 2.X2 + 2/3 [U152](X) = 2/3 [U161](X1,X2) = 1/3.X2 + 2/3 [U162](X) = 0 [U171](X1,X2) = 2/3.X2 + 1/2 [U172](X) = 1/2 [U181](X1,X2) = X2 + 1 [U182](X) = 1 [U191](X1,X2) = 1/2.X1 + 2/3.X2 + 2 [U192](X) = 0 [U201](X1,X2) = 1/3.X1 + 1/2.X2 + 1 [U202](X) = 2/3 [U21](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U211](X) = 1/3.X [U22](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U31](X) = 1/3 [U41](X1,X2) = 2.X2 + 1 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 3/2.X1.X2 + 3/2.X1 + 3/2.X2 + 1/2 [_implies_](X1,X2) = 1/2.X1.X2 + 3.X2 + 2/3 [_isEqualTo_](X1,X2) = X1.X2 + 1/3.X1 + 2.X2 + 1/3 [_isNotEqualTo_](X1,X2) = 1/3.X1 + 2/3.X2 + 2/3 [_or_](X1,X2) = 3.X1 + X2 + 3/2 [_xor_](X1,X2) = X1 + X2 + 2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 2.X.X + 1/3 [not_](X) = 1/2.X.X + 1/3 [false] = 1/3 [isS](X) = 0 [isUniversal](X) = 2.X [true] = 1/3 [tt] = 0 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = 1/3.X1.X2 + 1/3.X1 + 1/3.X2 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.3: SCC Processor: -> FAxioms: _AND_(_and_(x8,x9),x10) = _AND_(x8,_and_(x9,x10)) _AND_(x8,x9) = _AND_(x9,x8) -> Pairs: Empty -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Reduction Pairs Processor: -> FAxioms: _OR_(_or_(x8,x9),x10) = _OR_(x8,_or_(x9,x10)) _OR_(x8,x9) = _OR_(x9,x8) -> Pairs: _OR_(_or_(A,B),x8) -> _OR_(U101(isBool(A),A,B),x8) -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Usable Equations: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> Usable Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt -> SRules: _OR_(_or_(x8,x9),x10) -> _OR_(x8,x9) _OR_(x8,_or_(x9,x10)) -> _OR_(x9,x10) ->Interpretation type: Simple mixed ->Coefficients: All rationals ->Dimension: 1 ->Bound: 3 ->Interpretation: [U101](X1,X2,X3) = 3.X2.X3 + 3.X2 + 3.X3 + 1 [U102](X1,X2,X3) = 3.X2.X3 + 3.X2 + 3.X3 + 2/3 [U11](X1,X2) = X2 [U111](X) = 1/3 [U121](X1,X2) = X2 + 2/3 [U131](X1,X2,X3,X4) = 0 [U132](X1,X2,X3,X4) = 0 [U133](X1,X2,X3) = 0 [U134](X1,X2) = 0 [U141](X1,X2) = 0 [U142](X1,X2) = 0 [U151](X1,X2) = 3/2.X1.X2 + X1 [U152](X) = 1/3 [U161](X1,X2) = 1/3.X1.X2 + X1 + 2/3.X2 + 2 [U162](X) = 1/3 [U171](X1,X2) = 3.X1.X2 + 3/2.X1 + X2 [U172](X) = 1/2 [U181](X1,X2) = 3.X2 + 1 [U182](X) = 1 [U191](X1,X2) = X1.X2 + 2/3.X1 + X2 + 2/3 [U192](X) = 1/3 [U201](X1,X2) = 3.X2 + 3 [U202](X) = 3 [U21](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 1/3 [U211](X) = 1/3 [U22](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 1/3 [U221](X1,X2) = 0 [U23](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 1/3 [U31](X) = 1/3 [U41](X1,X2) = 3.X2 + 2/3 [U51](X1,X2,X3) = 0 [U52](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X1,X2,X3) = 0 [U63](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 3.X1.X2 + X1 + X2 [_implies_](X1,X2) = 1/3.X1.X2 + 2.X1 + 1/2.X2 + 2 [_isEqualTo_](X1,X2) = 2.X1.X2 + 2.X1 + 1/2.X2 [_isNotEqualTo_](X1,X2) = 1/2.X1.X2 + 1/3.X1 + 3.X2 + 2/3 [_or_](X1,X2) = 3.X1.X2 + 3.X1 + 3.X2 + 2 [_xor_](X1,X2) = X1 + X2 + 1/3 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1/3.X.X + 3.X + 2 [not_](X) = 2.X.X + 1/2 [false] = 1/3 [isS](X) = 0 [isUniversal](X) = 1/2.X.X [true] = 1 [tt] = 1/3 [U101#](X1,X2,X3) = 0 [U102#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3,X4) = 0 [U132#](X1,X2,X3,X4) = 0 [U133#](X1,X2,X3) = 0 [U134#](X1,X2) = 0 [U141#](X1,X2) = 0 [U142#](X1,X2) = 0 [U151#](X1,X2) = 0 [U152#](X) = 0 [U161#](X1,X2) = 0 [U162#](X) = 0 [U171#](X1,X2) = 0 [U172#](X) = 0 [U181#](X1,X2) = 0 [U182#](X) = 0 [U191#](X1,X2) = 0 [U192#](X) = 0 [U201#](X1,X2) = 0 [U202#](X) = 0 [U21#](X1,X2,X3,X4) = 0 [U211#](X) = 0 [U22#](X1,X2,X3,X4) = 0 [U221#](X1,X2) = 0 [U23#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U52#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X1,X2,X3) = 0 [U63#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 0 [U82#](X1,X2,X3) = 0 [U91#](X) = 0 [_AND_](X1,X2) = 0 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 0 [_ISNOTEQUALTO_](X1,X2) = 0 [_OR_](X1,X2) = 2.X1.X2 + 2.X1 + 2.X2 [_XOR_](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.4: SCC Processor: -> FAxioms: _OR_(_or_(x8,x9),x10) = _OR_(x8,_or_(x9,x10)) _OR_(x8,x9) = _OR_(x9,x8) -> Pairs: Empty -> EAxioms: _and_(_and_(x8,x9),x10) = _and_(x8,_and_(x9,x10)) _and_(x8,x9) = _and_(x9,x8) _or_(_or_(x8,x9),x10) = _or_(x8,_or_(x9,x10)) _or_(x8,x9) = _or_(x9,x8) _xor_(_xor_(x8,x9),x10) = _xor_(x8,_xor_(x9,x10)) _xor_(x8,x9) = _xor_(x9,x8) -> Rules: U101(tt,A,B) -> U102(isBool(B),A,B) U102(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U',U) -> U132(isS(U'),B,U',U) U132(tt,B,U',U) -> U133(isS(U),B,U') U133(tt,B,U') -> U134(equal(_isNotEqualTo_(B,true),true),U') U134(tt,U') -> U' U141(tt,U) -> U142(isS(U),U) U142(tt,U) -> U U151(tt,V2) -> U152(isBool(V2)) U152(tt) -> tt U161(tt,V2) -> U162(isBool(V2)) U162(tt) -> tt U171(tt,V2) -> U172(isUniversal(V2)) U172(tt) -> tt U181(tt,V2) -> U182(isUniversal(V2)) U182(tt) -> tt U191(tt,V2) -> U192(isBool(V2)) U192(tt) -> tt U201(tt,V2) -> U202(isBool(V2)) U202(tt) -> tt U21(tt,A,B,C) -> U22(isBool(B),A,B,C) U211(tt) -> tt U22(tt,A,B,C) -> U23(isBool(C),A,B,C) U221(tt,A) -> _xor_(A,true) U23(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> U52(isBool(B),A,B) U52(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(isS(U),U',U) U62(tt,U',U) -> U63(equal(_isNotEqualTo_(U,U'),true)) U63(tt) -> false U71(tt) -> true U81(tt,U',U) -> U82(isS(U),U',U) U82(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _and_(false,A) -> U31(isBool(A)) _and_(true,A) -> U41(isBool(A),A) _and_(A,_xor_(B,C)) -> U21(isBool(A),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(isBool(A),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(isS(U'),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(isS(U'),U',U) _or_(A,B) -> U101(isBool(A),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(isS(U'),U) if_then_else_fi(B,U,U') -> U131(isBool(B),B,U',U) isBool(_and_(V1,V2)) -> U151(isBool(V1),V2) isBool(_implies_(V1,V2)) -> U161(isBool(V1),V2) isBool(_isEqualTo_(V1,V2)) -> U171(isUniversal(V1),V2) isBool(_isNotEqualTo_(V1,V2)) -> U181(isUniversal(V1),V2) isBool(_or_(V1,V2)) -> U191(isBool(V1),V2) isBool(_xor_(V1,V2)) -> U201(isBool(V1),V2) isBool(not_(V1)) -> U211(isBool(V1)) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U221(isBool(A),A) -> SRules: _OR_(_or_(x8,x9),x10) -> _OR_(x8,x9) _OR_(x8,_or_(x9,x10)) -> _OR_(x9,x10) ->Strongly Connected Components: There is no strongly connected component The problem is finite.