YES Problem 1: (VAR A B C U U' V1 V2 X) (THEORY (AC _and_ _or_ _xor_)) (RULES U101(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') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _AND_(A,B) U101#(tt,A,B) -> _XOR_(_and_(A,B),_xor_(A,B)) U101#(tt,A,B) -> _XOR_(A,B) U131#(tt,B,U') -> U132#(equal(_isNotEqualTo_(B,true),true),U') U131#(tt,B,U') -> _ISNOTEQUALTO_(B,true) U131#(tt,B,U') -> EQUAL(_isNotEqualTo_(B,true),true) U151#(tt,A) -> _XOR_(A,true) U21#(tt,A,B,C) -> _AND_(A,B) U21#(tt,A,B,C) -> _AND_(A,C) U21#(tt,A,B,C) -> _XOR_(_and_(A,B),_and_(A,C)) U51#(tt,A,B) -> _AND_(A,B) U51#(tt,A,B) -> _XOR_(A,_and_(A,B)) U51#(tt,A,B) -> NOT_(_xor_(A,_and_(A,B))) U61#(tt,U',U) -> U62#(equal(_isNotEqualTo_(U,U'),true)) U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U61#(tt,U',U) -> EQUAL(_isNotEqualTo_(U,U'),true) U81#(tt,U',U) -> _ISEQUALTO_(U,U') U81#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> AND(isBool(A),and(isBool(B),isBool(C))) _AND_(_and_(A,_xor_(B,C)),x8) -> AND(isBool(B),isBool(C)) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(A) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(B) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(C) _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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(A,_xor_(B,C)) -> AND(isBool(A),and(isBool(B),isBool(C))) _AND_(A,_xor_(B,C)) -> AND(isBool(B),isBool(C)) _AND_(A,_xor_(B,C)) -> ISBOOL(A) _AND_(A,_xor_(B,C)) -> ISBOOL(B) _AND_(A,_xor_(B,C)) -> ISBOOL(C) _AND_(A,A) -> U11#(isBool(A),A) _AND_(A,A) -> ISBOOL(A) _IMPLIES_(A,B) -> U51#(and(isBool(A),isBool(B)),A,B) _IMPLIES_(A,B) -> AND(isBool(A),isBool(B)) _IMPLIES_(A,B) -> ISBOOL(A) _IMPLIES_(A,B) -> ISBOOL(B) _ISEQUALTO_(U,U) -> U71#(isS(U)) _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISEQUALTO_(U,U') -> AND(isS(U'),isS(U)) _ISNOTEQUALTO_(U,U) -> U91#(isS(U)) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> AND(isS(U'),isS(U)) _OR_(_or_(A,B),x8) -> U101#(and(isBool(A),isBool(B)),A,B) _OR_(_or_(A,B),x8) -> _OR_(U101(and(isBool(A),isBool(B)),A,B),x8) _OR_(_or_(A,B),x8) -> AND(isBool(A),isBool(B)) _OR_(_or_(A,B),x8) -> ISBOOL(A) _OR_(_or_(A,B),x8) -> ISBOOL(B) _OR_(A,B) -> U101#(and(isBool(A),isBool(B)),A,B) _OR_(A,B) -> AND(isBool(A),isBool(B)) _OR_(A,B) -> ISBOOL(A) _OR_(A,B) -> ISBOOL(B) _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#(and(isS(U'),isS(U)),U) IF_THEN_ELSE_FI(true,U,U') -> AND(isS(U'),isS(U)) IF_THEN_ELSE_FI(B,U,U') -> U131#(and(isBool(B),and(isS(U'),isS(U))),B,U') IF_THEN_ELSE_FI(B,U,U') -> AND(isBool(B),and(isS(U'),isS(U))) IF_THEN_ELSE_FI(B,U,U') -> AND(isS(U'),isS(U)) IF_THEN_ELSE_FI(B,U,U') -> ISBOOL(B) ISBOOL(_and_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_and_(V1,V2)) -> ISBOOL(V2) ISBOOL(_implies_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V2) ISBOOL(_isEqualTo_(V1,V2)) -> AND(isUniversal(V1),isUniversal(V2)) ISBOOL(_isNotEqualTo_(V1,V2)) -> AND(isUniversal(V1),isUniversal(V2)) ISBOOL(_or_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_or_(V1,V2)) -> ISBOOL(V2) ISBOOL(_xor_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V2) ISBOOL(not_(V1)) -> ISBOOL(V1) NOT_(A) -> U151#(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _AND_(A,B) U101#(tt,A,B) -> _XOR_(_and_(A,B),_xor_(A,B)) U101#(tt,A,B) -> _XOR_(A,B) U131#(tt,B,U') -> U132#(equal(_isNotEqualTo_(B,true),true),U') U131#(tt,B,U') -> _ISNOTEQUALTO_(B,true) U131#(tt,B,U') -> EQUAL(_isNotEqualTo_(B,true),true) U151#(tt,A) -> _XOR_(A,true) U21#(tt,A,B,C) -> _AND_(A,B) U21#(tt,A,B,C) -> _AND_(A,C) U21#(tt,A,B,C) -> _XOR_(_and_(A,B),_and_(A,C)) U51#(tt,A,B) -> _AND_(A,B) U51#(tt,A,B) -> _XOR_(A,_and_(A,B)) U51#(tt,A,B) -> NOT_(_xor_(A,_and_(A,B))) U61#(tt,U',U) -> U62#(equal(_isNotEqualTo_(U,U'),true)) U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U61#(tt,U',U) -> EQUAL(_isNotEqualTo_(U,U'),true) U81#(tt,U',U) -> _ISEQUALTO_(U,U') U81#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> AND(isBool(A),and(isBool(B),isBool(C))) _AND_(_and_(A,_xor_(B,C)),x8) -> AND(isBool(B),isBool(C)) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(A) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(B) _AND_(_and_(A,_xor_(B,C)),x8) -> ISBOOL(C) _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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(A,_xor_(B,C)) -> AND(isBool(A),and(isBool(B),isBool(C))) _AND_(A,_xor_(B,C)) -> AND(isBool(B),isBool(C)) _AND_(A,_xor_(B,C)) -> ISBOOL(A) _AND_(A,_xor_(B,C)) -> ISBOOL(B) _AND_(A,_xor_(B,C)) -> ISBOOL(C) _AND_(A,A) -> U11#(isBool(A),A) _AND_(A,A) -> ISBOOL(A) _IMPLIES_(A,B) -> U51#(and(isBool(A),isBool(B)),A,B) _IMPLIES_(A,B) -> AND(isBool(A),isBool(B)) _IMPLIES_(A,B) -> ISBOOL(A) _IMPLIES_(A,B) -> ISBOOL(B) _ISEQUALTO_(U,U) -> U71#(isS(U)) _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISEQUALTO_(U,U') -> AND(isS(U'),isS(U)) _ISNOTEQUALTO_(U,U) -> U91#(isS(U)) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> AND(isS(U'),isS(U)) _OR_(_or_(A,B),x8) -> U101#(and(isBool(A),isBool(B)),A,B) _OR_(_or_(A,B),x8) -> _OR_(U101(and(isBool(A),isBool(B)),A,B),x8) _OR_(_or_(A,B),x8) -> AND(isBool(A),isBool(B)) _OR_(_or_(A,B),x8) -> ISBOOL(A) _OR_(_or_(A,B),x8) -> ISBOOL(B) _OR_(A,B) -> U101#(and(isBool(A),isBool(B)),A,B) _OR_(A,B) -> AND(isBool(A),isBool(B)) _OR_(A,B) -> ISBOOL(A) _OR_(A,B) -> ISBOOL(B) _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#(and(isS(U'),isS(U)),U) IF_THEN_ELSE_FI(true,U,U') -> AND(isS(U'),isS(U)) IF_THEN_ELSE_FI(B,U,U') -> U131#(and(isBool(B),and(isS(U'),isS(U))),B,U') IF_THEN_ELSE_FI(B,U,U') -> AND(isBool(B),and(isS(U'),isS(U))) IF_THEN_ELSE_FI(B,U,U') -> AND(isS(U'),isS(U)) IF_THEN_ELSE_FI(B,U,U') -> ISBOOL(B) ISBOOL(_and_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_and_(V1,V2)) -> ISBOOL(V2) ISBOOL(_implies_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V2) ISBOOL(_isEqualTo_(V1,V2)) -> AND(isUniversal(V1),isUniversal(V2)) ISBOOL(_isNotEqualTo_(V1,V2)) -> AND(isUniversal(V1),isUniversal(V2)) ISBOOL(_or_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_or_(V1,V2)) -> ISBOOL(V2) ISBOOL(_xor_(V1,V2)) -> AND(isBool(V1),isBool(V2)) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V2) ISBOOL(not_(V1)) -> ISBOOL(V1) NOT_(A) -> U151#(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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: ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_and_(V1,V2)) -> ISBOOL(V2) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V2) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_or_(V1,V2)) -> ISBOOL(V2) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V2) 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _AND_(A,B) U21#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> SRules: _AND_(_and_(x8,x9),x10) -> _AND_(x8,x9) _AND_(x8,_and_(x9,x10)) -> _AND_(x9,x10) ->->Cycle: ->->-> Pairs: U131#(tt,B,U') -> _ISNOTEQUALTO_(B,true) U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U81#(tt,U',U) -> _ISEQUALTO_(U,U') U81#(tt,U',U) -> IF_THEN_ELSE_FI(_isEqualTo_(U,U'),false,true) _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) IF_THEN_ELSE_FI(B,U,U') -> U131#(and(isBool(B),and(isS(U'),isS(U))),B,U') -> 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> SRules: Empty ->->Cycle: ->->-> Pairs: _OR_(_or_(A,B),x8) -> _OR_(U101(and(isBool(A),isBool(B)),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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 5 subproblems. Problem 1.1: Subterm Processor: -> FAxioms: Empty -> Pairs: ISBOOL(_and_(V1,V2)) -> ISBOOL(V1) ISBOOL(_and_(V1,V2)) -> ISBOOL(V2) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V1) ISBOOL(_implies_(V1,V2)) -> ISBOOL(V2) ISBOOL(_or_(V1,V2)) -> ISBOOL(V1) ISBOOL(_or_(V1,V2)) -> ISBOOL(V2) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V1) ISBOOL(_xor_(V1,V2)) -> ISBOOL(V2) 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> SRules: Empty ->Projection: pi(ISBOOL) = [1] Problem 1.1: SCC Processor: -> FAxioms: Empty -> 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U111(tt) -> false U121(tt,A) -> A _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = 0 [U111](X) = 2 [U121](X1,X2) = X2 + 2 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1 + 2.X2 + 1 [_implies_](X1,X2) = 2.X2 + 1 [_isEqualTo_](X1,X2) = 2.X1 + X2 + 2 [_isNotEqualTo_](X1,X2) = 2.X2 + 2 [_or_](X1,X2) = X1 + X2 + 1 [_xor_](X1,X2) = X1 + X2 + 2 [and](X1,X2) = X2 + 2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 2.X + 2 [not_](X) = X [false] = 2 [isS](X) = 0 [isUniversal](X) = 2.X + 2 [true] = 2 [tt] = 2 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](X1,X2) = 0 [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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U111(tt) -> false U121(tt,A) -> A _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = 0 [U111](X) = 1 [U121](X1,X2) = X2 + 2 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1 + 2.X2 + 2 [_implies_](X1,X2) = X1 + 2.X2 + 2 [_isEqualTo_](X1,X2) = X1 + X2 + 2 [_isNotEqualTo_](X1,X2) = X1 + 2.X2 + 2 [_or_](X1,X2) = X1 + 2.X2 + 2 [_xor_](X1,X2) = X1 + X2 + 2 [and](X1,X2) = X1 + X2 + 2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 2.X + 2 [not_](X) = X [false] = 0 [isS](X) = 0 [isUniversal](X) = 2.X + 2 [true] = 2 [tt] = 0 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](X1,X2) = 0 [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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _AND_(A,B) U21#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = X2 [U111](X) = X.X [U121](X1,X2) = X1 + X2 + 1 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = X1.X2.X3 + X1.X2 + X2.X4 + X2 + X3 + X4 + 1 [U31](X) = X.X [U41](X1,X2) = X2 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1.X2 + X1 + X2 [_implies_](X1,X2) = X1 + X2 [_isEqualTo_](X1,X2) = X1.X2 + X1 [_isNotEqualTo_](X1,X2) = X2 [_or_](X1,X2) = X1 + 1 [_xor_](X1,X2) = X1 + X2 + 1 [and](X1,X2) = X1.X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1 [not_](X) = 1 [false] = 1 [isS](X) = 0 [isUniversal](X) = 0 [true] = 1 [tt] = 1 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = X1.X2.X3 + X1.X2.X4 + X1.X2 + X1.X3 + X1.X4 + X1 + X2 + 1 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](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: U21#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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: U21#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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: U21#(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#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = X1.X2 + X2 [U111](X) = X [U121](X1,X2) = X1.X2 + 1 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = X1.X2.X3 + X1.X2.X4 + X1.X2 + X1.X4 + X1 + X2 + X3 [U31](X) = X.X [U41](X1,X2) = X1.X2 + X2 + 1 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](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 + 1 [_isNotEqualTo_](X1,X2) = X1 [_or_](X1,X2) = X1.X2 + X1 + 1 [_xor_](X1,X2) = X1 + X2 + 1 [and](X1,X2) = X1.X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1 [not_](X) = X.X + 1 [false] = 1 [isS](X) = 0 [isUniversal](X) = 1 [true] = 1 [tt] = 1 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = X1.X2.X4 + X2.X3 + X2 + X4 + 1 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](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_(true,A),x8) -> _AND_(U41(isBool(A),A),x8) _AND_(_and_(A,_xor_(B,C)),x8) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _AND_(_and_(A,_xor_(B,C)),x8) -> _AND_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),x8) _AND_(_and_(A,A),x8) -> _AND_(U11(isBool(A),A),x8) _AND_(A,_xor_(B,C)) -> U21#(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = X2 [U111](X) = 1 [U121](X1,X2) = X1.X2 + X1 + 1 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = X1.X2 + X1.X4 + X2.X3 + X2.X4 + X1 + X2 + X3 [U31](X) = 1 [U41](X1,X2) = X2 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = X1.X2 + X1 + X2 [_implies_](X1,X2) = X1.X2 [_isEqualTo_](X1,X2) = X1 + X2 + 1 [_isNotEqualTo_](X1,X2) = X1.X2 + 1 [_or_](X1,X2) = X1.X2 + X1 + 1 [_xor_](X1,X2) = X1 + X2 + 1 [and](X1,X2) = X1.X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1 [not_](X) = X + 1 [false] = 1 [isS](X) = 0 [isUniversal](X) = 1 [true] = 1 [tt] = 1 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = 1/3.X1.X2 + 2.X2 [U111](X) = X + 1/3 [U121](X1,X2) = X2 + 1 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 1/3 [U31](X) = 1/3.X + 1/2 [U41](X1,X2) = 1/3.X1 + X2 + 2 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 3.X1.X2 + X1 + X2 [_implies_](X1,X2) = X1.X2 + 2/3.X1 + 3.X2 + 1 [_isEqualTo_](X1,X2) = 2/3.X1.X2 + 2.X1 + 2 [_isNotEqualTo_](X1,X2) = 1/2.X1.X2 + 3/2.X2 + 3 [_or_](X1,X2) = X1.X2 + 1/2.X1 + 2.X2 [_xor_](X1,X2) = X1 + X2 + 1/3 [and](X1,X2) = 1/3.X1 + X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 3/2.X [not_](X) = 2/3.X.X + 3.X [false] = 2/3 [isS](X) = 0 [isUniversal](X) = 1 [true] = 2 [tt] = 1 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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(and(isBool(A),and(isBool(B),isBool(C))),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = 2.X2 [U111](X) = X + 3/2 [U121](X1,X2) = X1 + X2 + 3/2 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 3.X1.X2.X4 + 1/2.X1.X3.X4 + 3/2.X2.X3 + 3/2.X2.X4 + 2/3.X1 + 3.X2 + 3/2.X3 + 3/2.X4 + 3 [U31](X) = 3/2.X + 1 [U41](X1,X2) = 3/2.X1.X2 + 3.X1 + X2 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](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) = 3.X1.X2 + 3/2.X1 + 3/2 [_isEqualTo_](X1,X2) = 2/3.X1.X2 + 2/3.X2 [_isNotEqualTo_](X1,X2) = 3.X1 + X2 + 1/2 [_or_](X1,X2) = 1/3.X1 + 2.X2 [_xor_](X1,X2) = X1 + X2 + 2 [and](X1,X2) = X1.X2 + 3/2.X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 0 [not_](X) = 2.X.X + 2 [false] = 1 [isS](X) = 0 [isUniversal](X) = 0 [true] = 3/2 [tt] = 0 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 [U11](X1,X2) = 3/2.X2 + 1/3 [U111](X) = 1/3 [U121](X1,X2) = X2 + 2/3 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 3/2.X2.X3 + 3/2.X2.X4 + 3.X2 + 3/2.X3 + 3/2.X4 + 2 [U31](X) = 1 [U41](X1,X2) = X2 + 1/3 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](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 + 1/3.X1 + 2.X2 [_isEqualTo_](X1,X2) = 3.X1 + 3.X2 + 2 [_isNotEqualTo_](X1,X2) = 3/2.X1.X2 + X1 + 2/3 [_or_](X1,X2) = 3.X1.X2 + 2.X2 + 1/3 [_xor_](X1,X2) = X1 + X2 + 1 [and](X1,X2) = X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 3.X.X + 3/2.X [not_](X) = 2.X.X + 2/3.X + 3 [false] = 1/3 [isS](X) = 0 [isUniversal](X) = 1/2 [true] = 1/3 [tt] = 1/2 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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: Empty -> Pairs: U131#(tt,B,U') -> _ISNOTEQUALTO_(B,true) U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U81#(tt,U',U) -> _ISEQUALTO_(U,U') U81#(tt,U',U) -> IF_THEN_ELSE_FI(_isEqualTo_(U,U'),false,true) _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) IF_THEN_ELSE_FI(B,U,U') -> U131#(and(isBool(B),and(isS(U'),isS(U))),B,U') -> 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: Empty -> Rules: U101(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') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(tt,U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false,true) U91(tt) -> false _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 0 [U11](X1,X2) = 0 [U111](X) = 0 [U121](X1,X2) = 0 [U131](X1,X2,X3) = 2.X1 + X3 + 2 [U132](X1,X2) = 2.X1 + X2 + 2 [U141](X1,X2) = X1 + X2 + 2 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = X2 + X3 + 1 [U62](X) = 1 [U71](X) = X [U81](X1,X2,X3) = 2.X1 + X2 + 2.X3 + 2 [U91](X) = 1 [_and_](X1,X2) = X1 + 2.X2 [_implies_](X1,X2) = 2.X1 + 2.X2 + 2 [_isEqualTo_](X1,X2) = X1 + X2 + 1 [_isNotEqualTo_](X1,X2) = 2.X1 + X2 + 2 [_or_](X1,X2) = 2.X1 + 2 [_xor_](X1,X2) = 2.X1 + 1 [and](X1,X2) = X2 [equal](X1,X2) = 2 [if_then_else_fi](X1,X2,X3) = 2.X2 + X3 + 2 [isBool](X) = 2 [not_](X) = 2.X [false] = 0 [isS](X) = 0 [isUniversal](X) = 0 [true] = 2 [tt] = 2 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 2.X1 + 2.X2 + 2 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U62#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U91#](X) = 0 [_AND_](X1,X2) = 0 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 2.X1 + 2.X2 + 2 [_ISNOTEQUALTO_](X1,X2) = 2.X1 + 2.X2 + 1 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [AND](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 2.X1 + 2.X2 + 2 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.4: SCC Processor: -> FAxioms: Empty -> Pairs: U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U81#(tt,U',U) -> _ISEQUALTO_(U,U') U81#(tt,U',U) -> IF_THEN_ELSE_FI(_isEqualTo_(U,U'),false,true) _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) IF_THEN_ELSE_FI(B,U,U') -> U131#(and(isBool(B),and(isS(U'),isS(U))),B,U') -> 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> SRules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U81#(tt,U',U) -> _ISEQUALTO_(U,U') _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) -> 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> SRules: Empty Problem 1.4: Reduction Pairs Processor: -> FAxioms: Empty -> Pairs: U61#(tt,U',U) -> _ISNOTEQUALTO_(U,U') U81#(tt,U',U) -> _ISEQUALTO_(U,U') _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) -> 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: Empty -> Rules: U101(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') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: and(tt,X) -> X -> SRules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 0 [U11](X1,X2) = 0 [U111](X) = 0 [U121](X1,X2) = 0 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 0 [U31](X) = 0 [U41](X1,X2) = 0 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](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) = 0 [and](X1,X2) = 2.X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 0 [not_](X) = 0 [false] = 0 [isS](X) = 0 [isUniversal](X) = 0 [true] = 0 [tt] = 2 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U62#](X) = 0 [U71#](X) = 0 [U81#](X1,X2,X3) = 2.X3 + 2 [U91#](X) = 0 [_AND_](X1,X2) = 0 [_IMPLIES_](X1,X2) = 0 [_ISEQUALTO_](X1,X2) = 2.X1 + 2 [_ISNOTEQUALTO_](X1,X2) = 2.X1 + 2 [_OR_](X1,X2) = 0 [_XOR_](X1,X2) = 0 [AND](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: Empty -> Pairs: U81#(tt,U',U) -> _ISEQUALTO_(U,U') _ISEQUALTO_(U,U') -> U61#(and(isS(U'),isS(U)),U',U) _ISNOTEQUALTO_(U,U') -> U81#(and(isS(U'),isS(U)),U',U) -> 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> SRules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: 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(and(isBool(A),isBool(B)),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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(isBool(A),A) -> Usable Rules: U101(tt,A,B) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U21(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> 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 + X1 + 2.X2 + 2.X3 + 1/3 [U11](X1,X2) = X1.X2 + X2 [U111](X) = 1/3 [U121](X1,X2) = X2 + 1/3 [U131](X1,X2,X3) = 0 [U132](X1,X2) = 0 [U141](X1,X2) = 0 [U151](X1,X2) = 0 [U21](X1,X2,X3,X4) = 3.X2.X3 + 3.X2.X4 + 2.X2 + X3 + X4 + 1/3 [U31](X) = 1/3 [U41](X1,X2) = X2 + 3/2 [U51](X1,X2,X3) = 0 [U61](X1,X2,X3) = 0 [U62](X) = 0 [U71](X) = 0 [U81](X1,X2,X3) = 0 [U91](X) = 0 [_and_](X1,X2) = 3.X1.X2 + X1 + X2 [_implies_](X1,X2) = 2.X1.X2 + 3.X1 + 2.X2 + 3/2 [_isEqualTo_](X1,X2) = 1/3.X1.X2 + X2 + 3 [_isNotEqualTo_](X1,X2) = X1.X2 + 2/3.X1 + 3 [_or_](X1,X2) = 3.X1.X2 + 3.X1 + 3.X2 + 2 [_xor_](X1,X2) = X1 + X2 + 1/3 [and](X1,X2) = X2 [equal](X1,X2) = 0 [if_then_else_fi](X1,X2,X3) = 0 [isBool](X) = 1/3.X + 1 [not_](X) = 3/2.X.X + 3/2.X + 2 [false] = 1/3 [isS](X) = 0 [isUniversal](X) = 2 [true] = 2 [tt] = 1/2 [U101#](X1,X2,X3) = 0 [U11#](X1,X2) = 0 [U111#](X) = 0 [U121#](X1,X2) = 0 [U131#](X1,X2,X3) = 0 [U132#](X1,X2) = 0 [U141#](X1,X2) = 0 [U151#](X1,X2) = 0 [U21#](X1,X2,X3,X4) = 0 [U31#](X) = 0 [U41#](X1,X2) = 0 [U51#](X1,X2,X3) = 0 [U61#](X1,X2,X3) = 0 [U62#](X) = 0 [U71#](X) = 0 [U81#](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 [AND](X1,X2) = 0 [EQUAL](X1,X2) = 0 [IF_THEN_ELSE_FI](X1,X2,X3) = 0 [ISBOOL](X) = 0 [NOT_](X) = 0 Problem 1.5: 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) -> _xor_(_and_(A,B),_xor_(A,B)) U11(tt,A) -> A U111(tt) -> false U121(tt,A) -> A U131(tt,B,U') -> U132(equal(_isNotEqualTo_(B,true),true),U') U132(tt,U') -> U' U141(tt,U) -> U U151(tt,A) -> _xor_(A,true) U21(tt,A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) U31(tt) -> false U41(tt,A) -> A U51(tt,A,B) -> not_(_xor_(A,_and_(A,B))) U61(tt,U',U) -> U62(equal(_isNotEqualTo_(U,U'),true)) U62(tt) -> false U71(tt) -> true U81(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(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) _and_(A,A) -> U11(isBool(A),A) _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) _isEqualTo_(U,U) -> U71(isS(U)) _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) _isNotEqualTo_(U,U) -> U91(isS(U)) _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) _xor_(false,A) -> U121(isBool(A),A) _xor_(A,A) -> U111(isBool(A)) and(tt,X) -> X equal(X,X) -> tt if_then_else_fi(true,U,U') -> U141(and(isS(U'),isS(U)),U) if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) isBool(not_(V1)) -> isBool(V1) isBool(false) -> tt isBool(true) -> tt not_(false) -> true not_(true) -> false not_(A) -> U151(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.