1.12/1.16 MAYBE 1.12/1.16 Input TRS: 1.12/1.16 AC symbols: _or_ _xor_ _and_ 1.12/1.16 1: U101(tt(),A,B) -> _xor_(_and_(A,B),_xor_(A,B)) 1.12/1.16 2: U11(tt(),A) -> A 1.12/1.16 3: U111(tt()) -> false() 1.12/1.16 4: U121(tt(),A) -> A 1.12/1.16 5: U131(tt(),B,U') -> U132(equal(_isNotEqualTo_(B,true()),true()),U') 1.12/1.16 6: U132(tt(),U') -> U' 1.12/1.16 7: U141(tt(),U) -> U 1.12/1.16 8: U151(tt(),A) -> _xor_(A,true()) 1.12/1.16 9: U21(tt(),A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) 1.12/1.16 10: U31(tt()) -> false() 1.12/1.16 11: U41(tt(),A) -> A 1.12/1.16 12: U51(tt(),A,B) -> not_(_xor_(A,_and_(A,B))) 1.12/1.16 13: U61(tt(),U',U) -> U62(equal(_isNotEqualTo_(U,U'),true())) 1.12/1.16 14: U62(tt()) -> false() 1.12/1.16 15: U71(tt()) -> true() 1.12/1.16 16: U81(tt(),U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false(),true()) 1.12/1.16 17: U91(tt()) -> false() 1.12/1.16 18: _and_(A,A) -> U11(isBool(A),A) 1.12/1.16 19: _and_(A,_xor_(B,C)) -> U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) 1.12/1.16 20: _and_(false(),A) -> U31(isBool(A)) 1.12/1.16 21: _and_(true(),A) -> U41(isBool(A),A) 1.12/1.16 22: _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) 1.12/1.16 23: _isEqualTo_(U,U') -> U61(and(isS(U'),isS(U)),U',U) 1.12/1.16 24: _isEqualTo_(U,U) -> U71(isS(U)) 1.12/1.16 25: _isNotEqualTo_(U,U') -> U81(and(isS(U'),isS(U)),U',U) 1.12/1.16 26: _isNotEqualTo_(U,U) -> U91(isS(U)) 1.12/1.16 27: _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) 1.12/1.16 28: _xor_(A,A) -> U111(isBool(A)) 1.12/1.16 29: _xor_(false(),A) -> U121(isBool(A),A) 1.12/1.16 30: and(tt(),X) -> X 1.12/1.16 31: equal(X,X) -> tt() 1.12/1.16 32: if_then_else_fi(B,U,U') -> U131(and(isBool(B),and(isS(U'),isS(U))),B,U') 1.12/1.16 33: if_then_else_fi(true(),U,U') -> U141(and(isS(U'),isS(U)),U) 1.12/1.16 34: isBool(false()) -> tt() 1.12/1.16 35: isBool(true()) -> tt() 1.12/1.16 36: isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 37: isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 38: isBool(_isEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) 1.12/1.16 39: isBool(_isNotEqualTo_(V1,V2)) -> and(isUniversal(V1),isUniversal(V2)) 1.12/1.16 40: isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 41: isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 42: isBool(not_(V1)) -> isBool(V1) 1.12/1.16 43: not_(A) -> U151(isBool(A),A) 1.12/1.16 44: not_(false()) -> true() 1.12/1.16 45: not_(true()) -> false() 1.12/1.16 Number of strict rules: 45 1.12/1.16 Direct POLO(bPol) ... failed. 1.12/1.16 Uncurrying and U71 U91 1.12/1.16 AC symbols: _or_ _xor_ _and_ 1.12/1.16 1: U101(tt(),A,B) -> _xor_(_and_(A,B),_xor_(A,B)) 1.12/1.16 2: U11(tt(),A) -> A 1.12/1.16 3: U111(tt()) -> false() 1.12/1.16 4: U121(tt(),A) -> A 1.12/1.16 5: U131(tt(),B,U') -> U132(equal(_isNotEqualTo_(B,true()),true()),U') 1.12/1.16 6: U132(tt(),U') -> U' 1.12/1.16 7: U141(tt(),U) -> U 1.12/1.16 8: U151(tt(),A) -> _xor_(A,true()) 1.12/1.16 9: U21(tt(),A,B,C) -> _xor_(_and_(A,B),_and_(A,C)) 1.12/1.16 10: U31(tt()) -> false() 1.12/1.16 11: U41(tt(),A) -> A 1.12/1.16 12: U51(tt(),A,B) -> not_(_xor_(A,_and_(A,B))) 1.12/1.16 13: U61(tt(),U',U) -> U62(equal(_isNotEqualTo_(U,U'),true())) 1.12/1.16 14: U62(tt()) -> false() 1.12/1.16 15: U71^1_tt() -> true() 1.12/1.16 16: U81(tt(),U',U) -> if_then_else_fi(_isEqualTo_(U,U'),false(),true()) 1.12/1.16 17: U91^1_tt() -> false() 1.12/1.16 18: _and_(A,A) -> U11(isBool(A),A) 1.12/1.16 19: _and_(A,_xor_(B,C)) -> U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) 1.12/1.16 20: _and_(false(),A) -> U31(isBool(A)) 1.12/1.16 21: _and_(true(),A) -> U41(isBool(A),A) 1.12/1.16 22: _implies_(A,B) -> U51(and(isBool(A),isBool(B)),A,B) 1.12/1.16 23: _isEqualTo_(U,U') -> U61(and^1_isS(U',isS(U)),U',U) 1.12/1.16 24: _isEqualTo_(U,U) -> U71^1_isS(U) 1.12/1.16 25: _isNotEqualTo_(U,U') -> U81(and^1_isS(U',isS(U)),U',U) 1.12/1.16 26: _isNotEqualTo_(U,U) -> U91^1_isS(U) 1.12/1.16 27: _or_(A,B) -> U101(and(isBool(A),isBool(B)),A,B) 1.12/1.16 28: _xor_(A,A) -> U111(isBool(A)) 1.12/1.16 29: _xor_(false(),A) -> U121(isBool(A),A) 1.12/1.16 30: and^1_tt(X) -> X 1.12/1.16 31: equal(X,X) -> tt() 1.12/1.16 32: if_then_else_fi(B,U,U') -> U131(and(isBool(B),and^1_isS(U',isS(U))),B,U') 1.12/1.16 33: if_then_else_fi(true(),U,U') -> U141(and^1_isS(U',isS(U)),U) 1.12/1.16 34: isBool(false()) -> tt() 1.12/1.16 35: isBool(true()) -> tt() 1.12/1.16 36: isBool(_and_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 37: isBool(_implies_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 38: isBool(_isEqualTo_(V1,V2)) -> and^1_isUniversal(V1,isUniversal(V2)) 1.12/1.16 39: isBool(_isNotEqualTo_(V1,V2)) -> and^1_isUniversal(V1,isUniversal(V2)) 1.12/1.16 40: isBool(_or_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 41: isBool(_xor_(V1,V2)) -> and(isBool(V1),isBool(V2)) 1.12/1.16 42: isBool(not_(V1)) -> isBool(V1) 1.12/1.16 43: not_(A) -> U151(isBool(A),A) 1.12/1.16 44: not_(false()) -> true() 1.12/1.16 45: not_(true()) -> false() 1.12/1.16 46: U91(tt()) ->= U91^1_tt() 1.12/1.16 47: U91(isS(_1)) ->= U91^1_isS(_1) 1.12/1.16 48: U71(tt()) ->= U71^1_tt() 1.12/1.16 49: U71(isS(_1)) ->= U71^1_isS(_1) 1.12/1.16 50: and(tt(),_1) ->= and^1_tt(_1) 1.12/1.16 51: and(isUniversal(_1),_2) ->= and^1_isUniversal(_1,_2) 1.12/1.16 52: and(isS(_1),_2) ->= and^1_isS(_1,_2) 1.12/1.16 Number of strict rules: 45 1.12/1.16 Direct POLO(bPol) ... failed. 1.12/1.16 Dependency Pairs: 1.12/1.16 #1: #not_(A) -> #U151(isBool(A),A) 1.12/1.16 #2: #not_(A) -> #isBool(A) 1.12/1.16 #3: #_xor_(false(),A) -> #U121(isBool(A),A) 1.12/1.16 #4: #_xor_(false(),A) -> #isBool(A) 1.12/1.16 #5: #U91(tt()) ->? #U91^1_tt() 1.12/1.16 #6: #isBool(not_(V1)) -> #isBool(V1) 1.12/1.16 #7: #isBool(_xor_(V1,V2)) -> #and(isBool(V1),isBool(V2)) 1.12/1.16 #8: #isBool(_xor_(V1,V2)) -> #isBool(V1) 1.12/1.16 #9: #isBool(_xor_(V1,V2)) -> #isBool(V2) 1.12/1.16 #10: #isBool(_implies_(V1,V2)) -> #and(isBool(V1),isBool(V2)) 1.12/1.16 #11: #isBool(_implies_(V1,V2)) -> #isBool(V1) 1.12/1.16 #12: #isBool(_implies_(V1,V2)) -> #isBool(V2) 1.12/1.16 #13: #_or_(x,_or_(y,z)) ->= #_or_(_or_(x,y),z) 1.12/1.16 #14: #_or_(x,_or_(y,z)) ->= #_or_(x,y) 1.12/1.16 #15: #U71(tt()) ->? #U71^1_tt() 1.12/1.16 #16: #_and_(x,_and_(y,z)) ->= #_and_(_and_(x,y),z) 1.12/1.16 #17: #_and_(x,_and_(y,z)) ->= #_and_(x,y) 1.12/1.16 #18: #isBool(_or_(V1,V2)) -> #and(isBool(V1),isBool(V2)) 1.12/1.16 #19: #isBool(_or_(V1,V2)) -> #isBool(V1) 1.12/1.16 #20: #isBool(_or_(V1,V2)) -> #isBool(V2) 1.12/1.16 #21: #U61(tt(),U',U) -> #U62(equal(_isNotEqualTo_(U,U'),true())) 1.12/1.16 #22: #U61(tt(),U',U) -> #equal(_isNotEqualTo_(U,U'),true()) 1.12/1.16 #23: #U61(tt(),U',U) -> #_isNotEqualTo_(U,U') 1.12/1.16 #24: #U21(tt(),A,B,C) -> #_xor_(_and_(A,B),_and_(A,C)) 1.12/1.16 #25: #U21(tt(),A,B,C) -> #_and_(A,B) 1.12/1.16 #26: #U21(tt(),A,B,C) -> #_and_(A,C) 1.12/1.16 #27: #_isEqualTo_(U,U') -> #U61(and^1_isS(U',isS(U)),U',U) 1.12/1.16 #28: #U51(tt(),A,B) -> #not_(_xor_(A,_and_(A,B))) 1.12/1.16 #29: #U51(tt(),A,B) -> #_xor_(A,_and_(A,B)) 1.12/1.16 #30: #U51(tt(),A,B) -> #_and_(A,B) 1.12/1.16 #31: #_isNotEqualTo_(U,U') -> #U81(and^1_isS(U',isS(U)),U',U) 1.12/1.16 #32: #_and_(false(),A) -> #U31(isBool(A)) 1.12/1.16 #33: #_and_(false(),A) -> #isBool(A) 1.12/1.16 #34: #if_then_else_fi(true(),U,U') -> #U141(and^1_isS(U',isS(U)),U) 1.12/1.16 #35: #U131(tt(),B,U') -> #U132(equal(_isNotEqualTo_(B,true()),true()),U') 1.12/1.16 #36: #U131(tt(),B,U') -> #equal(_isNotEqualTo_(B,true()),true()) 1.12/1.16 #37: #U131(tt(),B,U') -> #_isNotEqualTo_(B,true()) 1.12/1.16 #38: #_xor_(A,A) -> #U111(isBool(A)) 1.12/1.16 #39: #_xor_(A,A) -> #isBool(A) 1.12/1.16 #40: #_implies_(A,B) -> #U51(and(isBool(A),isBool(B)),A,B) 1.12/1.16 #41: #_implies_(A,B) -> #and(isBool(A),isBool(B)) 1.12/1.16 #42: #_implies_(A,B) -> #isBool(A) 1.12/1.16 #43: #_implies_(A,B) -> #isBool(B) 1.12/1.16 #44: #_or_(A,B) -> #U101(and(isBool(A),isBool(B)),A,B) 1.12/1.16 #45: #_or_(A,B) -> #and(isBool(A),isBool(B)) 1.12/1.16 #46: #_or_(A,B) -> #isBool(A) 1.12/1.16 #47: #_or_(A,B) -> #isBool(B) 1.12/1.16 #48: #_and_(A,_xor_(B,C)) -> #U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) 1.12/1.16 #49: #_and_(A,_xor_(B,C)) -> #and(isBool(A),and(isBool(B),isBool(C))) 1.12/1.16 #50: #_and_(A,_xor_(B,C)) -> #isBool(A) 1.12/1.16 #51: #_and_(A,_xor_(B,C)) -> #and(isBool(B),isBool(C)) 1.12/1.16 #52: #_and_(A,_xor_(B,C)) -> #isBool(B) 1.12/1.16 #53: #_and_(A,_xor_(B,C)) -> #isBool(C) 1.12/1.16 #54: #if_then_else_fi(B,U,U') -> #U131(and(isBool(B),and^1_isS(U',isS(U))),B,U') 1.12/1.16 #55: #if_then_else_fi(B,U,U') -> #and(isBool(B),and^1_isS(U',isS(U))) 1.12/1.16 #56: #if_then_else_fi(B,U,U') -> #isBool(B) 1.12/1.16 #57: #isBool(_and_(V1,V2)) -> #and(isBool(V1),isBool(V2)) 1.12/1.16 #58: #isBool(_and_(V1,V2)) -> #isBool(V1) 1.12/1.16 #59: #isBool(_and_(V1,V2)) -> #isBool(V2) 1.12/1.16 #60: #_and_(true(),A) -> #U41(isBool(A),A) 1.12/1.16 #61: #_and_(true(),A) -> #isBool(A) 1.12/1.16 #62: #U81(tt(),U',U) -> #if_then_else_fi(_isEqualTo_(U,U'),false(),true()) 1.12/1.16 #63: #U81(tt(),U',U) -> #_isEqualTo_(U,U') 1.12/1.16 #64: #U101(tt(),A,B) -> #_xor_(_and_(A,B),_xor_(A,B)) 1.12/1.16 #65: #U101(tt(),A,B) -> #_and_(A,B) 1.12/1.16 #66: #U101(tt(),A,B) -> #_xor_(A,B) 1.12/1.16 #67: #_xor_(x,_xor_(y,z)) ->= #_xor_(_xor_(x,y),z) 1.12/1.16 #68: #_xor_(x,_xor_(y,z)) ->= #_xor_(x,y) 1.12/1.16 #69: #U151(tt(),A) -> #_xor_(A,true()) 1.12/1.16 #70: #and(tt(),_1) ->? #and^1_tt(_1) 1.12/1.16 #71: #_and_(A,A) -> #U11(isBool(A),A) 1.12/1.16 #72: #_and_(A,A) -> #isBool(A) 1.12/1.16 Number of SCCs: 4, DPs: 18 1.12/1.16 SCC { #13 #14 } 1.12/1.16 only weak rules. 1.12/1.16 Number of SCCs: 3, DPs: 16 1.12/1.16 SCC { #67 #68 } 1.12/1.16 only weak rules. 1.12/1.16 Number of SCCs: 2, DPs: 14 1.12/1.16 SCC { #16 #17 #25 #26 #48 } 1.12/1.16 POLO(Sum)... POLO(max)... QLPOS... POLO(mSum)... QWPOpS(mSum)... Mat2b... failed. 1.12/1.16 Finding a loop... failed. 1.12/1.16 EOF