TestTacletEquality

2016

tests

0

failures

0

ignored

1.753s

duration

100%

successful

Tests

Test Method name Duration Result
[1000] hide_right, hide_right { \find(==>b) \addrules [insert_hidden { \add []==>[b] Choices: true}] \replacewith([]==>[]) Choices: true} testEquality(String, String)[1000] 0.006s passed
[1001] i_minus_i_is_zero, i_minus_i_is_zero { \find(sub(i,i)) \replacewith(Z(0(#))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1001] 0s passed
[1002] identityCastDouble, identityCastDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=(double)#seDouble; ... }\] (post)) \replacewith(#normalassign ( (modal operator))\[{ .. #loc=#seDouble; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1002] 0s passed
[1003] identityCastFloat, identityCastFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=(float)#seFloat; ... }\] (post)) \replacewith(#normalassign ( (modal operator))\[{ .. #loc=#seFloat; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1003] 0s passed
[1004] if, if { \find(#allmodal ( (modal operator))\[{ .. if (#se) #s0 ... }\] (post)) \replacewith(if-then-else(equals(#se,TRUE),#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post),#allmodal(post))) Choices: programRules:Java} testEquality(String, String)[1004] 0s passed
[1005] ifElse, ifElse { \find(#allmodal ( (modal operator))\[{ .. if (#se) #s0 else #s1 ... }\] (post)) \replacewith(if-then-else(equals(#se,TRUE),#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post),#allmodal ( (modal operator))\[{ .. #s1 ... }\] (post))) Choices: programRules:Java} testEquality(String, String)[1005] 0s passed
[1006] ifElseFalse, ifElseFalse { \assumes ([equals(#se,FALSE)]==>[]) \find(==>#allmodal ( (modal operator))\[{ .. if (#se) #s0 else #s1 ... }\] (post)) \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #s1 ... }\] (post)]) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1006] 0s passed
[1007] ifElseSkipElse, ifElseSkipElse { \find(#allmodal ( (modal operator))\[{ .. #loc=true;if (#loc) #s0 else #s1 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #loc=true;#s0 ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1007] 0.001s passed
[1008] ifElseSkipElseConditionInBlock, ifElseSkipElseConditionInBlock { \find(#allmodal ( (modal operator))\[{ .. {#loc=true;}if (#loc) #s0 else #s1 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#loc=true;}#s0 ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1008] 0s passed
[1009] ifElseSkipThen, ifElseSkipThen { \find(#allmodal ( (modal operator))\[{ .. #loc=false;if (#loc) #s0 else #s1 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #loc=false;#s1 ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1009] 0.001s passed
[100] applyEq_or_int3, applyEq_or_int3 { \find(or(or(b,leq(applyEqLeft,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(or(b,leq(applyEqRight,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[100] 0.001s passed
[1010] ifElseSkipThenConditionInBlock, ifElseSkipThenConditionInBlock { \find(#allmodal ( (modal operator))\[{ .. {#loc=false;}if (#loc) #s0 else #s1 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#loc=false;}#s1 ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1010] 0s passed
[1011] ifElseSplit, ifElseSplit { \find(==>#allmodal ( (modal operator))\[{ .. if (#se) #s0 else #s1 ... }\] (post)) \add [equals(#se,FALSE)]==>[] \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #s1 ... }\] (post)]) ; \add [equals(#se,TRUE)]==>[] \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post)]) \heuristics(split_if) Choices: programRules:Java} testEquality(String, String)[1011] 0.001s passed
[1012] ifElseSplitLeft, ifElseSplitLeft { \find(#allmodal ( (modal operator))\[{ .. if (#se) #s0 else #s1 ... }\] (post)==>) \add [equals(#se,FALSE)]==>[] \replacewith([#allmodal ( (modal operator))\[{ .. #s1 ... }\] (post)]==>[]) ; \add [equals(#se,TRUE)]==>[] \replacewith([#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post)]==>[]) \heuristics(split_if) Choices: programRules:Java} testEquality(String, String)[1012] 0.001s passed
[1013] ifElseTrue, ifElseTrue { \assumes ([equals(#se,TRUE)]==>[]) \find(==>#allmodal ( (modal operator))\[{ .. if (#se) #s0 else #s1 ... }\] (post)) \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post)]) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1013] 0s passed
[1014] ifElseUnfold, ifElseUnfold { \find(#allmodal ( (modal operator))\[{ .. if (#nse) #s0 else #s1 ... }\] (post)) \varcond(\new(#boolv (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #boolv;#boolv=#nse;if (#boolv) #s0 else { #s1 } ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1014] 0s passed
[1015] ifEnterThen, ifEnterThen { \find(#allmodal ( (modal operator))\[{ .. #loc=true;if (#loc) #s0 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #loc=true;#s0 ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1015] 0s passed
[1016] ifEnterThenConditionInBlock, ifEnterThenConditionInBlock { \find(#allmodal ( (modal operator))\[{ .. {#loc=true;}if (#loc) #s0 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#loc=true;}#s0 ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1016] 0s passed
[1017] ifEqualsInteger, ifEqualsInteger { \find(equals(if-then-else(phi,x,y),Z(iz))) \replacewith(or(and(phi,equals(x,Z(iz))),and(not(phi),equals(y,Z(iz))))) \heuristics(simplify) Choices: true} testEquality(String, String)[1017] 0s passed
[1018] ifEqualsNull, ifEqualsNull { \find(equals(if-then-else(phi,x,y),null)) \replacewith(or(and(phi,equals(x,null)),and(not(phi),equals(y,null)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1018] 0s passed
[1019] ifEqualsTRUE, ifEqualsTRUE { \find(equals(if-then-else(phi,x,y),TRUE)) \replacewith(or(and(phi,equals(x,TRUE)),and(not(phi),equals(y,TRUE)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1019] 0.002s passed
[101] applyEq_or_int4, applyEq_or_int4 { \find(or(not(equals(applyEqLeft,applyEqRight)),geq(applyEqLeft,applyEqOther))) \replacewith(or(not(equals(applyEqLeft,applyEqRight)),geq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[101] 0.001s passed
[1020] ifExthenelse1_eq, ifExthenelse1_eq { \find(ifExThenElse{intVar (variable)}(equals(intVar,t),then,else)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(subst{intVar (variable)}(t,then)) \heuristics(concrete) Choices: true} testEquality(String, String)[1020] 0s passed
[1021] ifExthenelse1_eq2, ifExthenelse1_eq2 { \find(ifExThenElse{intVar (variable)}(equals(t,intVar),then,else)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(subst{intVar (variable)}(t,then)) \heuristics(concrete) Choices: true} testEquality(String, String)[1021] 0s passed
[1022] ifExthenelse1_eq2_for, ifExthenelse1_eq2_for { \find(ifExThenElse{intVar (variable)}(equals(t,intVar),b,c)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(subst{intVar (variable)}(t,b)) \heuristics(concrete) Choices: true} testEquality(String, String)[1022] 0s passed
[1023] ifExthenelse1_eq2_for_phi, ifExthenelse1_eq2_for_phi { \find(ifExThenElse{intVar (variable)}(and(phi,equals(t,intVar)),b,c)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(if-then-else(subst{intVar (variable)}(t,phi),subst{intVar (variable)}(t,b),c)) \heuristics(concrete) Choices: true} testEquality(String, String)[1023] 0s passed
[1024] ifExthenelse1_eq2_phi, ifExthenelse1_eq2_phi { \find(ifExThenElse{intVar (variable)}(and(phi,equals(t,intVar)),then,else)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(if-then-else(subst{intVar (variable)}(t,phi),subst{intVar (variable)}(t,then),else)) \heuristics(concrete) Choices: true} testEquality(String, String)[1024] 0s passed
[1025] ifExthenelse1_eq_for, ifExthenelse1_eq_for { \find(ifExThenElse{intVar (variable)}(equals(intVar,t),b,c)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(subst{intVar (variable)}(t,b)) \heuristics(concrete) Choices: true} testEquality(String, String)[1025] 0.001s passed
[1026] ifExthenelse1_eq_for_phi, ifExthenelse1_eq_for_phi { \find(ifExThenElse{intVar (variable)}(and(phi,equals(intVar,t)),b,c)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(if-then-else(subst{intVar (variable)}(t,phi),subst{intVar (variable)}(t,b),c)) \heuristics(concrete) Choices: true} testEquality(String, String)[1026] 0.001s passed
[1027] ifExthenelse1_eq_phi, ifExthenelse1_eq_phi { \find(ifExThenElse{intVar (variable)}(and(phi,equals(intVar,t)),then,else)) \varcond(\notFreeIn(intVar (variable), t (int term))) \replacewith(if-then-else(subst{intVar (variable)}(t,phi),subst{intVar (variable)}(t,then),else)) \heuristics(concrete) Choices: true} testEquality(String, String)[1027] 0s passed
[1028] ifExthenelse1_false, ifExthenelse1_false { \find(ifExThenElse{intVar (variable)}(false,then,else)) \replacewith(else) \heuristics(concrete) Choices: true} testEquality(String, String)[1028] 0.001s passed
[1029] ifExthenelse1_false_for, ifExthenelse1_false_for { \find(ifExThenElse{intVar (variable)}(false,b,c)) \replacewith(c) \heuristics(concrete) Choices: true} testEquality(String, String)[1029] 0s passed
[102] applyEq_or_int5, applyEq_or_int5 { \find(or(or(b,not(equals(applyEqLeft,applyEqRight))),geq(applyEqLeft,applyEqOther))) \replacewith(or(or(b,not(equals(applyEqLeft,applyEqRight))),geq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[102] 0.001s passed
[1030] ifExthenelse1_min, ifExthenelse1_min { \find(ifExThenElse{intVar (variable)}(phi,then,else)) \sameUpdateLevel\varcond(\notFreeIn(intVar (variable), phi (formula))) \replacewith(if-then-else(phi,subst{intVar (variable)}(Z(0(#)),then),else)) \heuristics(concrete) Choices: true} testEquality(String, String)[1030] 0.001s passed
[1031] ifExthenelse1_min_for, ifExthenelse1_min_for { \find(ifExThenElse{intVar (variable)}(phi,b,c)) \sameUpdateLevel\varcond(\notFreeIn(intVar (variable), phi (formula))) \replacewith(if-then-else(phi,subst{intVar (variable)}(Z(0(#)),b),c)) \heuristics(concrete) Choices: true} testEquality(String, String)[1031] 0.011s passed
[1032] ifExthenelse1_solve, ifExthenelse1_solve { \find(ifExThenElse{intVar (variable)}(phi,then,else)) \sameUpdateLevel\varcond(\notFreeIn(intVar (variable), intValue (int term))) \add []==>[and(subst{intVar (variable)}(intValue,phi),all{intVar (variable)}(imp(phi,wellOrderLeqInt(intValue,intVar))))] \replacewith(ifExThenElse{intVar (variable)}(phi,then,else)) ; \replacewith(subst{intVar (variable)}(intValue,then)) Choices: true} testEquality(String, String)[1032] 0s passed
[1033] ifExthenelse1_solve_for, ifExthenelse1_solve_for { \find(ifExThenElse{intVar (variable)}(phi,b,c)) \sameUpdateLevel\varcond(\notFreeIn(intVar (variable), intValue (int term))) \add []==>[and(subst{intVar (variable)}(intValue,phi),all{intVar (variable)}(imp(phi,wellOrderLeqInt(intValue,intVar))))] \replacewith(ifExThenElse{intVar (variable)}(phi,b,c)) ; \replacewith(subst{intVar (variable)}(intValue,b)) Choices: true} testEquality(String, String)[1033] 0.001s passed
[1034] ifExthenelse1_split, ifExthenelse1_split { \find(ifExThenElse{intVar (variable)}(phi,then,else)) \sameUpdateLevel\varcond(\notFreeIn(intVar (variable), intSk (int skolem term))) \add []==>[exists{intVar (variable)}(phi)] \replacewith(else) ; \add [subst{intVar (variable)}(intSk,phi),all{intVar (variable)}(imp(phi,wellOrderLeqInt(intSk,intVar)))]==>[] \replacewith(subst{intVar (variable)}(intSk,then)) \heuristics(split_cond) Choices: true} testEquality(String, String)[1034] 0s passed
[1035] ifExthenelse1_split_for, ifExthenelse1_split_for { \find(ifExThenElse{intVar (variable)}(phi,b,c)) \sameUpdateLevel\varcond(\notFreeIn(intVar (variable), intSk (int skolem term))) \add []==>[exists{intVar (variable)}(phi)] \replacewith(c) ; \add [subst{intVar (variable)}(intSk,phi),all{intVar (variable)}(imp(phi,wellOrderLeqInt(intSk,intVar)))]==>[] \replacewith(subst{intVar (variable)}(intSk,b)) \heuristics(split_cond) Choices: true} testEquality(String, String)[1035] 0.001s passed
[1036] ifExthenelse1_unused_var, ifExthenelse1_unused_var { \find(ifExThenElse{intVar (variable)}(phi,then,else)) \varcond(\notFreeIn(intVar (variable), then (G2 term))) \replacewith(if-then-else(exists{intVar (variable)}(phi),then,else)) \heuristics(simplify) Choices: true} testEquality(String, String)[1036] 0s passed
[1037] ifExthenelse1_unused_var_for, ifExthenelse1_unused_var_for { \find(ifExThenElse{intVar (variable)}(phi,b,c)) \varcond(\notFreeIn(intVar (variable), b (formula))) \replacewith(if-then-else(exists{intVar (variable)}(phi),b,c)) \heuristics(simplify) Choices: true} testEquality(String, String)[1037] 0.001s passed
[1038] ifFalse, ifFalse { \assumes ([equals(#se,FALSE)]==>[]) \find(==>#allmodal ( (modal operator))\[{ .. if (#se) #s0 ... }\] (post)) \replacewith([]==>[#allmodal(post)]) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1038] 0s passed
[1039] ifSkipThen, ifSkipThen { \find(#allmodal ( (modal operator))\[{ .. #loc=false;if (#loc) #s0 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #loc=false; ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1039] 0.001s passed
[103] applyEq_or_int6, applyEq_or_int6 { \find(or(not(equals(applyEqLeft,applyEqRight)),leq(applyEqLeft,applyEqOther))) \replacewith(or(not(equals(applyEqLeft,applyEqRight)),leq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[103] 0.002s passed
[1040] ifSkipThenConditionInBlock, ifSkipThenConditionInBlock { \find(#allmodal ( (modal operator))\[{ .. {#loc=false;}if (#loc) #s0 ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#loc=false;} ... }\] (post)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1040] 0s passed
[1041] ifSplit, ifSplit { \find(==>#allmodal ( (modal operator))\[{ .. if (#se) #s0 ... }\] (post)) \add [equals(#se,FALSE)]==>[] \replacewith([]==>[#allmodal(post)]) ; \add [equals(#se,TRUE)]==>[] \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post)]) \heuristics(split_if) Choices: programRules:Java} testEquality(String, String)[1041] 0.005s passed
[1042] ifSplitLeft, ifSplitLeft { \find(#allmodal ( (modal operator))\[{ .. if (#se) #s0 ... }\] (post)==>) \add [equals(#se,FALSE)]==>[] \replacewith([#allmodal(post)]==>[]) ; \add [equals(#se,TRUE)]==>[] \replacewith([#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post)]==>[]) \heuristics(split_if) Choices: programRules:Java} testEquality(String, String)[1042] 0.001s passed
[1043] ifTrue, ifTrue { \assumes ([equals(#se,TRUE)]==>[]) \find(==>#allmodal ( (modal operator))\[{ .. if (#se) #s0 ... }\] (post)) \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #s0 ... }\] (post)]) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1043] 0.001s passed
[1044] ifUnfold, ifUnfold { \find(#allmodal ( (modal operator))\[{ .. if (#nse) #s0 ... }\] (post)) \varcond(\new(#boolv (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #boolv;#boolv=#nse;if (#boolv) #s0 ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1044] 0.007s passed
[1045] ifthenelse_concrete, ifthenelse_concrete { \find(if-then-else(phi,true,false)) \replacewith(phi) \heuristics(concrete) Choices: true} testEquality(String, String)[1045] 0s passed
[1046] ifthenelse_concrete2, ifthenelse_concrete2 { \find(if-then-else(phi,false,true)) \replacewith(not(phi)) \heuristics(concrete) Choices: true} testEquality(String, String)[1046] 0.001s passed
[1047] ifthenelse_concrete3, ifthenelse_concrete3 { \find(equals(if-then-else(phi,then,else),then)) \replacewith(or(phi,equals(else,then))) \heuristics(concrete) Choices: true} testEquality(String, String)[1047] 0s passed
[1048] ifthenelse_concrete4, ifthenelse_concrete4 { \find(equals(if-then-else(phi,then,else),else)) \replacewith(or(not(phi),equals(then,else))) \heuristics(concrete) Choices: true} testEquality(String, String)[1048] 0s passed
[1049] ifthenelse_equals, ifthenelse_equals { \find(equals(if-then-else(b,TRUE,FALSE),if-then-else(c,TRUE,FALSE))) \replacewith(equiv(b,c)) \heuristics(concrete) Choices: true} testEquality(String, String)[1049] 0s passed
[104] applyEq_or_int7, applyEq_or_int7 { \find(or(or(b,not(equals(applyEqLeft,applyEqRight))),leq(applyEqLeft,applyEqOther))) \replacewith(or(or(b,not(equals(applyEqLeft,applyEqRight))),leq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[104] 0.001s passed
[1050] ifthenelse_equals_1, ifthenelse_equals_1 { \find(equals(if-then-else(b,TRUE,FALSE),c)) \replacewith(equiv(b,equals(c,TRUE))) Choices: true} testEquality(String, String)[1050] 0s passed
[1051] ifthenelse_equals_2, ifthenelse_equals_2 { \find(equals(b,if-then-else(c,TRUE,FALSE))) \replacewith(equiv(equals(b,TRUE),c)) Choices: true} testEquality(String, String)[1051] 0s passed
[1052] ifthenelse_false, ifthenelse_false { \find(if-then-else(false,then,else)) \replacewith(else) \heuristics(concrete) Choices: true} testEquality(String, String)[1052] 0s passed
[1053] ifthenelse_false_for, ifthenelse_false_for { \find(if-then-else(false,b,c)) \replacewith(c) \heuristics(concrete) Choices: true} testEquality(String, String)[1053] 0s passed
[1054] ifthenelse_negated, ifthenelse_negated { \find(if-then-else(not(phi),then,else)) \replacewith(if-then-else(phi,else,then)) \heuristics(simplify) Choices: true} testEquality(String, String)[1054] 0s passed
[1055] ifthenelse_negated_for, ifthenelse_negated_for { \find(if-then-else(not(phi),b,c)) \replacewith(if-then-else(phi,c,b)) \heuristics(simplify) Choices: true} testEquality(String, String)[1055] 0s passed
[1056] ifthenelse_same_branches, ifthenelse_same_branches { \find(if-then-else(phi,then,then)) \replacewith(then) \heuristics(concrete) Choices: true} testEquality(String, String)[1056] 0.001s passed
[1057] ifthenelse_same_branches_for, ifthenelse_same_branches_for { \find(if-then-else(phi,b,b)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[1057] 0s passed
[1058] ifthenelse_split, ifthenelse_split { \find(if-then-else(phi,then,else)) \sameUpdateLevel\add []==>[phi] \replacewith(else) ; \add [phi]==>[] \replacewith(then) \heuristics(split_cond) Choices: true} testEquality(String, String)[1058] 0.001s passed
[1059] ifthenelse_split_for, ifthenelse_split_for { \find(if-then-else(phi,b,c)) \sameUpdateLevel\add []==>[phi] \replacewith(c) ; \add [phi]==>[] \replacewith(b) \heuristics(split_cond) Choices: true} testEquality(String, String)[1059] 0.141s passed
[105] applyOnElementary, applyOnElementary { \find(update-application(u,elem-update(#pv (program Variable))(t))) \replacewith(elem-update(#pv (program Variable))(update-application(u,t))) \heuristics(update_apply_on_update) Choices: true} testEquality(String, String)[105] 0s passed
[1060] ifthenelse_to_or_for, ifthenelse_to_or_for { \find(if-then-else(phi,b,c)) \replacewith(and(or(not(phi),b),or(phi,c))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[1060] 0s passed
[1061] ifthenelse_to_or_for2, ifthenelse_to_or_for2 { \find(not(if-then-else(phi,b,c))) \replacewith(and(or(not(phi),not(b)),or(phi,not(c)))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[1061] 0.001s passed
[1062] ifthenelse_to_or_left, ifthenelse_to_or_left { \find(equals(if-then-else(phi,then,else),t)) \replacewith(and(or(not(phi),equals(then,t)),or(phi,equals(else,t)))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[1062] 0s passed
[1063] ifthenelse_to_or_left2, ifthenelse_to_or_left2 { \find(not(equals(if-then-else(phi,then,else),t))) \replacewith(and(or(not(phi),not(equals(then,t))),or(phi,not(equals(else,t))))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[1063] 0.001s passed
[1064] ifthenelse_to_or_right, ifthenelse_to_or_right { \find(equals(t,if-then-else(phi,then,else))) \replacewith(and(or(not(phi),equals(t,then)),or(phi,equals(t,else)))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[1064] 0s passed
[1065] ifthenelse_to_or_right2, ifthenelse_to_or_right2 { \find(not(equals(t,if-then-else(phi,then,else)))) \replacewith(and(or(not(phi),not(equals(t,then))),or(phi,not(equals(t,else))))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[1065] 0.001s passed
[1066] ifthenelse_true, ifthenelse_true { \find(if-then-else(true,then,else)) \replacewith(then) \heuristics(concrete) Choices: true} testEquality(String, String)[1066] 0s passed
[1067] ifthenelse_true_for, ifthenelse_true_for { \find(if-then-else(true,b,c)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[1067] 0.001s passed
[1068] impLeft, impLeft { \find(imp(b,c)==>) \replacewith([c]==>[]) ; \replacewith([]==>[b]) \heuristics(beta) Choices: true} testEquality(String, String)[1068] 0s passed
[1069] impRight, impRight { \find(==>imp(b,c)) \replacewith([b]==>[c]) \heuristics(alpha) Choices: true} testEquality(String, String)[1069] 0.001s passed
[106] applyOnPV, applyOnPV { \find(update-application(elem-update(#pv (program Variable))(t),#pv)) \replacewith(t) \heuristics(update_elim) Choices: true} testEquality(String, String)[106] 0s passed
[1070] inByte, inByte { \find(inByte(i)) \replacewith(true) \heuristics(concrete) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1070] 0s passed
[1071] inChar, inChar { \find(inChar(i)) \replacewith(true) \heuristics(concrete) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1071] 0.001s passed
[1072] inDomainConcrete, inDomainConcrete { \assumes ([]==>[equals(mapUndef,y)]) \find(equals(mapGet(m,x),y)==>) \add [inDomain(m,x)]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1072] 0s passed
[1073] inDomainOfMapEmpty, inDomainOfMapEmpty { \find(inDomain(mapEmpty,x)) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1073] 0.001s passed
[1074] inDomainOfMapForeach, inDomainOfMapForeach { \find(inDomain(mapForeach{v (variable)}(b,y),x)) \replacewith(and(equals(subst{v (variable)}(alpha::cast(x),b),TRUE),equals(alpha::instance(x),TRUE))) \heuristics(simplify) Choices: true} testEquality(String, String)[1074] 0s passed
[1075] inDomainOfMapOverride, inDomainOfMapOverride { \find(inDomain(mapOverride(m0,m1),x)) \replacewith(or(inDomain(m0,x),inDomain(m1,x))) \heuristics(simplify) Choices: true} testEquality(String, String)[1075] 0s passed
[1076] inDomainOfMapRemove, inDomainOfMapRemove { \find(inDomain(mapRemove(m,key),x)) \replacewith(and(inDomain(m,x),not(equals(x,key)))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1076] 0.002s passed
[1077] inDomainOfMapSingleton, inDomainOfMapSingleton { \find(inDomain(mapSingleton(x,y),z)) \replacewith(equals(x,z)) \heuristics(simplify) Choices: true} testEquality(String, String)[1077] 0.001s passed
[1078] inDomainOfMapUpdate, inDomainOfMapUpdate { \find(inDomain(mapUpdate(m,key,value),x)) \replacewith(or(inDomain(m,x),equals(x,key))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1078] 0s passed
[1079] inDomainOfSeq2Map, inDomainOfSeq2Map { \find(inDomain(seq2map(s),x)) \replacewith(and(and(equals(int::instance(x),TRUE),leq(Z(0(#)),int::cast(x))),lt(int::cast(x),seqLen(s)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1079] 0.001s passed
[107] applyOnParallel, applyOnParallel { \find(update-application(u,parallel-upd(u2,u3))) \replacewith(parallel-upd(update-application(u,u2),update-application(u,u3))) \heuristics(update_apply_on_update) Choices: true} testEquality(String, String)[107] 0.001s passed
[1080] inEqSimp_and_antiSymm0, inEqSimp_and_antiSymm0 { \find(and(leq(i,i0),geq(i,i0))) \replacewith(equals(i,i0)) \heuristics(inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1080] 0s passed
[1081] inEqSimp_and_antiSymm1, inEqSimp_and_antiSymm1 { \find(and(and(b,leq(i,i0)),geq(i,i0))) \replacewith(and(b,equals(i,i0))) \heuristics(inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1081] 0.001s passed
[1082] inEqSimp_and_contradInEq0, inEqSimp_and_contradInEq0 { \find(and(leq(contradLeft,contradRightSmaller),geq(contradLeft,contradRightBigger))) \replacewith(and(and(leq(contradLeft,contradRightSmaller),geq(contradLeft,contradRightBigger)),geq(contradRightSmaller,contradRightBigger))) \heuristics(notHumanReadable, inEqSimp_and_contradInEqs, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1082] 0s passed
[1083] inEqSimp_and_contradInEq1, inEqSimp_and_contradInEq1 { \find(and(and(b,leq(contradLeft,contradRightSmaller)),geq(contradLeft,contradRightBigger))) \replacewith(and(and(and(b,leq(contradLeft,contradRightSmaller)),geq(contradLeft,contradRightBigger)),geq(contradRightSmaller,contradRightBigger))) \heuristics(notHumanReadable, inEqSimp_and_contradInEqs, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1083] 0.001s passed
[1084] inEqSimp_and_strengthen0, inEqSimp_and_strengthen0 { \find(and(leq(strengthenLeft,strengthenRight),not(equals(strengthenLeft,strengthenRight)))) \replacewith(leq(strengthenLeft,add(Z(neglit(1(#))),strengthenRight))) \heuristics(notHumanReadable, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1084] 0.001s passed
[1085] inEqSimp_and_strengthen1, inEqSimp_and_strengthen1 { \find(and(geq(strengthenLeft,strengthenRight),not(equals(strengthenLeft,strengthenRight)))) \replacewith(geq(strengthenLeft,add(Z(1(#)),strengthenRight))) \heuristics(notHumanReadable, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1085] 0s passed
[1086] inEqSimp_and_strengthen2, inEqSimp_and_strengthen2 { \find(and(and(b,leq(strengthenLeft,strengthenRight)),not(equals(strengthenLeft,strengthenRight)))) \replacewith(and(b,leq(strengthenLeft,add(Z(neglit(1(#))),strengthenRight)))) \heuristics(notHumanReadable, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1086] 0.001s passed
[1087] inEqSimp_and_strengthen3, inEqSimp_and_strengthen3 { \find(and(and(b,geq(strengthenLeft,strengthenRight)),not(equals(strengthenLeft,strengthenRight)))) \replacewith(and(b,geq(strengthenLeft,add(Z(1(#)),strengthenRight)))) \heuristics(notHumanReadable, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1087] 0s passed
[1088] inEqSimp_and_subsumption0, inEqSimp_and_subsumption0 { \find(and(leq(subsumLeft,subsumRightSmaller),leq(subsumLeft,subsumRightBigger))) \replacewith(and(leq(subsumLeft,subsumRightSmaller),or(leq(subsumRightSmaller,subsumRightBigger),leq(subsumLeft,subsumRightBigger)))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1088] 0.001s passed
[1089] inEqSimp_and_subsumption1, inEqSimp_and_subsumption1 { \find(and(and(b,leq(subsumLeft,subsumRightSmaller)),leq(subsumLeft,subsumRightBigger))) \replacewith(and(and(b,leq(subsumLeft,subsumRightSmaller)),or(leq(subsumRightSmaller,subsumRightBigger),leq(subsumLeft,subsumRightBigger)))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1089] 0s passed
[108] applyOnRigidFormula, applyOnRigidFormula { \find(update-application(u,phi)) \varcond(\applyUpdateOnRigid(u (update), phi (formula), result (formula)), ) \replacewith(result) \heuristics(update_apply) Choices: true} testEquality(String, String)[108] 0.007s passed
[1090] inEqSimp_and_subsumption2, inEqSimp_and_subsumption2 { \find(and(geq(subsumLeft,subsumRightSmaller),geq(subsumLeft,subsumRightBigger))) \replacewith(and(or(leq(subsumRightSmaller,subsumRightBigger),geq(subsumLeft,subsumRightSmaller)),geq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1090] 0s passed
[1091] inEqSimp_and_subsumption3, inEqSimp_and_subsumption3 { \find(and(and(b,geq(subsumLeft,subsumRightSmaller)),geq(subsumLeft,subsumRightBigger))) \replacewith(and(and(b,or(leq(subsumRightSmaller,subsumRightBigger),geq(subsumLeft,subsumRightSmaller))),geq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1091] 0s passed
[1092] inEqSimp_and_subsumption4, inEqSimp_and_subsumption4 { \find(and(leq(subsumLeft,subsumRightSmaller),not(equals(subsumLeft,subsumRightBigger)))) \replacewith(and(leq(subsumLeft,subsumRightSmaller),or(lt(subsumRightSmaller,subsumRightBigger),not(equals(subsumLeft,subsumRightBigger))))) \heuristics(notHumanReadable, inEqSimp_and_subsumptionEq, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1092] 0s passed
[1093] inEqSimp_and_subsumption5, inEqSimp_and_subsumption5 { \find(and(and(b,leq(subsumLeft,subsumRightSmaller)),not(equals(subsumLeft,subsumRightBigger)))) \replacewith(and(and(b,leq(subsumLeft,subsumRightSmaller)),or(lt(subsumRightSmaller,subsumRightBigger),not(equals(subsumLeft,subsumRightBigger))))) \heuristics(notHumanReadable, inEqSimp_and_subsumptionEq, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1093] 0s passed
[1094] inEqSimp_and_subsumption6, inEqSimp_and_subsumption6 { \find(and(geq(subsumLeft,subsumRightBigger),not(equals(subsumLeft,subsumRightSmaller)))) \replacewith(and(geq(subsumLeft,subsumRightBigger),or(lt(subsumRightSmaller,subsumRightBigger),not(equals(subsumLeft,subsumRightSmaller))))) \heuristics(notHumanReadable, inEqSimp_and_subsumptionEq, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1094] 0s passed
[1095] inEqSimp_and_subsumption7, inEqSimp_and_subsumption7 { \find(and(and(b,geq(subsumLeft,subsumRightBigger)),not(equals(subsumLeft,subsumRightSmaller)))) \replacewith(and(and(b,geq(subsumLeft,subsumRightBigger)),or(lt(subsumRightSmaller,subsumRightBigger),not(equals(subsumLeft,subsumRightSmaller))))) \heuristics(notHumanReadable, inEqSimp_and_subsumptionEq, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1095] 0s passed
[1096] inEqSimp_antiSymm, inEqSimp_antiSymm { \assumes ([leq(i,i0)]==>[]) \find(geq(i,i0)==>) \add [equals(i,i0)]==>[] \heuristics(inEqSimp_antiSymm, inEqSimp_saturate) Choices: true} testEquality(String, String)[1096] 0s passed
[1097] inEqSimp_commuteGeq, inEqSimp_commuteGeq { \find(geq(commLeft,commRight)) \replacewith(leq(commRight,commLeft)) \heuristics(inEqSimp_commute, inEqSimp_expand) Choices: true} testEquality(String, String)[1097] 0s passed
[1098] inEqSimp_commuteLeq, inEqSimp_commuteLeq { \find(leq(commLeft,commRight)) \replacewith(geq(commRight,commLeft)) \heuristics(inEqSimp_commute, inEqSimp_expand) Choices: true} testEquality(String, String)[1098] 0.001s passed
[1099] inEqSimp_contradEq3, inEqSimp_contradEq3 { \assumes ([leq(contradLeft,contradRightSmaller)]==>[]) \find(equals(contradLeft,contradRightBigger)) \sameUpdateLevel\replacewith(and(geq(add(contradRightSmaller,mul(Z(neglit(1(#))),contradRightBigger)),Z(0(#))),equals(contradLeft,contradRightBigger))) \heuristics(notHumanReadable, inEqSimp_contradEqs, inEqSimp_propagation) Choices: true} testEquality(String, String)[1099] 0s passed
[109] applyOnRigidTerm, applyOnRigidTerm { \find(update-application(u,t)) \varcond(\applyUpdateOnRigid(u (update), t (any term), result (any term)), ) \replacewith(result) \heuristics(update_apply) Choices: true} testEquality(String, String)[109] 0.001s passed
[10] activeUseBitwiseOr, activeUseBitwiseOr { \find(#allmodal ( (modal operator))\[{ .. #sv=#left|#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left|#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[10] 0.002s passed
[1100] inEqSimp_contradEq7, inEqSimp_contradEq7 { \assumes ([geq(contradLeft,contradRightBigger)]==>[]) \find(equals(contradLeft,contradRightSmaller)) \sameUpdateLevel\replacewith(and(leq(add(contradRightBigger,mul(Z(neglit(1(#))),contradRightSmaller)),Z(0(#))),equals(contradLeft,contradRightSmaller))) \heuristics(notHumanReadable, inEqSimp_contradEqs, inEqSimp_propagation) Choices: true} testEquality(String, String)[1100] 0s passed
[1101] inEqSimp_contradInEq0, inEqSimp_contradInEq0 { \assumes ([leq(contradLeft,contradRightSmaller)]==>[]) \find(geq(contradLeft,contradRightBigger)) \sameUpdateLevel\replacewith(and(geq(contradRightSmaller,contradRightBigger),geq(contradLeft,contradRightBigger))) \heuristics(notHumanReadable, inEqSimp_contradInEqs, inEqSimp_propagation) Choices: true} testEquality(String, String)[1101] 0s passed
[1102] inEqSimp_contradInEq1, inEqSimp_contradInEq1 { \assumes ([geq(contradLeft,contradRightBigger)]==>[]) \find(leq(contradLeft,contradRightSmaller)) \sameUpdateLevel\replacewith(and(geq(contradRightSmaller,contradRightBigger),leq(contradLeft,contradRightSmaller))) \heuristics(notHumanReadable, inEqSimp_contradInEqs, inEqSimp_propagation) Choices: true} testEquality(String, String)[1102] 0.001s passed
[1103] inEqSimp_contradInEq2, inEqSimp_contradInEq2 { \assumes ([leq(mul(contradLeft,contradCoeffSmaller),contradRightSmaller)]==>[]) \find(geq(mul(contradLeft,contradCoeffBigger),contradRightBigger)) \sameUpdateLevel\replacewith(and(imp(gt(contradCoeffSmaller,Z(0(#))),imp(gt(contradCoeffBigger,Z(0(#))),geq(mul(contradCoeffBigger,contradRightSmaller),mul(contradCoeffSmaller,contradRightBigger)))),geq(mul(contradLeft,contradCoeffBigger),contradRightBigger))) \heuristics(notHumanReadable, inEqSimp_contradInEqs, inEqSimp_propagation) Ch… testEquality(String, String)[1103] 0s passed
[1104] inEqSimp_contradInEq3, inEqSimp_contradInEq3 { \assumes ([leq(contradLeft,contradRightSmaller)]==>[]) \find(geq(mul(contradLeft,contradCoeffBigger),contradRightBigger)) \sameUpdateLevel\replacewith(and(imp(gt(contradCoeffBigger,Z(0(#))),geq(mul(contradCoeffBigger,contradRightSmaller),contradRightBigger)),geq(mul(contradLeft,contradCoeffBigger),contradRightBigger))) \heuristics(notHumanReadable, inEqSimp_contradInEqs, inEqSimp_propagation) Choices: true} testEquality(String, String)[1104] 0s passed
[1105] inEqSimp_contradInEq4, inEqSimp_contradInEq4 { \assumes ([geq(mul(contradLeft,contradCoeffBigger),contradRightBigger)]==>[]) \find(leq(mul(contradLeft,contradCoeffSmaller),contradRightSmaller)) \sameUpdateLevel\replacewith(and(imp(gt(contradCoeffSmaller,Z(0(#))),imp(gt(contradCoeffBigger,Z(0(#))),geq(mul(contradCoeffBigger,contradRightSmaller),mul(contradCoeffSmaller,contradRightBigger)))),leq(mul(contradLeft,contradCoeffSmaller),contradRightSmaller))) \heuristics(notHumanReadable, inEqSimp_contradInEqs, inEqSimp_propagation) … testEquality(String, String)[1105] 0s passed
[1106] inEqSimp_contradInEq5, inEqSimp_contradInEq5 { \assumes ([geq(contradLeft,contradRightBigger)]==>[]) \find(leq(mul(contradLeft,contradCoeffSmaller),contradRightSmaller)) \sameUpdateLevel\replacewith(and(imp(gt(contradCoeffSmaller,Z(0(#))),geq(contradRightSmaller,mul(contradCoeffSmaller,contradRightBigger))),leq(mul(contradLeft,contradCoeffSmaller),contradRightSmaller))) \heuristics(notHumanReadable, inEqSimp_contradInEqs, inEqSimp_propagation) Choices: true} testEquality(String, String)[1106] 0s passed
[1107] inEqSimp_exactShadow0, inEqSimp_exactShadow0 { \assumes ([leq(mul(esLeft,esCoeff1),esRight1)]==>[]) \find(geq(mul(esLeft,esCoeff2),esRight2)==>) \add [imp(and(gt(esCoeff1,Z(0(#))),gt(esCoeff2,Z(0(#)))),geq(add(mul(Z(neglit(1(#))),mul(esCoeff1,esRight2)),mul(esCoeff2,esRight1)),Z(0(#))))]==>[] \heuristics(notHumanReadable, inEqSimp_exactShadow, inEqSimp_saturate) Choices: true} testEquality(String, String)[1107] 0s passed
[1108] inEqSimp_exactShadow1, inEqSimp_exactShadow1 { \assumes ([leq(esLeft,esRight1)]==>[]) \find(geq(mul(esLeft,esCoeff2),esRight2)==>) \add [imp(gt(esCoeff2,Z(0(#))),geq(add(mul(Z(neglit(1(#))),esRight2),mul(esCoeff2,esRight1)),Z(0(#))))]==>[] \heuristics(notHumanReadable, inEqSimp_exactShadow, inEqSimp_saturate) Choices: true} testEquality(String, String)[1108] 0s passed
[1109] inEqSimp_exactShadow2, inEqSimp_exactShadow2 { \assumes ([leq(mul(esLeft,esCoeff1),esRight1)]==>[]) \find(geq(esLeft,esRight2)==>) \add [imp(gt(esCoeff1,Z(0(#))),geq(add(mul(Z(neglit(1(#))),mul(esCoeff1,esRight2)),esRight1),Z(0(#))))]==>[] \heuristics(notHumanReadable, inEqSimp_exactShadow, inEqSimp_saturate) Choices: true} testEquality(String, String)[1109] 0s passed
[110] applyOnSkip, applyOnSkip { \find(update-application(u,skip)) \replacewith(skip) \heuristics(update_elim) Choices: true} testEquality(String, String)[110] 0.004s passed
[1110] inEqSimp_exactShadow3, inEqSimp_exactShadow3 { \assumes ([leq(esLeft,esRight1)]==>[]) \find(geq(esLeft,esRight2)==>) \add [geq(add(mul(Z(neglit(1(#))),esRight2),esRight1),Z(0(#)))]==>[] \heuristics(notHumanReadable, inEqSimp_exactShadow, inEqSimp_saturate) Choices: true} testEquality(String, String)[1110] 0s passed
[1111] inEqSimp_geqRight, inEqSimp_geqRight { \find(==>geq(i,i0)) \replacewith([leq(add(add(Z(1(#)),mul(Z(neglit(1(#))),i0)),i),Z(0(#)))]==>[]) \heuristics(notHumanReadable, inEqSimp_moveLeft, inEqSimp_expand) Choices: true} testEquality(String, String)[1111] 0s passed
[1112] inEqSimp_gtRight, inEqSimp_gtRight { \find(==>gt(i,i0)) \replacewith([leq(add(mul(Z(neglit(1(#))),i0),i),Z(0(#)))]==>[]) \heuristics(notHumanReadable, inEqSimp_moveLeft, inEqSimp_expand) Choices: true} testEquality(String, String)[1112] 0s passed
[1113] inEqSimp_gtToGeq, inEqSimp_gtToGeq { \find(gt(i,i0)) \replacewith(geq(add(add(Z(neglit(1(#))),mul(Z(neglit(1(#))),i0)),i),Z(0(#)))) \heuristics(notHumanReadable, inEqSimp_makeNonStrict, inEqSimp_expand) Choices: true} testEquality(String, String)[1113] 0s passed
[1114] inEqSimp_homoInEq0, inEqSimp_homoInEq0 { \find(leq(homoLeft,homoRight)) \replacewith(geq(add(homoRight,mul(homoLeft,Z(neglit(1(#))))),Z(0(#)))) \heuristics(notHumanReadable, inEqSimp_homo, inEqSimp_expand) Choices: true} testEquality(String, String)[1114] 0s passed
[1115] inEqSimp_homoInEq1, inEqSimp_homoInEq1 { \find(geq(homoLeft,homoRight)) \replacewith(leq(add(homoRight,mul(homoLeft,Z(neglit(1(#))))),Z(0(#)))) \heuristics(notHumanReadable, inEqSimp_homo, inEqSimp_expand) Choices: true} testEquality(String, String)[1115] 0s passed
[1116] inEqSimp_invertInEq0, inEqSimp_invertInEq0 { \find(leq(invertLeft,invertRight)) \replacewith(geq(mul(invertLeft,Z(neglit(1(#)))),mul(invertRight,Z(neglit(1(#)))))) \heuristics(notHumanReadable, inEqSimp_normalise, inEqSimp_directInEquations) Choices: true} testEquality(String, String)[1116] 0.001s passed
[1117] inEqSimp_invertInEq1, inEqSimp_invertInEq1 { \find(geq(invertLeft,invertRight)) \replacewith(leq(mul(invertLeft,Z(neglit(1(#)))),mul(invertRight,Z(neglit(1(#)))))) \heuristics(notHumanReadable, inEqSimp_normalise, inEqSimp_directInEquations) Choices: true} testEquality(String, String)[1117] 0s passed
[1118] inEqSimp_leqRight, inEqSimp_leqRight { \find(==>leq(i,i0)) \replacewith([geq(add(add(Z(neglit(1(#))),mul(Z(neglit(1(#))),i0)),i),Z(0(#)))]==>[]) \heuristics(notHumanReadable, inEqSimp_moveLeft, inEqSimp_expand) Choices: true} testEquality(String, String)[1118] 0.001s passed
[1119] inEqSimp_ltRight, inEqSimp_ltRight { \find(==>lt(i,i0)) \replacewith([geq(add(mul(Z(neglit(1(#))),i0),i),Z(0(#)))]==>[]) \heuristics(notHumanReadable, inEqSimp_moveLeft, inEqSimp_expand) Choices: true} testEquality(String, String)[1119] 0s passed
[111] applySkip1, applySkip1 { \find(update-application(skip,t)) \replacewith(t) \heuristics(concrete) Choices: true} testEquality(String, String)[111] 0.001s passed
[1120] inEqSimp_ltToLeq, inEqSimp_ltToLeq { \find(lt(i,i0)) \replacewith(leq(add(add(Z(1(#)),mul(Z(neglit(1(#))),i0)),i),Z(0(#)))) \heuristics(notHumanReadable, inEqSimp_makeNonStrict, inEqSimp_expand) Choices: true} testEquality(String, String)[1120] 0.001s passed
[1121] inEqSimp_notGeq, inEqSimp_notGeq { \find(not(geq(i,i0))) \replacewith(leq(add(add(Z(1(#)),mul(Z(neglit(1(#))),i0)),i),Z(0(#)))) \heuristics(notHumanReadable, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1121] 0s passed
[1122] inEqSimp_notLeq, inEqSimp_notLeq { \find(not(leq(i,i0))) \replacewith(geq(add(add(Z(neglit(1(#))),mul(Z(neglit(1(#))),i0)),i),Z(0(#)))) \heuristics(notHumanReadable, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1122] 0.001s passed
[1123] inEqSimp_or_antiSymm0, inEqSimp_or_antiSymm0 { \find(or(leq(antiSymmLeft,antiSymmRightSmaller),geq(antiSymmLeft,antiSymmRightBigger))) \replacewith(if-then-else(equals(add(Z(2(#)),antiSymmRightSmaller),antiSymmRightBigger),not(equals(antiSymmLeft,add(Z(1(#)),antiSymmRightSmaller))),or(leq(antiSymmLeft,antiSymmRightSmaller),geq(antiSymmLeft,antiSymmRightBigger)))) \heuristics(notHumanReadable, inEqSimp_or_antiSymm, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1123] 0s passed
[1124] inEqSimp_or_antiSymm1, inEqSimp_or_antiSymm1 { \find(or(or(b,leq(antiSymmLeft,antiSymmRightSmaller)),geq(antiSymmLeft,antiSymmRightBigger))) \replacewith(or(b,if-then-else(equals(add(Z(2(#)),antiSymmRightSmaller),antiSymmRightBigger),not(equals(antiSymmLeft,add(Z(1(#)),antiSymmRightSmaller))),or(leq(antiSymmLeft,antiSymmRightSmaller),geq(antiSymmLeft,antiSymmRightBigger))))) \heuristics(notHumanReadable, inEqSimp_or_antiSymm, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1124] 0.001s passed
[1125] inEqSimp_or_subsumption0, inEqSimp_or_subsumption0 { \find(or(leq(subsumLeft,subsumRightSmaller),leq(subsumLeft,subsumRightBigger))) \replacewith(or(and(geq(subsumRightSmaller,subsumRightBigger),leq(subsumLeft,subsumRightSmaller)),leq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1125] 0s passed
[1126] inEqSimp_or_subsumption1, inEqSimp_or_subsumption1 { \find(or(or(b,leq(subsumLeft,subsumRightSmaller)),leq(subsumLeft,subsumRightBigger))) \replacewith(or(or(b,and(geq(subsumRightSmaller,subsumRightBigger),leq(subsumLeft,subsumRightSmaller))),leq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1126] 0.001s passed
[1127] inEqSimp_or_subsumption2, inEqSimp_or_subsumption2 { \find(or(geq(subsumLeft,subsumRightSmaller),geq(subsumLeft,subsumRightBigger))) \replacewith(or(geq(subsumLeft,subsumRightSmaller),and(geq(subsumRightSmaller,subsumRightBigger),geq(subsumLeft,subsumRightBigger)))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1127] 0s passed
[1128] inEqSimp_or_subsumption3, inEqSimp_or_subsumption3 { \find(or(or(b,geq(subsumLeft,subsumRightSmaller)),geq(subsumLeft,subsumRightBigger))) \replacewith(or(or(b,geq(subsumLeft,subsumRightSmaller)),and(geq(subsumRightSmaller,subsumRightBigger),geq(subsumLeft,subsumRightBigger)))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1128] 0.001s passed
[1129] inEqSimp_or_subsumption4, inEqSimp_or_subsumption4 { \find(or(equals(subsumLeft,subsumRightSmaller),leq(subsumLeft,subsumRightBigger))) \replacewith(or(and(gt(subsumRightSmaller,subsumRightBigger),equals(subsumLeft,subsumRightSmaller)),leq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1129] 0s passed
[112] applySkip2, applySkip2 { \find(update-application(skip,phi)) \replacewith(phi) \heuristics(update_elim) Choices: true} testEquality(String, String)[112] 0.001s passed
[1130] inEqSimp_or_subsumption5, inEqSimp_or_subsumption5 { \find(or(or(b,equals(subsumLeft,subsumRightSmaller)),leq(subsumLeft,subsumRightBigger))) \replacewith(or(or(b,and(gt(subsumRightSmaller,subsumRightBigger),equals(subsumLeft,subsumRightSmaller))),leq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1130] 0s passed
[1131] inEqSimp_or_subsumption6, inEqSimp_or_subsumption6 { \find(or(geq(subsumLeft,subsumRightSmaller),equals(subsumLeft,subsumRightBigger))) \replacewith(or(geq(subsumLeft,subsumRightSmaller),and(gt(subsumRightSmaller,subsumRightBigger),equals(subsumLeft,subsumRightBigger)))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1131] 0s passed
[1132] inEqSimp_or_subsumption7, inEqSimp_or_subsumption7 { \find(or(or(b,geq(subsumLeft,subsumRightSmaller)),equals(subsumLeft,subsumRightBigger))) \replacewith(or(or(b,geq(subsumLeft,subsumRightSmaller)),and(gt(subsumRightSmaller,subsumRightBigger),equals(subsumLeft,subsumRightBigger)))) \heuristics(notHumanReadable, inEqSimp_andOr_subsumption, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1132] 0s passed
[1133] inEqSimp_or_tautInEq0, inEqSimp_or_tautInEq0 { \find(or(leq(tautLeft,tautRightBigger),geq(tautLeft,tautRightSmaller))) \replacewith(or(or(leq(tautLeft,tautRightBigger),geq(tautLeft,tautRightSmaller)),geq(tautRightBigger,add(Z(neglit(1(#))),tautRightSmaller)))) \heuristics(notHumanReadable, inEqSimp_or_tautInEqs, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1133] 0s passed
[1134] inEqSimp_or_tautInEq1, inEqSimp_or_tautInEq1 { \find(or(or(b,leq(tautLeft,tautRightBigger)),geq(tautLeft,tautRightSmaller))) \replacewith(or(or(or(b,leq(tautLeft,tautRightBigger)),geq(tautLeft,tautRightSmaller)),geq(tautRightBigger,add(Z(neglit(1(#))),tautRightSmaller)))) \heuristics(notHumanReadable, inEqSimp_or_tautInEqs, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1134] 0s passed
[1135] inEqSimp_or_tautInEq2, inEqSimp_or_tautInEq2 { \find(or(geq(tautLeft,tautRightSmaller),leq(tautLeft,tautRightBigger))) \replacewith(or(or(geq(tautLeft,tautRightSmaller),leq(tautLeft,tautRightBigger)),geq(tautRightBigger,add(Z(neglit(1(#))),tautRightSmaller)))) \heuristics(notHumanReadable, inEqSimp_or_tautInEqs, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1135] 0s passed
[1136] inEqSimp_or_tautInEq3, inEqSimp_or_tautInEq3 { \find(or(or(b,geq(tautLeft,tautRightSmaller)),leq(tautLeft,tautRightBigger))) \replacewith(or(or(or(b,geq(tautLeft,tautRightSmaller)),leq(tautLeft,tautRightBigger)),geq(tautRightBigger,add(Z(neglit(1(#))),tautRightSmaller)))) \heuristics(notHumanReadable, inEqSimp_or_tautInEqs, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1136] 0s passed
[1137] inEqSimp_or_weaken0, inEqSimp_or_weaken0 { \find(or(leq(weakenLeft,weakenRightSmaller),equals(weakenLeft,weakenRightBigger))) \replacewith(if-then-else(equals(weakenRightBigger,add(Z(1(#)),weakenRightSmaller)),leq(weakenLeft,weakenRightBigger),or(leq(weakenLeft,weakenRightSmaller),equals(weakenLeft,weakenRightBigger)))) \heuristics(notHumanReadable, inEqSimp_or_weaken, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1137] 0.001s passed
[1138] inEqSimp_or_weaken1, inEqSimp_or_weaken1 { \find(or(equals(weakenLeft,weakenRightSmaller),geq(weakenLeft,weakenRightBigger))) \replacewith(if-then-else(equals(weakenRightBigger,add(Z(1(#)),weakenRightSmaller)),geq(weakenLeft,weakenRightSmaller),or(equals(weakenLeft,weakenRightSmaller),geq(weakenLeft,weakenRightBigger)))) \heuristics(notHumanReadable, inEqSimp_or_weaken, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1138] 0s passed
[1139] inEqSimp_or_weaken2, inEqSimp_or_weaken2 { \find(or(or(b,leq(weakenLeft,weakenRightSmaller)),equals(weakenLeft,weakenRightBigger))) \replacewith(or(b,if-then-else(equals(weakenRightBigger,add(Z(1(#)),weakenRightSmaller)),leq(weakenLeft,weakenRightBigger),or(leq(weakenLeft,weakenRightSmaller),equals(weakenLeft,weakenRightBigger))))) \heuristics(notHumanReadable, inEqSimp_or_weaken, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1139] 0.001s passed
[113] applySkip3, applySkip3 { \find(update-application(skip,u)) \replacewith(u) \heuristics(update_elim) Choices: true} testEquality(String, String)[113] 0.001s passed
[1140] inEqSimp_or_weaken3, inEqSimp_or_weaken3 { \find(or(or(b,equals(weakenLeft,weakenRightSmaller)),geq(weakenLeft,weakenRightBigger))) \replacewith(or(b,if-then-else(equals(weakenRightBigger,add(Z(1(#)),weakenRightSmaller)),geq(weakenLeft,weakenRightSmaller),or(equals(weakenLeft,weakenRightSmaller),geq(weakenLeft,weakenRightBigger))))) \heuristics(notHumanReadable, inEqSimp_or_weaken, inEqSimp_forNormalisation) Choices: true} testEquality(String, String)[1140] 0s passed
[1141] inEqSimp_sepNegMonomial0, inEqSimp_sepNegMonomial0 { \find(leq(add(sepResidue,sepNegMono),Z(0(#)))) \replacewith(geq(mul(sepNegMono,Z(neglit(1(#)))),sepResidue)) \heuristics(notHumanReadable, inEqSimp_balance, inEqSimp_directInEquations) Choices: true} testEquality(String, String)[1141] 0.001s passed
[1142] inEqSimp_sepNegMonomial1, inEqSimp_sepNegMonomial1 { \find(geq(add(sepResidue,sepNegMono),Z(0(#)))) \replacewith(leq(mul(sepNegMono,Z(neglit(1(#)))),sepResidue)) \heuristics(notHumanReadable, inEqSimp_balance, inEqSimp_directInEquations) Choices: true} testEquality(String, String)[1142] 0s passed
[1143] inEqSimp_sepPosMonomial0, inEqSimp_sepPosMonomial0 { \find(leq(add(sepResidue,sepPosMono),Z(0(#)))) \replacewith(leq(sepPosMono,mul(sepResidue,Z(neglit(1(#)))))) \heuristics(notHumanReadable, inEqSimp_balance, inEqSimp_directInEquations) Choices: true} testEquality(String, String)[1143] 0.008s passed
[1144] inEqSimp_sepPosMonomial1, inEqSimp_sepPosMonomial1 { \find(geq(add(sepResidue,sepPosMono),Z(0(#)))) \replacewith(geq(sepPosMono,mul(sepResidue,Z(neglit(1(#)))))) \heuristics(notHumanReadable, inEqSimp_balance, inEqSimp_directInEquations) Choices: true} testEquality(String, String)[1144] 0s passed
[1145] inEqSimp_strengthen0, inEqSimp_strengthen0 { \assumes ([]==>[equals(strengthenLeft,strengthenRight)]) \find(leq(strengthenLeft,strengthenRight)==>) \replacewith([leq(strengthenLeft,add(Z(neglit(1(#))),strengthenRight))]==>[]) \heuristics(notHumanReadable, inEqSimp_strengthen, inEqSimp_propagation) Choices: true} testEquality(String, String)[1145] 0s passed
[1146] inEqSimp_strengthen1, inEqSimp_strengthen1 { \assumes ([]==>[equals(strengthenLeft,strengthenRight)]) \find(geq(strengthenLeft,strengthenRight)==>) \replacewith([geq(strengthenLeft,add(Z(1(#)),strengthenRight))]==>[]) \heuristics(notHumanReadable, inEqSimp_strengthen, inEqSimp_propagation) Choices: true} testEquality(String, String)[1146] 0s passed
[1147] inEqSimp_subsumption0, inEqSimp_subsumption0 { \assumes ([leq(subsumLeft,subsumRightSmaller)]==>[]) \find(leq(subsumLeft,subsumRightBigger)) \sameUpdateLevel\replacewith(or(leq(subsumRightSmaller,subsumRightBigger),leq(subsumLeft,subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_subsumption, inEqSimp_propagation) Choices: true} testEquality(String, String)[1147] 0.006s passed
[1148] inEqSimp_subsumption1, inEqSimp_subsumption1 { \assumes ([geq(subsumLeft,subsumRightBigger)]==>[]) \find(geq(subsumLeft,subsumRightSmaller)) \sameUpdateLevel\replacewith(or(leq(subsumRightSmaller,subsumRightBigger),geq(subsumLeft,subsumRightSmaller))) \heuristics(notHumanReadable, inEqSimp_subsumption, inEqSimp_propagation) Choices: true} testEquality(String, String)[1148] 0.001s passed
[1149] inEqSimp_subsumption2, inEqSimp_subsumption2 { \assumes ([leq(mul(subsumLeft,subsumCoeffSmaller),subsumRightSmaller)]==>[]) \find(leq(mul(subsumLeft,subsumCoeffBigger),subsumRightBigger)) \sameUpdateLevel\replacewith(or(and(and(gt(subsumCoeffSmaller,Z(0(#))),gt(subsumCoeffBigger,Z(0(#)))),leq(mul(subsumCoeffBigger,subsumRightSmaller),mul(subsumCoeffSmaller,subsumRightBigger))),leq(mul(subsumLeft,subsumCoeffBigger),subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_subsumption, inEqSimp_propagation) Choices: true} testEquality(String, String)[1149] 0s passed
[114] apply_eq_boolean, apply_eq_boolean { \assumes ([]==>[equals(bo,TRUE)]) \find(bo) \sameUpdateLevel\replacewith(FALSE) \heuristics(apply_equations) Choices: true} testEquality(String, String)[114] 0.001s passed
[1150] inEqSimp_subsumption4, inEqSimp_subsumption4 { \assumes ([leq(subsumLeft,subsumRightSmaller)]==>[]) \find(leq(mul(subsumLeft,subsumCoeffBigger),subsumRightBigger)) \sameUpdateLevel\replacewith(or(and(gt(subsumCoeffBigger,Z(0(#))),leq(mul(subsumCoeffBigger,subsumRightSmaller),subsumRightBigger)),leq(mul(subsumLeft,subsumCoeffBigger),subsumRightBigger))) \heuristics(notHumanReadable, inEqSimp_subsumption, inEqSimp_propagation) Choices: true} testEquality(String, String)[1150] 0.001s passed
[1151] inEqSimp_subsumption5, inEqSimp_subsumption5 { \assumes ([geq(mul(subsumLeft,subsumCoeffBigger),subsumRightBigger)]==>[]) \find(geq(mul(subsumLeft,subsumCoeffSmaller),subsumRightSmaller)) \sameUpdateLevel\replacewith(or(and(and(gt(subsumCoeffSmaller,Z(0(#))),gt(subsumCoeffBigger,Z(0(#)))),leq(mul(subsumCoeffBigger,subsumRightSmaller),mul(subsumCoeffSmaller,subsumRightBigger))),geq(mul(subsumLeft,subsumCoeffSmaller),subsumRightSmaller))) \heuristics(notHumanReadable, inEqSimp_subsumption, inEqSimp_propagation) Choices: true} testEquality(String, String)[1151] 0s passed
[1152] inEqSimp_subsumption6, inEqSimp_subsumption6 { \assumes ([geq(subsumLeft,subsumRightBigger)]==>[]) \find(geq(mul(subsumLeft,subsumCoeffSmaller),subsumRightSmaller)) \sameUpdateLevel\replacewith(or(and(gt(subsumCoeffSmaller,Z(0(#))),leq(subsumRightSmaller,mul(subsumCoeffSmaller,subsumRightBigger))),geq(mul(subsumLeft,subsumCoeffSmaller),subsumRightSmaller))) \heuristics(notHumanReadable, inEqSimp_subsumption, inEqSimp_propagation) Choices: true} testEquality(String, String)[1152] 0.001s passed
[1153] inInt, inInt { \find(inInt(i)) \replacewith(true) \heuristics(concrete) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1153] 0s passed
[1154] inLong, inLong { \find(inLong(i)) \replacewith(true) \heuristics(concrete) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1154] 0.006s passed
[1155] inShort, inShort { \find(inShort(i)) \replacewith(true) \heuristics(concrete) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1155] 0.001s passed
[1156] indexOf, indexOf { \find(clIndexOfChar(l,c,i)) \varcond(\notFreeIn(iv (variable), i (int term)), \notFreeIn(iv (variable), c (int term)), \notFreeIn(iv (variable), l (Seq term))) \replacewith(ifExThenElse{iv (variable)}(and(and(and(geq(i,Z(0(#))),geq(iv,i)),lt(iv,seqLen(l))),equals(int::seqGet(l,iv),c)),iv,Z(neglit(1(#))))) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} testEquality(String, String)[1156] 0s passed
[1157] indexOfSeqConcatFirst, indexOfSeqConcatFirst { \find(seqIndexOf(seqConcat(s1,s2),x)) \sameUpdateLevel\varcond(\notFreeIn(idx (variable), x (any term)), \notFreeIn(idx (variable), s2 (Seq term)), \notFreeIn(idx (variable), s1 (Seq term))) \add []==>[exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s1))),equals(any::seqGet(s1,idx),x)))] ; \replacewith(seqIndexOf(s1,x)) Choices: sequences:on} testEquality(String, String)[1157] 0.001s passed
[1158] indexOfSeqConcatSecond, indexOfSeqConcatSecond { \find(seqIndexOf(seqConcat(s1,s2),x)) \sameUpdateLevel\varcond(\notFreeIn(idx (variable), x (any term)), \notFreeIn(idx (variable), s2 (Seq term)), \notFreeIn(idx (variable), s1 (Seq term))) \add []==>[and(not(exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s1))),equals(any::seqGet(s1,idx),x)))),exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s2))),equals(any::seqGet(s2,idx),x))))] ; \replacewith(add(seqIndexOf(s2,x),seqLen(s1))) Choices: sequences:on} testEquality(String, String)[1158] 0s passed
[1159] indexOfSeqSingleton, indexOfSeqSingleton { \find(seqIndexOf(seqSingleton(x),x)) \sameUpdateLevel\replacewith(Z(0(#))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1159] 0.001s passed
[115] apply_eq_boolean_2, apply_eq_boolean_2 { \assumes ([]==>[equals(bo,FALSE)]) \find(bo) \sameUpdateLevel\replacewith(TRUE) \heuristics(apply_equations) Choices: true} testEquality(String, String)[115] 0.001s passed
[1160] indexOfSeqSub, indexOfSeqSub { \find(seqIndexOf(seqSub(s,from,to),x)) \sameUpdateLevel\varcond(\notFreeIn(nx (variable), to (int term)), \notFreeIn(nx (variable), from (int term)), \notFreeIn(nx (variable), x (any term)), \notFreeIn(nx (variable), s (Seq term))) \add []==>[and(and(and(leq(from,seqIndexOf(s,x)),lt(seqIndexOf(s,x),to)),leq(Z(0(#)),from)),exists{nx (variable)}(and(and(leq(Z(0(#)),nx),lt(nx,seqLen(s))),equals(any::seqGet(s,nx),x))))] ; \replacewith(sub(seqIndexOf(s,x),from)) Choices: sequences:on} testEquality(String, String)[1160] 0s passed
[1161] indexOfStr, indexOfStr { \find(clIndexOfCl(sourceStr,i,searchStr)) \varcond(\notFreeIn(iv (variable), i (int term)), \notFreeIn(iv (variable), sourceStr (Seq term)), \notFreeIn(iv (variable), searchStr (Seq term))) \replacewith(ifExThenElse{iv (variable)}(and(and(and(geq(iv,i),geq(iv,Z(0(#)))),leq(add(iv,seqLen(searchStr)),seqLen(sourceStr))),equals(seqSub(sourceStr,iv,add(iv,seqLen(searchStr))),searchStr)),iv,Z(neglit(1(#))))) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} testEquality(String, String)[1161] 0.001s passed
[1162] ineffectiveCast, ineffectiveCast { \assumes ([equals(H::instance(t),TRUE)]==>[]) \find(H::cast(t)) \sameUpdateLevel\add [equals(H::cast(t),t)]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1162] 0s passed
[1163] ineffectiveCast2, ineffectiveCast2 { \assumes ([equals(cs,gt)]==>[]) \find(C::cast(gt)) \sameUpdateLevel\add [equals(C::cast(gt),gt)]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1163] 0.004s passed
[1164] ineffectiveCast3, ineffectiveCast3 { \assumes ([equals(H::exactInstance(t),TRUE)]==>[]) \find(H::cast(t)) \sameUpdateLevel\add [equals(H::cast(t),t)]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1164] 0s passed
[1165] inequality_comparison_new, inequality_comparison_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0!=#senf1; ... }\] (post)) \replacewith(if-then-else(not(equals(#senf0,#senf1)),#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post),#allmodal ( (modal operator))\[{ .. #lhs=false; ... }\] (post))) \heuristics(split_if, simplify_prog, obsolete) Choices: programRules:Java} testEquality(String, String)[1165] 0.001s passed
[1166] inequality_comparison_simple, inequality_comparison_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0!=#senf1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#senf0,#senf1),FALSE,TRUE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1166] 0s passed
[1167] inequality_comparison_simple_double, inequality_comparison_simple_double { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seDouble0!=#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(eqDouble(#seDouble0,#seDouble1),FALSE,TRUE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1167] 0s passed
[1168] inequality_comparison_simple_float, inequality_comparison_simple_float { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seFloat0!=#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(eqFloat(#seFloat0,#seFloat1),FALSE,TRUE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1168] 0s passed
[1169] infiniteUnionUnused, infiniteUnionUnused { \find(infiniteUnion{av (variable)}(s)) \varcond(\notFreeIn(av (variable), s (LocSet term))) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1169] 0.001s passed
[116] apply_eq_boolean_rigid, apply_eq_boolean_rigid { \assumes ([]==>[equals(br,TRUE)]) \find(br) \replacewith(FALSE) \heuristics(apply_equations) Choices: true} testEquality(String, String)[116] 0.001s passed
[1170] insert_constant_string_value, insert_constant_string_value { \assumes ([wellFormed(heap)]==>[]) \find(#csv) \sameUpdateLevel\replacewith(if-then-else(equals(#constantvalue(#csv),null),null,strPool(Seq::cast(#constantvalue(#csv))))) \heuristics(concrete) Choices: true} testEquality(String, String)[1170] 0s passed
[1171] insert_constant_value, insert_constant_value { \find(#cv) \replacewith(#constantvalue(#cv)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1171] 0.001s passed
[1172] insert_eq_all, insert_eq_all { \find(equals(sr,tr)==>) \addrules [auto_insert_eq { \find(sr) \replacewith(tr) \heuristics(simplify) Choices: true}] \replacewith([]==>[]) Choices: true} testEquality(String, String)[1172] 0s passed
[1173] insert_eqv_lr, insert_eqv_lr { \find(equiv(br,cr)==>) \addrules [insert_eqv { \find(br) \replacewith(cr) \heuristics(simplify) Choices: true}] Choices: true} testEquality(String, String)[1173] 0.001s passed
[1174] insert_eqv_once_lr, insert_eqv_once_lr { \find(equiv(br,cr)==>) \addrules [insert_eqv { \find(br) \replacewith(cr) Choices: true}] Choices: true} testEquality(String, String)[1174] 0s passed
[1175] insert_eqv_once_rl, insert_eqv_once_rl { \find(equiv(br,cr)==>) \addrules [insert_eqv { \find(cr) \replacewith(br) Choices: true}] Choices: true} testEquality(String, String)[1175] 0.001s passed
[1176] insert_eqv_rl, insert_eqv_rl { \find(equiv(br,cr)==>) \addrules [insert_eqv { \find(cr) \replacewith(br) \heuristics(simplify) Choices: true}] Choices: true} testEquality(String, String)[1176] 0s passed
[1177] instAll, instAll { \assumes ([all{u (variable)}(b)]==>[]) \find(t) \add [subst{u (variable)}(t,b)]==>[] Choices: true} testEquality(String, String)[1177] 0s passed
[1178] instEx, instEx { \assumes ([]==>[exists{u (variable)}(b)]) \find(t) \add []==>[subst{u (variable)}(t,b)] Choices: true} testEquality(String, String)[1178] 0s passed
[1179] instanceCreation, instanceCreation { \find(#allmodal ( (modal operator))\[{ .. #n ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#n (program SimpleInstanceCreation)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#v0) #v0 = create-object(#n);constructor-call(#n)post-work(#v0) ... }\] (post)) \heuristics(method_expand) Choices: programRules:Java} testEquality(String, String)[1179] 0s passed
[117] apply_eq_boolean_rigid_2, apply_eq_boolean_rigid_2 { \assumes ([]==>[equals(br,FALSE)]) \find(br) \replacewith(TRUE) \heuristics(apply_equations) Choices: true} testEquality(String, String)[117] 0.002s passed
[1180] instanceCreationAssignment, instanceCreationAssignment { \find(#normal ( (modal operator))\[{ .. #lhs=#n; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide)))) \replacewith(#normal ( (modal operator))\[{ .. #typeof(#v0) #v0 = create-object(#n);constructor-call(#n)post-work(#v0)#lhs=#v0; ... }\] (post)) \heuristics(method_expand) Choices: programRules:Java} testEquality(String, String)[1180] 0s passed
[1181] instanceCreationAssignmentUnfoldArguments, instanceCreationAssignmentUnfoldArguments { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nsn; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #evaluate-arguments(#lhs=#nsn;) ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1181] 0.001s passed
[1182] instanceCreationUnfoldArguments, instanceCreationUnfoldArguments { \find(#allmodal ( (modal operator))\[{ .. #nsn ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #evaluate-arguments(#nsn) ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1182] 0s passed
[1183] instanceof_eval, instanceof_eval { \find(#allmodal ( (modal operator))\[{ .. #v=#nse instanceof #t; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;#v=#v0 instanceof #t; ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1183] 0.001s passed
[1184] instanceof_known_dynamic_type, instanceof_known_dynamic_type { \assumes ([equals(G::exactInstance(a),TRUE)]==>[]) \find(H::instance(a)) \sameUpdateLevel\varcond(\sub(G, H), ) \replacewith(TRUE) \heuristics(evaluate_instanceof, simplify) Choices: true} testEquality(String, String)[1184] 0s passed
[1185] instanceof_known_dynamic_type_2, instanceof_known_dynamic_type_2 { \assumes ([equals(G::exactInstance(a),TRUE)]==>[]) \find(H::instance(a)) \sameUpdateLevel\varcond(\not\sub(G, H), ) \replacewith(FALSE) \heuristics(evaluate_instanceof, simplify) Choices: true} testEquality(String, String)[1185] 0.004s passed
[1186] instanceof_not_compatible, instanceof_not_compatible { \find(equals(G::instance(a),TRUE)) \varcond(\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term))), ) \replacewith(equals(a,null)) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1186] 0.011s passed
[1187] instanceof_not_compatible_2, instanceof_not_compatible_2 { \find(equals(G::instance(a),FALSE)) \varcond(\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term))), ) \replacewith(not(equals(a,null))) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1187] 0s passed
[1188] instanceof_not_compatible_3, instanceof_not_compatible_3 { \find(equals(G::instance(a),TRUE)) \varcond(\not\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term))), ) \replacewith(false) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1188] 0s passed
[1189] instanceof_not_compatible_4, instanceof_not_compatible_4 { \find(equals(G::instance(a),FALSE)) \varcond(\not\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term))), ) \replacewith(true) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1189] 0s passed
[118] apply_eq_monomials, apply_eq_monomials { \assumes ([equals(applyEqDivisor,i0)]==>[]) \find(applyEqDividend) \sameUpdateLevel\replacewith(add(mul(#divideMonomials(applyEqDividend,applyEqDivisor),add(i0,mul(applyEqDivisor,Z(neglit(1(#)))))),applyEqDividend)) \heuristics(notHumanReadable, apply_equations, polySimp_applyEq) Choices: true} testEquality(String, String)[118] 0.001s passed
[1190] instanceof_not_compatible_5, instanceof_not_compatible_5 { \assumes ([equals(H::instance(a),TRUE)]==>[]) \find(equals(G::instance(a),TRUE)) \varcond(\sub(Null, G), \disjointModuloNull(G, H), ) \replacewith(equals(a,null)) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1190] 0s passed
[1191] instanceof_static_type, instanceof_static_type { \find(G::instance(a)) \varcond(\sub(\typeof(a (any term)), G), ) \replacewith(TRUE) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1191] 0s passed
[1192] instanceof_static_type_2, instanceof_static_type_2 { \assumes ([equals(a2,a)]==>[]) \find(G::instance(a)) \sameUpdateLevel\varcond(\sub(\typeof(a2 (any term)), G), ) \replacewith(TRUE) \heuristics(evaluate_instanceof, concrete) Choices: true} testEquality(String, String)[1192] 0s passed
[1193] intDivRem, intDivRem { \find(jmod(divNum,divDenom)) \add [imp(not(equals(divDenom,Z(0(#)))),equals(divNum,add(mul(jdiv(divNum,divDenom),divDenom),jmod(divNum,divDenom))))]==>[] Choices: true} testEquality(String, String)[1193] 0s passed
[1194] intLongToFloatAddition1, intLongToFloatAddition1 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong+#seFloat; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(float::cast(#seLong),#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1194] 0s passed
[1195] intToFloatAddition, intToFloatAddition { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt+#seFloat; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(float::cast(#seCharByteShortInt),#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1195] 0s passed
[1196] int_diff_minus_eq, int_diff_minus_eq { \find(sub(i0,neg(i1))) \replacewith(add(i0,i1)) Choices: true} testEquality(String, String)[1196] 0s passed
[1197] int_induction, int_induction { \add [all{nv (variable)}(imp(geq(nv,Z(0(#))),b))]==>[] ; \add []==>[all{nv (variable)}(imp(and(geq(nv,Z(0(#))),b),subst{nv (variable)}(add(nv,Z(1(#))),b)))] ; \add []==>[subst{nv (variable)}(Z(0(#)),b)] Choices: true} testEquality(String, String)[1197] 0s passed
[1198] intersectAllFieldsFreshLocs, intersectAllFieldsFreshLocs { \find(equals(intersect(allFields(o),freshLocs(h)),empty)) \replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1198] 0.001s passed
[1199] intersectWithAllLocs, intersectWithAllLocs { \find(intersect(allLocs,s)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1199] 0s passed
[119] apply_eq_monomials_rigid, apply_eq_monomials_rigid { \assumes ([equals(applyEqDivisorr,i0r)]==>[]) \find(applyEqDividend) \replacewith(add(mul(#divideMonomials(applyEqDividend,applyEqDivisorr),add(i0r,mul(applyEqDivisorr,Z(neglit(1(#)))))),applyEqDividend)) \heuristics(notHumanReadable, apply_equations, polySimp_applyEqRigid) Choices: true} testEquality(String, String)[119] 0.001s passed
[11] activeUseBitwiseXOr, activeUseBitwiseXOr { \find(#allmodal ( (modal operator))\[{ .. #sv=#left^#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left^#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[11] 0.002s passed
[1200] intersectWithAllLocsRight, intersectWithAllLocsRight { \find(intersect(s,allLocs)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1200] 0.001s passed
[1201] intersectWithEmpty, intersectWithEmpty { \find(intersect(empty,s)) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1201] 0s passed
[1202] intersectWithEmptyRight, intersectWithEmptyRight { \find(intersect(s,empty)) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1202] 0.001s passed
[1203] intersectWithItself, intersectWithItself { \find(intersect(s,s)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1203] 0s passed
[1204] intersectWithSingleton, intersectWithSingleton { \find(intersect(singleton(o,f),s)) \replacewith(if-then-else(elementOf(o,f,s),singleton(o,f),empty)) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1204] 0s passed
[1205] intersectionSetMinusItself, intersectionSetMinusItself { \find(intersect(setMinus(s1,s2),s2)) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1205] 0s passed
[1206] intersectionSetMinusItself_2, intersectionSetMinusItself_2 { \find(intersect(s2,setMinus(s1,s2))) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1206] 0s passed
[1207] introduceAxiom, introduceAxiom { \add [cutFormula]==>[] Choices: true} testEquality(String, String)[1207] 0s passed
[1208] irrflConcrete1, irrflConcrete1 { \find(lt(i,i)==>) \replacewith([false]==>[]) \heuristics(concrete) Choices: true} testEquality(String, String)[1208] 0s passed
[1209] irrflConcrete2, irrflConcrete2 { \find(gt(i,i)==>) \replacewith([false]==>[]) \heuristics(concrete) Choices: true} testEquality(String, String)[1209] 0s passed
[120] apply_eq_pseudo_eq, apply_eq_pseudo_eq { \assumes ([equals(mul(aePseudoLeft,aePseudoLeftCoeff),aePseudoRight)]==>[]) \find(equals(aePseudoTargetLeft,aePseudoTargetRight)) \sameUpdateLevel\replacewith(if-then-else(and(equals(aePseudoTargetLeft,mul(aePseudoLeft,aePseudoTargetFactor)),not(equals(aePseudoLeftCoeff,Z(0(#))))),equals(mul(aePseudoRight,aePseudoTargetFactor),mul(aePseudoTargetRight,aePseudoLeftCoeff)),equals(aePseudoTargetLeft,aePseudoTargetRight))) \heuristics(notHumanReadable, notHumanReadable, polySimp_applyEqPs… testEquality(String, String)[120] 0.001s passed
[1210] isFiniteOfMapEmpty, isFiniteOfMapEmpty { \find(isFinite(mapEmpty)) \sameUpdateLevel\replacewith(true) \heuristics(simplify) Choices: true} testEquality(String, String)[1210] 0s passed
[1211] isFiniteOfMapRemove, isFiniteOfMapRemove { \find(isFinite(mapRemove(m,key))) \sameUpdateLevel\replacewith(isFinite(m)) \heuristics(simplify) Choices: true} testEquality(String, String)[1211] 0s passed
[1212] isFiniteOfMapSingleton, isFiniteOfMapSingleton { \find(isFinite(mapSingleton(key,value))) \sameUpdateLevel\replacewith(true) \heuristics(simplify) Choices: true} testEquality(String, String)[1212] 0s passed
[1213] isFiniteOfMapUpdate, isFiniteOfMapUpdate { \find(isFinite(mapUpdate(m,key,value))) \sameUpdateLevel\replacewith(isFinite(m)) \heuristics(simplify) Choices: true} testEquality(String, String)[1213] 0s passed
[1214] isFiniteOfSeq2Map, isFiniteOfSeq2Map { \find(isFinite(seq2map(s))) \sameUpdateLevel\replacewith(true) \heuristics(simplify) Choices: true} testEquality(String, String)[1214] 0s passed
[1215] iterated_assignments_0, iterated_assignments_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=#e;#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1215] 0.001s passed
[1216] iterated_assignments_1, iterated_assignments_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1*=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1*#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1216] 0s passed
[1217] iterated_assignments_10, iterated_assignments_10 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1|=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1|#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1217] 0s passed
[1218] iterated_assignments_11, iterated_assignments_11 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1^=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1^#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1218] 0s passed
[1219] iterated_assignments_2, iterated_assignments_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1/=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1/#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1219] 0s passed
[121] apply_eq_pseudo_geq, apply_eq_pseudo_geq { \assumes ([equals(mul(aePseudoLeft,aePseudoLeftCoeff),aePseudoRight)]==>[]) \find(geq(aePseudoTargetLeft,aePseudoTargetRight)) \sameUpdateLevel\replacewith(if-then-else(and(equals(aePseudoTargetLeft,mul(aePseudoLeft,aePseudoTargetFactor)),gt(aePseudoLeftCoeff,Z(0(#)))),geq(mul(aePseudoRight,aePseudoTargetFactor),mul(aePseudoTargetRight,aePseudoLeftCoeff)),geq(aePseudoTargetLeft,aePseudoTargetRight))) \heuristics(notHumanReadable, polySimp_applyEqPseudo, polySimp_leftNonUnit) Choices… testEquality(String, String)[121] 0.002s passed
[1220] iterated_assignments_3, iterated_assignments_3 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1%=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1%#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1220] 0.001s passed
[1221] iterated_assignments_4, iterated_assignments_4 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1+=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1+#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1221] 0s passed
[1222] iterated_assignments_5, iterated_assignments_5 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1-=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1-#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1222] 0.001s passed
[1223] iterated_assignments_6, iterated_assignments_6 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1<<=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1<<#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1223] 0s passed
[1224] iterated_assignments_7, iterated_assignments_7 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1>>=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1>>#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1224] 0.001s passed
[1225] iterated_assignments_8, iterated_assignments_8 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1>>>=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1>>>#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1225] 0s passed
[1226] iterated_assignments_9, iterated_assignments_9 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1&=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1&#e);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1226] 0.005s passed
[1227] javaShiftLeftIntDef, javaShiftLeftIntDef { \find(shiftleftJint(left,right)) \replacewith(moduloInt(shiftleft(left,mod(right,Z(2(3(#))))))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1227] 0s passed
[1228] javaShiftLeftLongDef, javaShiftLeftLongDef { \find(shiftleftJlong(left,right)) \replacewith(moduloLong(shiftleft(left,mod(right,Z(4(6(#))))))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1228] 0.001s passed
[1229] javaShiftRightIntDef, javaShiftRightIntDef { \find(shiftrightJint(left,right)) \replacewith(moduloInt(shiftright(left,mod(right,Z(2(3(#))))))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1229] 0s passed
[122] apply_eq_pseudo_leq, apply_eq_pseudo_leq { \assumes ([equals(mul(aePseudoLeft,aePseudoLeftCoeff),aePseudoRight)]==>[]) \find(leq(aePseudoTargetLeft,aePseudoTargetRight)) \sameUpdateLevel\replacewith(if-then-else(and(equals(aePseudoTargetLeft,mul(aePseudoLeft,aePseudoTargetFactor)),gt(aePseudoLeftCoeff,Z(0(#)))),leq(mul(aePseudoRight,aePseudoTargetFactor),mul(aePseudoTargetRight,aePseudoLeftCoeff)),leq(aePseudoTargetLeft,aePseudoTargetRight))) \heuristics(notHumanReadable, polySimp_applyEqPseudo, polySimp_leftNonUnit) Choices… testEquality(String, String)[122] 0.001s passed
[1230] javaShiftRightLongDef, javaShiftRightLongDef { \find(shiftrightJlong(left,right)) \replacewith(moduloLong(shiftright(left,mod(right,Z(4(6(#))))))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1230] 0.001s passed
[1231] jdivAddMultDenom, jdivAddMultDenom { \add [all{N (variable)}(all{D (variable)}(all{A (variable)}(imp(not(equals(D,Z(0(#)))),equals(jdiv(add(N,mul(A,D)),D),if-then-else(equals(N,mul(jdiv(N,D),D)),add(jdiv(N,D),A),if-then-else(and(not(equals(N,mul(jdiv(N,D),D))),equiv(geq(N,Z(0(#))),geq(add(N,mul(D,A)),Z(0(#))))),add(jdiv(N,D),A),if-then-else(and(and(not(equals(N,mul(jdiv(N,D),D))),equiv(geq(N,Z(0(#))),lt(add(N,mul(D,A)),Z(0(#))))),equiv(gt(D,Z(0(#))),lt(add(N,mul(D,A)),Z(0(#))))),add(add(jdiv(N,D),A),Z(1(#))),sub(add(jdiv(N,… testEquality(String, String)[1231] 0s passed
[1232] jdivMultDenom1, jdivMultDenom1 { \find(jdiv(mul(divDenom,cfac),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(cfac) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1232] 0.001s passed
[1233] jdivMultDenom2, jdivMultDenom2 { \find(jdiv(mul(cfac,divDenom),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(cfac) Choices: true} testEquality(String, String)[1233] 0s passed
[1234] jdivPulloutMinusDenom, jdivPulloutMinusDenom { \find(jdiv(divNum,neg(divDenom))) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(neg(jdiv(divNum,divDenom))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1234] 0.001s passed
[1235] jdivPulloutMinusNum, jdivPulloutMinusNum { \find(jdiv(neg(divNum),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(neg(jdiv(divNum,divDenom))) Choices: true} testEquality(String, String)[1235] 0s passed
[1236] jdiv_axiom, jdiv_axiom { \find(jdiv(divNum,divDenom)) \sameUpdateLevel\add [equals(jdiv(divNum,divDenom),if-then-else(geq(divNum,Z(0(#))),div(divNum,divDenom),mul(div(mul(divNum,Z(neglit(1(#)))),divDenom),Z(neglit(1(#))))))]==>[] \heuristics(notHumanReadable, defOps_jdiv) Choices: true} testEquality(String, String)[1236] 0.001s passed
[1237] jdiv_axiom_inline, jdiv_axiom_inline { \find(jdiv(divNum,divDenom)) \replacewith(if-then-else(geq(divNum,Z(0(#))),div(divNum,divDenom),mul(div(mul(divNum,Z(neglit(1(#)))),divDenom),Z(neglit(1(#)))))) \heuristics(notHumanReadable, defOps_jdiv_inline) Choices: true} testEquality(String, String)[1237] 0s passed
[1238] jdiv_one, jdiv_one { \find(jdiv(divNum,Z(1(#)))) \replacewith(divNum) \heuristics(concrete) Choices: true} testEquality(String, String)[1238] 0.001s passed
[1239] jdiv_uniqueNegNeg, jdiv_uniqueNegNeg { \find(jdiv(divNum,divDenom)) \add [all{a (variable)}(all{cnom (variable)}(all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(lt(a,Z(0(#))),lt(cnom,Z(0(#)))),geq(mul(x,cnom),a)),geq(mul(y,cnom),a)),lt(mul(add(x,Z(1(#))),cnom),a)),lt(mul(add(y,Z(1(#))),cnom),a)),equals(x,y))))))]==>[] Choices: true} testEquality(String, String)[1239] 0s passed
[123] apply_subst, apply_subst { \find(subst{u (variable)}(t,target)) \replacewith(subst{u (variable)}(t,target)) \heuristics(try_apply_subst) Choices: true} testEquality(String, String)[123] 0s passed
[1240] jdiv_uniqueNegPos, jdiv_uniqueNegPos { \find(jdiv(divNum,divDenom)) \add [all{a (variable)}(all{cnom (variable)}(all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(lt(a,Z(0(#))),gt(cnom,Z(0(#)))),geq(mul(x,cnom),a)),geq(mul(y,cnom),a)),lt(mul(sub(x,Z(1(#))),cnom),a)),lt(mul(sub(y,Z(1(#))),cnom),a)),equals(x,y))))))]==>[] Choices: true} testEquality(String, String)[1240] 0s passed
[1241] jdiv_uniquePosNeg, jdiv_uniquePosNeg { \find(jdiv(divNum,divDenom)) \add [all{a (variable)}(all{cnom (variable)}(all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(geq(a,Z(0(#))),lt(cnom,Z(0(#)))),leq(mul(x,cnom),a)),leq(mul(y,cnom),a)),gt(mul(sub(x,Z(1(#))),cnom),a)),gt(mul(sub(y,Z(1(#))),cnom),a)),equals(x,y))))))]==>[] Choices: true} testEquality(String, String)[1241] 0s passed
[1242] jdiv_uniquePosPos, jdiv_uniquePosPos { \find(jdiv(divNum,divDenom)) \add [all{a (variable)}(all{cnom (variable)}(all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(geq(a,Z(0(#))),gt(cnom,Z(0(#)))),leq(mul(x,cnom),a)),leq(mul(y,cnom),a)),gt(mul(add(x,Z(1(#))),cnom),a)),gt(mul(add(y,Z(1(#))),cnom),a)),equals(x,y))))))]==>[] Choices: true} testEquality(String, String)[1242] 0s passed
[1243] jdiv_zero, jdiv_zero { \find(jdiv(Z(0(#)),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(Z(0(#))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1243] 0s passed
[1244] jmodAddMultDenomZero, jmodAddMultDenomZero { \find(equals(jmod(add(N,mul(A,D)),D),Z(0(#)))) \sameUpdateLevel\add []==>[not(equals(D,Z(0(#))))] ; \replacewith(equals(jmod(N,D),Z(0(#)))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1244] 0s passed
[1245] jmodAltZero, jmodAltZero { \add [all{N (variable)}(all{D (variable)}(imp(not(equals(D,Z(0(#)))),equiv(equals(jmod(N,D),Z(0(#))),exists{A (variable)}(equals(N,mul(A,D)))))))]==>[] Choices: true} testEquality(String, String)[1245] 0s passed
[1246] jmodDivisible, jmodDivisible { \add [all{D (variable)}(all{A (variable)}(imp(not(equals(D,Z(0(#)))),equals(jmod(mul(D,A),D),Z(0(#))))))]==>[] Choices: true} testEquality(String, String)[1246] 0s passed
[1247] jmodDivisibleRep, jmodDivisibleRep { \find(jmod(mul(D,A),D)) \add []==>[not(equals(D,Z(0(#))))] ; \replacewith(Z(0(#))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1247] 0s passed
[1248] jmodNumZero, jmodNumZero { \find(jmod(Z(0(#)),divDenom)) \replacewith(Z(0(#))) \heuristics(concrete) Choices: true} testEquality(String, String)[1248] 0s passed
[1249] jmodUnique1, jmodUnique1 { \add [all{a (variable)}(all{deb (variable)}(all{cmod (variable)}(imp(and(and(and(and(geq(a,Z(0(#))),not(equals(deb,Z(0(#))))),leq(Z(0(#)),cmod)),lt(cmod,if-then-else(gt(deb,Z(0(#))),deb,neg(deb)))),exists{x (variable)}(equals(a,add(mul(deb,x),cmod)))),equals(cmod,jmod(a,deb))))))]==>[] Choices: true} testEquality(String, String)[1249] 0s passed
[124] apply_subst_for, apply_subst_for { \find(subst{u (variable)}(t,phi)) \replacewith(subst{u (variable)}(t,phi)) \heuristics(try_apply_subst) Choices: true} testEquality(String, String)[124] 0.001s passed
[1250] jmodUnique2, jmodUnique2 { \add [all{a (variable)}(all{deb (variable)}(all{cmod (variable)}(imp(and(and(and(and(leq(a,Z(0(#))),not(equals(deb,Z(0(#))))),lt(neg(cmod),if-then-else(gt(deb,Z(0(#))),deb,neg(deb)))),leq(cmod,Z(0(#)))),exists{x (variable)}(equals(a,add(mul(deb,x),cmod)))),equals(cmod,jmod(a,deb))))))]==>[] Choices: true} testEquality(String, String)[1250] 0s passed
[1251] jmod_NumNeg, jmod_NumNeg { \find(jmod(divNum,divDenom)) \add [imp(and(not(equals(divDenom,Z(0(#)))),leq(divNum,Z(0(#)))),gt(jmod(divNum,divDenom),if-then-else(geq(divDenom,Z(0(#))),neg(divDenom),divDenom)))]==>[] Choices: true} testEquality(String, String)[1251] 0s passed
[1252] jmod_NumPos, jmod_NumPos { \find(jmod(divNum,divDenom)) \add [imp(and(not(equals(divDenom,Z(0(#)))),geq(divNum,Z(0(#)))),lt(jmod(divNum,divDenom),if-then-else(geq(divDenom,Z(0(#))),divDenom,neg(divDenom))))]==>[] Choices: true} testEquality(String, String)[1252] 0s passed
[1253] jmod_axiom, jmod_axiom { \find(jmod(divNum,divDenom)) \replacewith(add(divNum,mul(mul(jdiv(divNum,divDenom),Z(neglit(1(#)))),divDenom))) \heuristics(notHumanReadable, defOps_mod) Choices: true} testEquality(String, String)[1253] 0s passed
[1254] jmod_geZero, jmod_geZero { \find(jmod(divNum,divDenom)) \add [imp(not(equals(divDenom,Z(0(#)))),leq(Z(0(#)),if-then-else(geq(divNum,Z(0(#))),jmod(divNum,divDenom),neg(jmod(divNum,divDenom)))))]==>[] Choices: true} testEquality(String, String)[1254] 0.001s passed
[1255] jmod_pulloutminusDenom, jmod_pulloutminusDenom { \find(jmod(divNum,neg(divDenom))) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(jmod(divNum,divDenom)) Choices: true} testEquality(String, String)[1255] 0s passed
[1256] jmod_pulloutminusNum, jmod_pulloutminusNum { \find(jmod(neg(divNum),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(neg(jmod(divNum,divDenom))) Choices: true} testEquality(String, String)[1256] 0.001s passed
[1257] jmodjmod, jmodjmod { \add [all{N (variable)}(all{D1 (variable)}(all{D2 (variable)}(imp(and(and(and(not(equals(D1,Z(0(#)))),not(equals(D2,Z(0(#))))),equals(jmod(D1,D2),Z(0(#)))),equiv(geq(D1,Z(0(#))),geq(D2,Z(0(#))))),equals(jmod(N,D2),jmod(jmod(N,D1),D2))))))]==>[] Choices: true} testEquality(String, String)[1257] 0s passed
[1258] lastIndexOf, lastIndexOf { \find(clLastIndexOfChar(sourceStr,c,i)) \varcond(\notFreeIn(iv (variable), sourceStr (Seq term)), \notFreeIn(iv (variable), i (int term)), \notFreeIn(iv (variable), c (int term))) \replacewith(ifExThenElse{iv (variable)}(and(and(and(gt(iv,Z(0(#))),geq(i,iv)),lt(sub(i,iv),seqLen(sourceStr))),equals(int::seqGet(sourceStr,sub(i,iv)),c)),sub(i,iv),Z(neglit(1(#))))) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} testEquality(String, String)[1258] 0.013s passed
[1259] lastIndexOfStr, lastIndexOfStr { \find(clLastIndexOfCl(sourceStr,i,searchStr)) \varcond(\notFreeIn(iv (variable), sourceStr (Seq term)), \notFreeIn(iv (variable), i (int term)), \notFreeIn(iv (variable), searchStr (Seq term))) \replacewith(ifExThenElse{iv (variable)}(and(and(and(gt(iv,Z(0(#))),geq(sub(i,iv),Z(0(#)))),leq(sub(add(seqLen(searchStr),i),iv),seqLen(sourceStr))),equals(seqSub(sourceStr,sub(i,iv),sub(add(seqLen(searchStr),i),iv)),searchStr)),sub(i,iv),Z(neglit(1(#))))) \heuristics(stringsExpandDefNormalOp) Choi… testEquality(String, String)[1259] 0.001s passed
[125] array2seqDef, array2seqDef { \find(array2seq(h,a)) \varcond(\notFreeIn(u (variable), h (Heap term)), \notFreeIn(u (variable), a (java.lang.Object term))) \replacewith(seqDef{u (variable)}(Z(0(#)),length(a),any::select(h,a,arr(u)))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[125] 0.001s passed
[1260] le1_add1_eq_le, le1_add1_eq_le { \find(lt(i0,add(i1,Z(1(#))))) \replacewith(leq(i0,i1)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1260] 0s passed
[1261] left_add_mult_distrib, left_add_mult_distrib { \find(add(mul(i0,i1),add(mul(i2,i1),i3))) \replacewith(add(mul(add(i0,i2),i1),i3)) Choices: true} testEquality(String, String)[1261] 0.001s passed
[1262] lenNonNegative, lenNonNegative { \find(seqLen(seq)) \sameUpdateLevel\add [leq(Z(0(#)),seqLen(seq))]==>[] \heuristics(inReachableStateImplication) Choices: sequences:on} testEquality(String, String)[1262] 0s passed
[1263] lenOfArray2seq, lenOfArray2seq { \find(seqLen(array2seq(h,a))) \replacewith(length(a)) Choices: sequences:on} testEquality(String, String)[1263] 0.001s passed
[1264] lenOfSeqConcat, lenOfSeqConcat { \find(seqLen(seqConcat(seq,seq2))) \replacewith(add(seqLen(seq),seqLen(seq2))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1264] 0s passed
[1265] lenOfSeqConcatEQ, lenOfSeqConcatEQ { \assumes ([equals(seqConcat(seq,seq2),EQ)]==>[]) \find(seqLen(EQ)) \sameUpdateLevel\replacewith(add(seqLen(seq),seqLen(seq2))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1265] 0s passed
[1266] lenOfSeqDef, lenOfSeqDef { \find(seqLen(seqDef{uSub (variable)}(from,to,t))) \replacewith(if-then-else(lt(from,to),sub(to,from),Z(0(#)))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1266] 0s passed
[1267] lenOfSeqDefEQ, lenOfSeqDefEQ { \assumes ([equals(seqDef{uSub (variable)}(from,to,t),EQ)]==>[]) \find(seqLen(EQ)) \sameUpdateLevel\replacewith(if-then-else(leq(from,to),sub(to,from),Z(0(#)))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1267] 0s passed
[1268] lenOfSeqEmpty, lenOfSeqEmpty { \find(seqLen(seqEmpty)) \replacewith(Z(0(#))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1268] 0s passed
[1269] lenOfSeqEmptyEQ, lenOfSeqEmptyEQ { \assumes ([equals(seqEmpty,EQ)]==>[]) \find(seqLen(EQ)) \sameUpdateLevel\replacewith(Z(0(#))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1269] 0.001s passed
[126] arrayCreation, arrayCreation { \find(#normal ( (modal operator))\[{ .. #lhs=#na; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#na (program ArrayCreation)))) \replacewith(#normal ( (modal operator))\[{ .. #typeof(#na) #v0;init-array-creation(#na)#lhs=#v0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[126] 0.002s passed
[1270] lenOfSeqReverse, lenOfSeqReverse { \find(seqLen(seqReverse(seq))) \replacewith(seqLen(seq)) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1270] 0s passed
[1271] lenOfSeqReverseEQ, lenOfSeqReverseEQ { \assumes ([equals(seqReverse(seq),EQ)]==>[]) \find(seqLen(EQ)) \sameUpdateLevel\replacewith(seqLen(seq)) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1271] 0.001s passed
[1272] lenOfSeqSingleton, lenOfSeqSingleton { \find(seqLen(seqSingleton(x))) \replacewith(Z(1(#))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1272] 0s passed
[1273] lenOfSeqSingletonEQ, lenOfSeqSingletonEQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) \find(seqLen(EQ)) \sameUpdateLevel\replacewith(Z(1(#))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1273] 0.001s passed
[1274] lenOfSeqSub, lenOfSeqSub { \find(seqLen(seqSub(seq,from,to))) \replacewith(if-then-else(lt(from,to),sub(to,from),Z(0(#)))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1274] 0s passed
[1275] lenOfSeqSubEQ, lenOfSeqSubEQ { \assumes ([equals(seqSub(seq,from,to),EQ)]==>[]) \find(seqLen(EQ)) \sameUpdateLevel\replacewith(if-then-else(lt(from,to),sub(to,from),Z(0(#)))) \heuristics(find_term_not_in_assumes, simplify) Choices: sequences:on} testEquality(String, String)[1275] 0.001s passed
[1276] lengthReplace, lengthReplace { \find(seqLen(clReplace(str,searchChar,replaceChar))) \replacewith(seqLen(str)) \heuristics(stringsSimplify) Choices: Strings:on} testEquality(String, String)[1276] 0s passed
[1277] lengthReplaceEQ, lengthReplaceEQ { \assumes ([equals(clReplace(str,searchChar,replaceChar),newStr)]==>[]) \find(seqLen(newStr)) \sameUpdateLevel\replacewith(seqLen(str)) \heuristics(stringsSimplify) Choices: Strings:on} testEquality(String, String)[1277] 0s passed
[1278] leq_add, leq_add { \find(==>leq(i0,i1)) \varcond(\notFreeIn(j2 (variable), i1 (int term)), \notFreeIn(j2 (variable), i0 (int term))) \replacewith([]==>[exists{j2 (variable)}(leq(add(i0,j2),add(i1,j2)))]) Choices: true} testEquality(String, String)[1278] 0.005s passed
[1279] leq_add_iff1, leq_add_iff1 { \find(leq(add(mul(i0,i1),i2),add(mul(i3,i1),i4))) \replacewith(leq(add(mul(sub(i0,i3),i1),i2),i4)) Choices: true} testEquality(String, String)[1279] 0s passed
[127] arrayCreationWithInitializers, arrayCreationWithInitializers { \find(#allmodal ( (modal operator))\[{ .. #lhs=#arrayinitializer; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;init-array-creation(#arrayinitializer)#lhs=#v0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[127] 0.001s passed
[1280] leq_add_iff2, leq_add_iff2 { \find(leq(add(mul(i0,i1),i2),add(mul(i3,i1),i4))) \replacewith(leq(i2,add(mul(sub(i3,i0),i1),i4))) Choices: true} testEquality(String, String)[1280] 0s passed
[1281] leq_add_one, leq_add_one { \find(leq(i0,i1)) \replacewith(leq(add(i0,Z(1(#))),add(i1,Z(1(#))))) Choices: true} testEquality(String, String)[1281] 0s passed
[1282] leq_diff1_eq, leq_diff1_eq { \find(leq(i0,sub(i1,Z(1(#))))) \replacewith(lt(i0,i1)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1282] 0s passed
[1283] leq_diff_1, leq_diff_1 { \find(leq(i0,add(i0,Z(1(#))))) \replacewith(true) \heuristics(int_arithmetic) Choices: true} testEquality(String, String)[1283] 0s passed
[1284] leq_iff_diff_leq_0, leq_iff_diff_leq_0 { \find(leq(i0,i1)) \replacewith(leq(sub(i0,i1),Z(0(#)))) Choices: true} testEquality(String, String)[1284] 0.001s passed
[1285] leq_literals, leq_literals { \find(leq(Z(iz),Z(jz))) \replacewith(#leq(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1285] 0s passed
[1286] leq_to_geq, leq_to_geq { \find(leq(i,i0)) \replacewith(geq(i0,i)) Choices: true} testEquality(String, String)[1286] 0.001s passed
[1287] leq_to_gt, leq_to_gt { \find(leq(i,j)) \replacewith(not(gt(i,j))) Choices: true} testEquality(String, String)[1287] 0s passed
[1288] leq_to_gt_alt, leq_to_gt_alt { \find(leq(i,j)) \replacewith(or(lt(i,j),equals(i,j))) Choices: true} testEquality(String, String)[1288] 0.001s passed
[1289] leq_trans, leq_trans { \assumes ([leq(i,i0)]==>[]) \find(leq(i0,i1)==>) \add [leq(i,i1)]==>[] Choices: true} testEquality(String, String)[1289] 0s passed
[128] arrayInitialisation, arrayInitialisation { \find(#allmodal ( (modal operator))\[{ .. for ( int #v = #se; #v<this.#length; #v++ ) this[#v]=#lit; ... }\] (post)) \replacewith(update-application(elem-update(heap)(memset(heap,arrayRange(#a,#se,sub(length(#a),Z(1(#)))),#lit)),#allmodal(post))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[128] 0.002s passed
[1290] less_1_mult, less_1_mult { \find(and(lt(Z(1(#)),i0),lt(Z(1(#)),i1))) \replacewith(lt(Z(1(#)),mul(i0,i1))) Choices: true} testEquality(String, String)[1290] 0.001s passed
[1291] less_add, less_add { \find(==>lt(i0,i1)) \varcond(\notFreeIn(j2 (variable), i1 (int term)), \notFreeIn(j2 (variable), i0 (int term))) \replacewith([]==>[exists{j2 (variable)}(lt(add(i0,j2),add(i1,j2)))]) Choices: true} testEquality(String, String)[1291] 0.001s passed
[1292] less_add_iff1, less_add_iff1 { \find(lt(add(mul(i0,i1),i2),add(mul(i3,i1),i4))) \replacewith(lt(add(mul(sub(i0,i3),i1),i2),i4)) Choices: true} testEquality(String, String)[1292] 0s passed
[1293] less_add_iff2, less_add_iff2 { \find(lt(add(mul(i0,i1),i2),add(mul(i3,i1),i4))) \replacewith(lt(i2,add(mul(sub(i3,i0),i1),i4))) Choices: true} testEquality(String, String)[1293] 0s passed
[1294] less_add_one, less_add_one { \find(lt(i0,i1)) \replacewith(lt(add(i0,Z(1(#))),add(i1,Z(1(#))))) Choices: true} testEquality(String, String)[1294] 0s passed
[1295] less_base, less_base { \find(lt(i,i)) \replacewith(false) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1295] 0s passed
[1296] less_equal_than_comparison_new, less_equal_than_comparison_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0<=#senf1; ... }\] (post)) \replacewith(if-then-else(leq(#senf0,#senf1),#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post),#allmodal ( (modal operator))\[{ .. #lhs=false; ... }\] (post))) \heuristics(split_if, simplify_prog, obsolete) Choices: programRules:Java} testEquality(String, String)[1296] 0s passed
[1297] less_equal_than_comparison_simple, less_equal_than_comparison_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0<=#senf1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(leq(#senf0,#senf1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1297] 0s passed
[1298] less_equal_than_comparison_simple_double, less_equal_than_comparison_simple_double { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seDouble0<=#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(leqDouble(#seDouble0,#seDouble1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1298] 0s passed
[1299] less_equal_than_comparison_simple_float, less_equal_than_comparison_simple_float { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seFloat0<=#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(leqFloat(#seFloat0,#seFloat1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1299] 0s passed
[129] arrayLengthIsAShort, arrayLengthIsAShort { \find(length(o)) \sameUpdateLevel\add [inShort(length(o))]==>[] \heuristics(inReachableStateImplication) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[129] 0.001s passed
[12] activeUseByteCast, activeUseByteCast { \find(#allmodal ( (modal operator))\[{ .. #sv=(byte)#seShortIntLong; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = (byte)#seShortIntLong;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[12] 0.002s passed
[1300] less_iff_diff_less_0, less_iff_diff_less_0 { \find(lt(i0,i1)) \replacewith(lt(sub(i0,i1),Z(0(#)))) Choices: true} testEquality(String, String)[1300] 0s passed
[1301] less_is_alternative_1, less_is_alternative_1 { \assumes ([lt(i,i0),lt(i0,i)]==>[]) \closegoal Choices: true} testEquality(String, String)[1301] 0s passed
[1302] less_is_alternative_2, less_is_alternative_2 { \assumes ([]==>[lt(i,i0)]) \find(==>lt(i0,i)) \add [equals(i,i0)]==>[] Choices: true} testEquality(String, String)[1302] 0s passed
[1303] less_is_total, less_is_total { \find(i) \sameUpdateLevel\add [lt(i0,i)]==>[] ; \add [equals(i,i0)]==>[] ; \add [lt(i,i0)]==>[] Choices: true} testEquality(String, String)[1303] 0s passed
[1304] less_is_total_heu, less_is_total_heu { \assumes ([]==>[lt(i,i0),equals(i,i0),lt(i0,i)]) \closegoal Choices: true} testEquality(String, String)[1304] 0s passed
[1305] less_literals, less_literals { \find(lt(Z(iz),Z(jz))) \replacewith(#less(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1305] 0s passed
[1306] less_neg, less_neg { \find(lt(i,i0)) \replacewith(not(lt(i0,add(i,Z(1(#)))))) Choices: true} testEquality(String, String)[1306] 0.004s passed
[1307] less_plus, less_plus { \find(lt(Z(0(#)),add(i0,i1))) \replacewith(lt(neg(i0),i1)) Choices: true} testEquality(String, String)[1307] 0.001s passed
[1308] less_sub, less_sub { \find(lt(i,i0)) \replacewith(lt(neg(i0),neg(i))) Choices: true} testEquality(String, String)[1308] 0s passed
[1309] less_than_comparison_new, less_than_comparison_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0<#senf1; ... }\] (post)) \replacewith(if-then-else(lt(#senf0,#senf1),#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post),#allmodal ( (modal operator))\[{ .. #lhs=false; ... }\] (post))) \heuristics(split_if, simplify_prog, obsolete) Choices: programRules:Java} testEquality(String, String)[1309] 0.001s passed
[130] arrayLengthNotNegative, arrayLengthNotNegative { \find(length(o)) \sameUpdateLevel\add [geq(length(o),Z(0(#)))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[130] 0.001s passed
[1310] less_than_comparison_simple, less_than_comparison_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0<#senf1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(lt(#senf0,#senf1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1310] 0s passed
[1311] less_than_comparison_simple_double, less_than_comparison_simple_double { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seDouble0<#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(ltDouble(#seDouble0,#seDouble1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1311] 0.008s passed
[1312] less_than_comparison_simple_float, less_than_comparison_simple_float { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seFloat0<#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(ltFloat(#seFloat0,#seFloat1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1312] 0s passed
[1313] less_trans, less_trans { \assumes ([lt(i,i0)]==>[]) \find(lt(i0,i1)==>) \add [lt(i,i1)]==>[] Choices: true} testEquality(String, String)[1313] 0s passed
[1314] less_zero_is_total, less_zero_is_total { \find(i) \sameUpdateLevel\add [lt(Z(0(#)),i)]==>[] ; \add [equals(i,Z(0(#)))]==>[] ; \add [lt(i,Z(0(#)))]==>[] Choices: true} testEquality(String, String)[1314] 0s passed
[1315] local_cut, local_cut { \find(phi) \replacewith(and(or(not(psi),phi),or(psi,phi))) Choices: true} testEquality(String, String)[1315] 0s passed
[1316] log1Concrete, log1Concrete { \find(log(base,Z(1(#)))) \replacewith(if-then-else(gt(base,Z(1(#))),Z(0(#)),undefinedLog(base,Z(1(#))))) \heuristics(simplify) Choices: true} testEquality(String, String)[1316] 0s passed
[1317] logDefinition, logDefinition { \find(log(base,x)) \replacewith(if-then-else(and(geq(x,Z(1(#))),gt(base,Z(1(#)))),if-then-else(lt(x,base),Z(0(#)),add(Z(1(#)),log(base,div(x,base)))),undefinedLog(base,x))) Choices: true} testEquality(String, String)[1317] 0s passed
[1318] logLessThanPow, logLessThanPow { \find(lt(log(base,x),exp)) \add [imp(and(and(and(gt(base,Z(1(#))),geq(x,Z(1(#)))),lt(x,pow(base,exp))),geq(exp,Z(1(#)))),lt(log(base,x),exp))]==>[] Choices: true} testEquality(String, String)[1318] 0.001s passed
[1319] logLessThanPowConcrete, logLessThanPowConcrete { \find(==>lt(log(base,x),exp)) \add []==>[and(and(and(gt(base,Z(1(#))),geq(x,Z(1(#)))),lt(x,pow(base,exp))),geq(exp,Z(1(#))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1319] 0s passed
[131] array_post_declaration, array_post_declaration { \find(#allmodal ( (modal operator))\[{ .. #arraypost ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. array-post-declaration(#arraypost) ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[131] 0s passed
[1320] logMono, logMono { \find(leq(log(base,x),log(base,x_2))) \add [imp(and(and(geq(x,Z(1(#))),geq(x_2,x)),gt(base,Z(1(#)))),leq(log(base,x),log(base,x_2)))]==>[] Choices: true} testEquality(String, String)[1320] 0.001s passed
[1321] logMonoConcrete, logMonoConcrete { \find(leq(log(base,x_2),add(Z(neglit(1(#))),log(base,x)))==>) \add []==>[and(and(geq(x,Z(1(#))),geq(x_2,x)),gt(base,Z(1(#))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1321] 0s passed
[1322] logPositive, logPositive { \find(log(base,x)) \add [imp(and(gt(base,Z(1(#))),geq(x,Z(1(#)))),geq(log(base,x),Z(0(#))))]==>[] Choices: true} testEquality(String, String)[1322] 0.001s passed
[1323] logPositiveConcrete, logPositiveConcrete { \find(leq(log(base,x),Z(neglit(1(#))))==>) \add []==>[and(gt(base,Z(1(#))),geq(x,Z(1(#))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1323] 0s passed
[1324] logPowIdentity, logPowIdentity { \find(log(base,x)) \varcond(\notFreeIn(i (variable), base (int term)), \notFreeIn(i (variable), x (int term))) \add [imp(gt(base,Z(1(#))),all{i (variable)}(imp(geq(i,Z(0(#))),equals(log(base,pow(base,i)),i))))]==>[] Choices: true} testEquality(String, String)[1324] 0.001s passed
[1325] logPowIdentityConcrete, logPowIdentityConcrete { \find(log(base,pow(base,exp))) \replacewith(if-then-else(gt(base,Z(1(#))),if-then-else(geq(exp,Z(0(#))),exp,log(base,undefinedPow(base,exp))),undefinedLog(base,pow(base,exp)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1325] 0s passed
[1326] logProdIdentity, logProdIdentity { \find(log(base,bprod{i (variable)}(Z(0(#)),exp,base))) \varcond(\notFreeIn(i (variable), base (int term)), \notFreeIn(i (variable), exp (int term))) \add [imp(and(geq(exp,Z(0(#))),gt(base,Z(1(#)))),equals(log(base,bprod{i (variable)}(Z(0(#)),exp,base)),exp))]==>[] Choices: true} testEquality(String, String)[1326] 0.001s passed
[1327] logProdIdentityConcrete, logProdIdentityConcrete { \find(log(base,bprod{i (variable)}(Z(0(#)),exp,base))) \varcond(\notFreeIn(i (variable), base (int term)), \notFreeIn(i (variable), exp (int term))) \replacewith(if-then-else(gt(base,Z(1(#))),if-then-else(lt(exp,Z(0(#))),Z(0(#)),exp),undefinedLog(base,bprod{i (variable)}(Z(0(#)),exp,base)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1327] 0.010s passed
[1328] logProduct, logProduct { \find(log(base,mul(x,base))) \add [imp(and(geq(x,Z(1(#))),gt(base,Z(1(#)))),equals(log(base,mul(x,base)),add(log(base,x),Z(1(#)))))]==>[] Choices: true} testEquality(String, String)[1328] 0s passed
[1329] logSelfConcrete, logSelfConcrete { \find(log(base,base)) \replacewith(if-then-else(gt(base,Z(1(#))),Z(1(#)),undefinedLog(base,base))) \heuristics(simplify) Choices: true} testEquality(String, String)[1329] 0s passed
[132] array_self_reference, array_self_reference { \assumes ([wellFormed(heapSV)]==>[equals(array,null)]) \find(arrayStoreValid(array,G::select(heapSV,array,arr(idx)))) \sameUpdateLevel\replacewith(true) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[132] 0.001s passed
[1330] logSqueeze, logSqueeze { \find(equals(log(base,x),exp)) \add [imp(and(and(and(and(gt(base,Z(1(#))),geq(x,Z(1(#)))),geq(x,pow(base,exp))),lt(x,pow(base,add(exp,Z(1(#)))))),geq(exp,Z(0(#)))),equals(log(base,x),exp))]==>[] Choices: true} testEquality(String, String)[1330] 0s passed
[1331] logTimesBaseConcrete, logTimesBaseConcrete { \find(log(base,mul(x,base))) \replacewith(if-then-else(and(geq(x,Z(1(#))),gt(base,Z(1(#)))),add(log(base,x),Z(1(#))),undefinedLog(base,mul(x,base)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1331] 0s passed
[1332] loopScopeInvBox, loopScopeInvBox { \find(#box ( (modal operator))\[{ .. while ( #nse ) #body ... }\] (post)) \varcond(\new(#permissionsBefore_LOOP (program Variable), KeYJavaType:null,Heap), \new(#savedHeapBefore_LOOP (program Variable), KeYJavaType:null,Heap), \new(#heapBefore_LOOP (program Variable), KeYJavaType:null,Heap), \new(#x (program Variable), (type, sort): (boolean,boolean)), \varcond (\storeTermIn(loopFormula (formula), #box ( (modal operator))\[{while ( #nse ) #body }\] (post))), \varcond (\storeStmtI… testEquality(String, String)[1332] 0.002s passed
[1333] loopScopeInvDia, loopScopeInvDia { \find(#dia ( (modal operator))\[{ .. while ( #nse ) #body ... }\] (post)) \varcond(\new(#permissionsBefore_LOOP (program Variable), KeYJavaType:null,Heap), \new(#savedHeapBefore_LOOP (program Variable), KeYJavaType:null,Heap), \new(#heapBefore_LOOP (program Variable), KeYJavaType:null,Heap), \new(#variant (program Variable), KeYJavaType:null,any), \new(#x (program Variable), (type, sort): (boolean,boolean)), \varcond (\storeTermIn(loopFormula (formula), #dia ( (modal operator))\[{whi… testEquality(String, String)[1333] 0.001s passed
[1334] loopUnwind, loopUnwind { \find(#allmodal ( (modal operator))\[{ .. while ( #e ) #s ... }\] (post)) \varcond(\newLabel (#innerLabel (program Label)), \newLabel (#outerLabel (program Label)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #unwind-loop(while ( #e ) #s ) ... }\] (post)) \heuristics(loop_expand) Choices: programRules:Java} testEquality(String, String)[1334] 0.001s passed
[1335] lsBreak, lsBreak { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {break ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1335] 0s passed
[1336] lsContinue, lsContinue { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {continue ; #slist } ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(FALSE),post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1336] 0s passed
[1337] lsLblBreak, lsLblBreak { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {break ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#lhs=true;break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1337] 0s passed
[1338] lsLblContinueMatch, lsLblContinueMatch { \find(#allmodal ( (modal operator))\[{ .. #lb:loop-scope(#lhs) {continue ; #slist } ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(FALSE),post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1338] 0s passed
[1339] lsLblContinueNoMatch1, lsLblContinueNoMatch1 { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {continue ; #slist } ... }\] (post)) \varcond(\varcond (\storeStmtIn(#lsStmt (program Statement), #allmodal ( (modal operator))\[{loop-scope(#lhs) {continue ; #slist } }\] (post))), \varcond (\not\isLabeled(#lsStmt (program Statement)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1339] 0s passed
[133] array_self_reference_eq, array_self_reference_eq { \assumes ([wellFormed(heapSV),equals(G::select(heapSV,array,arr(idx)),EQ)]==>[equals(array,null)]) \find(arrayStoreValid(array,EQ)) \sameUpdateLevel\replacewith(true) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[133] 0.001s passed
[1340] lsLblContinueNoMatch2, lsLblContinueNoMatch2 { \find(#allmodal ( (modal operator))\[{ .. #lb1:loop-scope(#lhs) {continue ; #slist } ... }\] (post)) \varcond(\different (#lb1 (program Label), #lb (program Label)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1340] 0s passed
[1341] lsReturnNonVoid, lsReturnNonVoid { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {return #se;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;return #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1341] 0.001s passed
[1342] lsReturnVoid, lsReturnVoid { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {return ;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;return ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1342] 0s passed
[1343] lsThrow, lsThrow { \find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {throw #se;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;throw #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1343] 0.001s passed
[1344] lt_diff_1, lt_diff_1 { \find(lt(i0,add(i0,Z(1(#))))) \replacewith(true) \heuristics(int_arithmetic) Choices: true} testEquality(String, String)[1344] 0s passed
[1345] lt_to_gt, lt_to_gt { \find(lt(i,i0)) \replacewith(gt(i0,i)) Choices: true} testEquality(String, String)[1345] 0.011s passed
[1346] lt_to_leq_1, lt_to_leq_1 { \find(or(lt(i,j),equals(i,j))) \replacewith(leq(i,j)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1346] 0.001s passed
[1347] lt_to_leq_2, lt_to_leq_2 { \assumes ([]==>[lt(i,j)]) \find(==>equals(i,j)) \replacewith([]==>[leq(i,j)]) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1347] 0s passed
[1348] make_insert_eq, make_insert_eq { \find(equals(sr,tr)==>) \addrules [insert_eq { \find(sr) \replacewith(tr) Choices: true}] Choices: true} testEquality(String, String)[1348] 0s passed
[1349] make_insert_eq_nonrigid, make_insert_eq_nonrigid { \find(equals(s,t)==>) \addrules [insert_eq_nonrigid { \find(s) \sameUpdateLevel\replacewith(t) Choices: true}] Choices: true} testEquality(String, String)[1349] 0.001s passed
[134] array_store_known_dynamic_array_type, array_store_known_dynamic_array_type { \assumes ([equals(J::exactInstance(array),TRUE)]==>[]) \find(arrayStoreValid(array,obj)) \sameUpdateLevel\varcond(\isReference[non_null]( J ), ) \replacewith(or(equals(obj,null),equals(#arrayBaseInstanceOf(J::exactInstance(array),obj),TRUE))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[134] 0.001s passed
[1350] mapEqualityRight, mapEqualityRight { \find(==>equals(m0,m1)) \varcond(\notFreeIn(vy (variable), m1 (Map term)), \notFreeIn(vy (variable), m0 (Map term))) \replacewith([]==>[all{vy (variable)}(and(equiv(inDomain(m0,vy),inDomain(m1,vy)),imp(inDomain(m0,vy),equals(mapGet(m0,vy),mapGet(m1,vy)))))]) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1350] 0s passed
[1351] mapRemoveUnchanged, mapRemoveUnchanged { \find(equals(m,mapRemove(m,key))) \replacewith(not(inDomain(m,key))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1351] 0s passed
[1352] mapRemoveUnchanged2, mapRemoveUnchanged2 { \find(equals(mapRemove(m,key),m)) \replacewith(not(inDomain(m,key))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1352] 0s passed
[1353] mapSizeNotNegativeForFiniteMaps, mapSizeNotNegativeForFiniteMaps { \find(mapSize(m)) \add [imp(isFinite(m),geq(mapSize(m),Z(0(#))))]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1353] 0s passed
[1354] mapUpdateUnchanged, mapUpdateUnchanged { \find(equals(m,mapUpdate(m,key,value))) \replacewith(and(inDomain(m,key),equals(mapGet(m,key),value))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1354] 0s passed
[1355] mapUpdateUnchanged2, mapUpdateUnchanged2 { \find(equals(mapUpdate(m,key,value),m)) \replacewith(and(inDomain(m,key),equals(mapGet(m,key),value))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1355] 0s passed
[1356] maxAxiom, maxAxiom { \find(equals(max{x (variable)}(b,t),t2)==>) \varcond(\notFreeIn(y (variable), t2 (int term)), \notFreeIn(y (variable), t (int term)), \notFreeIn(y (variable), b (boolean term)), \notFreeIn(x (variable), t2 (int term))) \add []==>[exists{x (variable)}(and(equals(b,TRUE),all{y (variable)}(imp(equals(subst{x (variable)}(y,b),TRUE),leq(subst{x (variable)}(y,t),t)))))] ; \add [and(all{y (variable)}(subst{x (variable)}(y,imp(equals(b,TRUE),leq(t,t2)))),exists{y (variable)}(subst{x (variable)}(y,and(eq… testEquality(String, String)[1356] 0s passed
[1357] measuredByCheck, measuredByCheck { \assumes ([measuredBy(m)]==>[]) \find(measuredByCheck(c)) \sameUpdateLevel\replacewith(prec(c,m)) \heuristics(simplify) Choices: true} testEquality(String, String)[1357] 0s passed
[1358] measuredByCheckEmpty, measuredByCheckEmpty { \assumes ([measuredByEmpty]==>[]) \find(measuredByCheck(c)) \sameUpdateLevel\replacewith(true) \heuristics(simplify) Choices: true} testEquality(String, String)[1358] 0s passed
[1359] memsetEmpty, memsetEmpty { \find(memset(h,empty,x)) \replacewith(h) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1359] 0s passed
[135] asinIsNaN, asinIsNaN { \find(asinDouble(arg)) \add [imp(or(or(doubleIsNaN(arg),ltDouble(arg,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),gtDouble(arg,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),doubleIsNaN(asinDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[135] 0.001s passed
[1360] methodBodyExpand, methodBodyExpand { \find(#allmodal ( (modal operator))\[{ .. #mb ... }\] (post)) \replacewith(#introAtPreDefs(#allmodal ( (modal operator))\[{ .. expand-method-body(#mb) ... }\] (post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1360] 0s passed
[1361] methodCall, methodCall { \find(==>#allmodal ( (modal operator))\[{ .. #se.#mn(#selist); ... }\] (post)) \varcond(\not \staticMethodReference(#se (program SimpleExpression), #mn (program MethodName), #selist (program SimpleExpression)), \mayExpandMethod(#se (program SimpleExpression), #mn (program MethodName), #selist (program SimpleExpression)), ) \add [equals(#se,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[#allmodal ( (modal operator))\[{ .. method-call(#se.#mn(#selist);) ... }\] (post)]) \heuristics… testEquality(String, String)[1361] 0.006s passed
[1362] methodCallEmpty, methodCallEmpty { \find(#allmodal ( (modal operator))\[{ .. method-frame(#ex): {} ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1362] 0s passed
[1363] methodCallEmptyNoreturnBox, methodCallEmptyNoreturnBox { \find(\[{ .. method-frame(result->#v0, #ex): {} ... }\] (post)) \replacewith(box(post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1363] 0.001s passed
[1364] methodCallEmptyReturn, methodCallEmptyReturn { \find(#allmodal ( (modal operator))\[{ .. method-frame(#ex): { return ; #slist } ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1364] 0s passed
[1365] methodCallParamThrow, methodCallParamThrow { \find(#allmodal ( (modal operator))\[{ .. method-frame(result->#v0, #ex): { throw #se; #slist } ... }\] (post)) \varcond(\isLocalVariable (#se (program SimpleExpression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. throw #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1365] 0.001s passed
[1366] methodCallReturn, methodCallReturn { \find(#allmodal ( (modal operator))\[{ .. method-frame(result->#v0, #ex): { return #se; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. method-frame(#ex): { #v0=#se; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1366] 0.001s passed
[1367] methodCallReturnIgnoreResult, methodCallReturnIgnoreResult { \find(#allmodal ( (modal operator))\[{ .. method-frame(#ex): { return #se; #slist } ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1367] 0s passed
[1368] methodCallSuper, methodCallSuper { \find(#allmodal ( (modal operator))\[{ .. super.#mn(#elist); ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. method-call(super.#mn(#elist);) ... }\] (post)) \heuristics(method_expand, simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1368] 0.001s passed
[1369] methodCallThrow, methodCallThrow { \find(#allmodal ( (modal operator))\[{ .. method-frame(#ex): { throw #se; #slist } ... }\] (post)) \varcond(\isLocalVariable (#se (program SimpleExpression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. throw #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1369] 0s passed
[136] asineIsZero, asineIsZero { \find(asinDouble(arg)) \add [imp(equals(arg,DFP(0(#))),equals(asinDouble(arg),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[136] 0.001s passed
[1370] methodCallUnfoldArguments, methodCallUnfoldArguments { \find(#allmodal ( (modal operator))\[{ .. #nsmr ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #evaluate-arguments(#nsmr) ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1370] 0.009s passed
[1371] methodCallUnfoldTarget, methodCallUnfoldTarget { \find(#allmodal ( (modal operator))\[{ .. #nse.#mn(#elist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0;#v0=#nse;#v0.#mn(#elist); ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1371] 0.001s passed
[1372] methodCallWithAssignment, methodCallWithAssignment { \find(==>#allmodal ( (modal operator))\[{ .. #lhs=#se.#mn(#selist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide))), \not \staticMethodReference(#se (program SimpleExpression), #mn (program MethodName), #selist (program SimpleExpression)), \mayExpandMethod(#se (program SimpleExpression), #mn (program MethodName), #selist (program SimpleExpression)), ) \add [equals(#se,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[#allmodal… testEquality(String, String)[1372] 0s passed
[1373] methodCallWithAssignmentSuper, methodCallWithAssignmentSuper { \find(#allmodal ( (modal operator))\[{ .. #lhs=super.#mn(#elist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;method-call(super.#mn(#elist);)#lhs=#v0; ... }\] (post)) \heuristics(method_expand, simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1373] 0.001s passed
[1374] methodCallWithAssignmentUnfoldArguments, methodCallWithAssignmentUnfoldArguments { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nsmr; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #evaluate-arguments(#lhs=#nsmr;) ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1374] 0s passed
[1375] methodCallWithAssignmentUnfoldTarget, methodCallWithAssignmentUnfoldTarget { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse.#mn(#elist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0;#v0=#nse;#lhs=#v0.#mn(#elist); ... }\] (post)) \heuristics(simplify_autoname) Choices: programRules:Java} testEquality(String, String)[1375] 0s passed
[1376] methodCallWithAssignmentWithinClass, methodCallWithAssignmentWithinClass { \find(#allmodal ( (modal operator))\[{ .. #lhs=#mn(#elist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide))), \mayExpandMethod(null, #mn (program MethodName), #elist (program Expression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;method-call(#mn(#elist);)#lhs=#v0; ... }\] (post)) \heuristics(method_expand) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[1376] 0.001s passed
[1377] methodCallWithinClass, methodCallWithinClass { \find(#allmodal ( (modal operator))\[{ .. #mn(#elist); ... }\] (post)) \varcond(\mayExpandMethod(null, #mn (program MethodName), #elist (program Expression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. method-call(#mn(#elist);) ... }\] (post)) \heuristics(method_expand) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[1377] 0.001s passed
[1378] minAxiom, minAxiom { \find(equals(min{x (variable)}(b,t),t2)==>) \varcond(\notFreeIn(y (variable), t2 (int term)), \notFreeIn(y (variable), t (int term)), \notFreeIn(y (variable), b (boolean term)), \notFreeIn(x (variable), t2 (int term))) \add []==>[exists{x (variable)}(and(equals(b,TRUE),all{y (variable)}(imp(equals(subst{x (variable)}(y,b),TRUE),geq(subst{x (variable)}(y,t),t)))))] ; \add [and(all{y (variable)}(subst{x (variable)}(y,imp(equals(b,TRUE),geq(t,t2)))),exists{y (variable)}(subst{x (variable)}(y,and(eq… testEquality(String, String)[1378] 0s passed
[1379] minus_distribute_1, minus_distribute_1 { \find(neg(add(i,i1))) \replacewith(add(neg(i),neg(i1))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1379] 0.001s passed
[137] asineRange, asineRange { \find(asinDouble(arg)) \add [imp(and(geqDouble(arg,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),leqDouble(arg,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),and(geqDouble(asinDouble(arg),negDouble(DFP(2(5(3(5(7(6(4(2(9(6(5(0(3(5(7(9(0(6(4(#)))))))))))))))))))))),leqDouble(asinDouble(arg),DFP(2(5(3(5(7(6(4(2(9(6(5(0(3(5(7(9(0(6(4(#)))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[137] 0.003s passed
[1380] minus_distribute_2, minus_distribute_2 { \find(neg(sub(i,i1))) \replacewith(add(neg(i),i1)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1380] 0s passed
[1381] mod_axiom, mod_axiom { \find(mod(divNum,divDenom)) \replacewith(add(divNum,mul(mul(div(divNum,divDenom),Z(neglit(1(#)))),divDenom))) \heuristics(notHumanReadable, defOps_mod) Choices: true} testEquality(String, String)[1381] 0.001s passed
[1382] mod_geZero, mod_geZero { \find(mod(divNum,divDenom)) \add [imp(not(equals(divDenom,Z(0(#)))),leq(Z(0(#)),mod(divNum,divDenom)))]==>[] Choices: true} testEquality(String, String)[1382] 0s passed
[1383] mod_homoEq, mod_homoEq { \find(equals(mod(modNumLeft,modDenom),mod(modNumRight,modDenom))) \replacewith(equals(mod(sub(modNumLeft,modNumRight),modDenom),Z(0(#)))) \heuristics(notHumanReadable, defOps_modHomoEq) Choices: true} testEquality(String, String)[1383] 0s passed
[1384] mod_lessDenom, mod_lessDenom { \find(mod(divNum,divDenom)) \add [imp(not(equals(divDenom,Z(0(#)))),lt(mod(divNum,divDenom),if-then-else(geq(divDenom,Z(0(#))),divDenom,neg(divDenom))))]==>[] Choices: true} testEquality(String, String)[1384] 0.006s passed
[1385] moduloByteFixpoint, moduloByteFixpoint { \assumes ([inRangeByte(i)]==>[]) \find(moduloByte(i)) \sameUpdateLevel\replacewith(i) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1385] 0s passed
[1386] moduloByteFixpointInline, moduloByteFixpointInline { \find(moduloByte(i)) \sameUpdateLevel\add [equals(if-then-else(inRangeByte(i),i,moduloT),moduloT),equals(moduloByte(i),moduloT)]==>[] \replacewith(moduloT) Choices: programRules:Java} testEquality(String, String)[1386] 0.001s passed
[1387] moduloByteIsInByte, moduloByteIsInByte { \find(inByte(moduloByte(t))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1387] 0s passed
[1388] moduloByteIsInRangeByte, moduloByteIsInRangeByte { \find(inRangeByte(moduloByte(i))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1388] 0.010s passed
[1389] moduloCharFixpoint, moduloCharFixpoint { \assumes ([inRangeChar(i)]==>[]) \find(moduloChar(i)) \sameUpdateLevel\replacewith(i) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1389] 0s passed
[138] assertSafe, assertSafe { \find(==>#allmodal ( (modal operator))\[{ .. assert #e1; ... }\] (b)) \varcond(\new(#condition (program Variable), \typeof(#e1 (program Expression))), \not \containsAssignment( #e1 ), ) \add [equals(oldHeap,heap)]==>[] \replacewith([]==>[\[{method-frame(#ex): {#typeof (#e1) #condition = #e1; } }\] (all{f (variable)}(all{o (variable)}(or(and(not(equals(o,null)),equals(boolean::select(oldHeap,o,java.lang.Object::<created>),FALSE)),equals(any::select(oldHeap,o,f),any::select(heap,o,f))))))])… testEquality(String, String)[138] 0.002s passed
[1390] moduloCharFixpointInline, moduloCharFixpointInline { \find(moduloChar(i)) \sameUpdateLevel\add [equals(if-then-else(inRangeChar(i),i,moduloT),moduloT),equals(moduloChar(i),moduloT)]==>[] \replacewith(moduloT) Choices: programRules:Java} testEquality(String, String)[1390] 0s passed
[1391] moduloCharIsInChar, moduloCharIsInChar { \find(inChar(moduloChar(t))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1391] 0.001s passed
[1392] moduloCharIsInRangeChar, moduloCharIsInRangeChar { \find(inRangeChar(moduloChar(i))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1392] 0s passed
[1393] moduloIntFixpoint, moduloIntFixpoint { \assumes ([inRangeInt(i)]==>[]) \find(moduloInt(i)) \sameUpdateLevel\replacewith(i) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1393] 0.001s passed
[1394] moduloIntFixpointInline, moduloIntFixpointInline { \find(moduloInt(i)) \sameUpdateLevel\add [equals(if-then-else(inRangeInt(i),i,moduloT),moduloT),equals(moduloInt(i),moduloT)]==>[] \replacewith(moduloT) Choices: programRules:Java} testEquality(String, String)[1394] 0.003s passed
[1395] moduloIntIsInInt, moduloIntIsInInt { \find(inInt(moduloInt(t))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1395] 0s passed
[1396] moduloIntIsInRangeInt, moduloIntIsInRangeInt { \find(inRangeInt(moduloInt(i))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1396] 0.009s passed
[1397] moduloLongFixpoint, moduloLongFixpoint { \assumes ([inRangeLong(i)]==>[]) \find(moduloLong(i)) \sameUpdateLevel\replacewith(i) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1397] 0.001s passed
[1398] moduloLongFixpointInline, moduloLongFixpointInline { \find(moduloLong(i)) \sameUpdateLevel\add [equals(if-then-else(inRangeLong(i),i,moduloT),moduloT),equals(moduloLong(i),moduloT)]==>[] \replacewith(moduloT) Choices: programRules:Java} testEquality(String, String)[1398] 0s passed
[1399] moduloLongIsInLong, moduloLongIsInLong { \find(inLong(moduloLong(t))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1399] 0s passed
[139] assertSafeWithMessage, assertSafeWithMessage { \find(==>#allmodal ( (modal operator))\[{ .. assert #e1 : #e2; ... }\] (b)) \varcond(\new(#message (program Variable), \typeof(#e2 (program Expression))), \new(#condition (program Variable), \typeof(#e1 (program Expression))), \not \containsAssignment( #e1 ), \not \containsAssignment( #e2 ), ) \add [equals(oldHeap,heap)]==>[] \replacewith([]==>[\[{method-frame(#ex): {#typeof (#e1) #condition = #e1;#typeof (#e2) #message = #e2; } }\] (all{f (variable)}(all{o (variable)}(or(an… testEquality(String, String)[139] 0.003s passed
[13] activeUseCharCast, activeUseCharCast { \find(#allmodal ( (modal operator))\[{ .. #sv=(char)#seByteShortIntLong; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = (char)#seByteShortIntLong;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[13] 0.001s passed
[1400] moduloLongIsInRangeLong, moduloLongIsInRangeLong { \find(inRangeLong(moduloLong(i))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1400] 0.001s passed
[1401] moduloShortFixpoint, moduloShortFixpoint { \assumes ([inRangeShort(i)]==>[]) \find(moduloShort(i)) \sameUpdateLevel\replacewith(i) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1401] 0s passed
[1402] moduloShortFixpointInline, moduloShortFixpointInline { \find(moduloShort(i)) \sameUpdateLevel\add [equals(if-then-else(inRangeShort(i),i,moduloT),moduloT),equals(moduloShort(i),moduloT)]==>[] \replacewith(moduloT) Choices: programRules:Java} testEquality(String, String)[1402] 0.001s passed
[1403] moduloShortIsInRangeShort, moduloShortIsInRangeShort { \find(inRangeShort(moduloShort(i))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1403] 0s passed
[1404] moduloShortIsInShort, moduloShortIsInShort { \find(inShort(moduloShort(t))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1404] 0.001s passed
[1405] mul_assoc, mul_assoc { \find(mul(mul(i,i0),i1)) \replacewith(mul(i,mul(i0,i1))) Choices: true} testEquality(String, String)[1405] 0s passed
[1406] mul_comm, mul_comm { \find(mul(i0,i1)) \replacewith(mul(i1,i0)) Choices: true} testEquality(String, String)[1406] 0.001s passed
[1407] mul_distribute_4, mul_distribute_4 { \find(mul(i0,add(i1,i2))) \replacewith(add(mul(i0,i1),mul(i0,i2))) Choices: true} testEquality(String, String)[1407] 0s passed
[1408] mul_distribute_5, mul_distribute_5 { \find(mul(add(i1,i2),i0)) \replacewith(add(mul(i0,i1),mul(i0,i2))) Choices: true} testEquality(String, String)[1408] 0s passed
[1409] mul_literals, mul_literals { \find(mul(Z(iz),Z(jz))) \replacewith(#mul(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1409] 0s passed
[140] assignment, assignment { \find(#allmodal ( (modal operator))\[{ .. #loc=#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(#se),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[140] 0.001s passed
[1410] mult_eq_1_iff, mult_eq_1_iff { \find(equals(mul(i0,i1),Z(1(#)))) \replacewith(or(and(equals(i0,Z(1(#))),equals(i1,Z(1(#)))),and(equals(i0,Z(neglit(1(#)))),equals(i1,Z(neglit(1(#))))))) Choices: true} testEquality(String, String)[1410] 0s passed
[1411] mult_eq_self_iff, mult_eq_self_iff { \find(equals(i0,mul(i0,i1))) \replacewith(or(equals(i0,Z(0(#))),equals(i1,Z(1(#))))) Choices: true} testEquality(String, String)[1411] 0.001s passed
[1412] mult_leq_0_iff, mult_leq_0_iff { \find(leq(mul(i0,i1),Z(0(#)))) \replacewith(or(and(leq(i0,Z(0(#))),leq(Z(0(#)),i1)),and(leq(Z(0(#)),i0),leq(i1,Z(0(#)))))) Choices: true} testEquality(String, String)[1412] 0s passed
[1413] mult_less_0_iff, mult_less_0_iff { \find(lt(mul(i0,i1),Z(0(#)))) \replacewith(or(and(lt(i0,Z(0(#))),lt(Z(0(#)),i1)),and(lt(Z(0(#)),i0),lt(i1,Z(0(#)))))) Choices: true} testEquality(String, String)[1413] 0.006s passed
[1414] mult_neg, mult_neg { \find(and(lt(i0,Z(0(#))),lt(i1,Z(0(#))))) \replacewith(lt(Z(0(#)),mul(i0,i1))) Choices: true} testEquality(String, String)[1414] 0s passed
[1415] mult_pos, mult_pos { \find(and(lt(Z(0(#)),i0),lt(Z(0(#)),i1))) \replacewith(lt(Z(0(#)),mul(i0,i1))) Choices: true} testEquality(String, String)[1415] 0s passed
[1416] mult_pos_neg, mult_pos_neg { \find(and(lt(i0,Z(0(#))),lt(Z(0(#)),i1))) \replacewith(lt(mul(i0,i1),Z(0(#)))) Choices: true} testEquality(String, String)[1416] 0s passed
[1417] multiply_2_inEq0, multiply_2_inEq0 { \assumes ([leq(multFacLeft,multFacRight)]==>[]) \find(leq(multLeft,multRight)==>) \add [geq(mul(multLeft,multFacLeft),add(add(mul(neg(multRight),multFacRight),mul(multRight,multFacLeft)),mul(multLeft,multFacRight)))]==>[] \heuristics(inEqSimp_nonLin_multiply, inEqSimp_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[1417] 0.001s passed
[1418] multiply_2_inEq1, multiply_2_inEq1 { \assumes ([geq(multFacLeft,multFacRight)]==>[]) \find(leq(multLeft,multRight)==>) \add [leq(mul(multLeft,multFacLeft),add(add(mul(neg(multRight),multFacRight),mul(multRight,multFacLeft)),mul(multLeft,multFacRight)))]==>[] \heuristics(inEqSimp_nonLin_multiply, inEqSimp_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[1418] 0s passed
[1419] multiply_2_inEq2, multiply_2_inEq2 { \assumes ([leq(multFacLeft,multFacRight)]==>[]) \find(geq(multLeft,multRight)==>) \add [leq(mul(multLeft,multFacLeft),add(add(mul(neg(multRight),multFacRight),mul(multRight,multFacLeft)),mul(multLeft,multFacRight)))]==>[] \heuristics(inEqSimp_nonLin_multiply, inEqSimp_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[1419] 0.001s passed
[141] assignmentAdditionBigint1, assignmentAdditionBigint1 { \find(#allmodal ( (modal operator))\[{ .. #loc=#seBigint+#seAny; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(add(#seBigint,#seAny)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[141] 0.003s passed
[1420] multiply_2_inEq3, multiply_2_inEq3 { \assumes ([geq(multFacLeft,multFacRight)]==>[]) \find(geq(multLeft,multRight)==>) \add [geq(mul(multLeft,multFacLeft),add(add(mul(neg(multRight),multFacRight),mul(multRight,multFacLeft)),mul(multLeft,multFacRight)))]==>[] \heuristics(inEqSimp_nonLin_multiply, inEqSimp_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[1420] 0s passed
[1421] multiply_distribute_1, multiply_distribute_1 { \find(mul(add(i0,i1),add(j0,j1))) \replacewith(add(add(mul(i0,j0),mul(i0,j1)),add(mul(i1,j0),mul(i1,j1)))) Choices: true} testEquality(String, String)[1421] 0s passed
[1422] multiply_distribute_2, multiply_distribute_2 { \find(mul(add(i0,i1),sub(j0,j1))) \replacewith(add(sub(mul(i0,j0),mul(i0,j1)),sub(mul(i1,j0),mul(i1,j1)))) Choices: true} testEquality(String, String)[1422] 0.001s passed
[1423] multiply_distribute_3, multiply_distribute_3 { \find(mul(sub(i0,i1),sub(j0,j1))) \replacewith(add(sub(mul(i0,j0),mul(i0,j1)),sub(mul(i1,j1),mul(i1,j0)))) Choices: true} testEquality(String, String)[1423] 0s passed
[1424] multiply_eq, multiply_eq { \find(equals(multLeft,multRight)==>) \add [equals(mul(multLeft,multFac),mul(multRight,multFac))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[1424] 0s passed
[1425] multiply_inEq0, multiply_inEq0 { \find(leq(multLeft,multRight)==>) \add [if-then-else(geq(multFac,Z(0(#))),leq(mul(multLeft,multFac),mul(multRight,multFac)),geq(mul(multLeft,multFac),mul(multRight,multFac)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[1425] 0s passed
[1426] multiply_inEq1, multiply_inEq1 { \find(geq(multLeft,multRight)==>) \add [if-then-else(geq(multFac,Z(0(#))),geq(mul(multLeft,multFac),mul(multRight,multFac)),leq(mul(multLeft,multFac),mul(multRight,multFac)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[1426] 0s passed
[1427] narrowSelectArrayType, narrowSelectArrayType { \assumes ([wellFormed(h)]==>[equals(o,null)]) \find(beta::select(h,o,arr(idx))) \sameUpdateLevel\varcond(\hasSort(\elemSort(o (java.lang.Object term)), alpha), \strict\sub(alpha, beta), ) \replacewith(alpha::select(h,o,arr(idx))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1427] 0s passed
[1428] narrowSelectType, narrowSelectType { \assumes ([wellFormed(h)]==>[]) \find(beta::select(h,o,f)) \varcond(\fieldType(f (Field term), alpha), \strict\sub(alpha, beta), ) \replacewith(alpha::select(h,o,f)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1428] 0.001s passed
[1429] narrowingByteCastBigint, narrowingByteCastBigint { \find(#allmodal ( (modal operator))\[{ .. #loc=(byte)#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastByte(#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[1429] 0.001s passed
[142] assignmentAdditionBigint2, assignmentAdditionBigint2 { \find(#allmodal ( (modal operator))\[{ .. #loc=#seAny+#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(add(#seAny,#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[142] 0.001s passed
[1430] narrowingByteCastInt, narrowingByteCastInt { \find(#normalassign ( (modal operator))\[{ .. #loc=(byte)#seInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastByte(#seInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1430] 0s passed
[1431] narrowingByteCastLong, narrowingByteCastLong { \find(#normalassign ( (modal operator))\[{ .. #loc=(byte)#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastByte(#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1431] 0s passed
[1432] narrowingByteCastShort, narrowingByteCastShort { \find(#normalassign ( (modal operator))\[{ .. #loc=(byte)#seShort; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastByte(#seShort)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1432] 0.001s passed
[1433] narrowingCastFloatToInt, narrowingCastFloatToInt { \find(#normalassign ( (modal operator))\[{ .. #loc=(int)#seFloat; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(int::cast(#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1433] 0s passed
[1434] narrowingCastFloatToLong, narrowingCastFloatToLong { \find(#normalassign ( (modal operator))\[{ .. #loc=(long)#seFloat; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(int::cast(#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1434] 0.001s passed
[1435] narrowingCharCastBigint, narrowingCharCastBigint { \find(#allmodal ( (modal operator))\[{ .. #loc=(char)#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastChar(#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[1435] 0s passed
[1436] narrowingCharCastByte, narrowingCharCastByte { \find(#normalassign ( (modal operator))\[{ .. #loc=(char)#seByte; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastChar(#seByte)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1436] 0.001s passed
[1437] narrowingCharCastInt, narrowingCharCastInt { \find(#normalassign ( (modal operator))\[{ .. #loc=(char)#seInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastChar(#seInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1437] 0s passed
[1438] narrowingCharCastLong, narrowingCharCastLong { \find(#normalassign ( (modal operator))\[{ .. #loc=(char)#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastChar(#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1438] 0s passed
[1439] narrowingCharCastShort, narrowingCharCastShort { \find(#normalassign ( (modal operator))\[{ .. #loc=(char)#seShort; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastChar(#seShort)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1439] 0s passed
[143] assignmentAdditionDouble, assignmentAdditionDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0+#seDouble1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[143] 0.001s passed
[1440] narrowingIntCastBigint, narrowingIntCastBigint { \find(#allmodal ( (modal operator))\[{ .. #loc=(int)#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastInt(#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[1440] 0s passed
[1441] narrowingIntCastLong, narrowingIntCastLong { \find(#normalassign ( (modal operator))\[{ .. #loc=(int)#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastInt(#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1441] 0s passed
[1442] narrowingLongCastBigint, narrowingLongCastBigint { \find(#allmodal ( (modal operator))\[{ .. #loc=(long)#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastLong(#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[1442] 0s passed
[1443] narrowingShortCastBigint, narrowingShortCastBigint { \find(#allmodal ( (modal operator))\[{ .. #loc=(short)#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastShort(#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[1443] 0.002s passed
[1444] narrowingShortCastInt, narrowingShortCastInt { \find(#normalassign ( (modal operator))\[{ .. #loc=(short)#seInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastShort(#seInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1444] 0.001s passed
[1445] narrowingShortCastLong, narrowingShortCastLong { \find(#normalassign ( (modal operator))\[{ .. #loc=(short)#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaCastShort(#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1445] 0s passed
[1446] neg_literal, neg_literal { \find(neg(Z(iz))) \replacewith(Z(neglit(iz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1446] 0s passed
[1447] neq_and, neq_and { \find(and(phi,not(phi))) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1447] 0s passed
[1448] neq_and_2, neq_and_2 { \find(and(not(phi),phi)) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1448] 0.001s passed
[1449] neq_and_3, neq_and_3 { \find(and(and(psi,phi),not(phi))) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1449] 0s passed
[144] assignmentAdditionDoubleStrictFP, assignmentAdditionDoubleStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0+#seDouble1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(addDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeDoubleAssignment) Choices: programRules:Java} testEquality(String, String)[144] 0.001s passed
[1450] neq_and_4, neq_and_4 { \find(and(and(psi,not(phi)),phi)) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1450] 0.001s passed
[1451] neq_or, neq_or { \find(or(phi,not(phi))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1451] 0s passed
[1452] neq_or_2, neq_or_2 { \find(or(not(phi),phi)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1452] 0.001s passed
[1453] neq_or_3, neq_or_3 { \find(or(or(psi,phi),not(phi))) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1453] 0s passed
[1454] neq_or_4, neq_or_4 { \find(or(or(psi,not(phi)),phi)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1454] 0.001s passed
[1455] newSym_eq, newSym_eq { \find(equals(mul(newSymLeft,newSymLeftCoeff),newSymRight)==>) \add [equals(newSymLeft,add(l,newSymDef))]==>[] \heuristics(polySimp_newSmallSym, polySimp_newSym, polySimp_leftNonUnit) Choices: integerSimplificationRules:full} testEquality(String, String)[1455] 0s passed
[1456] niceDouble, niceDouble { \find(doubleIsNice(arg)) \replacewith(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1456] 0s passed
[1457] niceFloat, niceFloat { \find(floatIsNice(arg)) \replacewith(and(not(floatIsNaN(arg)),not(floatIsInfinite(arg)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1457] 0s passed
[1458] nnf_ex2all, nnf_ex2all { \find(==>exists{u (variable)}(phi)) \replacewith([all{u (variable)}(not(phi))]==>[]) \heuristics(notHumanReadable, moveQuantToLeft) Choices: true} testEquality(String, String)[1458] 0s passed
[1459] nnf_imp2or, nnf_imp2or { \find(imp(phi,psi)) \replacewith(or(not(phi),psi)) \heuristics(notHumanReadable, negationNormalForm) Choices: true} testEquality(String, String)[1459] 0s passed
[145] assignmentAdditionFloat, assignmentAdditionFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0+#seFloat1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[145] 0.001s passed
[1460] nnf_notAll, nnf_notAll { \find(not(all{u (variable)}(phi))) \replacewith(exists{u (variable)}(not(phi))) \heuristics(notHumanReadable, negationNormalForm) Choices: true} testEquality(String, String)[1460] 0.001s passed
[1461] nnf_notAnd, nnf_notAnd { \find(not(and(phi,psi))) \replacewith(or(not(phi),not(psi))) \heuristics(notHumanReadable, negationNormalForm) Choices: true} testEquality(String, String)[1461] 0.012s passed
[1462] nnf_notEqv, nnf_notEqv { \find(not(equiv(phi,psi))) \replacewith(equiv(phi,not(psi))) \heuristics(notHumanReadable, negationNormalForm) Choices: true} testEquality(String, String)[1462] 0s passed
[1463] nnf_notEx, nnf_notEx { \find(not(exists{u (variable)}(phi))) \replacewith(all{u (variable)}(not(phi))) \heuristics(notHumanReadable, negationNormalForm) Choices: true} testEquality(String, String)[1463] 0s passed
[1464] nnf_notOr, nnf_notOr { \find(not(or(phi,psi))) \replacewith(and(not(phi),not(psi))) \heuristics(notHumanReadable, negationNormalForm) Choices: true} testEquality(String, String)[1464] 0.001s passed
[1465] noElementOfSupersetImpliesNoElementOfSubset, noElementOfSupersetImpliesNoElementOfSubset { \assumes ([subset(s,s2)]==>[]) \find(==>elementOf(o,f,s2)) \add []==>[elementOf(o,f,s)] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1465] 0s passed
[1466] nonNull, nonNull { \find(nonNull(heapSV,o,depth)) \varcond(\notFreeIn(i (variable), depth (int term)), \notFreeIn(i (variable), heapSV (Heap term)), \notFreeIn(i (variable), o (java.lang.Object term)), \isReferenceArray(o (java.lang.Object term)), ) \replacewith(and(not(equals(o,null)),imp(gt(depth,Z(0(#))),all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,length(o))),nonNull(heapSV,java.lang.Object::select(heapSV,o,arr(i)),sub(depth,Z(1(#))))))))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1466] 0.001s passed
[1467] nonNullZero, nonNullZero { \find(nonNull(heapSV,o,Z(0(#)))) \replacewith(not(equals(o,null))) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1467] 0s passed
[1468] notInDomain, notInDomain { \find(==>inDomain(m,x)) \add [equals(mapGet(m,x),mapUndef)]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1468] 0s passed
[1469] notLeft, notLeft { \find(not(b)==>) \replacewith([]==>[b]) \heuristics(alpha) Choices: true} testEquality(String, String)[1469] 0s passed
[146] assignmentAdditionFloatStrictFP, assignmentAdditionFloatStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0+#seFloat1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(addFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[146] 0.001s passed
[1470] notRight, notRight { \find(==>not(b)) \replacewith([b]==>[]) \heuristics(alpha) Choices: true} testEquality(String, String)[1470] 0s passed
[1471] nullCreated, nullCreated { \add [or(all{h (variable)}(equals(boolean::select(h,null,java.lang.Object::<created>),TRUE)),all{h (variable)}(equals(boolean::select(h,null,java.lang.Object::<created>),FALSE)))]==>[] Choices: programRules:Java} testEquality(String, String)[1471] 0s passed
[1472] nullIsNotNonNull, nullIsNotNonNull { \find(nonNull(heapSV,null,depth)) \replacewith(false) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1472] 0s passed
[1473] nullString, nullString { \find(strContent(null)) \replacewith(seqConcat(seqSingleton(C(0(1(1(#))))),seqConcat(seqSingleton(C(7(1(1(#))))),seqConcat(seqSingleton(C(8(0(1(#))))),seqSingleton(C(8(0(1(#))))))))) \heuristics(concrete) Choices: true} testEquality(String, String)[1473] 0.001s passed
[1474] null_can_always_be_stored_in_a_reference_type_array, null_can_always_be_stored_in_a_reference_type_array { \assumes ([]==>[equals(array,null)]) \find(arrayStoreValid(array,null)) \sameUpdateLevel\varcond(\isReferenceArray(array (GOS term)), ) \replacewith(true) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1474] 0s passed
[1475] observerDependency, observerDependency { \find(termWithLargeHeap) \inSequentState\varcond(\sameObserver (termWithLargeHeap (any term), termWithSmallHeap (any term)), ) \add []==>[#ObserverEquality(termWithLargeHeap,termWithSmallHeap)] ; \replacewith(termWithSmallHeap) Choices: programRules:Java} testEquality(String, String)[1475] 0s passed
[1476] observerDependencyEQ, observerDependencyEQ { \find(equals(t1,t2)) \inSequentState\varcond(\sameObserver (t1 (any term), t2 (any term)), ) \add []==>[#ObserverEquality(t1,t2)] ; \replacewith(true) Choices: programRules:Java} testEquality(String, String)[1476] 0s passed
[1477] observerDependencyEquiv, observerDependencyEquiv { \find(equiv(t1,t2)) \inSequentState\varcond(\sameObserver (t1 (formula), t2 (formula)), ) \add []==>[#ObserverEquality(t1,t2)] ; \replacewith(true) Choices: programRules:Java} testEquality(String, String)[1477] 0.001s passed
[1478] observerDependencyFormula, observerDependencyFormula { \find(termWithLargeHeap) \inSequentState\varcond(\sameObserver (termWithLargeHeap (formula), termWithSmallHeap (formula)), ) \add []==>[#ObserverEquality(termWithLargeHeap,termWithSmallHeap)] ; \replacewith(termWithSmallHeap) Choices: programRules:Java} testEquality(String, String)[1478] 0.001s passed
[1479] onlyCreatedObjectsAreInLocSets, onlyCreatedObjectsAreInLocSets { \assumes ([wellFormed(h)]==>[]) \find(elementOf(o2,f2,LocSet::select(h,o,f))==>) \add [or(equals(o2,null),equals(boolean::select(h,o2,java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[1479] 0s passed
[147] assignmentAdditionInt, assignmentAdditionInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0+#seCharByteShortInt1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[147] 0.001s passed
[1480] onlyCreatedObjectsAreInLocSetsEQ, onlyCreatedObjectsAreInLocSetsEQ { \assumes ([wellFormed(h),equals(LocSet::select(h,o,f),EQ)]==>[]) \find(elementOf(o2,f2,EQ)==>) \add [or(equals(o2,null),equals(boolean::select(h,o2,java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[1480] 0.001s passed
[1481] onlyCreatedObjectsAreObserved, onlyCreatedObjectsAreObserved { \find(obs) \sameUpdateLevel\varcond(\isObserver (obs (deltaObject term), h (Heap term)), ) \add [or(equals(obs,null),equals(boolean::select(h,obs,java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[1481] 0.001s passed
[1482] onlyCreatedObjectsAreObservedInLocSets, onlyCreatedObjectsAreObservedInLocSets { \find(elementOf(o,f,obs)==>) \varcond(\isObserver (obs (LocSet term), h (Heap term)), ) \add [or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[1482] 0.007s passed
[1483] onlyCreatedObjectsAreObservedInLocSetsEQ, onlyCreatedObjectsAreObservedInLocSetsEQ { \assumes ([equals(obs,EQ)]==>[]) \find(elementOf(o,f,EQ)==>) \varcond(\isObserver (obs (LocSet term), h (Heap term)), ) \add [or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[1483] 0s passed
[1484] onlyCreatedObjectsAreReferenced, onlyCreatedObjectsAreReferenced { \assumes ([wellFormed(h)]==>[]) \find(deltaObject::select(h,o,f)) \sameUpdateLevel\add [or(equals(deltaObject::select(h,o,f),null),equals(boolean::select(h,deltaObject::select(h,o,f),java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} testEquality(String, String)[1484] 0.001s passed
[1485] only_created_objects_are_reachable, only_created_objects_are_reachable { \assumes ([wellFormed(h)]==>[equals(o,null)]) \find(reach(h,s,o,o2,n)==>) \add [or(not(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE)),equals(boolean::select(h,o2,java.lang.Object::<created>),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: reach:on} testEquality(String, String)[1485] 0s passed
[1486] optAxiom, optAxiom { \find(match(opt(rexp),string)) \replacewith(or(match(repeat(rexp,Z(0(#))),string),match(rexp,string))) \heuristics(simplify) Choices: Strings:on} testEquality(String, String)[1486] 0s passed
[1487] optEmpty, optEmpty { \find(match(opt(rexp),seqEmpty)) \replacewith(true) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1487] 0.001s passed
[1488] orJIntDef, orJIntDef { \find(orJint(left,right)) \replacewith(moduloInt(binaryOr(left,right))) \heuristics(simplify) Choices: true} testEquality(String, String)[1488] 0s passed
[1489] orJintInInt, orJintInInt { \find(orJint(left,right)) \sameUpdateLevel\add [inRangeInt(orJint(left,right))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1489] 0.001s passed
[148] assignmentAdditionLong, assignmentAdditionLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt+#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddLong(#seCharByteShortInt,#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[148] 0.001s passed
[1490] orLeft, orLeft { \find(or(b,c)==>) \replacewith([c]==>[]) ; \replacewith([b]==>[]) \heuristics(beta) Choices: true} testEquality(String, String)[1490] 0s passed
[1491] orRight, orRight { \find(==>or(b,c)) \replacewith([]==>[b,c]) \heuristics(alpha) Choices: true} testEquality(String, String)[1491] 0s passed
[1492] parallelWithSkip1, parallelWithSkip1 { \find(parallel-upd(skip,u)) \replacewith(u) \heuristics(update_elim) Choices: true} testEquality(String, String)[1492] 0.001s passed
[1493] parallelWithSkip2, parallelWithSkip2 { \find(parallel-upd(u,skip)) \replacewith(u) \heuristics(update_elim) Choices: true} testEquality(String, String)[1493] 0.011s passed
[1494] partition_inequation, partition_inequation { \assumes ([]==>[lt(i,i0)]) \find(lt(i,i1)==>) \add []==>[lt(i1,i0)] Choices: true} testEquality(String, String)[1494] 0s passed
[1495] permissionDefaultValue, permissionDefaultValue { \find(Permission::defaultValue) \replacewith(initFullPermission) \heuristics(simplify) Choices: true} testEquality(String, String)[1495] 0s passed
[1496] polyDiv_pullOut, polyDiv_pullOut { \find(div(divNum,divDenom)) \replacewith(if-then-else(equals(divDenom,Z(0(#))),div(divNum,Z(0(#))),add(div(add(divNum,mul(mul(polyDivCoeff,Z(neglit(1(#)))),divDenom)),divDenom),polyDivCoeff))) \heuristics(notHumanReadable, defOps_divModPullOut, polyDivision) Choices: true} testEquality(String, String)[1496] 0.001s passed
[1497] polyDiv_zero, polyDiv_zero { \find(div(Z(0(#)),divDenom)) \replacewith(if-then-else(equals(divDenom,Z(0(#))),div(Z(0(#)),Z(0(#))),Z(0(#)))) \heuristics(polyDivision) Choices: true} testEquality(String, String)[1497] 0s passed
[1498] polyMod_ltdivDenom, polyMod_ltdivDenom { \find(mod(divNum,divDenom)) \add [and(imp(gt(divDenom,Z(0(#))),lt(mod(divNum,divDenom),divDenom)),imp(lt(divDenom,Z(0(#))),lt(mod(divNum,divDenom),neg(divDenom))))]==>[] Choices: true} testEquality(String, String)[1498] 0s passed
[1499] polyMod_pullOut, polyMod_pullOut { \find(mod(divNum,divDenom)) \replacewith(mod(add(divNum,mul(mul(polyDivCoeff,Z(neglit(1(#)))),divDenom)),divDenom)) \heuristics(notHumanReadable, defOps_divModPullOut, polyDivision) Choices: true} testEquality(String, String)[1499] 0.001s passed
[149] assignmentAdditionLong2, assignmentAdditionLong2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong+#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddLong(#seLong,#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[149] 0.002s passed
[14] activeUseDivision, activeUseDivision { \find(#allmodal ( (modal operator))\[{ .. #sv=#left/#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left/#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[14] 0.003s passed
[1500] polyMod_zero, polyMod_zero { \find(mod(Z(0(#)),divDenom)) \replacewith(Z(0(#))) \heuristics(concrete, polyDivision) Choices: true} testEquality(String, String)[1500] 0s passed
[1501] polySimp_addAssoc, polySimp_addAssoc { \find(add(addAssocPoly0,add(addAssocPoly1,addAssocMono))) \replacewith(add(add(addAssocPoly0,addAssocPoly1),addAssocMono)) \heuristics(polySimp_addAssoc, polySimp_expand) Choices: true} testEquality(String, String)[1501] 0.001s passed
[1502] polySimp_addComm0, polySimp_addComm0 { \find(add(commLeft,commRight)) \replacewith(add(commRight,commLeft)) \heuristics(polySimp_addOrder, polySimp_expand) Choices: true} testEquality(String, String)[1502] 0s passed
[1503] polySimp_addComm1, polySimp_addComm1 { \find(add(add(i0,commLeft),commRight)) \replacewith(add(add(i0,commRight),commLeft)) \heuristics(polySimp_addOrder, polySimp_expand) Choices: true} testEquality(String, String)[1503] 0s passed
[1504] polySimp_addLiterals, polySimp_addLiterals { \find(add(add(i,Z(iz)),Z(jz))) \replacewith(add(i,#add(Z(iz),Z(jz)))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1504] 0.001s passed
[1505] polySimp_critPair, polySimp_critPair { \assumes ([equals(cpLeft1,cpRight1)]==>[]) \find(equals(cpLeft2,cpRight2)==>) \add [equals(add(mul(#divideLCRMonomials(cpLeft2,cpLeft1),add(mul(Z(neglit(1(#))),cpRight1),cpLeft1)),mul(#divideLCRMonomials(cpLeft1,cpLeft2),add(cpRight2,mul(Z(neglit(1(#))),cpLeft2)))),Z(0(#)))]==>[] \heuristics(notHumanReadable, polySimp_critPair, polySimp_saturate) Choices: true} testEquality(String, String)[1505] 0s passed
[1506] polySimp_elimNeg, polySimp_elimNeg { \find(neg(i)) \replacewith(mul(i,Z(neglit(1(#))))) \heuristics(polySimp_elimSubNeg, polySimp_expand) Choices: true} testEquality(String, String)[1506] 0s passed
[1507] polySimp_elimOne, polySimp_elimOne { \find(mul(i,Z(1(#)))) \replacewith(i) \heuristics(polySimp_elimOneRight, polySimp_expand) Choices: true} testEquality(String, String)[1507] 0.001s passed
[1508] polySimp_elimOneLeft0, polySimp_elimOneLeft0 { \find(mul(Z(1(#)),i)) \replacewith(i) \heuristics(polySimp_elimOneLeft, polySimp_expand) Choices: true} testEquality(String, String)[1508] 0.001s passed
[1509] polySimp_elimOneLeft1, polySimp_elimOneLeft1 { \find(mul(mul(i0,Z(1(#))),i)) \replacewith(mul(i0,i)) \heuristics(polySimp_elimOneLeft, polySimp_expand) Choices: true} testEquality(String, String)[1509] 0s passed
[150] assignmentAdditionLong3, assignmentAdditionLong3 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0+#seLong1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddLong(#seLong0,#seLong1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[150] 0.001s passed
[1510] polySimp_elimSub, polySimp_elimSub { \find(sub(i,i0)) \replacewith(add(i,mul(i0,Z(neglit(1(#)))))) \heuristics(polySimp_elimSubNeg, polySimp_expand) Choices: true} testEquality(String, String)[1510] 0s passed
[1511] polySimp_homoEq, polySimp_homoEq { \find(equals(homoLeft,homoRight)) \replacewith(equals(add(homoRight,mul(homoLeft,Z(neglit(1(#))))),Z(0(#)))) \heuristics(notHumanReadable, polySimp_homo, polySimp_expand) Choices: true} testEquality(String, String)[1511] 0.001s passed
[1512] polySimp_invertEq, polySimp_invertEq { \find(equals(invertLeft,invertRight)) \replacewith(equals(mul(invertLeft,Z(neglit(1(#)))),mul(invertRight,Z(neglit(1(#)))))) \heuristics(polySimp_normalise, polySimp_directEquations) Choices: true} testEquality(String, String)[1512] 0s passed
[1513] polySimp_mulAssoc, polySimp_mulAssoc { \find(mul(mulAssocMono0,mul(mulAssocMono1,mulAssocAtom))) \replacewith(mul(mul(mulAssocMono0,mulAssocMono1),mulAssocAtom)) \heuristics(polySimp_mulAssoc, polySimp_expand) Choices: true} testEquality(String, String)[1513] 0.001s passed
[1514] polySimp_mulComm0, polySimp_mulComm0 { \find(mul(commLeft,commRight)) \replacewith(mul(commRight,commLeft)) \heuristics(polySimp_mulOrder, polySimp_expand) Choices: true} testEquality(String, String)[1514] 0s passed
[1515] polySimp_mulComm1, polySimp_mulComm1 { \find(mul(mul(i0,commLeft),commRight)) \replacewith(mul(mul(i0,commRight),commLeft)) \heuristics(polySimp_mulOrder, polySimp_expand) Choices: true} testEquality(String, String)[1515] 0s passed
[1516] polySimp_mulLiterals, polySimp_mulLiterals { \find(mul(mul(i,Z(iz)),Z(jz))) \replacewith(mul(i,#mul(Z(iz),Z(jz)))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1516] 0.001s passed
[1517] polySimp_pullOutFactor0, polySimp_pullOutFactor0 { \find(add(mul(pullOutCommon,pullOutLeft),mul(pullOutCommon,pullOutRight))) \replacewith(mul(pullOutCommon,add(pullOutLeft,pullOutRight))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1517] 0s passed
[1518] polySimp_pullOutFactor0b, polySimp_pullOutFactor0b { \find(add(add(i0,mul(pullOutCommon,pullOutLeft)),mul(pullOutCommon,pullOutRight))) \replacewith(add(i0,mul(pullOutCommon,add(pullOutLeft,pullOutRight)))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1518] 0s passed
[1519] polySimp_pullOutFactor1, polySimp_pullOutFactor1 { \find(add(pullOutCommon,mul(pullOutCommon,pullOutRight))) \replacewith(mul(pullOutCommon,add(Z(1(#)),pullOutRight))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1519] 0.001s passed
[151] assignmentBitwiseAndInt, assignmentBitwiseAndInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0&#seCharByteShortInt1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseAndInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[151] 0.001s passed
[1520] polySimp_pullOutFactor1b, polySimp_pullOutFactor1b { \find(add(add(i0,pullOutCommon),mul(pullOutCommon,pullOutRight))) \replacewith(add(i0,mul(pullOutCommon,add(Z(1(#)),pullOutRight)))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1520] 0s passed
[1521] polySimp_pullOutFactor2, polySimp_pullOutFactor2 { \find(add(mul(pullOutCommon,pullOutLeft),pullOutCommon)) \replacewith(mul(pullOutCommon,add(pullOutLeft,Z(1(#))))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1521] 0.001s passed
[1522] polySimp_pullOutFactor2b, polySimp_pullOutFactor2b { \find(add(add(i0,mul(pullOutCommon,pullOutLeft)),pullOutCommon)) \replacewith(add(i0,mul(pullOutCommon,add(pullOutLeft,Z(1(#)))))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1522] 0.001s passed
[1523] polySimp_pullOutFactor3, polySimp_pullOutFactor3 { \find(add(pullOutCommon,pullOutCommon)) \replacewith(mul(pullOutCommon,Z(2(#)))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1523] 0.001s passed
[1524] polySimp_pullOutFactor3b, polySimp_pullOutFactor3b { \find(add(add(i0,pullOutCommon),pullOutCommon)) \replacewith(add(i0,mul(pullOutCommon,Z(2(#))))) \heuristics(polySimp_pullOutFactor, polySimp_expand) Choices: true} testEquality(String, String)[1524] 0s passed
[1525] polySimp_rightDist, polySimp_rightDist { \find(mul(distCoeff,add(distSummand0,distSummand1))) \replacewith(add(mul(distCoeff,distSummand0),mul(distSummand1,distCoeff))) \heuristics(polySimp_dist, polySimp_expand) Choices: true} testEquality(String, String)[1525] 0.001s passed
[1526] polySimp_sepNegMonomial, polySimp_sepNegMonomial { \find(equals(add(sepResidue,sepNegMono),Z(0(#)))) \replacewith(equals(mul(sepNegMono,Z(neglit(1(#)))),sepResidue)) \heuristics(polySimp_balance, polySimp_directEquations) Choices: true} testEquality(String, String)[1526] 0s passed
[1527] polySimp_sepPosMonomial, polySimp_sepPosMonomial { \find(equals(add(sepResidue,sepPosMono),Z(0(#)))) \replacewith(equals(sepPosMono,mul(sepResidue,Z(neglit(1(#)))))) \heuristics(notHumanReadable, polySimp_balance, polySimp_directEquations) Choices: true} testEquality(String, String)[1527] 0s passed
[1528] poolIsInjective, poolIsInjective { \find(equals(strPool(slit1),strPool(slit2))) \replacewith(equals(slit1,slit2)) \heuristics(simplify) Choices: true} testEquality(String, String)[1528] 0.001s passed
[1529] poolKeyIsContentOfValue, poolKeyIsContentOfValue { \find(strContent(strPool(slit))) \replacewith(slit) \heuristics(simplify) Choices: true} testEquality(String, String)[1529] 0s passed
[152] assignmentBitwiseAndLong, assignmentBitwiseAndLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt&#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseAndLong(#seCharByteShortInt,#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[152] 0s passed
[1530] pos_mult_eq_1_iff, pos_mult_eq_1_iff { \find(imp(lt(Z(0(#)),i0),equals(mul(i0,i1),Z(1(#))))) \replacewith(and(equals(i0,Z(1(#))),equals(i1,Z(1(#))))) Choices: true} testEquality(String, String)[1530] 0s passed
[1531] postdecrement, postdecrement { \find(#allmodal ( (modal operator))\[{ .. #lhs1--; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))#lhs1-1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1531] 0.001s passed
[1532] postdecrement_array, postdecrement_array { \find(#allmodal ( (modal operator))\[{ .. #e[#e0]--; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]-1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1532] 0.001s passed
[1533] postdecrement_assignment, postdecrement_assignment { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1--; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#lhs0 (program LeftHandSide)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs0) #v = #lhs1;#lhs1=(#typeof(#lhs1))(#lhs1-1);#lhs0=#v; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1533] 0s passed
[1534] postdecrement_assignment_array, postdecrement_assignment_array { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e[#e0]--; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#lhs0 (program LeftHandSide))), \new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#typeof(#lhs0) #v1 = #v[#v0];#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]-1);#lhs0=#v1; ... }\] (post)) \heuristic… testEquality(String, String)[1534] 0s passed
[1535] postdecrement_assignment_attribute, postdecrement_assignment_attribute { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e.#attribute--; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#lhs0 (program LeftHandSide))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#lhs0) #v1 = #v.#attribute;#v.#attribute=(#typeof(#attribute))(#v.#attribute-1);#lhs0=#v1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1535] 0.001s passed
[1536] postdecrement_attribute, postdecrement_attribute { \find(#allmodal ( (modal operator))\[{ .. #e.#attribute--; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#v.#attribute=(#typeof(#attribute))(#v.#attribute-1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1536] 0.001s passed
[1537] postincrement, postincrement { \find(#allmodal ( (modal operator))\[{ .. #lhs1++; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1+1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1537] 0.001s passed
[1538] postincrement_array, postincrement_array { \find(#allmodal ( (modal operator))\[{ .. #e[#e0]++; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]+1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1538] 0s passed
[1539] postincrement_assignment, postincrement_assignment { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#lhs1++; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#lhs0 (program LeftHandSide)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs0) #v = #lhs1;#lhs1=(#typeof(#lhs1))(#lhs1+1);#lhs0=#v; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1539] 0s passed
[153] assignmentBitwiseAndLong2, assignmentBitwiseAndLong2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong&#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseAndLong(#seLong,#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[153] 0.001s passed
[1540] postincrement_assignment_array, postincrement_assignment_array { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e[#e0]++; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#lhs0 (program LeftHandSide))), \new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#typeof(#lhs0) #v1 = #v[#v0];#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]+1);#lhs0=#v1; ... }\] (post)) \heuristic… testEquality(String, String)[1540] 0.008s passed
[1541] postincrement_assignment_attribute, postincrement_assignment_attribute { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e.#attribute++; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#lhs0 (program LeftHandSide))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#lhs0) #v1 = #v.#attribute;#v.#attribute=(#typeof(#attribute))(#v.#attribute+1);#lhs0=#v1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1541] 0.001s passed
[1542] postincrement_attribute, postincrement_attribute { \find(#allmodal ( (modal operator))\[{ .. #e.#attribute++; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#v.#attribute=(#typeof(#attribute))(#v.#attribute+1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1542] 0s passed
[1543] pow2InIntLower, pow2InIntLower { \find(leq(pow(Z(2(#)),exp),Z(neglit(9(4(6(3(8(4(7(4(1(2(#)))))))))))))==>) \add []==>[geq(exp,Z(0(#)))] \heuristics(simplify) Choices: true} testEquality(String, String)[1543] 0s passed
[1544] pow2InIntUpper, pow2InIntUpper { \find(geq(pow(Z(2(#)),exp),Z(8(4(6(3(8(4(7(4(1(2(#))))))))))))==>) \add []==>[and(geq(exp,Z(0(#))),leq(exp,Z(0(3(#)))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1544] 0s passed
[1545] powAdd, powAdd { \find(pow(base,add(exp,exp_2))) \replacewith(if-then-else(and(geq(exp,Z(0(#))),geq(exp_2,Z(0(#)))),mul(pow(base,exp),pow(base,exp_2)),pow(base,add(exp,exp_2)))) Choices: true} testEquality(String, String)[1545] 0.001s passed
[1546] powConcrete0, powConcrete0 { \find(pow(base,Z(0(#)))) \replacewith(Z(1(#))) \heuristics(simplify) Choices: true} testEquality(String, String)[1546] 0s passed
[1547] powConcrete1, powConcrete1 { \find(pow(base,Z(1(#)))) \replacewith(base) \heuristics(simplify) Choices: true} testEquality(String, String)[1547] 0s passed
[1548] powDef, powDef { \find(pow(base,exp)) \varcond(\notFreeIn(i (variable), base (int term)), \notFreeIn(i (variable), exp (int term))) \replacewith(if-then-else(geq(exp,Z(0(#))),bprod{i (variable)}(Z(0(#)),exp,base),undefinedPow(base,exp))) Choices: true} testEquality(String, String)[1548] 0.001s passed
[1549] powGeq1Concrete, powGeq1Concrete { \find(leq(pow(base,exp),Z(0(#)))==>) \add []==>[and(geq(exp,Z(0(#))),geq(base,Z(1(#))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1549] 0s passed
[154] assignmentBitwiseAndLong3, assignmentBitwiseAndLong3 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0&#seLong1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseAndLong(#seLong0,#seLong1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[154] 0.002s passed
[1550] powIsInfinite1, powIsInfinite1 { \find(powDouble(arg1,arg2)) \add [imp(or(and(and(or(geqDouble(arg1,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))),leqDouble(arg1,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),doubleIsInfinite(arg2)),gtDouble(arg2,DFP(0(#)))),and(and(and(ltDouble(arg1,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))),gtDouble(arg1,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),doubleIsInfinite(arg2)),ltDouble(arg2,… testEquality(String, String)[1550] 0.004s passed
[1551] powIsInfinite2, powIsInfinite2 { \find(powDouble(arg1,arg2)) \add [imp(or(and(eqDouble(arg1,DFP(0(#))),ltDouble(arg2,DFP(0(#)))),and(and(doubleIsInfinite(arg1),gtDouble(arg1,DFP(0(#)))),gtDouble(arg2,DFP(0(#))))),and(doubleIsInfinite(powDouble(arg1,arg2)),gtDouble(powDouble(arg1,arg2),DFP(0(#)))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1551] 0.001s passed
[1552] powIsNaN1, powIsNaN1 { \find(powDouble(arg1,arg2)) \add [imp(doubleIsNaN(arg2),doubleIsNaN(powDouble(arg1,arg2)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1552] 0s passed
[1553] powIsNaN2, powIsNaN2 { \find(powDouble(arg1,arg2)) \add [imp(and(doubleIsNaN(arg1),not(equals(arg2,DFP(0(#))))),doubleIsNaN(powDouble(arg1,arg2)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1553] 0s passed
[1554] powIsNaN3, powIsNaN3 { \find(powDouble(arg1,arg2)) \add [imp(and(or(geqDouble(arg1,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))),leqDouble(arg1,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),doubleIsInfinite(arg2)),doubleIsNaN(powDouble(arg1,arg2)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1554] 0.001s passed
[1555] powIsNotNaN, powIsNotNaN { \find(powDouble(arg1,arg2)) \add [imp(and(not(doubleIsNaN(arg1)),equals(arg2,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),equals(powDouble(arg1,arg2),arg1))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1555] 0s passed
[1556] powIsOne, powIsOne { \find(powDouble(arg1,arg2)) \add [imp(equals(arg2,DFP(0(#))),equals(powDouble(arg1,arg2),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1556] 0s passed
[1557] powIsZero1, powIsZero1 { \find(powDouble(arg1,arg2)) \add [imp(or(and(and(or(geqDouble(arg1,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))),leqDouble(arg1,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),doubleIsInfinite(arg2)),ltDouble(arg2,DFP(0(#)))),and(and(and(ltDouble(arg1,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))),gtDouble(arg1,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),doubleIsInfinite(arg2)),gtDouble(arg2,DFP(… testEquality(String, String)[1557] 0.005s passed
[1558] powIsZero2, powIsZero2 { \find(powDouble(arg1,arg2)) \add [imp(or(and(eqDouble(arg1,DFP(0(#))),gtDouble(arg2,DFP(0(#)))),and(and(doubleIsInfinite(arg1),gtDouble(arg1,DFP(0(#)))),ltDouble(arg2,DFP(0(#))))),equals(powDouble(arg1,arg2),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1558] 0.001s passed
[1559] powLogLess, powLogLess { \find(pow(base,log(base,exp))) \add [imp(and(geq(exp,Z(1(#))),gt(base,Z(1(#)))),leq(pow(base,log(base,exp)),exp))]==>[] Choices: true} testEquality(String, String)[1559] 0s passed
[155] assignmentBitwiseOrInt, assignmentBitwiseOrInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0|#seCharByteShortInt1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseOrInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[155] 0.001s passed
[1560] powLogMore2, powLogMore2 { \find(pow(base,log(base,x))) \add [imp(and(equals(base,Z(2(#))),geq(x,Z(1(#)))),lt(sub(x,pow(base,log(base,x))),pow(base,log(base,x))))]==>[] Choices: true} testEquality(String, String)[1560] 0s passed
[1561] powMono, powMono { \find(leq(pow(base,exp),pow(base,exp_2))) \add [imp(and(and(geq(exp,Z(0(#))),geq(exp_2,exp)),geq(base,Z(1(#)))),leq(pow(base,exp),pow(base,exp_2)))]==>[] Choices: true} testEquality(String, String)[1561] 0.001s passed
[1562] powMonoConcrete, powMonoConcrete { \find(leq(pow(base,exp_2),add(Z(neglit(1(#))),pow(base,exp)))==>) \add []==>[and(and(geq(exp,Z(0(#))),geq(exp_2,exp)),geq(base,Z(1(#))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1562] 0s passed
[1563] powMonoConcreteRight, powMonoConcreteRight { \find(==>leq(pow(base,exp),pow(base,exp_2))) \add []==>[and(and(geq(exp,Z(0(#))),geq(exp_2,exp)),geq(base,Z(1(#))))] \heuristics(concrete) Choices: true} testEquality(String, String)[1563] 0s passed
[1564] powPositive, powPositive { \find(pow(base,exp)) \add [imp(and(geq(exp,Z(0(#))),geq(base,Z(1(#)))),geq(pow(base,exp),Z(1(#))))]==>[] Choices: true} testEquality(String, String)[1564] 0.001s passed
[1565] powPositiveConcrete, powPositiveConcrete { \find(leq(pow(base,exp),Z(neglit(1(#))))==>) \add []==>[and(geq(exp,Z(0(#))),geq(base,Z(1(#))))] \heuristics(simplify) Choices: true} testEquality(String, String)[1565] 0.001s passed
[1566] powSplitFactor, powSplitFactor { \find(pow(base,exp)) \replacewith(if-then-else(geq(exp,Z(0(#))),if-then-else(geq(exp,Z(1(#))),mul(base,pow(base,sub(exp,Z(1(#))))),Z(1(#))),undefinedPow(base,exp))) Choices: true} testEquality(String, String)[1566] 0.005s passed
[1567] pow_literals, pow_literals { \find(pow(Z(iz),Z(jz))) \replacewith(#pow(Z(iz),Z(jz))) \heuristics(nonDuplicateAppCheckEq, simplify_literals) Choices: true} testEquality(String, String)[1567] 0s passed
[1568] precOfDouble, precOfDouble { \find(prec(d1,d2)) \replacewith(ltDouble(d1,d2)) \heuristics(simplify) Choices: true} testEquality(String, String)[1568] 0.001s passed
[1569] precOfFloat, precOfFloat { \find(prec(f1,f2)) \replacewith(ltFloat(f1,f2)) \heuristics(simplify) Choices: true} testEquality(String, String)[1569] 0s passed
[156] assignmentBitwiseOrLong, assignmentBitwiseOrLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt|#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseOrLong(#seCharByteShortInt,#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[156] 0.001s passed
[1570] precOfInt, precOfInt { \find(prec(a,b)) \replacewith(and(leq(Z(0(#)),a),lt(a,b))) \heuristics(simplify) Choices: true} testEquality(String, String)[1570] 0s passed
[1571] precOfIntPair, precOfIntPair { \find(prec(a,pair(b,x))) \replacewith(and(leq(Z(0(#)),a),leq(a,b))) \heuristics(simplify) Choices: true} testEquality(String, String)[1571] 0.001s passed
[1572] precOfPair, precOfPair { \find(prec(pair(a1,b1),pair(a2,b2))) \replacewith(or(prec(a1,a2),and(equals(a1,a2),prec(b1,b2)))) \heuristics(simplify) Choices: true} testEquality(String, String)[1572] 0s passed
[1573] precOfPairInt, precOfPairInt { \find(prec(pair(a,x),b)) \replacewith(and(leq(Z(0(#)),a),lt(a,b))) \heuristics(simplify) Choices: true} testEquality(String, String)[1573] 0s passed
[1574] precOfSeq, precOfSeq { \find(prec(s1,s2)) \varcond(\notFreeIn(jv (variable), s2 (Seq term)), \notFreeIn(jv (variable), s1 (Seq term)), \notFreeIn(iv (variable), s2 (Seq term)), \notFreeIn(iv (variable), s1 (Seq term))) \replacewith(or(and(equals(seqLen(s1),seqLen(s2)),exists{iv (variable)}(and(and(and(leq(Z(0(#)),iv),lt(iv,seqLen(s1))),prec(any::seqGet(s1,iv),any::seqGet(s2,iv))),all{jv (variable)}(imp(and(leq(Z(0(#)),jv),lt(jv,iv)),equals(any::seqGet(s1,jv),any::seqGet(s2,jv))))))),lt(seqLen(s1),seqLen(s2)))) Choic… testEquality(String, String)[1574] 0.001s passed
[1575] predecrement, predecrement { \find(#allmodal ( (modal operator))\[{ .. --#lhs1; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1-1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1575] 0.001s passed
[1576] predecrement_array, predecrement_array { \find(#allmodal ( (modal operator))\[{ .. --#e[#e0]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]-1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1576] 0s passed
[1577] predecrement_assignment, predecrement_assignment { \find(#allmodal ( (modal operator))\[{ .. #lhs0=--#lhs1; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1-1);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1577] 0s passed
[1578] predecrement_assignment_array, predecrement_assignment_array { \find(#allmodal ( (modal operator))\[{ .. #lhs0=--#e[#e0]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]-1);#lhs0=#v[#v0]; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1578] 0.001s passed
[1579] predecrement_assignment_attribute, predecrement_assignment_attribute { \find(#allmodal ( (modal operator))\[{ .. #lhs=--#e.#attribute; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#v.#attribute=(#typeof(#attribute))(#v.#attribute-1);#lhs=#v.#attribute; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1579] 0.004s passed
[157] assignmentBitwiseOrLong2, assignmentBitwiseOrLong2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong|#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseOrLong(#seLong,#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[157] 0s passed
[1580] predecrement_attribute, predecrement_attribute { \find(#allmodal ( (modal operator))\[{ .. --#e.#attribute; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#v.#attribute=(#typeof(#attribute))(#v.#attribute-1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1580] 0.001s passed
[1581] preincrement, preincrement { \find(#allmodal ( (modal operator))\[{ .. ++#lhs1; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1+1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1581] 0s passed
[1582] preincrement_array, preincrement_array { \find(#allmodal ( (modal operator))\[{ .. ++#e[#e0]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]+1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1582] 0s passed
[1583] preincrement_assignment, preincrement_assignment { \find(#allmodal ( (modal operator))\[{ .. #lhs0=++#lhs1; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs1=(#typeof(#lhs1))(#lhs1+1);#lhs0=#lhs1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1583] 0s passed
[1584] preincrement_assignment_array, preincrement_assignment_array { \find(#allmodal ( (modal operator))\[{ .. #lhs0=++#e[#e0]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression))), \new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#typeof(#e0) #v0 = #e0;#v[#v0]=(#typeof(#e[#e0]))(#v[#v0]+1);#lhs0=#v[#v0]; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1584] 0.001s passed
[1585] preincrement_assignment_attribute, preincrement_assignment_attribute { \find(#allmodal ( (modal operator))\[{ .. #lhs0=++#e.#attribute; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#v.#attribute=(#typeof(#attribute))(#v.#attribute+1);#lhs0=#v.#attribute; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1585] 0.001s passed
[1586] preincrement_attribute, preincrement_attribute { \find(#allmodal ( (modal operator))\[{ .. ++#e.#attribute; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v = #e;#v.#attribute=(#typeof(#attribute))(#v.#attribute+1); ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[1586] 0.001s passed
[1587] prod_empty, prod_empty { \find(prod{x (variable)}(FALSE,t)) \replacewith(Z(1(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[1587] 0.001s passed
[1588] prod_one, prod_one { \find(prod{x (variable)}(range,Z(1(#)))) \replacewith(Z(1(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[1588] 0.001s passed
[1589] pullOut, pullOut { \find(t) \sameUpdateLevel\add [equals(t,sk)]==>[] \replacewith(sk) \heuristics(semantics_blasting) Choices: true} testEquality(String, String)[1589] 0s passed
[158] assignmentBitwiseOrLong3, assignmentBitwiseOrLong3 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0|#seLong1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseOrLong(#seLong0,#seLong1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[158] 0.001s passed
[1590] pullOutSelect, pullOutSelect { \find(beta::select(h,o,f)) \sameUpdateLevel\add [equals(beta::select(h,o,f),selectSK<<selectSK>>)]==>[] \replacewith(selectSK<<selectSK>>) \heuristics(pull_out_select) Choices: programRules:Java} testEquality(String, String)[1590] 0.001s passed
[1591] pullOutbsum1, pullOutbsum1 { \find(geq(bsum{uSub1 (variable)}(i0,i1,t1),t)==>) \add [equals(bsum{uSub1 (variable)}(i0,i1,t1),sk)]==>[] \replacewith([geq(sk,t)]==>[]) Choices: integerSimplificationRules:full} testEquality(String, String)[1591] 0.003s passed
[1592] pullOutbsum2, pullOutbsum2 { \find(leq(bsum{uSub1 (variable)}(i0,i1,t1),t)==>) \add [equals(bsum{uSub1 (variable)}(i0,i1,t1),sk)]==>[] \replacewith([leq(sk,t)]==>[]) Choices: integerSimplificationRules:full} testEquality(String, String)[1592] 0.002s passed
[1593] pull_out_neg_1, pull_out_neg_1 { \find(mul(neg(i0),i1)) \replacewith(neg(mul(i0,i1))) Choices: true} testEquality(String, String)[1593] 0s passed
[1594] pull_out_neg_2, pull_out_neg_2 { \find(mul(i0,neg(i1))) \replacewith(neg(mul(i0,i1))) Choices: true} testEquality(String, String)[1594] 0.001s passed
[1595] qeq_literals, qeq_literals { \find(geq(Z(iz),Z(jz))) \replacewith(#geq(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1595] 0.001s passed
[1596] reachAddOne, reachAddOne { \find(reach(h,s,o,o2,add(Z(1(#)),n))) \varcond(\notFreeIn(ov (variable), n (int term)), \notFreeIn(ov (variable), o2 (java.lang.Object term)), \notFreeIn(ov (variable), o (java.lang.Object term)), \notFreeIn(ov (variable), s (LocSet term)), \notFreeIn(ov (variable), h (Heap term))) \replacewith(and(and(and(geq(n,Z(neglit(1(#)))),not(equals(o,null))),not(equals(o2,null))),or(and(equals(n,Z(neglit(1(#)))),equals(o,o2)),exists{ov (variable)}(and(reach(h,s,o,ov,n),acc(h,s,ov,o2)))))) \heuristics… testEquality(String, String)[1596] 0s passed
[1597] reachAddOne2, reachAddOne2 { \find(reach(h,s,o,o2,add(n,Z(1(#))))) \varcond(\notFreeIn(ov (variable), n (int term)), \notFreeIn(ov (variable), o2 (java.lang.Object term)), \notFreeIn(ov (variable), o (java.lang.Object term)), \notFreeIn(ov (variable), s (LocSet term)), \notFreeIn(ov (variable), h (Heap term))) \replacewith(and(and(and(geq(n,Z(neglit(1(#)))),not(equals(o,null))),not(equals(o2,null))),or(and(equals(n,Z(neglit(1(#)))),equals(o,o2)),exists{ov (variable)}(and(reach(h,s,o,ov,n),acc(h,s,ov,o2)))))) \heuristic… testEquality(String, String)[1597] 0s passed
[1598] reachDefinition, reachDefinition { \find(reach(h,s,o,o2,n)) \varcond(\notFreeIn(ov (variable), n (int term)), \notFreeIn(ov (variable), o2 (java.lang.Object term)), \notFreeIn(ov (variable), o (java.lang.Object term)), \notFreeIn(ov (variable), s (LocSet term)), \notFreeIn(ov (variable), h (Heap term))) \replacewith(and(and(and(geq(n,Z(0(#))),not(equals(o,null))),not(equals(o2,null))),or(and(equals(n,Z(0(#))),equals(o,o2)),exists{ov (variable)}(and(reach(h,s,o,ov,sub(n,Z(1(#)))),acc(h,s,ov,o2)))))) Choices: reach:on} testEquality(String, String)[1598] 0.001s passed
[1599] reachDependenciesAnon, reachDependenciesAnon { \find(reach(anon(h,s2,h2),s,o,o2,n)) \sameUpdateLevel\varcond(\notFreeIn(nv (variable), n (int term)), \notFreeIn(nv (variable), o2 (java.lang.Object term)), \notFreeIn(nv (variable), o (java.lang.Object term)), \notFreeIn(nv (variable), s (LocSet term)), \notFreeIn(nv (variable), h2 (Heap term)), \notFreeIn(nv (variable), s2 (LocSet term)), \notFreeIn(nv (variable), h (Heap term)), \notFreeIn(fv (variable), n (int term)), \notFreeIn(fv (variable), o2 (java.lang.Object term)), \notF… testEquality(String, String)[1599] 0.002s passed
[159] assignmentBitwiseXOrInt, assignmentBitwiseXOrInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0^#seCharByteShortInt1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseXOrInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[159] 0.001s passed
[15] activeUseIntCast, activeUseIntCast { \find(#allmodal ( (modal operator))\[{ .. #sv=(int)#seLong; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = (int)#seLong;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[15] 0.001s passed
[1600] reachDependenciesAnonCoarse, reachDependenciesAnonCoarse { \find(reach(anon(h,s2,h2),s,o,o2,n)) \sameUpdateLevel\varcond(\notFreeIn(nv (variable), n (int term)), \notFreeIn(nv (variable), o2 (java.lang.Object term)), \notFreeIn(nv (variable), o (java.lang.Object term)), \notFreeIn(nv (variable), s (LocSet term)), \notFreeIn(nv (variable), h2 (Heap term)), \notFreeIn(nv (variable), s2 (LocSet term)), \notFreeIn(nv (variable), h (Heap term)), \notFreeIn(fv (variable), n (int term)), \notFreeIn(fv (variable), o2 (java.lang.Object term)),… testEquality(String, String)[1600] 0.001s passed
[1601] reachDependenciesStore, reachDependenciesStore { \find(reach(store(h,o3,f,x),s,o,o2,n)) \sameUpdateLevel\varcond(\notFreeIn(nv (variable), n (int term)), \notFreeIn(nv (variable), o2 (java.lang.Object term)), \notFreeIn(nv (variable), o (java.lang.Object term)), \notFreeIn(nv (variable), s (LocSet term)), \notFreeIn(nv (variable), x (any term)), \notFreeIn(nv (variable), f (Field term)), \notFreeIn(nv (variable), o3 (java.lang.Object term)), \notFreeIn(nv (variable), h (Heap term))) \add [not(and(exists{nv (variable)}(and(lt(nv,n… testEquality(String, String)[1601] 0s passed
[1602] reachDependenciesStoreEQ, reachDependenciesStoreEQ { \assumes ([equals(store(h,o3,f,x),h2)]==>[]) \find(reach(h2,s,o,o2,n)) \sameUpdateLevel\varcond(\notFreeIn(nv (variable), n (int term)), \notFreeIn(nv (variable), o2 (java.lang.Object term)), \notFreeIn(nv (variable), o (java.lang.Object term)), \notFreeIn(nv (variable), s (LocSet term)), \notFreeIn(nv (variable), x (any term)), \notFreeIn(nv (variable), f (Field term)), \notFreeIn(nv (variable), o3 (java.lang.Object term)), \notFreeIn(nv (variable), h (Heap term))) \add [not(an… testEquality(String, String)[1602] 0s passed
[1603] reachDependenciesStoreSimple, reachDependenciesStoreSimple { \find(reach(store(h,o3,f2,x),allObjects(f),o,o2,n)) \varcond(\metaDisjoint f (Field term), f2 (Field term), ) \replacewith(reach(h,allObjects(f),o,o2,n)) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1603] 0.001s passed
[1604] reachDependenciesStoreSimpleEQ, reachDependenciesStoreSimpleEQ { \assumes ([equals(store(h,o3,f2,x),h2)]==>[]) \find(reach(h2,allObjects(f),o,o2,n)) \varcond(\metaDisjoint f (Field term), f2 (Field term), ) \replacewith(reach(h,allObjects(f),o,o2,n)) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1604] 0.001s passed
[1605] reachDoesNotDependOnCreatedness, reachDoesNotDependOnCreatedness { \find(reach(create(h,o3),s,o,o2,n)) \replacewith(reach(h,s,o,o2,n)) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1605] 0s passed
[1606] reachEndOfUniquePath, reachEndOfUniquePath { \assumes ([reach(h,allObjects(f),o,o2,n),equals(alpha::select(h,o2,f),null),equals(alpha::select(h,o3,f),null)]==>[]) \find(reach(h,allObjects(f),o,o3,n2)==>) \varcond(\different (n (int term), n2 (int term)), ) \add [and(equals(o2,o3),equals(n,n2))]==>[] \heuristics(inReachableStateImplication) Choices: reach:on} testEquality(String, String)[1606] 0s passed
[1607] reachEndOfUniquePath2, reachEndOfUniquePath2 { \assumes ([reach(h,allObjects(f),o,o2,n),equals(alpha::select(h,o2,f),null)]==>[]) \find(reach(h,allObjects(f),o,o3,n2)==>) \varcond(\different (o (java.lang.Object term), o2 (java.lang.Object term)), \different (n (int term), n2 (int term)), ) \add [or(lt(n2,n),and(equals(o2,o3),equals(n,n2)))]==>[] \heuristics(inReachableStateImplication) Choices: reach:on} testEquality(String, String)[1607] 0.001s passed
[1608] reachNull, reachNull { \find(reach(h,s,o,null,n)) \replacewith(false) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1608] 0s passed
[1609] reachNull2, reachNull2 { \find(reach(h,s,null,o2,n)) \replacewith(false) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1609] 0s passed
[160] assignmentBitwiseXOrLong, assignmentBitwiseXOrLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt^#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseXOrLong(#seCharByteShortInt,#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[160] 0s passed
[1610] reachOne, reachOne { \find(reach(h,s,o,o2,Z(1(#)))) \replacewith(acc(h,s,o,o2)) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1610] 0.010s passed
[1611] reachUniquePathSameSteps, reachUniquePathSameSteps { \assumes ([reach(h,allObjects(f),o,o2,n)]==>[]) \find(reach(h,allObjects(f),o,o3,n)==>) \varcond(\different (o2 (java.lang.Object term), o3 (java.lang.Object term)), ) \add [equals(o2,o3)]==>[] \heuristics(inReachableStateImplication) Choices: reach:on} testEquality(String, String)[1611] 0.001s passed
[1612] reachZero, reachZero { \find(reach(h,s,o,o2,Z(0(#)))) \replacewith(and(not(equals(o,null)),equals(o,o2))) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1612] 0s passed
[1613] reach_does_not_depend_on_fresh_locs, reach_does_not_depend_on_fresh_locs { \assumes ([]==>[equals(o,null)]) \find(reach(anon(h,empty,h2),s,o,o2,n)) \add []==>[and(wellFormed(h),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))] ; \replacewith(reach(h,s,o,o2,n)) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1613] 0s passed
[1614] reach_does_not_depend_on_fresh_locs_EQ, reach_does_not_depend_on_fresh_locs_EQ { \assumes ([equals(anon(h,empty,h2),EQ)]==>[equals(o,null)]) \find(reach(EQ,s,o,o2,n)) \add []==>[and(wellFormed(h),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))] ; \replacewith(reach(h,s,o,o2,n)) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[1614] 0.001s passed
[1615] readPermission, readPermission { \find(readPermission(p)) \replacewith(readPermissionObject(currentThread,p)) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1615] 0.001s passed
[1616] readPermissionObject, readPermissionObject { \find(readPermissionObject(o,p)) \replacewith(true) \heuristics(concrete) Choices: permissions:off} testEquality(String, String)[1616] 0.003s passed
[1617] reference_type_cast, reference_type_cast { \find(==>#allmodal ( (modal operator))\[{ .. #lhs=(#npit)#se; ... }\] (post)) \varcond(\hasSort(#npit (program NonPrimitiveType), G), \not\sub(\typeof(#se (program SimpleExpression)), G), ) \add []==>[or(equals(#se,null),equals(G::instance(#se),TRUE))] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(#lhs (program LeftHandSide))(#addCast(#se,#lhs)),#allmodal(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[1617] 0s passed
[1618] referencedObjectIsCreatedRight, referencedObjectIsCreatedRight { \assumes ([]==>[equals(deltaObject::select(h,o,f),null)]) \find(==>equals(boolean::select(h,deltaObject::select(h,o,f),java.lang.Object::<created>),TRUE)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1618] 0.001s passed
[1619] referencedObjectIsCreatedRightEQ, referencedObjectIsCreatedRightEQ { \assumes ([equals(deltaObject::select(h,o,f),EQ)]==>[equals(EQ,null)]) \find(==>equals(boolean::select(h,EQ,java.lang.Object::<created>),TRUE)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1619] 0s passed
[161] assignmentBitwiseXOrLong2, assignmentBitwiseXOrLong2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong^#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseXOrLong(#seLong,#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[161] 0.001s passed
[1620] regExAxiom, regExAxiom { \find(match(regEx(stringAsPattern),string)) \replacewith(equals(string,stringAsPattern)) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1620] 0.004s passed
[1621] regExConcatAltLeft, regExConcatAltLeft { \find(match(regExConcat(alt(rexp1,rexp2),rexp3),string)) \replacewith(or(match(regExConcat(rexp1,rexp3),string),match(regExConcat(rexp2,rexp3),string))) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1621] 0s passed
[1622] regExConcatAltRight, regExConcatAltRight { \find(match(regExConcat(rexp1,alt(rexp2,rexp3)),string)) \replacewith(or(match(regExConcat(rexp1,rexp2),string),match(regExConcat(rexp1,rexp3),string))) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1622] 0s passed
[1623] regExConcatAxiom, regExConcatAxiom { \find(match(regExConcat(rexp1,rexp2),string)) \varcond(\notFreeIn(endIdx (variable), string (Seq term)), \notFreeIn(endIdx (variable), rexp2 (RegEx term)), \notFreeIn(endIdx (variable), rexp1 (RegEx term))) \replacewith(exists{endIdx (variable)}(and(and(and(geq(endIdx,Z(0(#))),leq(endIdx,seqLen(string))),match(rexp1,seqSub(string,Z(0(#)),endIdx))),match(rexp2,seqSub(string,endIdx,seqLen(string)))))) \heuristics(simplify) Choices: Strings:on} testEquality(String, String)[1623] 0.001s passed
[1624] regExConcatConcreteStringLeft, regExConcatConcreteStringLeft { \find(match(regExConcat(regEx(pattern),rexp),string)) \replacewith(and(and(leq(seqLen(pattern),seqLen(string)),match(regEx(pattern),seqSub(string,Z(0(#)),seqLen(pattern)))),match(rexp,seqSub(string,seqLen(pattern),seqLen(string))))) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1624] 0s passed
[1625] regExConcatConcreteStringRight, regExConcatConcreteStringRight { \find(match(regExConcat(rexp,regEx(pattern)),string)) \replacewith(and(and(leq(seqLen(pattern),seqLen(string)),match(rexp,seqSub(string,Z(0(#)),sub(seqLen(string),seqLen(pattern))))),match(regEx(pattern),seqSub(string,sub(seqLen(string),seqLen(pattern)),seqLen(string))))) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1625] 0.001s passed
[1626] regExConcatOptLeft, regExConcatOptLeft { \find(match(regExConcat(opt(rexp1),rexp2),string)) \replacewith(or(match(rexp2,string),match(regExConcat(rexp1,rexp2),string))) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1626] 0.007s passed
[1627] regExConcatOptRight, regExConcatOptRight { \find(match(regExConcat(rexp1,opt(rexp2)),string)) \replacewith(or(match(rexp1,string),match(regExConcat(rexp1,rexp2),string))) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1627] 0.001s passed
[1628] regExConcatRepeatLeft, regExConcatRepeatLeft { \find(match(regExConcat(repeat(rexp1,nTimes),rexp2),string)) \varcond(\notFreeIn(string2 (variable), nTimes (int term)), \notFreeIn(string2 (variable), rexp2 (RegEx term)), \notFreeIn(string2 (variable), rexp1 (RegEx term)), \notFreeIn(string2 (variable), string (Seq term)), \notFreeIn(string1 (variable), nTimes (int term)), \notFreeIn(string1 (variable), rexp2 (RegEx term)), \notFreeIn(string1 (variable), rexp1 (RegEx term)), \notFreeIn(string1 (variable), string (Seq term))) \repl… testEquality(String, String)[1628] 0s passed
[1629] regExConcatRepeatRight, regExConcatRepeatRight { \find(match(regExConcat(rexp1,repeat(rexp2,nTimes)),string)) \varcond(\notFreeIn(string2 (variable), nTimes (int term)), \notFreeIn(string2 (variable), rexp2 (RegEx term)), \notFreeIn(string2 (variable), rexp1 (RegEx term)), \notFreeIn(string2 (variable), string (Seq term)), \notFreeIn(string1 (variable), nTimes (int term)), \notFreeIn(string1 (variable), rexp2 (RegEx term)), \notFreeIn(string1 (variable), rexp1 (RegEx term)), \notFreeIn(string1 (variable), string (Seq term))) \rep… testEquality(String, String)[1629] 0s passed
[162] assignmentBitwiseXOrLong3, assignmentBitwiseXOrLong3 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0^#seLong1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseXOrLong(#seLong0,#seLong1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[162] 0.001s passed
[1630] removeZeros, removeZeros { \find(clRemoveZeros(l)) \replacewith(if-then-else(or(equals(l,seqEmpty),equals(int::seqGet(l,Z(0(#))),C(8(4(#))))),l,clRemoveZeros(seqSub(l,Z(1(#)),seqLen(l))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1630] 0.001s passed
[1631] remove_parentheses_attribute_left, remove_parentheses_attribute_left { \find(#allmodal ( (modal operator))\[{ .. (#e.#attribute)=#e0; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #e.#attribute=#e0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1631] 0s passed
[1632] remove_parentheses_lhs_left, remove_parentheses_lhs_left { \find(#allmodal ( (modal operator))\[{ .. (#lhs)=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#e; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1632] 0s passed
[1633] remove_parentheses_right, remove_parentheses_right { \find(#allmodal ( (modal operator))\[{ .. #lhs=(#e); ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#e; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1633] 0.001s passed
[1634] repeatAxiom, repeatAxiom { \find(match(repeat(rexp,nTimes),string)) \varcond(\notFreeIn(endIdx (variable), string (Seq term)), \notFreeIn(endIdx (variable), nTimes (int term)), \notFreeIn(endIdx (variable), rexp (RegEx term))) \replacewith(if-then-else(lt(nTimes,Z(0(#))),false,if-then-else(equals(nTimes,Z(0(#))),equals(string,empty),exists{endIdx (variable)}(and(and(and(geq(endIdx,Z(0(#))),leq(endIdx,seqLen(string))),match(rexp,seqSub(string,Z(0(#)),endIdx))),match(repeat(rexp,sub(nTimes,Z(1(#)))),seqSub(string,endIdx,… testEquality(String, String)[1634] 0.001s passed
[1635] repeatMatchEmpty, repeatMatchEmpty { \find(match(repeat(rexp,nTimes1),seqEmpty)) \replacewith(or(equals(nTimes1,Z(0(#))),and(gt(nTimes1,Z(0(#))),match(rexp,seqEmpty)))) \heuristics(simplify) Choices: Strings:on} testEquality(String, String)[1635] 0s passed
[1636] repeatOnce, repeatOnce { \find(repeat(rexp,Z(1(#)))) \replacewith(rexp) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1636] 0.001s passed
[1637] repeatPlusAxiom, repeatPlusAxiom { \find(match(repeatPlus(rexp),string)) \varcond(\notFreeIn(nTimes (variable), string (Seq term)), \notFreeIn(nTimes (variable), rexp (RegEx term))) \replacewith(exists{nTimes (variable)}(and(geq(nTimes,Z(1(#))),match(repeat(rexp,nTimes),string)))) \heuristics(simplify) Choices: Strings:on} testEquality(String, String)[1637] 0s passed
[1638] repeatStarAxiom, repeatStarAxiom { \find(match(repeatStar(rexp),string)) \varcond(\notFreeIn(nTimes (variable), string (Seq term)), \notFreeIn(nTimes (variable), rexp (RegEx term))) \replacewith(exists{nTimes (variable)}(and(geq(nTimes,Z(0(#))),match(repeat(rexp,nTimes),string)))) \heuristics(simplify) Choices: Strings:on} testEquality(String, String)[1638] 0s passed
[1639] repeatZero, repeatZero { \find(repeat(rexp,Z(0(#)))) \replacewith(regEx(seqEmpty)) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[1639] 0s passed
[163] assignmentDivisionBigint1, assignmentDivisionBigint1 { \find(==>#allmodal ( (modal operator))\[{ .. #loc=#seBigint/#seAny; ... }\] (post)) \replacewith([]==>[not(equals(#seAny,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(div(#seBigint,#seAny)),#allmodal(post))]) \heuristics(executeIntegerAssignment) Choices: ((programRules:Java & bigint:on) & runtimeExceptions:ban)} testEquality(String, String)[163] 0.002s passed
[1640] replaceConcat, replaceConcat { \find(clReplace(seqConcat(leftStr,rightStr),searchChar,replaceChar)) \replacewith(seqConcat(clReplace(leftStr,searchChar,replaceChar),clReplace(rightStr,searchChar,replaceChar))) \heuristics(stringsMoveReplaceInside) Choices: Strings:on} testEquality(String, String)[1640] 0.001s passed
[1641] replaceCons, replaceCons { \find(clReplace(seqConcat(seqSingleton(fstChar),str),searchChar,replChar)) \replacewith(if-then-else(equals(searchChar,fstChar),seqConcat(seqSingleton(replChar),clReplace(str,searchChar,replChar)),seqConcat(seqSingleton(fstChar),clReplace(str,searchChar,replChar)))) \heuristics(defOpsReplaceInline) Choices: Strings:on} testEquality(String, String)[1641] 0s passed
[1642] replaceDef, replaceDef { \find(clReplace(str,searchChar,replChar)) \sameUpdateLevel\varcond(\notFreeIn(pos (variable), replChar (int term)), \notFreeIn(pos (variable), searchChar (int term)), \notFreeIn(pos (variable), str (Seq term))) \add [and(equals(clReplace(str,searchChar,replChar),newSym),equals(seqDef{pos (variable)}(Z(0(#)),seqLen(str),if-then-else(equals(int::seqGet(str,pos),searchChar),replChar,int::seqGet(str,pos))),newSym))]==>[] \heuristics(stringsIntroduceNewSym, defOpsReplace) Choices: Strings:on} testEquality(String, String)[1642] 0.001s passed
[1643] replaceEmpty, replaceEmpty { \find(clReplace(seqEmpty,searchChar,replChar)) \replacewith(seqEmpty) \heuristics(stringsSimplify) Choices: Strings:on} testEquality(String, String)[1643] 0.001s passed
[1644] replaceSingleton, replaceSingleton { \find(clReplace(seqSingleton(fstChar),searchChar,replChar)) \replacewith(if-then-else(equals(searchChar,fstChar),seqSingleton(replChar),seqSingleton(fstChar))) \heuristics(stringsSimplify) Choices: Strings:on} testEquality(String, String)[1644] 0s passed
[1645] replaceSubstring, replaceSubstring { \assumes ([equals(seqSub(str,startIdx,endIdx),subStr)]==>[]) \find(clReplace(subStr,searchChar,replaceChar)) \sameUpdateLevel\replacewith(if-then-else(and(and(geq(startIdx,Z(0(#))),geq(endIdx,startIdx)),leq(endIdx,seqLen(str))),seqSub(clReplace(str,searchChar,replaceChar),startIdx,endIdx),clReplace(subStr,searchChar,replaceChar))) \heuristics(stringsMoveReplaceInside) Choices: Strings:on} testEquality(String, String)[1645] 0.001s passed
[1646] replace_byte_HALFRANGE, replace_byte_HALFRANGE { \find(byte_HALFRANGE) \replacewith(Z(8(2(1(#))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1646] 0s passed
[1647] replace_byte_MAX, replace_byte_MAX { \find(byte_MAX) \replacewith(Z(7(2(1(#))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1647] 0s passed
[1648] replace_byte_MIN, replace_byte_MIN { \find(byte_MIN) \replacewith(Z(neglit(8(2(1(#)))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1648] 0s passed
[1649] replace_byte_RANGE, replace_byte_RANGE { \find(byte_RANGE) \replacewith(Z(6(5(2(#))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1649] 0s passed
[164] assignmentDivisionBigint2, assignmentDivisionBigint2 { \find(==>#allmodal ( (modal operator))\[{ .. #loc=#seAny/#seBigint; ... }\] (post)) \replacewith([]==>[not(equals(#seBigint,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(div(#seAny,#seBigint)),#allmodal(post))]) \heuristics(executeIntegerAssignment) Choices: ((programRules:Java & bigint:on) & runtimeExceptions:ban)} testEquality(String, String)[164] 0.001s passed
[1650] replace_char_MAX, replace_char_MAX { \find(char_MAX) \replacewith(Z(5(3(5(5(6(#))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1650] 0s passed
[1651] replace_char_MIN, replace_char_MIN { \find(char_MIN) \replacewith(Z(0(#))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1651] 0.001s passed
[1652] replace_char_RANGE, replace_char_RANGE { \find(char_RANGE) \replacewith(Z(6(3(5(5(6(#))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1652] 0s passed
[1653] replace_int_HALFRANGE, replace_int_HALFRANGE { \find(int_HALFRANGE) \replacewith(Z(8(4(6(3(8(4(7(4(1(2(#)))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1653] 0.001s passed
[1654] replace_int_MAX, replace_int_MAX { \find(int_MAX) \replacewith(Z(7(4(6(3(8(4(7(4(1(2(#)))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1654] 0s passed
[1655] replace_int_MIN, replace_int_MIN { \find(int_MIN) \replacewith(Z(neglit(8(4(6(3(8(4(7(4(1(2(#))))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1655] 0.001s passed
[1656] replace_int_RANGE, replace_int_RANGE { \find(int_RANGE) \replacewith(Z(6(9(2(7(6(9(4(9(2(4(#)))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1656] 0.001s passed
[1657] replace_known_left, replace_known_left { \assumes ([b]==>[]) \find(b) \sameUpdateLevel\replacewith(true) \heuristics(replace_known_left) Choices: true} testEquality(String, String)[1657] 0.010s passed
[1658] replace_known_right, replace_known_right { \assumes ([]==>[b]) \find(b) \sameUpdateLevel\replacewith(false) \heuristics(replace_known_right) Choices: true} testEquality(String, String)[1658] 0s passed
[1659] replace_long_HALFRANGE, replace_long_HALFRANGE { \find(long_HALFRANGE) \replacewith(Z(8(0(8(5(7(7(4(5(8(6(3(0(2(7(3(3(2(2(9(#))))))))))))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1659] 0s passed
[165] assignmentDivisionDouble, assignmentDivisionDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0/#seDouble1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaDivDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[165] 0s passed
[1660] replace_long_MAX, replace_long_MAX { \find(long_MAX) \replacewith(Z(7(0(8(5(7(7(4(5(8(6(3(0(2(7(3(3(2(2(9(#))))))))))))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1660] 0.001s passed
[1661] replace_long_MIN, replace_long_MIN { \find(long_MIN) \replacewith(Z(neglit(8(0(8(5(7(7(4(5(8(6(3(0(2(7(3(3(2(2(9(#)))))))))))))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1661] 0.001s passed
[1662] replace_long_RANGE, replace_long_RANGE { \find(long_RANGE) \replacewith(Z(6(1(6(1(5(5(9(0(7(3(7(0(4(4(7(6(4(4(8(1(#)))))))))))))))))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1662] 0s passed
[1663] replace_short_HALFRANGE, replace_short_HALFRANGE { \find(short_HALFRANGE) \replacewith(Z(8(6(7(2(3(#))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1663] 0s passed
[1664] replace_short_MAX, replace_short_MAX { \find(short_MAX) \replacewith(Z(7(6(7(2(3(#))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1664] 0.001s passed
[1665] replace_short_MIN, replace_short_MIN { \find(short_MIN) \replacewith(Z(neglit(8(6(7(2(3(#)))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1665] 0s passed
[1666] replace_short_RANGE, replace_short_RANGE { \find(short_RANGE) \replacewith(Z(6(3(5(5(6(#))))))) \heuristics(defOps_expandRanges) Choices: true} testEquality(String, String)[1666] 0s passed
[1667] returnUnfold, returnUnfold { \find(#allmodal ( (modal operator))\[{ .. return #nse; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;return #v0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1667] 0.001s passed
[1668] rotate_and, rotate_and { \find(and(b,and(c,d))) \replacewith(and(c,and(b,d))) Choices: true} testEquality(String, String)[1668] 0s passed
[1669] rotate_or, rotate_or { \find(or(b,or(c,d))) \replacewith(or(c,or(b,d))) Choices: true} testEquality(String, String)[1669] 0s passed
[166] assignmentDivisionDoubleStrictFP, assignmentDivisionDoubleStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0/#seDouble1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(divDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeDoubleAssignment) Choices: programRules:Java} testEquality(String, String)[166] 0.001s passed
[1670] rotate_params, rotate_params { \find(add(i,add(i0,i1))) \replacewith(add(i0,add(i,i1))) Choices: true} testEquality(String, String)[1670] 0s passed
[1671] sameTypeFalse, sameTypeFalse { \assumes ([equals(G::exactInstance(x1),TRUE),equals(H::exactInstance(x2),TRUE)]==>[]) \find(sameType(x1,x2)) \varcond(\not\same(G, H), ) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1671] 0s passed
[1672] sameTypeTrue, sameTypeTrue { \assumes ([equals(G::exactInstance(x1),TRUE),equals(G::exactInstance(x2),TRUE)]==>[]) \find(sameType(x1,x2)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[1672] 0.001s passed
[1673] same_boxes_left, same_boxes_left { \assumes ([\[{ .. #s ... }\] (post)]==>[]) \find(\[{ .. #s ... }\] (post1)==>) \add [\[{ .. #s ... }\] (and(post,post1))]==>[] Choices: programRules:Java} testEquality(String, String)[1673] 0s passed
[1674] same_boxes_right, same_boxes_right { \assumes ([]==>[\[{ .. #s ... }\] (post)]) \find(==>\[{ .. #s ... }\] (post1)) \add []==>[\[{ .. #s ... }\] (or(post,post1))] Choices: programRules:Java} testEquality(String, String)[1674] 0s passed
[1675] same_diamonds_left, same_diamonds_left { \assumes ([\<{ .. #s ... }\> (post)]==>[]) \find(\<{ .. #s ... }\> (post1)==>) \add [\<{ .. #s ... }\> (and(post,post1))]==>[] Choices: programRules:Java} testEquality(String, String)[1675] 0s passed
[1676] same_diamonds_right, same_diamonds_right { \assumes ([]==>[\<{#s}\> (post)]) \find(==>\<{#s}\> (post1)) \add []==>[\<{#s}\> (or(post,post1))] Choices: programRules:Java} testEquality(String, String)[1676] 0.001s passed
[1677] schiffl_lemma_2, schiffl_lemma_2 { \find(seqPerm(s,t)==>) \varcond(\notFreeIn(y (variable), t (Seq term)), \notFreeIn(y (variable), s (Seq term)), \notFreeIn(x (variable), t (Seq term)), \notFreeIn(x (variable), s (Seq term)), \notFreeIn(r (variable), t (Seq term)), \notFreeIn(r (variable), s (Seq term)), \notFreeIn(iv (variable), t (Seq term)), \notFreeIn(iv (variable), s (Seq term))) \add [all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(equals(any::seqGet(s,x),any::seqGet(t,x)),equals(any::seqGet(s,y),any::se… testEquality(String, String)[1677] 0.001s passed
[1678] schiffl_thm_1, schiffl_thm_1 { \find(seqPerm(s,t)==>) \varcond(\notFreeIn(idx (variable), t (Seq term)), \notFreeIn(idx (variable), s (Seq term)), \notFreeIn(idx (variable), b (any term)), \notFreeIn(idx (variable), a (any term)), \notFreeIn(idx (variable), y (int term)), \notFreeIn(idx (variable), x (int term))) \add [imp(and(and(and(and(and(and(seqPerm(s,t),equals(any::seqGet(s,x),any::seqGet(t,x))),equals(any::seqGet(s,y),any::seqGet(t,y))),leq(Z(0(#)),x)),lt(x,seqLen(s))),leq(Z(0(#)),y)),lt(y,seqLen(s))),seqPerm(seqD… testEquality(String, String)[1678] 0.001s passed
[1679] secondOfPair, secondOfPair { \find(second(pair(t,t1))) \replacewith(t1) \heuristics(concrete) Choices: true} testEquality(String, String)[1679] 0s passed
[167] assignmentDivisionFloat, assignmentDivisionFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0/#seFloat1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaDivFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[167] 0.001s passed
[1680] selectCreatedOfAnon, selectCreatedOfAnon { \find(boolean::select(anon(h,s,h2),o,java.lang.Object::<created>)) \replacewith(if-then-else(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE),TRUE,boolean::select(h2,o,java.lang.Object::<created>))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} testEquality(String, String)[1680] 0s passed
[1681] selectCreatedOfAnonAsFormula, selectCreatedOfAnonAsFormula { \find(equals(boolean::select(anon(h,s,h2),o,java.lang.Object::<created>),TRUE)) \replacewith(or(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE),equals(boolean::select(h2,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify_ENLARGING) Choices: programRules:Java} testEquality(String, String)[1681] 0.001s passed
[1682] selectCreatedOfAnonAsFormulaEQ, selectCreatedOfAnonAsFormulaEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) \find(equals(boolean::select(EQ,o,java.lang.Object::<created>),TRUE)) \sameUpdateLevel\replacewith(or(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE),equals(boolean::select(h2,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify_ENLARGING) Choices: programRules:Java} testEquality(String, String)[1682] 0s passed
[1683] selectCreatedOfAnonEQ, selectCreatedOfAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) \find(boolean::select(EQ,o,java.lang.Object::<created>)) \sameUpdateLevel\replacewith(if-then-else(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE),TRUE,boolean::select(h2,o,java.lang.Object::<created>))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} testEquality(String, String)[1683] 0s passed
[1684] selectOfAnon, selectOfAnon { \find(beta::select(anon(h,s,h2),o,f)) \replacewith(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[1684] 0.001s passed
[1685] selectOfAnonEQ, selectOfAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) \find(beta::select(EQ,o,f)) \sameUpdateLevel\replacewith(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} testEquality(String, String)[1685] 0s passed
[1686] selectOfCreate, selectOfCreate { \find(beta::select(create(h,o),o2,f)) \replacewith(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::<created>)),beta::cast(TRUE),beta::select(h,o2,f))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[1686] 0s passed
[1687] selectOfCreateEQ, selectOfCreateEQ { \assumes ([equals(create(h,o),EQ)]==>[]) \find(beta::select(EQ,o2,f)) \sameUpdateLevel\replacewith(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::<created>)),beta::cast(TRUE),beta::select(h,o2,f))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} testEquality(String, String)[1687] 0s passed
[1688] selectOfMemset, selectOfMemset { \find(beta::select(memset(h,s,x),o,f)) \replacewith(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),beta::cast(x),beta::select(h,o,f))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[1688] 0s passed
[1689] selectOfMemsetEQ, selectOfMemsetEQ { \assumes ([equals(memset(h,s,x),EQ)]==>[]) \find(beta::select(EQ,o,f)) \sameUpdateLevel\replacewith(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),beta::cast(x),beta::select(h,o,f))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} testEquality(String, String)[1689] 0s passed
[168] assignmentDivisionFloatStrictFP, assignmentDivisionFloatStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0/#seFloat1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(divFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[168] 0.002s passed
[1690] selectOfStore, selectOfStore { \find(beta::select(store(h,o,f,x),o2,f2)) \replacewith(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::<created>))),beta::cast(x),beta::select(h,o2,f2))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[1690] 0.001s passed
[1691] selectOfStoreEQ, selectOfStoreEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) \find(beta::select(EQ,o2,f2)) \sameUpdateLevel\replacewith(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::<created>))),beta::cast(x),beta::select(h,o2,f2))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} testEquality(String, String)[1691] 0s passed
[1692] seqConcatUnfoldLeft, seqConcatUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_concat(#nseLeft,#eRight); ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=\seq_concat(#vLeftNew,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1692] 0s passed
[1693] seqConcatUnfoldRight, seqConcatUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_concat(#seLeft,#nseRight); ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=\seq_concat(#seLeft,#vRightNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1693] 0.001s passed
[1694] seqConcatWithSeqEmpty1, seqConcatWithSeqEmpty1 { \find(seqConcat(seq,seqEmpty)) \replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1694] 0s passed
[1695] seqConcatWithSeqEmpty2, seqConcatWithSeqEmpty2 { \find(seqConcat(seqEmpty,seq)) \replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1695] 0s passed
[1696] seqDefOfSeq, seqDefOfSeq { \find(seqDef{u (variable)}(Z(0(#)),x,any::seqGet(s,u))) \varcond(\notFreeIn(v (variable), s (Seq term)), \notFreeIn(v (variable), x (int term)), \notFreeIn(u (variable), s (Seq term)), \notFreeIn(u (variable), x (int term))) \replacewith(if-then-else(equals(seqLen(s),x),s,if-then-else(gt(seqLen(s),x),seqSub(s,Z(0(#)),x),seqConcat(s,seqDef{v (variable)}(seqLen(s),x,seqGetOutside))))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[1696] 0.001s passed
[1697] seqDef_empty, seqDef_empty { \find(seqDef{uSub (variable)}(from,idx,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), idx (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(seqEmpty) ; \add []==>[leq(idx,from)] Choices: sequences:on} testEquality(String, String)[1697] 0s passed
[1698] seqDef_induction_lower, seqDef_induction_lower { \find(seqDef{uSub (variable)}(from,to,t)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(seqConcat(if-then-else(lt(from,to),seqSingleton(subst{uSub (variable)}(from,t)),seqEmpty),seqDef{uSub (variable)}(add(from,Z(1(#))),to,t))) Choices: sequences:on} testEquality(String, String)[1698] 0.002s passed
[1699] seqDef_induction_lower_concrete, seqDef_induction_lower_concrete { \find(seqDef{uSub (variable)}(add(Z(neglit(1(#))),from),to,t)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(seqConcat(if-then-else(lt(add(Z(neglit(1(#))),from),to),seqSingleton(subst{uSub (variable)}(add(Z(neglit(1(#))),from),t)),seqEmpty),seqDef{uSub (variable)}(from,to,t))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1699] 0s passed
[169] assignmentDivisionInt, assignmentDivisionInt { \find(==>#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0/#seCharByteShortInt1; ... }\] (post)) \replacewith([]==>[not(equals(#seCharByteShortInt1,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(javaDivInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))]) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[169] 0.001s passed
[16] activeUseModulo, activeUseModulo { \find(#allmodal ( (modal operator))\[{ .. #sv=#left%#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left%#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[16] 0.003s passed
[1700] seqDef_induction_upper, seqDef_induction_upper { \find(seqDef{uSub (variable)}(from,to,t)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(seqConcat(seqDef{uSub (variable)}(from,sub(to,Z(1(#))),t),if-then-else(lt(from,to),seqSingleton(subst{uSub (variable)}(sub(to,Z(1(#))),t)),seqEmpty))) Choices: sequences:on} testEquality(String, String)[1700] 0s passed
[1701] seqDef_induction_upper_concrete, seqDef_induction_upper_concrete { \find(seqDef{uSub (variable)}(from,add(Z(1(#)),to),t)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(seqConcat(seqDef{uSub (variable)}(from,to,t),if-then-else(leq(from,to),seqSingleton(subst{uSub (variable)}(to,t)),seqEmpty))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[1701] 0.001s passed
[1702] seqDef_lower_equals_upper, seqDef_lower_equals_upper { \find(seqDef{uSub (variable)}(idx,idx,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), idx (int term))) \replacewith(seqEmpty) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1702] 0s passed
[1703] seqDef_one_summand, seqDef_one_summand { \find(seqDef{uSub (variable)}(from,idx,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), idx (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(if-then-else(equals(add(from,Z(1(#))),idx),seqSingleton(subst{uSub (variable)}(from,t)),seqDef{uSub (variable)}(from,idx,t))) Choices: sequences:on} testEquality(String, String)[1703] 0s passed
[1704] seqDef_split, seqDef_split { \find(seqDef{uSub (variable)}(from,to,t)) \varcond(\notFreeIn(uSub1 (variable), t (any term)), \notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), idx (int term)), \notFreeIn(uSub (variable), from (int term)), \notFreeIn(uSub1 (variable), to (int term)), \notFreeIn(uSub1 (variable), idx (int term)), \notFreeIn(uSub1 (variable), from (int term))) \replacewith(if-then-else(and(leq(from,idx),lt(idx,to)),seqConcat(seqDef{uSub (variable)}(from,idx,t),seqDef{uSub1 (variable)}(i… testEquality(String, String)[1704] 0.001s passed
[1705] seqDef_split_in_three, seqDef_split_in_three { \find(seqDef{uSub (variable)}(from,to,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub1 (variable), to (int term)), \notFreeIn(uSub (variable), from (int term)), \notFreeIn(uSub1 (variable), idx (int term)), \notFreeIn(uSub1 (variable), t (any term)), \notFreeIn(uSub (variable), idx (int term))) \replacewith(seqConcat(seqDef{uSub (variable)}(from,idx,t),seqConcat(seqSingleton(subst{uSub (variable)}(idx,t)),seqDef{uSub1 (variable)}(add(idx,Z(1(#))),to,subst{uSub (variable)}(uSub1,t))))) … testEquality(String, String)[1705] 0s passed
[1706] seqGetAlphaCast, seqGetAlphaCast { \find(alpha::seqGet(seq,at)) \add [equals(alpha::cast(any::seqGet(seq,at)),alpha::seqGet(seq,at))]==>[] \heuristics(inReachableStateImplication) Choices: sequences:on} testEquality(String, String)[1706] 0s passed
[1707] seqGetUnfoldLeft, seqGetUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=#nseLeft[#eRight]; ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=#vLeftNew[#eRight]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1707] 0.001s passed
[1708] seqGetUnfoldRight, seqGetUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=#seLeft[#nseRight]; ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=#seLeft[#vRightNew]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1708] 0s passed
[1709] seqIndexOf, seqIndexOf { \find(seqIndexOf(s,t)) \varcond(\notFreeIn(m (variable), t (any term)), \notFreeIn(m (variable), s (Seq term)), \notFreeIn(n (variable), t (any term)), \notFreeIn(n (variable), s (Seq term))) \add [imp(exists{n (variable)}(and(and(leq(Z(0(#)),n),lt(n,seqLen(s))),equals(any::seqGet(s,n),t))),and(and(and(leq(Z(0(#)),seqIndexOf(s,t)),lt(seqIndexOf(s,t),seqLen(s))),equals(any::seqGet(s,seqIndexOf(s,t)),t)),all{m (variable)}(imp(and(leq(Z(0(#)),m),lt(m,seqIndexOf(s,t))),not(equals(any::seqGet(s,m),… testEquality(String, String)[1709] 0s passed
[170] assignmentDivisionLong, assignmentDivisionLong { \find(==>#normalassign ( (modal operator))\[{ .. #loc=#se/#seLong; ... }\] (post)) \replacewith([]==>[not(equals(#seLong,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(javaDivLong(#se,#seLong)),#normalassign(post))]) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[170] 0.001s passed
[1710] seqIndexOfUnfoldLeft, seqIndexOfUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=\indexOf(#nseLeft,#eRight); ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=\indexOf(#vLeftNew,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1710] 0.001s passed
[1711] seqIndexOfUnfoldRight, seqIndexOfUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=\indexOf(#seLeft,#nseRight); ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=\indexOf(#seLeft,#vRightNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1711] 0s passed
[1712] seqLengthUnfold, seqLengthUnfold { \find(#allmodal ( (modal operator))\[{ .. #v=#nse.length; ... }\] (post)) \varcond(\new(#vNew (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #vNew = #nse;#v=#vNew.length; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1712] 0.001s passed
[1713] seqOutsideValue, seqOutsideValue { \find(seqGetOutside) \add [all{s (variable)}(all{iv (variable)}(imp(or(lt(iv,Z(0(#))),leq(seqLen(s),iv)),equals(any::seqGet(s,iv),seqGetOutside))))]==>[] Choices: sequences:on} testEquality(String, String)[1713] 0s passed
[1714] seqReverseOfSeqEmpty, seqReverseOfSeqEmpty { \find(seqReverse(seqEmpty)) \replacewith(seqEmpty) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1714] 0s passed
[1715] seqReverseUnfold, seqReverseUnfold { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_reverse(#nse); ... }\] (post)) \varcond(\new(#vNew (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #vNew = #nse;#v=\seq_reverse(#vNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1715] 0.001s passed
[1716] seqSelfDefinition, seqSelfDefinition { \find(seq) \add [all{s (variable)}(equals(s,seqDef{u (variable)}(Z(0(#)),seqLen(s),any::seqGet(s,u))))]==>[] Choices: sequences:on} testEquality(String, String)[1716] 0s passed
[1717] seqSelfDefinitionEQ2, seqSelfDefinitionEQ2 { \assumes ([equals(seqLen(s),x)]==>[]) \find(seqDef{u (variable)}(Z(0(#)),x,any::seqGet(s,u))) \sameUpdateLevel\varcond(\notFreeIn(u (variable), s (Seq term)), \notFreeIn(u (variable), x (int term))) \replacewith(s) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[1717] 0s passed
[1718] seqSingletonUnfold, seqSingletonUnfold { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_singleton(#nse); ... }\] (post)) \varcond(\new(#vNew (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #vNew = #nse;#v=\seq_singleton(#vNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1718] 0.001s passed
[1719] seqSubUnfoldLeft, seqSubUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_sub(#nseLeft,#eMiddle,#eRight); ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=\seq_sub(#vLeftNew,#eMiddle,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1719] 0s passed
[171] assignmentDivisionLong2, assignmentDivisionLong2 { \find(==>#normalassign ( (modal operator))\[{ .. #loc=#seLong/#seCharByteShortInt; ... }\] (post)) \replacewith([]==>[not(equals(#seCharByteShortInt,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(javaDivLong(#seLong,#seCharByteShortInt)),#normalassign(post))]) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[171] 0s passed
[1720] seqSubUnfoldMiddle, seqSubUnfoldMiddle { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_sub(#seLeft,#nseMiddle,#eRight); ... }\] (post)) \varcond(\new(#vMiddleNew (program Variable), \typeof(#nseMiddle (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseMiddle) #vMiddleNew = #nseMiddle;#v=\seq_sub(#seLeft,#vMiddleNew,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1720] 0s passed
[1721] seqSubUnfoldRight, seqSubUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=\seq_sub(#seLeft,#seMiddle,#nseRight); ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=\seq_sub(#seLeft,#seMiddle,#vRightNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1721] 0.001s passed
[1722] sequentialToParallel1, sequentialToParallel1 { \find(update-application(u,update-application(u2,t))) \replacewith(update-application(parallel-upd(u,update-application(u,u2)),t)) \heuristics(update_join) Choices: true} testEquality(String, String)[1722] 0s passed
[1723] sequentialToParallel2, sequentialToParallel2 { \find(update-application(u,update-application(u2,phi))) \replacewith(update-application(parallel-upd(u,update-application(u,u2)),phi)) \heuristics(update_join) Choices: true} testEquality(String, String)[1723] 0s passed
[1724] sequentialToParallel3, sequentialToParallel3 { \find(update-application(u,update-application(u2,u3))) \replacewith(update-application(parallel-upd(u,update-application(u,u2)),u3)) \heuristics(update_join) Choices: true} testEquality(String, String)[1724] 0.001s passed
[1725] setIntersectUnfoldLeft, setIntersectUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=\intersect(#nseLeft,#eRight); ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=\intersect(#vLeftNew,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1725] 0.001s passed
[1726] setIntersectUnfoldRight, setIntersectUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=\intersect(#seLeft,#nseRight); ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=\intersect(#seLeft,#vRightNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1726] 0.001s passed
[1727] setJavaCardTransient, setJavaCardTransient { \find(==>#allmodal ( (modal operator))\[{ .. #jcsystemType.#setTransient(#se,#se1)@#jcsystemType; ... }\] (post)) \replacewith([]==>[not(equals(#se,null))]) ; \replacewith([]==>[update-application(elem-update(heap)(store(heap,#se,java.lang.Object::<transient>,#se1)),#allmodal(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[1727] 0s passed
[1728] setMinusItself, setMinusItself { \find(setMinus(s,s)) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1728] 0s passed
[1729] setMinusOfUnion, setMinusOfUnion { \find(setMinus(union(s,s2),s3)) \replacewith(union(setMinus(s,s3),setMinus(s2,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1729] 0.001s passed
[172] assignmentModDouble, assignmentModDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0%#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaModDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[172] 0.001s passed
[1730] setMinusOfUnionEQ, setMinusOfUnionEQ { \assumes ([equals(union(s,s2),EQ)]==>[]) \find(setMinus(EQ,s3)) \sameUpdateLevel\replacewith(union(setMinus(s,s3),setMinus(s2,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1730] 0s passed
[1731] setMinusSingleton, setMinusSingleton { \assumes ([]==>[elementOf(o,f,s)]) \find(setMinus(s,singleton(o,f))) \replacewith(s) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1731] 0.001s passed
[1732] setMinusUnfoldLeft, setMinusUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=\set_minus(#nseLeft,#eRight); ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=\set_minus(#vLeftNew,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1732] 0.001s passed
[1733] setMinusUnfoldRight, setMinusUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=\set_minus(#seLeft,#nseRight); ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=\set_minus(#seLeft,#vRightNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1733] 0s passed
[1734] setMinusWithAllLocs, setMinusWithAllLocs { \find(setMinus(s,allLocs)) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1734] 0s passed
[1735] setMinusWithEmpty1, setMinusWithEmpty1 { \find(setMinus(s,empty)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1735] 0s passed
[1736] setMinusWithEmpty2, setMinusWithEmpty2 { \find(setMinus(empty,s)) \replacewith(empty) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1736] 0s passed
[1737] setUnionUnfoldLeft, setUnionUnfoldLeft { \find(#allmodal ( (modal operator))\[{ .. #v=\set_union(#nseLeft,#eRight); ... }\] (post)) \varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseLeft) #vLeftNew = #nseLeft;#v=\set_union(#vLeftNew,#eRight); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1737] 0.001s passed
[1738] setUnionUnfoldRight, setUnionUnfoldRight { \find(#allmodal ( (modal operator))\[{ .. #v=\set_union(#seLeft,#nseRight); ... }\] (post)) \varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseRight) #vRightNew = #nseRight;#v=\set_union(#seLeft,#vRightNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1738] 0.001s passed
[1739] shiftLeftDef, shiftLeftDef { \find(shiftleft(left,right)) \replacewith(if-then-else(lt(right,Z(0(#))),shiftrightPositiveShift(left,neg(right)),shiftleftPositiveShift(left,right))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1739] 0s passed
[173] assignmentModFloat, assignmentModFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0%#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaModFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[173] 0.001s passed
[1740] shiftLeftPositiveShiftDef, shiftLeftPositiveShiftDef { \find(shiftleftPositiveShift(left,right)) \replacewith(mul(left,pow(Z(2(#)),right))) \heuristics(simplify) Choices: true} testEquality(String, String)[1740] 0.001s passed
[1741] shiftRightDef, shiftRightDef { \find(shiftright(left,right)) \replacewith(if-then-else(lt(right,Z(0(#))),shiftleftPositiveShift(left,neg(right)),shiftrightPositiveShift(left,right))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1741] 0.001s passed
[1742] shiftRightPositiveShiftDef, shiftRightPositiveShiftDef { \find(shiftrightPositiveShift(left,right)) \replacewith(div(left,pow(Z(2(#)),right))) \heuristics(simplify) Choices: true} testEquality(String, String)[1742] 0s passed
[1743] shift_paren_and, shift_paren_and { \find(and(assoc0,and(assoc1,assoc2))) \replacewith(and(and(assoc0,assoc1),assoc2)) \heuristics(cnf_andAssoc, conjNormalForm) Choices: true} testEquality(String, String)[1743] 0.001s passed
[1744] shift_paren_or, shift_paren_or { \find(or(assoc0,or(assoc1,assoc2))) \replacewith(or(or(assoc0,assoc1),assoc2)) \heuristics(cnf_orAssoc, conjNormalForm) Choices: true} testEquality(String, String)[1744] 0s passed
[1745] shiftleft_literals, shiftleft_literals { \find(shiftleft(Z(iz),Z(jz))) \replacewith(#ShiftLeft(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1745] 0.001s passed
[1746] shiftright_literals, shiftright_literals { \find(shiftright(Z(iz),Z(jz))) \replacewith(#ShiftRight(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1746] 0s passed
[1747] sign_case_distinction, sign_case_distinction { \add [geq(signCasesLeft,Z(1(#)))]==>[] ; \add [equals(signCasesLeft,Z(0(#)))]==>[] ; \add [leq(signCasesLeft,Z(neglit(1(#))))]==>[] \heuristics(inEqSimp_signCases) Choices: true} testEquality(String, String)[1747] 0s passed
[1748] simplifyIfThenElseUpdate1, simplifyIfThenElseUpdate1 { \find(if-then-else(phi,update-application(u1,t),update-application(u2,t))) \varcond(\simplifyIfThenElseUpdate(phi, u1, u2, t, result), ) \replacewith(result) Choices: true} testEquality(String, String)[1748] 0s passed
[1749] simplifyIfThenElseUpdate2, simplifyIfThenElseUpdate2 { \find(if-then-else(phi,t,update-application(u2,t))) \varcond(\simplifyIfThenElseUpdate(phi, u1, u2, t, result), ) \replacewith(result) Choices: true} testEquality(String, String)[1749] 0s passed
[174] assignmentModulo, assignmentModulo { \find(==>#normalassign ( (modal operator))\[{ .. #loc=#se0%#se1; ... }\] (post)) \replacewith([]==>[not(equals(#se1,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(javaMod(#se0,#se1)),#normalassign(post))]) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[174] 0.002s passed
[1750] simplifyIfThenElseUpdate3, simplifyIfThenElseUpdate3 { \find(if-then-else(phi,update-application(u1,t),t)) \varcond(\simplifyIfThenElseUpdate(phi, u1, u2, t, result), ) \replacewith(result) Choices: true} testEquality(String, String)[1750] 0s passed
[1751] simplifyIfThenElseUpdate4, simplifyIfThenElseUpdate4 { \find(if-then-else(phi,t,t)) \varcond(\simplifyIfThenElseUpdate(phi, u1, u2, t, result), ) \replacewith(result) Choices: true} testEquality(String, String)[1751] 0.009s passed
[1752] simplifySelectOfAnon, simplifySelectOfAnon { \find(equals(beta::select(anon(h,s,h2),o,f),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(anon(h,s,h2),o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1752] 0s passed
[1753] simplifySelectOfAnonEQ, simplifySelectOfAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) \find(equals(beta::select(EQ,o,f),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(EQ,o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1753] 0.001s passed
[1754] simplifySelectOfCreate, simplifySelectOfCreate { \find(equals(beta::select(create(h,o),o2,f),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(create(h,o),o2,f)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::<created>)),beta::cast(TRUE),beta::select(h,o2,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1754] 0.001s passed
[1755] simplifySelectOfCreateEQ, simplifySelectOfCreateEQ { \assumes ([equals(create(h,o),EQ)]==>[]) \find(equals(beta::select(EQ,o2,f),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(EQ,o2,f)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::<created>)),beta::cast(TRUE),beta::select(h,o2,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1755] 0s passed
[1756] simplifySelectOfMemset, simplifySelectOfMemset { \find(equals(beta::select(memset(h,s,x),o,f),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(memset(h,s,x),o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),x,beta::select(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1756] 0s passed
[1757] simplifySelectOfMemsetEQ, simplifySelectOfMemsetEQ { \assumes ([equals(memset(h,s,x),EQ)]==>[]) \find(equals(beta::select(EQ,o,f),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(EQ,o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::<created>))),x,beta::select(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1757] 0.001s passed
[1758] simplifySelectOfStore, simplifySelectOfStore { \find(equals(beta::select(store(h,o,f,x),o2,f2),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(store(h,o,f,x),o2,f2)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::<created>))),beta::cast(x),beta::select(h,o2,f2)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1758] 0s passed
[1759] simplifySelectOfStoreEQ, simplifySelectOfStoreEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) \find(equals(beta::select(EQ,o2,f2),sk)==>) \addrules [replaceKnownSelect { \find(beta::select(EQ,o2,f2)) \inSequentState\replacewith(sk) \heuristics(concrete) Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::<created>))),beta::cast(x),beta::select(h,o2,f2)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} testEquality(String, String)[1759] 0s passed
[175] assignmentModuloBigint1, assignmentModuloBigint1 { \find(==>#allmodal ( (modal operator))\[{ .. #loc=#seBigint%#seAny; ... }\] (post)) \replacewith([]==>[not(equals(#seAny,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(mod(#seBigint,#seAny)),#allmodal(post))]) \heuristics(executeIntegerAssignment) Choices: ((programRules:Java & bigint:on) & runtimeExceptions:ban)} testEquality(String, String)[175] 0.001s passed
[1760] simplifyUpdate1, simplifyUpdate1 { \find(update-application(u,t)) \varcond(\dropEffectlessElementaries(u (update), t (any term), result (any term)), ) \replacewith(result) \heuristics(update_elim) Choices: true} testEquality(String, String)[1760] 0s passed
[1761] simplifyUpdate2, simplifyUpdate2 { \find(update-application(u,phi)) \varcond(\dropEffectlessElementaries(u (update), phi (formula), result (formula)), ) \replacewith(result) \heuristics(update_elim) Choices: true} testEquality(String, String)[1761] 0s passed
[1762] simplifyUpdate3, simplifyUpdate3 { \find(update-application(u,u2)) \varcond(\dropEffectlessElementaries(u (update), u2 (update), result (update)), ) \replacewith(result) \heuristics(update_elim) Choices: true} testEquality(String, String)[1762] 0s passed
[1763] sinIsNaN, sinIsNaN { \find(sinDouble(arg)) \add [imp(or(doubleIsNaN(arg),doubleIsInfinite(arg)),doubleIsNaN(sinDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1763] 0s passed
[1764] sinIsNotNaN, sinIsNotNaN { \find(sinDouble(arg)) \add [imp(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg))),not(doubleIsNaN(sinDouble(arg))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1764] 0.001s passed
[1765] sinRange2, sinRange2 { \find(sinDouble(arg)) \add [imp(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg))),and(geqDouble(sinDouble(arg),negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),leqDouble(sinDouble(arg),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1765] 0s passed
[1766] sinRange3, sinRange3 { \find(sinDouble(arg)) \add [imp(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg))),and(geqDouble(mulDouble(sinDouble(arg),sinDouble(arg)),DFP(0(#))),leqDouble(mulDouble(sinDouble(arg),sinDouble(arg)),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1766] 0s passed
[1767] sineIsNaNAlt, sineIsNaNAlt { \find(doubleIsNaN(sinDouble(arg))) \replacewith(or(doubleIsNaN(arg),doubleIsInfinite(arg))) \heuristics(simplify) Choices: true} testEquality(String, String)[1767] 0.001s passed
[1768] sineIsZero, sineIsZero { \find(sinDouble(arg)) \add [imp(equals(arg,DFP(0(#))),equals(sinDouble(arg),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1768] 0s passed
[1769] sineRange, sineRange { \find(sinDouble(arg)) \add [or(and(geqDouble(sinDouble(arg),negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),leqDouble(sinDouble(arg),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),doubleIsNaN(sinDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1769] 0s passed
[176] assignmentModuloBigint2, assignmentModuloBigint2 { \find(==>#allmodal ( (modal operator))\[{ .. #loc=#seAny%#seBigint; ... }\] (post)) \replacewith([]==>[not(equals(#seBigint,Z(0(#))))]) ; \replacewith([]==>[update-application(elem-update(#loc (program Variable))(mod(#seAny,#seBigint)),#allmodal(post))]) \heuristics(executeIntegerAssignment) Choices: ((programRules:Java & bigint:on) & runtimeExceptions:ban)} testEquality(String, String)[176] 0s passed
[1770] sineRangeAlt, sineRangeAlt { \find(==>doubleIsNaN(sinDouble(arg))) \add [and(geqDouble(sinDouble(arg),negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),leqDouble(sinDouble(arg),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1770] 0.001s passed
[1771] singletonAssignment, singletonAssignment { \find(#allmodal ( (modal operator))\[{ .. #v=\singleton(#seObj.#a); ... }\] (post)) \replacewith(update-application(elem-update(#v (program Variable))(singleton(#seObj,#memberPVToField(#a))),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1771] 0s passed
[1772] singletonEqualsEmpty, singletonEqualsEmpty { \find(equals(singleton(o,f),empty)) \replacewith(false) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1772] 0s passed
[1773] singletonUnfold, singletonUnfold { \find(#allmodal ( (modal operator))\[{ .. #v=\singleton(#nseObj.#a); ... }\] (post)) \varcond(\new(#vObjNew (program Variable), \typeof(#nseObj (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseObj) #vObjNew = #nseObj;#v=\singleton(#vObjNew.#a); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1773] 0.001s passed
[1774] sizeOfMapEmpty, sizeOfMapEmpty { \find(mapSize(mapEmpty)) \sameUpdateLevel\replacewith(Z(0(#))) \heuristics(simplify) Choices: true} testEquality(String, String)[1774] 0s passed
[1775] sizeOfMapRemove, sizeOfMapRemove { \find(mapSize(mapRemove(m,key))) \add [imp(isFinite(m),equals(mapSize(mapRemove(m,key)),if-then-else(inDomain(m,key),sub(mapSize(m),Z(1(#))),mapSize(m))))]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1775] 0s passed
[1776] sizeOfMapSingleton, sizeOfMapSingleton { \find(mapSize(mapSingleton(key,value))) \sameUpdateLevel\replacewith(Z(1(#))) \heuristics(simplify) Choices: true} testEquality(String, String)[1776] 0s passed
[1777] sizeOfMapUpdate, sizeOfMapUpdate { \find(mapSize(mapUpdate(m,key,value))) \add [imp(isFinite(m),equals(mapSize(mapUpdate(m,key,value)),if-then-else(inDomain(m,key),mapSize(m),add(mapSize(m),Z(1(#))))))]==>[] \heuristics(inReachableStateImplication) Choices: true} testEquality(String, String)[1777] 0.001s passed
[1778] sizeOfSeq2Map, sizeOfSeq2Map { \find(mapSize(seq2map(s))) \sameUpdateLevel\replacewith(seqLen(s)) \heuristics(simplify) Choices: true} testEquality(String, String)[1778] 0s passed
[1779] sortsDisjoint1, sortsDisjoint1 { \find(equals(x,y)) \varcond(\not\sub(Null, G), \disjointModuloNull(G, H), ) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1779] 0.001s passed
[177] assignmentMultiplicationBigint1, assignmentMultiplicationBigint1 { \find(#allmodal ( (modal operator))\[{ .. #loc=#seBigint*#seAny; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(mul(#seBigint,#seAny)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[177] 0.003s passed
[1780] sortsDisjoint2, sortsDisjoint2 { \find(equals(x,y)) \varcond(\not\sub(Null, H), \disjointModuloNull(G, H), ) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[1780] 0s passed
[1781] sortsDisjointModuloNull, sortsDisjointModuloNull { \find(equals(x,y)) \varcond(\strict\sub(Null, G), \strict\sub(Null, H), \disjointModuloNull(G, H), ) \replacewith(and(equals(x,null),equals(y,null))) \heuristics(simplify) Choices: true} testEquality(String, String)[1781] 0s passed
[1782] special_constructor_call, special_constructor_call { \find(#allmodal ( (modal operator))\[{ .. #scr ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. special-constructor-call(#scr) ... }\] (post)) \heuristics(method_expand) Choices: programRules:Java} testEquality(String, String)[1782] 0.001s passed
[1783] splitEquation, splitEquation { \find(equals(splitEqLeft,splitEqRight)) \replacewith(and(geq(splitEqLeft,splitEqRight),leq(splitEqLeft,splitEqRight))) Choices: true} testEquality(String, String)[1783] 0s passed
[1784] splitEquationSucc, splitEquationSucc { \find(==>equals(splitEqLeft,splitEqRight)) \replacewith([]==>[leq(splitEqLeft,splitEqRight)]) ; \replacewith([]==>[geq(splitEqLeft,splitEqRight)]) \heuristics(notHumanReadable, inEqSimp_split_eq, inEqSimp_nonLin) Choices: true} testEquality(String, String)[1784] 0s passed
[1785] split_or_strong, split_or_strong { \find(or(b,c)==>) \replacewith([c]==>[b]) ; \replacewith([b]==>[]) Choices: true} testEquality(String, String)[1785] 0.001s passed
[1786] sqrtIsInfinite, sqrtIsInfinite { \find(sqrtDouble(arg)) \add [imp(and(doubleIsInfinite(arg),gtDouble(arg,DFP(0(#)))),and(doubleIsInfinite(sqrtDouble(arg)),gtDouble(sqrtDouble(arg),DFP(0(#)))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1786] 0s passed
[1787] sqrtIsNaN, sqrtIsNaN { \find(sqrtDouble(arg)) \add [imp(or(doubleIsNaN(arg),ltDouble(arg,DFP(0(#)))),doubleIsNaN(sqrtDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1787] 0.001s passed
[1788] sqrtIsNotNaN, sqrtIsNotNaN { \find(sqrtDouble(arg)) \add [imp(and(not(doubleIsNaN(arg)),geqDouble(arg,DFP(0(#)))),not(doubleIsNaN(sqrtDouble(arg))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1788] 0.001s passed
[1789] sqrtIsSmaller, sqrtIsSmaller { \find(sqrtDouble(arg)) \add [imp(and(not(doubleIsInfinite(arg)),gtDouble(arg,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),ltDouble(sqrtDouble(arg),arg))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1789] 0.001s passed
[178] assignmentMultiplicationBigint2, assignmentMultiplicationBigint2 { \find(#allmodal ( (modal operator))\[{ .. #loc=#seAny*#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(mul(#seAny,#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[178] 0.003s passed
[1790] sqrtIsZero, sqrtIsZero { \find(sqrtDouble(arg)) \add [imp(equals(arg,DFP(0(#))),equals(sqrtDouble(arg),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1790] 0s passed
[1791] square_nonneg, square_nonneg { \find(leq(Z(0(#)),mul(i0,i0))) \replacewith(true) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1791] 0.001s passed
[1792] startsWith, startsWith { \find(clStartsWith(sourceStr,searchStr)) \replacewith(if-then-else(gt(seqLen(searchStr),seqLen(sourceStr)),false,equals(seqSub(sourceStr,Z(0(#)),seqLen(searchStr)),searchStr))) \heuristics(defOpsStartsEndsWith) Choices: Strings:on} testEquality(String, String)[1792] 0.001s passed
[1793] staticMethodCall, staticMethodCall { \find(#allmodal ( (modal operator))\[{ .. #se.#mn(#elist); ... }\] (post)) \varcond(\staticMethodReference(#se (program SimpleExpression), #mn (program MethodName), #elist (program Expression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. method-call(#se.#mn(#elist);) ... }\] (post)) \heuristics(method_expand) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[1793] 0s passed
[1794] staticMethodCallStaticViaTypereference, staticMethodCallStaticViaTypereference { \find(#allmodal ( (modal operator))\[{ .. #t.#mn(#elist); ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. method-call(#t.#mn(#elist);) ... }\] (post)) \heuristics(method_expand) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[1794] 0.005s passed
[1795] staticMethodCallStaticWithAssignmentViaTypereference, staticMethodCallStaticWithAssignmentViaTypereference { \find(#allmodal ( (modal operator))\[{ .. #lhs=#t.#mn(#elist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;method-call(#t.#mn(#elist);)#lhs=#v0; ... }\] (post)) \heuristics(method_expand) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[1795] 0.001s passed
[1796] staticMethodCallWithAssignment, staticMethodCallWithAssignment { \find(#allmodal ( (modal operator))\[{ .. #lhs=#se.#mn(#elist); ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide))), \staticMethodReference(#se (program SimpleExpression), #mn (program MethodName), #elist (program Expression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;method-call(#se.#mn(#elist);)#lhs=#v0; ... }\] (post)) \heuristics(method_expand) Choices: (programRules:Java & initialisation:disableStatic… testEquality(String, String)[1796] 0.001s passed
[1797] stringAssignment, stringAssignment { \find(#normalassign ( (modal operator))\[{ .. #v=#slit; ... }\] (post)) \sameUpdateLevel\add [not(equals(strPool(#slit),null)),equals(boolean::select(heap,strPool(#slit),java.lang.Object::<created>),TRUE)]==>[] \replacewith(update-application(elem-update(#v (program Variable))(strPool(#slit)),#normalassign(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} testEquality(String, String)[1797] 0s passed
[1798] stringConcat, stringConcat { \find(#normalassign ( (modal operator))\[{ .. #v=#sstr1+#sstr2; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(strContent(#sstr1),strContent(#sstr2)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} testEquality(String, String)[1798] 0s passed
[1799] stringConcatBooleanLeft, stringConcatBooleanLeft { \find(#normalassign ( (modal operator))\[{ .. #v=#seLeft+#sstrRight; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(if-then-else(equals(#seLeft,TRUE),seqConcat(seqSingleton(C(6(1(1(#))))),seqConcat(seqSingleton(C(4(1(1(#))))),seqConcat(seqSingleton(C(7(1(1(#))))),seqSingleton(C(1(0(1(#)))))))),seqConcat(seqSingleton(C(2(0(1(#))))),seqConcat(seqSingleton(C(7(9(#)))),seqConcat(seqSingleton(C(8(0(1(#))))),seqConcat(seqSingleton(C(5(1(1(#))))),seqSingleton(C(1(0… testEquality(String, String)[1799] 0.001s passed
[179] assignmentMultiplicationDouble, assignmentMultiplicationDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0*#seDouble1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaMulDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[179] 0.001s passed
[17] activeUseMultiplication, activeUseMultiplication { \find(#allmodal ( (modal operator))\[{ .. #sv=#left*#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left*#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[17] 0.001s passed
[1800] stringConcatBooleanRight, stringConcatBooleanRight { \find(#normalassign ( (modal operator))\[{ .. #v=#sstrLeft+#seRight; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(strContent(#sstrLeft),if-then-else(equals(#seRight,TRUE),seqConcat(seqSingleton(C(6(1(1(#))))),seqConcat(seqSingleton(C(4(1(1(#))))),seqConcat(seqSingleton(C(7(1(1(#))))),seqSingleton(C(1(0(1(#)))))))),seqConcat(seqSingleton(C(2(0(1(#))))),seqConcat(seqSingleton(C(7(9(#)))),seqConcat(seqSingleton(C(8(0(1(#))))),seqConcat(seqSingleton(C(5(1(1(#… testEquality(String, String)[1800] 0s passed
[1801] stringConcatCharExpLeft, stringConcatCharExpLeft { \find(#normalassign ( (modal operator))\[{ .. #v=#seLeft+#sstrRight; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(seqSingleton(#seLeft),strContent(#sstrRight)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} testEquality(String, String)[1801] 0s passed
[1802] stringConcatCharExpRight, stringConcatCharExpRight { \find(#normalassign ( (modal operator))\[{ .. #v=#sstrLeft+#seRight; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(strContent(#sstrLeft),seqSingleton(#seRight)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} testEquality(String, String)[1802] 0.004s passed
[1803] stringConcatIntExpLeft, stringConcatIntExpLeft { \find(#normalassign ( (modal operator))\[{ .. #v=#seLeft+#sstrRight; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(clTranslateInt(#seLeft),strContent(#sstrRight)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} testEquality(String, String)[1803] 0s passed
[1804] stringConcatIntExpRight, stringConcatIntExpRight { \find(#normalassign ( (modal operator))\[{ .. #v=#sstrLeft+#seRight; ... }\] (post)) \sameUpdateLevel\add [equals(strContent(sk),seqConcat(strContent(#sstrLeft),clTranslateInt(#seRight)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} testEquality(String, String)[1804] 0s passed
[1805] stringConcatObjectLeft, stringConcatObjectLeft { \find(#normalassign ( (modal operator))\[{ .. #v=#seLeft+#sstrRight; ... }\] (post)) \sameUpdateLevel\add [equals(#seLeft,null),equals(strContent(sk),seqConcat(strContent(null),strContent(#sstrRight)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) ; \add []==>[equals(#seLeft,null)] \replacewith(#normalassign ( (modal operator))\[{ .. #v=#seLeft.toString()+#sstr… testEquality(String, String)[1805] 0s passed
[1806] stringConcatObjectRight, stringConcatObjectRight { \find(#normalassign ( (modal operator))\[{ .. #v=#sstrLeft+#seRight; ... }\] (post)) \sameUpdateLevel\add [equals(#seRight,null),equals(strContent(sk),seqConcat(strContent(#sstrLeft),strContent(null)))]==>[equals(sk,null)] \replacewith(update-application(elem-update(#v (program Variable))(sk),update-application(elem-update(heap)(create(heap,sk)),#normalassign(post)))) ; \add []==>[equals(#seRight,null)] \replacewith(#normalassign ( (modal operator))\[{ .. #v=#sstrLeft+#seRight.toS… testEquality(String, String)[1806] 0.001s passed
[1807] sub, sub { \find(sub(i,i0)) \replacewith(add(i,neg(i0))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1807] 0s passed
[1808] subSeqComplete, subSeqComplete { \find(seqSub(seq,Z(0(#)),seqLen(seq))) \replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1808] 0.001s passed
[1809] subSeqCompleteSeqDef, subSeqCompleteSeqDef { \find(seqSub(seqDef{i (variable)}(Z(0(#)),u,a),Z(0(#)),u)) \replacewith(seqDef{i (variable)}(Z(0(#)),u,a)) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1809] 0s passed
[180] assignmentMultiplicationDoubleStrictFP, assignmentMultiplicationDoubleStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0*#seDouble1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(mulDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeDoubleAssignment) Choices: programRules:Java} testEquality(String, String)[180] 0.001s passed
[1810] subSeqCompleteSeqDefEQ, subSeqCompleteSeqDefEQ { \assumes ([equals(seqDef{i (variable)}(Z(0(#)),u,a),EQ)]==>[]) \find(seqSub(EQ,Z(0(#)),u)) \replacewith(seqDef{i (variable)}(Z(0(#)),u,a)) \heuristics(concrete, no_self_application) Choices: sequences:on} testEquality(String, String)[1810] 0.001s passed
[1811] subSeqConcat, subSeqConcat { \find(seqSub(seqConcat(s1,s2),l,u)) \replacewith(seqConcat(seqSub(s1,l,if-then-else(lt(seqLen(s1),u),seqLen(s1),u)),seqSub(s2,if-then-else(lt(l,seqLen(s1)),Z(0(#)),sub(l,seqLen(s1))),sub(u,seqLen(s1))))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[1811] 0s passed
[1812] subSeqConcatEQ, subSeqConcatEQ { \assumes ([equals(seqConcat(s1,s2),EQ)]==>[]) \find(seqSub(EQ,l,u)) \replacewith(seqConcat(seqSub(s1,l,if-then-else(lt(seqLen(s1),u),seqLen(s1),u)),seqSub(s2,if-then-else(lt(l,seqLen(s1)),Z(0(#)),sub(l,seqLen(s1))),sub(u,seqLen(s1))))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} testEquality(String, String)[1812] 0.001s passed
[1813] subSeqEmpty, subSeqEmpty { \find(seqSub(seq,i,i)) \replacewith(seqEmpty) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1813] 0s passed
[1814] subSeqHeadSeqDef, subSeqHeadSeqDef { \find(seqSub(seqConcat(seqDef{i (variable)}(Z(0(#)),u,a),seq),Z(0(#)),u)) \replacewith(seqDef{i (variable)}(Z(0(#)),u,a)) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1814] 0s passed
[1815] subSeqHeadSeqDefEQ, subSeqHeadSeqDefEQ { \assumes ([equals(seqDef{i (variable)}(Z(0(#)),u,a),EQ)]==>[]) \find(seqSub(seqConcat(EQ,seq),Z(0(#)),u)) \replacewith(seqDef{i (variable)}(Z(0(#)),u,a)) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1815] 0.001s passed
[1816] subSeqSingleton, subSeqSingleton { \find(seqSub(seqSingleton(x),Z(0(#)),Z(1(#)))) \replacewith(seqSingleton(x)) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1816] 0s passed
[1817] subSeqSingleton2, subSeqSingleton2 { \find(seqSub(seqSingleton(x),l,u)) \replacewith(seqConcat(seqSub(seqEmpty,if-then-else(lt(l,Z(0(#))),l,Z(0(#))),if-then-else(lt(u,Z(0(#))),u,Z(0(#)))),seqConcat(if-then-else(and(leq(l,Z(0(#))),geq(u,Z(1(#)))),seqSingleton(x),seqEmpty),seqSub(seqEmpty,if-then-else(gt(l,Z(0(#))),l,Z(1(#))),if-then-else(gt(u,Z(0(#))),u,Z(1(#))))))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[1817] 0s passed
[1818] subSeqSingleton2EQ, subSeqSingleton2EQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) \find(seqSub(EQ,l,u)) \replacewith(seqConcat(seqSub(seqEmpty,if-then-else(lt(l,Z(0(#))),l,Z(0(#))),if-then-else(lt(u,Z(0(#))),u,Z(0(#)))),seqConcat(if-then-else(and(leq(l,Z(0(#))),geq(u,Z(1(#)))),seqSingleton(x),seqEmpty),seqSub(seqEmpty,if-then-else(gt(l,Z(0(#))),l,Z(1(#))),if-then-else(gt(u,Z(0(#))),u,Z(1(#))))))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} testEquality(String, String)[1818] 0.001s passed
[1819] subSeqSingletonEQ, subSeqSingletonEQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) \find(seqSub(EQ,Z(0(#)),Z(1(#)))) \replacewith(seqSingleton(x)) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1819] 0s passed
[181] assignmentMultiplicationFloat, assignmentMultiplicationFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0*#seFloat1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaMulFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[181] 0.001s passed
[1820] subSeqTailEQL, subSeqTailEQL { \assumes ([equals(seqLen(seq),EQ)]==>[]) \find(seqSub(seqConcat(seqSingleton(x),seq),Z(1(#)),add(Z(1(#)),EQ))) \sameUpdateLevel\replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1820] 0.001s passed
[1821] subSeqTailEQR, subSeqTailEQR { \assumes ([equals(seqLen(seq),EQ)]==>[]) \find(seqSub(seqConcat(seqSingleton(x),seq),Z(1(#)),add(EQ,Z(1(#))))) \sameUpdateLevel\replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1821] 0.006s passed
[1822] subSeqTailL, subSeqTailL { \find(seqSub(seqConcat(seqSingleton(x),seq),Z(1(#)),add(Z(1(#)),seqLen(seq)))) \replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1822] 0.001s passed
[1823] subSeqTailR, subSeqTailR { \find(seqSub(seqConcat(seqSingleton(x),seq),Z(1(#)),add(seqLen(seq),Z(1(#))))) \replacewith(seq) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[1823] 0s passed
[1824] sub_equations_left, sub_equations_left { \assumes ([equals(i,i0)]==>[]) \find(equals(j,j0)==>) \add [equals(sub(j,i),sub(j0,i0))]==>[] Choices: true} testEquality(String, String)[1824] 0s passed
[1825] sub_equations_right, sub_equations_right { \assumes ([equals(i,i0)]==>[]) \find(==>equals(j,j0)) \add []==>[equals(sub(j,i),sub(j0,i0))] Choices: true} testEquality(String, String)[1825] 0.001s passed
[1826] sub_literals, sub_literals { \find(sub(Z(iz),Z(jz))) \replacewith(#sub(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1826] 0s passed
[1827] sub_sub_elim, sub_sub_elim { \find(neg(neg(i))) \replacewith(i) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1827] 0s passed
[1828] sub_zero_1, sub_zero_1 { \find(Z(neglit(0(#)))) \replacewith(Z(0(#))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1828] 0.001s passed
[1829] sub_zero_2, sub_zero_2 { \find(sub(i,Z(0(#)))) \replacewith(i) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1829] 0s passed
[182] assignmentMultiplicationFloatStrictFP, assignmentMultiplicationFloatStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0*#seFloat1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(mulFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[182] 0.001s passed
[1830] subsetOfEmpty, subsetOfEmpty { \find(subset(s,empty)) \replacewith(equals(s,empty)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1830] 0s passed
[1831] subsetOfIntersectWithItSelf1, subsetOfIntersectWithItSelf1 { \find(subset(s,intersect(s,s2))) \replacewith(subset(s,s2)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1831] 0.001s passed
[1832] subsetOfIntersectWithItSelf2, subsetOfIntersectWithItSelf2 { \find(subset(s,intersect(s2,s))) \replacewith(subset(s,s2)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1832] 0s passed
[1833] subsetOfIntersectWithItSelfEQ1, subsetOfIntersectWithItSelfEQ1 { \assumes ([equals(intersect(s,s2),EQ)]==>[]) \find(subset(s,EQ)) \sameUpdateLevel\replacewith(subset(s,s2)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1833] 0.001s passed
[1834] subsetOfIntersectWithItSelfEQ2, subsetOfIntersectWithItSelfEQ2 { \assumes ([equals(intersect(s2,s),EQ)]==>[]) \find(subset(s,EQ)) \sameUpdateLevel\replacewith(subset(s,s2)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1834] 0s passed
[1835] subsetOfItself, subsetOfItself { \find(subset(s,s)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1835] 0s passed
[1836] subsetOfUnionWithItSelf1, subsetOfUnionWithItSelf1 { \find(subset(s,union(s,s2))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1836] 0.001s passed
[1837] subsetOfUnionWithItSelf2, subsetOfUnionWithItSelf2 { \find(subset(s,union(s2,s))) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1837] 0s passed
[1838] subsetOfUnionWithItSelfEQ1, subsetOfUnionWithItSelfEQ1 { \assumes ([equals(union(s,s2),EQ)]==>[]) \find(subset(s,EQ)) \sameUpdateLevel\replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1838] 0s passed
[1839] subsetOfUnionWithItSelfEQ2, subsetOfUnionWithItSelfEQ2 { \assumes ([equals(union(s2,s),EQ)]==>[]) \find(subset(s,EQ)) \sameUpdateLevel\replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1839] 0.001s passed
[183] assignmentMultiplicationInt, assignmentMultiplicationInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0*#seCharByteShortInt1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaMulInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[183] 0.001s passed
[1840] subsetSingletonLeft, subsetSingletonLeft { \find(subset(singleton(o,f),s)) \replacewith(elementOf(o,f,s)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1840] 0s passed
[1841] subsetSingletonLeftEQ, subsetSingletonLeftEQ { \assumes ([equals(singleton(o,f),EQ)]==>[]) \find(subset(EQ,s)) \sameUpdateLevel\replacewith(elementOf(o,f,s)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1841] 0.016s passed
[1842] subsetSingletonRight, subsetSingletonRight { \find(subset(s,singleton(o,f))) \replacewith(or(equals(s,empty),equals(s,singleton(o,f)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1842] 0.001s passed
[1843] subsetSingletonRightEQ, subsetSingletonRightEQ { \assumes ([equals(singleton(o,f),EQ)]==>[]) \find(subset(s,EQ)) \sameUpdateLevel\replacewith(or(equals(s,empty),equals(s,singleton(o,f)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1843] 0.001s passed
[1844] subsetToElementOf, subsetToElementOf { \find(subset(s,s2)) \varcond(\notFreeIn(fv (variable), s2 (LocSet term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), s2 (LocSet term)), \notFreeIn(ov (variable), s (LocSet term))) \replacewith(all{ov (variable)}(all{fv (variable)}(imp(elementOf(ov,fv,s),elementOf(ov,fv,s2))))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[1844] 0.001s passed
[1845] subsetToElementOfRight, subsetToElementOfRight { \find(==>subset(s,s2)) \varcond(\notFreeIn(fv (variable), s2 (LocSet term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), s2 (LocSet term)), \notFreeIn(ov (variable), s (LocSet term))) \replacewith([]==>[all{ov (variable)}(all{fv (variable)}(imp(elementOf(ov,fv,s),elementOf(ov,fv,s2))))]) \heuristics(setEqualityBlastingRight) Choices: programRules:Java} testEquality(String, String)[1845] 0s passed
[1846] subsetUnionLeft, subsetUnionLeft { \find(subset(union(s,s2),s3)) \replacewith(and(subset(s,s3),subset(s2,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1846] 0.001s passed
[1847] subsetUnionLeftEQ, subsetUnionLeftEQ { \assumes ([equals(union(s,s2),EQ)]==>[]) \find(subset(EQ,s3)) \sameUpdateLevel\replacewith(and(subset(s,s3),subset(s2,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1847] 0.001s passed
[1848] subsetWithAllLocs, subsetWithAllLocs { \find(subset(s,allLocs)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1848] 0.001s passed
[1849] subsetWithAllLocs2, subsetWithAllLocs2 { \find(subset(allLocs,s)) \replacewith(equals(s,allLocs)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1849] 0s passed
[184] assignmentMultiplicationLong, assignmentMultiplicationLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt*#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaMulLong(#seCharByteShortInt,#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[184] 0s passed
[1850] subsetWithEmpty, subsetWithEmpty { \find(subset(empty,s)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1850] 0.001s passed
[1851] subsetWithSetMinusLeft, subsetWithSetMinusLeft { \find(subset(setMinus(s,s2),s3)) \replacewith(subset(s,union(s2,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1851] 0s passed
[1852] subsetWithSetMinusLeftEQ, subsetWithSetMinusLeftEQ { \assumes ([equals(setMinus(s,s2),EQ)]==>[]) \find(subset(EQ,s3)) \sameUpdateLevel\replacewith(subset(s,union(s2,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1852] 0.001s passed
[1853] subst_to_eq, subst_to_eq { \find(subst{u (variable)}(t,target)) \sameUpdateLevel\add [equals(sk,t)]==>[] \replacewith(subst{u (variable)}(sk,target)) \heuristics(simplify) Choices: true} testEquality(String, String)[1853] 0s passed
[1854] subst_to_eq_for, subst_to_eq_for { \find(subst{u (variable)}(t,phi)) \sameUpdateLevel\add [equals(sk,t)]==>[] \replacewith(subst{u (variable)}(sk,phi)) \heuristics(simplify) Choices: true} testEquality(String, String)[1854] 0s passed
[1855] substringSubstring, substringSubstring { \find(seqSub(seqSub(str,innerStartIdx,innerEndIdx),outerStartIdx,outerEndIdx)) \sameUpdateLevel\add [imp(and(and(and(and(and(geq(innerStartIdx,Z(0(#))),geq(innerEndIdx,innerStartIdx)),leq(innerEndIdx,seqLen(str))),geq(outerStartIdx,Z(0(#)))),geq(outerEndIdx,outerStartIdx)),leq(outerEndIdx,sub(innerEndIdx,innerStartIdx))),and(equals(seqSub(seqSub(str,innerStartIdx,innerEndIdx),outerStartIdx,outerEndIdx),newSym),equals(seqSub(str,add(outerStartIdx,innerStartIdx),add(innerStartIdx,outerEn… testEquality(String, String)[1855] 0s passed
[1856] substringSubstring2, substringSubstring2 { \assumes ([equals(seqSub(str,innerStartIdx,innerEndIdx),innerSub)]==>[]) \find(seqSub(innerSub,outerStartIdx,outerEndIdx)) \sameUpdateLevel\add [imp(and(and(and(and(and(geq(innerStartIdx,Z(0(#))),geq(innerEndIdx,innerStartIdx)),leq(innerEndIdx,seqLen(str))),geq(outerStartIdx,Z(0(#)))),geq(outerEndIdx,outerStartIdx)),leq(outerEndIdx,sub(innerEndIdx,innerStartIdx))),and(equals(seqSub(innerSub,outerStartIdx,outerEndIdx),newSym),equals(seqSub(str,add(outerStartIdx,innerStartIdx),add(inne… testEquality(String, String)[1856] 0.001s passed
[1857] sum_empty, sum_empty { \find(sum{x (variable)}(FALSE,t)) \replacewith(Z(0(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[1857] 0s passed
[1858] sum_zero, sum_zero { \find(sum{x (variable)}(range,Z(0(#)))) \replacewith(Z(0(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[1858] 0s passed
[1859] swapQuantifiersAll, swapQuantifiersAll { \find(all{u (variable)}(all{v (variable)}(phi))) \replacewith(all{v (variable)}(all{u (variable)}(phi))) \heuristics(swapQuantifiers) Choices: true} testEquality(String, String)[1859] 0.001s passed
[185] assignmentMultiplicationLong2, assignmentMultiplicationLong2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong*#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaMulLong(#seLong,#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[185] 0.001s passed
[1860] swapQuantifiersEx, swapQuantifiersEx { \find(exists{u (variable)}(exists{v (variable)}(phi))) \replacewith(exists{v (variable)}(exists{u (variable)}(phi))) \heuristics(swapQuantifiers) Choices: true} testEquality(String, String)[1860] 0s passed
[1861] switch, switch { \find(#allmodal ( (modal operator))\[{ .. #sw ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. switch-to-if(#sw) ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1861] 0s passed
[1862] switch_brackets, switch_brackets { \find(add(add(i,i0),i1)) \replacewith(add(i,add(i0,i1))) Choices: true} testEquality(String, String)[1862] 0.001s passed
[1863] switch_params, switch_params { \find(add(i0,i1)) \replacewith(add(i1,i0)) Choices: true} testEquality(String, String)[1863] 0.001s passed
[1864] synchronizedBlockEmpty, synchronizedBlockEmpty { \find(==>#allmodal ( (modal operator))\[{ .. synchronized(#se) {} ... }\] (post)) \varcond(\isLocalVariable (#se (program SimpleExpression)), ) \replacewith([]==>[not(equals(#se,null))]) ; \replacewith([]==>[#allmodal(post)]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[1864] 0s passed
[1865] synchronizedBlockEmpty2, synchronizedBlockEmpty2 { \find(#allmodal ( (modal operator))\[{ .. synchronized(#cr) {} ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1865] 0s passed
[1866] synchronizedBlockEvalSync, synchronizedBlockEvalSync { \find(#allmodal ( (modal operator))\[{ .. synchronized(#nsencr) {#slist} ... }\] (post)) \varcond(\new(#loc (program Variable), \typeof(#nsencr (program NonSimpleExpressionNoClassReference))), \isLocalVariable (#nsencr (program NonSimpleExpressionNoClassReference)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nsencr) #loc = #nsencr;synchronized(#loc) {#slist} ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1866] 0s passed
[1867] tanIsNaN, tanIsNaN { \find(tanDouble(arg)) \add [imp(or(doubleIsNaN(arg),doubleIsInfinite(arg)),doubleIsNaN(tanDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1867] 0s passed
[1868] tanIsZero, tanIsZero { \find(tanDouble(arg)) \add [imp(equals(arg,DFP(0(#))),equals(tanDouble(arg),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[1868] 0.001s passed
[1869] theorem_of_archimedes, theorem_of_archimedes { \assumes ([gt(i0,sub(i1,Z(1(#))))]==>[]) \find(lt(i0,i1)==>) \replacewith([false]==>[]) Choices: true} testEquality(String, String)[1869] 0s passed
[186] assignmentMultiplicationLong3, assignmentMultiplicationLong3 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0*#seLong1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaMulLong(#seLong0,#seLong1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[186] 0.001s passed
[1870] throwBox, throwBox { \find(#box ( (modal operator))\[{throw #se;#slist}\] (post)) \replacewith(true) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1870] 0s passed
[1871] throwDiamond, throwDiamond { \find(#diamond ( (modal operator))\[{throw #se;#slist}\] (post)) \replacewith(false) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1871] 0.001s passed
[1872] throwLabel, throwLabel { \find(#allmodal ( (modal operator))\[{ .. #lb:throw #se; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. throw #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1872] 0s passed
[1873] throwLabelBlock, throwLabelBlock { \find(#allmodal ( (modal operator))\[{ .. #lb: {throw #se;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. throw #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1873] 0s passed
[1874] throwNull, throwNull { \find(#allmodal ( (modal operator))\[{ .. throw null; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. throw new java.lang.NullPointerException (); ... }\] (post)) Choices: programRules:Java} testEquality(String, String)[1874] 0.001s passed
[1875] throwUnfold, throwUnfold { \find(#allmodal ( (modal operator))\[{ .. throw #nse; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;throw #v0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1875] 0s passed
[1876] throwUnfoldMore, throwUnfoldMore { \find(#allmodal ( (modal operator))\[{ .. throw #se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#se (program SimpleExpression))), \isLocalVariable (#se (program SimpleExpression)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#se) #v0 = #se;throw #v0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1876] 0s passed
[1877] times_minus_one_1, times_minus_one_1 { \find(mul(i,Z(neglit(1(#))))) \replacewith(neg(i)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1877] 0.001s passed
[1878] times_minus_one_2, times_minus_one_2 { \find(mul(Z(neglit(1(#))),i)) \replacewith(neg(i)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1878] 0.001s passed
[1879] times_one_1, times_one_1 { \find(mul(i,Z(1(#)))) \replacewith(i) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1879] 0s passed
[187] assignmentShiftLeftInt, assignmentShiftLeftInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0<<#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaShiftLeftInt(#seCharByteShortInt0,#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[187] 0.001s passed
[1880] times_one_2, times_one_2 { \find(mul(Z(1(#)),i)) \replacewith(i) \heuristics(simplify_int) Choices: true} testEquality(String, String)[1880] 0s passed
[1881] times_zero_1, times_zero_1 { \find(mul(i,Z(0(#)))) \replacewith(Z(0(#))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1881] 0.001s passed
[1882] times_zero_2, times_zero_2 { \find(mul(Z(0(#)),i)) \replacewith(Z(0(#))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[1882] 0s passed
[1883] translate#, translate# { \find(clTranslateInt(Z(#))) \replacewith(seqEmpty) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1883] 0s passed
[1884] translate0, translate0 { \find(clTranslateInt(Z(0(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(8(4(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1884] 0s passed
[1885] translate1, translate1 { \find(clTranslateInt(Z(1(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(9(4(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1885] 0s passed
[1886] translate2, translate2 { \find(clTranslateInt(Z(2(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(0(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1886] 0.001s passed
[1887] translate3, translate3 { \find(clTranslateInt(Z(3(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(1(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1887] 0.001s passed
[1888] translate4, translate4 { \find(clTranslateInt(Z(4(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(2(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1888] 0s passed
[1889] translate5, translate5 { \find(clTranslateInt(Z(5(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(3(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1889] 0.001s passed
[188] assignmentShiftLeftLong, assignmentShiftLeftLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0<<#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaShiftLeftLong(#seLong0,#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[188] 0.001s passed
[1890] translate6, translate6 { \find(clTranslateInt(Z(6(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(4(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1890] 0s passed
[1891] translate7, translate7 { \find(clTranslateInt(Z(7(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(5(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1891] 0s passed
[1892] translate8, translate8 { \find(clTranslateInt(Z(8(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(6(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1892] 0.001s passed
[1893] translate9, translate9 { \find(clTranslateInt(Z(9(iz)))) \replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(7(5(#)))))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1893] 0.001s passed
[1894] translateCheckedAddInt, translateCheckedAddInt { \find(checkedAddInt(left,right)) \replacewith(add(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1894] 0s passed
[1895] translateCheckedAddLong, translateCheckedAddLong { \find(checkedAddLong(left,right)) \replacewith(add(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1895] 0s passed
[1896] translateCheckedBitwiseAndInt, translateCheckedBitwiseAndInt { \find(checkedBitwiseAndInt(left,right)) \replacewith(binaryAnd(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1896] 0.001s passed
[1897] translateCheckedBitwiseAndLong, translateCheckedBitwiseAndLong { \find(checkedBitwiseAndLong(left,right)) \replacewith(binaryAnd(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1897] 0s passed
[1898] translateCheckedBitwiseNegation, translateCheckedBitwiseNegation { \find(checkedBitwiseNegation(left)) \replacewith(sub(neg(left),Z(1(#)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1898] 0.001s passed
[1899] translateCheckedBitwiseOrInt, translateCheckedBitwiseOrInt { \find(checkedBitwiseOrInt(left,right)) \replacewith(binaryOr(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1899] 0s passed
[189] assignmentShiftRightInt, assignmentShiftRightInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0>>#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaShiftRightInt(#seCharByteShortInt0,#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[189] 0.001s passed
[18] activeUseShiftLeft, activeUseShiftLeft { \find(#allmodal ( (modal operator))\[{ .. #sv=#left<<#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left<<#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[18] 0.001s passed
[1900] translateCheckedBitwiseOrLong, translateCheckedBitwiseOrLong { \find(checkedBitwiseOrLong(left,right)) \replacewith(binaryOr(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1900] 0s passed
[1901] translateCheckedBitwiseXOrInt, translateCheckedBitwiseXOrInt { \find(checkedBitwiseXOrInt(left,right)) \replacewith(binaryXOr(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1901] 0.001s passed
[1902] translateCheckedBitwiseXOrLong, translateCheckedBitwiseXOrLong { \find(checkedBitwiseXOrLong(left,right)) \replacewith(binaryXOr(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1902] 0s passed
[1903] translateCheckedDivInt, translateCheckedDivInt { \find(checkedDivInt(left,right)) \replacewith(jdiv(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1903] 0s passed
[1904] translateCheckedDivLong, translateCheckedDivLong { \find(checkedDivLong(left,right)) \replacewith(jdiv(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1904] 0.001s passed
[1905] translateCheckedMulInt, translateCheckedMulInt { \find(checkedMulInt(left,right)) \replacewith(mul(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1905] 0.001s passed
[1906] translateCheckedMulLong, translateCheckedMulLong { \find(checkedMulLong(left,right)) \replacewith(mul(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1906] 0s passed
[1907] translateCheckedShiftLeftInt, translateCheckedShiftLeftInt { \find(checkedShiftLeftInt(left,right)) \replacewith(shiftleft(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1907] 0.001s passed
[1908] translateCheckedShiftLeftLong, translateCheckedShiftLeftLong { \find(checkedShiftLeftLong(left,right)) \replacewith(shiftleft(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1908] 0s passed
[1909] translateCheckedShiftRightInt, translateCheckedShiftRightInt { \find(checkedShiftRightInt(left,right)) \replacewith(shiftright(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1909] 0s passed
[190] assignmentShiftRightLong, assignmentShiftRightLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0>>#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaShiftRightLong(#seLong0,#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[190] 0.001s passed
[1910] translateCheckedShiftRightLong, translateCheckedShiftRightLong { \find(checkedShiftRightLong(left,right)) \replacewith(shiftright(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1910] 0.001s passed
[1911] translateCheckedSubInt, translateCheckedSubInt { \find(checkedSubInt(left,right)) \replacewith(sub(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1911] 0s passed
[1912] translateCheckedSubLong, translateCheckedSubLong { \find(checkedSubLong(left,right)) \replacewith(sub(left,right)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1912] 0s passed
[1913] translateCheckedUnaryMinusInt, translateCheckedUnaryMinusInt { \find(checkedUnaryMinusInt(left)) \replacewith(neg(left)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1913] 0.001s passed
[1914] translateCheckedUnaryMinusLong, translateCheckedUnaryMinusLong { \find(checkedUnaryMinusLong(left)) \replacewith(neg(left)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1914] 0s passed
[1915] translateJavaAddInt, translateJavaAddInt { \find(javaAddInt(left,right)) \replacewith(add(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1915] 0.001s passed
[1916] translateJavaAddLong, translateJavaAddLong { \find(javaAddLong(left,right)) \replacewith(add(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1916] 0s passed
[1917] translateJavaCastByte, translateJavaCastByte { \find(javaCastByte(left)) \replacewith(left) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1917] 0s passed
[1918] translateJavaCastChar, translateJavaCastChar { \find(javaCastChar(left)) \replacewith(left) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1918] 0.001s passed
[1919] translateJavaCastInt, translateJavaCastInt { \find(javaCastInt(left)) \replacewith(left) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1919] 0.001s passed
[191] assignmentSubtractionBigint1, assignmentSubtractionBigint1 { \find(#allmodal ( (modal operator))\[{ .. #loc=#seBigint-#seAny; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(sub(#seBigint,#seAny)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[191] 0.002s passed
[1920] translateJavaCastLong, translateJavaCastLong { \find(javaCastLong(left)) \replacewith(left) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1920] 0s passed
[1921] translateJavaCastShort, translateJavaCastShort { \find(javaCastShort(left)) \replacewith(left) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1921] 0.004s passed
[1922] translateJavaDivInt, translateJavaDivInt { \find(javaDivInt(left,right)) \replacewith(jdiv(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1922] 0.001s passed
[1923] translateJavaDivLong, translateJavaDivLong { \find(javaDivLong(left,right)) \replacewith(jdiv(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1923] 0s passed
[1924] translateJavaMod, translateJavaMod { \find(javaMod(left,right)) \replacewith(jmod(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1924] 0s passed
[1925] translateJavaMulInt, translateJavaMulInt { \find(javaMulInt(left,right)) \replacewith(mul(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1925] 0.001s passed
[1926] translateJavaMulLong, translateJavaMulLong { \find(javaMulLong(left,right)) \replacewith(mul(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1926] 0s passed
[1927] translateJavaSubInt, translateJavaSubInt { \find(javaSubInt(left,right)) \replacewith(sub(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1927] 0s passed
[1928] translateJavaSubLong, translateJavaSubLong { \find(javaSubLong(left,right)) \replacewith(sub(left,right)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1928] 0.001s passed
[1929] translateJavaUnaryMinusInt, translateJavaUnaryMinusInt { \find(javaUnaryMinusInt(left)) \replacewith(neg(left)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1929] 0s passed
[192] assignmentSubtractionBigint2, assignmentSubtractionBigint2 { \find(#allmodal ( (modal operator))\[{ .. #loc=#seAny-#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(sub(#seAny,#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[192] 0s passed
[1930] translateJavaUnaryMinusLong, translateJavaUnaryMinusLong { \find(javaUnaryMinusLong(left)) \replacewith(neg(left)) \heuristics(simplify, javaIntegerSemantics) Choices: (programRules:Java & intRules:arithmeticSemanticsIgnoringOF)} testEquality(String, String)[1930] 0.001s passed
[1931] translateNegLit, translateNegLit { \find(clTranslateInt(Z(neglit(iz)))) \replacewith(seqConcat(seqSingleton(C(5(4(#)))),clTranslateInt(Z(iz)))) \heuristics(integerToString) Choices: Strings:on} testEquality(String, String)[1931] 0s passed
[1932] true_left, true_left { \find(true==>) \replacewith([]==>[]) \heuristics(concrete) Choices: true} testEquality(String, String)[1932] 0s passed
[1933] true_to_not_false, true_to_not_false { \find(equals(bo,TRUE)) \replacewith(not(equals(bo,FALSE))) Choices: true} testEquality(String, String)[1933] 0.001s passed
[1934] tryBreak, tryBreak { \find(#allmodal ( (modal operator))\[{ .. try {break ; #slist } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. break ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1934] 0s passed
[1935] tryBreakLabel, tryBreakLabel { \find(#allmodal ( (modal operator))\[{ .. try {break ; #slist } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. break ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1935] 0.009s passed
[1936] tryCatchFinallyThrow, tryCatchFinallyThrow { \find(#allmodal ( (modal operator))\[{ .. try {throw #se;#slist} catch (#t #v0) { #slist1 } #cs finally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#se==null) { try { throw new java.lang.NullPointerException (); } catch (#t #v0) { #slist1 } #cs finally { #slist2 } } else if (#se instanceof #t) { … testEquality(String, String)[1936] 0.001s passed
[1937] tryCatchThrow, tryCatchThrow { \find(#allmodal ( (modal operator))\[{ .. try {throw #se;#slist} catch (#t #v0) { #slist1 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#se==null) { try { throw new java.lang.NullPointerException (); } catch (#t #v0) { #slist1 } } else if (#se instanceof #t) { #t #v0; #v0=(#t)#se; #slist1 } else { throw #se; } ... }\] (post)) \heu… testEquality(String, String)[1937] 0.002s passed
[1938] tryEmpty, tryEmpty { \find(#allmodal ( (modal operator))\[{ .. try {}#cs ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1938] 0.001s passed
[1939] tryFinallyBreak, tryFinallyBreak { \find(#allmodal ( (modal operator))\[{ .. try {break ; #slist } #cs finally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist2}break ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1939] 0s passed
[193] assignmentSubtractionDouble, assignmentSubtractionDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0-#seDouble1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaSubDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[193] 0.001s passed
[1940] tryFinallyBreakLabel, tryFinallyBreakLabel { \find(#allmodal ( (modal operator))\[{ .. try {break ; #slist } #cs finally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist2}break ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1940] 0s passed
[1941] tryFinallyEmpty, tryFinallyEmpty { \find(#allmodal ( (modal operator))\[{ .. try {}#csfinally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist2} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1941] 0.001s passed
[1942] tryFinallyReturn, tryFinallyReturn { \find(#allmodal ( (modal operator))\[{ .. try {return #se;#slist}#csfinally { #slist2 } ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#se (program SimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#se) #v0 = #se; {#slist2}return #v0; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1942] 0s passed
[1943] tryFinallyReturnNoValue, tryFinallyReturnNoValue { \find(#allmodal ( (modal operator))\[{ .. try {return ;#slist}#csfinally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist2}return ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1943] 0s passed
[1944] tryFinallyThrow, tryFinallyThrow { \find(#allmodal ( (modal operator))\[{ .. try {throw #se;#slist}finally { #slist2 } ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#se (program SimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. if (#se==null) { { #slist2 } throw new java.lang.NullPointerException (); } else {#typeof (#se) #v0 = #se; { #slist2 } throw #v0; } ... }\] (post)) \heuristics(simplify_prog) Choice… testEquality(String, String)[1944] 0.001s passed
[1945] tryMultipleCatchThrow, tryMultipleCatchThrow { \find(#allmodal ( (modal operator))\[{ .. try {throw #se;#slist} catch (#t #v0) { #slist1 } catch (#t2 #v1) { #slist3 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#se==null) { try { throw new java.lang.NullPointerException (); } catch (#t #v0) { #slist1 } catch (#t2 #v1) { #slist3 } #cs } else if (#se instanceof #t) … testEquality(String, String)[1945] 0.001s passed
[1946] tryReturn, tryReturn { \find(#allmodal ( (modal operator))\[{ .. try {return #se;#slist}#cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. return #se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1946] 0.001s passed
[1947] tryReturnNoValue, tryReturnNoValue { \find(#allmodal ( (modal operator))\[{ .. try {return ;#slist}#cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. return ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1947] 0s passed
[1948] try_continue_1, try_continue_1 { \find(#allmodal ( (modal operator))\[{ .. try {continue ; #slist } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1948] 0s passed
[1949] try_continue_2, try_continue_2 { \find(#allmodal ( (modal operator))\[{ .. try {continue ; #slist } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1949] 0.001s passed
[194] assignmentSubtractionDoubleStrictFP, assignmentSubtractionDoubleStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seDouble0-#seDouble1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(subDouble(#seDouble0,#seDouble1)),#normalassign(post))) \heuristics(executeDoubleAssignment) Choices: programRules:Java} testEquality(String, String)[194] 0.002s passed
[1950] try_finally_continue_1, try_finally_continue_1 { \find(#allmodal ( (modal operator))\[{ .. try {continue ; #slist } #cs finally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist2}continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1950] 0s passed
[1951] try_finally_continue_2, try_finally_continue_2 { \find(#allmodal ( (modal operator))\[{ .. try {continue ; #slist } #cs finally { #slist2 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist2}continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1951] 0s passed
[1952] typeEq, typeEq { \find(equals(s,t1)==>) \add [equals(H::instance(s),TRUE),equals(G::instance(t1),TRUE)]==>[] Choices: true} testEquality(String, String)[1952] 0.001s passed
[1953] typeEqDerived, typeEqDerived { \assumes ([equals(s,t1)]==>[]) \find(H::instance(s)) \sameUpdateLevel\replacewith(TRUE) \heuristics(concrete, simplify) Choices: true} testEquality(String, String)[1953] 0s passed
[1954] typeEqDerived2, typeEqDerived2 { \assumes ([equals(s,t1)]==>[]) \find(G::instance(t1)) \sameUpdateLevel\replacewith(TRUE) \heuristics(concrete, simplify) Choices: true} testEquality(String, String)[1954] 0s passed
[1955] typeStatic, typeStatic { \find(s) \sameUpdateLevel\add [equals(G::instance(s),TRUE)]==>[] Choices: true} testEquality(String, String)[1955] 0.001s passed
[1956] unaryMinusBigint, unaryMinusBigint { \find(#allmodal ( (modal operator))\[{ .. #loc=-#seBigint; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(neg(#seBigint)),#allmodal(post))) \heuristics(executeIntegerAssignment) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[1956] 0s passed
[1957] unaryMinusDouble, unaryMinusDouble { \find(#normalassign ( (modal operator))\[{ .. #loc=-#seDouble; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaUnaryMinusDouble(#seDouble)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1957] 0s passed
[1958] unaryMinusFloat, unaryMinusFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=-#seFloat; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaUnaryMinusFloat(#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1958] 0.001s passed
[1959] unaryMinusInt, unaryMinusInt { \find(#normalassign ( (modal operator))\[{ .. #loc=-#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaUnaryMinusInt(#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1959] 0s passed
[195] assignmentSubtractionFloat, assignmentSubtractionFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0-#seFloat1; ... }\] (post)) \varcond(\not\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(javaSubFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[195] 0.001s passed
[1960] unaryMinusLong, unaryMinusLong { \find(#normalassign ( (modal operator))\[{ .. #loc=-#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaUnaryMinusLong(#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[1960] 0s passed
[1961] unionEqualsEmpty, unionEqualsEmpty { \find(equals(union(s,s2),empty)) \replacewith(and(equals(s,empty),equals(s2,empty))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1961] 0.001s passed
[1962] unionEqualsEmptyEQ, unionEqualsEmptyEQ { \assumes ([equals(union(s,s2),EQ)]==>[]) \find(equals(EQ,empty)) \sameUpdateLevel\replacewith(and(equals(s,empty),equals(s2,empty))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1962] 0s passed
[1963] unionIntersectItself, unionIntersectItself { \find(union(intersect(s1,s2),s1)) \replacewith(s1) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1963] 0s passed
[1964] unionIntersectItself_2, unionIntersectItself_2 { \find(union(intersect(s2,s1),s1)) \replacewith(s1) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1964] 0.001s passed
[1965] unionIntersectItself_3, unionIntersectItself_3 { \find(union(union(s,intersect(s1,s2)),s1)) \replacewith(union(s,s1)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1965] 0s passed
[1966] unionIntersectItself_4, unionIntersectItself_4 { \find(union(union(s,intersect(s2,s1)),s1)) \replacewith(union(s,s1)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1966] 0.001s passed
[1967] unionIntersectItself_5, unionIntersectItself_5 { \find(union(union(intersect(s1,s2),s),s1)) \replacewith(union(s,s1)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1967] 0s passed
[1968] unionIntersectItself_6, unionIntersectItself_6 { \find(union(union(intersect(s2,s1),s),s1)) \replacewith(union(s,s1)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1968] 0s passed
[1969] unionWithAllLocs, unionWithAllLocs { \find(union(allLocs,s)) \replacewith(allLocs) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1969] 0s passed
[196] assignmentSubtractionFloatStrictFP, assignmentSubtractionFloatStrictFP { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat0-#seFloat1; ... }\] (post)) \varcond(\isStrictFp, ) \replacewith(update-application(elem-update(#loc (program Variable))(subFloat(#seFloat0,#seFloat1)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[196] 0.001s passed
[1970] unionWithAllLocsRight, unionWithAllLocsRight { \find(union(s,allLocs)) \replacewith(allLocs) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1970] 0.001s passed
[1971] unionWithEmpty, unionWithEmpty { \find(union(empty,s)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1971] 0s passed
[1972] unionWithEmptyRight, unionWithEmptyRight { \find(union(s,empty)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1972] 0.001s passed
[1973] unionWithItself, unionWithItself { \find(union(s,s)) \replacewith(s) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1973] 0s passed
[1974] unionWithSingletonEqualsUnionWithSingleton, unionWithSingletonEqualsUnionWithSingleton { \find(equals(union(s1,singleton(o,f)),union(s2,singleton(o,f)))) \replacewith(equals(setMinus(s1,singleton(o,f)),setMinus(s2,singleton(o,f)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1974] 0s passed
[1975] unionWithSingletonEqualsUnionWithSingleton_2, unionWithSingletonEqualsUnionWithSingleton_2 { \find(equals(union(singleton(o,f),s1),union(singleton(o,f),s2))) \replacewith(equals(setMinus(s1,singleton(o,f)),setMinus(s2,singleton(o,f)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[1975] 0.001s passed
[1976] unsignedShiftRightJintDef, unsignedShiftRightJintDef { \find(unsignedshiftrightJint(left,right)) \replacewith(if-then-else(geq(left,Z(0(#))),shiftrightJint(left,right),addJint(shiftrightJint(left,right),shiftleftJint(Z(2(#)),sub(Z(1(3(#))),mod(right,Z(2(3(#))))))))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[1976] 0s passed
[1977] unusedLabel, unusedLabel { \find(#allmodal ( (modal operator))\[{ .. #lb:#s ... }\] (post)) \varcond(\not\freeLabelIn (#lb,#s), ) \replacewith(#allmodal ( (modal operator))\[{ .. #s ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[1977] 0.002s passed
[1978] unwindLoopScope, unwindLoopScope { \find(#allmodal ( (modal operator))\[{ .. while ( #nse ) #body ... }\] (post)) \varcond(\new(#x (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #x;loop-scope(#x) {if (#nse) { #body continue ; } else { break ; } } ... }\] (and(imp(equals(#x<<loopScopeIndex>>,TRUE),post),imp(equals(#x<<loopScopeIndex>>,FALSE),#allmodal ( (modal operator))\[{ .. #reattachLoopInvariant(wh… testEquality(String, String)[1978] 0.001s passed
[1979] variableDeclaration, variableDeclaration { \find(#allmodal ( (modal operator))\[{ .. #t #v0; ... }\] (post)) \addprogvars {#v0 (program Variable)} \replacewith(#allmodal(post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1979] 0.001s passed
[197] assignmentSubtractionInt, assignmentSubtractionInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0-#seCharByteShortInt1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaSubInt(#seCharByteShortInt0,#seCharByteShortInt1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[197] 0.001s passed
[1980] variableDeclarationAssign, variableDeclarationAssign { \find(#allmodal ( (modal operator))\[{ .. #t #v0 = #vi; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #t #v0;#v0=#vi; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1980] 0.001s passed
[1981] variableDeclarationFinal, variableDeclarationFinal { \find(#allmodal ( (modal operator))\[{ .. final#t #v0; ... }\] (post)) \addprogvars {#v0 (program Variable)} \replacewith(#allmodal(post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1981] 0s passed
[1982] variableDeclarationFinalAssign, variableDeclarationFinalAssign { \find(#allmodal ( (modal operator))\[{ .. final#t #v0 = #vi; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. final#t #v0;#v0=#vi; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1982] 0s passed
[1983] variableDeclarationGhost, variableDeclarationGhost { \find(#allmodal ( (modal operator))\[{ .. ghost#t #v0; ... }\] (post)) \addprogvars {#v0 (program Variable)} \replacewith(#allmodal(post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1983] 0.001s passed
[1984] variableDeclarationGhostAssign, variableDeclarationGhostAssign { \find(#allmodal ( (modal operator))\[{ .. ghost#t #v0 = #vi; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. ghost#t #v0;#v0=#vi; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1984] 0s passed
[1985] variableDeclarationMult, variableDeclarationMult { \find(#allmodal ( (modal operator))\[{ .. #multvardecl ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. multiple-var-decl(#multvardecl) ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[1985] 0s passed
[1986] wellFormedAnon, wellFormedAnon { \find(wellFormed(anon(h,s,h2))) \succedentPolarity\replacewith(and(wellFormed(h),wellFormed(h2))) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1986] 0.001s passed
[1987] wellFormedAnonEQ, wellFormedAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) \find(wellFormed(EQ)) \sameUpdateLevel\succedentPolarity\replacewith(and(wellFormed(h),wellFormed(h2))) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1987] 0s passed
[1988] wellFormedCreate, wellFormedCreate { \find(wellFormed(create(h,o))) \succedentPolarity\replacewith(wellFormed(h)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1988] 0s passed
[1989] wellFormedMemsetArrayObject, wellFormedMemsetArrayObject { \find(wellFormed(memset(h,arrayRange(ar,lo,up),x))) \succedentPolarity\varcond(\hasSort(\elemSort(ar (java.lang.Object term)), alpha), ) \replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::<created>),TRUE),arrayStoreValid(ar,x))))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1989] 0.001s passed
[198] assignmentSubtractionLong, assignmentSubtractionLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt-#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaSubLong(#seCharByteShortInt,#seLong)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[198] 0.001s passed
[1990] wellFormedMemsetArrayPrimitive, wellFormedMemsetArrayPrimitive { \find(wellFormed(memset(h,arrayRange(ar,lo,up),x))) \succedentPolarity\varcond(\hasSort(\elemSort(ar (java.lang.Object term)), alpha), \not\sub(beta, java.lang.Object), \not\sub(beta, LocSet), \sub(beta, alpha), ) \replacewith(wellFormed(h)) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1990] 0s passed
[1991] wellFormedStoreArray, wellFormedStoreArray { \find(wellFormed(store(h,o,arr(idx),x))) \succedentPolarity\varcond(\hasSort(\elemSort(o (java.lang.Object term)), alpha), ) \replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::<created>),TRUE),arrayStoreValid(o,x))))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1991] 0.001s passed
[1992] wellFormedStoreLocSet, wellFormedStoreLocSet { \find(wellFormed(store(h,o,f,x))) \succedentPolarity\varcond(\fieldType(f (Field term), alpha), \sub(LocSet, alpha), ) \replacewith(and(wellFormed(h),createdInHeap(x,h))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1992] 0.001s passed
[1993] wellFormedStoreLocSetEQ, wellFormedStoreLocSetEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) \find(wellFormed(EQ)) \sameUpdateLevel\succedentPolarity\replacewith(and(wellFormed(h),createdInHeap(x,h))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1993] 0s passed
[1994] wellFormedStoreObject, wellFormedStoreObject { \find(wellFormed(store(h,o,f,x))) \succedentPolarity\varcond(\fieldType(f (Field term), alpha), ) \replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::<created>),TRUE),equals(alpha::instance(x),TRUE))))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1994] 0.001s passed
[1995] wellFormedStoreObjectEQ, wellFormedStoreObjectEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) \find(wellFormed(EQ)) \sameUpdateLevel\succedentPolarity\varcond(\fieldType(f (Field term), alpha), ) \replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::<created>),TRUE),equals(alpha::instance(x),TRUE))))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[1995] 0.001s passed
[1996] wellFormedStorePrimitive, wellFormedStorePrimitive { \find(wellFormed(store(h,o,f,x))) \succedentPolarity\varcond(\fieldType(f (Field term), alpha), \not\sub(beta, java.lang.Object), \not\sub(beta, LocSet), \sub(beta, alpha), ) \replacewith(wellFormed(h)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1996] 0s passed
[1997] wellFormedStorePrimitiveArray, wellFormedStorePrimitiveArray { \find(wellFormed(store(h,o,arr(idx),x))) \succedentPolarity\varcond(\hasSort(\elemSort(o (java.lang.Object term)), alpha), \not\sub(beta, java.lang.Object), \not\sub(beta, LocSet), \sub(beta, alpha), ) \replacewith(wellFormed(h)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1997] 0s passed
[1998] wellFormedStorePrimitiveEQ, wellFormedStorePrimitiveEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) \find(wellFormed(EQ)) \sameUpdateLevel\succedentPolarity\varcond(\not\sub(beta, java.lang.Object), \not\sub(beta, LocSet), ) \replacewith(wellFormed(h)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[1998] 0.001s passed
[1999] wideningCastIntToFloat, wideningCastIntToFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=(float)#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(float::cast(#seCharByteShortInt)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[1999] 0s passed
[199] assignmentSubtractionLong2, assignmentSubtractionLong2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong-#seCharByteShortInt; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaSubLong(#seLong,#seCharByteShortInt)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[199] 0.001s passed
[19] activeUseShiftRight, activeUseShiftRight { \find(#allmodal ( (modal operator))\[{ .. #sv=#left>>#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left>>#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[19] 0.001s passed
[1] abortJavaCardTransactionAPI, abortJavaCardTransactionAPI { \find(==>#allmodal ( (modal operator))\[{ .. #jcsystemType.#abortTransaction()@#jcsystemType; ... }\] (post)) \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #abortJavaCardTransaction; ... }\] (post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[1] 0.012s passed
[2000] wideningCastLongToFloat, wideningCastLongToFloat { \find(#normalassign ( (modal operator))\[{ .. #loc=(float)#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(float::cast(#seLong)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[2000] 0.001s passed
[2001] widening_identity_cast_1, widening_identity_cast_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(byte)#seByte; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seByte; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2001] 0s passed
[2002] widening_identity_cast_10, widening_identity_cast_10 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(long)#seByteShortInt; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seByteShortInt; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2002] 0s passed
[2003] widening_identity_cast_11, widening_identity_cast_11 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(long)#seLong; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seLong; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2003] 0.001s passed
[2004] widening_identity_cast_12, widening_identity_cast_12 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(int)#seChar; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seChar; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2004] 0s passed
[2005] widening_identity_cast_13, widening_identity_cast_13 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(long)#seChar; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seChar; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2005] 0s passed
[2006] widening_identity_cast_2, widening_identity_cast_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(short)#seByte; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seByte; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2006] 0.001s passed
[2007] widening_identity_cast_3, widening_identity_cast_3 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(char)#seChar; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seChar; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2007] 0s passed
[2008] widening_identity_cast_4, widening_identity_cast_4 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(short)#seShort; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seShort; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2008] 0s passed
[2009] widening_identity_cast_5, widening_identity_cast_5 { \find(#allmodal ( (modal operator))\[{ .. #lhs=(int)#seByteShortInt; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seByteShortInt; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[2009] 0.001s passed
[200] assignmentSubtractionLong3, assignmentSubtractionLong3 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0-#seLong1; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaSubLong(#seLong0,#seLong1)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[200] 0s passed
[2010] widening_identity_cast_bigint, widening_identity_cast_bigint { \find(#allmodal ( (modal operator))\[{ .. #lhs=(\bigint)#seAny; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#seAny; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & bigint:on)} testEquality(String, String)[2010] 0.001s passed
[2011] writePermission, writePermission { \find(writePermission(p)) \replacewith(writePermissionObject(currentThread,p)) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[2011] 0s passed
[2012] writePermissionObject, writePermissionObject { \find(writePermissionObject(o,p)) \replacewith(true) \heuristics(concrete) Choices: permissions:off} testEquality(String, String)[2012] 0.001s passed
[2013] xorJIntDef, xorJIntDef { \find(xorJint(left,right)) \replacewith(moduloInt(binaryXOr(left,right))) \heuristics(simplify) Choices: true} testEquality(String, String)[2013] 0s passed
[2014] zadd_left_cancel0, zadd_left_cancel0 { \find(equals(i0,add(i0,i1))) \replacewith(equals(i1,Z(0(#)))) Choices: true} testEquality(String, String)[2014] 0.001s passed
[2015] zero_leq_mult_iff, zero_leq_mult_iff { \find(leq(Z(0(#)),mul(i0,i1))) \replacewith(or(and(leq(Z(0(#)),i0),leq(Z(0(#)),i1)),and(leq(i0,Z(0(#))),leq(i1,Z(0(#)))))) Choices: true} testEquality(String, String)[2015] 0s passed
[2016] zero_less_mult_iff, zero_less_mult_iff { \find(lt(Z(0(#)),mul(i0,i1))) \replacewith(or(and(lt(Z(0(#)),i0),lt(Z(0(#)),i1)),and(lt(i0,Z(0(#))),lt(i1,Z(0(#)))))) Choices: true} testEquality(String, String)[2016] 0s passed
[201] assignmentUnsignedShiftRightInt, assignmentUnsignedShiftRightInt { \find(#normalassign ( (modal operator))\[{ .. #loc=#seCharByteShortInt0>>>#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaUnsignedShiftRightInt(#seCharByteShortInt0,#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[201] 0s passed
[202] assignmentUnsignedShiftRightLong, assignmentUnsignedShiftRightLong { \find(#normalassign ( (modal operator))\[{ .. #loc=#seLong0>>>#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaUnsignedShiftRightLong(#seLong0,#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[202] 0.001s passed
[203] assignment_array2, assignment_array2 { \find(==>#allmodal ( (modal operator))\[{ .. #v=#v0[#se]; ... }\] (post)) \varcond(\hasSort(\elemSort(#v0 (program Variable)), G), ) \add [and(not(equals(#v0,null)),or(leq(length(#v0),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v0,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(#v (program Variable))(G::select(heap,#v0,arr(#se))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRu… testEquality(String, String)[203] 0.001s passed
[204] assignment_read_attribute, assignment_read_attribute { \find(==>#allmodal ( (modal operator))\[{ .. #v0=#v.#a; ... }\] (post)) \varcond( \not \static(#a (program Variable)), \not \isArrayLength(#a (program Variable)), \hasSort(#a (program Variable), G), \not\isThisReference (#v (program Variable)), ) \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(#v0 (program Variable))(G::select(heap,#v,#memberPVToField(#a))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_… testEquality(String, String)[204] 0.001s passed
[205] assignment_read_attribute_this, assignment_read_attribute_this { \find(==>#allmodal ( (modal operator))\[{ .. #v0=#v.#a; ... }\] (post)) \varcond( \not \static(#a (program Variable)), \not \isArrayLength(#a (program Variable)), \hasSort(#a (program Variable), G), \isThisReference (#v (program Variable)), ) \replacewith([]==>[update-application(elem-update(#v0 (program Variable))(G::select(heap,#v,#memberPVToField(#a))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & runtimeExceptions:ba… testEquality(String, String)[205] 0.001s passed
[206] assignment_read_length, assignment_read_length { \find(==>#allmodal ( (modal operator))\[{ .. #v0=#v.#length; ... }\] (post)) \varcond(\not\isThisReference (#v (program Variable)), ) \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(#v0 (program Variable))(length(#v)),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[206] 0.001s passed
[207] assignment_read_length_this, assignment_read_length_this { \find(#allmodal ( (modal operator))\[{ .. #v0=#v.#length; ... }\] (post)) \sameUpdateLevel\varcond(\isThisReference (#v (program Variable)), ) \replacewith(update-application(elem-update(#v0 (program Variable))(length(#v)),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[207] 0.001s passed
[208] assignment_read_static_attribute, assignment_read_static_attribute { \find(#allmodal ( (modal operator))\[{ .. #v0=@(#sv); ... }\] (post)) \sameUpdateLevel\varcond(\hasSort(#sv (program StaticVariable), G), ) \replacewith(update-application(elem-update(#v0 (program Variable))(G::select(heap,null,#memberPVToField(#sv))),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[208] 0.001s passed
[209] assignment_read_static_attribute_with_variable_prefix, assignment_read_static_attribute_with_variable_prefix { \find(#allmodal ( (modal operator))\[{ .. #loc=@(#v.#sv); ... }\] (post)) \varcond(\hasSort(#sv (program StaticVariable), G), ) \replacewith(update-application(elem-update(#loc (program Variable))(G::select(heap,#v,#memberPVToField(#sv))),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[209] 0.001s passed
[20] activeUseShortCast, activeUseShortCast { \find(#allmodal ( (modal operator))\[{ .. #sv=(short)#seIntLong; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = (short)#seIntLong;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[20] 0.001s passed
[210] assignment_to_primitive_array_component, assignment_to_primitive_array_component { \find(==>#normal ( (modal operator))\[{ .. #v[#se]=#se0; ... }\] (post)) \varcond( \not \isReferenceArray(#v (program Variable)), ) \add [and(not(equals(#v,null)),or(leq(length(#v),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),#normal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRul… testEquality(String, String)[210] 0.001s passed
[211] assignment_to_primitive_array_component_transaction, assignment_to_primitive_array_component_transaction { \find(==>#transaction ( (modal operator))\[{ .. #v[#se]=#se0; ... }\] (post)) \varcond( \not \isReferenceArray(#v (program Variable)), ) \add [and(not(equals(#v,null)),or(leq(length(#v),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),update-application(elem-update(savedHeap)(if-then-else(equals(int::sel… testEquality(String, String)[211] 0.001s passed
[212] assignment_to_reference_array_component, assignment_to_reference_array_component { \find(==>#normal ( (modal operator))\[{ .. #v[#se]=#se0; ... }\] (post)) \varcond(\isReferenceArray(#v (program Variable)), ) \add [and(and(and(not(equals(#v,null)),lt(#se,length(#v))),geq(#se,Z(0(#)))),not(arrayStoreValid(#v,#se0)))]==>[] \replacewith([]==>[false]) ; \add [and(not(equals(#v,null)),or(leq(length(#v),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-applicatio… testEquality(String, String)[212] 0.001s passed
[213] assignment_to_reference_array_component_transaction, assignment_to_reference_array_component_transaction { \find(==>#transaction ( (modal operator))\[{ .. #v[#se]=#se0; ... }\] (post)) \varcond(\isReferenceArray(#v (program Variable)), ) \add [and(and(and(not(equals(#v,null)),lt(#se,length(#v))),geq(#se,Z(0(#)))),not(arrayStoreValid(#v,#se0)))]==>[] \replacewith([]==>[false]) ; \add [and(not(equals(#v,null)),or(leq(length(#v),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[… testEquality(String, String)[213] 0.001s passed
[214] assignment_write_array_this_access_normalassign, assignment_write_array_this_access_normalassign { \find(#allmodal ( (modal operator))\[{ .. this[#se]=#se0; ... }\] (post)) \replacewith(imp(and(lt(#se,length(#v)),lt(Z(neglit(1(#))),#se)),update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),#allmodal(post)))) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & permissions:off)} testEquality(String, String)[214] 0s passed
[215] assignment_write_attribute, assignment_write_attribute { \find(==>#allmodal ( (modal operator))\[{ .. #v.#a=#se; ... }\] (post)) \varcond( \not \static(#a (program Variable)), \not\isThisReference (#v (program Variable)), ) \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,#memberPVToField(#a),#se)),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[215] 0.001s passed
[216] assignment_write_attribute_this, assignment_write_attribute_this { \find(==>#allmodal ( (modal operator))\[{ .. #v.#a=#se; ... }\] (post)) \varcond( \not \static(#a (program Variable)), \isThisReference (#v (program Variable)), ) \replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,#memberPVToField(#a),#se)),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} testEquality(String, String)[216] 0.001s passed
[217] assignment_write_static_attribute, assignment_write_static_attribute { \find(#allmodal ( (modal operator))\[{ .. @(#sv)=#se; ... }\] (post)) \replacewith(update-application(elem-update(heap)(store(heap,null,#memberPVToField(#sv),#se)),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[217] 0.001s passed
[218] assignment_write_static_attribute_with_variable_prefix, assignment_write_static_attribute_with_variable_prefix { \find(#allmodal ( (modal operator))\[{ .. @(#v.#sv)=#se; ... }\] (post)) \replacewith(update-application(elem-update(heap)(store(heap,#v,#memberPVToField(#sv),#se)),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[218] 0.001s passed
[219] associativeLawIntersect, associativeLawIntersect { \find(intersect(s1,intersect(s2,s3))) \replacewith(intersect(intersect(s1,s2),s3)) \heuristics(conjNormalForm) Choices: programRules:Java} testEquality(String, String)[219] 0s passed
[21] activeUseStaticFieldReadAccess, activeUseStaticFieldReadAccess { \find(#allmodal ( (modal operator))\[{ .. #lhs=#sv; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=@(#sv); ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[21] 0.003s passed
[220] associativeLawUnion, associativeLawUnion { \find(union(s1,union(s2,s3))) \replacewith(union(union(s1,s2),s3)) \heuristics(conjNormalForm) Choices: programRules:Java} testEquality(String, String)[220] 0s passed
[221] atan2IsNaN, atan2IsNaN { \find(atan2Double(arg1,arg2)) \add [imp(or(doubleIsNaN(arg1),doubleIsNaN(arg2)),doubleIsNaN(atan2Double(arg1,arg2)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[221] 0.001s passed
[222] atan2Range, atan2Range { \find(atan2Double(arg1,arg2)) \add [imp(and(not(doubleIsNaN(arg1)),not(doubleIsNaN(arg2))),and(geqDouble(atan2Double(arg1,arg2),negDouble(DFP(8(4(8(5(4(0(2(5(5(6(5(6(6(5(2(4(1(6(4(#)))))))))))))))))))))),leqDouble(atan2Double(arg1,arg2),DFP(8(4(8(5(4(0(2(5(5(6(5(6(6(5(2(4(1(6(4(#)))))))))))))))))))))))]==>[] Choices: true} testEquality(String, String)[222] 0.001s passed
[223] atanIsNaN, atanIsNaN { \find(atanDouble(arg)) \add [imp(doubleIsNaN(arg),doubleIsNaN(atanDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[223] 0s passed
[224] atanIsZero, atanIsZero { \find(atanDouble(arg)) \add [imp(equals(arg,DFP(0(#))),equals(atanDouble(arg),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[224] 0.001s passed
[225] atanRange, atanRange { \find(atanDouble(arg)) \add [imp(not(doubleIsNaN(arg)),and(geqDouble(atanDouble(arg),negDouble(DFP(2(5(3(5(7(6(4(2(9(6(5(0(3(5(7(9(0(6(4(#)))))))))))))))))))))),leqDouble(atanDouble(arg),DFP(2(5(3(5(7(6(4(2(9(6(5(0(3(5(7(9(0(6(4(#)))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[225] 0.001s passed
[226] autoInductGEQ_Lemma_1, autoInductGEQ_Lemma_1 { \find(==>and(all{uSub (variable)}(imp(leq(t,uSub),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(leq(t,uSub),b))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,b),true)]) \heuristics(induction_var, auto_induction_lemma) Choices: integerSimplificationRul… testEquality(String, String)[226] 0.003s passed
[227] autoInductGEQ_Lemma_2, autoInductGEQ_Lemma_2 { \find(==>and(all{uSub (variable)}(or(gt(t,uSub),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(leq(t,uSub),b))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,b),true)]) \heuristics(induction_var, auto_induction_lemma) Choices: integerSimplificationRules… testEquality(String, String)[227] 0.001s passed
[228] autoInductGEQ_Lemma_3, autoInductGEQ_Lemma_3 { \find(==>and(all{uSub (variable)}(or(lt(uSub,t),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(leq(t,uSub),b))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,b),true)]) \heuristics(induction_var, auto_induction_lemma) Choices: integerSimplificationRules… testEquality(String, String)[228] 0.001s passed
[229] autoInductGEQ_Lemma_5, autoInductGEQ_Lemma_5 { \find(==>and(all{uSub (variable)}(or(or(gt(t,uSub),psi),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(leq(t,uSub),or(psi,b)))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,or(psi,b)),true)]) \heuristics(induction_var, auto_induction_le… testEquality(String, String)[229] 0.001s passed
[22] activeUseStaticFieldReadAccess2, activeUseStaticFieldReadAccess2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#v.#sv; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=@(#sv); ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[22] 0.001s passed
[230] autoInductGEQ_Lemma_6, autoInductGEQ_Lemma_6 { \find(==>and(all{uSub (variable)}(or(or(lt(uSub,t),psi),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(leq(t,uSub),or(psi,b)))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,or(psi,b)),true)]) \heuristics(induction_var, auto_induction_le… testEquality(String, String)[230] 0.001s passed
[231] autoInductGT_Lemma_1, autoInductGT_Lemma_1 { \find(==>and(all{uSub (variable)}(imp(lt(t,uSub),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(lt(t,uSub),b))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),b),true)]) \heuristics(induction_var, auto_induction_lemma) Choices: integerSimplif… testEquality(String, String)[231] 0.001s passed
[232] autoInductGT_Lemma_2, autoInductGT_Lemma_2 { \find(==>and(all{uSub (variable)}(or(geq(t,uSub),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(lt(t,uSub),b))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),b),true)]) \heuristics(induction_var, auto_induction_lemma) Choices: integerSimplif… testEquality(String, String)[232] 0.001s passed
[233] autoInductGT_Lemma_3, autoInductGT_Lemma_3 { \find(==>and(all{uSub (variable)}(or(leq(uSub,t),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(lt(t,uSub),b))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),b),true)]) \heuristics(induction_var, auto_induction_lemma) Choices: integerSimplif… testEquality(String, String)[233] 0.001s passed
[234] autoInductGT_Lemma_5, autoInductGT_Lemma_5 { \find(==>and(all{uSub (variable)}(or(or(geq(t,uSub),psi),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(lt(t,uSub),or(psi,b)))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),or(psi,b)),true)]) \heuristics(auto_induction_lemma… testEquality(String, String)[234] 0.001s passed
[235] autoInductGT_Lemma_6, autoInductGT_Lemma_6 { \find(==>and(all{uSub (variable)}(or(or(leq(uSub,t),psi),b)),phi)) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([all{uSub (variable)}(imp(lt(t,uSub),or(psi,b)))]==>[phi]) ; \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),or(psi,b)),true)]) \heuristics(induction_var, auto_… testEquality(String, String)[235] 0s passed
[236] autoInduct_Lemma, autoInduct_Lemma { \find(==>and(all{uSub (variable)}(b),phi)) \replacewith([all{uSub (variable)}(b)]==>[phi]) ; \replacewith([]==>[imp(and(leq(sk,Z(0(#))),subst{uSub (variable)}(sk,b)),subst{uSub (variable)}(sub(sk,Z(1(#))),b))]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(sk,b)),subst{uSub (variable)}(add(sk,Z(1(#))),b))]) ; \replacewith([]==>[subst{uSub (variable)}(Z(0(#)),b)]) Choices: integerSimplificationRules:full} testEquality(String, String)[236] 0s passed
[237] auto_int_induction_geqZero, auto_int_induction_geqZero { \find(==>all{uSub (variable)}(b)) \replacewith([]==>[imp(and(leq(sk,Z(0(#))),subst{uSub (variable)}(sk,b)),subst{uSub (variable)}(sub(sk,Z(1(#))),b))]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(sk,b)),subst{uSub (variable)}(add(sk,Z(1(#))),b))]) ; \replacewith([]==>[subst{uSub (variable)}(Z(0(#)),b)]) Choices: integerSimplificationRules:full} testEquality(String, String)[237] 0.001s passed
[238] auto_int_induction_geqZeroLeft, auto_int_induction_geqZeroLeft { \find(exists{uSub (variable)}(b)==>) \replacewith([]==>[imp(and(leq(sk,Z(0(#))),subst{uSub (variable)}(sk,not(b))),subst{uSub (variable)}(sub(sk,Z(1(#))),not(b)))]) ; \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(sk,not(b))),subst{uSub (variable)}(add(sk,Z(1(#))),not(b)))]) ; \replacewith([]==>[subst{uSub (variable)}(Z(0(#)),not(b))]) Choices: integerSimplificationRules:full} testEquality(String, String)[238] 0.001s passed
[239] auto_int_induction_geq_1, auto_int_induction_geq_1 { \find(==>all{uSub (variable)}(imp(leq(t,uSub),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,b),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[239] 0.001s passed
[23] activeUseStaticFieldWriteAccess, activeUseStaticFieldWriteAccess { \find(#allmodal ( (modal operator))\[{ .. #sv=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[23] 0.001s passed
[240] auto_int_induction_geq_2, auto_int_induction_geq_2 { \find(==>all{uSub (variable)}(or(gt(t,uSub),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,b),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[240] 0.002s passed
[241] auto_int_induction_geq_3, auto_int_induction_geq_3 { \find(==>all{uSub (variable)}(or(lt(uSub,t),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,b),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[241] 0.001s passed
[242] auto_int_induction_geq_5, auto_int_induction_geq_5 { \find(==>all{uSub (variable)}(or(or(gt(t,uSub),psi),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,or(psi,b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[242] 0.001s passed
[243] auto_int_induction_geq_6, auto_int_induction_geq_6 { \find(==>all{uSub (variable)}(or(or(lt(uSub,t),psi),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,or(psi,b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[243] 0.001s passed
[244] auto_int_induction_geq_Left1, auto_int_induction_geq_Left1 { \find(exists{uSub (variable)}(and(leq(t,uSub),b))==>) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),not(b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),not(b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,not(b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[244] 0s passed
[245] auto_int_induction_geq_Left2, auto_int_induction_geq_Left2 { \find(exists{uSub (variable)}(and(geq(uSub,t),b))==>) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(0(#))),subst{uSub (variable)}(add(t,sk),not(b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),not(b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(t,not(b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[245] 0s passed
[246] auto_int_induction_gt_1, auto_int_induction_gt_1 { \find(==>all{uSub (variable)}(imp(lt(t,uSub),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),b),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[246] 0.001s passed
[247] auto_int_induction_gt_2, auto_int_induction_gt_2 { \find(==>all{uSub (variable)}(or(geq(t,uSub),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),b),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[247] 0.001s passed
[248] auto_int_induction_gt_3, auto_int_induction_gt_3 { \find(==>all{uSub (variable)}(or(leq(uSub,t),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),b)),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),b),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),b),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[248] 0.001s passed
[249] auto_int_induction_gt_5, auto_int_induction_gt_5 { \find(==>all{uSub (variable)}(or(or(geq(t,uSub),psi),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),or(psi,b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[249] 0s passed
[24] activeUseStaticFieldWriteAccess2, activeUseStaticFieldWriteAccess2 { \find(#allmodal ( (modal operator))\[{ .. #v.#sv=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[24] 0.004s passed
[250] auto_int_induction_gt_6, auto_int_induction_gt_6 { \find(==>all{uSub (variable)}(or(or(leq(uSub,t),psi),b))) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),or(psi,b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),or(psi,b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),or(psi,b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[250] 0.001s passed
[251] auto_int_induction_gt_Left1, auto_int_induction_gt_Left1 { \find(exists{uSub (variable)}(and(lt(t,uSub),b))==>) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),not(b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),not(b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),not(b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[251] 0.001s passed
[252] auto_int_induction_gt_Left2, auto_int_induction_gt_Left2 { \find(exists{uSub (variable)}(and(gt(uSub,t),b))==>) \varcond(\notFreeIn(uSub (variable), t (int term))) \replacewith([]==>[imp(and(geq(sk,Z(1(#))),subst{uSub (variable)}(add(t,sk),not(b))),#ExpandQueries(subst{uSub (variable)}(add(t,add(sk,Z(1(#)))),not(b)),true))]) ; \replacewith([]==>[#ExpandQueries(subst{uSub (variable)}(add(t,Z(1(#))),not(b)),true)]) \heuristics(induction_var, auto_induction) Choices: integerSimplificationRules:full} testEquality(String, String)[252] 0.001s passed
[253] beginJavaCardTransactionAPI, beginJavaCardTransactionAPI { \find(==>#allmodal ( (modal operator))\[{ .. #jcsystemType.#beginTransaction()@#jcsystemType; ... }\] (post)) \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #beginJavaCardTransaction; ... }\] (post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[253] 0.001s passed
[254] beginJavaCardTransactionBox, beginJavaCardTransactionBox { \find(==>\[{ .. #beginJavaCardTransaction; ... }\] (post)) \replacewith([]==>[update-application(elem-update(savedHeap)(heap),box_transaction(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[254] 0s passed
[255] beginJavaCardTransactionDiamond, beginJavaCardTransactionDiamond { \find(==>\<{ .. #beginJavaCardTransaction; ... }\> (post)) \replacewith([]==>[update-application(elem-update(savedHeap)(heap),diamond_transaction(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[255] 0.005s passed
[256] binaryAndOne, binaryAndOne { \find(binaryAnd(left,Z(1(#)))) \replacewith(if-then-else(equals(mod(left,Z(2(#))),Z(0(#))),Z(0(#)),Z(1(#)))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[256] 0.001s passed
[257] binaryAndSymm, binaryAndSymm { \find(binaryAnd(left,right)) \replacewith(binaryAnd(right,left)) Choices: true} testEquality(String, String)[257] 0.001s passed
[258] binaryAndZeroLeft, binaryAndZeroLeft { \find(binaryAnd(Z(0(#)),right)) \replacewith(Z(0(#))) \heuristics(concrete) Choices: true} testEquality(String, String)[258] 0.001s passed
[259] binaryAndZeroRight, binaryAndZeroRight { \find(binaryAnd(left,Z(0(#)))) \replacewith(Z(0(#))) \heuristics(concrete) Choices: true} testEquality(String, String)[259] 0s passed
[25] activeUseStaticFieldWriteAccess3, activeUseStaticFieldWriteAccess3 { \find(#allmodal ( (modal operator))\[{ .. #sv=#arr[#idx]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #arr[#idx];@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[25] 0.002s passed
[260] binaryAnd_literals, binaryAnd_literals { \find(binaryAnd(Z(iz),Z(jz))) \replacewith(#BinaryAnd(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[260] 0s passed
[261] binaryOrGte, binaryOrGte { \find(binaryOr(left,right)) \sameUpdateLevel\add [imp(and(geq(left,Z(0(#))),geq(right,Z(0(#)))),and(and(geq(binaryOr(left,right),left),geq(binaryOr(left,right),right)),leq(binaryOr(left,right),mul(Z(2(#)),if-then-else(gt(left,right),left,right)))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[261] 0.001s passed
[262] binaryOrInInt, binaryOrInInt { \find(binaryOr(left,right)) \sameUpdateLevel\add [imp(and(inRangeInt(left),inRangeInt(right)),inRangeInt(binaryOr(left,right)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[262] 0.001s passed
[263] binaryOrNeutralLeft, binaryOrNeutralLeft { \find(binaryOr(Z(0(#)),right)) \replacewith(right) \heuristics(concrete) Choices: true} testEquality(String, String)[263] 0.001s passed
[264] binaryOrNeutralRight, binaryOrNeutralRight { \find(binaryOr(left,Z(0(#)))) \replacewith(left) \heuristics(concrete) Choices: true} testEquality(String, String)[264] 0.001s passed
[265] binaryOrSign, binaryOrSign { \find(binaryOr(left,right)) \sameUpdateLevel\add [geq(mul(if-then-else(and(geq(left,Z(0(#))),geq(right,Z(0(#)))),Z(1(#)),Z(neglit(1(#)))),binaryOr(left,right)),Z(0(#)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[265] 0.001s passed
[266] binaryOr_literals, binaryOr_literals { \find(binaryOr(Z(iz),Z(jz))) \replacewith(#BinaryOr(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[266] 0.001s passed
[267] binaryXOr_literals, binaryXOr_literals { \find(binaryXOr(Z(iz),Z(jz))) \replacewith(#BinaryXOr(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[267] 0.001s passed
[268] bitwiseNegation, bitwiseNegation { \find(#normalassign ( (modal operator))\[{ .. #loc=~#se; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseNegation(#se)),#normalassign(post))) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[268] 0.001s passed
[269] blockBreak, blockBreak { \find(#allmodal ( (modal operator))\[{ .. {break ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. break ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[269] 0.001s passed
[26] activeUseStaticFieldWriteAccess4, activeUseStaticFieldWriteAccess4 { \find(#allmodal ( (modal operator))\[{ .. #v.#sv=#arr[#idx]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #arr[#idx];@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[26] 0.001s passed
[270] blockBreakLabel, blockBreakLabel { \find(#allmodal ( (modal operator))\[{ .. #lb0: {break ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. do-break(#lb0:break ; ) ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[270] 0.001s passed
[271] blockBreakLabeled, blockBreakLabeled { \find(#allmodal ( (modal operator))\[{ .. {break ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. break ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[271] 0.001s passed
[272] blockBreakNoLabel, blockBreakNoLabel { \find(#allmodal ( (modal operator))\[{ .. {break ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. break ; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[272] 0.002s passed
[273] blockContinue, blockContinue { \find(#allmodal ( (modal operator))\[{ .. {continue ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[273] 0s passed
[274] blockContinueLabeled, blockContinueLabeled { \find(#allmodal ( (modal operator))\[{ .. {continue ; #slist } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. continue ; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[274] 0s passed
[275] blockEmpty, blockEmpty { \find(#allmodal ( (modal operator))\[{ .. {} ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[275] 0.001s passed
[276] blockEmptyLabel, blockEmptyLabel { \find(#allmodal ( (modal operator))\[{ .. #lb: {} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {} ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[276] 0.001s passed
[277] blockReturn, blockReturn { \find(#allmodal ( (modal operator))\[{ .. {return #se;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. return #se; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[277] 0.001s passed
[278] blockReturnLabel1, blockReturnLabel1 { \find(#allmodal ( (modal operator))\[{ .. #lb:return #se; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. return #se; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[278] 0.001s passed
[279] blockReturnLabel2, blockReturnLabel2 { \find(#allmodal ( (modal operator))\[{ .. #lb: {return #se;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. return #se; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[279] 0.001s passed
[27] activeUseStaticFieldWriteAccess5, activeUseStaticFieldWriteAccess5 { \find(#allmodal ( (modal operator))\[{ .. #sv=#v1.#a; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#a (program Variable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#a) #v0 = #v1.#a;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[27] 0.002s passed
[280] blockReturnNoValue, blockReturnNoValue { \find(#allmodal ( (modal operator))\[{ .. {return ;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. return ; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[280] 0s passed
[281] blockThrow, blockThrow { \find(#allmodal ( (modal operator))\[{ .. {throw #e;#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. throw #e; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[281] 0s passed
[282] boolean_equal, boolean_equal { \find(equals(bo,bo)) \replacewith(true) \heuristics(concrete, simplify_boolean) Choices: true} testEquality(String, String)[282] 0.001s passed
[283] boolean_equal_2, boolean_equal_2 { \find(equiv(equals(b1,TRUE),equals(b2,TRUE))) \replacewith(equals(b1,b2)) \heuristics(concrete, simplify_boolean) Choices: true} testEquality(String, String)[283] 0.001s passed
[284] boolean_false_commute, boolean_false_commute { \find(equals(FALSE,bo)) \replacewith(equals(bo,FALSE)) \heuristics(simplify_boolean) Choices: true} testEquality(String, String)[284] 0.001s passed
[285] boolean_not_equal_1, boolean_not_equal_1 { \find(equals(TRUE,FALSE)) \replacewith(false) \heuristics(concrete, simplify_boolean) Choices: true} testEquality(String, String)[285] 0.001s passed
[286] boolean_not_equal_2, boolean_not_equal_2 { \find(equals(FALSE,TRUE)) \replacewith(false) \heuristics(concrete, simplify_boolean) Choices: true} testEquality(String, String)[286] 0.001s passed
[287] boolean_true_commute, boolean_true_commute { \find(equals(TRUE,bo)) \replacewith(equals(bo,TRUE)) \heuristics(simplify_boolean) Choices: true} testEquality(String, String)[287] 0.001s passed
[288] boxToDiamond, boxToDiamond { \find(\[{ .. #s ... }\] (post)) \replacewith(not(\<{ .. #s ... }\> (not(post)))) \heuristics(boxDiamondConv) Choices: programRules:Java} testEquality(String, String)[288] 0.002s passed
[289] boxToDiamondTransaction, boxToDiamondTransaction { \find(box_transaction\[{ .. #s ... }\] (post)) \replacewith(not(diamond_transaction\[{ .. #s ... }\] (not(post)))) \heuristics(boxDiamondConv) Choices: programRules:Java} testEquality(String, String)[289] 0.001s passed
[28] activeUseStaticFieldWriteAccess6, activeUseStaticFieldWriteAccess6 { \find(#allmodal ( (modal operator))\[{ .. #v.#sv=#v1.#a; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#a (program Variable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#a) #v0 = #v1.#a;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[28] 0.001s passed
[290] box_and_left, box_and_left { \find(#box ( (modal operator))\[{ .. #s ... }\] (and(post,post1))==>) \replacewith([and(#box ( (modal operator))\[{ .. #s ... }\] (post),#box ( (modal operator))\[{ .. #s ... }\] (post1))]==>[]) Choices: programRules:Java} testEquality(String, String)[290] 0.001s passed
[291] box_and_right, box_and_right { \find(==>#box ( (modal operator))\[{ .. #s ... }\] (and(post,post1))) \replacewith([]==>[#box ( (modal operator))\[{ .. #s ... }\] (post1)]) ; \replacewith([]==>[#box ( (modal operator))\[{ .. #s ... }\] (post)]) Choices: programRules:Java} testEquality(String, String)[291] 0.001s passed
[292] box_or_left, box_or_left { \find(#box ( (modal operator))\[{ .. #s ... }\] (or(post,post1))==>) \replacewith([or(#box ( (modal operator))\[{ .. #s ... }\] (post),#box ( (modal operator))\[{ .. #s ... }\] (post1))]==>[]) Choices: programRules:Java} testEquality(String, String)[292] 0.001s passed
[293] box_or_right, box_or_right { \find(==>#box ( (modal operator))\[{ .. #s ... }\] (or(post,post1))) \replacewith([]==>[or(#box ( (modal operator))\[{ .. #s ... }\] (post),#box ( (modal operator))\[{ .. #s ... }\] (post1))]) Choices: programRules:Java} testEquality(String, String)[293] 0.001s passed
[294] box_true, box_true { \find(#box ( (modal operator))\[{ .. #s ... }\] (true)) \replacewith(true) \heuristics(modal_tautology) Choices: programRules:Java} testEquality(String, String)[294] 0.001s passed
[295] bprod_all_positive, bprod_all_positive { \find(bprod{uSub (variable)}(i0,i1,t1)) \varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [imp(all{uSub (variable)}(imp(and(leq(i0,uSub),lt(uSub,i1)),geq(t1,Z(0(#))))),geq(bprod{uSub (variable)}(i0,i1,t1),Z(0(#))))]==>[] Choices: (integerSimplificationRules:full & sequences:on)} testEquality(String, String)[295] 0.001s passed
[296] bprod_commutative_associative, bprod_commutative_associative { \find(bprod{uSub (variable)}(i0,i2,mul(t,t2))) \varcond(\notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \replacewith(mul(bprod{uSub (variable)}(i0,i2,t),bprod{uSub1 (variable)}(i0,i2,subst{uSub (variable)}(uSub1,t2)))) Choices: integerSimplificationRules:full} testEquality(String, String)[296] 0s passed
[297] bprod_empty, bprod_empty { \find(bprod{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(Z(1(#))) ; \add []==>[leq(i1,i0)] Choices: integerSimplificationRules:full} testEquality(String, String)[297] 0s passed
[298] bprod_equal_one_right, bprod_equal_one_right { \find(==>equals(bprod{uSub (variable)}(i0,i2,t),Z(1(#)))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add []==>[all{uSub (variable)}(subst{uSub (variable)}(uSub,imp(and(geq(uSub,i0),lt(uSub,i2)),equals(t,Z(1(#))))))] \heuristics(comprehensions) Choices: integerSimplificationRules:full} testEquality(String, String)[298] 0.001s passed
[299] bprod_equal_zero_right, bprod_equal_zero_right { \find(==>equals(bprod{uSub (variable)}(i0,i2,t),Z(0(#)))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add []==>[exists{uSub (variable)}(subst{uSub (variable)}(uSub,and(and(geq(uSub,i0),lt(uSub,i2)),equals(t,Z(0(#))))))] \heuristics(comprehensions) Choices: integerSimplificationRules:full} testEquality(String, String)[299] 0.001s passed
[29] activeUseSubtraction, activeUseSubtraction { \find(#allmodal ( (modal operator))\[{ .. #sv=#left-#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left-#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[29] 0.001s passed
[2] abortJavaCardTransactionBox, abortJavaCardTransactionBox { \find(==>box_transaction\[{ .. #abortJavaCardTransaction; ... }\] (post)) \replacewith([]==>[update-application(elem-update(heap)(anon(savedHeap,allObjects(java.lang.Object::<transactionConditionallyUpdated>),heap)),box(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[2] 0.002s passed
[300] bprod_find, bprod_find { \find(bprod{uSub (variable)}(low,high,t)) \varcond(\notFreeIn(uSub (variable), high (int term)), \notFreeIn(uSub (variable), middle (int term)), \notFreeIn(uSub (variable), low (int term))) \replacewith(if-then-else(and(leq(low,middle),leq(middle,high)),mul(bprod{uSub (variable)}(low,middle,t),bprod{uSub (variable)}(middle,high,t)),bprod{uSub (variable)}(low,high,t))) \heuristics(triggered, comprehension_split) Choices: integerSimplificationRules:full \trigger{middle (int term)} bprod{uSub (v… testEquality(String, String)[300] 0.001s passed
[301] bprod_induction_lower, bprod_induction_lower { \find(bprod{uSub (variable)}(i0,i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(mul(bprod{uSub (variable)}(add(i0,Z(1(#))),i2,t),if-then-else(lt(i0,i2),subst{uSub (variable)}(i0,t),Z(1(#))))) Choices: integerSimplificationRules:full} testEquality(String, String)[301] 0s passed
[302] bprod_induction_lower_concrete, bprod_induction_lower_concrete { \find(bprod{uSub (variable)}(add(Z(neglit(1(#))),i0),i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(mul(bprod{uSub (variable)}(i0,i2,t),if-then-else(lt(add(Z(neglit(1(#))),i0),i2),subst{uSub (variable)}(add(Z(neglit(1(#))),i0),t),Z(1(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[302] 0.001s passed
[303] bprod_induction_upper, bprod_induction_upper { \find(bprod{uSub (variable)}(i0,i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(mul(bprod{uSub (variable)}(i0,sub(i2,Z(1(#))),t),if-then-else(lt(i0,i2),subst{uSub (variable)}(sub(i2,Z(1(#))),t),Z(1(#))))) Choices: integerSimplificationRules:full} testEquality(String, String)[303] 0.001s passed
[304] bprod_induction_upper_concrete, bprod_induction_upper_concrete { \find(bprod{uSub (variable)}(i0,add(Z(1(#)),i2),t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(mul(bprod{uSub (variable)}(i0,i2,t),if-then-else(leq(i0,i2),subst{uSub (variable)}(i2,t),Z(1(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[304] 0.001s passed
[305] bprod_invert_index, bprod_invert_index { \find(bprod{uSub (variable)}(i0,i1,t)) \varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(bprod{uSub1 (variable)}(neg(i1),neg(i0),subst{uSub (variable)}(neg(uSub1),t))) Choices: integerSimplificationRules:full} testEquality(String, String)[305] 0.002s passed
[306] bprod_invert_index_concrete, bprod_invert_index_concrete { \find(bprod{uSub (variable)}(mul(i0,Z(neglit(1(#)))),mul(i1,Z(neglit(1(#)))),t)) \varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(bprod{uSub1 (variable)}(i1,i0,subst{uSub (variable)}(neg(uSub1),t))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[306] 0.001s passed
[307] bprod_lower_equals_upper, bprod_lower_equals_upper { \find(bprod{uSub (variable)}(i0,i0,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i0 (int term))) \replacewith(Z(1(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[307] 0.001s passed
[308] bprod_one, bprod_one { \find(bprod{uSub (variable)}(i0,i1,Z(1(#)))) \varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(Z(1(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[308] 0.001s passed
[309] bprod_one_factor, bprod_one_factor { \find(bprod{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(if-then-else(equals(add(i0,Z(1(#))),i1),subst{uSub (variable)}(i0,t),bprod{uSub (variable)}(i0,i1,t))) Choices: integerSimplificationRules:full} testEquality(String, String)[309] 0.001s passed
[30] activeUseUnaryMinus, activeUseUnaryMinus { \find(#allmodal ( (modal operator))\[{ .. #sv=-#left; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = -#left;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[30] 0.003s passed
[310] bprod_one_factor_concrete1, bprod_one_factor_concrete1 { \find(bprod{uSub (variable)}(i0,add(Z(1(#)),i0),t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i0 (int term))) \replacewith(subst{uSub (variable)}(i0,t)) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[310] 0.001s passed
[311] bprod_one_factor_concrete2, bprod_one_factor_concrete2 { \find(bprod{uSub (variable)}(add(Z(neglit(1(#))),i0),i0,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i0 (int term))) \replacewith(subst{uSub (variable)}(add(Z(neglit(1(#))),i0),t)) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[311] 0.001s passed
[312] bprod_shift_index, bprod_shift_index { \find(bprod{uSub (variable)}(i0,i1,t)) \varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(bprod{uSub1 (variable)}(Z(0(#)),sub(i1,i0),subst{uSub (variable)}(add(uSub1,i0),t))) Choices: integerSimplificationRules:full} testEquality(String, String)[312] 0.001s passed
[313] bprod_split, bprod_split { \find(bprod{uSub (variable)}(i0,i1,t1)) \varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(if-then-else(and(leq(i0,middle),leq(middle,i1)),mul(bprod{uSub (variable)}(i0,middle,t1),bprod{uSub (variable)}(middle,i1,t1)),bprod{uSub (variable)}(i0,i1,t1))) Choices: (integerSimplificationRules:full & sequences:on)} testEquality(String, String)[313] 0.001s passed
[314] bprod_zero, bprod_zero { \find(bprod{uSub (variable)}(i0,i1,Z(0(#)))) \varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(if-then-else(lt(i0,i1),Z(0(#)),Z(1(#)))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[314] 0.001s passed
[315] break, break { \find(#allmodal ( (modal operator))\[{ .. #lb0:break ; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. do-break(#lb0:break ; ) ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[315] 0.001s passed
[316] bsum_add, bsum_add { \find(add(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i2,i3,t2))) \varcond(\notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFree… testEquality(String, String)[316] 0s passed
[317] bsum_add_concrete, bsum_add_concrete { \find(add(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i1,i3,t2))) \varcond(\notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \replacewith(bsum{uSub1 (variable)}(i0,i3,su… testEquality(String, String)[317] 0.001s passed
[318] bsum_commutative_associative, bsum_commutative_associative { \find(bsum{uSub (variable)}(i0,i2,add(t,t2))) \varcond(\notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \replacewith(add(bsum{uSub (variable)}(i0,i2,t),bsum{uSub1 (variable)}(i0,i2,subst{uSub (variable)}(uSub1,t2)))) Choices: integerSimplificationRules:full} testEquality(String, String)[318] 0.001s passed
[319] bsum_def, bsum_def { \find(bsum{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(if-then-else(lt(i0,i1),add(bsum{uSub (variable)}(i0,sub(i1,Z(1(#))),t),subst{uSub (variable)}(sub(i1,Z(1(#))),t)),Z(0(#)))) Choices: integerSimplificationRules:full} testEquality(String, String)[319] 0.001s passed
[31] activeUseUnsignedShiftRight, activeUseUnsignedShiftRight { \find(#allmodal ( (modal operator))\[{ .. #sv=#left>>>#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left>>>#right; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[31] 0.001s passed
[320] bsum_distributive, bsum_distributive { \find(bsum{uSub (variable)}(i0,i2,mul(t,t1))) \varcond(\notFreeIn(uSub (variable), t1 (int term)), \notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(mul(bsum{uSub (variable)}(i0,i2,t),t1)) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[320] 0s passed
[321] bsum_empty, bsum_empty { \find(bsum{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(Z(0(#))) ; \add []==>[leq(i1,i0)] Choices: integerSimplificationRules:full} testEquality(String, String)[321] 0s passed
[322] bsum_equal_except_one_index, bsum_equal_except_one_index { \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),add(bsum{uSub2 (variable)}(i0,i1,t2),t))) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), index (int term)), \notFreeIn(uSub1 (variable), index (int term)), \notFreeIn(uSub2 (variable), t (int term)), \notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 … testEquality(String, String)[322] 0.001s passed
[323] bsum_equal_split1, bsum_equal_split1 { \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i0,i2,t2))) \varcond(\notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \add []==>[and(and(leq(i0,i1),leq(i0,i… testEquality(String, String)[323] 0.001s passed
[324] bsum_equal_split2, bsum_equal_split2 { \assumes ([equals(bsum{uSub1 (variable)}(i0,i1,t1),i)]==>[]) \find(==>equals(bsum{uSub2 (variable)}(i0,i2,t2),i)) \varcond(\notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \add []… testEquality(String, String)[324] 0s passed
[325] bsum_equal_split3, bsum_equal_split3 { \find(==>equals(bsum{uSub1 (variable)}(i1,i0,t1),bsum{uSub2 (variable)}(i2,i0,t2))) \varcond(\notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \add []==>[and(and(leq(i1,i0),leq(i2,i… testEquality(String, String)[325] 0.001s passed
[326] bsum_equal_split4, bsum_equal_split4 { \assumes ([equals(bsum{uSub1 (variable)}(i1,i0,t1),i)]==>[]) \find(==>equals(bsum{uSub2 (variable)}(i2,i0,t2),i)) \varcond(\notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \add []… testEquality(String, String)[326] 0.001s passed
[327] bsum_induction_lower, bsum_induction_lower { \find(bsum{uSub (variable)}(i0,i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(add(bsum{uSub (variable)}(add(i0,Z(1(#))),i2,t),if-then-else(lt(i0,i2),subst{uSub (variable)}(i0,t),Z(0(#))))) Choices: integerSimplificationRules:full} testEquality(String, String)[327] 0s passed
[328] bsum_induction_lower2, bsum_induction_lower2 { \find(bsum{uSub (variable)}(i0,i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(sub(bsum{uSub (variable)}(sub(i0,Z(1(#))),i2,t),if-then-else(lt(sub(i0,Z(1(#))),i2),subst{uSub (variable)}(sub(i0,Z(1(#))),t),Z(0(#))))) Choices: integerSimplificationRules:full} testEquality(String, String)[328] 0s passed
[329] bsum_induction_lower2_concrete, bsum_induction_lower2_concrete { \find(bsum{uSub (variable)}(add(Z(1(#)),i0),i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(sub(bsum{uSub (variable)}(i0,i2,t),if-then-else(lt(i0,i2),subst{uSub (variable)}(i0,t),Z(0(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[329] 0s passed
[32] add_eq, add_eq { \find(equals(i0,i1)) \replacewith(equals(add(i,i0),add(i,i1))) Choices: true} testEquality(String, String)[32] 0.001s passed
[330] bsum_induction_lower_concrete, bsum_induction_lower_concrete { \find(bsum{uSub (variable)}(add(Z(neglit(1(#))),i0),i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(add(bsum{uSub (variable)}(i0,i2,t),if-then-else(lt(add(Z(neglit(1(#))),i0),i2),subst{uSub (variable)}(add(Z(neglit(1(#))),i0),t),Z(0(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[330] 0s passed
[331] bsum_induction_upper, bsum_induction_upper { \find(bsum{uSub (variable)}(i0,i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(add(bsum{uSub (variable)}(i0,sub(i2,Z(1(#))),t),if-then-else(lt(i0,i2),subst{uSub (variable)}(sub(i2,Z(1(#))),t),Z(0(#))))) Choices: integerSimplificationRules:full} testEquality(String, String)[331] 0.001s passed
[332] bsum_induction_upper2, bsum_induction_upper2 { \find(bsum{uSub (variable)}(i0,i2,t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(sub(bsum{uSub (variable)}(i0,add(i2,Z(1(#))),t),if-then-else(lt(i0,add(i2,Z(1(#)))),subst{uSub (variable)}(i2,t),Z(0(#))))) Choices: integerSimplificationRules:full} testEquality(String, String)[332] 0.002s passed
[333] bsum_induction_upper2_concrete, bsum_induction_upper2_concrete { \find(bsum{uSub (variable)}(i0,add(Z(neglit(1(#))),i2),t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(sub(bsum{uSub (variable)}(i0,i2,t),if-then-else(lt(i0,i2),subst{uSub (variable)}(sub(i2,Z(1(#))),t),Z(0(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[333] 0.002s passed
[334] bsum_induction_upper_concrete, bsum_induction_upper_concrete { \find(bsum{uSub (variable)}(i0,add(Z(1(#)),i2),t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(add(bsum{uSub (variable)}(i0,i2,t),if-then-else(leq(i0,i2),subst{uSub (variable)}(i2,t),Z(0(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[334] 0.002s passed
[335] bsum_induction_upper_concrete_2, bsum_induction_upper_concrete_2 { \find(bsum{uSub (variable)}(Z(iz),Z(jz),t)) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(add(bsum{uSub (variable)}(Z(iz),sub(Z(jz),Z(1(#))),t),if-then-else(leq(Z(iz),sub(Z(jz),Z(1(#)))),subst{uSub (variable)}(sub(Z(jz),Z(1(#))),t),Z(0(#))))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[335] 0.001s passed
[336] bsum_invert_index, bsum_invert_index { \find(bsum{uSub (variable)}(i0,i1,t)) \varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(bsum{uSub1 (variable)}(neg(i1),neg(i0),subst{uSub (variable)}(neg(uSub1),t))) Choices: integerSimplificationRules:full} testEquality(String, String)[336] 0.001s passed
[337] bsum_invert_index_concrete, bsum_invert_index_concrete { \find(bsum{uSub (variable)}(mul(i0,Z(neglit(1(#)))),mul(i1,Z(neglit(1(#)))),t)) \varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(bsum{uSub1 (variable)}(i1,i0,subst{uSub (variable)}(neg(uSub1),t))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[337] 0s passed
[338] bsum_less_same_index, bsum_less_same_index { \find(==>lt(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i0,i1,t2))) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \add []==>[and(all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),leq(t1,subst{uSub2 (variable)}(uSub1,t2)))),exists{uSub1… testEquality(String, String)[338] 0.001s passed
[339] bsum_lower_bound, bsum_lower_bound { \find(bsum{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), j (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [imp(all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i1)),geq(t,j))),geq(bsum{uSub (variable)}(i0,i1,t),if-then-else(gt(sub(i1,i0),Z(0(#))),mul(sub(i1,i0),j),Z(0(#)))))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[339] 0.001s passed
[33] add_eq_back, add_eq_back { \find(equals(add(i1,i),add(i1,i0))) \replacewith(equals(i,i0)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[33] 0.002s passed
[340] bsum_lower_equals_upper, bsum_lower_equals_upper { \find(bsum{uSub (variable)}(i0,i0,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i0 (int term))) \replacewith(Z(0(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[340] 0.001s passed
[341] bsum_num_of_bounds, bsum_num_of_bounds { \find(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#))))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [leq(Z(0(#)),bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#))))),imp(leq(i0,i2),leq(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#)))),sub(i2,i0)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[341] 0.001s passed
[342] bsum_num_of_bounds2, bsum_num_of_bounds2 { \find(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#))))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [leq(Z(0(#)),bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#))))),imp(leq(i0,i2),leq(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#)))),sub(i2,i0)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[342] 0.001s passed
[343] bsum_num_of_gt0, bsum_num_of_gt0 { \find(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#))))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [imp(gt(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#)))),Z(0(#))),exists{uSub (variable)}(and(and(leq(i0,uSub),lt(uSub,i2)),phi)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[343] 0.001s passed
[344] bsum_num_of_gt0_alt, bsum_num_of_gt0_alt { \find(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#))))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [imp(gt(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#)))),Z(0(#))),exists{uSub (variable)}(and(and(leq(i0,uSub),lt(uSub,i2)),not(phi))))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[344] 0s passed
[345] bsum_num_of_is_max, bsum_num_of_is_max { \find(equals(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#)))),sub(i2,i0))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i2)),phi))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[345] 0s passed
[346] bsum_num_of_is_max2, bsum_num_of_is_max2 { \assumes ([gt(i2,i0)]==>[]) \find(all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i2)),phi))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [equals(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#)))),sub(i2,i0))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[346] 0.002s passed
[347] bsum_num_of_is_max3, bsum_num_of_is_max3 { \find(equals(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#)))),sub(i2,i0))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i2)),not(phi)))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[347] 0.001s passed
[348] bsum_num_of_is_max4, bsum_num_of_is_max4 { \assumes ([gt(i2,i0)]==>[]) \find(all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i2)),not(phi)))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [equals(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#)))),sub(i2,i0))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[348] 0.001s passed
[349] bsum_num_of_lt_max, bsum_num_of_lt_max { \assumes ([and(gt(i2,i0),geq(i0,Z(0(#))))]==>[]) \find(lt(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#)))),sub(i2,i0))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [exists{uSub (variable)}(and(and(geq(uSub,i0),lt(uSub,i2)),not(phi)))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[349] 0.001s passed
[34] add_eq_back_2, add_eq_back_2 { \find(equals(add(i,i1),add(i0,i1))) \replacewith(equals(i,i0)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[34] 0s passed
[350] bsum_num_of_lt_max2, bsum_num_of_lt_max2 { \assumes ([and(gt(i2,i0),geq(i0,Z(0(#))))]==>[]) \find(exists{uSub (variable)}(and(and(geq(uSub,i0),lt(uSub,i2)),not(phi)))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [lt(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(1(#)),Z(0(#)))),sub(i2,i0))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[350] 0.001s passed
[351] bsum_num_of_lt_max3, bsum_num_of_lt_max3 { \assumes ([and(gt(i2,i0),geq(i0,Z(0(#))))]==>[]) \find(lt(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#)))),sub(i2,i0))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [exists{uSub (variable)}(and(and(geq(uSub,i0),lt(uSub,i2)),phi))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[351] 0s passed
[352] bsum_num_of_lt_max4, bsum_num_of_lt_max4 { \assumes ([and(gt(i2,i0),geq(i0,Z(0(#))))]==>[]) \find(exists{uSub (variable)}(and(and(geq(uSub,i0),lt(uSub,i2)),phi))==>) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [lt(bsum{uSub (variable)}(i0,i2,if-then-else(phi,Z(0(#)),Z(1(#)))),sub(i2,i0))]==>[] \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[352] 0s passed
[353] bsum_one_summand, bsum_one_summand { \find(bsum{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(if-then-else(equals(add(i0,Z(1(#))),i1),subst{uSub (variable)}(i0,t),bsum{uSub (variable)}(i0,i1,t))) Choices: integerSimplificationRules:full} testEquality(String, String)[353] 0.001s passed
[354] bsum_one_summand_concrete1, bsum_one_summand_concrete1 { \find(bsum{uSub (variable)}(i0,add(Z(1(#)),i0),t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i0 (int term))) \replacewith(subst{uSub (variable)}(i0,t)) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[354] 0s passed
[355] bsum_one_summand_concrete2, bsum_one_summand_concrete2 { \find(bsum{uSub (variable)}(add(Z(neglit(1(#))),i0),i0,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i0 (int term))) \replacewith(subst{uSub (variable)}(add(Z(neglit(1(#))),i0),t)) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[355] 0s passed
[356] bsum_positive, bsum_positive { \find(==>geq(bsum{uSub (variable)}(i0,i1,t),Z(0(#)))) \varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add []==>[all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i1)),geq(t,Z(0(#)))))] Choices: integerSimplificationRules:full} testEquality(String, String)[356] 0s passed
[357] bsum_positive1, bsum_positive1 { \find(bsum{uSub (variable)}(i0,i1,if-then-else(b,Z(1(#)),Z(0(#))))) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [geq(bsum{uSub (variable)}(i0,i1,if-then-else(b,Z(1(#)),Z(0(#)))),Z(0(#)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[357] 0.001s passed
[358] bsum_positive2, bsum_positive2 { \find(bsum{uSub (variable)}(i0,i1,if-then-else(b,Z(0(#)),Z(1(#))))) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [geq(bsum{uSub (variable)}(i0,i1,if-then-else(b,Z(0(#)),Z(1(#)))),Z(0(#)))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[358] 0.001s passed
[359] bsum_positive_lower_bound_element, bsum_positive_lower_bound_element { \find(bsum{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), index (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [leq(subst{uSub (variable)}(index,t),bsum{uSub (variable)}(i0,i1,t))]==>[] ; \add []==>[and(and(all{uSub (variable)}(imp(and(and(geq(uSub,i0),lt(uSub,i1)),not(equals(uSub,index))),geq(t,Z(0(#))))),leq(i0,index)),lt(index,i1))] Choices: integerSimplificationRules:full} testEquality(String, String)[359] 0.001s passed
[35] add_eq_back_2_fst_comm, add_eq_back_2_fst_comm { \find(equals(add(i1,i),add(i0,i1))) \replacewith(equals(i,i0)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[35] 0.001s passed
[360] bsum_same_summand, bsum_same_summand { \find(bsum{uSub (variable)}(i0,i1,t)) \varcond(\notFreeIn(uSub (variable), t (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(if-then-else(geq(i1,i0),mul(t,sub(i1,i0)),Z(0(#)))) \heuristics(simplify) Choices: integerSimplificationRules:full} testEquality(String, String)[360] 0.001s passed
[361] bsum_shift_index, bsum_shift_index { \find(bsum{uSub (variable)}(i0,i1,t)) \varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(bsum{uSub1 (variable)}(Z(0(#)),sub(i1,i0),subst{uSub (variable)}(add(uSub1,i0),t))) Choices: integerSimplificationRules:full} testEquality(String, String)[361] 0s passed
[362] bsum_split, bsum_split { \find(bsum{uSub (variable)}(low,high,t)) \varcond(\notFreeIn(uSub (variable), high (int term)), \notFreeIn(uSub (variable), middle (int term)), \notFreeIn(uSub (variable), low (int term))) \replacewith(if-then-else(and(leq(low,middle),leq(middle,high)),add(bsum{uSub (variable)}(low,middle,t),bsum{uSub (variable)}(middle,high,t)),bsum{uSub (variable)}(low,high,t))) \heuristics(triggered, comprehension_split) Choices: integerSimplificationRules:full \trigger{middle (int term)} bsum{uSub (variab… testEquality(String, String)[362] 0.001s passed
[363] bsum_split_in_three, bsum_split_in_three { \find(bsum{uSub (variable)}(i0,i2,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub (variable), i1 (int term))) \replacewith(add(add(bsum{uSub (variable)}(i0,i1,t),subst{uSub (variable)}(i1,t)),bsum{uSub1 (variable)}(add(i1,Z(1(#))),i2,subst{uSub (variable)}(uSub1,t)))) ; \add []==>[and(leq(i0,i1),lt(i1,i2))] Choi… testEquality(String, String)[363] 0.001s passed
[364] bsum_sub_same_index, bsum_sub_same_index { \find(sub(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i0,i1,t2))) \sameUpdateLevel\varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), t1 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term))) \add [equals(bsum{uSub1 (variable)}(i0,i1,sub(t1,subst{uSub2 (variable)}(uSub1,t2))),sub(bsum{uSub1 (variable)}(i0,i… testEquality(String, String)[364] 0.001s passed
[365] bsum_upper_bound, bsum_upper_bound { \find(bsum{uSub (variable)}(i0,i1,t)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), j (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add [imp(all{uSub (variable)}(imp(and(geq(uSub,i0),lt(uSub,i1)),leq(t,j))),leq(bsum{uSub (variable)}(i0,i1,t),if-then-else(gt(sub(i1,i0),Z(0(#))),mul(sub(i1,i0),j),Z(0(#)))))]==>[] Choices: integerSimplificationRules:full} testEquality(String, String)[365] 0.003s passed
[366] bsum_zero, bsum_zero { \find(bsum{uSub (variable)}(i0,i1,Z(0(#)))) \varcond(\notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \replacewith(Z(0(#))) \heuristics(concrete) Choices: integerSimplificationRules:full} testEquality(String, String)[366] 0.001s passed
[367] bsum_zero_right, bsum_zero_right { \find(==>equals(bsum{uSub (variable)}(i0,i2,t),Z(0(#)))) \varcond(\notFreeIn(uSub (variable), i2 (int term)), \notFreeIn(uSub (variable), i0 (int term))) \add []==>[all{uSub (variable)}(subst{uSub (variable)}(uSub,imp(and(geq(uSub,i0),lt(uSub,i2)),equals(t,Z(0(#))))))] \heuristics(comprehensions) Choices: integerSimplificationRules:full} testEquality(String, String)[367] 0.001s passed
[368] cancel_equation, cancel_equation { \find(equals(mul(eqLeft,Fac),mul(eqRight,Fac))) \add []==>[not(equals(Fac,Z(0(#))))] ; \replacewith(equals(eqLeft,eqRight)) \heuristics(simplify_enlarging) Choices: integerSimplificationRules:full} testEquality(String, String)[368] 0.001s passed
[369] cancel_gtNeg, cancel_gtNeg { \assumes ([lt(Fac,Z(0(#)))]==>[]) \find(lt(Less,More)==>) \add [gt(mul(Less,Fac),mul(More,Fac))]==>[] Choices: true} testEquality(String, String)[369] 0.001s passed
[36] add_eq_back_3, add_eq_back_3 { \find(equals(i1,add(i1,i0))) \replacewith(equals(Z(0(#)),i0)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[36] 0s passed
[370] cancel_gtPos, cancel_gtPos { \assumes ([gt(Fac,Z(0(#)))]==>[]) \find(lt(Less,More)==>) \add [lt(mul(Less,Fac),mul(More,Fac))]==>[] Choices: true} testEquality(String, String)[370] 0s passed
[371] case_distinction_l, case_distinction_l { \find(b==>) \addrules [to_false { \find(b==>) \replacewith([false]==>[]) \heuristics(simplify) Choices: true}] ; \addrules [to_true { \find(b==>) \replacewith([true]==>[]) \heuristics(simplify) Choices: true}] Choices: true} testEquality(String, String)[371] 0.001s passed
[372] case_distinction_r, case_distinction_r { \find(==>b) \addrules [to_false { \find(==>b) \replacewith([]==>[false]) \heuristics(simplify) Choices: true}] ; \addrules [to_true { \find(==>b) \replacewith([]==>[true]) \heuristics(simplify) Choices: true}] Choices: true} testEquality(String, String)[372] 0.001s passed
[373] castAdd, castAdd { \assumes ([equals(CSub::instance(strictCTerm2),TRUE)]==>[]) \find(strictCTerm2) \sameUpdateLevel\replacewith(CSub::cast(strictCTerm2)) Choices: true} testEquality(String, String)[373] 0.002s passed
[374] castAdd2, castAdd2 { \assumes ([equals(cs,gt)]==>[]) \find(gt) \sameUpdateLevel\varcond(\strict\sub(C, G), ) \replacewith(C::cast(gt)) Choices: true} testEquality(String, String)[374] 0.001s passed
[375] castDel, castDel { \find(C::cast(castedTerm)) \replacewith(castedTerm) \heuristics(cast_deletion, simplify) Choices: true} testEquality(String, String)[375] 0s passed
[376] castDel2, castDel2 { \assumes ([equals(cs,gt)]==>[]) \find(C::cast(gt)) \sameUpdateLevel\replacewith(cs) Choices: true} testEquality(String, String)[376] 0s passed
[377] castLongToFloatAddition2, castLongToFloatAddition2 { \find(#normalassign ( (modal operator))\[{ .. #loc=#seFloat+#seLong; ... }\] (post)) \replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(#seFloat,float::cast(#seLong))),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} testEquality(String, String)[377] 0.001s passed
[378] castToBoolean, castToBoolean { \find(#allmodal ( (modal operator))\[{ .. #lhs=(boolean)#exBool; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#exBool; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[378] 0.001s passed
[379] castTrueImpliesOriginalTrue, castTrueImpliesOriginalTrue { \assumes ([equals(boolean::select(h,o,f),TRUE)]==>[]) \find(==>equals(any::select(h,o,f),TRUE)) \replacewith([]==>[true]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[379] 0s passed
[37] add_equations, add_equations { \assumes ([equals(i,i0)]==>[]) \find(equals(j,j0)==>) \add [equals(add(i,j),add(i0,j0))]==>[] Choices: true} testEquality(String, String)[37] 0.001s passed
[380] castType, castType { \assumes ([equals(H::instance(C::cast(s)),TRUE)]==>[]) \find(equals(CSub::instance(s),TRUE)==>) \replacewith([equals(H::instance(s),TRUE)]==>[]) \heuristics(simplify) Choices: true} testEquality(String, String)[380] 0.001s passed
[381] castType2, castType2 { \assumes ([]==>[equals(H::instance(C::cast(s)),TRUE)]) \find(equals(CSub::instance(s),TRUE)==>) \replacewith([]==>[equals(H::instance(s),TRUE)]) \heuristics(simplify) Choices: true} testEquality(String, String)[381] 0.001s passed
[382] castedGetAny, castedGetAny { \find(beta::cast(any::seqGet(seq,idx))) \replacewith(beta::seqGet(seq,idx)) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[382] 0.001s passed
[383] charLiteral_to_int, charLiteral_to_int { \find(C(iz)) \replacewith(Z(iz)) \heuristics(charLiteral_to_intLiteral) Choices: true} testEquality(String, String)[383] 0.001s passed
[384] close, close { \assumes ([b]==>[]) \find(==>b) \closegoal\heuristics(closure) Choices: true} testEquality(String, String)[384] 0.001s passed
[385] closeAntec, closeAntec { \assumes ([]==>[b]) \find(b==>) \closegoal Choices: true} testEquality(String, String)[385] 0.001s passed
[386] closeFalse, closeFalse { \find(false==>) \closegoal\heuristics(closure) Choices: true} testEquality(String, String)[386] 0.001s passed
[387] closeTrue, closeTrue { \find(==>true) \closegoal\heuristics(closure) Choices: true} testEquality(String, String)[387] 0s passed
[388] closeType, closeType { \assumes ([]==>[equals(G::instance(t1),TRUE)]) \find(equals(GSub::instance(t1),TRUE)==>) \closegoal\heuristics(closure) Choices: true} testEquality(String, String)[388] 0s passed
[389] closeTypeSwitched, closeTypeSwitched { \assumes ([equals(GSub::instance(t1),TRUE)]==>[]) \find(==>equals(G::instance(t1),TRUE)) \closegoal\heuristics(closure) Choices: true} testEquality(String, String)[389] 0.007s passed
[38] add_equations_right, add_equations_right { \assumes ([equals(i,i0)]==>[]) \find(==>equals(j,j0)) \add []==>[equals(add(i,j),add(i0,j0))] Choices: true} testEquality(String, String)[38] 0.001s passed
[390] close_by_lt_leq, close_by_lt_leq { \assumes ([lt(i,j)]==>[]) \find(==>leq(add(i,Z(1(#))),j)) \replacewith([]==>[true]) Choices: true} testEquality(String, String)[390] 0.001s passed
[391] cnf_eqv, cnf_eqv { \find(equiv(phi,psi)) \replacewith(and(or(phi,not(psi)),or(not(phi),psi))) \heuristics(notHumanReadable, cnf_expandIfThenElse, conjNormalForm) Choices: true} testEquality(String, String)[391] 0.001s passed
[392] cnf_rightDist, cnf_rightDist { \find(or(distLeft,and(distRight0,distRight1))) \replacewith(and(or(distLeft,distRight0),or(distRight1,distLeft))) \heuristics(cnf_dist, conjNormalForm) Choices: true} testEquality(String, String)[392] 0.001s passed
[393] collect_same_terms_1, collect_same_terms_1 { \find(add(mul(i,j),mul(i,j))) \replacewith(mul(Z(2(#)),mul(i,j))) Choices: true} testEquality(String, String)[393] 0.001s passed
[394] collect_same_terms_2, collect_same_terms_2 { \find(add(add(mul(i,j),mul(i0,i1)),add(mul(i,j),mul(j0,j1)))) \replacewith(add(mul(Z(2(#)),mul(i,j)),add(mul(i0,i1),mul(j0,j1)))) Choices: true} testEquality(String, String)[394] 0.001s passed
[395] collect_same_terms_3, collect_same_terms_3 { \find(add(add(neg(mul(i,j)),mul(i0,i1)),add(neg(mul(i,j)),mul(j0,j1)))) \replacewith(add(neg(mul(Z(2(#)),mul(i,j))),add(mul(i0,i1),mul(j0,j1)))) Choices: true} testEquality(String, String)[395] 0.001s passed
[396] commitJavaCardTransactionAPI, commitJavaCardTransactionAPI { \find(==>#allmodal ( (modal operator))\[{ .. #jcsystemType.#commitTransaction()@#jcsystemType; ... }\] (post)) \replacewith([]==>[#allmodal ( (modal operator))\[{ .. #commitJavaCardTransaction; ... }\] (post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[396] 0.001s passed
[397] commitJavaCardTransactionBox, commitJavaCardTransactionBox { \find(==>box_transaction\[{ .. #commitJavaCardTransaction; ... }\] (post)) \replacewith([]==>[box(post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[397] 0.001s passed
[398] commitJavaCardTransactionDiamond, commitJavaCardTransactionDiamond { \find(==>diamond_transaction\[{ .. #commitJavaCardTransaction; ... }\] (post)) \replacewith([]==>[diamond(post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[398] 0.001s passed
[399] commuteDisjoint, commuteDisjoint { \find(disjoint(commLeft,commRight)) \replacewith(disjoint(commRight,commLeft)) \heuristics(cnf_setComm) Choices: programRules:Java} testEquality(String, String)[399] 0.001s passed
[39] add_greater, add_greater { \find(gt(i,i0)) \replacewith(gt(add(i1,i),add(i1,i0))) Choices: true} testEquality(String, String)[39] 0.001s passed
[3] abortJavaCardTransactionDiamond, abortJavaCardTransactionDiamond { \find(==>diamond_transaction\[{ .. #abortJavaCardTransaction; ... }\] (post)) \replacewith([]==>[update-application(elem-update(heap)(anon(savedHeap,allObjects(java.lang.Object::<transactionConditionallyUpdated>),heap)),diamond(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[3] 0.002s passed
[400] commuteIntersection, commuteIntersection { \find(intersect(commLeft,commRight)) \replacewith(intersect(commRight,commLeft)) \heuristics(cnf_setComm) Choices: programRules:Java} testEquality(String, String)[400] 0.001s passed
[401] commuteIntersection_2, commuteIntersection_2 { \find(intersect(intersect(s,commLeft),commRight)) \replacewith(intersect(intersect(s,commRight),commLeft)) \heuristics(cnf_setComm) Choices: programRules:Java} testEquality(String, String)[401] 0.001s passed
[402] commuteUnion, commuteUnion { \find(union(commLeft,commRight)) \replacewith(union(commRight,commLeft)) \heuristics(cnf_setComm) Choices: programRules:Java} testEquality(String, String)[402] 0.001s passed
[403] commuteUnion_2, commuteUnion_2 { \find(union(union(s,commLeft),commRight)) \replacewith(union(union(s,commRight),commLeft)) \heuristics(cnf_setComm) Choices: programRules:Java} testEquality(String, String)[403] 0.001s passed
[404] commute_and, commute_and { \find(and(commLeft,commRight)) \replacewith(and(commRight,commLeft)) \heuristics(cnf_andComm, conjNormalForm) Choices: true} testEquality(String, String)[404] 0.001s passed
[405] commute_and_2, commute_and_2 { \find(and(and(commResidue,commLeft),commRight)) \replacewith(and(and(commResidue,commRight),commLeft)) \heuristics(cnf_andComm, conjNormalForm) Choices: true} testEquality(String, String)[405] 0.001s passed
[406] commute_or, commute_or { \find(or(commLeft,commRight)) \replacewith(or(commRight,commLeft)) \heuristics(cnf_orComm, conjNormalForm) Choices: true} testEquality(String, String)[406] 0.001s passed
[407] commute_or_2, commute_or_2 { \find(or(or(commResidue,commLeft),commRight)) \replacewith(or(or(commResidue,commRight),commLeft)) \heuristics(cnf_orComm, conjNormalForm) Choices: true} testEquality(String, String)[407] 0s passed
[408] compound_addition_1, compound_addition_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse+#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v+#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[408] 0s passed
[409] compound_addition_2, compound_addition_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e+#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0+#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[409] 0.001s passed
[40] add_greatereq, add_greatereq { \find(geq(i,i0)) \replacewith(geq(add(i1,i),add(i1,i0))) Choices: true} testEquality(String, String)[40] 0.001s passed
[410] compound_assignment_1_new, compound_assignment_1_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=!#seBool; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#seBool,TRUE),FALSE,TRUE)),#allmodal(post))) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[410] 0.001s passed
[411] compound_assignment_2, compound_assignment_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=!#nseBool; ... }\] (post)) \varcond(\new(#v (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #v = #nseBool;#lhs=!#v; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[411] 0.001s passed
[412] compound_assignment_3_mixed, compound_assignment_3_mixed { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nseBool0&&#seBool1; ... }\] (post)) \varcond(\new(#v0 (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #v0 = #nseBool0;#lhs=#v0&&#seBool1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[412] 0.001s passed
[413] compound_assignment_3_nonsimple, compound_assignment_3_nonsimple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#exBool0&&#nseBool1; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (!#exBool0) #lhs=false; else #lhs=#nseBool1; ... }\] (post)) \heuristics(split_if, simplify_expression) Choices: programRules:Java} testEquality(String, String)[413] 0.002s passed
[414] compound_assignment_3_simple, compound_assignment_3_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seBool0&&#seBool1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#seBool0,TRUE),if-then-else(equals(#seBool1,TRUE),TRUE,FALSE),FALSE)),#allmodal(post))) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[414] 0s passed
[415] compound_assignment_4_nonsimple, compound_assignment_4_nonsimple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nseBool0&#exBool1; ... }\] (post)) \varcond(\new(#v1 (program Variable), (type, sort): (boolean,boolean)), \new(#v0 (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #v0 = #nseBool0;boolean #v1 = #exBool1;#lhs=#v0&#v1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[415] 0.001s passed
[416] compound_assignment_4_simple, compound_assignment_4_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seBool0&#seBool1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#seBool0,TRUE),if-then-else(equals(#seBool1,TRUE),TRUE,FALSE),FALSE)),#allmodal(post))) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[416] 0.001s passed
[417] compound_assignment_5_mixed, compound_assignment_5_mixed { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nseBool0||#seBool1; ... }\] (post)) \varcond(\new(#v0 (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #v0 = #nseBool0;#lhs=#v0||#seBool1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[417] 0.001s passed
[418] compound_assignment_5_nonsimple, compound_assignment_5_nonsimple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#exBool0||#nseBool1; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#exBool0) #lhs=true; else #lhs=#nseBool1; ... }\] (post)) \heuristics(split_if, simplify_expression) Choices: programRules:Java} testEquality(String, String)[418] 0.001s passed
[419] compound_assignment_5_simple, compound_assignment_5_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seBool0||#seBool1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#seBool0,TRUE),TRUE,if-then-else(equals(#seBool1,TRUE),TRUE,FALSE))),#allmodal(post))) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[419] 0s passed
[41] add_less, add_less { \find(lt(i,i0)) \replacewith(lt(add(i1,i),add(i1,i0))) Choices: true} testEquality(String, String)[41] 0.001s passed
[420] compound_assignment_6_nonsimple, compound_assignment_6_nonsimple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nseBool0|#exBool1; ... }\] (post)) \varcond(\new(#v1 (program Variable), (type, sort): (boolean,boolean)), \new(#v0 (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #v0 = #nseBool0;boolean #v1 = #exBool1;#lhs=#v0|#v1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[420] 0.001s passed
[421] compound_assignment_6_simple, compound_assignment_6_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seBool0|#seBool1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#seBool0,TRUE),TRUE,if-then-else(equals(#seBool1,TRUE),TRUE,FALSE))),#allmodal(post))) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[421] 0.001s passed
[422] compound_assignment_op_and, compound_assignment_op_and { \find(#allmodal ( (modal operator))\[{ .. #lhs&=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs&(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[422] 0.001s passed
[423] compound_assignment_op_and_array, compound_assignment_op_and_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]&=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]&#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[423] 0s passed
[424] compound_assignment_op_and_attr, compound_assignment_op_and_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute&=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute&#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[424] 0.001s passed
[425] compound_assignment_op_div, compound_assignment_op_div { \find(#allmodal ( (modal operator))\[{ .. #lhs/=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs/(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[425] 0.001s passed
[426] compound_assignment_op_div_array, compound_assignment_op_div_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]/=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]/#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[426] 0.001s passed
[427] compound_assignment_op_div_attr, compound_assignment_op_div_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute/=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute/#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[427] 0.001s passed
[428] compound_assignment_op_minus, compound_assignment_op_minus { \find(#allmodal ( (modal operator))\[{ .. #lhs-=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs-(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[428] 0.001s passed
[429] compound_assignment_op_minus_array, compound_assignment_op_minus_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]-=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]-#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[429] 0s passed
[42] add_less_back, add_less_back { \find(lt(add(i1,i),add(i1,i0))) \replacewith(lt(i,i0)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[42] 0s passed
[430] compound_assignment_op_minus_attr, compound_assignment_op_minus_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute-=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute-#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[430] 0.001s passed
[431] compound_assignment_op_mod, compound_assignment_op_mod { \find(#allmodal ( (modal operator))\[{ .. #lhs%=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs%(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[431] 0.001s passed
[432] compound_assignment_op_mod_array, compound_assignment_op_mod_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]%=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]%#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[432] 0.001s passed
[433] compound_assignment_op_mod_attr, compound_assignment_op_mod_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute%=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute%#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[433] 0.001s passed
[434] compound_assignment_op_mul, compound_assignment_op_mul { \find(#allmodal ( (modal operator))\[{ .. #lhs*=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs*(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[434] 0.008s passed
[435] compound_assignment_op_mul_array, compound_assignment_op_mul_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]*=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]*#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[435] 0.001s passed
[436] compound_assignment_op_mul_attr, compound_assignment_op_mul_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute*=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute*#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[436] 0s passed
[437] compound_assignment_op_or, compound_assignment_op_or { \find(#allmodal ( (modal operator))\[{ .. #lhs|=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs|(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[437] 0.001s passed
[438] compound_assignment_op_or_array, compound_assignment_op_or_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]|=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]|#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[438] 0.001s passed
[439] compound_assignment_op_or_attr, compound_assignment_op_or_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute|=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute|#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[439] 0.001s passed
[43] add_less_back_zero_1, add_less_back_zero_1 { \find(lt(i,add(i,i1))) \replacewith(lt(Z(0(#)),i1)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[43] 0.001s passed
[440] compound_assignment_op_plus, compound_assignment_op_plus { \find(#allmodal ( (modal operator))\[{ .. #lhs+=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs+(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[440] 0.001s passed
[441] compound_assignment_op_plus_array, compound_assignment_op_plus_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]+=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]+#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[441] 0.002s passed
[442] compound_assignment_op_plus_attr, compound_assignment_op_plus_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute+=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute+#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[442] 0s passed
[443] compound_assignment_op_shiftleft, compound_assignment_op_shiftleft { \find(#allmodal ( (modal operator))\[{ .. #lhs<<=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs<<(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[443] 0s passed
[444] compound_assignment_op_shiftleft_array, compound_assignment_op_shiftleft_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]<<=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]<<#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[444] 0.002s passed
[445] compound_assignment_op_shiftleft_attr, compound_assignment_op_shiftleft_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute<<=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute<<#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[445] 0.001s passed
[446] compound_assignment_op_shiftright, compound_assignment_op_shiftright { \find(#allmodal ( (modal operator))\[{ .. #lhs>>=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs>>(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[446] 0.004s passed
[447] compound_assignment_op_shiftright_array, compound_assignment_op_shiftright_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]>>=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]>>#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[447] 0.002s passed
[448] compound_assignment_op_shiftright_attr, compound_assignment_op_shiftright_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute>>=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute>>#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[448] 0s passed
[449] compound_assignment_op_unsigned_shiftright, compound_assignment_op_unsigned_shiftright { \find(#allmodal ( (modal operator))\[{ .. #lhs>>>=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs>>>(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[449] 0s passed
[44] add_less_back_zero_1_comm, add_less_back_zero_1_comm { \find(lt(i,add(i1,i))) \replacewith(lt(Z(0(#)),i1)) \heuristics(simplify_int) Choices: true} testEquality(String, String)[44] 0.002s passed
[450] compound_assignment_op_unsigned_shiftright_array, compound_assignment_op_unsigned_shiftright_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]>>>=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]>>>#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[450] 0.001s passed
[451] compound_assignment_op_unsigned_shiftright_attr, compound_assignment_op_unsigned_shiftright_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute>>>=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute>>>#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[451] 0.001s passed
[452] compound_assignment_op_xor, compound_assignment_op_xor { \find(#allmodal ( (modal operator))\[{ .. #lhs^=#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=(#typeof(#lhs))(#lhs^(#e)); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[452] 0.001s passed
[453] compound_assignment_op_xor_array, compound_assignment_op_xor_array { \find(#allmodal ( (modal operator))\[{ .. #e0[#e]^=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]^#e1); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[453] 0.001s passed
[454] compound_assignment_op_xor_attr, compound_assignment_op_xor_attr { \find(#allmodal ( (modal operator))\[{ .. #e0.#attribute^=#e; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute^#e); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[454] 0.001s passed
[455] compound_assignment_xor_nonsimple, compound_assignment_xor_nonsimple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nseBool0^#exBool1; ... }\] (post)) \varcond(\new(#v1 (program Variable), (type, sort): (boolean,boolean)), \new(#v0 (program Variable), (type, sort): (boolean,boolean))) \replacewith(#allmodal ( (modal operator))\[{ .. boolean #v0 = #nseBool0;boolean #v1 = #exBool1;#lhs=#v0^#v1; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[455] 0.001s passed
[456] compound_assignment_xor_simple, compound_assignment_xor_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seBool0^#seBool1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#seBool0,#seBool1),FALSE,TRUE)),#allmodal(post))) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[456] 0s passed
[457] compound_binary_AND_1, compound_binary_AND_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse&#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v&#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[457] 0s passed
[458] compound_binary_AND_2, compound_binary_AND_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e&#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0&#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[458] 0s passed
[459] compound_binary_OR_1, compound_binary_OR_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse|#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v|#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[459] 0.001s passed
[45] add_less_back_zero_2, add_less_back_zero_2 { \find(lt(add(i,i1),i)) \replacewith(lt(i1,Z(0(#)))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[45] 0.001s passed
[460] compound_binary_OR_2, compound_binary_OR_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e|#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0|#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[460] 0.006s passed
[461] compound_binary_XOR_1, compound_binary_XOR_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse^#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v^#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[461] 0.003s passed
[462] compound_binary_XOR_2, compound_binary_XOR_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e^#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0^#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[462] 0s passed
[463] compound_binary_neg, compound_binary_neg { \find(#allmodal ( (modal operator))\[{ .. #lhs=~#nse; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;#lhs=~#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[463] 0s passed
[464] compound_byte_cast_expression, compound_byte_cast_expression { \find(#allmodal ( (modal operator))\[{ .. #lhs=(byte)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=(byte)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[464] 0s passed
[465] compound_division_1, compound_division_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse/#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v/#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[465] 0s passed
[466] compound_division_2, compound_division_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e/#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0/#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[466] 0.001s passed
[467] compound_double_cast_expression, compound_double_cast_expression { \find(#normalassign ( (modal operator))\[{ .. #loc=(double)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#normalassign ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#loc=(double)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[467] 0s passed
[468] compound_equality_comparison_1, compound_equality_comparison_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse0==#se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse0 (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse0) #v0 = #nse0;#lhs=#v0==#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[468] 0.002s passed
[469] compound_equality_comparison_2, compound_equality_comparison_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e==#nse0; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse0 (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse0) #v1 = #nse0;#lhs=#v0==#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[469] 0.001s passed
[46] add_less_back_zero_2_comm, add_less_back_zero_2_comm { \find(lt(add(i1,i),i)) \replacewith(lt(i1,Z(0(#)))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[46] 0.005s passed
[470] compound_float_cast_expression, compound_float_cast_expression { \find(#normalassign ( (modal operator))\[{ .. #loc=(float)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#normalassign ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#loc=(float)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[470] 0.001s passed
[471] compound_greater_equal_than_comparison_1, compound_greater_equal_than_comparison_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse0>=#se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse0 (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse0) #v0 = #nse0;#lhs=#v0>=#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[471] 0.001s passed
[472] compound_greater_equal_than_comparison_2, compound_greater_equal_than_comparison_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e>=#nse0; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse0 (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse0) #v1 = #nse0;#lhs=#v0>=#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[472] 0.001s passed
[473] compound_greater_than_comparison_1, compound_greater_than_comparison_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse0>#se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse0 (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse0) #v0 = #nse0;#lhs=#v0>#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[473] 0.010s passed
[474] compound_greater_than_comparison_2, compound_greater_than_comparison_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e>#nse0; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse0 (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse0) #v1 = #nse0;#lhs=#v0>#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[474] 0.001s passed
[475] compound_inequality_comparison_1, compound_inequality_comparison_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse0!=#se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse0 (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse0) #v0 = #nse0;#lhs=#v0!=#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[475] 0s passed
[476] compound_inequality_comparison_2, compound_inequality_comparison_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e!=#nse0; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse0 (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse0) #v1 = #nse0;#lhs=#v0!=#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[476] 0s passed
[477] compound_int_cast_expression, compound_int_cast_expression { \find(#allmodal ( (modal operator))\[{ .. #lhs=(int)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=(int)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[477] 0s passed
[478] compound_invert_bits, compound_invert_bits { \find(#allmodal ( (modal operator))\[{ .. #lhs=~#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v1 = #nse;#lhs=~#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[478] 0s passed
[479] compound_less_equal_than_comparison_1, compound_less_equal_than_comparison_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse0<=#se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse0 (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse0) #v0 = #nse0;#lhs=#v0<=#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[479] 0.001s passed
[47] add_lesseq, add_lesseq { \find(leq(i,i0)) \replacewith(leq(add(i1,i),add(i1,i0))) Choices: true} testEquality(String, String)[47] 0.001s passed
[480] compound_less_equal_than_comparison_2, compound_less_equal_than_comparison_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e<=#nse0; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse0 (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse0) #v1 = #nse0;#lhs=#v0<=#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[480] 0.001s passed
[481] compound_less_than_comparison_1, compound_less_than_comparison_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse0<#se; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse0 (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse0) #v0 = #nse0;#lhs=#v0<#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[481] 0.001s passed
[482] compound_less_than_comparison_2, compound_less_than_comparison_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e<#nse0; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse0 (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse0) #v1 = #nse0;#lhs=#v0<#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[482] 0.001s passed
[483] compound_long_cast_expression, compound_long_cast_expression { \find(#allmodal ( (modal operator))\[{ .. #lhs=(long)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=(long)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[483] 0s passed
[484] compound_modulo_1, compound_modulo_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse%#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v%#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[484] 0s passed
[485] compound_modulo_2, compound_modulo_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e%#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0%#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[485] 0s passed
[486] compound_multiplication_1, compound_multiplication_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse*#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v*#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[486] 0s passed
[487] compound_multiplication_2, compound_multiplication_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e*#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0*#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[487] 0.001s passed
[488] compound_reference_cast_expression, compound_reference_cast_expression { \find(#allmodal ( (modal operator))\[{ .. #lhs=(#npit)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=(#npit)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[488] 0.001s passed
[489] compound_shiftleft_1, compound_shiftleft_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse<<#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v<<#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[489] 0s passed
[48] add_literals, add_literals { \find(add(Z(iz),Z(jz))) \replacewith(#add(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[48] 0.001s passed
[490] compound_shiftleft_2, compound_shiftleft_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e<<#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0<<#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[490] 0s passed
[491] compound_shiftright_1, compound_shiftright_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse>>#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v>>#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[491] 0.001s passed
[492] compound_shiftright_2, compound_shiftright_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e>>#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0>>#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[492] 0.001s passed
[493] compound_short_cast_expression, compound_short_cast_expression { \find(#allmodal ( (modal operator))\[{ .. #lhs=(short)#nse; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=(short)#v; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[493] 0.001s passed
[494] compound_subtraction_1, compound_subtraction_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse-#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v-#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[494] 0.001s passed
[495] compound_subtraction_2, compound_subtraction_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e-#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0-#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[495] 0.001s passed
[496] compound_unary_minus_eval, compound_unary_minus_eval { \find(#allmodal ( (modal operator))\[{ .. #lhs=-#nse; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;#lhs=-#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: programRules:Java} testEquality(String, String)[496] 0s passed
[497] compound_unary_plus_assignment, compound_unary_plus_assignment { \find(#allmodal ( (modal operator))\[{ .. #lhs=+#e; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. #lhs=#e; ... }\] (post)) \heuristics(executeIntegerAssignment) Choices: programRules:Java} testEquality(String, String)[497] 0s passed
[498] compound_unsigned_shiftright_1, compound_unsigned_shiftright_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse>>>#se; ... }\] (post)) \varcond(\new(#v (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v = #nse;#lhs=#v>>>#se; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[498] 0s passed
[499] compound_unsigned_shiftright_2, compound_unsigned_shiftright_2 { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e>>>#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#e (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e) #v0 = #e;#typeof(#nse) #v1 = #nse;#lhs=#v0>>>#v1; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[499] 0s passed
[49] add_non_neg_square, add_non_neg_square { \add [geq(mul(squareFac,squareFac),Z(0(#)))]==>[] \heuristics(inEqSimp_nonNegSquares, inEqSimp_special_nonLin) Choices: true} testEquality(String, String)[49] 0.002s passed
[4] accDefinition, accDefinition { \find(acc(h,s,o,o2)) \varcond(\notFreeIn(fv (variable), o2 (deltaObject term)), \notFreeIn(fv (variable), o (java.lang.Object term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(fv (variable), h (Heap term))) \replacewith(and(and(not(equals(o,null)),not(equals(o2,null))),exists{fv (variable)}(and(elementOf(o,fv,s),equals(deltaObject::select(h,o,fv),o2))))) \heuristics(simplify) Choices: reach:on} testEquality(String, String)[4] 0.008s passed
[500] concatRepeatContraction3, concatRepeatContraction3 { \find(regExConcat(repeat(rexp,nTimes),regEx(seqEmpty))) \replacewith(repeat(rexp,nTimes)) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[500] 0s passed
[501] concatRepeatContraction3Sym, concatRepeatContraction3Sym { \find(regExConcat(regEx(seqEmpty),repeat(rexp,nTimes))) \replacewith(repeat(rexp,nTimes)) \heuristics(concrete) Choices: Strings:on} testEquality(String, String)[501] 0.001s passed
[502] concrete_and_1, concrete_and_1 { \find(and(true,b)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[502] 0.001s passed
[503] concrete_and_2, concrete_and_2 { \find(and(false,b)) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[503] 0.001s passed
[504] concrete_and_3, concrete_and_3 { \find(and(b,true)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[504] 0.001s passed
[505] concrete_and_4, concrete_and_4 { \find(and(b,false)) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[505] 0.001s passed
[506] concrete_eq_1, concrete_eq_1 { \find(equiv(true,b)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[506] 0s passed
[507] concrete_eq_2, concrete_eq_2 { \find(equiv(false,b)) \replacewith(not(b)) \heuristics(concrete) Choices: true} testEquality(String, String)[507] 0s passed
[508] concrete_eq_3, concrete_eq_3 { \find(equiv(b,true)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[508] 0s passed
[509] concrete_eq_4, concrete_eq_4 { \find(equiv(b,false)) \replacewith(not(b)) \heuristics(concrete) Choices: true} testEquality(String, String)[509] 0s passed
[50] add_sub_elim_left, add_sub_elim_left { \find(add(neg(i),i)) \replacewith(Z(0(#))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[50] 0.001s passed
[510] concrete_impl_1, concrete_impl_1 { \find(imp(true,b)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[510] 0s passed
[511] concrete_impl_2, concrete_impl_2 { \find(imp(false,b)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[511] 0.001s passed
[512] concrete_impl_3, concrete_impl_3 { \find(imp(b,false)) \replacewith(not(b)) \heuristics(concrete) Choices: true} testEquality(String, String)[512] 0.001s passed
[513] concrete_impl_4, concrete_impl_4 { \find(imp(b,true)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[513] 0.001s passed
[514] concrete_not_1, concrete_not_1 { \find(not(true)) \replacewith(false) \heuristics(concrete) Choices: true} testEquality(String, String)[514] 0.001s passed
[515] concrete_not_2, concrete_not_2 { \find(not(false)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[515] 0.001s passed
[516] concrete_or_1, concrete_or_1 { \find(or(true,b)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[516] 0s passed
[517] concrete_or_2, concrete_or_2 { \find(or(false,b)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[517] 0s passed
[518] concrete_or_3, concrete_or_3 { \find(or(b,true)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[518] 0s passed
[519] concrete_or_4, concrete_or_4 { \find(or(b,false)) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[519] 0s passed
[51] add_sub_elim_right, add_sub_elim_right { \find(add(i,neg(i))) \replacewith(Z(0(#))) \heuristics(simplify_int) Choices: true} testEquality(String, String)[51] 0.002s passed
[520] concrete_or_5, concrete_or_5 { \find(or(and(c,b),and(c,not(b)))) \replacewith(c) \heuristics(concrete) Choices: true} testEquality(String, String)[520] 0.001s passed
[521] condition, condition { \find(#allmodal ( (modal operator))\[{ .. #lhs=#e0 ?#e1 :#e2; ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#e0) { #lhs=#e1; } else { #lhs=#e2; } ... }\] (post)) \heuristics(split_if, simplify_prog) Choices: programRules:Java} testEquality(String, String)[521] 0.011s passed
[522] condition_not_simple, condition_not_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#nse ?#se1 :#se2; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;#lhs=#v0 ?#se1 :#se2; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[522] 0.001s passed
[523] condition_simple, condition_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#se0 ?#se1 :#se2; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#se0,TRUE),#se1,#se2)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[523] 0s passed
[524] contains, contains { \find(clContains(seqConcat(seqSingleton(fstTextCharacter),textStringTail),searchString)) \sameUpdateLevel\add [equals(seqLen(searchString),newSym)]==>[] \replacewith(and(lt(newSym,seqLen(textStringTail)),or(equals(seqSub(seqConcat(seqSingleton(fstTextCharacter),textStringTail),Z(0(#)),newSym),searchString),clContains(textStringTail,searchString)))) \heuristics(stringsIntroduceNewSym, stringsContainsDefInline) Choices: Strings:on} testEquality(String, String)[524] 0.001s passed
[525] containsAxiomAntec, containsAxiomAntec { \find(clContains(textString,searchString)==>) \varcond(\notFreeIn(iv (variable), textString (Seq term)), \notFreeIn(iv (variable), searchString (Seq term))) \replacewith([exists{iv (variable)}(and(and(geq(iv,Z(0(#))),leq(add(iv,seqLen(searchString)),seqLen(textString))),equals(seqSub(textString,iv,add(iv,seqLen(searchString))),searchString)))]==>[]) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} testEquality(String, String)[525] 0.002s passed
[526] containsAxiomSucc, containsAxiomSucc { \find(==>clContains(textString,searchString)) \varcond(\notFreeIn(iv (variable), textString (Seq term)), \notFreeIn(iv (variable), searchString (Seq term))) \replacewith([]==>[exists{iv (variable)}(and(and(geq(iv,Z(0(#))),leq(add(iv,seqLen(searchString)),seqLen(textString))),equals(seqSub(textString,iv,add(iv,seqLen(searchString))),searchString)))]) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} testEquality(String, String)[526] 0.001s passed
[527] cosIsNaN, cosIsNaN { \find(cosDouble(arg)) \add [imp(or(doubleIsNaN(arg),doubleIsInfinite(arg)),doubleIsNaN(cosDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[527] 0.009s passed
[528] cosIsNaNAlt, cosIsNaNAlt { \find(doubleIsNaN(cosDouble(arg))) \replacewith(or(doubleIsNaN(arg),doubleIsInfinite(arg))) \heuristics(simplify) Choices: true} testEquality(String, String)[528] 0.001s passed
[529] cosIsNotNaN, cosIsNotNaN { \find(cosDouble(arg)) \add [imp(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg))),not(doubleIsNaN(cosDouble(arg))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[529] 0.001s passed
[52] add_sub_step, add_sub_step { \find(add(neg(i),neg(i0))) \replacewith(neg(add(i,i0))) Choices: true} testEquality(String, String)[52] 0.001s passed
[530] cosRange, cosRange { \find(cosDouble(arg)) \add [or(and(geqDouble(cosDouble(arg),DFP(0(#))),leqDouble(cosDouble(arg),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),doubleIsNaN(cosDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[530] 0s passed
[531] cosRange2, cosRange2 { \find(cosDouble(arg)) \add [imp(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg))),and(geqDouble(cosDouble(arg),DFP(0(#))),leqDouble(cosDouble(arg),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[531] 0s passed
[532] cosRangeAlt, cosRangeAlt { \find(==>doubleIsNaN(cosDouble(arg))) \add [and(geqDouble(cosDouble(arg),DFP(0(#))),leqDouble(cosDouble(arg),DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[532] 0s passed
[533] createdInHeapToElementOf, createdInHeapToElementOf { \find(createdInHeap(s,h)) \varcond(\notFreeIn(fv (variable), h (Heap term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), h (Heap term)), \notFreeIn(ov (variable), s (LocSet term))) \replacewith(all{ov (variable)}(all{fv (variable)}(imp(elementOf(ov,fv,s),or(equals(ov,null),equals(boolean::select(h,ov,java.lang.Object::<created>),TRUE)))))) \heuristics(classAxiom) Choices: programRules:Java} testEquality(String, String)[533] 0s passed
[534] createdInHeapWithAllFields, createdInHeapWithAllFields { \find(createdInHeap(allFields(o),h)) \replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[534] 0s passed
[535] createdInHeapWithAllFieldsEQ, createdInHeapWithAllFieldsEQ { \assumes ([equals(allFields(o),EQ)]==>[]) \find(createdInHeap(EQ,h)) \sameUpdateLevel\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[535] 0s passed
[536] createdInHeapWithArrayRange, createdInHeapWithArrayRange { \find(createdInHeap(arrayRange(o,lower,upper),h)) \replacewith(or(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE)),lt(upper,lower))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[536] 0.001s passed
[537] createdInHeapWithArrayRangeEQ, createdInHeapWithArrayRangeEQ { \assumes ([equals(arrayRange(o,lower,upper),EQ)]==>[]) \find(createdInHeap(EQ,h)) \sameUpdateLevel\replacewith(or(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE)),lt(upper,lower))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[537] 0.001s passed
[538] createdInHeapWithEmpty, createdInHeapWithEmpty { \find(createdInHeap(empty,h)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[538] 0.001s passed
[539] createdInHeapWithObserver, createdInHeapWithObserver { \find(==>createdInHeap(obs,h)) \varcond(\isObserver (obs (LocSet term), h (Heap term)), ) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[539] 0.001s passed
[53] add_two_inequations_1, add_two_inequations_1 { \assumes ([lt(i,i0)]==>[]) \find(lt(j,j0)==>) \add [lt(add(i,j),add(i0,j0))]==>[] Choices: true} testEquality(String, String)[53] 0.003s passed
[540] createdInHeapWithObserverEQ, createdInHeapWithObserverEQ { \assumes ([equals(obs,EQ)]==>[]) \find(==>createdInHeap(EQ,h)) \varcond(\isObserver (obs (LocSet term), h (Heap term)), ) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[540] 0.001s passed
[541] createdInHeapWithSelect, createdInHeapWithSelect { \find(==>createdInHeap(LocSet::select(h,o,f),h)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[541] 0.001s passed
[542] createdInHeapWithSelectEQ, createdInHeapWithSelectEQ { \assumes ([equals(LocSet::select(h,o,f),EQ)]==>[]) \find(==>createdInHeap(EQ,h)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[542] 0.001s passed
[543] createdInHeapWithSetMinusFreshLocs, createdInHeapWithSetMinusFreshLocs { \find(createdInHeap(setMinus(s,freshLocs(h)),h)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[543] 0.001s passed
[544] createdInHeapWithSetMinusFreshLocsEQ, createdInHeapWithSetMinusFreshLocsEQ { \assumes ([equals(setMinus(s,freshLocs(h)),EQ)]==>[]) \find(createdInHeap(EQ,h)) \sameUpdateLevel\replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[544] 0.001s passed
[545] createdInHeapWithSingleton, createdInHeapWithSingleton { \find(createdInHeap(singleton(o,f),h)) \replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[545] 0.001s passed
[546] createdInHeapWithSingletonEQ, createdInHeapWithSingletonEQ { \assumes ([equals(singleton(o,f),EQ)]==>[]) \find(createdInHeap(EQ,h)) \sameUpdateLevel\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::<created>),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[546] 0.001s passed
[547] createdInHeapWithUnion, createdInHeapWithUnion { \find(==>createdInHeap(union(s,s2),h)) \replacewith([]==>[createdInHeap(s2,h)]) ; \replacewith([]==>[createdInHeap(s,h)]) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[547] 0s passed
[548] createdInHeapWithUnionEQ, createdInHeapWithUnionEQ { \assumes ([equals(union(s,s2),EQ)]==>[]) \find(==>createdInHeap(EQ,h)) \replacewith([]==>[createdInHeap(s2,h)]) ; \replacewith([]==>[createdInHeap(s,h)]) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[548] 0s passed
[549] crossInst, crossInst { \assumes ([]==>[or(or(leq(k,Z(neglit(1(#)))),geq(k,i)),c)]) \find(all{v (variable)}(or(or(or(leq(v,Z(neglit(1(#)))),geq(v,j)),b),a))==>) \add [and(equals(sk,k),subst{v (variable)}(sk,or(or(or(leq(v,Z(neglit(1(#)))),geq(v,j)),b),a)))]==>[] \heuristics(loopInvariant) Choices: true} testEquality(String, String)[549] 0s passed
[54] add_two_inequations_2, add_two_inequations_2 { \assumes ([leq(i,i0)]==>[]) \find(leq(j,j0)==>) \add [leq(add(i,j),add(i0,j0))]==>[] Choices: true} testEquality(String, String)[54] 0.001s passed
[550] cut, cut { \add []==>[cutFormula] ; \add [cutFormula]==>[] \heuristics(cut) Choices: true} testEquality(String, String)[550] 0s passed
[551] cutUpperBound, cutUpperBound { \assumes ([all{v (variable)}(or(or(or(leq(v,Z(neglit(1(#)))),geq(v,j)),b),a))]==>[]) \find(==>or(or(leq(k,Z(neglit(1(#)))),geq(k,i)),c)) \add [not(equals(k,i))]==>[] ; \add [equals(k,i)]==>[] \heuristics(loopInvariant) Choices: true} testEquality(String, String)[551] 0s passed
[552] cut_direct, cut_direct { \find(cutFormula) \sameUpdateLevel\add []==>[cutFormula] \replacewith(false) ; \add [cutFormula]==>[] \replacewith(true) \heuristics(cut_direct) Choices: true} testEquality(String, String)[552] 0.001s passed
[553] cut_direct_l, cut_direct_l { \find(b==>) \add []==>[b] ; \replacewith([b]==>[]) Choices: true} testEquality(String, String)[553] 0.001s passed
[554] cut_direct_r, cut_direct_r { \find(==>b) \add [b]==>[] ; \replacewith([]==>[b]) Choices: true} testEquality(String, String)[554] 0.001s passed
[555] defInDomainImpliesCreated, defInDomainImpliesCreated { \find(inDomainImpliesCreated(m)) \varcond(\notFreeIn(o (variable), m (Map term))) \replacewith(all{o (variable)}(imp(inDomain(m,o),equals(boolean::select(heap,o,java.lang.Object::<created>),TRUE)))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[555] 0.001s passed
[556] defIsFinite, defIsFinite { \find(isFinite(m)) \varcond(\notFreeIn(s (variable), m (Map term)), \notFreeIn(vx (variable), m (Map term))) \replacewith(exists{s (variable)}(all{vx (variable)}(equiv(inDomain(m,vx),exists{ix (variable)}(and(and(leq(Z(0(#)),ix),lt(ix,seqLen(s))),equals(any::seqGet(s,ix),vx))))))) Choices: true} testEquality(String, String)[556] 0.001s passed
[557] defMapEmpty, defMapEmpty { \find(mapEmpty) \replacewith(mapForeach{vy (variable)}(FALSE,mapUndef)) Choices: true} testEquality(String, String)[557] 0s passed
[558] defMapEquality, defMapEquality { \find(equals(m0,m1)) \varcond(\notFreeIn(vy (variable), m1 (Map term)), \notFreeIn(vy (variable), m0 (Map term))) \replacewith(all{vy (variable)}(and(equiv(inDomain(m0,vy),inDomain(m1,vy)),imp(inDomain(m0,vy),equals(mapGet(m0,vy),mapGet(m1,vy)))))) Choices: true} testEquality(String, String)[558] 0s passed
[559] defMapOverride, defMapOverride { \find(mapOverride(m0,m1)) \varcond(\notFreeIn(vy (variable), m1 (Map term)), \notFreeIn(vy (variable), m0 (Map term))) \replacewith(mapForeach{vy (variable)}(if-then-else(or(inDomain(m0,vy),inDomain(m1,vy)),TRUE,FALSE),if-then-else(inDomain(m1,vy),mapGet(m1,vy),mapGet(m0,vy)))) Choices: true} testEquality(String, String)[559] 0s passed
[55] add_zero_left, add_zero_left { \find(add(Z(0(#)),i)) \replacewith(i) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[55] 0s passed
[560] defMapRemove, defMapRemove { \find(mapRemove(m,key)) \varcond(\notFreeIn(vy (variable), key (any term)), \notFreeIn(vy (variable), m (Map term))) \replacewith(mapForeach{vy (variable)}(if-then-else(and(inDomain(m,vy),not(equals(vy,key))),TRUE,FALSE),mapGet(m,vy))) Choices: true} testEquality(String, String)[560] 0s passed
[561] defMapSingleton, defMapSingleton { \find(mapSingleton(xa,y)) \varcond(\notFreeIn(vy (variable), y (any term)), \notFreeIn(vy (variable), xa (alpha term))) \replacewith(mapForeach{vy (variable)}(if-then-else(equals(vy,any::cast(xa)),TRUE,FALSE),y)) Choices: true} testEquality(String, String)[561] 0s passed
[562] defMapUpdate, defMapUpdate { \find(mapUpdate(m,key,value)) \varcond(\notFreeIn(vy (variable), value (any term)), \notFreeIn(vy (variable), key (any term)), \notFreeIn(vy (variable), m (Map term))) \replacewith(mapForeach{vy (variable)}(if-then-else(or(inDomain(m,vy),equals(vy,key)),TRUE,FALSE),if-then-else(equals(vy,key),value,mapGet(m,vy)))) Choices: true} testEquality(String, String)[562] 0s passed
[563] defOfEmpty, defOfEmpty { \find(seqEmpty) \varcond(\notFreeIn(uSub (variable), te (any term))) \replacewith(seqDef{uSub (variable)}(Z(0(#)),Z(0(#)),te)) Choices: sequences:on} testEquality(String, String)[563] 0.001s passed
[564] defOfSeqConcat, defOfSeqConcat { \find(seqConcat(seq1,seq2)) \varcond(\notFreeIn(uSub (variable), seq2 (Seq term)), \notFreeIn(uSub (variable), seq1 (Seq term))) \replacewith(seqDef{uSub (variable)}(Z(0(#)),add(seqLen(seq1),seqLen(seq2)),if-then-else(lt(uSub,seqLen(seq1)),any::seqGet(seq1,uSub),any::seqGet(seq2,sub(uSub,seqLen(seq1)))))) Choices: sequences:on} testEquality(String, String)[564] 0.001s passed
[565] defOfSeqReverse, defOfSeqReverse { \find(seqReverse(seq)) \varcond(\notFreeIn(uSub (variable), seq (Seq term))) \replacewith(seqDef{uSub (variable)}(Z(0(#)),seqLen(seq),any::seqGet(seq,sub(sub(seqLen(seq),uSub),Z(1(#)))))) Choices: sequences:on} testEquality(String, String)[565] 0.001s passed
[566] defOfSeqSingleton, defOfSeqSingleton { \find(seqSingleton(x)) \varcond(\notFreeIn(uSub (variable), x (any term))) \replacewith(seqDef{uSub (variable)}(Z(0(#)),Z(1(#)),x)) Choices: sequences:on} testEquality(String, String)[566] 0.001s passed
[567] defOfSeqSub, defOfSeqSub { \find(seqSub(seq,from,to)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term)), \notFreeIn(uSub (variable), seq (Seq term))) \replacewith(seqDef{uSub (variable)}(from,to,any::seqGet(seq,uSub))) Choices: sequences:on} testEquality(String, String)[567] 0.001s passed
[568] defSeq2Map, defSeq2Map { \find(seq2map(s)) \varcond(\notFreeIn(ix (variable), s (Seq term))) \replacewith(mapForeach{ix (variable)}(if-then-else(and(leq(Z(0(#)),ix),lt(ix,seqLen(s))),TRUE,FALSE),any::seqGet(s,ix))) Choices: true} testEquality(String, String)[568] 0s passed
[569] def_wellOrderLeqInt, def_wellOrderLeqInt { \find(wellOrderLeqInt(intT1,intT2)) \replacewith(or(and(geq(intT1,intT2),lt(intT2,Z(0(#)))),and(leq(Z(0(#)),intT1),leq(intT1,intT2)))) \heuristics(simplify) Choices: true} testEquality(String, String)[569] 0s passed
[56] add_zero_right, add_zero_right { \find(add(i,Z(0(#)))) \replacewith(i) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[56] 0.001s passed
[570] definitionAllElementsOfArray, definitionAllElementsOfArray { \find(allElementsOfArray(h,array,singleton(o,f))) \varcond(\notFreeIn(j (variable), f (Field term)), \notFreeIn(j (variable), o (java.lang.Object term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) \replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),singleton(java.lang.Object::select(h,array,arr(j)),f),empty))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[570] 0s passed
[571] definitionAllElementsOfArray2, definitionAllElementsOfArray2 { \find(allElementsOfArray(h,array,allFields(o))) \varcond(\notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) \replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),allFields(java.lang.Object::select(h,array,arr(j))),empty))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[571] 0s passed
[572] definitionAllElementsOfArrayLocsets, definitionAllElementsOfArrayLocsets { \find(allElementsOfArrayLocsets(h,array,singleton(o,f))) \varcond(\notFreeIn(j (variable), f (Field term)), \notFreeIn(j (variable), o (java.lang.Object term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) \replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),LocSet::select(h,java.lang.Object::select(h,array,arr(j)),f),empty))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[572] 0s passed
[573] definitionOfNewObjectsIsomorphic, definitionOfNewObjectsIsomorphic { \find(==>newObjectsIsomorphic(s1,h1,s2,h2)) \replacewith([]==>[objectsIsomorphic(s1,s1,s2,s2)]) ; \replacewith([]==>[sameTypes(s1,s2)]) ; \replacewith([]==>[newOnHeap(h2,s2)]) ; \replacewith([]==>[newOnHeap(h1,s1)]) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[573] 0s passed
[574] definitionOfNewOnHeap, definitionOfNewOnHeap { \find(==>newOnHeap(h,s)) \varcond(\notFreeIn(i (variable), h (Heap term)), \notFreeIn(i (variable), s (Seq term))) \replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s))),and(imp(equals(java.lang.Object::instance(any::seqGet(s,i)),TRUE),equals(boolean::select(h,java.lang.Object::seqGet(s,i),java.lang.Object::<created>),FALSE)),imp(equals(Seq::instance(any::seqGet(s,i)),TRUE),newOnHeap(h,Seq::seqGet(s,i))))))]) \heuristics(comprehensions) Choices: true} testEquality(String, String)[574] 0.001s passed
[575] definitionOfObjectIsomorphic, definitionOfObjectIsomorphic { \find(==>objectIsomorphic(s1,o1,s2,o2)) \varcond(\notFreeIn(i (variable), o2 (java.lang.Object term)), \notFreeIn(i (variable), o1 (java.lang.Object term)), \notFreeIn(i (variable), s2 (Seq term)), \notFreeIn(i (variable), s1 (Seq term))) \replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s1))),and(imp(equals(java.lang.Object::instance(any::seqGet(s1,i)),TRUE),equiv(equals(java.lang.Object::seqGet(s1,i),o1),equals(java.lang.Object::seqGet(s2,i),o2))),imp(… testEquality(String, String)[575] 0.001s passed
[576] definitionOfObjectsIsomorphic, definitionOfObjectsIsomorphic { \find(==>objectsIsomorphic(s1,t1,s2,t2)) \varcond(\notFreeIn(i (variable), t2 (Seq term)), \notFreeIn(i (variable), t1 (Seq term)), \notFreeIn(i (variable), s2 (Seq term)), \notFreeIn(i (variable), s1 (Seq term))) \replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(t1))),and(imp(equals(java.lang.Object::instance(any::seqGet(t1,i)),TRUE),objectIsomorphic(s1,java.lang.Object::seqGet(t1,i),s2,java.lang.Object::seqGet(t2,i))),imp(equals(Seq::instance(any::seq… testEquality(String, String)[576] 0s passed
[577] definitionOfSameTypes, definitionOfSameTypes { \find(==>sameTypes(s1,s2)) \varcond(\notFreeIn(i (variable), s2 (Seq term)), \notFreeIn(i (variable), s1 (Seq term))) \replacewith([]==>[and(equals(seqLen(s1),seqLen(s2)),all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s1))),and(sameType(any::seqGet(s1,i),any::seqGet(s2,i)),imp(equals(Seq::instance(any::seqGet(s1,i)),TRUE),sameTypes(Seq::seqGet(s1,i),Seq::seqGet(s2,i)))))))]) \heuristics(comprehensions) Choices: true} testEquality(String, String)[577] 0.001s passed
[578] definitionSeqdefWorkaround, definitionSeqdefWorkaround { \find(seq_def_workaround(h,lower,upper,array)) \varcond(\notFreeIn(j (variable), upper (int term)), \notFreeIn(j (variable), lower (int term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) \replacewith(seqDef{j (variable)}(lower,upper,any::select(h,array,arr(j)))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[578] 0.001s passed
[579] definitionSeqdefWorkaround2, definitionSeqdefWorkaround2 { \find(seq_def_workaround2(h,lower,upper,array,singleton(o,f))) \varcond(\notFreeIn(j (variable), upper (int term)), \notFreeIn(j (variable), lower (int term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), f (Field term)), \notFreeIn(j (variable), h (Heap term))) \replacewith(seqDef{j (variable)}(lower,upper,any::select(h,java.lang.Object::select(h,array,arr(j)),f))) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[579] 0.001s passed
[57] addition_associative, addition_associative { \find(add(add(i0,i1),add(j0,j1))) \replacewith(add(add(j0,i1),add(i0,j1))) Choices: true} testEquality(String, String)[57] 0.001s passed
[580] deleteMergePoint, deleteMergePoint { \find(#allmodal ( (modal operator))\[{ .. //@ merge_point (#lhs (program LeftHandSide)); ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(merge_point, simplify_prog) Choices: programRules:Java} testEquality(String, String)[580] 0.001s passed
[581] delete_unnecessary_cast, delete_unnecessary_cast { \find(#allmodal ( (modal operator))\[{ .. #lhs=(#npit)#se; ... }\] (post)) \sameUpdateLevel\varcond(\hasSort(#npit (program NonPrimitiveType), G), \sub(\typeof(#se (program SimpleExpression)), G), ) \add [or(equals(#se,null),equals(G::instance(#se),TRUE))]==>[] \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(#addCast(#se,#lhs)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[581] 0.002s passed
[582] diamondToBox, diamondToBox { \find(\<{ .. #s ... }\> (post)) \replacewith(not(\[{ .. #s ... }\] (not(post)))) \heuristics(boxDiamondConv) Choices: programRules:Java} testEquality(String, String)[582] 0.001s passed
[583] diamondToBoxTransaction, diamondToBoxTransaction { \find(diamond_transaction\[{ .. #s ... }\] (post)) \replacewith(not(box_transaction\[{ .. #s ... }\] (not(post)))) \heuristics(boxDiamondConv) Choices: programRules:Java} testEquality(String, String)[583] 0s passed
[584] diamond_and_left, diamond_and_left { \find(#diamond ( (modal operator))\[{ .. #s ... }\] (and(post,post1))==>) \replacewith([and(#diamond ( (modal operator))\[{ .. #s ... }\] (post),#diamond ( (modal operator))\[{ .. #s ... }\] (post1))]==>[]) Choices: programRules:Java} testEquality(String, String)[584] 0s passed
[585] diamond_and_right, diamond_and_right { \find(==>#diamond ( (modal operator))\[{ .. #s ... }\] (and(post,post1))) \replacewith([]==>[#diamond ( (modal operator))\[{ .. #s ... }\] (post1)]) ; \replacewith([]==>[#diamond ( (modal operator))\[{ .. #s ... }\] (post)]) Choices: programRules:Java} testEquality(String, String)[585] 0s passed
[586] diamond_false, diamond_false { \find(#diamond ( (modal operator))\[{ .. #s ... }\] (false)) \replacewith(false) \heuristics(modal_tautology) Choices: programRules:Java} testEquality(String, String)[586] 0s passed
[587] diamond_or_left, diamond_or_left { \find(#diamond ( (modal operator))\[{ .. #s ... }\] (or(post,post1))==>) \replacewith([or(#diamond ( (modal operator))\[{ .. #s ... }\] (post),#diamond ( (modal operator))\[{ .. #s ... }\] (post1))]==>[]) Choices: programRules:Java} testEquality(String, String)[587] 0s passed
[588] diamond_or_right, diamond_or_right { \find(==>#diamond ( (modal operator))\[{ .. #s ... }\] (or(post,post1))) \replacewith([]==>[or(#diamond ( (modal operator))\[{ .. #s ... }\] (post),#diamond ( (modal operator))\[{ .. #s ... }\] (post1))]) Choices: programRules:Java} testEquality(String, String)[588] 0s passed
[589] diamond_split_termination, diamond_split_termination { \find(\<{ .. #s ... }\> (post)) \replacewith(and(\[{ .. #s ... }\] (post),\<{ .. #s ... }\> (true))) Choices: programRules:Java} testEquality(String, String)[589] 0.001s passed
[58] allFieldsEq, allFieldsEq { \find(equals(allFields(o1),allFields(o2))) \replacewith(equals(o1,o2)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[58] 0.002s passed
[590] disjointAllFields, disjointAllFields { \assumes ([equals(intersect(allFields(o),s),empty)]==>[]) \find(elementOf(o,f,s)) \sameUpdateLevel\replacewith(false) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[590] 0.001s passed
[591] disjointAllFields_2, disjointAllFields_2 { \find(equals(intersect(allFields(o),allFields(o2)),empty)) \replacewith(not(equals(o,o2))) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[591] 0.001s passed
[592] disjointAllObjects, disjointAllObjects { \assumes ([equals(intersect(allObjects(f),s),empty)]==>[]) \find(elementOf(o,f,s)) \sameUpdateLevel\replacewith(false) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[592] 0.001s passed
[593] disjointAndSubset1, disjointAndSubset1 { \assumes ([equals(intersect(s2,s3),empty)]==>[]) \find(subset(s,s2)==>) \add [equals(intersect(s,s3),empty)]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[593] 0.001s passed
[594] disjointAndSubset2, disjointAndSubset2 { \assumes ([equals(intersect(s2,s3),empty)]==>[]) \find(subset(s,s3)==>) \add [equals(intersect(s,s2),empty)]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[594] 0.001s passed
[595] disjointAndSubset_3, disjointAndSubset_3 { \assumes ([equals(intersect(s1,s2),empty)]==>[]) \find(subset(s4,union(s2,s3))==>) \add [imp(equals(intersect(s1,s3),empty),equals(intersect(s1,s4),empty))]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[595] 0s passed
[596] disjointAndSubset_4, disjointAndSubset_4 { \assumes ([equals(intersect(s1,s2),empty)]==>[]) \find(subset(s4,union(s3,s2))==>) \add [imp(equals(intersect(s1,s3),empty),equals(intersect(s1,s4),empty))]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[596] 0s passed
[597] disjointAndSubset_5, disjointAndSubset_5 { \assumes ([equals(intersect(s2,s1),empty)]==>[]) \find(subset(s4,union(s2,s3))==>) \add [imp(equals(intersect(s1,s3),empty),equals(intersect(s1,s4),empty))]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[597] 0s passed
[598] disjointAndSubset_6, disjointAndSubset_6 { \assumes ([equals(intersect(s2,s1),empty)]==>[]) \find(subset(s4,union(s3,s2))==>) \add [imp(equals(intersect(s1,s3),empty),equals(intersect(s1,s4),empty))]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[598] 0s passed
[599] disjointArrayRangeAllFields1, disjointArrayRangeAllFields1 { \find(equals(intersect(allFields(o1),arrayRange(o2,lower2,upper2)),empty)) \replacewith(not(and(equals(o1,o2),leq(lower2,upper2)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[599] 0s passed
[59] allFieldsSubsetOf, allFieldsSubsetOf { \assumes ([subset(allFields(o),s)]==>[]) \find(elementOf(o,f,s)) \sameUpdateLevel\replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[59] 0s passed
[5] acosIsNaN, acosIsNaN { \find(acosDouble(arg)) \add [imp(or(or(doubleIsNaN(arg),ltDouble(arg,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#))))))))))))))))))))))),gtDouble(arg,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),doubleIsNaN(acosDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[5] 0.001s passed
[600] disjointArrayRangeAllFields2, disjointArrayRangeAllFields2 { \find(equals(intersect(arrayRange(o1,lower1,upper1),allFields(o2)),empty)) \replacewith(not(and(equals(o1,o2),leq(lower1,upper1)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[600] 0.001s passed
[601] disjointArrayRanges, disjointArrayRanges { \find(equals(intersect(arrayRange(o1,lower1,upper1),arrayRange(o2,lower2,upper2)),empty)) \replacewith(not(and(and(and(equals(o1,o2),leq(lower1,upper1)),leq(lower2,upper2)),or(and(leq(lower1,lower2),leq(lower2,upper1)),and(leq(lower2,lower1),leq(lower1,upper2)))))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[601] 0.001s passed
[602] disjointDefinition, disjointDefinition { \find(disjoint(s,s2)) \replacewith(equals(intersect(s,s2),empty)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[602] 0.001s passed
[603] disjointInfiniteUnion, disjointInfiniteUnion { \find(equals(intersect(infiniteUnion{iv (variable)}(s2),s),empty)) \varcond(\notFreeIn(iv (variable), s (LocSet term))) \replacewith(all{iv (variable)}(equals(intersect(s2,s),empty))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[603] 0.001s passed
[604] disjointInfiniteUnion_2, disjointInfiniteUnion_2 { \find(equals(intersect(s,infiniteUnion{iv (variable)}(s2)),empty)) \varcond(\notFreeIn(iv (variable), s (LocSet term))) \replacewith(all{iv (variable)}(equals(intersect(s,s2),empty))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[604] 0.010s passed
[605] disjointNotInOtherLocset1, disjointNotInOtherLocset1 { \assumes ([equals(intersect(s,s2),empty)]==>[]) \find(elementOf(o,f,s)==>) \add []==>[elementOf(o,f,s2)] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[605] 0.001s passed
[606] disjointNotInOtherLocset2, disjointNotInOtherLocset2 { \assumes ([equals(intersect(s,s2),empty)]==>[]) \find(elementOf(o,f,s2)==>) \add []==>[elementOf(o,f,s)] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[606] 0.001s passed
[607] disjointToElementOf, disjointToElementOf { \find(disjoint(s,s2)) \varcond(\notFreeIn(fv (variable), s2 (LocSet term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), s2 (LocSet term)), \notFreeIn(ov (variable), s (LocSet term))) \replacewith(all{ov (variable)}(all{fv (variable)}(or(not(elementOf(ov,fv,s)),not(elementOf(ov,fv,s2)))))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[607] 0.001s passed
[608] disjointWithEmpty, disjointWithEmpty { \find(disjoint(empty,s)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[608] 0s passed
[609] disjointWithSingleton1, disjointWithSingleton1 { \find(equals(intersect(s,singleton(o,f)),empty)) \replacewith(not(elementOf(o,f,s))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[609] 0s passed
[60] allFieldsUnfold, allFieldsUnfold { \find(#allmodal ( (modal operator))\[{ .. #v=\all_fields(#nseObj); ... }\] (post)) \varcond(\new(#vObjNew (program Variable), \typeof(#nseObj (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nseObj) #vObjNew = #nseObj;#v=\all_fields(#vObjNew); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[60] 0.001s passed
[610] disjointWithSingleton2, disjointWithSingleton2 { \find(equals(intersect(singleton(o,f),s),empty)) \replacewith(not(elementOf(o,f,s))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[610] 0s passed
[611] dismissNonSelectedField, dismissNonSelectedField { \find(alpha::select(store(h,o,f1,x),u,f2)) \varcond(\differentFields (f1 (Field term), f2 (Field term)), ) \replacewith(alpha::select(h,u,f2)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[611] 0.001s passed
[612] dismissNonSelectedFieldEQ, dismissNonSelectedFieldEQ { \assumes ([equals(store(h,o,f1,x),EQ)]==>[]) \find(alpha::select(EQ,u,f2)) \sameUpdateLevel\varcond(\differentFields (f1 (Field term), f2 (Field term)), ) \replacewith(alpha::select(h,u,f2)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[612] 0.001s passed
[613] distr_existsAnd1, distr_existsAnd1 { \find(exists{u (variable)}(and(phi,psi))) \varcond(\notFreeIn(u (variable), psi (formula))) \replacewith(and(exists{u (variable)}(phi),psi)) \heuristics(notHumanReadable, distrQuantifier) Choices: true} testEquality(String, String)[613] 0s passed
[614] distr_existsAnd2, distr_existsAnd2 { \find(exists{u (variable)}(and(phi,psi))) \varcond(\notFreeIn(u (variable), phi (formula))) \replacewith(and(phi,exists{u (variable)}(psi))) \heuristics(notHumanReadable, distrQuantifier) Choices: true} testEquality(String, String)[614] 0s passed
[615] distr_existsOr, distr_existsOr { \find(exists{u (variable)}(or(phi,psi))) \replacewith(or(exists{u (variable)}(phi),exists{u (variable)}(psi))) \heuristics(notHumanReadable, distrQuantifier) Choices: true} testEquality(String, String)[615] 0s passed
[616] distr_forallAnd, distr_forallAnd { \find(all{u (variable)}(and(phi,psi))) \replacewith(and(all{u (variable)}(phi),all{u (variable)}(psi))) \heuristics(notHumanReadable, distrQuantifier) Choices: true} testEquality(String, String)[616] 0s passed
[617] distr_forallOr1, distr_forallOr1 { \find(all{u (variable)}(or(phi,psi))) \varcond(\notFreeIn(u (variable), psi (formula))) \replacewith(or(all{u (variable)}(phi),psi)) \heuristics(notHumanReadable, distrQuantifier) Choices: true} testEquality(String, String)[617] 0s passed
[618] distr_forallOr2, distr_forallOr2 { \find(all{u (variable)}(or(phi,psi))) \varcond(\notFreeIn(u (variable), phi (formula))) \replacewith(or(phi,all{u (variable)}(psi))) \heuristics(notHumanReadable, distrQuantifier) Choices: true} testEquality(String, String)[618] 0.001s passed
[619] distributeIntersection, distributeIntersection { \find(intersect(s1,union(s2,s3))) \replacewith(union(intersect(s1,s2),intersect(s1,s3))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[619] 0.001s passed
[61] allLeft, allLeft { \find(all{u (variable)}(b)==>) \add [subst{u (variable)}(t,b)]==>[] \heuristics(gamma) Choices: true} testEquality(String, String)[61] 0s passed
[620] distributeIntersection_2, distributeIntersection_2 { \find(intersect(union(s2,s3),s1)) \replacewith(union(intersect(s2,s1),intersect(s3,s1))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[620] 0.001s passed
[621] divAddMultDenom, divAddMultDenom { \find(div(add(divNum,mul(coef,divDenom)),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(add(div(divNum,divDenom),coef)) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[621] 0.001s passed
[622] divGreatestDNeg, divGreatestDNeg { \find(lt(divNum,mul(divDenom,coef))==>) \add [imp(lt(divDenom,Z(0(#))),lt(coef,div(divNum,divDenom)))]==>[] Choices: true} testEquality(String, String)[622] 0s passed
[623] divGreatestDPos, divGreatestDPos { \find(leq(mul(divDenom,coef),divNum)==>) \add [imp(gt(divDenom,Z(0(#))),leq(coef,div(divNum,divDenom)))]==>[] Choices: true} testEquality(String, String)[623] 0s passed
[624] divIncreasingNeg, divIncreasingNeg { \add [all{divDenom1 (variable)}(all{divNum1 (variable)}(all{divNum2 (variable)}(imp(and(lt(divDenom1,Z(0(#))),leq(divNum1,divNum2)),geq(div(divNum1,divDenom1),div(divNum2,divDenom1))))))]==>[] Choices: true} testEquality(String, String)[624] 0s passed
[625] divIncreasingPos, divIncreasingPos { \add [all{divDenom1 (variable)}(all{divNum1 (variable)}(all{divNum2 (variable)}(imp(and(gt(divDenom1,Z(0(#))),leq(divNum1,divNum2)),leq(div(divNum1,divDenom1),div(divNum2,divDenom1))))))]==>[] Choices: true} testEquality(String, String)[625] 0s passed
[626] divLeastDNeg, divLeastDNeg { \find(leq(mul(divDenom,coef),divNum)==>) \add [imp(lt(divDenom,Z(0(#))),leq(div(divNum,divDenom),coef))]==>[] Choices: true} testEquality(String, String)[626] 0.001s passed
[627] divLeastDPos, divLeastDPos { \find(lt(divNum,mul(divDenom,coef))==>) \add [imp(gt(divDenom,Z(0(#))),lt(div(divNum,divDenom),coef))]==>[] Choices: true} testEquality(String, String)[627] 0.001s passed
[628] divMinus, divMinus { \find(div(neg(divNum),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(if-then-else(equals(mul(div(divNum,divDenom),divDenom),divNum),neg(div(divNum,divDenom)),if-then-else(gt(divDenom,Z(0(#))),sub(neg(div(divNum,divDenom)),Z(1(#))),add(neg(div(divNum,divDenom)),Z(1(#)))))) Choices: true} testEquality(String, String)[628] 0.001s passed
[629] divMinusDenom, divMinusDenom { \find(div(divNum,neg(divDenom))) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(neg(div(divNum,divDenom))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[629] 0.001s passed
[62] allLeftHide, allLeftHide { \find(all{u (variable)}(b)==>) \addrules [insert_hidden { \add [all{u (variable)}(b)]==>[] Choices: true}] \replacewith([subst{u (variable)}(t,b)]==>[]) \heuristics(gamma_destructive) Choices: true} testEquality(String, String)[62] 0.001s passed
[630] divResOne1, divResOne1 { \find(div(divNum,divDenom)) \add [imp(and(and(gt(divDenom,Z(0(#))),lt(divNum,Z(0(#)))),lt(neg(divDenom),divNum)),equals(div(divNum,divDenom),Z(neglit(1(#)))))]==>[] Choices: true} testEquality(String, String)[630] 0.001s passed
[631] divResOne2, divResOne2 { \find(div(divNum,divDenom)) \add [imp(and(and(lt(divDenom,Z(0(#))),lt(divNum,Z(0(#)))),lt(divDenom,divNum)),equals(div(divNum,divDenom),Z(1(#))))]==>[] Choices: true} testEquality(String, String)[631] 0s passed
[632] divResZero1, divResZero1 { \find(div(divNum,divDenom)) \add [imp(and(and(gt(divDenom,Z(0(#))),leq(Z(0(#)),divNum)),lt(divNum,divDenom)),equals(div(divNum,divDenom),Z(0(#))))]==>[] Choices: true} testEquality(String, String)[632] 0s passed
[633] divResZero2, divResZero2 { \find(div(divNum,divDenom)) \add [imp(and(and(lt(divDenom,Z(0(#))),leq(Z(0(#)),divNum)),lt(divNum,neg(divDenom))),equals(div(divNum,divDenom),Z(0(#))))]==>[] Choices: true} testEquality(String, String)[633] 0s passed
[634] div_axiom, div_axiom { \find(div(divNum,divDenom)) \sameUpdateLevel\add [or(equals(divDenom,Z(0(#))),and(and(equals(div(divNum,divDenom),quotient),leq(mul(quotient,divDenom),divNum)),if-then-else(geq(divDenom,Z(0(#))),geq(mul(quotient,divDenom),add(add(Z(1(#)),divNum),mul(Z(neglit(1(#))),divDenom))),geq(mul(quotient,divDenom),add(add(Z(1(#)),divNum),divDenom)))))]==>[] \heuristics(notHumanReadable, polySimp_newSmallSym, defOps_div) Choices: true} testEquality(String, String)[634] 0s passed
[635] div_cancel1, div_cancel1 { \find(div(mul(divNum,divDenom),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(divNum) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[635] 0s passed
[636] div_cancel2, div_cancel2 { \find(div(mul(divDenom,divNum),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(divNum) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[636] 0.001s passed
[637] div_exists, div_exists { \find(div(divNum,divDenom)) \add [all{cnom (variable)}(imp(not(equals(cnom,Z(0(#)))),all{a (variable)}(exists{qu (variable)}(exists{rm (variable)}(and(and(equals(a,add(mul(qu,cnom),rm)),leq(Z(0(#)),rm)),if-then-else(geq(cnom,Z(0(#))),and(geq(mul(qu,cnom),add(add(Z(1(#)),a),mul(Z(neglit(1(#))),cnom))),lt(rm,cnom)),and(geq(mul(qu,cnom),add(add(Z(1(#)),a),cnom)),lt(rm,neg(cnom))))))))))]==>[] Choices: true} testEquality(String, String)[637] 0.001s passed
[638] div_literals, div_literals { \find(div(Z(iz),Z(jz))) \replacewith(#div(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[638] 0.001s passed
[639] div_one, div_one { \find(div(divNum,Z(1(#)))) \replacewith(divNum) \heuristics(concrete) Choices: true} testEquality(String, String)[639] 0.001s passed
[63] allObjectsAssignment, allObjectsAssignment { \find(#allmodal ( (modal operator))\[{ .. #v=\all_objects(#eObj.#a); ... }\] (post)) \replacewith(update-application(elem-update(#v (program Variable))(allObjects(#memberPVToField(#a))),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[63] 0.002s passed
[640] div_unique1, div_unique1 { \find(div(divNum,divDenom)) \add [all{a (variable)}(all{cnom (variable)}(all{x (variable)}(all{y (variable)}(imp(and(and(and(and(gt(cnom,Z(0(#))),leq(mul(x,cnom),a)),leq(mul(y,cnom),a)),geq(mul(x,cnom),sub(add(Z(1(#)),a),cnom))),geq(mul(y,cnom),sub(add(Z(1(#)),a),cnom))),equals(x,y))))))]==>[] Choices: true} testEquality(String, String)[640] 0.001s passed
[641] div_unique2, div_unique2 { \find(div(divNum,divDenom)) \add [all{a (variable)}(all{cnom (variable)}(all{x (variable)}(all{y (variable)}(imp(and(and(and(and(lt(cnom,Z(0(#))),leq(mul(x,cnom),a)),leq(mul(y,cnom),a)),geq(mul(x,cnom),add(add(Z(1(#)),a),cnom))),geq(mul(y,cnom),add(add(Z(1(#)),a),cnom))),equals(x,y))))))]==>[] Choices: true} testEquality(String, String)[641] 0.001s passed
[642] div_zero, div_zero { \find(div(Z(0(#)),divDenom)) \add []==>[not(equals(divDenom,Z(0(#))))] ; \replacewith(Z(0(#))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[642] 0.001s passed
[643] divide_eq0, divide_eq0 { \assumes ([geq(divX,divXBoundPos)]==>[]) \find(equals(divProd,divProdBoundNonNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundPos,Z(1(#))),imp(geq(divProdBoundNonNeg,Z(0(#))),leq(divY,div(divProdBoundNonNeg,divXBoundPos)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[643] 0s passed
[644] divide_eq1, divide_eq1 { \assumes ([geq(divX,divXBoundNonNeg)]==>[]) \find(equals(divProd,divProdBoundNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundNonNeg,Z(0(#))),imp(leq(divProdBoundNeg,Z(neglit(1(#)))),leq(divY,Z(neglit(1(#)))))))]==>[] \heuristics(inEqSimp_nonLin_neg, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[644] 0s passed
[645] divide_eq2, divide_eq2 { \assumes ([geq(divX,divXBoundPos)]==>[]) \find(equals(divProd,divProdBoundNonPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundPos,Z(1(#))),imp(leq(divProdBoundNonPos,Z(0(#))),geq(divY,div(sub(add(divProdBoundNonPos,divXBoundPos),Z(1(#))),divXBoundPos)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[645] 0s passed
[646] divide_eq3, divide_eq3 { \assumes ([geq(divX,divXBoundNonNeg)]==>[]) \find(equals(divProd,divProdBoundPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundNonNeg,Z(0(#))),imp(geq(divProdBoundPos,Z(1(#))),geq(divY,Z(1(#))))))]==>[] \heuristics(inEqSimp_nonLin_pos, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[646] 0s passed
[647] divide_eq4, divide_eq4 { \assumes ([leq(divX,divXBoundNeg)]==>[]) \find(equals(divProd,divProdBoundNonPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNeg,Z(neglit(1(#)))),imp(leq(divProdBoundNonPos,Z(0(#))),leq(divY,div(divProdBoundNonPos,divXBoundNeg)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[647] 0s passed
[648] divide_eq5, divide_eq5 { \assumes ([leq(divX,divXBoundNonPos)]==>[]) \find(equals(divProd,divProdBoundPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNonPos,Z(0(#))),imp(geq(divProdBoundPos,Z(1(#))),leq(divY,Z(neglit(1(#)))))))]==>[] \heuristics(inEqSimp_nonLin_neg, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[648] 0.001s passed
[649] divide_eq6, divide_eq6 { \assumes ([leq(divX,divXBoundNeg)]==>[]) \find(equals(divProd,divProdBoundNonNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNeg,Z(neglit(1(#)))),imp(geq(divProdBoundNonNeg,Z(0(#))),geq(divY,div(divProdBoundNonNeg,divXBoundNeg)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[649] 0s passed
[64] allRight, allRight { \find(==>all{u (variable)}(b)) \replacewith([]==>[subst{u (variable)}(sk,b)]) \heuristics(delta) Choices: true} testEquality(String, String)[64] 0.001s passed
[650] divide_eq7, divide_eq7 { \assumes ([leq(divX,divXBoundNonPos)]==>[]) \find(equals(divProd,divProdBoundNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNonPos,Z(0(#))),imp(leq(divProdBoundNeg,Z(neglit(1(#)))),geq(divY,Z(1(#))))))]==>[] \heuristics(inEqSimp_nonLin_pos, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[650] 0s passed
[651] divide_equation, divide_equation { \find(equals(elimGcdLeft,elimGcdRight)) \replacewith(if-then-else(and(and(geq(elimGcd,Z(1(#))),equals(mod(elimGcdLeft,elimGcd),Z(0(#)))),leq(mod(elimGcdRight,elimGcd),add(Z(neglit(1(#))),elimGcd))),and(equals(mod(elimGcdRight,elimGcd),Z(0(#))),equals(div(elimGcdLeft,elimGcd),div(elimGcdRight,elimGcd))),equals(elimGcdLeft,elimGcdRight))) Choices: integerSimplificationRules:full} testEquality(String, String)[651] 0s passed
[652] divide_geq, divide_geq { \find(geq(elimGcdLeft,elimGcdRight)) \replacewith(if-then-else(and(and(geq(elimGcd,Z(1(#))),equals(mod(elimGcdLeft,elimGcd),Z(0(#)))),leq(mod(elimGcdRight,elimGcd),add(Z(neglit(1(#))),elimGcd))),geq(div(elimGcdLeft,elimGcd),add(Z(1(#)),div(add(Z(neglit(1(#))),elimGcdRight),elimGcd))),geq(elimGcdLeft,elimGcdRight))) Choices: integerSimplificationRules:full} testEquality(String, String)[652] 0s passed
[653] divide_inEq0, divide_inEq0 { \assumes ([geq(divX,divXBoundPos)]==>[]) \find(leq(divProd,divProdBoundNonNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundPos,Z(1(#))),imp(geq(divProdBoundNonNeg,Z(0(#))),leq(divY,div(divProdBoundNonNeg,divXBoundPos)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[653] 0s passed
[654] divide_inEq1, divide_inEq1 { \assumes ([geq(divX,divXBoundNonNeg)]==>[]) \find(leq(divProd,divProdBoundNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundNonNeg,Z(0(#))),imp(leq(divProdBoundNeg,Z(neglit(1(#)))),leq(divY,Z(neglit(1(#)))))))]==>[] \heuristics(inEqSimp_nonLin_neg, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[654] 0.001s passed
[655] divide_inEq2, divide_inEq2 { \assumes ([geq(divX,divXBoundPos)]==>[]) \find(geq(divProd,divProdBoundNonPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundPos,Z(1(#))),imp(leq(divProdBoundNonPos,Z(0(#))),geq(divY,div(sub(add(divProdBoundNonPos,divXBoundPos),Z(1(#))),divXBoundPos)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[655] 0.001s passed
[656] divide_inEq3, divide_inEq3 { \assumes ([geq(divX,divXBoundNonNeg)]==>[]) \find(geq(divProd,divProdBoundPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(geq(divXBoundNonNeg,Z(0(#))),imp(geq(divProdBoundPos,Z(1(#))),geq(divY,Z(1(#))))))]==>[] \heuristics(inEqSimp_nonLin_pos, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[656] 0.001s passed
[657] divide_inEq4, divide_inEq4 { \assumes ([leq(divX,divXBoundNeg)]==>[]) \find(geq(divProd,divProdBoundNonPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNeg,Z(neglit(1(#)))),imp(leq(divProdBoundNonPos,Z(0(#))),leq(divY,div(divProdBoundNonPos,divXBoundNeg)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[657] 0.001s passed
[658] divide_inEq5, divide_inEq5 { \assumes ([leq(divX,divXBoundNonPos)]==>[]) \find(geq(divProd,divProdBoundPos)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNonPos,Z(0(#))),imp(geq(divProdBoundPos,Z(1(#))),leq(divY,Z(neglit(1(#)))))))]==>[] \heuristics(inEqSimp_nonLin_neg, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[658] 0.001s passed
[659] divide_inEq6, divide_inEq6 { \assumes ([leq(divX,divXBoundNeg)]==>[]) \find(leq(divProd,divProdBoundNonNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNeg,Z(neglit(1(#)))),imp(geq(divProdBoundNonNeg,Z(0(#))),geq(divY,div(divProdBoundNonNeg,divXBoundNeg)))))]==>[] \heuristics(inEqSimp_nonLin_divide, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[659] 0.001s passed
[65] all_bool, all_bool { \find(all{x (variable)}(c)) \replacewith(and(subst{x (variable)}(FALSE,c),subst{x (variable)}(TRUE,c))) \heuristics(boolean_cases) Choices: true} testEquality(String, String)[65] 0.001s passed
[660] divide_inEq7, divide_inEq7 { \assumes ([leq(divX,divXBoundNonPos)]==>[]) \find(leq(divProd,divProdBoundNeg)==>) \add [imp(equals(divProd,mul(divX,divY)),imp(leq(divXBoundNonPos,Z(0(#))),imp(leq(divProdBoundNeg,Z(neglit(1(#)))),geq(divY,Z(1(#))))))]==>[] \heuristics(inEqSimp_nonLin_pos, inEqSimp_special_nonLin) Choices: integerSimplificationRules:full} testEquality(String, String)[660] 0.001s passed
[661] divide_leq, divide_leq { \find(leq(elimGcdLeft,elimGcdRight)) \replacewith(if-then-else(and(and(geq(elimGcd,Z(1(#))),equals(mod(elimGcdLeft,elimGcd),Z(0(#)))),leq(mod(elimGcdRight,elimGcd),add(Z(neglit(1(#))),elimGcd))),leq(div(elimGcdLeft,elimGcd),div(elimGcdRight,elimGcd)),leq(elimGcdLeft,elimGcdRight))) Choices: integerSimplificationRules:full} testEquality(String, String)[661] 0.001s passed
[662] doWhileUnwind, doWhileUnwind { \find(#allmodal ( (modal operator))\[{ .. do#swhile ( #e ); ... }\] (post)) \varcond(\newLabel (#innerLabel (program Label)), \newLabel (#outerLabel (program Label)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #unwind-loop(do#swhile ( #e ); ) ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[662] 0.001s passed
[663] doubleImpLeft, doubleImpLeft { \find(imp(b,imp(c,d))==>) \replacewith([d]==>[]) ; \replacewith([]==>[c]) ; \replacewith([]==>[b]) \heuristics(beta) Choices: true} testEquality(String, String)[663] 0.001s passed
[664] double_not, double_not { \find(not(not(b))) \replacewith(b) \heuristics(concrete) Choices: true} testEquality(String, String)[664] 0.001s passed
[665] double_unary_minus_literal, double_unary_minus_literal { \find(Z(neglit(neglit(iz)))) \replacewith(Z(iz)) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[665] 0.001s passed
[666] dropEffectlessStores, dropEffectlessStores { \find(store(h,o,f,x)) \varcond(\dropEffectlessStores(h (Heap term), o (java.lang.Object term), f (Field term), x (any term), result (Heap term)), ) \replacewith(result) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[666] 0.005s passed
[667] elementOfAllFields, elementOfAllFields { \find(elementOf(o,f,allFields(o2))) \replacewith(equals(o,o2)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[667] 0.001s passed
[668] elementOfAllLocs, elementOfAllLocs { \find(elementOf(o,f,allLocs)) \replacewith(true) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[668] 0.002s passed
[669] elementOfAllObjects, elementOfAllObjects { \find(elementOf(o,f,allObjects(f2))) \replacewith(equals(f,f2)) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[669] 0.001s passed
[66] all_pull_out0, all_pull_out0 { \find(and(all{u (variable)}(b),c)) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(all{u (variable)}(and(b,c))) \heuristics(pullOutQuantifierAll) Choices: true} testEquality(String, String)[66] 0.002s passed
[670] elementOfArrayRange, elementOfArrayRange { \find(elementOf(o,f,arrayRange(o2,lower,upper))) \varcond(\notFreeIn(iv (variable), upper (int term)), \notFreeIn(iv (variable), lower (int term)), \notFreeIn(iv (variable), f (Field term))) \replacewith(and(equals(o,o2),exists{iv (variable)}(and(and(equals(f,arr(iv)),leq(lower,iv)),leq(iv,upper))))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[670] 0.001s passed
[671] elementOfArrayRangeConcrete, elementOfArrayRangeConcrete { \find(elementOf(o,arr(idx),arrayRange(o2,lower,upper))) \replacewith(and(and(equals(o,o2),leq(lower,idx)),leq(idx,upper))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[671] 0.001s passed
[672] elementOfArrayRangeEQ, elementOfArrayRangeEQ { \assumes ([equals(arrayRange(o2,lower,upper),EQ)]==>[]) \find(elementOf(o,f,EQ)) \sameUpdateLevel\varcond(\notFreeIn(iv (variable), upper (int term)), \notFreeIn(iv (variable), lower (int term)), \notFreeIn(iv (variable), f (Field term))) \replacewith(and(equals(o,o2),exists{iv (variable)}(and(and(equals(f,arr(iv)),leq(lower,iv)),leq(iv,upper))))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[672] 0.001s passed
[673] elementOfEmpty, elementOfEmpty { \find(elementOf(o,f,empty)) \replacewith(false) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[673] 0.001s passed
[674] elementOfFreshLocs, elementOfFreshLocs { \find(elementOf(o,f,freshLocs(h))) \replacewith(and(not(equals(o,null)),not(equals(boolean::select(h,o,java.lang.Object::<created>),TRUE)))) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[674] 0s passed
[675] elementOfGuardedSet, elementOfGuardedSet { \find(elementOf(o,f,if-then-else(phi,s,empty))) \replacewith(and(phi,elementOf(o,f,s))) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[675] 0s passed
[676] elementOfInfiniteUnion, elementOfInfiniteUnion { \find(elementOf(o,f,infiniteUnion{av (variable)}(s))) \varcond(\notFreeIn(av (variable), f (Field term)), \notFreeIn(av (variable), o (java.lang.Object term))) \replacewith(exists{av (variable)}(elementOf(o,f,s))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[676] 0s passed
[677] elementOfInfiniteUnion2Vars, elementOfInfiniteUnion2Vars { \find(elementOf(o,f,infiniteUnion{av (variable), bv (variable)}(s))) \varcond(\notFreeIn(bv (variable), f (Field term)), \notFreeIn(bv (variable), o (java.lang.Object term)), \notFreeIn(av (variable), f (Field term)), \notFreeIn(av (variable), o (java.lang.Object term))) \replacewith(exists{av (variable)}(exists{bv (variable)}(elementOf(o,f,s)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[677] 0s passed
[678] elementOfInfiniteUnion2VarsEQ, elementOfInfiniteUnion2VarsEQ { \assumes ([equals(infiniteUnion{av (variable), bv (variable)}(s),EQ)]==>[]) \find(elementOf(o,f,EQ)) \sameUpdateLevel\varcond(\notFreeIn(bv (variable), f (Field term)), \notFreeIn(bv (variable), o (java.lang.Object term)), \notFreeIn(av (variable), f (Field term)), \notFreeIn(av (variable), o (java.lang.Object term))) \replacewith(exists{av (variable)}(exists{bv (variable)}(elementOf(o,f,s)))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[678] 0s passed
[679] elementOfInfiniteUnionEQ, elementOfInfiniteUnionEQ { \assumes ([equals(infiniteUnion{av (variable)}(s),EQ)]==>[]) \find(elementOf(o,f,EQ)) \sameUpdateLevel\varcond(\notFreeIn(av (variable), f (Field term)), \notFreeIn(av (variable), o (java.lang.Object term))) \replacewith(exists{av (variable)}(elementOf(o,f,s))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[679] 0.001s passed
[67] all_pull_out1, all_pull_out1 { \find(and(c,all{u (variable)}(b))) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(all{u (variable)}(and(c,b))) \heuristics(pullOutQuantifierAll) Choices: true} testEquality(String, String)[67] 0.002s passed
[680] elementOfIntersect, elementOfIntersect { \find(elementOf(o,f,intersect(s,s2))) \replacewith(and(elementOf(o,f,s),elementOf(o,f,s2))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[680] 0.001s passed
[681] elementOfIntersectEQ, elementOfIntersectEQ { \assumes ([equals(intersect(s,s2),EQ)]==>[]) \find(elementOf(o,f,EQ)) \sameUpdateLevel\replacewith(and(elementOf(o,f,s),elementOf(o,f,s2))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[681] 0.001s passed
[682] elementOfSetMinus, elementOfSetMinus { \find(elementOf(o,f,setMinus(s,s2))) \replacewith(and(elementOf(o,f,s),not(elementOf(o,f,s2)))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[682] 0.001s passed
[683] elementOfSetMinusEQ, elementOfSetMinusEQ { \assumes ([equals(setMinus(s,s2),EQ)]==>[]) \find(elementOf(o,f,EQ)) \sameUpdateLevel\replacewith(and(elementOf(o,f,s),not(elementOf(o,f,s2)))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[683] 0.001s passed
[684] elementOfSingleton, elementOfSingleton { \find(elementOf(o,f,singleton(o2,f2))) \replacewith(and(equals(o,o2),equals(f,f2))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[684] 0.001s passed
[685] elementOfSubsetImpliesElementOfSuperset, elementOfSubsetImpliesElementOfSuperset { \assumes ([subset(s,s2)]==>[]) \find(elementOf(o,f,s)==>) \add [elementOf(o,f,s2)]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[685] 0.005s passed
[686] elementOfSubsetOfUnion1, elementOfSubsetOfUnion1 { \assumes ([subset(s,union(s2,s3))]==>[elementOf(o,f,s2)]) \find(elementOf(o,f,s)) \sameUpdateLevel\add [equiv(elementOf(o,f,s),elementOf(o,f,intersect(s,s3)))]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[686] 0.001s passed
[687] elementOfSubsetOfUnion2, elementOfSubsetOfUnion2 { \assumes ([subset(s,union(s2,s3))]==>[elementOf(o,f,s3)]) \find(elementOf(o,f,s)) \sameUpdateLevel\add [equiv(elementOf(o,f,s),elementOf(o,f,intersect(s,s2)))]==>[] \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[687] 0.001s passed
[688] elementOfUnion, elementOfUnion { \find(elementOf(o,f,union(s,s2))) \replacewith(or(elementOf(o,f,s),elementOf(o,f,s2))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[688] 0.001s passed
[689] elementOfUnionEQ, elementOfUnionEQ { \assumes ([equals(union(s,s2),EQ)]==>[]) \find(elementOf(o,f,EQ)) \sameUpdateLevel\replacewith(or(elementOf(o,f,s),elementOf(o,f,s2))) \heuristics(simplify_enlarging) Choices: programRules:Java} testEquality(String, String)[689] 0s passed
[68] all_pull_out2, all_pull_out2 { \find(or(all{u (variable)}(b),c)) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(all{u (variable)}(or(b,c))) \heuristics(pullOutQuantifierAll) Choices: true} testEquality(String, String)[68] 0.002s passed
[690] elimGcdEq, elimGcdEq { \find(equals(elimGcdLeft,elimGcdRight)) \replacewith(if-then-else(and(and(equals(mul(elimGcdLeftDiv,elimGcd),elimGcdLeft),leq(add(elimGcdRight,mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),add(Z(neglit(1(#))),elimGcd))),geq(add(elimGcdRight,mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),Z(0(#)))),and(equals(add(elimGcdRight,mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),Z(0(#))),equals(elimGcdLeftDiv,elimGcdRightDiv)),equals(elimGcdLeft,elimGcdRight))) \heuristics(notHumanReadable… testEquality(String, String)[690] 0s passed
[691] elimGcdGeq, elimGcdGeq { \find(geq(elimGcdLeft,elimGcdRight)) \replacewith(if-then-else(and(geq(add(add(add(add(sub(elimGcd,Z(1(#))),mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),elimGcdRight),mul(elimGcdLeftDiv,elimGcd)),mul(elimGcdLeft,Z(neglit(1(#))))),Z(0(#))),leq(add(add(add(mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv),elimGcdRight),mul(elimGcdLeftDiv,elimGcd)),mul(elimGcdLeft,Z(neglit(1(#))))),Z(0(#)))),geq(elimGcdLeftDiv,elimGcdRightDiv),geq(elimGcdLeft,elimGcdRight))) \heuristics(notHumanReadable, i… testEquality(String, String)[691] 0s passed
[692] elimGcdGeq_antec, elimGcdGeq_antec { \find(geq(elimGcdLeft,elimGcdRight)==>) \replacewith([or(or(leq(elimGcd,Z(0(#))),leq(add(add(add(add(elimGcd,mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),elimGcdRight),mul(elimGcdLeftDiv,elimGcd)),mul(elimGcdLeft,Z(neglit(1(#))))),Z(0(#)))),geq(elimGcdLeftDiv,elimGcdRightDiv))]==>[]) \heuristics(notHumanReadable, inEqSimp_pullOutGcd_antec, inEqSimp_pullOutGcd_geq, inEqSimp_pullOutGcd) Choices: integerSimplificationRules:full} testEquality(String, String)[692] 0s passed
[693] elimGcdLeq, elimGcdLeq { \find(leq(elimGcdLeft,elimGcdRight)) \replacewith(if-then-else(and(leq(add(add(add(add(sub(Z(1(#)),elimGcd),mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),elimGcdRight),mul(elimGcdLeftDiv,elimGcd)),mul(elimGcdLeft,Z(neglit(1(#))))),Z(0(#))),geq(add(add(add(mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv),elimGcdRight),mul(elimGcdLeftDiv,elimGcd)),mul(elimGcdLeft,Z(neglit(1(#))))),Z(0(#)))),leq(elimGcdLeftDiv,elimGcdRightDiv),leq(elimGcdLeft,elimGcdRight))) \heuristics(notHumanReadable, i… testEquality(String, String)[693] 0s passed
[694] elimGcdLeq_antec, elimGcdLeq_antec { \find(leq(elimGcdLeft,elimGcdRight)==>) \replacewith([or(or(leq(elimGcd,Z(0(#))),geq(add(add(add(add(neg(elimGcd),mul(mul(elimGcd,Z(neglit(1(#)))),elimGcdRightDiv)),elimGcdRight),mul(elimGcdLeftDiv,elimGcd)),mul(elimGcdLeft,Z(neglit(1(#))))),Z(0(#)))),leq(elimGcdLeftDiv,elimGcdRightDiv))]==>[]) \heuristics(notHumanReadable, inEqSimp_pullOutGcd_antec, inEqSimp_pullOutGcd_leq, inEqSimp_pullOutGcd) Choices: integerSimplificationRules:full} testEquality(String, String)[694] 0s passed
[695] elim_double_block, elim_double_block { \find(#allmodal ( (modal operator))\[{ {#slist}}\] (post)) \replacewith(#allmodal ( (modal operator))\[{#slist}\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[695] 0s passed
[696] elim_double_block_2, elim_double_block_2 { \find(#allmodal ( (modal operator))\[{ .. { {#slist}} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[696] 0s passed
[697] elim_double_block_3, elim_double_block_3 { \find(#allmodal ( (modal operator))\[{ .. {while ( #e ) #s } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. while ( #e ) #s ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[697] 0s passed
[698] elim_double_block_4, elim_double_block_4 { \find(#allmodal ( (modal operator))\[{ .. {for ( #loopInit; #guard; #forupdates ) #s } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. for ( #loopInit; #guard; #forupdates ) #s ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[698] 0s passed
[699] elim_double_block_5, elim_double_block_5 { \find(#allmodal ( (modal operator))\[{ .. {for ( ; #guard; #forupdates ) #s } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. for ( ; #guard; #forupdates ) #s ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[699] 0.001s passed
[69] all_pull_out3, all_pull_out3 { \find(or(c,all{u (variable)}(b))) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(all{u (variable)}(or(c,b))) \heuristics(pullOutQuantifierAll) Choices: true} testEquality(String, String)[69] 0.001s passed
[6] acosRange, acosRange { \find(acosDouble(arg)) \add [imp(and(geqDouble(arg,negDouble(DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),leqDouble(arg,DFP(8(0(4(7(1(0(0(0(8(8(1(4(2(8(1(7(0(6(4(#)))))))))))))))))))))),and(geqDouble(acosDouble(arg),DFP(0(#))),leqDouble(acosDouble(arg),DFP(8(4(8(5(4(0(2(5(5(6(5(6(6(5(2(4(1(6(4(#)))))))))))))))))))))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[6] 0.001s passed
[700] elim_double_block_6, elim_double_block_6 { \find(#allmodal ( (modal operator))\[{ .. {for ( #loopInit; #guard; ) #s } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. for ( #loopInit; #guard; ) #s ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[700] 0s passed
[701] elim_double_block_7, elim_double_block_7 { \find(#allmodal ( (modal operator))\[{ .. {for ( ; #guard; ) #s } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. for ( ; #guard; ) #s ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[701] 0.001s passed
[702] elim_double_block_8, elim_double_block_8 { \find(#allmodal ( (modal operator))\[{ .. {do#swhile ( #e ); } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. do#swhile ( #e ); ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[702] 0.001s passed
[703] elim_double_block_9, elim_double_block_9 { \find(#allmodal ( (modal operator))\[{ .. { {#slist} {#slist1}} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist} {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[703] 0.001s passed
[704] elim_exists0, elim_exists0 { \find(exists{Gvar (variable)}(equals(Gvar,subGterm))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[704] 0.001s passed
[705] elim_exists1, elim_exists1 { \find(exists{Gvar (variable)}(equals(subGterm,Gvar))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[705] 0.001s passed
[706] elim_exists2, elim_exists2 { \find(exists{Gvar (variable)}(equals(Gvar,Hterm))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(equals(G::instance(Hterm),TRUE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[706] 0s passed
[707] elim_exists3, elim_exists3 { \find(exists{Gvar (variable)}(equals(Hterm,Gvar))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(equals(G::instance(Hterm),TRUE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[707] 0s passed
[708] elim_exists4, elim_exists4 { \find(exists{Gvar (variable)}(and(phi,equals(Gvar,subGterm)))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,phi)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[708] 0s passed
[709] elim_exists5, elim_exists5 { \find(exists{Gvar (variable)}(and(phi,equals(subGterm,Gvar)))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,phi)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[709] 0s passed
[70] all_pull_out4, all_pull_out4 { \find(and(all{u (variable)}(b),all{u2 (variable)}(c))) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(all{u (variable)}(and(b,subst{u2 (variable)}(u,c)))) \heuristics(pullOutQuantifierUnifying, pullOutQuantifierAll) Choices: true} testEquality(String, String)[70] 0.001s passed
[710] elim_exists6, elim_exists6 { \find(exists{Gvar (variable)}(and(phi,equals(Gvar,Hterm)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(and(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),TRUE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[710] 0.001s passed
[711] elim_exists7, elim_exists7 { \find(exists{Gvar (variable)}(and(phi,equals(Hterm,Gvar)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(and(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),TRUE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[711] 0.001s passed
[712] elim_exists_leq, elim_exists_leq { \find(exists{INTVar (variable)}(and(leq(INTVar,intTermLeft),geq(INTVar,intTermRight)))) \varcond(\notFreeIn(INTVar (variable), intTermRight (int term)), \notFreeIn(INTVar (variable), intTermLeft (int term))) \replacewith(leq(intTermRight,intTermLeft)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[712] 0s passed
[713] elim_exists_nonSingleton0, elim_exists_nonSingleton0 { \find(exists{nonSingleVar (variable)}(not(equals(nonSingleVar,Hterm)))) \varcond(\notFreeIn(nonSingleVar (variable), Hterm (H term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[713] 0s passed
[714] elim_exists_nonSingleton1, elim_exists_nonSingleton1 { \find(exists{nonSingleVar (variable)}(not(equals(Hterm,nonSingleVar)))) \varcond(\notFreeIn(nonSingleVar (variable), Hterm (H term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[714] 0s passed
[715] elim_exists_nonSingleton2, elim_exists_nonSingleton2 { \find(exists{INTVar (variable)}(geq(INTVar,intTerm))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[715] 0s passed
[716] elim_exists_nonSingleton3, elim_exists_nonSingleton3 { \find(exists{INTVar (variable)}(leq(INTVar,intTerm))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[716] 0s passed
[717] elim_exists_nonSingleton4, elim_exists_nonSingleton4 { \find(exists{INTVar (variable)}(geq(intTerm,INTVar))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[717] 0.001s passed
[718] elim_exists_nonSingleton5, elim_exists_nonSingleton5 { \find(exists{INTVar (variable)}(leq(intTerm,INTVar))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(true) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[718] 0.001s passed
[719] elim_exists_sub_1, elim_exists_sub_1 { \find(exists{locVar (variable)}(and(subset(locVar,locSetTermRight),subset(locSetTermLeft,locVar)))) \varcond(\notFreeIn(locVar (variable), locSetTermRight (LocSet term)), \notFreeIn(locVar (variable), locSetTermLeft (LocSet term))) \replacewith(subset(locSetTermLeft,locSetTermRight)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[719] 0.001s passed
[71] all_unused, all_unused { \find(all{u (variable)}(b)) \varcond(\notFreeIn(u (variable), b (formula))) \replacewith(b) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[71] 0.001s passed
[720] elim_exists_sub_1_and_phi, elim_exists_sub_1_and_phi { \find(exists{locVar (variable)}(and(and(subset(locVar,locSetTerm),subset(locSetTerm,locVar)),phi))) \varcond(\notFreeIn(locVar (variable), locSetTerm (LocSet term))) \replacewith(exists{locVar (variable)}(and(equals(locVar,locSetTerm),phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[720] 0s passed
[721] elim_exists_sub_1_or_phi, elim_exists_sub_1_or_phi { \find(exists{locVar (variable)}(or(and(subset(locVar,locSetTermRight),subset(locSetTermLeft,locVar)),phi))) \varcond(\notFreeIn(locVar (variable), locSetTermRight (LocSet term)), \notFreeIn(locVar (variable), locSetTermLeft (LocSet term))) \replacewith(or(subset(locSetTermLeft,locSetTermRight),exists{locVar (variable)}(phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[721] 0s passed
[722] elim_forall0, elim_forall0 { \find(all{Gvar (variable)}(not(equals(Gvar,subGterm)))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[722] 0s passed
[723] elim_forall1, elim_forall1 { \find(all{Gvar (variable)}(not(equals(subGterm,Gvar)))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[723] 0s passed
[724] elim_forall10, elim_forall10 { \find(all{Gvar (variable)}(imp(equals(Gvar,Hterm),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[724] 0s passed
[725] elim_forall11, elim_forall11 { \find(all{Gvar (variable)}(imp(equals(Hterm,Gvar),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[725] 0.001s passed
[726] elim_forall12, elim_forall12 { \find(all{Gvar (variable)}(imp(and(psi,equals(Gvar,subGterm)),phi))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,imp(psi,phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[726] 0.001s passed
[727] elim_forall13, elim_forall13 { \find(all{Gvar (variable)}(imp(and(psi,equals(subGterm,Gvar)),phi))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,imp(psi,phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[727] 0s passed
[728] elim_forall14, elim_forall14 { \find(all{Gvar (variable)}(imp(and(psi,equals(Gvar,Hterm)),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[728] 0s passed
[729] elim_forall15, elim_forall15 { \find(all{Gvar (variable)}(imp(and(psi,equals(Hterm,Gvar)),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[729] 0.008s passed
[72] allocateInstance, allocateInstance { \find(==>#allmodal ( (modal operator))\[{ .. #lhs=#t.#allocate()@#t; ... }\] (post)) \varcond(\hasSort(#t2 (program Type), alphaObj), ) \add [and(and(not(equals(#lhs,null)),imp(wellFormed(heap),equals(boolean::select(heap,#lhs,java.lang.Object::<created>),FALSE))),equals(alphaObj::exactInstance(#lhs),TRUE))]==>[] \replacewith([]==>[update-application(elem-update(heap)(create(heap,#lhs)),#allmodal(post))]) \heuristics(method_expand) Choices: (programRules:Java & permissions:off)} testEquality(String, String)[72] 0.001s passed
[730] elim_forall16, elim_forall16 { \find(all{Gvar (variable)}(imp(and(equals(Gvar,subGterm),psi),phi))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,imp(psi,phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[730] 0s passed
[731] elim_forall17, elim_forall17 { \find(all{Gvar (variable)}(imp(and(equals(subGterm,Gvar),psi),phi))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,imp(psi,phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[731] 0s passed
[732] elim_forall18, elim_forall18 { \find(all{Gvar (variable)}(imp(and(equals(Gvar,Hterm),psi),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[732] 0.001s passed
[733] elim_forall19, elim_forall19 { \find(all{Gvar (variable)}(imp(and(equals(Hterm,Gvar),psi),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[733] 0.001s passed
[734] elim_forall2, elim_forall2 { \find(all{Gvar (variable)}(not(equals(Gvar,Hterm)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(equals(G::instance(Hterm),FALSE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[734] 0.001s passed
[735] elim_forall3, elim_forall3 { \find(all{Gvar (variable)}(not(equals(Hterm,Gvar)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(equals(G::instance(Hterm),FALSE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[735] 0.001s passed
[736] elim_forall4, elim_forall4 { \find(all{Gvar (variable)}(or(phi,not(equals(Gvar,subGterm))))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,phi)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[736] 0.001s passed
[737] elim_forall5, elim_forall5 { \find(all{Gvar (variable)}(or(phi,not(equals(subGterm,Gvar))))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,phi)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[737] 0.001s passed
[738] elim_forall6, elim_forall6 { \find(all{Gvar (variable)}(or(phi,not(equals(Gvar,Hterm))))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[738] 0s passed
[739] elim_forall7, elim_forall7 { \find(all{Gvar (variable)}(or(phi,not(equals(Hterm,Gvar))))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) \replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} testEquality(String, String)[739] 0s passed
[73] allocateInstanceWithLength, allocateInstanceWithLength { \find(==>#allmodal ( (modal operator))\[{ .. #lhs=#t.#allocate(#len)@#t; ... }\] (post)) \varcond(\hasSort(#t2 (program Type), alphaObj), ) \add [and(and(not(equals(#lhs,null)),imp(wellFormed(heap),and(equals(boolean::select(heap,#lhs,java.lang.Object::<created>),FALSE),equals(length(#lhs),#len)))),equals(alphaObj::exactInstance(#lhs),TRUE))]==>[] \replacewith([]==>[update-application(elem-update(heap)(store(store(create(heap,#lhs),#lhs,java.lang.Object::<transient>,Z(0(#)))… testEquality(String, String)[73] 0.001s passed
[740] elim_forall8, elim_forall8 { \find(all{Gvar (variable)}(imp(equals(Gvar,subGterm),phi))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,phi)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[740] 0.006s passed
[741] elim_forall9, elim_forall9 { \find(all{Gvar (variable)}(imp(equals(subGterm,Gvar),phi))) \varcond(\notFreeIn(Gvar (variable), subGterm (subG term))) \replacewith(subst{Gvar (variable)}(subGterm,phi)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[741] 0.009s passed
[742] elim_forall_eqSet_imp_phi, elim_forall_eqSet_imp_phi { \find(all{locVar (variable)}(imp(and(subset(locVar,locSetTerm),subset(locSetTerm,locVar)),phi))) \varcond(\notFreeIn(locVar (variable), locSetTerm (LocSet term))) \replacewith(all{locVar (variable)}(imp(equals(locSetTerm,locVar),phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[742] 0.001s passed
[743] elim_forall_leq, elim_forall_leq { \find(all{INTVar (variable)}(or(leq(INTVar,intTermLeft),geq(INTVar,intTermRight)))) \varcond(\notFreeIn(INTVar (variable), intTermRight (int term)), \notFreeIn(INTVar (variable), intTermLeft (int term))) \replacewith(leq(intTermRight,add(intTermLeft,Z(1(#))))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[743] 0.001s passed
[744] elim_forall_nonSingleton0, elim_forall_nonSingleton0 { \find(all{nonSingleVar (variable)}(equals(nonSingleVar,Hterm))) \varcond(\notFreeIn(nonSingleVar (variable), Hterm (H term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[744] 0.001s passed
[745] elim_forall_nonSingleton1, elim_forall_nonSingleton1 { \find(all{nonSingleVar (variable)}(equals(Hterm,nonSingleVar))) \varcond(\notFreeIn(nonSingleVar (variable), Hterm (H term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[745] 0.001s passed
[746] elim_forall_nonSingleton2, elim_forall_nonSingleton2 { \find(all{INTVar (variable)}(geq(INTVar,intTerm))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[746] 0.001s passed
[747] elim_forall_nonSingleton3, elim_forall_nonSingleton3 { \find(all{INTVar (variable)}(leq(INTVar,intTerm))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[747] 0s passed
[748] elim_forall_nonSingleton4, elim_forall_nonSingleton4 { \find(all{INTVar (variable)}(geq(intTerm,INTVar))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[748] 0s passed
[749] elim_forall_nonSingleton5, elim_forall_nonSingleton5 { \find(all{INTVar (variable)}(leq(intTerm,INTVar))) \varcond(\notFreeIn(INTVar (variable), intTerm (int term))) \replacewith(false) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[749] 0s passed
[74] altAxiom, altAxiom { \find(match(alt(rexp1,rexp2),string)) \replacewith(or(match(rexp1,string),match(rexp2,string))) \heuristics(simplify) Choices: Strings:on} testEquality(String, String)[74] 0.001s passed
[750] elim_forall_subOfAll, elim_forall_subOfAll { \find(all{locVar (variable)}(subset(locSetTerm,locVar))) \varcond(\notFreeIn(locVar (variable), locSetTerm (LocSet term))) \replacewith(equals(locSetTerm,empty)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[750] 0s passed
[751] elim_forall_subOfAll_and_phi, elim_forall_subOfAll_and_phi { \find(all{locVar (variable)}(and(subset(locSetTerm,locVar),phi))) \varcond(\notFreeIn(locVar (variable), locSetTerm (LocSet term))) \replacewith(and(equals(locSetTerm,empty),all{locVar (variable)}(phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[751] 0s passed
[752] elim_forall_superOfAll, elim_forall_superOfAll { \find(all{locVar (variable)}(subset(locVar,locSetTerm))) \varcond(\notFreeIn(locVar (variable), locSetTerm (LocSet term))) \replacewith(equals(locSetTerm,allLocs)) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[752] 0.001s passed
[753] elim_forall_superOfAll_and_phi, elim_forall_superOfAll_and_phi { \find(all{locVar (variable)}(and(subset(locVar,locSetTerm),phi))) \varcond(\notFreeIn(locVar (variable), locSetTerm (LocSet term))) \replacewith(and(equals(locSetTerm,allLocs),all{locVar (variable)}(phi))) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[753] 0.001s passed
[754] emptyEqualsSingleton, emptyEqualsSingleton { \find(equals(empty,singleton(o,f))) \replacewith(false) \heuristics(concrete) Choices: programRules:Java} testEquality(String, String)[754] 0.001s passed
[755] emptyModality, emptyModality { \find(#normal(post)) \replacewith(post) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[755] 0s passed
[756] emptyModalityBoxTransaction, emptyModalityBoxTransaction { \find(box_transaction(post)) \replacewith(true) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[756] 0s passed
[757] emptyModalityDiamondTransaction, emptyModalityDiamondTransaction { \find(diamond_transaction(post)) \replacewith(false) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[757] 0.001s passed
[758] emptyStatement, emptyStatement { \find(#allmodal ( (modal operator))\[{ .. ; ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[758] 0.001s passed
[759] endsWith, endsWith { \find(clEndsWith(sourceStr,searchStr)) \replacewith(if-then-else(gt(seqLen(searchStr),seqLen(sourceStr)),false,equals(seqSub(sourceStr,sub(seqLen(sourceStr),seqLen(searchStr)),seqLen(sourceStr)),searchStr))) \heuristics(defOpsStartsEndsWith) Choices: Strings:on} testEquality(String, String)[759] 0.001s passed
[75] andJIntDef, andJIntDef { \find(andJint(left,right)) \replacewith(moduloInt(binaryAnd(left,right))) \heuristics(simplify) Choices: true} testEquality(String, String)[75] 0.001s passed
[760] enhancedfor_iterable, enhancedfor_iterable { \find(#allmodal ( (modal operator))\[{ .. for (#ty #id : #e) #stm ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. enhancedfor-elim(for (#ty #id : #e) #stm ) ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[760] 0.001s passed
[761] eqClose, eqClose { \find(equals(s,s)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[761] 0.001s passed
[762] eqSymm, eqSymm { \find(equals(commEqLeft,commEqRight)) \replacewith(equals(commEqRight,commEqLeft)) \heuristics(order_terms) Choices: true} testEquality(String, String)[762] 0.001s passed
[763] eqTermCut, eqTermCut { \find(t) \sameUpdateLevel\add [not(equals(t,s))]==>[] ; \add [equals(t,s)]==>[] Choices: true} testEquality(String, String)[763] 0.001s passed
[764] eq_add_iff1, eq_add_iff1 { \find(equals(add(mul(i0,i1),i2),add(mul(i3,i1),i4))) \replacewith(equals(add(mul(sub(i0,i3),i1),i2),i4)) Choices: true} testEquality(String, String)[764] 0s passed
[765] eq_add_iff2, eq_add_iff2 { \find(equals(add(mul(i0,i1),i2),add(mul(i3,i1),i4))) \replacewith(equals(i2,add(mul(sub(i3,i0),i1),i4))) Choices: true} testEquality(String, String)[765] 0s passed
[766] eq_and, eq_and { \find(and(phi,phi)) \replacewith(phi) \heuristics(concrete) Choices: true} testEquality(String, String)[766] 0s passed
[767] eq_and_2, eq_and_2 { \find(and(and(psi,phi),phi)) \replacewith(and(psi,phi)) \heuristics(concrete) Choices: true} testEquality(String, String)[767] 0s passed
[768] eq_eq, eq_eq { \find(equiv(phi,phi)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[768] 0.001s passed
[769] eq_imp, eq_imp { \find(imp(phi,phi)) \replacewith(true) \heuristics(concrete) Choices: true} testEquality(String, String)[769] 0.001s passed
[76] andLeft, andLeft { \find(and(b,c)==>) \replacewith([b,c]==>[]) \heuristics(alpha) Choices: true} testEquality(String, String)[76] 0.001s passed
[770] eq_or, eq_or { \find(or(phi,phi)) \replacewith(phi) \heuristics(concrete) Choices: true} testEquality(String, String)[770] 0.001s passed
[771] eq_or_2, eq_or_2 { \find(or(or(psi,phi),phi)) \replacewith(or(psi,phi)) \heuristics(concrete) Choices: true} testEquality(String, String)[771] 0.001s passed
[772] eq_sides, eq_sides { \find(equals(i,j)) \replacewith(equals(sub(i,j),Z(0(#)))) Choices: true} testEquality(String, String)[772] 0.001s passed
[773] equalCharacters, equalCharacters { \find(equals(C(iz1),C(iz2))) \replacewith(equals(Z(iz1),Z(iz2))) \heuristics(stringsSimplify) Choices: Strings:on} testEquality(String, String)[773] 0s passed
[774] equalRegEx, equalRegEx { \find(equals(rexp1,rexp2)) \varcond(\notFreeIn(string (variable), rexp2 (RegEx term)), \notFreeIn(string (variable), rexp1 (RegEx term))) \replacewith(all{string (variable)}(equiv(match(rexp1,string),match(rexp2,string)))) Choices: Strings:on} testEquality(String, String)[774] 0s passed
[775] equalUnique, equalUnique { \find(equals(f,f2)) \varcond(\equalUnique (f (any term), f2 (any term), result (formula)), ) \replacewith(result) \heuristics(concrete) Choices: true} testEquality(String, String)[775] 0.001s passed
[776] equal_add, equal_add { \find(==>equals(i0,i1)) \varcond(\notFreeIn(j2 (variable), i1 (int term)), \notFreeIn(j2 (variable), i0 (int term))) \replacewith([]==>[exists{j2 (variable)}(equals(add(i0,j2),add(i1,j2)))]) Choices: true} testEquality(String, String)[776] 0s passed
[777] equal_add_one, equal_add_one { \find(equals(i0,i1)) \replacewith(equals(add(i0,Z(1(#))),add(i1,Z(1(#))))) Choices: true} testEquality(String, String)[777] 0s passed
[778] equal_bprod1, equal_bprod1 { \find(==>equals(bprod{uSub1 (variable)}(i0,i1,t1),bprod{uSub2 (variable)}(i0,i1,t2))) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), t1 (int term))) \add []==>[all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),equals(t1,subst{uSub2 (variable)}(uSub1,t2))))] \heuristics(c… testEquality(String, String)[778] 0s passed
[779] equal_bprod2, equal_bprod2 { \assumes ([equals(bprod{uSub1 (variable)}(i0,i1,t1),i)]==>[]) \find(==>equals(bprod{uSub2 (variable)}(i0,i1,t2),i)) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), t1 (int term))) \add []==>[all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),equals(t1,subst{uSub2 (variable… testEquality(String, String)[779] 0s passed
[77] andRight, andRight { \find(==>and(b,c)) \replacewith([]==>[c]) ; \replacewith([]==>[b]) \heuristics(beta) Choices: true} testEquality(String, String)[77] 0s passed
[780] equal_bprod3, equal_bprod3 { \assumes ([equals(bprod{uSub1 (variable)}(i0,i1,t1),i),equals(bprod{uSub2 (variable)}(i0,i1,t2),j)]==>[]) \find(==>equals(j,i)) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), t1 (int term))) \add []==>[all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),equals(t1,subst{uSu… testEquality(String, String)[780] 0s passed
[781] equal_bprod5, equal_bprod5 { \find(==>equals(bprod{uSub1 (variable)}(i0,i1,t1),bprod{uSub2 (variable)}(i2,i3,t2))) \varcond(\notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term… testEquality(String, String)[781] 0.001s passed
[782] equal_bprod_perm1, equal_bprod_perm1 { \find(==>equals(bprod{uSub1 (variable)}(i0,i1,t1),bprod{uSub2 (variable)}(i2,i3,t2))) \varcond(\notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int… testEquality(String, String)[782] 0.001s passed
[783] equal_bprod_perm2, equal_bprod_perm2 { \assumes ([equals(bprod{uSub2 (variable)}(i2,i3,t2),t)]==>[]) \find(==>equals(bprod{uSub1 (variable)}(i0,i1,t1),t)) \varcond(\notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notF… testEquality(String, String)[783] 0.001s passed
[784] equal_bsum1, equal_bsum1 { \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i0,i1,t2))) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), t1 (int term))) \add []==>[all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),equals(t1,subst{uSub2 (variable)}(uSub1,t2))))] \heuristics(comp… testEquality(String, String)[784] 0.001s passed
[785] equal_bsum2, equal_bsum2 { \assumes ([equals(bsum{uSub1 (variable)}(i0,i1,t1),i)]==>[]) \find(==>equals(bsum{uSub2 (variable)}(i0,i1,t2),i)) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), t1 (int term))) \add []==>[all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),equals(t1,subst{uSub2 (variable)}(… testEquality(String, String)[785] 0.001s passed
[786] equal_bsum3, equal_bsum3 { \assumes ([equals(bsum{uSub1 (variable)}(i0,i1,t1),i),equals(bsum{uSub2 (variable)}(i0,i1,t2),j)]==>[]) \find(==>equals(j,i)) \varcond(\notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)), \notFreeIn(uSub2 (variable), t1 (int term))) \add []==>[all{uSub1 (variable)}(imp(and(geq(uSub1,i0),lt(uSub1,i1)),equals(t1,subst{uSub2 … testEquality(String, String)[786] 0.001s passed
[787] equal_bsum5, equal_bsum5 { \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i2,i3,t2))) \varcond(\notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int term)),… testEquality(String, String)[787] 0.001s passed
[788] equal_bsum_perm1, equal_bsum_perm1 { \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),bsum{uSub2 (variable)}(i2,i3,t2))) \varcond(\notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), t2 (int te… testEquality(String, String)[788] 0.001s passed
[789] equal_bsum_perm2, equal_bsum_perm2 { \assumes ([equals(bsum{uSub2 (variable)}(i2,i3,t2),t)]==>[]) \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),t)) \varcond(\notFreeIn(uSub2 (variable), i3 (int term)), \notFreeIn(uSub1 (variable), i3 (int term)), \notFreeIn(uSub2 (variable), i2 (int term)), \notFreeIn(uSub1 (variable), i2 (int term)), \notFreeIn(uSub2 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub2 (variable), i0 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFree… testEquality(String, String)[789] 0.001s passed
[78] applyEq, applyEq { \assumes ([equals(s,t1)]==>[]) \find(s) \sameUpdateLevel\replacewith(t1) \heuristics(apply_select_eq, apply_equations) Choices: true} testEquality(String, String)[78] 0.001s passed
[790] equal_bsum_zero_cut, equal_bsum_zero_cut { \find(==>equals(bsum{uSub1 (variable)}(i0,i1,t1),mul(bsum{uSub2 (variable)}(i2,i3,t2),t))) \add [equals(bsum{uSub1 (variable)}(i0,i1,t1),Z(0(#)))]==>[] ; \add []==>[equals(bsum{uSub1 (variable)}(i0,i1,t1),Z(0(#)))] Choices: integerSimplificationRules:full} testEquality(String, String)[790] 0.003s passed
[791] equal_literals, equal_literals { \find(equals(Z(iz),Z(jz))) \replacewith(#eq(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[791] 0.001s passed
[792] equalityToElementOf, equalityToElementOf { \find(equals(s,s2)) \varcond(\notFreeIn(fv (variable), s2 (LocSet term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), s2 (LocSet term)), \notFreeIn(ov (variable), s (LocSet term))) \replacewith(all{ov (variable)}(all{fv (variable)}(equiv(elementOf(ov,fv,s),elementOf(ov,fv,s2))))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[792] 0.001s passed
[793] equalityToElementOfRight, equalityToElementOfRight { \find(==>equals(s,s2)) \varcond(\notFreeIn(fv (variable), s2 (LocSet term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), s2 (LocSet term)), \notFreeIn(ov (variable), s (LocSet term))) \replacewith([]==>[all{ov (variable)}(all{fv (variable)}(equiv(elementOf(ov,fv,s),elementOf(ov,fv,s2))))]) \heuristics(setEqualityBlastingRight) Choices: programRules:Java} testEquality(String, String)[793] 0.001s passed
[794] equalityToSelect, equalityToSelect { \find(equals(h,h2)) \varcond(\notFreeIn(fv (variable), h2 (Heap term)), \notFreeIn(fv (variable), h (Heap term)), \notFreeIn(ov (variable), h2 (Heap term)), \notFreeIn(ov (variable), h (Heap term))) \replacewith(all{ov (variable)}(all{fv (variable)}(equals(any::select(h,ov,fv),any::select(h2,ov,fv))))) \heuristics(semantics_blasting) Choices: programRules:Java} testEquality(String, String)[794] 0.001s passed
[795] equalityToSeqGetAndSeqLen, equalityToSeqGetAndSeqLen { \find(equals(left,right)) \varcond(\notFreeIn(iv (variable), right (Seq term)), \notFreeIn(iv (variable), left (Seq term))) \replacewith(and(equals(seqLen(left),seqLen(right)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(left))),equals(any::seqGet(left,iv),any::seqGet(right,iv)))))) \heuristics(defOpsSeqEquality) Choices: sequences:on} testEquality(String, String)[795] 0.004s passed
[796] equalityToSeqGetAndSeqLenLeft, equalityToSeqGetAndSeqLenLeft { \find(equals(s,s2)==>) \varcond(\notFreeIn(iv (variable), s2 (Seq term)), \notFreeIn(iv (variable), s (Seq term))) \add [and(equals(seqLen(s),seqLen(s2)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(any::seqGet(s,iv),any::seqGet(s2,iv)))))]==>[] \heuristics(inReachableStateImplication) Choices: sequences:on} testEquality(String, String)[796] 0.001s passed
[797] equalityToSeqGetAndSeqLenRight, equalityToSeqGetAndSeqLenRight { \find(==>equals(s,s2)) \varcond(\notFreeIn(iv (variable), s2 (Seq term)), \notFreeIn(iv (variable), s (Seq term))) \replacewith([]==>[and(equals(seqLen(s),seqLen(s2)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(any::seqGet(s,iv),any::seqGet(s2,iv)))))]) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[797] 0s passed
[798] equality_comparison_double, equality_comparison_double { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seDouble0==#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(eqDouble(#seDouble0,#seDouble1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[798] 0s passed
[799] equality_comparison_new, equality_comparison_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0==#senf1; ... }\] (post)) \replacewith(if-then-else(not(equals(#senf0,#senf1)),#allmodal ( (modal operator))\[{ .. #lhs=false; ... }\] (post),#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post))) \heuristics(split_if, simplify_prog, obsolete) Choices: programRules:Java} testEquality(String, String)[799] 0s passed
[79] applyEqReverse, applyEqReverse { \assumes ([equals(s,t1)]==>[]) \find(t1) \sameUpdateLevel\replacewith(s) \heuristics(apply_auxiliary_eq) Choices: true} testEquality(String, String)[79] 0s passed
[7] activeUseAddition, activeUseAddition { \find(#allmodal ( (modal operator))\[{ .. #sv=#left+#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left+#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[7] 0.002s passed
[800] equality_comparison_simple, equality_comparison_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0==#senf1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(equals(#senf0,#senf1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[800] 0s passed
[801] equality_comparison_simple_float, equality_comparison_simple_float { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seFloat0==#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(eqFloat(#seFloat0,#seFloat1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[801] 0s passed
[802] equivAllRight, equivAllRight { \find(==>equiv(all{u (variable)}(b),all{e2 (variable)}(c))) \varcond(\notFreeIn(e2 (variable), b (formula)), \notFreeIn(u (variable), c (formula))) \add []==>[all{u (variable)}(equiv(b,subst{e2 (variable)}(u,c)))] Choices: true} testEquality(String, String)[802] 0s passed
[803] equiv_left, equiv_left { \find(equiv(b,c)==>) \replacewith([]==>[b,c]) ; \replacewith([b,c]==>[]) \heuristics(beta) Choices: true} testEquality(String, String)[803] 0s passed
[804] equiv_right, equiv_right { \find(==>equiv(b,c)) \replacewith([c]==>[b]) ; \replacewith([b]==>[c]) \heuristics(beta) Choices: true} testEquality(String, String)[804] 0.001s passed
[805] eval_array_this_access, eval_array_this_access { \find(#allmodal ( (modal operator))\[{ .. this[#nse]=#se0; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v0 = #nse;this[#v0]=#se0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[805] 0.001s passed
[806] eval_order_access1, eval_order_access1 { \find(#allmodal ( (modal operator))\[{ .. #nv.#attribute=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nv (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nv) #v0 = #nv;#v0.#attribute=#e; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[806] 0.001s passed
[807] eval_order_access2, eval_order_access2 { \find(#allmodal ( (modal operator))\[{ .. #v=#nv.#attribute; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nv (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nv) #v0 = #nv;#v=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[807] 0.001s passed
[808] eval_order_access4, eval_order_access4 { \find(#allmodal ( (modal operator))\[{ .. #v.#a=#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#v (program Variable))), \not \static(#a (program Variable)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#v) #v0 = #v;#typeof(#nse) #v1 = #nse;#v0.#a=#v1; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[808] 0.001s passed
[809] eval_order_access4_this, eval_order_access4_this { \find(#allmodal ( (modal operator))\[{ .. #v.#a=#nse; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \not \static(#a (program Variable)), \isThisReference (#v (program Variable)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nse) #v1 = #nse;#v.#a=#v1; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[809] 0.001s passed
[80] applyEqRigid, applyEqRigid { \assumes ([equals(sr,tr1)]==>[]) \find(sr) \replacewith(tr1) \heuristics(apply_equations) Choices: true} testEquality(String, String)[80] 0s passed
[810] eval_order_array_access1, eval_order_array_access1 { \find(#allmodal ( (modal operator))\[{ .. #nv[#e]=#e0; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nv (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nv) #v0 = #nv;#v0[#e]=#e0; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[810] 0.001s passed
[811] eval_order_array_access2, eval_order_array_access2 { \find(#allmodal ( (modal operator))\[{ .. #v[#nse]=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#ar1 (program Variable), \typeof(#v (program Variable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#v) #ar1 = #v;#typeof(#nse) #v0 = #nse;#ar1[#v0]=#e; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[811] 0.001s passed
[812] eval_order_array_access3, eval_order_array_access3 { \find(#allmodal ( (modal operator))\[{ .. #v[#se]=#nse; ... }\] (post)) \varcond(\new(#v2 (program Variable), \typeof(#se (program SimpleExpression))), \new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#v0 (program Variable), \typeof(#v (program Variable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#v) #v0 = #v;#typeof(#se) #v2 = #se;#typeof(#nse) #v1 = #nse;#v0[#v2]=#v1; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_pro… testEquality(String, String)[812] 0.001s passed
[813] eval_order_array_access4, eval_order_array_access4 { \find(#allmodal ( (modal operator))\[{ .. #v=#nv[#e]; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nv (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nv) #v0 = #nv;#v=#v0[#e]; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[813] 0s passed
[814] eval_order_array_access5, eval_order_array_access5 { \find(#allmodal ( (modal operator))\[{ .. #v=#v0[#nse]; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#nse (program NonSimpleExpression))), \new(#ar1 (program Variable), \typeof(#v0 (program Variable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#v0) #ar1 = #v0;#typeof(#nse) #v1 = #nse;#v=#ar1[#v1]; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[814] 0s passed
[815] eval_order_array_access6, eval_order_array_access6 { \find(#allmodal ( (modal operator))\[{ .. #v=#nv.#length; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#nv (program NonSimpleExpression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#nv) #v0 = #nv;#v=#v0.#length; ... }\] (post)) \heuristics(simplify_prog_subset, simplify_prog) Choices: programRules:Java} testEquality(String, String)[815] 0s passed
[816] eval_order_iterated_assignments_0_0, eval_order_iterated_assignments_0_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=#e1;#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[816] 0.001s passed
[817] eval_order_iterated_assignments_0_1, eval_order_iterated_assignments_0_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=#e;#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[817] 0.001s passed
[818] eval_order_iterated_assignments_10_0, eval_order_iterated_assignments_10_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]|=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]|#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[818] 0.001s passed
[819] eval_order_iterated_assignments_10_1, eval_order_iterated_assignments_10_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute|=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute|#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[819] 0.001s passed
[81] applyEq_and_gen0, applyEq_and_gen0 { \find(and(equals(applyEqLeft,applyEqOther),equals(applyEqLeft,applyEqRight))) \replacewith(and(equals(applyEqRight,applyEqOther),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[81] 0.001s passed
[820] eval_order_iterated_assignments_11_0, eval_order_iterated_assignments_11_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]^=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]^#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[820] 0.001s passed
[821] eval_order_iterated_assignments_11_1, eval_order_iterated_assignments_11_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute^=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute^#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[821] 0.001s passed
[822] eval_order_iterated_assignments_1_0, eval_order_iterated_assignments_1_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]*=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]*#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[822] 0.001s passed
[823] eval_order_iterated_assignments_1_1, eval_order_iterated_assignments_1_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute*=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute*#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[823] 0.001s passed
[824] eval_order_iterated_assignments_2_0, eval_order_iterated_assignments_2_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]/=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]/#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[824] 0.001s passed
[825] eval_order_iterated_assignments_2_1, eval_order_iterated_assignments_2_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute/=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute/#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[825] 0.001s passed
[826] eval_order_iterated_assignments_3_0, eval_order_iterated_assignments_3_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]%=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]%#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[826] 0.001s passed
[827] eval_order_iterated_assignments_3_1, eval_order_iterated_assignments_3_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute%=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute%#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[827] 0.001s passed
[828] eval_order_iterated_assignments_4_0, eval_order_iterated_assignments_4_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]+=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]+#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[828] 0.001s passed
[829] eval_order_iterated_assignments_4_1, eval_order_iterated_assignments_4_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute+=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute+#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[829] 0.001s passed
[82] applyEq_and_gen1, applyEq_and_gen1 { \find(and(and(b,equals(applyEqLeft,applyEqOther)),equals(applyEqLeft,applyEqRight))) \replacewith(and(and(b,equals(applyEqRight,applyEqOther)),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[82] 0.001s passed
[830] eval_order_iterated_assignments_5_0, eval_order_iterated_assignments_5_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]-=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]-#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[830] 0.001s passed
[831] eval_order_iterated_assignments_5_1, eval_order_iterated_assignments_5_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute-=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute-#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[831] 0.001s passed
[832] eval_order_iterated_assignments_6_0, eval_order_iterated_assignments_6_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]<<=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]<<#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[832] 0.001s passed
[833] eval_order_iterated_assignments_6_1, eval_order_iterated_assignments_6_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute<<=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute<<#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[833] 0.001s passed
[834] eval_order_iterated_assignments_7_0, eval_order_iterated_assignments_7_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]>>=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]>>#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[834] 0.008s passed
[835] eval_order_iterated_assignments_7_1, eval_order_iterated_assignments_7_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute>>=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute>>#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[835] 0.001s passed
[836] eval_order_iterated_assignments_8_0, eval_order_iterated_assignments_8_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]>>>=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]>>>#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[836] 0.001s passed
[837] eval_order_iterated_assignments_8_1, eval_order_iterated_assignments_8_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute>>>=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute>>>#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[837] 0.001s passed
[838] eval_order_iterated_assignments_9_0, eval_order_iterated_assignments_9_0 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0[#e]&=#e1; ... }\] (post)) \varcond(\new(#v1 (program Variable), \typeof(#e (program Expression))), \new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#typeof(#e) #v1 = #e;#v0[#v1]=(#typeof(#e0[#e]))(#v0[#v1]&#e1);#lhs0=#v0[#v1]; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[838] 0.001s passed
[839] eval_order_iterated_assignments_9_1, eval_order_iterated_assignments_9_1 { \find(#allmodal ( (modal operator))\[{ .. #lhs0=#e0.#attribute&=#e; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#e0 (program Expression)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v0 = #e0;#v0.#attribute=(#typeof(#attribute))(#v0.#attribute&#e);#lhs0=#v0.#attribute; ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[839] 0.001s passed
[83] applyEq_and_gen2, applyEq_and_gen2 { \find(and(not(equals(applyEqLeft,applyEqOther)),equals(applyEqLeft,applyEqRight))) \replacewith(and(not(equals(applyEqRight,applyEqOther)),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[83] 0.001s passed
[840] exLeft, exLeft { \find(exists{u (variable)}(b)==>) \replacewith([subst{u (variable)}(sk,b)]==>[]) \heuristics(delta) Choices: true} testEquality(String, String)[840] 0.001s passed
[841] exRight, exRight { \find(==>exists{u (variable)}(b)) \add []==>[subst{u (variable)}(t,b)] \heuristics(gamma) Choices: true} testEquality(String, String)[841] 0.001s passed
[842] exRightHide, exRightHide { \find(==>exists{u (variable)}(b)) \addrules [insert_hidden { \add []==>[exists{u (variable)}(b)] Choices: true}] \replacewith([]==>[subst{u (variable)}(t,b)]) \heuristics(gamma_destructive) Choices: true} testEquality(String, String)[842] 0.001s passed
[843] ex_bool, ex_bool { \find(exists{x (variable)}(c)) \replacewith(or(subst{x (variable)}(FALSE,c),subst{x (variable)}(TRUE,c))) \heuristics(boolean_cases) Choices: true} testEquality(String, String)[843] 0.001s passed
[844] ex_pull_out0, ex_pull_out0 { \find(and(exists{u (variable)}(b),c)) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(exists{u (variable)}(and(b,c))) \heuristics(pullOutQuantifierEx) Choices: true} testEquality(String, String)[844] 0.001s passed
[845] ex_pull_out1, ex_pull_out1 { \find(and(c,exists{u (variable)}(b))) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(exists{u (variable)}(and(c,b))) \heuristics(pullOutQuantifierEx) Choices: true} testEquality(String, String)[845] 0s passed
[846] ex_pull_out2, ex_pull_out2 { \find(or(exists{u (variable)}(b),c)) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(exists{u (variable)}(or(b,c))) \heuristics(pullOutQuantifierEx) Choices: true} testEquality(String, String)[846] 0s passed
[847] ex_pull_out3, ex_pull_out3 { \find(or(c,exists{u (variable)}(b))) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(exists{u (variable)}(or(c,b))) \heuristics(pullOutQuantifierEx) Choices: true} testEquality(String, String)[847] 0.001s passed
[848] ex_pull_out4, ex_pull_out4 { \find(or(exists{u (variable)}(b),exists{u2 (variable)}(c))) \varcond(\notFreeIn(u (variable), c (formula))) \replacewith(exists{u (variable)}(or(b,subst{u2 (variable)}(u,c)))) \heuristics(pullOutQuantifierUnifying, pullOutQuantifierEx) Choices: true} testEquality(String, String)[848] 0s passed
[849] ex_unused, ex_unused { \find(exists{u (variable)}(b)) \varcond(\notFreeIn(u (variable), b (formula))) \replacewith(b) \heuristics(elimQuantifier) Choices: true} testEquality(String, String)[849] 0.001s passed
[84] applyEq_and_gen3, applyEq_and_gen3 { \find(and(and(b,not(equals(applyEqLeft,applyEqOther))),equals(applyEqLeft,applyEqRight))) \replacewith(and(and(b,not(equals(applyEqRight,applyEqOther))),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[84] 0.001s passed
[850] exact_instance_definition_boolean, exact_instance_definition_boolean { \find(equals(boolean::exactInstance(bool),TRUE)) \varcond(\notFreeIn(bv (variable), bool (boolean term))) \replacewith(exists{bv (variable)}(equals(bool,bv))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[850] 0.001s passed
[851] exact_instance_definition_int, exact_instance_definition_int { \find(equals(int::exactInstance(idx0),TRUE)) \varcond(\notFreeIn(iv (variable), idx0 (int term))) \replacewith(exists{iv (variable)}(equals(idx0,iv))) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[851] 0s passed
[852] exact_instance_definition_null, exact_instance_definition_null { \find(equals(Null::exactInstance(obj),TRUE)) \varcond(\notFreeIn(bv (variable), bool (boolean term))) \replacewith(equals(obj,null)) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[852] 0.001s passed
[853] exact_instance_for_interfaces_or_abstract_classes, exact_instance_for_interfaces_or_abstract_classes { \find(G::exactInstance(obj)) \varcond(\isAbstractOrInterface (G), ) \replacewith(FALSE) \heuristics(simplify) Choices: programRules:Java} testEquality(String, String)[853] 0.001s passed
[854] exact_instance_known_dynamic_type, exact_instance_known_dynamic_type { \assumes ([equals(G::exactInstance(a),TRUE)]==>[]) \find(H::exactInstance(a)) \sameUpdateLevel\varcond(\not\same(G, H), ) \replacewith(FALSE) \heuristics(evaluate_instanceof, simplify) Choices: true} testEquality(String, String)[854] 0.001s passed
[855] execBreak, execBreak { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[855] 0.001s passed
[856] execBreakEliminateBreakLabel, execBreakEliminateBreakLabel { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[856] 0s passed
[857] execBreakEliminateBreakLabelWildcard, execBreakEliminateBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[857] 0.001s passed
[858] execBreakEliminateContinue, execBreakEliminateContinue { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[858] 0s passed
[859] execBreakEliminateContinueLabel, execBreakEliminateContinueLabel { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Continue #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[859] 0s passed
[85] applyEq_and_int0, applyEq_and_int0 { \find(and(geq(applyEqLeft,applyEqOther),equals(applyEqLeft,applyEqRight))) \replacewith(and(geq(applyEqRight,applyEqOther),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[85] 0.001s passed
[860] execBreakEliminateContinueLabelWildcard, execBreakEliminateContinueLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Continue *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[860] 0.006s passed
[861] execBreakEliminateExcCcatch, execBreakEliminateExcCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (#t #v0) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[861] 0.001s passed
[862] execBreakEliminateReturn, execBreakEliminateReturn { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {break ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[862] 0s passed
[863] execBreakEliminateReturnVal, execBreakEliminateReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {break ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[863] 0.001s passed
[864] execBreakLabelEliminateBreak, execBreakLabelEliminateBreak { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {break ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[864] 0s passed
[865] execBreakLabelEliminateBreakLabelNoMatch, execBreakLabelEliminateBreakLabelNoMatch { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break #lb1) { #slist1 } #cs ... }\] (post)) \varcond(\different (#lb (program Label), #lb1 (program Label)), ) \replacewith(#allmodal ( (modal operator))\[{ .. exec {break ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[865] 0s passed
[866] execBreakLabelEliminateContinue, execBreakLabelEliminateContinue { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[866] 0.001s passed
[867] execBreakLabelEliminateContinueLabel, execBreakLabelEliminateContinueLabel { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Continue #lb1) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[867] 0s passed
[868] execBreakLabelEliminateContinueLabelWildcard, execBreakLabelEliminateContinueLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Continue *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[868] 0.005s passed
[869] execBreakLabelEliminateExcCcatch, execBreakLabelEliminateExcCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (#t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {break ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[869] 0s passed
[86] applyEq_and_int1, applyEq_and_int1 { \find(and(and(b,geq(applyEqLeft,applyEqOther)),equals(applyEqLeft,applyEqRight))) \replacewith(and(and(b,geq(applyEqRight,applyEqOther)),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[86] 0s passed
[870] execBreakLabelEliminateReturn, execBreakLabelEliminateReturn { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {break ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[870] 0.005s passed
[871] execBreakLabelEliminateReturnVal, execBreakLabelEliminateReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {break ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[871] 0s passed
[872] execBreakLabelMatch, execBreakLabelMatch { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[872] 0s passed
[873] execBreakLabelWildcard, execBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {break ; #slist } ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[873] 0s passed
[874] execCatchThrow, execCatchThrow { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (#t #v0) { #slist1 } ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#se==null) { exec { throw new java.lang.NullPointerException (); } ccatch (#t #v0) { #slist1 } } else if (#se instanceof #t) { #t #v0; #v0=(#t)#se; #slist1 } else { throw #se; } ... }\] (post)) \heuristics(simplif… testEquality(String, String)[874] 0s passed
[875] execContinue, execContinue { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[875] 0.008s passed
[876] execContinueEliminateBreak, execContinueEliminateBreak { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[876] 0.001s passed
[877] execContinueEliminateBreakLabel, execContinueEliminateBreakLabel { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Break #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[877] 0s passed
[878] execContinueEliminateBreakLabelWildcard, execContinueEliminateBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[878] 0s passed
[879] execContinueEliminateExcCcatch, execContinueEliminateExcCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (#t #v0) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {continue ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[879] 0s passed
[87] applyEq_and_int2, applyEq_and_int2 { \find(and(leq(applyEqLeft,applyEqOther),equals(applyEqLeft,applyEqRight))) \replacewith(and(leq(applyEqRight,applyEqOther),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[87] 0.002s passed
[880] execContinueEliminateReturn, execContinueEliminateReturn { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[880] 0s passed
[881] execContinueEliminateReturnVal, execContinueEliminateReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[881] 0.001s passed
[882] execContinueLabelEliminateBreak, execContinueLabelEliminateBreak { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[882] 0.001s passed
[883] execContinueLabelEliminateBreakLabel, execContinueLabelEliminateBreakLabel { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Break #lb1) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[883] 0s passed
[884] execContinueLabelEliminateBreakLabelWildcard, execContinueLabelEliminateBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[884] 0.001s passed
[885] execContinueLabelEliminateContinue, execContinueLabelEliminateContinue { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[885] 0s passed
[886] execContinueLabelEliminateContinueLabelNoMatch, execContinueLabelEliminateContinueLabelNoMatch { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Continue #lb1) { #slist1 } #cs ... }\] (post)) \varcond(\different (#lb (program Label), #lb1 (program Label)), ) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[886] 0.001s passed
[887] execContinueLabelEliminateExcCcatch, execContinueLabelEliminateExcCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (#t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {continue ; } ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[887] 0s passed
[888] execContinueLabelEliminateReturn, execContinueLabelEliminateReturn { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[888] 0s passed
[889] execContinueLabelEliminateReturnVal, execContinueLabelEliminateReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {continue ; } #cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[889] 0s passed
[88] applyEq_and_int3, applyEq_and_int3 { \find(and(and(b,leq(applyEqLeft,applyEqOther)),equals(applyEqLeft,applyEqRight))) \replacewith(and(and(b,leq(applyEqRight,applyEqOther)),equals(applyEqLeft,applyEqRight))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[88] 0.001s passed
[890] execContinueLabelMatch, execContinueLabelMatch { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Continue #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[890] 0s passed
[891] execContinueLabelWildcard, execContinueLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {continue ; #slist } ccatch (\Continue *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[891] 0.001s passed
[892] execEmpty, execEmpty { \find(#allmodal ( (modal operator))\[{ .. exec {}#cs ... }\] (post)) \replacewith(#allmodal(post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[892] 0s passed
[893] execMultipleCatchThrow, execMultipleCatchThrow { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (#t #v0) { #slist1 } ccatch (#t2 #v1) { #slist3 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. if (#se==null) { exec { throw new java.lang.NullPointerException (); } ccatch (#t #v0) { #slist1 } ccatch (#t2 #v1) { #slist3 } #cs } else if (#se instanceof #t) { #t #v0; #v0=(#t)#se; #slist… testEquality(String, String)[893] 0.001s passed
[894] execNoCcatch, execNoCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {#slist} ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[894] 0s passed
[895] execReturn, execReturn { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[895] 0s passed
[896] execReturnEliminateBreak, execReturnEliminateBreak { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[896] 0s passed
[897] execReturnEliminateBreakLabel, execReturnEliminateBreakLabel { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Break #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[897] 0.001s passed
[898] execReturnEliminateBreakLabelWildcard, execReturnEliminateBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[898] 0s passed
[899] execReturnEliminateContinue, execReturnEliminateContinue { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[899] 0s passed
[89] applyEq_and_int4, applyEq_and_int4 { \find(and(equals(applyEqLeft,applyEqRight),geq(applyEqLeft,applyEqOther))) \replacewith(and(equals(applyEqLeft,applyEqRight),geq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[89] 0s passed
[8] activeUseBitwiseAnd, activeUseBitwiseAnd { \find(#allmodal ( (modal operator))\[{ .. #sv=#left&#right; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = #left&#right;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[8] 0.001s passed
[900] execReturnEliminateContinueLabel, execReturnEliminateContinueLabel { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Continue #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[900] 0s passed
[901] execReturnEliminateContinueLabelWildcard, execReturnEliminateContinueLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Continue *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[901] 0.001s passed
[902] execReturnEliminateExcCcatch, execReturnEliminateExcCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (#t #v0) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[902] 0s passed
[903] execReturnEliminateReturnVal, execReturnEliminateReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {return ;#slist} ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return ;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[903] 0.001s passed
[904] execReturnVal, execReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \varcond(\sub(\typeof(#se (program SimpleExpression)), \typeof(#v (program Variable))), ) \replacewith(#allmodal ( (modal operator))\[{ .. {#t #v;#v=(#t)#se;#slist1} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[904] 0s passed
[905] execReturnValEliminateBreak, execReturnValEliminateBreak { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[905] 0s passed
[906] execReturnValEliminateBreakLabel, execReturnValEliminateBreakLabel { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Break #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[906] 0.001s passed
[907] execReturnValEliminateBreakLabelWildcard, execReturnValEliminateBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[907] 0s passed
[908] execReturnValEliminateContinue, execReturnValEliminateContinue { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[908] 0.001s passed
[909] execReturnValEliminateContinueLabel, execReturnValEliminateContinueLabel { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Continue #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[909] 0s passed
[90] applyEq_and_int5, applyEq_and_int5 { \find(and(and(b,equals(applyEqLeft,applyEqRight)),geq(applyEqLeft,applyEqOther))) \replacewith(and(and(b,equals(applyEqLeft,applyEqRight)),geq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[90] 0.001s passed
[910] execReturnValEliminateContinueLabelWildcard, execReturnValEliminateContinueLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Continue *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[910] 0.001s passed
[911] execReturnValEliminateExcCcatch, execReturnValEliminateExcCcatch { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (#t #v0) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {return #se;} ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[911] 0s passed
[912] execReturnValEliminateReturn, execReturnValEliminateReturn { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {return #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[912] 0.001s passed
[913] execReturnValNonMatchingType, execReturnValNonMatchingType { \find(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist} ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \varcond(\not\sub(\typeof(#se (program SimpleExpression)), \typeof(#v (program Variable))), ) \replacewith(#allmodal ( (modal operator))\[{ .. exec {return #se;#slist}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[913] 0.001s passed
[914] execThrowEliminateBreak, execThrowEliminateBreak { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Break) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[914] 0s passed
[915] execThrowEliminateBreakLabel, execThrowEliminateBreakLabel { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Break #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[915] 0s passed
[916] execThrowEliminateBreakLabelWildcard, execThrowEliminateBreakLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Break *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[916] 0s passed
[917] execThrowEliminateContinue, execThrowEliminateContinue { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Continue) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[917] 0.001s passed
[918] execThrowEliminateContinueLabel, execThrowEliminateContinueLabel { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Continue #lb) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[918] 0s passed
[919] execThrowEliminateContinueLabelWildcard, execThrowEliminateContinueLabelWildcard { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Continue *) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[919] 0.001s passed
[91] applyEq_and_int6, applyEq_and_int6 { \find(and(equals(applyEqLeft,applyEqRight),leq(applyEqLeft,applyEqOther))) \replacewith(and(equals(applyEqLeft,applyEqRight),leq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[91] 0s passed
[920] execThrowEliminateReturn, execThrowEliminateReturn { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Return) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[920] 0s passed
[921] execThrowEliminateReturnVal, execThrowEliminateReturnVal { \find(#allmodal ( (modal operator))\[{ .. exec {throw #se;#slist} ccatch (\Return #t #v) { #slist1 } #cs ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. exec {throw #se;}#cs ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[921] 0.001s passed
[922] expIsInfinite, expIsInfinite { \find(expDouble(arg)) \add [imp(and(doubleIsInfinite(arg),gtDouble(arg,DFP(0(#)))),and(doubleIsInfinite(expDouble(arg)),gtDouble(expDouble(arg),DFP(0(#)))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[922] 0s passed
[923] expIsNaN, expIsNaN { \find(expDouble(arg)) \add [imp(doubleIsNaN(arg),doubleIsNaN(expDouble(arg)))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[923] 0.001s passed
[924] expIsZero, expIsZero { \find(expDouble(arg)) \add [imp(and(doubleIsInfinite(arg),ltDouble(arg,DFP(0(#)))),equals(expDouble(arg),DFP(0(#))))]==>[] \heuristics(userTaclets1) Choices: true} testEquality(String, String)[924] 0s passed
[925] expandInRangeByte, expandInRangeByte { \find(inRangeByte(i)) \replacewith(and(leq(i,byte_MAX),leq(byte_MIN,i))) \heuristics(delayedExpansion, defOps_expandRanges) Choices: programRules:Java} testEquality(String, String)[925] 0.001s passed
[926] expandInRangeChar, expandInRangeChar { \find(inRangeChar(i)) \replacewith(and(leq(i,char_MAX),leq(char_MIN,i))) \heuristics(delayedExpansion, defOps_expandRanges) Choices: programRules:Java} testEquality(String, String)[926] 0s passed
[927] expandInRangeInt, expandInRangeInt { \find(inRangeInt(i)) \replacewith(and(leq(i,int_MAX),leq(int_MIN,i))) \heuristics(delayedExpansion, defOps_expandRanges) Choices: programRules:Java} testEquality(String, String)[927] 0.001s passed
[928] expandInRangeLong, expandInRangeLong { \find(inRangeLong(i)) \replacewith(and(leq(i,long_MAX),leq(long_MIN,i))) \heuristics(delayedExpansion, defOps_expandRanges) Choices: programRules:Java} testEquality(String, String)[928] 0s passed
[929] expandInRangeShort, expandInRangeShort { \find(inRangeShort(i)) \replacewith(and(leq(i,short_MAX),leq(short_MIN,i))) \heuristics(delayedExpansion, defOps_expandRanges) Choices: programRules:Java} testEquality(String, String)[929] 0.001s passed
[92] applyEq_and_int7, applyEq_and_int7 { \find(and(and(b,equals(applyEqLeft,applyEqRight)),leq(applyEqLeft,applyEqOther))) \replacewith(and(and(b,equals(applyEqLeft,applyEqRight)),leq(applyEqRight,applyEqOther))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[92] 0.001s passed
[930] expand_addJint, expand_addJint { \find(addJint(i,i1)) \replacewith(moduloInt(add(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[930] 0s passed
[931] expand_addJlong, expand_addJlong { \find(addJlong(i,i1)) \replacewith(moduloLong(add(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[931] 0.004s passed
[932] expand_divJint, expand_divJint { \find(divJint(i,i1)) \replacewith(moduloInt(jdiv(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[932] 0s passed
[933] expand_divJlong, expand_divJlong { \find(divJlong(i,i1)) \replacewith(moduloLong(jdiv(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[933] 0s passed
[934] expand_modJint, expand_modJint { \find(modJint(i,i1)) \replacewith(moduloInt(jmod(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[934] 0s passed
[935] expand_modJlong, expand_modJlong { \find(modJlong(i,i1)) \replacewith(moduloLong(jmod(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[935] 0s passed
[936] expand_moduloByte, expand_moduloByte { \find(moduloByte(i)) \replacewith(add(byte_MIN,mod(add(byte_HALFRANGE,i),byte_RANGE))) \heuristics(delayedExpansion, defOps_expandJNumericOp) Choices: true} testEquality(String, String)[936] 0s passed
[937] expand_moduloChar, expand_moduloChar { \find(moduloChar(i)) \replacewith(mod(i,add(char_MAX,Z(1(#))))) \heuristics(delayedExpansion, defOps_expandJNumericOp) Choices: true} testEquality(String, String)[937] 0.001s passed
[938] expand_moduloInteger, expand_moduloInteger { \find(moduloInt(i)) \replacewith(add(int_MIN,mod(add(int_HALFRANGE,i),int_RANGE))) \heuristics(delayedExpansion, defOps_expandJNumericOp) Choices: true} testEquality(String, String)[938] 0s passed
[939] expand_moduloLong, expand_moduloLong { \find(moduloLong(i)) \replacewith(add(long_MIN,mod(add(long_HALFRANGE,i),long_RANGE))) \heuristics(delayedExpansion, defOps_expandJNumericOp) Choices: true} testEquality(String, String)[939] 0.001s passed
[93] applyEq_or_gen0, applyEq_or_gen0 { \find(or(equals(applyEqLeft,applyEqOther),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(equals(applyEqRight,applyEqOther),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[93] 0.001s passed
[940] expand_moduloShort, expand_moduloShort { \find(moduloShort(i)) \replacewith(add(short_MIN,mod(add(short_HALFRANGE,i),short_RANGE))) \heuristics(delayedExpansion, defOps_expandJNumericOp) Choices: true} testEquality(String, String)[940] 0s passed
[941] expand_mulJint, expand_mulJint { \find(mulJint(i,i1)) \replacewith(moduloInt(mul(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[941] 0.001s passed
[942] expand_mulJlong, expand_mulJlong { \find(mulJlong(i,i1)) \replacewith(moduloLong(mul(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[942] 0s passed
[943] expand_subJint, expand_subJint { \find(subJint(i,i1)) \replacewith(moduloInt(sub(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[943] 0.001s passed
[944] expand_subJlong, expand_subJlong { \find(subJlong(i,i1)) \replacewith(moduloLong(sub(i,i1))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[944] 0s passed
[945] expand_unaryMinusJint, expand_unaryMinusJint { \find(unaryMinusJint(i)) \replacewith(moduloInt(neg(i))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[945] 0.001s passed
[946] expand_unaryMinusJlong, expand_unaryMinusJlong { \find(unaryMinusJlong(i)) \replacewith(moduloLong(neg(i))) \heuristics(defOps_expandJNumericOp) Choices: true} testEquality(String, String)[946] 0.001s passed
[947] false_right, false_right { \find(==>false) \replacewith([]==>[]) \heuristics(concrete) Choices: true} testEquality(String, String)[947] 0s passed
[948] false_to_not_true, false_to_not_true { \find(equals(bo,FALSE)) \replacewith(not(equals(bo,TRUE))) \heuristics(concrete, simplify_boolean) Choices: true} testEquality(String, String)[948] 0s passed
[949] finishJavaCardTransactionBox, finishJavaCardTransactionBox { \find(==>box_transaction\[{ .. #finishJavaCardTransaction; ... }\] (post)) \replacewith([]==>[box(post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[949] 0.001s passed
[94] applyEq_or_gen1, applyEq_or_gen1 { \find(or(or(b,equals(applyEqLeft,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(or(b,equals(applyEqRight,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[94] 0.001s passed
[950] finishJavaCardTransactionDiamond, finishJavaCardTransactionDiamond { \find(==>diamond_transaction\[{ .. #finishJavaCardTransaction; ... }\] (post)) \replacewith([]==>[diamond(post)]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[950] 0s passed
[951] firstOfPair, firstOfPair { \find(first(pair(t,t1))) \replacewith(t) \heuristics(concrete) Choices: true} testEquality(String, String)[951] 0.001s passed
[952] forInitUnfold, forInitUnfold { \find(#allmodal ( (modal operator))\[{ .. for ( #loopInit; #guard; #forupdates ) #s ... }\] (post)) \replacewith(#allmodal ( (modal operator))\[{ .. {forInitUnfoldTransformer(#loopInit)for ( ; #guard; #forupdates ) #s } ... }\] (post)) \heuristics(loop_expand) Choices: programRules:Java} testEquality(String, String)[952] 0s passed
[953] for_to_while, for_to_while { \find(#allmodal ( (modal operator))\[{ .. #forloop ... }\] (post)) \varcond(\newLabel (#innerLabel (program Label)), \newLabel (#outerLabel (program Label)), ) \replacewith(#allmodal ( (modal operator))\[{ .. #for-to-while(#forloop) ... }\] (post)) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[953] 0s passed
[954] geq_add, geq_add { \find(==>geq(i0,i1)) \varcond(\notFreeIn(j2 (variable), i1 (int term)), \notFreeIn(j2 (variable), i0 (int term))) \replacewith([]==>[exists{j2 (variable)}(geq(add(i0,j2),add(i1,j2)))]) Choices: true} testEquality(String, String)[954] 0.001s passed
[955] geq_add_one, geq_add_one { \find(geq(i0,i1)) \replacewith(geq(add(i0,Z(1(#))),add(i1,Z(1(#))))) Choices: true} testEquality(String, String)[955] 0.005s passed
[956] geq_diff_1, geq_diff_1 { \find(geq(add(i0,Z(1(#))),i0)) \replacewith(true) \heuristics(int_arithmetic) Choices: true} testEquality(String, String)[956] 0s passed
[957] geq_to_leq, geq_to_leq { \find(geq(i,i0)) \replacewith(leq(i0,i)) Choices: true} testEquality(String, String)[957] 0.001s passed
[958] geq_to_lt, geq_to_lt { \find(geq(i,j)) \replacewith(not(lt(i,j))) Choices: true} testEquality(String, String)[958] 0s passed
[959] geq_to_lt_alt, geq_to_lt_alt { \find(geq(i,j)) \replacewith(or(gt(i,j),equals(i,j))) Choices: true} testEquality(String, String)[959] 0s passed
[95] applyEq_or_gen2, applyEq_or_gen2 { \find(or(not(equals(applyEqLeft,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(not(equals(applyEqRight,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[95] 0.001s passed
[960] getAnyOfArray2seq, getAnyOfArray2seq { \find(any::seqGet(array2seq(h,a),idx)) \add []==>[and(leq(Z(0(#)),idx),lt(idx,length(a)))] ; \replacewith(any::select(h,a,arr(idx))) Choices: sequences:on} testEquality(String, String)[960] 0s passed
[961] getJavaCardTransient, getJavaCardTransient { \find(==>#allmodal ( (modal operator))\[{ .. #lhs=#jcsystemType.#getTransient(#se)@#jcsystemType; ... }\] (post)) \replacewith([]==>[not(equals(#se,null))]) ; \replacewith([]==>[update-application(elem-update(#lhs (program LeftHandSide))(int::select(heap,#se,java.lang.Object::<transient>)),#allmodal(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} testEquality(String, String)[961] 0.001s passed
[962] getOfArray2seq, getOfArray2seq { \find(alpha::seqGet(array2seq(h,a),idx)) \add []==>[and(leq(Z(0(#)),idx),lt(idx,length(a)))] ; \replacewith(alpha::select(h,a,arr(idx))) Choices: sequences:on} testEquality(String, String)[962] 0s passed
[963] getOfMapEmpty, getOfMapEmpty { \find(mapGet(mapEmpty,x)) \sameUpdateLevel\replacewith(mapUndef) \heuristics(simplify) Choices: true} testEquality(String, String)[963] 0.011s passed
[964] getOfMapForeach, getOfMapForeach { \find(mapGet(mapForeach{v (variable)}(b,y),x)) \sameUpdateLevel\replacewith(if-then-else(inDomain(mapForeach{v (variable)}(b,y),x),subst{v (variable)}(alpha::cast(x),y),mapUndef)) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[964] 0s passed
[965] getOfMapOverride, getOfMapOverride { \find(mapGet(mapOverride(m0,m1),x)) \sameUpdateLevel\replacewith(if-then-else(inDomain(m1,x),mapGet(m1,x),mapGet(m0,x))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[965] 0s passed
[966] getOfMapRemove, getOfMapRemove { \find(mapGet(mapRemove(m,key),x)) \sameUpdateLevel\replacewith(if-then-else(equals(x,key),mapUndef,mapGet(m,x))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[966] 0s passed
[967] getOfMapSingleton, getOfMapSingleton { \find(mapGet(mapSingleton(x,y),z)) \sameUpdateLevel\replacewith(if-then-else(equals(x,z),y,mapUndef)) \heuristics(simplify) Choices: true} testEquality(String, String)[967] 0s passed
[968] getOfMapUpdate, getOfMapUpdate { \find(mapGet(mapUpdate(m,key,value),x)) \sameUpdateLevel\replacewith(if-then-else(equals(x,key),value,mapGet(m,x))) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[968] 0s passed
[969] getOfSeq2Map, getOfSeq2Map { \find(mapGet(seq2map(s),x)) \sameUpdateLevel\replacewith(if-then-else(and(and(equals(int::instance(x),TRUE),leq(Z(0(#)),int::cast(x))),lt(int::cast(x),seqLen(s))),any::seqGet(s,int::cast(x)),mapUndef)) \heuristics(simplify_enlarging) Choices: true} testEquality(String, String)[969] 0s passed
[96] applyEq_or_gen3, applyEq_or_gen3 { \find(or(or(b,not(equals(applyEqLeft,applyEqOther))),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(or(b,not(equals(applyEqRight,applyEqOther))),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[96] 0.001s passed
[970] getOfSeqConcat, getOfSeqConcat { \find(alpha::seqGet(seqConcat(seq,seq2),idx)) \replacewith(if-then-else(lt(idx,seqLen(seq)),alpha::seqGet(seq,idx),alpha::seqGet(seq2,sub(idx,seqLen(seq))))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[970] 0s passed
[971] getOfSeqConcatEQ, getOfSeqConcatEQ { \assumes ([equals(seqConcat(seq,seq2),EQ)]==>[]) \find(alpha::seqGet(EQ,idx)) \sameUpdateLevel\replacewith(if-then-else(lt(idx,seqLen(seq)),alpha::seqGet(seq,idx),alpha::seqGet(seq2,sub(idx,seqLen(seq))))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} testEquality(String, String)[971] 0s passed
[972] getOfSeqDef, getOfSeqDef { \find(alpha::seqGet(seqDef{uSub (variable)}(from,to,t),idx)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::cast(subst{uSub (variable)}(add(idx,from),t)),alpha::cast(seqGetOutside))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[972] 0s passed
[973] getOfSeqDefEQ, getOfSeqDefEQ { \assumes ([equals(seqDef{uSub (variable)}(from,to,t),EQ)]==>[]) \find(alpha::seqGet(EQ,idx)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::cast(subst{uSub (variable)}(add(idx,from),t)),alpha::cast(seqGetOutside))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[973] 0s passed
[974] getOfSeqReverse, getOfSeqReverse { \find(alpha::seqGet(seqReverse(seq),idx)) \replacewith(alpha::seqGet(seq,sub(sub(seqLen(seq),Z(1(#))),idx))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[974] 0s passed
[975] getOfSeqReverseEQ, getOfSeqReverseEQ { \assumes ([equals(seqReverse(seq),EQ)]==>[]) \find(alpha::seqGet(EQ,idx)) \sameUpdateLevel\replacewith(alpha::seqGet(seq,sub(sub(seqLen(seq),Z(1(#))),idx))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} testEquality(String, String)[975] 0.001s passed
[976] getOfSeqSingleton, getOfSeqSingleton { \find(alpha::seqGet(seqSingleton(x),idx)) \replacewith(if-then-else(equals(idx,Z(0(#))),alpha::cast(x),alpha::cast(seqGetOutside))) \heuristics(simplify) Choices: sequences:on} testEquality(String, String)[976] 0s passed
[977] getOfSeqSingletonConcrete, getOfSeqSingletonConcrete { \find(alpha::seqGet(seqSingleton(x),Z(0(#)))) \replacewith(alpha::cast(x)) \heuristics(concrete) Choices: sequences:on} testEquality(String, String)[977] 0.001s passed
[978] getOfSeqSingletonEQ, getOfSeqSingletonEQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) \find(alpha::seqGet(EQ,idx)) \sameUpdateLevel\replacewith(if-then-else(equals(idx,Z(0(#))),alpha::cast(x),alpha::cast(seqGetOutside))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} testEquality(String, String)[978] 0s passed
[979] getOfSeqSub, getOfSeqSub { \find(alpha::seqGet(seqSub(seq,from,to),idx)) \replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::seqGet(seq,add(idx,from)),alpha::cast(seqGetOutside))) \heuristics(simplify_enlarging) Choices: sequences:on} testEquality(String, String)[979] 0.001s passed
[97] applyEq_or_int0, applyEq_or_int0 { \find(or(geq(applyEqLeft,applyEqOther),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(geq(applyEqRight,applyEqOther),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[97] 0.001s passed
[980] getOfSeqSubEQ, getOfSeqSubEQ { \assumes ([equals(seqSub(seq,from,to),EQ)]==>[]) \find(alpha::seqGet(EQ,idx)) \sameUpdateLevel\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::seqGet(seq,add(idx,from)),alpha::cast(seqGetOutside))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} testEquality(String, String)[980] 0s passed
[981] greater, greater { \find(gt(i,i0)) \replacewith(lt(i0,i)) Choices: true} testEquality(String, String)[981] 0.001s passed
[982] greater_add, greater_add { \find(==>gt(i0,i1)) \varcond(\notFreeIn(j2 (variable), i1 (int term)), \notFreeIn(j2 (variable), i0 (int term))) \replacewith([]==>[exists{j2 (variable)}(gt(add(i0,j2),add(i1,j2)))]) Choices: true} testEquality(String, String)[982] 0s passed
[983] greater_add_one, greater_add_one { \find(gt(i0,i1)) \replacewith(gt(add(i0,Z(1(#))),add(i1,Z(1(#))))) Choices: true} testEquality(String, String)[983] 0.001s passed
[984] greater_equal_than_comparison_new, greater_equal_than_comparison_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0>=#senf1; ... }\] (post)) \replacewith(if-then-else(geq(#senf0,#senf1),#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post),#allmodal ( (modal operator))\[{ .. #lhs=false; ... }\] (post))) \heuristics(split_if, simplify_prog, obsolete) Choices: programRules:Java} testEquality(String, String)[984] 0s passed
[985] greater_equal_than_comparison_simple, greater_equal_than_comparison_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0>=#senf1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(geq(#senf0,#senf1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[985] 0.005s passed
[986] greater_equal_than_comparison_simple_double, greater_equal_than_comparison_simple_double { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seDouble0>=#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(geqDouble(#seDouble0,#seDouble1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[986] 0s passed
[987] greater_equal_than_comparison_simple_float, greater_equal_than_comparison_simple_float { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seFloat0>=#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(geqFloat(#seFloat0,#seFloat1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[987] 0.001s passed
[988] greater_literals, greater_literals { \find(gt(Z(iz),Z(jz))) \replacewith(#greater(Z(iz),Z(jz))) \heuristics(simplify_literals) Choices: true} testEquality(String, String)[988] 0s passed
[989] greater_than_comparison_new, greater_than_comparison_new { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0>#senf1; ... }\] (post)) \replacewith(if-then-else(gt(#senf0,#senf1),#allmodal ( (modal operator))\[{ .. #lhs=true; ... }\] (post),#allmodal ( (modal operator))\[{ .. #lhs=false; ... }\] (post))) \heuristics(split_if, simplify_prog, obsolete) Choices: programRules:Java} testEquality(String, String)[989] 0.001s passed
[98] applyEq_or_int1, applyEq_or_int1 { \find(or(or(b,geq(applyEqLeft,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(or(b,geq(applyEqRight,applyEqOther)),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[98] 0.001s passed
[990] greater_than_comparison_simple, greater_than_comparison_simple { \find(#allmodal ( (modal operator))\[{ .. #lhs=#senf0>#senf1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(gt(#senf0,#senf1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[990] 0s passed
[991] greater_than_comparison_simple_double, greater_than_comparison_simple_double { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seDouble0>#seDouble1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(gtDouble(#seDouble0,#seDouble1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[991] 0.008s passed
[992] greater_than_comparison_simple_float, greater_than_comparison_simple_float { \find(#allmodal ( (modal operator))\[{ .. #lhs=#seFloat0>#seFloat1; ... }\] (post)) \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(if-then-else(gtFloat(#seFloat0,#seFloat1),TRUE,FALSE)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} testEquality(String, String)[992] 0s passed
[993] gt_diff_1, gt_diff_1 { \find(gt(add(i0,Z(1(#))),i0)) \replacewith(true) \heuristics(int_arithmetic) Choices: true} testEquality(String, String)[993] 0s passed
[994] gt_to_lt, gt_to_lt { \find(gt(i,i0)) \replacewith(lt(i0,i)) Choices: true} testEquality(String, String)[994] 0s passed
[995] hashCodeBase, hashCodeBase { \find(clHashCode(seqEmpty)) \replacewith(Z(0(#))) \heuristics(simplify_literals) Choices: Strings:on} testEquality(String, String)[995] 0s passed
[996] hideAuxiliaryEq, hideAuxiliaryEq { \find(equals(result,auxiliarySK)==>) \addrules [replaceKnownAuxiliaryConstant { \find(auxiliarySK) \inSequentState\replacewith(result) \heuristics(concrete) Choices: programRules:Java}] \replacewith([]==>[]) \heuristics(hide_auxiliary_eq) Choices: programRules:Java} testEquality(String, String)[996] 0s passed
[997] hideAuxiliaryEqConcrete, hideAuxiliaryEqConcrete { \find(equals(auxiliarySK,TRUE)==>) \addrules [replaceKnownAuxiliaryConstant { \find(auxiliarySK) \inSequentState\replacewith(TRUE) \heuristics(concrete) Choices: programRules:Java}] \replacewith([]==>[]) \heuristics(hide_auxiliary_eq_const) Choices: programRules:Java} testEquality(String, String)[997] 0s passed
[998] hideAuxiliaryEqConcrete2, hideAuxiliaryEqConcrete2 { \find(==>equals(auxiliarySK,TRUE)) \addrules [replaceKnownAuxiliaryConstant { \find(auxiliarySK) \inSequentState\replacewith(FALSE) \heuristics(concrete) Choices: programRules:Java}] \replacewith([]==>[]) \heuristics(hide_auxiliary_eq_const) Choices: programRules:Java} testEquality(String, String)[998] 0s passed
[999] hide_left, hide_left { \find(b==>) \addrules [insert_hidden { \add [b]==>[] Choices: true}] \replacewith([]==>[]) Choices: true} testEquality(String, String)[999] 0s passed
[99] applyEq_or_int2, applyEq_or_int2 { \find(or(leq(applyEqLeft,applyEqOther),not(equals(applyEqLeft,applyEqRight)))) \replacewith(or(leq(applyEqRight,applyEqOther),not(equals(applyEqLeft,applyEqRight)))) \heuristics(apply_equations_andOr) Choices: true} testEquality(String, String)[99] 0.006s passed
[9] activeUseBitwiseNegation, activeUseBitwiseNegation { \find(#allmodal ( (modal operator))\[{ .. #sv=~#left; ... }\] (post)) \varcond(\new(#v0 (program Variable), \typeof(#sv (program StaticVariable)))) \replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#sv) #v0 = ~#left;@(#sv)=#v0; ... }\] (post)) \heuristics(simplify_expression) Choices: (programRules:Java & initialisation:disableStaticInitialisation)} testEquality(String, String)[9] 0.001s passed