The rewrite relation of the following equational TRS is considered.
U101(tt,A,B) | → | _xor_(_and_(A,B),_xor_(A,B)) | (1) |
U11(tt,A) | → | A | (2) |
U111(tt) | → | false | (3) |
U121(tt,A) | → | A | (4) |
U131(tt,B,U') | → | U132(equal(_isNotEqualTo_(B,true),true),U') | (5) |
U132(tt,U') | → | U' | (6) |
U141(tt,U) | → | U | (7) |
U151(tt,A) | → | _xor_(A,true) | (8) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U31(tt) | → | false | (10) |
U41(tt,A) | → | A | (11) |
U51(tt,A,B) | → | not_(_xor_(A,_and_(A,B))) | (12) |
U61(tt,U',U) | → | U62(equal(_isNotEqualTo_(U,U'),true)) | (13) |
U62(tt) | → | false | (14) |
U71(tt) | → | true | (15) |
U81(tt,U',U) | → | if_then_else_fi(_isEqualTo_(U,U'),false,true) | (16) |
U91(tt) | → | false | (17) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_implies_(A,B) | → | U51(and(isBool(A),isBool(B)),A,B) | (22) |
_isEqualTo_(U,U') | → | U61(and(isS(U'),isS(U)),U',U) | (23) |
_isEqualTo_(U,U) | → | U71(isS(U)) | (24) |
_isNotEqualTo_(U,U') | → | U81(and(isS(U'),isS(U)),U',U) | (25) |
_isNotEqualTo_(U,U) | → | U91(isS(U)) | (26) |
_or_(A,B) | → | U101(and(isBool(A),isBool(B)),A,B) | (27) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
and(tt,X) | → | X | (30) |
equal(X,X) | → | tt | (31) |
if_then_else_fi(B,U,U') | → | U131(and(isBool(B),and(isS(U'),isS(U))),B,U') | (32) |
if_then_else_fi(true,U,U') | → | U141(and(isS(U'),isS(U)),U) | (33) |
isBool(false) | → | tt | (34) |
isBool(true) | → | tt | (35) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
not_(A) | → | U151(isBool(A),A) | (43) |
not_(false) | → | true | (44) |
not_(true) | → | false | (45) |
Associative symbols: _and_, _or_, _xor_
Commutative symbols: _and_, _or_, _xor_
The following set of (strict) dependency pairs is constructed for the TRS.
U101#(tt,A,B) | → | _xor_#(_and_(A,B),_xor_(A,B)) | (61) |
U101#(tt,A,B) | → | _and_#(A,B) | (62) |
U101#(tt,A,B) | → | _xor_#(A,B) | (63) |
U131#(tt,B,U') | → | U132#(equal(_isNotEqualTo_(B,true),true),U') | (64) |
U131#(tt,B,U') | → | equal#(_isNotEqualTo_(B,true),true) | (65) |
U131#(tt,B,U') | → | _isNotEqualTo_#(B,true) | (66) |
U151#(tt,A) | → | _xor_#(A,true) | (67) |
U21#(tt,A,B,C) | → | _xor_#(_and_(A,B),_and_(A,C)) | (68) |
U21#(tt,A,B,C) | → | _and_#(A,B) | (69) |
U21#(tt,A,B,C) | → | _and_#(A,C) | (70) |
U51#(tt,A,B) | → | not_#(_xor_(A,_and_(A,B))) | (71) |
U51#(tt,A,B) | → | _xor_#(A,_and_(A,B)) | (72) |
U51#(tt,A,B) | → | _and_#(A,B) | (73) |
U61#(tt,U',U) | → | U62#(equal(_isNotEqualTo_(U,U'),true)) | (74) |
U61#(tt,U',U) | → | equal#(_isNotEqualTo_(U,U'),true) | (75) |
U61#(tt,U',U) | → | _isNotEqualTo_#(U,U') | (76) |
U81#(tt,U',U) | → | if_then_else_fi#(_isEqualTo_(U,U'),false,true) | (77) |
U81#(tt,U',U) | → | _isEqualTo_#(U,U') | (78) |
_and_#(A,A) | → | U11#(isBool(A),A) | (79) |
_and_#(A,A) | → | isBool#(A) | (80) |
_and_#(A,_xor_(B,C)) | → | U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (81) |
_and_#(A,_xor_(B,C)) | → | and#(isBool(A),and(isBool(B),isBool(C))) | (82) |
_and_#(A,_xor_(B,C)) | → | isBool#(A) | (83) |
_and_#(A,_xor_(B,C)) | → | and#(isBool(B),isBool(C)) | (84) |
_and_#(A,_xor_(B,C)) | → | isBool#(B) | (85) |
_and_#(A,_xor_(B,C)) | → | isBool#(C) | (86) |
_and_#(false,A) | → | U31#(isBool(A)) | (87) |
_and_#(false,A) | → | isBool#(A) | (88) |
_and_#(true,A) | → | U41#(isBool(A),A) | (89) |
_and_#(true,A) | → | isBool#(A) | (90) |
_implies_#(A,B) | → | U51#(and(isBool(A),isBool(B)),A,B) | (91) |
_implies_#(A,B) | → | and#(isBool(A),isBool(B)) | (92) |
_implies_#(A,B) | → | isBool#(A) | (93) |
_implies_#(A,B) | → | isBool#(B) | (94) |
_isEqualTo_#(U,U') | → | U61#(and(isS(U'),isS(U)),U',U) | (95) |
_isEqualTo_#(U,U') | → | and#(isS(U'),isS(U)) | (96) |
_isEqualTo_#(U,U) | → | U71#(isS(U)) | (97) |
_isNotEqualTo_#(U,U') | → | U81#(and(isS(U'),isS(U)),U',U) | (98) |
_isNotEqualTo_#(U,U') | → | and#(isS(U'),isS(U)) | (99) |
_isNotEqualTo_#(U,U) | → | U91#(isS(U)) | (100) |
_or_#(A,B) | → | U101#(and(isBool(A),isBool(B)),A,B) | (101) |
_or_#(A,B) | → | and#(isBool(A),isBool(B)) | (102) |
_or_#(A,B) | → | isBool#(A) | (103) |
_or_#(A,B) | → | isBool#(B) | (104) |
_xor_#(A,A) | → | U111#(isBool(A)) | (105) |
_xor_#(A,A) | → | isBool#(A) | (106) |
_xor_#(false,A) | → | U121#(isBool(A),A) | (107) |
_xor_#(false,A) | → | isBool#(A) | (108) |
if_then_else_fi#(B,U,U') | → | U131#(and(isBool(B),and(isS(U'),isS(U))),B,U') | (109) |
if_then_else_fi#(B,U,U') | → | and#(isBool(B),and(isS(U'),isS(U))) | (110) |
if_then_else_fi#(B,U,U') | → | isBool#(B) | (111) |
if_then_else_fi#(B,U,U') | → | and#(isS(U'),isS(U)) | (112) |
if_then_else_fi#(true,U,U') | → | U141#(and(isS(U'),isS(U)),U) | (113) |
if_then_else_fi#(true,U,U') | → | and#(isS(U'),isS(U)) | (114) |
isBool#(_and_(V1,V2)) | → | and#(isBool(V1),isBool(V2)) | (115) |
isBool#(_and_(V1,V2)) | → | isBool#(V1) | (116) |
isBool#(_and_(V1,V2)) | → | isBool#(V2) | (117) |
isBool#(_implies_(V1,V2)) | → | and#(isBool(V1),isBool(V2)) | (118) |
isBool#(_implies_(V1,V2)) | → | isBool#(V1) | (119) |
isBool#(_implies_(V1,V2)) | → | isBool#(V2) | (120) |
isBool#(_isEqualTo_(V1,V2)) | → | and#(isUniversal(V1),isUniversal(V2)) | (121) |
isBool#(_isNotEqualTo_(V1,V2)) | → | and#(isUniversal(V1),isUniversal(V2)) | (122) |
isBool#(_or_(V1,V2)) | → | and#(isBool(V1),isBool(V2)) | (123) |
isBool#(_or_(V1,V2)) | → | isBool#(V1) | (124) |
isBool#(_or_(V1,V2)) | → | isBool#(V2) | (125) |
isBool#(_xor_(V1,V2)) | → | and#(isBool(V1),isBool(V2)) | (126) |
isBool#(_xor_(V1,V2)) | → | isBool#(V1) | (127) |
isBool#(_xor_(V1,V2)) | → | isBool#(V2) | (128) |
isBool#(not_(V1)) | → | isBool#(V1) | (129) |
not_#(A) | → | U151#(isBool(A),A) | (130) |
not_#(A) | → | isBool#(A) | (131) |
_and_#(_and_(A,A),ext) | → | _and_#(U11(isBool(A),A),ext) | (132) |
_and_#(_and_(A,A),ext) | → | U11#(isBool(A),A) | (133) |
_and_#(_and_(A,A),ext) | → | isBool#(A) | (134) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | _and_#(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (135) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (136) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | and#(isBool(A),and(isBool(B),isBool(C))) | (137) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | isBool#(A) | (138) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | and#(isBool(B),isBool(C)) | (139) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | isBool#(B) | (140) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | isBool#(C) | (141) |
_and_#(_and_(false,A),ext) | → | _and_#(U31(isBool(A)),ext) | (142) |
_and_#(_and_(false,A),ext) | → | U31#(isBool(A)) | (143) |
_and_#(_and_(false,A),ext) | → | isBool#(A) | (144) |
_and_#(_and_(true,A),ext) | → | _and_#(U41(isBool(A),A),ext) | (145) |
_and_#(_and_(true,A),ext) | → | U41#(isBool(A),A) | (146) |
_and_#(_and_(true,A),ext) | → | isBool#(A) | (147) |
_or_#(_or_(A,B),ext) | → | _or_#(U101(and(isBool(A),isBool(B)),A,B),ext) | (148) |
_or_#(_or_(A,B),ext) | → | U101#(and(isBool(A),isBool(B)),A,B) | (149) |
_or_#(_or_(A,B),ext) | → | and#(isBool(A),isBool(B)) | (150) |
_or_#(_or_(A,B),ext) | → | isBool#(A) | (151) |
_or_#(_or_(A,B),ext) | → | isBool#(B) | (152) |
_xor_#(_xor_(A,A),ext) | → | _xor_#(U111(isBool(A)),ext) | (153) |
_xor_#(_xor_(A,A),ext) | → | U111#(isBool(A)) | (154) |
_xor_#(_xor_(A,A),ext) | → | isBool#(A) | (155) |
_xor_#(_xor_(false,A),ext) | → | _xor_#(U121(isBool(A),A),ext) | (156) |
_xor_#(_xor_(false,A),ext) | → | U121#(isBool(A),A) | (157) |
_xor_#(_xor_(false,A),ext) | → | isBool#(A) | (158) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_or_(_or_(A,B),ext) | → | _or_(U101(and(isBool(A),isBool(B)),A,B),ext) | (163) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
The dependency pairs are split into 4 components.
_or_#(_or_(x,y),z) | → | _or_#(y,z) | (59) |
_or_#(_or_(A,B),ext) | → | _or_#(U101(and(isBool(A),isBool(B)),A,B),ext) | (148) |
_or_#(x,y) | → | _or_#(y,x) | (53) |
_or_#(_or_(x,y),z) | → | _or_#(x,_or_(y,z)) | (56) |
[_or_#(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[_or_(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 + 3 · x1 · x2 |
[U101(x1, x2, x3)] | = | 2 + 2 · x3 + 2 · x2 + 1 · x2 · x3 |
[and(x1, x2)] | = | 0 |
[isBool(x1)] | = | 0 |
[U31(x1)] | = | 0 |
[tt] | = | 0 |
[false] | = | 0 |
[true] | = | 2 |
[_xor_(x1, x2)] | = | 1 + 1 · x2 + 1 · x1 |
[not_(x1)] | = | 0 |
[_isEqualTo_(x1, x2)] | = | 0 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 0 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_and_(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[U111(x1)] | = | 0 |
[U11(x1, x2)] | = | 1 · x2 |
[U121(x1, x2)] | = | 1 + 1 · x2 |
[U21(x1,...,x4)] | = | 1 + 1 · x4 + 1 · x3 + 2 · x2 + 1 · x2 · x4 + 1 · x2 · x3 |
[U41(x1, x2)] | = | 2 · x2 |
_or_(A,B) | → | U101(and(isBool(A),isBool(B)),A,B) | (27) |
_or_(_or_(A,B),ext) | → | _or_(U101(and(isBool(A),isBool(B)),A,B),ext) | (163) |
U31(tt) | → | false | (10) |
U111(tt) | → | false | (3) |
U11(tt,A) | → | A | (2) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U101(tt,A,B) | → | _xor_(_and_(A,B),_xor_(A,B)) | (1) |
U41(tt,A) | → | A | (11) |
U121(tt,A) | → | A | (4) |
_or_(x,y) | → | _or_(y,x) | (47) |
_or_(_or_(x,y),z) | → | _or_(x,_or_(y,z)) | (50) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_or_#(_or_(x,y),z) | → | _or_#(y,z) | (59) |
[_or_#(x1, x2)] | = | 2 · x2 + 2 · x1 + 2 · x1 · x2 |
[_or_(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 + 3 · x1 · x2 |
[U101(x1, x2, x3)] | = | 1 + 2 · x3 + 2 · x2 + 1 · x1 + 2 · x2 · x3 |
[and(x1, x2)] | = | 1 · x2 |
[isBool(x1)] | = | 1 · x1 |
[true] | = | 1 |
[tt] | = | 1 |
[false] | = | 1 |
[_xor_(x1, x2)] | = | 1 + 1 · x2 + 1 · x1 |
[not_(x1)] | = | 2 · x1 |
[_isEqualTo_(x1, x2)] | = | 1 · x2 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 2 · x2 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_and_(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[U31(x1)] | = | 1 |
[U21(x1,...,x4)] | = | 1 + 1 · x4 + 1 · x3 + 2 · x2 + 1 · x2 · x4 + 1 · x2 · x3 |
[U41(x1, x2)] | = | 1 · x2 |
[U11(x1, x2)] | = | 1 · x1 · x2 |
[U121(x1, x2)] | = | 1 · x2 |
[U111(x1)] | = | 1 |
isBool(true) | → | tt | (35) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U11(tt,A) | → | A | (2) |
U31(tt) | → | false | (10) |
U121(tt,A) | → | A | (4) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U41(tt,A) | → | A | (11) |
_or_(A,B) | → | U101(and(isBool(A),isBool(B)),A,B) | (27) |
_or_(_or_(A,B),ext) | → | _or_(U101(and(isBool(A),isBool(B)),A,B),ext) | (163) |
U101(tt,A,B) | → | _xor_(_and_(A,B),_xor_(A,B)) | (1) |
and(tt,X) | → | X | (30) |
U111(tt) | → | false | (3) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_or_(x,y) | → | _or_(y,x) | (47) |
_or_(_or_(x,y),z) | → | _or_(x,_or_(y,z)) | (50) |
_or_#(_or_(A,B),ext) | → | _or_#(U101(and(isBool(A),isBool(B)),A,B),ext) | (148) |
U21#(tt,A,B,C) | → | _and_#(A,B) | (69) |
_and_#(A,_xor_(B,C)) | → | U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (81) |
U21#(tt,A,B,C) | → | _and_#(A,C) | (70) |
_and_#(_and_(A,A),ext) | → | _and_#(U11(isBool(A),A),ext) | (132) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | _and_#(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (135) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (136) |
_and_#(_and_(false,A),ext) | → | _and_#(U31(isBool(A)),ext) | (142) |
_and_#(_and_(true,A),ext) | → | _and_#(U41(isBool(A),A),ext) | (145) |
_and_#(_and_(x,y),z) | → | _and_#(y,z) | (58) |
_and_#(x,y) | → | _and_#(y,x) | (52) |
_and_#(_and_(x,y),z) | → | _and_#(x,_and_(y,z)) | (55) |
[_and_#(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[_and_(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[U11(x1, x2)] | = | 1 · x1 · x2 |
[isBool(x1)] | = | 1 |
[_xor_(x1, x2)] | = | 1 + 1 · x2 + 1 · x1 |
[U21(x1,...,x4)] | = | 1 + 1 · x3 + 1 · x2 + 1 · x1 · x4 + 1 · x1 · x2 + 1 · x1 · x2 · x4 + 1 · x1 · x2 · x3 |
[and(x1, x2)] | = | 1 · x2 |
[U21#(x1,...,x4)] | = | 1 · x4 + 1 · x3 + 1 · x2 + 1 · x2 · x4 + 1 · x2 · x3 |
[tt] | = | 1 |
[false] | = | 0 |
[U31(x1)] | = | 0 |
[true] | = | 1 |
[U41(x1, x2)] | = | 1 · x2 |
[not_(x1)] | = | 1 + 1 · x1 + 1 · x1 · x1 |
[_isEqualTo_(x1, x2)] | = | 1 · x1 · x2 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[_isNotEqualTo_(x1, x2)] | = | 1 · x1 · x2 |
[_or_(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[U121(x1, x2)] | = | 1 · x2 |
[U111(x1)] | = | 0 |
and(tt,X) | → | X | (30) |
isBool(true) | → | tt | (35) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
U121(tt,A) | → | A | (4) |
U41(tt,A) | → | A | (11) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U11(tt,A) | → | A | (2) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U31(tt) | → | false | (10) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
U111(tt) | → | false | (3) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_and_#(_and_(true,A),ext) | → | _and_#(U41(isBool(A),A),ext) | (145) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (136) |
_and_#(A,_xor_(B,C)) | → | U21#(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (81) |
The dependency pairs are split into 1 component.
_and_#(_and_(A,_xor_(B,C)),ext) | → | _and_#(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (135) |
_and_#(_and_(A,A),ext) | → | _and_#(U11(isBool(A),A),ext) | (132) |
_and_#(_and_(false,A),ext) | → | _and_#(U31(isBool(A)),ext) | (142) |
_and_#(_and_(x,y),z) | → | _and_#(y,z) | (58) |
_and_#(x,y) | → | _and_#(y,x) | (52) |
_and_#(_and_(x,y),z) | → | _and_#(x,_and_(y,z)) | (55) |
[_and_#(x1, x2)] | = | 2 · x2 + 2 · x1 + 2 · x1 · x2 |
[_and_(x1, x2)] | = | 1 · x2 + 1 · x1 + 1 · x1 · x2 |
[U11(x1, x2)] | = | 1 · x2 |
[isBool(x1)] | = | 1 · x1 |
[_xor_(x1, x2)] | = | 1 + 1 · x2 + 1 · x1 |
[U21(x1,...,x4)] | = | 1 + 1 · x4 + 1 · x3 + 2 · x2 + 1 · x2 · x4 + 1 · x2 · x3 |
[and(x1, x2)] | = | 1 · x2 |
[false] | = | 2 |
[U31(x1)] | = | 2 · x1 |
[true] | = | 2 |
[U41(x1, x2)] | = | 1 · x2 |
[U121(x1, x2)] | = | 1 · x2 |
[tt] | = | 2 |
[not_(x1)] | = | 1 · x1 |
[_isEqualTo_(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 + 3 · x1 · x2 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 + 3 · x1 · x2 |
[_isNotEqualTo_(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 + 3 · x1 · x2 |
[_or_(x1, x2)] | = | 2 + 3 · x2 + 3 · x1 |
[U111(x1)] | = | 1 · x1 |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U121(tt,A) | → | A | (4) |
U11(tt,A) | → | A | (2) |
isBool(true) | → | tt | (35) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
U41(tt,A) | → | A | (11) |
U111(tt) | → | false | (3) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U31(tt) | → | false | (10) |
and(tt,X) | → | X | (30) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_and_#(_and_(false,A),ext) | → | _and_#(U31(isBool(A)),ext) | (142) |
[_and_#(x1, x2)] | = | 2 · x2 + 2 · x1 + 2 · x1 · x2 |
[_and_(x1, x2)] | = | 1 + 2 · x2 + 2 · x1 + 2 · x1 · x2 |
[U11(x1, x2)] | = | 1 + 1 · x2 |
[isBool(x1)] | = | 1 |
[_xor_(x1, x2)] | = | 1 + 1 · x2 + 1 · x1 |
[U21(x1,...,x4)] | = | 3 + 2 · x4 + 2 · x3 + 2 · x2 + 2 · x2 · x4 + 2 · x1 · x2 + 2 · x1 · x2 · x3 |
[and(x1, x2)] | = | 1 · x1 · x2 |
[false] | = | 1 |
[U121(x1, x2)] | = | 1 · x2 |
[U111(x1)] | = | 1 |
[U31(x1)] | = | 1 |
[true] | = | 0 |
[U41(x1, x2)] | = | 1 + 1 · x2 |
[tt] | = | 1 |
[not_(x1)] | = | 0 |
[_isEqualTo_(x1, x2)] | = | 0 |
[isUniversal(x1)] | = | 1 |
[_implies_(x1, x2)] | = | 0 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_or_(x1, x2)] | = | 0 |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U41(tt,A) | → | A | (11) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U111(tt) | → | false | (3) |
and(tt,X) | → | X | (30) |
U121(tt,A) | → | A | (4) |
isBool(true) | → | tt | (35) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
U31(tt) | → | false | (10) |
U11(tt,A) | → | A | (2) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_and_#(_and_(x,y),z) | → | _and_#(y,z) | (58) |
[_and_#(x1, x2)] | = | 2 · x2 + 2 · x1 + 1 · x1 · x2 |
[_and_(x1, x2)] | = | 2 + 2 · x2 + 2 · x1 + 1 · x1 · x2 |
[U11(x1, x2)] | = | 2 · x2 + 1 · x1 |
[isBool(x1)] | = | 1 |
[_xor_(x1, x2)] | = | 2 + 1 · x2 + 1 · x1 |
[U21(x1,...,x4)] | = | 3 + 2 · x4 + 2 · x3 + 3 · x2 + 3 · x1 + 1 · x2 · x4 + 1 · x2 · x3 + 1 · x1 · x2 |
[and(x1, x2)] | = | 1 · x1 · x2 |
[U121(x1, x2)] | = | 2 + 1 · x2 |
[tt] | = | 1 |
[U111(x1)] | = | 0 |
[false] | = | 0 |
[U41(x1, x2)] | = | 1 · x2 |
[U31(x1)] | = | 0 |
[true] | = | 2 |
[not_(x1)] | = | 0 |
[_isEqualTo_(x1, x2)] | = | 0 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 0 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_or_(x1, x2)] | = | 0 |
U121(tt,A) | → | A | (4) |
U11(tt,A) | → | A | (2) |
and(tt,X) | → | X | (30) |
U111(tt) | → | false | (3) |
U41(tt,A) | → | A | (11) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U31(tt) | → | false | (10) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
isBool(true) | → | tt | (35) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_and_#(_and_(A,A),ext) | → | _and_#(U11(isBool(A),A),ext) | (132) |
[_and_#(x1, x2)] | = | 2 · x2 + 2 · x1 + 2 · x1 · x2 |
[_and_(x1, x2)] | = | 1 + 2 · x2 + 2 · x1 + 2 · x1 · x2 |
[_xor_(x1, x2)] | = | 2 + 1 · x2 + 1 · x1 |
[U21(x1,...,x4)] | = | 2 + 2 · x4 + 2 · x3 + 3 · x2 + 2 · x1 + 2 · x2 · x4 + 2 · x2 · x3 + 1 · x1 · x2 |
[and(x1, x2)] | = | 1 · x1 · x2 |
[isBool(x1)] | = | 1 |
[U31(x1)] | = | 1 · x1 · x1 |
[tt] | = | 1 |
[false] | = | 0 |
[true] | = | 0 |
[not_(x1)] | = | 0 |
[_isEqualTo_(x1, x2)] | = | 0 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 0 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_or_(x1, x2)] | = | 0 |
[U11(x1, x2)] | = | 1 · x1 · x2 |
[U41(x1, x2)] | = | 1 · x2 |
[U121(x1, x2)] | = | 1 · x2 |
[U111(x1)] | = | 1 + 1 · x1 |
U31(tt) | → | false | (10) |
and(tt,X) | → | X | (30) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
isBool(true) | → | tt | (35) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
U11(tt,A) | → | A | (2) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
U41(tt,A) | → | A | (11) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
U111(tt) | → | false | (3) |
U121(tt,A) | → | A | (4) |
_and_(_and_(x,y),z) | → | _and_(x,_and_(y,z)) | (49) |
_and_(x,y) | → | _and_(y,x) | (46) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_and_#(_and_(A,_xor_(B,C)),ext) | → | _and_#(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (135) |
_xor_#(_xor_(false,A),ext) | → | _xor_#(U121(isBool(A),A),ext) | (156) |
_xor_#(_xor_(A,A),ext) | → | _xor_#(U111(isBool(A)),ext) | (153) |
_xor_#(_xor_(x,y),z) | → | _xor_#(y,z) | (60) |
_xor_#(x,y) | → | _xor_#(y,x) | (54) |
_xor_#(_xor_(x,y),z) | → | _xor_#(x,_xor_(y,z)) | (57) |
[_xor_#(x1, x2)] | = | 3 · x1 + 3 · x2 |
[_xor_(x1, x2)] | = | 3 + 1 · x1 + 1 · x2 |
[U111(x1)] | = | 3 |
[isBool(x1)] | = | 1 |
[false] | = | 3 |
[U121(x1, x2)] | = | 2 + 1 · x1 + 1 · x2 |
[tt] | = | 0 |
[and(x1, x2)] | = | 1 · x2 |
[_isEqualTo_(x1, x2)] | = | 0 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 0 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_or_(x1, x2)] | = | 0 |
[true] | = | 0 |
[_and_(x1, x2)] | = | 0 |
[not_(x1)] | = | 3 · x1 |
U121(tt,A) | → | A | (4) |
U111(tt) | → | false | (3) |
and(tt,X) | → | X | (30) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(true) | → | tt | (35) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
isBool(false) | → | tt | (34) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_xor_#(_xor_(x,y),z) | → | _xor_#(y,z) | (60) |
_xor_#(_xor_(false,A),ext) | → | _xor_#(U121(isBool(A),A),ext) | (156) |
[_xor_#(x1, x2)] | = | 2 · x1 + 2 · x2 |
[_xor_(x1, x2)] | = | 2 + 1 · x1 + 1 · x2 |
[U111(x1)] | = | 0 |
[isBool(x1)] | = | 0 |
[_isEqualTo_(x1, x2)] | = | 0 |
[and(x1, x2)] | = | 3 |
[isUniversal(x1)] | = | 0 |
[_implies_(x1, x2)] | = | 0 |
[_isNotEqualTo_(x1, x2)] | = | 0 |
[_or_(x1, x2)] | = | 0 |
[true] | = | 0 |
[tt] | = | 0 |
[_and_(x1, x2)] | = | 0 |
[false] | = | 0 |
[not_(x1)] | = | 3 · x1 |
[U121(x1, x2)] | = | 1 · x2 |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
U121(tt,A) | → | A | (4) |
U111(tt) | → | false | (3) |
_xor_(x,y) | → | _xor_(y,x) | (48) |
_xor_(_xor_(x,y),z) | → | _xor_(x,_xor_(y,z)) | (51) |
_xor_#(_xor_(A,A),ext) | → | _xor_#(U111(isBool(A)),ext) | (153) |
isBool#(_and_(V1,V2)) | → | isBool#(V2) | (117) |
isBool#(_and_(V1,V2)) | → | isBool#(V1) | (116) |
isBool#(_implies_(V1,V2)) | → | isBool#(V1) | (119) |
isBool#(_implies_(V1,V2)) | → | isBool#(V2) | (120) |
isBool#(_or_(V1,V2)) | → | isBool#(V1) | (124) |
isBool#(_or_(V1,V2)) | → | isBool#(V2) | (125) |
isBool#(_xor_(V1,V2)) | → | isBool#(V1) | (127) |
isBool#(_xor_(V1,V2)) | → | isBool#(V2) | (128) |
isBool#(not_(V1)) | → | isBool#(V1) | (129) |
[isBool#(x1)] | = | 2 · x1 |
[_and_(x1, x2)] | = | 3 · x1 + 1 · x2 |
[_implies_(x1, x2)] | = | 3 · x1 + 3 · x2 |
[not_(x1)] | = | 3 · x1 |
[_or_(x1, x2)] | = | 3 · x1 + 1 · x2 |
[_xor_(x1, x2)] | = | 3 · x1 + 3 · x2 |
isBool#(_and_(V1,V2)) | → | isBool#(V1) | (116) |
isBool#(_implies_(V1,V2)) | → | isBool#(V1) | (119) |
isBool#(_implies_(V1,V2)) | → | isBool#(V2) | (120) |
isBool#(not_(V1)) | → | isBool#(V1) | (129) |
isBool#(_and_(V1,V2)) | → | isBool#(V2) | (117) |
isBool#(_or_(V1,V2)) | → | isBool#(V1) | (124) |
isBool#(_xor_(V1,V2)) | → | isBool#(V2) | (128) |
isBool#(_or_(V1,V2)) | → | isBool#(V2) | (125) |
isBool#(_xor_(V1,V2)) | → | isBool#(V1) | (127) |
U101(tt,A,B) | → | _xor_(_and_(A,B),_xor_(A,B)) | (1) |
U11(tt,A) | → | A | (2) |
U111(tt) | → | false | (3) |
U121(tt,A) | → | A | (4) |
U131(tt,B,U') | → | U132(equal(_isNotEqualTo_(B,true),true),U') | (5) |
U132(tt,U') | → | U' | (6) |
U141(tt,U) | → | U | (7) |
U151(tt,A) | → | _xor_(A,true) | (8) |
U21(tt,A,B,C) | → | _xor_(_and_(A,B),_and_(A,C)) | (9) |
U31(tt) | → | false | (10) |
U41(tt,A) | → | A | (11) |
U51(tt,A,B) | → | not_(_xor_(A,_and_(A,B))) | (12) |
U61(tt,U',U) | → | U62(equal(_isNotEqualTo_(U,U'),true)) | (13) |
U62(tt) | → | false | (14) |
U71(tt) | → | true | (15) |
U81(tt,U',U) | → | if_then_else_fi(_isEqualTo_(U,U'),false,true) | (16) |
U91(tt) | → | false | (17) |
_and_(A,A) | → | U11(isBool(A),A) | (18) |
_and_(A,_xor_(B,C)) | → | U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C) | (19) |
_and_(false,A) | → | U31(isBool(A)) | (20) |
_and_(true,A) | → | U41(isBool(A),A) | (21) |
_implies_(A,B) | → | U51(and(isBool(A),isBool(B)),A,B) | (22) |
_isEqualTo_(U,U') | → | U61(and(isS(U'),isS(U)),U',U) | (23) |
_isEqualTo_(U,U) | → | U71(isS(U)) | (24) |
_isNotEqualTo_(U,U') | → | U81(and(isS(U'),isS(U)),U',U) | (25) |
_isNotEqualTo_(U,U) | → | U91(isS(U)) | (26) |
_or_(A,B) | → | U101(and(isBool(A),isBool(B)),A,B) | (27) |
_xor_(A,A) | → | U111(isBool(A)) | (28) |
_xor_(false,A) | → | U121(isBool(A),A) | (29) |
and(tt,X) | → | X | (30) |
equal(X,X) | → | tt | (31) |
if_then_else_fi(B,U,U') | → | U131(and(isBool(B),and(isS(U'),isS(U))),B,U') | (32) |
if_then_else_fi(true,U,U') | → | U141(and(isS(U'),isS(U)),U) | (33) |
isBool(false) | → | tt | (34) |
isBool(true) | → | tt | (35) |
isBool(_and_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (36) |
isBool(_implies_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (37) |
isBool(_isEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (38) |
isBool(_isNotEqualTo_(V1,V2)) | → | and(isUniversal(V1),isUniversal(V2)) | (39) |
isBool(_or_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (40) |
isBool(_xor_(V1,V2)) | → | and(isBool(V1),isBool(V2)) | (41) |
isBool(not_(V1)) | → | isBool(V1) | (42) |
not_(A) | → | U151(isBool(A),A) | (43) |
not_(false) | → | true | (44) |
not_(true) | → | false | (45) |
_and_(_and_(A,A),ext) | → | _and_(U11(isBool(A),A),ext) | (159) |
_and_(_and_(A,_xor_(B,C)),ext) | → | _and_(U21(and(isBool(A),and(isBool(B),isBool(C))),A,B,C),ext) | (160) |
_and_(_and_(false,A),ext) | → | _and_(U31(isBool(A)),ext) | (161) |
_and_(_and_(true,A),ext) | → | _and_(U41(isBool(A),A),ext) | (162) |
_or_(_or_(A,B),ext) | → | _or_(U101(and(isBool(A),isBool(B)),A,B),ext) | (163) |
_xor_(_xor_(A,A),ext) | → | _xor_(U111(isBool(A)),ext) | (164) |
_xor_(_xor_(false,A),ext) | → | _xor_(U121(isBool(A),A),ext) | (165) |