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