| Test | Method name | Duration | Result | 
| [1000] 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)[1000] | 0s | passed | 
| [1001] gt_diff_1, gt_diff_1 {
\find(gt(add(i0,Z(1(#))),i0))
\replacewith(true) 
\heuristics(int_arithmetic)
Choices: true} | testEquality(String, String)[1001] | 0.001s | passed | 
| [1002] gt_to_lt, gt_to_lt {
\find(gt(i,i0))
\replacewith(lt(i0,i)) 
Choices: true} | testEquality(String, String)[1002] | 0s | passed | 
| [1003] hashCodeBase, hashCodeBase {
\find(clHashCode(seqEmpty))
\replacewith(Z(0(#))) 
\heuristics(simplify_literals)
Choices: Strings:on} | testEquality(String, String)[1003] | 0s | passed | 
| [1004] 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)[1004] | 0.001s | passed | 
| [1005] 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)[1005] | 0s | passed | 
| [1006] 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)[1006] | 0s | passed | 
| [1007] hide_left, hide_left {
\find(b==>)
\addrules [insert_hidden {
\add [b]==>[] 
Choices: true}] \replacewith([]==>[]) 
Choices: true} | testEquality(String, String)[1007] | 0.001s | passed | 
| [1008] hide_right, hide_right {
\find(==>b)
\addrules [insert_hidden {
\add []==>[b] 
Choices: true}] \replacewith([]==>[]) 
Choices: true} | testEquality(String, String)[1008] | 0s | passed | 
| [1009] 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)[1009] | 0s | 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] 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)[1010] | 0.001s | passed | 
| [1011] 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)[1011] | 0s | passed | 
| [1012] 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)[1012] | 0.001s | passed | 
| [1013] 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)[1013] | 0.001s | passed | 
| [1014] 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)[1014] | 0s | passed | 
| [1015] 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)[1015] | 0.001s | passed | 
| [1016] 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)[1016] | 0.001s | passed | 
| [1017] 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)[1017] | 0s | passed | 
| [1018] 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)[1018] | 0.001s | passed | 
| [1019] 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)[1019] | 0.001s | 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] 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)[1020] | 0s | passed | 
| [1021] 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)[1021] | 0.001s | passed | 
| [1022] 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)[1022] | 0.001s | passed | 
| [1023] 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)[1023] | 0s | passed | 
| [1024] 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)[1024] | 0s | passed | 
| [1025] 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)[1025] | 0.001s | passed | 
| [1026] 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)[1026] | 0s | passed | 
| [1027] 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)[1027] | 0.001s | passed | 
| [1028] 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)[1028] | 0.001s | passed | 
| [1029] 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)[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_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)[1030] | 0.001s | passed | 
| [1031] 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)[1031] | 0s | passed | 
| [1032] 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)[1032] | 0s | passed | 
| [1033] 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)[1033] | 0.001s | passed | 
| [1034] 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)[1034] | 0s | passed | 
| [1035] 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)[1035] | 0s | passed | 
| [1036] ifExthenelse1_false, ifExthenelse1_false {
\find(ifExThenElse{intVar (variable)}(false,then,else))
\replacewith(else) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1036] | 0.001s | passed | 
| [1037] ifExthenelse1_false_for, ifExthenelse1_false_for {
\find(ifExThenElse{intVar (variable)}(false,b,c))
\replacewith(c) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1037] | 0s | passed | 
| [1038] 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)[1038] | 0.001s | passed | 
| [1039] 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)[1039] | 0s | 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.001s | passed | 
| [1040] 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)[1040] | 0s | passed | 
| [1041] 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)[1041] | 0.001s | passed | 
| [1042] 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)[1042] | 0.001s | passed | 
| [1043] 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)[1043] | 0s | passed | 
| [1044] 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)[1044] | 0s | passed | 
| [1045] 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)[1045] | 0.001s | passed | 
| [1046] 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)[1046] | 0s | passed | 
| [1047] 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)[1047] | 0s | passed | 
| [1048] 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)[1048] | 0.001s | passed | 
| [1049] 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)[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] 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)[1050] | 0s | passed | 
| [1051] 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)[1051] | 0.001s | passed | 
| [1052] 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)[1052] | 0s | passed | 
| [1053] ifthenelse_concrete, ifthenelse_concrete {
\find(if-then-else(phi,true,false))
\replacewith(phi) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1053] | 0s | passed | 
| [1054] ifthenelse_concrete2, ifthenelse_concrete2 {
\find(if-then-else(phi,false,true))
\replacewith(not(phi)) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1054] | 0.001s | passed | 
| [1055] 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)[1055] | 0s | passed | 
| [1056] 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)[1056] | 0.001s | passed | 
| [1057] 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)[1057] | 0s | passed | 
| [1058] 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)[1058] | 0s | passed | 
| [1059] 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)[1059] | 0.001s | 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_false, ifthenelse_false {
\find(if-then-else(false,then,else))
\replacewith(else) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1060] | 0s | passed | 
| [1061] ifthenelse_false_for, ifthenelse_false_for {
\find(if-then-else(false,b,c))
\replacewith(c) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1061] | 0.001s | passed | 
| [1062] 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)[1062] | 0.001s | passed | 
| [1063] 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)[1063] | 0s | passed | 
| [1064] ifthenelse_same_branches, ifthenelse_same_branches {
\find(if-then-else(phi,then,then))
\replacewith(then) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1064] | 0.001s | passed | 
| [1065] ifthenelse_same_branches_for, ifthenelse_same_branches_for {
\find(if-then-else(phi,b,b))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1065] | 0s | passed | 
| [1066] 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)[1066] | 0s | passed | 
| [1067] 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)[1067] | 0.001s | passed | 
| [1068] 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)[1068] | 0s | passed | 
| [1069] 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)[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] 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)[1070] | 0s | passed | 
| [1071] 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)[1071] | 0s | passed | 
| [1072] 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)[1072] | 0.001s | passed | 
| [1073] 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)[1073] | 0s | passed | 
| [1074] ifthenelse_true, ifthenelse_true {
\find(if-then-else(true,then,else))
\replacewith(then) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1074] | 0s | passed | 
| [1075] ifthenelse_true_for, ifthenelse_true_for {
\find(if-then-else(true,b,c))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1075] | 0.001s | passed | 
| [1076] impLeft, impLeft {
\find(imp(b,c)==>)
\replacewith([c]==>[]) ;
\replacewith([]==>[b]) 
\heuristics(beta)
Choices: true} | testEquality(String, String)[1076] | 0s | passed | 
| [1077] impRight, impRight {
\find(==>imp(b,c))
\replacewith([b]==>[c]) 
\heuristics(alpha)
Choices: true} | testEquality(String, String)[1077] | 0.001s | passed | 
| [1078] inDomainConcrete, inDomainConcrete {
\assumes ([]==>[equals(mapUndef,y)]) 
\find(equals(mapGet(m,x),y)==>)
\add [inDomain(m,x)]==>[] 
\heuristics(inReachableStateImplication)
Choices: true} | testEquality(String, String)[1078] | 0s | passed | 
| [1079] inDomainOfMapEmpty, inDomainOfMapEmpty {
\find(inDomain(mapEmpty,x))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1079] | 0s | 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] | 0s | passed | 
| [1080] 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)[1080] | 0.001s | passed | 
| [1081] inDomainOfMapOverride, inDomainOfMapOverride {
\find(inDomain(mapOverride(m0,m1),x))
\replacewith(or(inDomain(m0,x),inDomain(m1,x))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1081] | 0.063s | passed | 
| [1082] 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)[1082] | 0.001s | passed | 
| [1083] inDomainOfMapSingleton, inDomainOfMapSingleton {
\find(inDomain(mapSingleton(x,y),z))
\replacewith(equals(x,z)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1083] | 0.001s | passed | 
| [1084] 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)[1084] | 0s | passed | 
| [1085] 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)[1085] | 0s | passed | 
| [1086] 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)[1086] | 0s | passed | 
| [1087] 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)[1087] | 0.001s | passed | 
| [1088] 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)[1088] | 0.001s | passed | 
| [1089] 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)[1089] | 0.001s | 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.158s | passed | 
| [1090] 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)[1090] | 0.001s | passed | 
| [1091] 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)[1091] | 0.001s | passed | 
| [1092] 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)[1092] | 0.001s | passed | 
| [1093] 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)[1093] | 0.001s | passed | 
| [1094] 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)[1094] | 0.001s | passed | 
| [1095] 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)[1095] | 0.001s | passed | 
| [1096] 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)[1096] | 0.001s | passed | 
| [1097] 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)[1097] | 0.001s | passed | 
| [1098] 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)[1098] | 0.001s | passed | 
| [1099] 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)[1099] | 0.001s | 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.090s | 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_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)[1100] | 0.001s | passed | 
| [1101] 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)[1101] | 0s | passed | 
| [1102] 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)[1102] | 0s | passed | 
| [1103] inEqSimp_commuteGeq, inEqSimp_commuteGeq {
\find(geq(commLeft,commRight))
\replacewith(leq(commRight,commLeft)) 
\heuristics(inEqSimp_commute, inEqSimp_expand)
Choices: true} | testEquality(String, String)[1103] | 0s | passed | 
| [1104] inEqSimp_commuteLeq, inEqSimp_commuteLeq {
\find(leq(commLeft,commRight))
\replacewith(geq(commRight,commLeft)) 
\heuristics(inEqSimp_commute, inEqSimp_expand)
Choices: true} | testEquality(String, String)[1104] | 0s | passed | 
| [1105] 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)[1105] | 0.001s | passed | 
| [1106] 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)[1106] | 0.001s | passed | 
| [1107] 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)[1107] | 0.001s | passed | 
| [1108] 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)[1108] | 0s | passed | 
| [1109] 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)[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_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)[1110] | 0.001s | passed | 
| [1111] 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)[1111] | 0.001s | passed | 
| [1112] 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)[1112] | 0.001s | passed | 
| [1113] 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)[1113] | 0s | passed | 
| [1114] 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)[1114] | 0s | passed | 
| [1115] 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)[1115] | 0.001s | passed | 
| [1116] 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)[1116] | 0.001s | passed | 
| [1117] 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)[1117] | 0.001s | passed | 
| [1118] 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)[1118] | 0s | passed | 
| [1119] 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)[1119] | 0s | passed | 
| [111] applySkip1, applySkip1 {
\find(update-application(skip,t))
\replacewith(t) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[111] | 0.002s | passed | 
| [1120] 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)[1120] | 0.001s | passed | 
| [1121] 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)[1121] | 0.001s | passed | 
| [1122] 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)[1122] | 0.001s | passed | 
| [1123] 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)[1123] | 0.002s | passed | 
| [1124] 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)[1124] | 0.005s | passed | 
| [1125] 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)[1125] | 0.001s | passed | 
| [1126] 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)[1126] | 0.001s | passed | 
| [1127] 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)[1127] | 0.003s | passed | 
| [1128] 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)[1128] | 0.001s | passed | 
| [1129] 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)[1129] | 0.001s | 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_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)[1130] | 0.001s | passed | 
| [1131] 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)[1131] | 0.001s | passed | 
| [1132] 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)[1132] | 0.001s | passed | 
| [1133] 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)[1133] | 0.002s | passed | 
| [1134] 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)[1134] | 0.001s | passed | 
| [1135] 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)[1135] | 0.001s | passed | 
| [1136] 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)[1136] | 0.001s | passed | 
| [1137] 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)[1137] | 0s | passed | 
| [1138] 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)[1138] | 0.001s | passed | 
| [1139] 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)[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_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)[1140] | 0.027s | passed | 
| [1141] 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)[1141] | 0.001s | passed | 
| [1142] 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)[1142] | 0.001s | passed | 
| [1143] 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)[1143] | 0.001s | passed | 
| [1144] 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)[1144] | 0.001s | passed | 
| [1145] 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)[1145] | 0.001s | passed | 
| [1146] 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)[1146] | 0.001s | passed | 
| [1147] 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)[1147] | 0.001s | passed | 
| [1148] 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)[1148] | 0.001s | passed | 
| [1149] 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)[1149] | 0.001s | 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_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)[1150] | 0s | passed | 
| [1151] 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)[1151] | 0s | passed | 
| [1152] 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)[1152] | 0s | passed | 
| [1153] 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)[1153] | 0.001s | passed | 
| [1154] 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)[1154] | 0.031s | passed | 
| [1155] 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)[1155] | 0.002s | passed | 
| [1156] 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)[1156] | 0.009s | passed | 
| [1157] 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)[1157] | 0s | passed | 
| [1158] 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)[1158] | 0.001s | passed | 
| [1159] 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)[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] 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)[1160] | 0.001s | passed | 
| [1161] 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)[1161] | 0.001s | passed | 
| [1162] indexOfSeqSingleton, indexOfSeqSingleton {
\find(seqIndexOf(seqSingleton(x),x))
\sameUpdateLevel\replacewith(Z(0(#))) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1162] | 0.001s | passed | 
| [1163] 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)[1163] | 0.001s | passed | 
| [1164] 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)[1164] | 0.001s | passed | 
| [1165] 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)[1165] | 0.001s | passed | 
| [1166] ineffectiveCast2, ineffectiveCast2 {
\assumes ([equals(cs,gt)]==>[]) 
\find(C::cast(gt))
\sameUpdateLevel\add [equals(C::cast(gt),gt)]==>[] 
\heuristics(inReachableStateImplication)
Choices: true} | testEquality(String, String)[1166] | 0.027s | passed | 
| [1167] 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)[1167] | 0.001s | passed | 
| [1168] 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)[1168] | 0.002s | passed | 
| [1169] 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)[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] 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)[1170] | 0.001s | passed | 
| [1171] 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)[1171] | 0.009s | passed | 
| [1172] infiniteUnionUnused, infiniteUnionUnused {
\find(infiniteUnion{av (variable)}(s))
\varcond(\notFreeIn(av (variable), s (LocSet term)))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1172] | 0s | passed | 
| [1173] 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)[1173] | 0.001s | passed | 
| [1174] insert_constant_value, insert_constant_value {
\find(#cv)
\replacewith(#constantvalue(#cv)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1174] | 0.001s | passed | 
| [1175] 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)[1175] | 0.001s | passed | 
| [1176] 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)[1176] | 0.001s | passed | 
| [1177] 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)[1177] | 0.001s | passed | 
| [1178] 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)[1178] | 0.001s | passed | 
| [1179] 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)[1179] | 0.001s | 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] instAll, instAll {
\assumes ([all{u (variable)}(b)]==>[]) 
\find(t)
\add [subst{u (variable)}(t,b)]==>[] 
Choices: true} | testEquality(String, String)[1180] | 0.001s | passed | 
| [1181] instEx, instEx {
\assumes ([]==>[exists{u (variable)}(b)]) 
\find(t)
\add []==>[subst{u (variable)}(t,b)] 
Choices: true} | testEquality(String, String)[1181] | 0.001s | passed | 
| [1182] 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)[1182] | 0.002s | passed | 
| [1183] 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)[1183] | 0.001s | passed | 
| [1184] 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)[1184] | 0.001s | passed | 
| [1185] 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)[1185] | 0.001s | passed | 
| [1186] 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)[1186] | 0.001s | passed | 
| [1187] 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)[1187] | 0.001s | passed | 
| [1188] 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)[1188] | 0.001s | passed | 
| [1189] 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)[1189] | 0.001s | 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_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)[1190] | 0.001s | passed | 
| [1191] 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)[1191] | 0.001s | passed | 
| [1192] 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)[1192] | 0.001s | passed | 
| [1193] 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)[1193] | 0.001s | passed | 
| [1194] 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)[1194] | 0s | passed | 
| [1195] 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)[1195] | 0s | passed | 
| [1196] 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)[1196] | 0s | passed | 
| [1197] 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)[1197] | 0.001s | passed | 
| [1198] 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)[1198] | 0.001s | passed | 
| [1199] int_diff_minus_eq, int_diff_minus_eq {
\find(sub(i0,neg(i1)))
\replacewith(add(i0,i1)) 
Choices: true} | testEquality(String, String)[1199] | 0.001s | 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.004s | passed | 
| [1200] 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)[1200] | 0.001s | passed | 
| [1201] 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)[1201] | 0s | passed | 
| [1202] intersectWithAllLocs, intersectWithAllLocs {
\find(intersect(allLocs,s))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1202] | 0s | passed | 
| [1203] intersectWithAllLocsRight, intersectWithAllLocsRight {
\find(intersect(s,allLocs))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1203] | 0.001s | passed | 
| [1204] intersectWithEmpty, intersectWithEmpty {
\find(intersect(empty,s))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1204] | 0.001s | passed | 
| [1205] intersectWithEmptyRight, intersectWithEmptyRight {
\find(intersect(s,empty))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1205] | 0.001s | passed | 
| [1206] intersectWithItself, intersectWithItself {
\find(intersect(s,s))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1206] | 0.001s | passed | 
| [1207] 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)[1207] | 0.001s | passed | 
| [1208] intersectionSetMinusItself, intersectionSetMinusItself {
\find(intersect(setMinus(s1,s2),s2))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1208] | 0.001s | passed | 
| [1209] intersectionSetMinusItself_2, intersectionSetMinusItself_2 {
\find(intersect(s2,setMinus(s1,s2)))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1209] | 0.001s | 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.002s | passed | 
| [1210] introduceAxiom, introduceAxiom {
\add [cutFormula]==>[] 
Choices: true} | testEquality(String, String)[1210] | 0.001s | passed | 
| [1211] irrflConcrete1, irrflConcrete1 {
\find(lt(i,i)==>)
\replacewith([false]==>[]) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1211] | 0.001s | passed | 
| [1212] irrflConcrete2, irrflConcrete2 {
\find(gt(i,i)==>)
\replacewith([false]==>[]) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1212] | 0s | passed | 
| [1213] isFiniteOfMapEmpty, isFiniteOfMapEmpty {
\find(isFinite(mapEmpty))
\sameUpdateLevel\replacewith(true) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1213] | 0s | passed | 
| [1214] isFiniteOfMapRemove, isFiniteOfMapRemove {
\find(isFinite(mapRemove(m,key)))
\sameUpdateLevel\replacewith(isFinite(m)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1214] | 0s | passed | 
| [1215] isFiniteOfMapSingleton, isFiniteOfMapSingleton {
\find(isFinite(mapSingleton(key,value)))
\sameUpdateLevel\replacewith(true) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1215] | 0s | passed | 
| [1216] isFiniteOfMapUpdate, isFiniteOfMapUpdate {
\find(isFinite(mapUpdate(m,key,value)))
\sameUpdateLevel\replacewith(isFinite(m)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1216] | 0s | passed | 
| [1217] isFiniteOfSeq2Map, isFiniteOfSeq2Map {
\find(isFinite(seq2map(s)))
\sameUpdateLevel\replacewith(true) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1217] | 0s | passed | 
| [1218] 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)[1218] | 0.001s | passed | 
| [1219] 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)[1219] | 0.001s | 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.001s | passed | 
| [1220] 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)[1220] | 0.001s | passed | 
| [1221] 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)[1221] | 0.001s | passed | 
| [1222] 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)[1222] | 0.004s | passed | 
| [1223] 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)[1223] | 0.005s | passed | 
| [1224] 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)[1224] | 0.001s | passed | 
| [1225] 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)[1225] | 0.001s | passed | 
| [1226] 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)[1226] | 0.001s | passed | 
| [1227] 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)[1227] | 0.001s | passed | 
| [1228] 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)[1228] | 0.001s | passed | 
| [1229] 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)[1229] | 0.001s | 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.002s | passed | 
| [1230] javaShiftLeftIntDef, javaShiftLeftIntDef {
\find(shiftleftJint(left,right))
\replacewith(moduloInt(shiftleft(left,mod(right,Z(2(3(#))))))) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1230] | 0.001s | passed | 
| [1231] javaShiftLeftLongDef, javaShiftLeftLongDef {
\find(shiftleftJlong(left,right))
\replacewith(moduloLong(shiftleft(left,mod(right,Z(4(6(#))))))) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1231] | 0.001s | passed | 
| [1232] javaShiftRightIntDef, javaShiftRightIntDef {
\find(shiftrightJint(left,right))
\replacewith(moduloInt(shiftright(left,mod(right,Z(2(3(#))))))) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1232] | 0.001s | passed | 
| [1233] javaShiftRightLongDef, javaShiftRightLongDef {
\find(shiftrightJlong(left,right))
\replacewith(moduloLong(shiftright(left,mod(right,Z(4(6(#))))))) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1233] | 0s | passed | 
| [1234] 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)[1234] | 0s | passed | 
| [1235] jdivMultDenom1, jdivMultDenom1 {
\find(jdiv(mul(divDenom,cfac),divDenom))
\add []==>[not(equals(divDenom,Z(0(#))))] ;
\replacewith(cfac) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1235] | 0.001s | passed | 
| [1236] jdivMultDenom2, jdivMultDenom2 {
\find(jdiv(mul(cfac,divDenom),divDenom))
\add []==>[not(equals(divDenom,Z(0(#))))] ;
\replacewith(cfac) 
Choices: true} | testEquality(String, String)[1236] | 0.001s | passed | 
| [1237] 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)[1237] | 0.001s | passed | 
| [1238] jdivPulloutMinusNum, jdivPulloutMinusNum {
\find(jdiv(neg(divNum),divDenom))
\add []==>[not(equals(divDenom,Z(0(#))))] ;
\replacewith(neg(jdiv(divNum,divDenom))) 
Choices: true} | testEquality(String, String)[1238] | 0.012s | passed | 
| [1239] 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)[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] | 0.002s | passed | 
| [1240] 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)[1240] | 0s | passed | 
| [1241] jdiv_one, jdiv_one {
\find(jdiv(divNum,Z(1(#))))
\replacewith(divNum) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1241] | 0.001s | passed | 
| [1242] 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)[1242] | 0.001s | passed | 
| [1243] 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)[1243] | 0.001s | passed | 
| [1244] 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)[1244] | 0s | passed | 
| [1245] 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)[1245] | 0s | passed | 
| [1246] 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)[1246] | 0s | passed | 
| [1247] 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)[1247] | 0s | passed | 
| [1248] 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)[1248] | 0s | passed | 
| [1249] 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)[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] 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)[1250] | 0s | passed | 
| [1251] jmodNumZero, jmodNumZero {
\find(jmod(Z(0(#)),divDenom))
\replacewith(Z(0(#))) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1251] | 0.001s | passed | 
| [1252] 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)[1252] | 0.001s | passed | 
| [1253] 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)[1253] | 0.001s | passed | 
| [1254] 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)[1254] | 0.001s | passed | 
| [1255] 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)[1255] | 0.001s | passed | 
| [1256] 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)[1256] | 0.001s | passed | 
| [1257] 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)[1257] | 0.001s | passed | 
| [1258] jmod_pulloutminusDenom, jmod_pulloutminusDenom {
\find(jmod(divNum,neg(divDenom)))
\add []==>[not(equals(divDenom,Z(0(#))))] ;
\replacewith(jmod(divNum,divDenom)) 
Choices: true} | testEquality(String, String)[1258] | 0.004s | passed | 
| [1259] 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)[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] 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)[1260] | 0s | passed | 
| [1261] 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)[1261] | 0s | passed | 
| [1262] 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)[1262] | 0.001s | passed | 
| [1263] 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)[1263] | 0s | passed | 
| [1264] 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)[1264] | 0.001s | passed | 
| [1265] lenNonNegative, lenNonNegative {
\find(seqLen(seq))
\sameUpdateLevel\add [leq(Z(0(#)),seqLen(seq))]==>[] 
\heuristics(inReachableStateImplication)
Choices: sequences:on} | testEquality(String, String)[1265] | 0.001s | passed | 
| [1266] lenOfArray2seq, lenOfArray2seq {
\find(seqLen(array2seq(h,a)))
\replacewith(length(a)) 
Choices: sequences:on} | testEquality(String, String)[1266] | 0.001s | passed | 
| [1267] lenOfSeqConcat, lenOfSeqConcat {
\find(seqLen(seqConcat(seq,seq2)))
\replacewith(add(seqLen(seq),seqLen(seq2))) 
\heuristics(simplify)
Choices: sequences:on} | testEquality(String, String)[1267] | 0.001s | passed | 
| [1268] 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)[1268] | 0.002s | passed | 
| [1269] 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)[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.001s | passed | 
| [1270] 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)[1270] | 0.001s | passed | 
| [1271] lenOfSeqEmpty, lenOfSeqEmpty {
\find(seqLen(seqEmpty))
\replacewith(Z(0(#))) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1271] | 0.001s | passed | 
| [1272] lenOfSeqEmptyEQ, lenOfSeqEmptyEQ {
\assumes ([equals(seqEmpty,EQ)]==>[]) 
\find(seqLen(EQ))
\sameUpdateLevel\replacewith(Z(0(#))) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1272] | 0.001s | passed | 
| [1273] lenOfSeqReverse, lenOfSeqReverse {
\find(seqLen(seqReverse(seq)))
\replacewith(seqLen(seq)) 
\heuristics(simplify)
Choices: sequences:on} | testEquality(String, String)[1273] | 0s | passed | 
| [1274] lenOfSeqReverseEQ, lenOfSeqReverseEQ {
\assumes ([equals(seqReverse(seq),EQ)]==>[]) 
\find(seqLen(EQ))
\sameUpdateLevel\replacewith(seqLen(seq)) 
\heuristics(simplify)
Choices: sequences:on} | testEquality(String, String)[1274] | 0s | passed | 
| [1275] lenOfSeqSingleton, lenOfSeqSingleton {
\find(seqLen(seqSingleton(x)))
\replacewith(Z(1(#))) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1275] | 0s | passed | 
| [1276] lenOfSeqSingletonEQ, lenOfSeqSingletonEQ {
\assumes ([equals(seqSingleton(x),EQ)]==>[]) 
\find(seqLen(EQ))
\sameUpdateLevel\replacewith(Z(1(#))) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1276] | 0s | passed | 
| [1277] 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)[1277] | 0s | passed | 
| [1278] 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)[1278] | 0s | passed | 
| [1279] lengthReplace, lengthReplace {
\find(seqLen(clReplace(str,searchChar,replaceChar)))
\replacewith(seqLen(str)) 
\heuristics(stringsSimplify)
Choices: Strings:on} | 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] | 0s | passed | 
| [1280] lengthReplaceEQ, lengthReplaceEQ {
\assumes ([equals(clReplace(str,searchChar,replaceChar),newStr)]==>[]) 
\find(seqLen(newStr))
\sameUpdateLevel\replacewith(seqLen(str)) 
\heuristics(stringsSimplify)
Choices: Strings:on} | testEquality(String, String)[1280] | 0.001s | passed | 
| [1281] 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)[1281] | 0.001s | passed | 
| [1282] 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)[1282] | 0.001s | passed | 
| [1283] 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)[1283] | 0.001s | passed | 
| [1284] 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)[1284] | 0.001s | passed | 
| [1285] 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)[1285] | 0.001s | passed | 
| [1286] leq_diff_1, leq_diff_1 {
\find(leq(i0,add(i0,Z(1(#)))))
\replacewith(true) 
\heuristics(int_arithmetic)
Choices: true} | testEquality(String, String)[1286] | 0.001s | passed | 
| [1287] 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)[1287] | 0.001s | passed | 
| [1288] leq_literals, leq_literals {
\find(leq(Z(iz),Z(jz)))
\replacewith(#leq(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1288] | 0s | passed | 
| [1289] leq_to_geq, leq_to_geq {
\find(leq(i,i0))
\replacewith(geq(i0,i)) 
Choices: true} | testEquality(String, String)[1289] | 0.001s | 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.001s | passed | 
| [1290] leq_to_gt, leq_to_gt {
\find(leq(i,j))
\replacewith(not(gt(i,j))) 
Choices: true} | testEquality(String, String)[1290] | 0.001s | passed | 
| [1291] 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)[1291] | 0.001s | passed | 
| [1292] leq_trans, leq_trans {
\assumes ([leq(i,i0)]==>[]) 
\find(leq(i0,i1)==>)
\add [leq(i,i1)]==>[] 
Choices: true} | testEquality(String, String)[1292] | 0.001s | passed | 
| [1293] 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)[1293] | 0.001s | passed | 
| [1294] 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)[1294] | 0.001s | passed | 
| [1295] 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)[1295] | 0.001s | passed | 
| [1296] 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)[1296] | 0.001s | passed | 
| [1297] 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)[1297] | 0s | passed | 
| [1298] less_base, less_base {
\find(lt(i,i))
\replacewith(false) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1298] | 0.001s | passed | 
| [1299] 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)[1299] | 0.001s | 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.001s | passed | 
| [1300] 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)[1300] | 0.001s | passed | 
| [1301] 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)[1301] | 0.002s | passed | 
| [1302] 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)[1302] | 0.001s | passed | 
| [1303] 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)[1303] | 0.001s | passed | 
| [1304] less_is_alternative_1, less_is_alternative_1 {
\assumes ([lt(i,i0),lt(i0,i)]==>[]) 
\closegoal
Choices: true} | testEquality(String, String)[1304] | 0.001s | passed | 
| [1305] 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)[1305] | 0s | passed | 
| [1306] 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)[1306] | 0s | passed | 
| [1307] less_is_total_heu, less_is_total_heu {
\assumes ([]==>[lt(i,i0),equals(i,i0),lt(i0,i)]) 
\closegoal
Choices: true} | testEquality(String, String)[1307] | 0.001s | passed | 
| [1308] less_literals, less_literals {
\find(lt(Z(iz),Z(jz)))
\replacewith(#less(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1308] | 0.001s | passed | 
| [1309] less_neg, less_neg {
\find(lt(i,i0))
\replacewith(not(lt(i0,add(i,Z(1(#)))))) 
Choices: true} | 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_plus, less_plus {
\find(lt(Z(0(#)),add(i0,i1)))
\replacewith(lt(neg(i0),i1)) 
Choices: true} | testEquality(String, String)[1310] | 0.001s | passed | 
| [1311] less_sub, less_sub {
\find(lt(i,i0))
\replacewith(lt(neg(i0),neg(i))) 
Choices: true} | testEquality(String, String)[1311] | 0.001s | passed | 
| [1312] 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)[1312] | 0s | passed | 
| [1313] 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)[1313] | 0.001s | passed | 
| [1314] 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)[1314] | 0.001s | passed | 
| [1315] 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)[1315] | 0.001s | passed | 
| [1316] less_trans, less_trans {
\assumes ([lt(i,i0)]==>[]) 
\find(lt(i0,i1)==>)
\add [lt(i,i1)]==>[] 
Choices: true} | testEquality(String, String)[1316] | 0.001s | passed | 
| [1317] 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)[1317] | 0.001s | passed | 
| [1318] local_cut, local_cut {
\find(phi)
\replacewith(and(or(not(psi),phi),or(psi,phi))) 
Choices: true} | testEquality(String, String)[1318] | 0.001s | passed | 
| [1319] 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)[1319] | 0.001s | 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] | 0.001s | passed | 
| [1320] 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)[1320] | 0.001s | passed | 
| [1321] 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)[1321] | 0.001s | passed | 
| [1322] 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)[1322] | 0.001s | passed | 
| [1323] 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)[1323] | 0.001s | passed | 
| [1324] 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)[1324] | 0.001s | passed | 
| [1325] 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)[1325] | 0.003s | passed | 
| [1326] 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)[1326] | 0s | passed | 
| [1327] 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)[1327] | 0.001s | passed | 
| [1328] 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)[1328] | 0.001s | passed | 
| [1329] 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)[1329] | 0.001s | 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] | 0s | passed | 
| [1330] 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)[1330] | 0.001s | passed | 
| [1331] 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)[1331] | 0.001s | passed | 
| [1332] 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)[1332] | 0.001s | passed | 
| [1333] 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)[1333] | 0.007s | passed | 
| [1334] 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)[1334] | 0.001s | passed | 
| [1335] 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 (\storeStmtIn(#loopS… | testEquality(String, String)[1335] | 0.003s | passed | 
| [1336] 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))\[{
  while… | testEquality(String, String)[1336] | 0.002s | passed | 
| [1337] 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)[1337] | 0.001s | passed | 
| [1338] 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)[1338] | 0s | passed | 
| [1339] 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)[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] 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)[1340] | 0s | passed | 
| [1341] 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)[1341] | 0s | passed | 
| [1342] 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)[1342] | 0.001s | passed | 
| [1343] 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)[1343] | 0.001s | passed | 
| [1344] 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)[1344] | 0.001s | passed | 
| [1345] 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)[1345] | 0.001s | passed | 
| [1346] 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)[1346] | 0s | passed | 
| [1347] lt_diff_1, lt_diff_1 {
\find(lt(i0,add(i0,Z(1(#)))))
\replacewith(true) 
\heuristics(int_arithmetic)
Choices: true} | testEquality(String, String)[1347] | 0s | passed | 
| [1348] lt_to_gt, lt_to_gt {
\find(lt(i,i0))
\replacewith(gt(i0,i)) 
Choices: true} | testEquality(String, String)[1348] | 0.001s | passed | 
| [1349] 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)[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.009s | passed | 
| [1350] 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)[1350] | 0.001s | passed | 
| [1351] make_insert_eq, make_insert_eq {
\find(equals(sr,tr)==>)
\addrules [insert_eq {
\find(sr)
\replacewith(tr) 
Choices: true}] 
Choices: true} | testEquality(String, String)[1351] | 0.001s | passed | 
| [1352] 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)[1352] | 0.006s | passed | 
| [1353] 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)[1353] | 0.001s | passed | 
| [1354] mapRemoveUnchanged, mapRemoveUnchanged {
\find(equals(m,mapRemove(m,key)))
\replacewith(not(inDomain(m,key))) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1354] | 0.001s | passed | 
| [1355] mapRemoveUnchanged2, mapRemoveUnchanged2 {
\find(equals(mapRemove(m,key),m))
\replacewith(not(inDomain(m,key))) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1355] | 0.001s | passed | 
| [1356] mapSizeNotNegativeForFiniteMaps, mapSizeNotNegativeForFiniteMaps {
\find(mapSize(m))
\add [imp(isFinite(m),geq(mapSize(m),Z(0(#))))]==>[] 
\heuristics(inReachableStateImplication)
Choices: true} | testEquality(String, String)[1356] | 0.001s | passed | 
| [1357] 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)[1357] | 0.001s | passed | 
| [1358] 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)[1358] | 0s | passed | 
| [1359] 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)[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.002s | passed | 
| [1360] measuredByCheck, measuredByCheck {
\assumes ([measuredBy(m)]==>[]) 
\find(measuredByCheck(c))
\sameUpdateLevel\replacewith(prec(c,m)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1360] | 0s | passed | 
| [1361] measuredByCheckEmpty, measuredByCheckEmpty {
\assumes ([measuredByEmpty]==>[]) 
\find(measuredByCheck(c))
\sameUpdateLevel\replacewith(true) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1361] | 0.001s | passed | 
| [1362] memsetEmpty, memsetEmpty {
\find(memset(h,empty,x))
\replacewith(h) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1362] | 0.001s | passed | 
| [1363] 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)[1363] | 0s | passed | 
| [1364] 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)]) 
\heurist… | testEquality(String, String)[1364] | 0.005s | passed | 
| [1365] methodCallEmpty, methodCallEmpty {
\find(#allmodal ( (modal operator))\[{ ..
  method-frame (#ex) {}
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1365] | 0.001s | passed | 
| [1366] methodCallEmptyNoreturnBox, methodCallEmptyNoreturnBox {
\find(\[{ ..
  method-frame (result->#v0, #ex) {}
... }\] (post))
\replacewith(box(post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1366] | 0.001s | passed | 
| [1367] methodCallEmptyReturn, methodCallEmptyReturn {
\find(#allmodal ( (modal operator))\[{ ..
  method-frame (#ex) {
    return;
    #slist
  }
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1367] | 0.001s | passed | 
| [1368] 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)[1368] | 0.001s | passed | 
| [1369] 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)[1369] | 0.001s | 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] 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)[1370] | 0.001s | passed | 
| [1371] 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)[1371] | 0.001s | passed | 
| [1372] 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)[1372] | 0.001s | passed | 
| [1373] 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)[1373] | 0.001s | passed | 
| [1374] 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)[1374] | 0.001s | passed | 
| [1375] 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([]==>[#allm… | testEquality(String, String)[1375] | 0.001s | passed | 
| [1376] 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)[1376] | 0s | passed | 
| [1377] 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)[1377] | 0s | passed | 
| [1378] 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)[1378] | 0.001s | passed | 
| [1379] 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)[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.001s | passed | 
| [1380] 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)[1380] | 0.002s | passed | 
| [1381] 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)[1381] | 0.001s | passed | 
| [1382] 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)[1382] | 0s | passed | 
| [1383] minus_distribute_2, minus_distribute_2 {
\find(neg(sub(i,i1)))
\replacewith(add(neg(i),i1)) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1383] | 0s | passed | 
| [1384] 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)[1384] | 0s | passed | 
| [1385] 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)[1385] | 0s | passed | 
| [1386] 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)[1386] | 0s | passed | 
| [1387] 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)[1387] | 0.001s | passed | 
| [1388] moduloByteFixpoint, moduloByteFixpoint {
\assumes ([inRangeByte(i)]==>[]) 
\find(moduloByte(i))
\sameUpdateLevel\replacewith(i) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1388] | 0s | passed | 
| [1389] moduloByteFixpointInline, moduloByteFixpointInline {
\find(moduloByte(i))
\sameUpdateLevel\add [equals(if-then-else(inRangeByte(i),i,moduloT),moduloT),equals(moduloByte(i),moduloT)]==>[] \replacewith(moduloT) 
Choices: true} | testEquality(String, String)[1389] | 0.001s | 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.003s | passed | 
| [1390] moduloByteIsInByte, moduloByteIsInByte {
\find(inByte(moduloByte(t)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1390] | 0.001s | passed | 
| [1391] moduloByteIsInRangeByte, moduloByteIsInRangeByte {
\find(inRangeByte(moduloByte(i)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1391] | 0s | passed | 
| [1392] moduloCharFixpoint, moduloCharFixpoint {
\assumes ([inRangeChar(i)]==>[]) 
\find(moduloChar(i))
\sameUpdateLevel\replacewith(i) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1392] | 0s | passed | 
| [1393] moduloCharFixpointInline, moduloCharFixpointInline {
\find(moduloChar(i))
\sameUpdateLevel\add [equals(if-then-else(inRangeChar(i),i,moduloT),moduloT),equals(moduloChar(i),moduloT)]==>[] \replacewith(moduloT) 
Choices: true} | testEquality(String, String)[1393] | 0.001s | passed | 
| [1394] moduloCharIsInChar, moduloCharIsInChar {
\find(inChar(moduloChar(t)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1394] | 0.001s | passed | 
| [1395] moduloCharIsInRangeChar, moduloCharIsInRangeChar {
\find(inRangeChar(moduloChar(i)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1395] | 0s | passed | 
| [1396] moduloIntFixpoint, moduloIntFixpoint {
\assumes ([inRangeInt(i)]==>[]) 
\find(moduloInt(i))
\sameUpdateLevel\replacewith(i) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1396] | 0s | passed | 
| [1397] moduloIntFixpointInline, moduloIntFixpointInline {
\find(moduloInt(i))
\sameUpdateLevel\add [equals(if-then-else(inRangeInt(i),i,moduloT),moduloT),equals(moduloInt(i),moduloT)]==>[] \replacewith(moduloT) 
Choices: true} | testEquality(String, String)[1397] | 0.001s | passed | 
| [1398] moduloIntIsInInt, moduloIntIsInInt {
\find(inInt(moduloInt(t)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1398] | 0.001s | passed | 
| [1399] moduloIntIsInRangeInt, moduloIntIsInRangeInt {
\find(inRangeInt(moduloInt(i)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1399] | 0.001s | 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)… | 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.003s | passed | 
| [1400] moduloLongFixpoint, moduloLongFixpoint {
\assumes ([inRangeLong(i)]==>[]) 
\find(moduloLong(i))
\sameUpdateLevel\replacewith(i) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1400] | 0.001s | passed | 
| [1401] moduloLongFixpointInline, moduloLongFixpointInline {
\find(moduloLong(i))
\sameUpdateLevel\add [equals(if-then-else(inRangeLong(i),i,moduloT),moduloT),equals(moduloLong(i),moduloT)]==>[] \replacewith(moduloT) 
Choices: true} | testEquality(String, String)[1401] | 0.001s | passed | 
| [1402] moduloLongIsInLong, moduloLongIsInLong {
\find(inLong(moduloLong(t)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1402] | 0s | passed | 
| [1403] moduloLongIsInRangeLong, moduloLongIsInRangeLong {
\find(inRangeLong(moduloLong(i)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1403] | 0s | passed | 
| [1404] moduloShortFixpoint, moduloShortFixpoint {
\assumes ([inRangeShort(i)]==>[]) 
\find(moduloShort(i))
\sameUpdateLevel\replacewith(i) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1404] | 0.001s | passed | 
| [1405] moduloShortFixpointInline, moduloShortFixpointInline {
\find(moduloShort(i))
\sameUpdateLevel\add [equals(if-then-else(inRangeShort(i),i,moduloT),moduloT),equals(moduloShort(i),moduloT)]==>[] \replacewith(moduloT) 
Choices: true} | testEquality(String, String)[1405] | 0.001s | passed | 
| [1406] moduloShortIsInRangeShort, moduloShortIsInRangeShort {
\find(inRangeShort(moduloShort(i)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1406] | 0s | passed | 
| [1407] moduloShortIsInShort, moduloShortIsInShort {
\find(inShort(moduloShort(t)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1407] | 0s | passed | 
| [1408] mul_assoc, mul_assoc {
\find(mul(mul(i,i0),i1))
\replacewith(mul(i,mul(i0,i1))) 
Choices: true} | testEquality(String, String)[1408] | 0.001s | passed | 
| [1409] mul_comm, mul_comm {
\find(mul(i0,i1))
\replacewith(mul(i1,i0)) 
Choices: true} | testEquality(String, String)[1409] | 0.001s | 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] 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)[1410] | 0.001s | passed | 
| [1411] 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)[1411] | 0.001s | passed | 
| [1412] mul_literals, mul_literals {
\find(mul(Z(iz),Z(jz)))
\replacewith(#mul(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1412] | 0s | passed | 
| [1413] 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)[1413] | 0s | passed | 
| [1414] 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)[1414] | 0.001s | passed | 
| [1415] 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)[1415] | 0.001s | passed | 
| [1416] 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)[1416] | 0s | passed | 
| [1417] 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)[1417] | 0s | passed | 
| [1418] 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)[1418] | 0s | passed | 
| [1419] 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)[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.002s | passed | 
| [1420] 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)[1420] | 0s | passed | 
| [1421] 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)[1421] | 0.001s | passed | 
| [1422] 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)[1422] | 0.001s | passed | 
| [1423] 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)[1423] | 0.001s | passed | 
| [1424] 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)[1424] | 0.001s | passed | 
| [1425] 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)[1425] | 0.001s | passed | 
| [1426] 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)[1426] | 0s | passed | 
| [1427] multiply_eq, multiply_eq {
\find(equals(multLeft,multRight)==>)
\add [equals(mul(multLeft,multFac),mul(multRight,multFac))]==>[] 
Choices: integerSimplificationRules:full} | testEquality(String, String)[1427] | 0s | passed | 
| [1428] 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)[1428] | 0.001s | passed | 
| [1429] 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)[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] | 0s | passed | 
| [1430] 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)[1430] | 0.001s | passed | 
| [1431] 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)[1431] | 0.001s | passed | 
| [1432] 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)[1432] | 0.001s | passed | 
| [1433] 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)[1433] | 0.001s | passed | 
| [1434] 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)[1434] | 0.001s | passed | 
| [1435] 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)[1435] | 0.001s | passed | 
| [1436] 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)[1436] | 0.001s | passed | 
| [1437] 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)[1437] | 0.001s | passed | 
| [1438] 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)[1438] | 0.001s | passed | 
| [1439] 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)[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] 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)[1440] | 0s | passed | 
| [1441] 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)[1441] | 0s | passed | 
| [1442] 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)[1442] | 0s | passed | 
| [1443] 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)[1443] | 0.001s | passed | 
| [1444] 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)[1444] | 0.001s | passed | 
| [1445] 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)[1445] | 0.001s | passed | 
| [1446] 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)[1446] | 0s | passed | 
| [1447] 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)[1447] | 0s | passed | 
| [1448] 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)[1448] | 0.001s | passed | 
| [1449] neg_literal, neg_literal {
\find(neg(Z(iz)))
\replacewith(Z(neglit(iz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1449] | 0.001s | 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, neq_and {
\find(and(phi,not(phi)))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1450] | 0s | passed | 
| [1451] neq_and_2, neq_and_2 {
\find(and(not(phi),phi))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1451] | 0s | passed | 
| [1452] neq_and_3, neq_and_3 {
\find(and(and(psi,phi),not(phi)))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1452] | 0s | passed | 
| [1453] neq_and_4, neq_and_4 {
\find(and(and(psi,not(phi)),phi))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1453] | 0.001s | passed | 
| [1454] neq_or, neq_or {
\find(or(phi,not(phi)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1454] | 0.001s | passed | 
| [1455] neq_or_2, neq_or_2 {
\find(or(not(phi),phi))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1455] | 0s | passed | 
| [1456] neq_or_3, neq_or_3 {
\find(or(or(psi,phi),not(phi)))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1456] | 0s | passed | 
| [1457] neq_or_4, neq_or_4 {
\find(or(or(psi,not(phi)),phi))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1457] | 0.001s | passed | 
| [1458] 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)[1458] | 0.001s | passed | 
| [1459] niceDouble, niceDouble {
\find(doubleIsNice(arg))
\replacewith(and(not(doubleIsNaN(arg)),not(doubleIsInfinite(arg)))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1459] | 0.001s | 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] niceFloat, niceFloat {
\find(floatIsNice(arg))
\replacewith(and(not(floatIsNaN(arg)),not(floatIsInfinite(arg)))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1460] | 0.001s | passed | 
| [1461] nnf_ex2all, nnf_ex2all {
\find(==>exists{u (variable)}(phi))
\replacewith([all{u (variable)}(not(phi))]==>[]) 
\heuristics(notHumanReadable, moveQuantToLeft)
Choices: true} | testEquality(String, String)[1461] | 0.001s | passed | 
| [1462] nnf_imp2or, nnf_imp2or {
\find(imp(phi,psi))
\replacewith(or(not(phi),psi)) 
\heuristics(notHumanReadable, negationNormalForm)
Choices: true} | testEquality(String, String)[1462] | 0.001s | passed | 
| [1463] nnf_notAll, nnf_notAll {
\find(not(all{u (variable)}(phi)))
\replacewith(exists{u (variable)}(not(phi))) 
\heuristics(notHumanReadable, negationNormalForm)
Choices: true} | testEquality(String, String)[1463] | 0.001s | passed | 
| [1464] nnf_notAnd, nnf_notAnd {
\find(not(and(phi,psi)))
\replacewith(or(not(phi),not(psi))) 
\heuristics(notHumanReadable, negationNormalForm)
Choices: true} | testEquality(String, String)[1464] | 0.001s | passed | 
| [1465] nnf_notEqv, nnf_notEqv {
\find(not(equiv(phi,psi)))
\replacewith(equiv(phi,not(psi))) 
\heuristics(notHumanReadable, negationNormalForm)
Choices: true} | testEquality(String, String)[1465] | 0.001s | passed | 
| [1466] nnf_notEx, nnf_notEx {
\find(not(exists{u (variable)}(phi)))
\replacewith(all{u (variable)}(not(phi))) 
\heuristics(notHumanReadable, negationNormalForm)
Choices: true} | testEquality(String, String)[1466] | 0.001s | passed | 
| [1467] nnf_notOr, nnf_notOr {
\find(not(or(phi,psi)))
\replacewith(and(not(phi),not(psi))) 
\heuristics(notHumanReadable, negationNormalForm)
Choices: true} | testEquality(String, String)[1467] | 0s | passed | 
| [1468] 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)[1468] | 0s | passed | 
| [1469] 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)[1469] | 0.001s | 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] nonNullZero, nonNullZero {
\find(nonNull(heapSV,o,Z(0(#))))
\replacewith(not(equals(o,null))) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1470] | 0.001s | passed | 
| [1471] notInDomain, notInDomain {
\find(==>inDomain(m,x))
\add [equals(mapGet(m,x),mapUndef)]==>[] 
\heuristics(inReachableStateImplication)
Choices: true} | testEquality(String, String)[1471] | 0.001s | passed | 
| [1472] notLeft, notLeft {
\find(not(b)==>)
\replacewith([]==>[b]) 
\heuristics(alpha)
Choices: true} | testEquality(String, String)[1472] | 0.001s | passed | 
| [1473] notRight, notRight {
\find(==>not(b))
\replacewith([b]==>[]) 
\heuristics(alpha)
Choices: true} | testEquality(String, String)[1473] | 0.001s | passed | 
| [1474] 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)[1474] | 0.001s | passed | 
| [1475] nullIsNotNonNull, nullIsNotNonNull {
\find(nonNull(heapSV,null,depth))
\replacewith(false) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1475] | 0.001s | passed | 
| [1476] 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)[1476] | 0.001s | passed | 
| [1477] 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)[1477] | 0.001s | passed | 
| [1478] 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)[1478] | 0.001s | passed | 
| [1479] 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)[1479] | 0.001s | 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] 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)[1480] | 0.001s | passed | 
| [1481] observerDependencyFormula, observerDependencyFormula {
\find(termWithLargeHeap)
\inSequentState\varcond(\sameObserver (termWithLargeHeap (formula), termWithSmallHeap (formula)), )
\add []==>[#ObserverEquality(termWithLargeHeap,termWithSmallHeap)] ;
\replacewith(termWithSmallHeap) 
Choices: programRules:Java} | testEquality(String, String)[1481] | 0.001s | passed | 
| [1482] 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)[1482] | 0s | passed | 
| [1483] 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)[1483] | 0.001s | passed | 
| [1484] 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)[1484] | 0.001s | passed | 
| [1485] 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)[1485] | 0.001s | passed | 
| [1486] 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)[1486] | 0.001s | passed | 
| [1487] 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)[1487] | 0.001s | passed | 
| [1488] 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)[1488] | 0.001s | passed | 
| [1489] 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)[1489] | 0s | 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] optEmpty, optEmpty {
\find(match(opt(rexp),seqEmpty))
\replacewith(true) 
\heuristics(concrete)
Choices: Strings:on} | testEquality(String, String)[1490] | 0s | passed | 
| [1491] orJIntDef, orJIntDef {
\find(orJint(left,right))
\replacewith(moduloInt(binaryOr(left,right))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1491] | 0.001s | passed | 
| [1492] orJintInInt, orJintInInt {
\find(orJint(left,right))
\sameUpdateLevel\add [inRangeInt(orJint(left,right))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1492] | 0.001s | passed | 
| [1493] orLeft, orLeft {
\find(or(b,c)==>)
\replacewith([c]==>[]) ;
\replacewith([b]==>[]) 
\heuristics(beta)
Choices: true} | testEquality(String, String)[1493] | 0.001s | passed | 
| [1494] orRight, orRight {
\find(==>or(b,c))
\replacewith([]==>[b,c]) 
\heuristics(alpha)
Choices: true} | testEquality(String, String)[1494] | 0s | passed | 
| [1495] parallelWithSkip1, parallelWithSkip1 {
\find(parallel-upd(skip,u))
\replacewith(u) 
\heuristics(update_elim)
Choices: true} | testEquality(String, String)[1495] | 0s | passed | 
| [1496] parallelWithSkip2, parallelWithSkip2 {
\find(parallel-upd(u,skip))
\replacewith(u) 
\heuristics(update_elim)
Choices: true} | testEquality(String, String)[1496] | 0.001s | passed | 
| [1497] partition_inequation, partition_inequation {
\assumes ([]==>[lt(i,i0)]) 
\find(lt(i,i1)==>)
\add []==>[lt(i1,i0)] 
Choices: true} | testEquality(String, String)[1497] | 0.001s | passed | 
| [1498] permissionDefaultValue, permissionDefaultValue {
\find(Permission::defaultValue)
\replacewith(initFullPermission) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1498] | 0.001s | passed | 
| [1499] 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)[1499] | 0s | 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.002s | passed | 
| [1500] 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)[1500] | 0s | passed | 
| [1501] 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)[1501] | 0.001s | passed | 
| [1502] 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)[1502] | 0.001s | passed | 
| [1503] polyMod_zero, polyMod_zero {
\find(mod(Z(0(#)),divDenom))
\replacewith(Z(0(#))) 
\heuristics(concrete, polyDivision)
Choices: true} | testEquality(String, String)[1503] | 0.001s | passed | 
| [1504] 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)[1504] | 0.001s | passed | 
| [1505] polySimp_addComm0, polySimp_addComm0 {
\find(add(commLeft,commRight))
\replacewith(add(commRight,commLeft)) 
\heuristics(polySimp_addOrder, polySimp_expand)
Choices: true} | testEquality(String, String)[1505] | 0.001s | passed | 
| [1506] 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)[1506] | 0.001s | passed | 
| [1507] 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)[1507] | 0.001s | passed | 
| [1508] 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)[1508] | 0s | passed | 
| [1509] polySimp_elimNeg, polySimp_elimNeg {
\find(neg(i))
\replacewith(mul(i,Z(neglit(1(#))))) 
\heuristics(polySimp_elimSubNeg, 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_elimOne, polySimp_elimOne {
\find(mul(i,Z(1(#))))
\replacewith(i) 
\heuristics(polySimp_elimOneRight, polySimp_expand)
Choices: true} | testEquality(String, String)[1510] | 0s | passed | 
| [1511] polySimp_elimOneLeft0, polySimp_elimOneLeft0 {
\find(mul(Z(1(#)),i))
\replacewith(i) 
\heuristics(polySimp_elimOneLeft, polySimp_expand)
Choices: true} | testEquality(String, String)[1511] | 0.001s | passed | 
| [1512] 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)[1512] | 0.001s | passed | 
| [1513] 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)[1513] | 0.001s | passed | 
| [1514] 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)[1514] | 0.001s | passed | 
| [1515] 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)[1515] | 0s | passed | 
| [1516] 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)[1516] | 0s | passed | 
| [1517] polySimp_mulComm0, polySimp_mulComm0 {
\find(mul(commLeft,commRight))
\replacewith(mul(commRight,commLeft)) 
\heuristics(polySimp_mulOrder, polySimp_expand)
Choices: true} | testEquality(String, String)[1517] | 0.001s | passed | 
| [1518] 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)[1518] | 0.001s | passed | 
| [1519] 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)[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_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)[1520] | 0.001s | passed | 
| [1521] 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)[1521] | 0.001s | passed | 
| [1522] 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)[1522] | 0.001s | passed | 
| [1523] 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)[1523] | 0.001s | passed | 
| [1524] 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)[1524] | 0.010s | passed | 
| [1525] 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)[1525] | 0.001s | passed | 
| [1526] polySimp_pullOutFactor3, polySimp_pullOutFactor3 {
\find(add(pullOutCommon,pullOutCommon))
\replacewith(mul(pullOutCommon,Z(2(#)))) 
\heuristics(polySimp_pullOutFactor, polySimp_expand)
Choices: true} | testEquality(String, String)[1526] | 0.001s | passed | 
| [1527] 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)[1527] | 0.001s | passed | 
| [1528] 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)[1528] | 0.001s | passed | 
| [1529] 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)[1529] | 0.001s | 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] | 0.001s | passed | 
| [1530] 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)[1530] | 0.001s | passed | 
| [1531] poolIsInjective, poolIsInjective {
\find(equals(strPool(slit1),strPool(slit2)))
\replacewith(equals(slit1,slit2)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1531] | 0s | passed | 
| [1532] poolKeyIsContentOfValue, poolKeyIsContentOfValue {
\find(strContent(strPool(slit)))
\replacewith(slit) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1532] | 0.001s | passed | 
| [1533] 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)[1533] | 0s | passed | 
| [1534] 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)[1534] | 0.001s | passed | 
| [1535] 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)[1535] | 0.002s | passed | 
| [1536] 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)[1536] | 0.001s | passed | 
| [1537] 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;
..… | testEquality(String, String)[1537] | 0.001s | passed | 
| [1538] 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)) 
\h… | testEquality(String, String)[1538] | 0s | passed | 
| [1539] 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)[1539] | 0.009s | 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, 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)[1540] | 0.001s | passed | 
| [1541] 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)[1541] | 0.001s | passed | 
| [1542] 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)[1542] | 0.003s | passed | 
| [1543] 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;
..… | testEquality(String, String)[1543] | 0s | passed | 
| [1544] 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)) 
\h… | testEquality(String, String)[1544] | 0.002s | passed | 
| [1545] 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)[1545] | 0.001s | passed | 
| [1546] 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)[1546] | 0.001s | passed | 
| [1547] 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)[1547] | 0.001s | passed | 
| [1548] 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)[1548] | 0.001s | passed | 
| [1549] powConcrete0, powConcrete0 {
\find(pow(base,Z(0(#))))
\replacewith(Z(1(#))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1549] | 0.001s | 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.001s | passed | 
| [1550] powConcrete1, powConcrete1 {
\find(pow(base,Z(1(#))))
\replacewith(base) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1550] | 0.001s | passed | 
| [1551] 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)[1551] | 0.001s | passed | 
| [1552] 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)[1552] | 0.001s | passed | 
| [1553] 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)[1553] | 0.001s | passed | 
| [1554] 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)[1554] | 0.001s | passed | 
| [1555] powIsNaN1, powIsNaN1 {
\find(powDouble(arg1,arg2))
\add [imp(doubleIsNaN(arg2),doubleIsNaN(powDouble(arg1,arg2)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1555] | 0s | passed | 
| [1556] 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)[1556] | 0s | passed | 
| [1557] 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)[1557] | 0s | passed | 
| [1558] 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)[1558] | 0s | passed | 
| [1559] 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)[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] | 0s | passed | 
| [1560] 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)[1560] | 0s | passed | 
| [1561] 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)[1561] | 0.001s | passed | 
| [1562] 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)[1562] | 0.001s | passed | 
| [1563] 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)[1563] | 0.001s | passed | 
| [1564] 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)[1564] | 0.001s | passed | 
| [1565] 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)[1565] | 0.001s | passed | 
| [1566] 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)[1566] | 0.001s | passed | 
| [1567] 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)[1567] | 0.001s | passed | 
| [1568] 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)[1568] | 0.001s | passed | 
| [1569] 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)[1569] | 0.001s | 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] 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)[1570] | 0s | passed | 
| [1571] precOfDouble, precOfDouble {
\find(prec(d1,d2))
\replacewith(ltDouble(d1,d2)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1571] | 0s | passed | 
| [1572] precOfFloat, precOfFloat {
\find(prec(f1,f2))
\replacewith(ltFloat(f1,f2)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1572] | 0s | passed | 
| [1573] precOfInt, precOfInt {
\find(prec(a,b))
\replacewith(and(leq(Z(0(#)),a),lt(a,b))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1573] | 0s | passed | 
| [1574] precOfIntPair, precOfIntPair {
\find(prec(a,pair(b,x)))
\replacewith(and(leq(Z(0(#)),a),leq(a,b))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1574] | 0s | passed | 
| [1575] 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)[1575] | 0s | passed | 
| [1576] precOfPairInt, precOfPairInt {
\find(prec(pair(a,x),b))
\replacewith(and(leq(Z(0(#)),a),lt(a,b))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1576] | 0s | passed | 
| [1577] 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)[1577] | 0s | passed | 
| [1578] 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)[1578] | 0s | passed | 
| [1579] 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)[1579] | 0.001s | 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] | 0.001s | passed | 
| [1580] 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)[1580] | 0.001s | passed | 
| [1581] 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)[1581] | 0.001s | passed | 
| [1582] 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)[1582] | 0.001s | passed | 
| [1583] 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)[1583] | 0.001s | passed | 
| [1584] 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)[1584] | 0.001s | passed | 
| [1585] 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)[1585] | 0.001s | passed | 
| [1586] 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)[1586] | 0.001s | passed | 
| [1587] 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)[1587] | 0.001s | passed | 
| [1588] 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)[1588] | 0.001s | passed | 
| [1589] 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)[1589] | 0.001s | 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] prod_empty, prod_empty {
\find(prod{x (variable)}(FALSE,t))
\replacewith(Z(1(#))) 
\heuristics(concrete)
Choices: integerSimplificationRules:full} | testEquality(String, String)[1590] | 0s | passed | 
| [1591] prod_one, prod_one {
\find(prod{x (variable)}(range,Z(1(#))))
\replacewith(Z(1(#))) 
\heuristics(concrete)
Choices: integerSimplificationRules:full} | testEquality(String, String)[1591] | 0.001s | passed | 
| [1592] pullOut, pullOut {
\find(t)
\sameUpdateLevel\add [equals(t,sk)]==>[] \replacewith(sk) 
\heuristics(semantics_blasting)
Choices: true} | testEquality(String, String)[1592] | 0.001s | passed | 
| [1593] 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)[1593] | 0.001s | passed | 
| [1594] 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)[1594] | 0.001s | passed | 
| [1595] 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)[1595] | 0.001s | passed | 
| [1596] pull_out_neg_1, pull_out_neg_1 {
\find(mul(neg(i0),i1))
\replacewith(neg(mul(i0,i1))) 
Choices: true} | testEquality(String, String)[1596] | 0s | passed | 
| [1597] pull_out_neg_2, pull_out_neg_2 {
\find(mul(i0,neg(i1)))
\replacewith(neg(mul(i0,i1))) 
Choices: true} | testEquality(String, String)[1597] | 0s | passed | 
| [1598] qeq_literals, qeq_literals {
\find(geq(Z(iz),Z(jz)))
\replacewith(#geq(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1598] | 0s | passed | 
| [1599] 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)[1599] | 0s | 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] 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)[1600] | 0.001s | passed | 
| [1601] 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)[1601] | 0.001s | passed | 
| [1602] 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)[1602] | 0.001s | passed | 
| [1603] 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)[1603] | 0.001s | passed | 
| [1604] 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)[1604] | 0s | passed | 
| [1605] 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)[1605] | 0s | passed | 
| [1606] 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)[1606] | 0.002s | passed | 
| [1607] 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)[1607] | 0s | passed | 
| [1608] 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)[1608] | 0.001s | passed | 
| [1609] 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)[1609] | 0.001s | 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] | 0.001s | passed | 
| [1610] 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)[1610] | 0.002s | passed | 
| [1611] reachNull, reachNull {
\find(reach(h,s,o,null,n))
\replacewith(false) 
\heuristics(simplify)
Choices: reach:on} | testEquality(String, String)[1611] | 0.001s | passed | 
| [1612] reachNull2, reachNull2 {
\find(reach(h,s,null,o2,n))
\replacewith(false) 
\heuristics(simplify)
Choices: reach:on} | testEquality(String, String)[1612] | 0.001s | passed | 
| [1613] reachOne, reachOne {
\find(reach(h,s,o,o2,Z(1(#))))
\replacewith(acc(h,s,o,o2)) 
\heuristics(simplify)
Choices: reach:on} | testEquality(String, String)[1613] | 0.015s | passed | 
| [1614] 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)[1614] | 0.001s | passed | 
| [1615] 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)[1615] | 0s | passed | 
| [1616] 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)[1616] | 0s | passed | 
| [1617] 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)[1617] | 0s | passed | 
| [1618] readPermission, readPermission {
\find(readPermission(p))
\replacewith(readPermissionObject(currentThread,p)) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[1618] | 0s | passed | 
| [1619] readPermissionObject, readPermissionObject {
\find(readPermissionObject(o,p))
\replacewith(true) 
\heuristics(concrete)
Choices: permissions:off} | 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] 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)[1620] | 0s | passed | 
| [1621] 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)[1621] | 0s | passed | 
| [1622] 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)[1622] | 0s | passed | 
| [1623] regExAxiom, regExAxiom {
\find(match(regEx(stringAsPattern),string))
\replacewith(equals(string,stringAsPattern)) 
\heuristics(concrete)
Choices: Strings:on} | testEquality(String, String)[1623] | 0s | passed | 
| [1624] 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)[1624] | 0s | passed | 
| [1625] 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)[1625] | 0.001s | passed | 
| [1626] 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)[1626] | 0.001s | passed | 
| [1627] 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)[1627] | 0.001s | passed | 
| [1628] 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)[1628] | 0s | passed | 
| [1629] 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)[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] 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)[1630] | 0.001s | passed | 
| [1631] 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)[1631] | 0.001s | passed | 
| [1632] 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)[1632] | 0s | passed | 
| [1633] 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)[1633] | 0s | passed | 
| [1634] 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)[1634] | 0.001s | passed | 
| [1635] 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)[1635] | 0.001s | passed | 
| [1636] 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)[1636] | 0s | passed | 
| [1637] 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)[1637] | 0s | passed | 
| [1638] 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)[1638] | 0.001s | passed | 
| [1639] repeatOnce, repeatOnce {
\find(repeat(rexp,Z(1(#))))
\replacewith(rexp) 
\heuristics(concrete)
Choices: Strings:on} | testEquality(String, String)[1639] | 0.001s | 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] 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)[1640] | 0s | passed | 
| [1641] 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)[1641] | 0s | passed | 
| [1642] repeatZero, repeatZero {
\find(repeat(rexp,Z(0(#))))
\replacewith(regEx(seqEmpty)) 
\heuristics(concrete)
Choices: Strings:on} | testEquality(String, String)[1642] | 0.001s | passed | 
| [1643] 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)[1643] | 0.001s | passed | 
| [1644] 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)[1644] | 0.001s | passed | 
| [1645] 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)[1645] | 0.001s | passed | 
| [1646] replaceEmpty, replaceEmpty {
\find(clReplace(seqEmpty,searchChar,replChar))
\replacewith(seqEmpty) 
\heuristics(stringsSimplify)
Choices: Strings:on} | testEquality(String, String)[1646] | 0.001s | passed | 
| [1647] 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)[1647] | 0.001s | passed | 
| [1648] 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)[1648] | 0.001s | passed | 
| [1649] replace_byte_HALFRANGE, replace_byte_HALFRANGE {
\find(byte_HALFRANGE)
\replacewith(Z(8(2(1(#))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1649] | 0.001s | 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_byte_MAX, replace_byte_MAX {
\find(byte_MAX)
\replacewith(Z(7(2(1(#))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1650] | 0.001s | passed | 
| [1651] replace_byte_MIN, replace_byte_MIN {
\find(byte_MIN)
\replacewith(Z(neglit(8(2(1(#)))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1651] | 0.001s | passed | 
| [1652] replace_byte_RANGE, replace_byte_RANGE {
\find(byte_RANGE)
\replacewith(Z(6(5(2(#))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1652] | 0.001s | passed | 
| [1653] replace_char_MAX, replace_char_MAX {
\find(char_MAX)
\replacewith(Z(5(3(5(5(6(#))))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1653] | 0.001s | passed | 
| [1654] replace_char_MIN, replace_char_MIN {
\find(char_MIN)
\replacewith(Z(0(#))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1654] | 0.001s | passed | 
| [1655] replace_char_RANGE, replace_char_RANGE {
\find(char_RANGE)
\replacewith(Z(6(3(5(5(6(#))))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1655] | 0.001s | passed | 
| [1656] 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)[1656] | 0.001s | passed | 
| [1657] 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)[1657] | 0s | passed | 
| [1658] 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)[1658] | 0s | passed | 
| [1659] 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)[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] | 0.001s | passed | 
| [1660] replace_known_left, replace_known_left {
\assumes ([b]==>[]) 
\find(b)
\sameUpdateLevel\replacewith(true) 
\heuristics(replace_known_left)
Choices: true} | testEquality(String, String)[1660] | 0s | passed | 
| [1661] replace_known_right, replace_known_right {
\assumes ([]==>[b]) 
\find(b)
\sameUpdateLevel\replacewith(false) 
\heuristics(replace_known_right)
Choices: true} | testEquality(String, String)[1661] | 0.001s | passed | 
| [1662] 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)[1662] | 0.001s | passed | 
| [1663] 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)[1663] | 0.001s | passed | 
| [1664] 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)[1664] | 0.001s | passed | 
| [1665] 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)[1665] | 0s | passed | 
| [1666] replace_short_HALFRANGE, replace_short_HALFRANGE {
\find(short_HALFRANGE)
\replacewith(Z(8(6(7(2(3(#))))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1666] | 0s | passed | 
| [1667] replace_short_MAX, replace_short_MAX {
\find(short_MAX)
\replacewith(Z(7(6(7(2(3(#))))))) 
\heuristics(defOps_expandRanges)
Choices: true} | testEquality(String, String)[1667] | 0.001s | passed | 
| [1668] 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)[1668] | 0.001s | passed | 
| [1669] replace_short_RANGE, replace_short_RANGE {
\find(short_RANGE)
\replacewith(Z(6(3(5(5(6(#))))))) 
\heuristics(defOps_expandRanges)
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] 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)[1670] | 0.001s | passed | 
| [1671] rotate_and, rotate_and {
\find(and(b,and(c,d)))
\replacewith(and(c,and(b,d))) 
Choices: true} | testEquality(String, String)[1671] | 0.001s | passed | 
| [1672] rotate_or, rotate_or {
\find(or(b,or(c,d)))
\replacewith(or(c,or(b,d))) 
Choices: true} | testEquality(String, String)[1672] | 0.001s | passed | 
| [1673] rotate_params, rotate_params {
\find(add(i,add(i0,i1)))
\replacewith(add(i0,add(i,i1))) 
Choices: true} | testEquality(String, String)[1673] | 0s | passed | 
| [1674] 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)[1674] | 0.001s | passed | 
| [1675] 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)[1675] | 0.001s | passed | 
| [1676] same_boxes_left, same_boxes_left {
\assumes ([\[{ ..
  #s
... }\] (post)]==>[]) 
\find(\[{ ..
  #s
... }\] (post1)==>)
\add [\[{ ..
  #s
... }\] (and(post,post1))]==>[] 
Choices: programRules:Java} | testEquality(String, String)[1676] | 0s | passed | 
| [1677] same_boxes_right, same_boxes_right {
\assumes ([]==>[\[{ ..
  #s
... }\] (post)]) 
\find(==>\[{ ..
  #s
... }\] (post1))
\add []==>[\[{ ..
  #s
... }\] (or(post,post1))] 
Choices: programRules:Java} | testEquality(String, String)[1677] | 0s | passed | 
| [1678] same_diamonds_left, same_diamonds_left {
\assumes ([\<{ ..
  #s
... }\> (post)]==>[]) 
\find(\<{ ..
  #s
... }\> (post1)==>)
\add [\<{ ..
  #s
... }\> (and(post,post1))]==>[] 
Choices: programRules:Java} | testEquality(String, String)[1678] | 0.001s | passed | 
| [1679] same_diamonds_right, same_diamonds_right {
\assumes ([]==>[\<{
  #s
}\> (post)]) 
\find(==>\<{
  #s
}\> (post1))
\add []==>[\<{
  #s
}\> (or(post,post1))] 
Choices: programRules:Java} | testEquality(String, String)[1679] | 0.001s | 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] 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)[1680] | 0.001s | passed | 
| [1681] 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)[1681] | 0.001s | passed | 
| [1682] secondOfPair, secondOfPair {
\find(second(pair(t,t1)))
\replacewith(t1) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1682] | 0s | passed | 
| [1683] 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)[1683] | 0s | passed | 
| [1684] 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)[1684] | 0s | passed | 
| [1685] 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)[1685] | 0s | passed | 
| [1686] 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)[1686] | 0s | passed | 
| [1687] 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)[1687] | 0s | passed | 
| [1688] 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)[1688] | 0s | passed | 
| [1689] 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)[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] | 0s | passed | 
| [1690] 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)[1690] | 0s | passed | 
| [1691] 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)[1691] | 0s | passed | 
| [1692] 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)[1692] | 0s | passed | 
| [1693] 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)[1693] | 0s | passed | 
| [1694] 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)[1694] | 0s | passed | 
| [1695] seqConcatUnfoldLeft, seqConcatUnfoldLeft {
\find(#allmodal ( (modal operator))\[{ ..
  #v = \singleton(#nseLeft, #eRight);
... }\] (post))
\varcond(\new(#vLeftNew (program Variable), \typeof(#nseLeft (program NonSimpleExpression))))
\replacewith(#allmodal ( (modal operator))\[{ ..
  #typeof(#nseLeft) #vLeftNew = #nseLeft;
  #v = \singleton(#vLeftNew, #eRight);
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1695] | 0s | passed | 
| [1696] seqConcatUnfoldRight, seqConcatUnfoldRight {
\find(#allmodal ( (modal operator))\[{ ..
  #v = \singleton(#seLeft, #nseRight);
... }\] (post))
\varcond(\new(#vRightNew (program Variable), \typeof(#nseRight (program NonSimpleExpression))))
\replacewith(#allmodal ( (modal operator))\[{ ..
  #typeof(#nseRight) #vRightNew = #nseRight;
  #v = \singleton(#seLeft, #vRightNew);
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1696] | 0s | passed | 
| [1697] seqConcatWithSeqEmpty1, seqConcatWithSeqEmpty1 {
\find(seqConcat(seq,seqEmpty))
\replacewith(seq) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1697] | 0.001s | passed | 
| [1698] seqConcatWithSeqEmpty2, seqConcatWithSeqEmpty2 {
\find(seqConcat(seqEmpty,seq))
\replacewith(seq) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1698] | 0.001s | passed | 
| [1699] 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)[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.002s | passed | 
| [1700] 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)[1700] | 0s | passed | 
| [1701] 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)[1701] | 0s | passed | 
| [1702] 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)[1702] | 0.001s | passed | 
| [1703] 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)[1703] | 0.001s | passed | 
| [1704] 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)[1704] | 0s | passed | 
| [1705] 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)[1705] | 0s | passed | 
| [1706] 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)[1706] | 0.001s | passed | 
| [1707] 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)[1707] | 0.001s | passed | 
| [1708] 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)[1708] | 0s | passed | 
| [1709] 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)[1709] | 0.001s | 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] 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)[1710] | 0.001s | passed | 
| [1711] 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)[1711] | 0.001s | passed | 
| [1712] 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)[1712] | 0.001s | passed | 
| [1713] 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)[1713] | 0.002s | passed | 
| [1714] 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)[1714] | 0.001s | passed | 
| [1715] 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)[1715] | 0.001s | passed | 
| [1716] 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)[1716] | 0.001s | passed | 
| [1717] seqReverseOfSeqEmpty, seqReverseOfSeqEmpty {
\find(seqReverse(seqEmpty))
\replacewith(seqEmpty) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1717] | 0.001s | passed | 
| [1718] 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)[1718] | 0.001s | passed | 
| [1719] 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)[1719] | 0.001s | 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] | 0.001s | passed | 
| [1720] 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)[1720] | 0.001s | passed | 
| [1721] 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)[1721] | 0.001s | passed | 
| [1722] 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)[1722] | 0s | passed | 
| [1723] 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)[1723] | 0s | passed | 
| [1724] 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)[1724] | 0s | passed | 
| [1725] 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)[1725] | 0s | passed | 
| [1726] 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)[1726] | 0s | passed | 
| [1727] 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)[1727] | 0.001s | passed | 
| [1728] 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)[1728] | 0.001s | passed | 
| [1729] 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)[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] 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)[1730] | 0.001s | passed | 
| [1731] setMinusItself, setMinusItself {
\find(setMinus(s,s))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1731] | 0.001s | passed | 
| [1732] 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)[1732] | 0.001s | passed | 
| [1733] 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)[1733] | 0.001s | passed | 
| [1734] setMinusSingleton, setMinusSingleton {
\assumes ([]==>[elementOf(o,f,s)]) 
\find(setMinus(s,singleton(o,f)))
\replacewith(s) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1734] | 0.001s | passed | 
| [1735] 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)[1735] | 0.001s | passed | 
| [1736] 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)[1736] | 0.002s | passed | 
| [1737] setMinusWithAllLocs, setMinusWithAllLocs {
\find(setMinus(s,allLocs))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1737] | 0.001s | passed | 
| [1738] setMinusWithEmpty1, setMinusWithEmpty1 {
\find(setMinus(s,empty))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1738] | 0.006s | passed | 
| [1739] setMinusWithEmpty2, setMinusWithEmpty2 {
\find(setMinus(empty,s))
\replacewith(empty) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1739] | 0.001s | 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.002s | passed | 
| [1740] 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)[1740] | 0.001s | passed | 
| [1741] 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)[1741] | 0s | passed | 
| [1742] 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)[1742] | 0s | passed | 
| [1743] shiftLeftPositiveShiftDef, shiftLeftPositiveShiftDef {
\find(shiftleftPositiveShift(left,right))
\replacewith(mul(left,pow(Z(2(#)),right))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1743] | 0s | passed | 
| [1744] 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)[1744] | 0s | passed | 
| [1745] shiftRightPositiveShiftDef, shiftRightPositiveShiftDef {
\find(shiftrightPositiveShift(left,right))
\replacewith(div(left,pow(Z(2(#)),right))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1745] | 0.001s | passed | 
| [1746] 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)[1746] | 0.001s | passed | 
| [1747] 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)[1747] | 0s | passed | 
| [1748] shiftleft_literals, shiftleft_literals {
\find(shiftleft(Z(iz),Z(jz)))
\replacewith(#ShiftLeft(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1748] | 0s | passed | 
| [1749] shiftright_literals, shiftright_literals {
\find(shiftright(Z(iz),Z(jz)))
\replacewith(#ShiftRight(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1749] | 0.001s | 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.001s | passed | 
| [1750] 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)[1750] | 0.001s | passed | 
| [1751] 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)[1751] | 0s | passed | 
| [1752] 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)[1752] | 0s | passed | 
| [1753] 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)[1753] | 0.001s | passed | 
| [1754] simplifyIfThenElseUpdate4, simplifyIfThenElseUpdate4 {
\find(if-then-else(phi,t,t))
\varcond(\simplifyIfThenElseUpdate(phi, u1, u2, t, result), )
\replacewith(result) 
Choices: true} | testEquality(String, String)[1754] | 0.001s | passed | 
| [1755] 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)[1755] | 0.001s | passed | 
| [1756] 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)[1756] | 0.001s | passed | 
| [1757] 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)[1757] | 0.001s | passed | 
| [1758] 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)[1758] | 0.001s | passed | 
| [1759] 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)[1759] | 0.001s | 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] 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)[1760] | 0.001s | passed | 
| [1761] 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)[1761] | 0.001s | passed | 
| [1762] 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)[1762] | 0s | passed | 
| [1763] 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)[1763] | 0.001s | passed | 
| [1764] 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)[1764] | 0.001s | passed | 
| [1765] 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)[1765] | 0.001s | passed | 
| [1766] sinIsNaN, sinIsNaN {
\find(sinDouble(arg))
\add [imp(or(doubleIsNaN(arg),doubleIsInfinite(arg)),doubleIsNaN(sinDouble(arg)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1766] | 0s | passed | 
| [1767] 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)[1767] | 0s | passed | 
| [1768] 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)[1768] | 0.001s | passed | 
| [1769] 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)[1769] | 0.001s | 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] | 0.002s | passed | 
| [1770] sineIsNaNAlt, sineIsNaNAlt {
\find(doubleIsNaN(sinDouble(arg)))
\replacewith(or(doubleIsNaN(arg),doubleIsInfinite(arg))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1770] | 0s | passed | 
| [1771] sineIsZero, sineIsZero {
\find(sinDouble(arg))
\add [imp(equals(arg,DFP(0(#))),equals(sinDouble(arg),DFP(0(#))))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1771] | 0s | passed | 
| [1772] 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)[1772] | 0.001s | passed | 
| [1773] 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)[1773] | 0s | passed | 
| [1774] 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)[1774] | 0s | passed | 
| [1775] singletonEqualsEmpty, singletonEqualsEmpty {
\find(equals(singleton(o,f),empty))
\replacewith(false) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1775] | 0s | passed | 
| [1776] 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)[1776] | 0.001s | passed | 
| [1777] sizeOfMapEmpty, sizeOfMapEmpty {
\find(mapSize(mapEmpty))
\sameUpdateLevel\replacewith(Z(0(#))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1777] | 0.001s | passed | 
| [1778] 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)[1778] | 0s | passed | 
| [1779] sizeOfMapSingleton, sizeOfMapSingleton {
\find(mapSize(mapSingleton(key,value)))
\sameUpdateLevel\replacewith(Z(1(#))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1779] | 0s | 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.002s | passed | 
| [1780] 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)[1780] | 0.001s | passed | 
| [1781] sizeOfSeq2Map, sizeOfSeq2Map {
\find(mapSize(seq2map(s)))
\sameUpdateLevel\replacewith(seqLen(s)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1781] | 0.001s | passed | 
| [1782] sortsDisjoint1, sortsDisjoint1 {
\find(equals(x,y))
\varcond(\not\sub(Null, G), \disjointModuloNull(G, H), )
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1782] | 0s | passed | 
| [1783] sortsDisjoint2, sortsDisjoint2 {
\find(equals(x,y))
\varcond(\not\sub(Null, H), \disjointModuloNull(G, H), )
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1783] | 0s | passed | 
| [1784] 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)[1784] | 0.001s | passed | 
| [1785] 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)[1785] | 0.001s | passed | 
| [1786] splitEquation, splitEquation {
\find(equals(splitEqLeft,splitEqRight))
\replacewith(and(geq(splitEqLeft,splitEqRight),leq(splitEqLeft,splitEqRight))) 
Choices: true} | testEquality(String, String)[1786] | 0.001s | passed | 
| [1787] 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)[1787] | 0s | passed | 
| [1788] split_or_strong, split_or_strong {
\find(or(b,c)==>)
\replacewith([c]==>[b]) ;
\replacewith([b]==>[]) 
Choices: true} | testEquality(String, String)[1788] | 0s | passed | 
| [1789] 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)[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.002s | passed | 
| [1790] sqrtIsNaN, sqrtIsNaN {
\find(sqrtDouble(arg))
\add [imp(or(doubleIsNaN(arg),ltDouble(arg,DFP(0(#)))),doubleIsNaN(sqrtDouble(arg)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1790] | 0.001s | passed | 
| [1791] 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)[1791] | 0s | passed | 
| [1792] 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)[1792] | 0s | passed | 
| [1793] sqrtIsZero, sqrtIsZero {
\find(sqrtDouble(arg))
\add [imp(equals(arg,DFP(0(#))),equals(sqrtDouble(arg),DFP(0(#))))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1793] | 0.001s | passed | 
| [1794] square_nonneg, square_nonneg {
\find(leq(Z(0(#)),mul(i0,i0)))
\replacewith(true) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1794] | 0.001s | passed | 
| [1795] 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)[1795] | 0s | passed | 
| [1796] 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)[1796] | 0s | passed | 
| [1797] 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)[1797] | 0.001s | passed | 
| [1798] 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)[1798] | 0.001s | passed | 
| [1799] 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:… | testEquality(String, String)[1799] | 0s | 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.003s | 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.002s | passed | 
| [1800] 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)[1800] | 0.001s | passed | 
| [1801] 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)[1801] | 0.001s | passed | 
| [1802] 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… | testEquality(String, String)[1802] | 0.001s | passed | 
| [1803] 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… | testEquality(String, String)[1803] | 0s | passed | 
| [1804] 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)[1804] | 0s | passed | 
| [1805] 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)[1805] | 0.001s | passed | 
| [1806] 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)[1806] | 0s | passed | 
| [1807] 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)[1807] | 0.001s | passed | 
| [1808] 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.toStri… | testEquality(String, String)[1808] | 0.001s | passed | 
| [1809] 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 + … | testEquality(String, String)[1809] | 0.001s | 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] | 0s | passed | 
| [1810] sub, sub {
\find(sub(i,i0))
\replacewith(add(i,neg(i0))) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1810] | 0s | passed | 
| [1811] subSeqComplete, subSeqComplete {
\find(seqSub(seq,Z(0(#)),seqLen(seq)))
\replacewith(seq) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1811] | 0.001s | passed | 
| [1812] 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)[1812] | 0.001s | passed | 
| [1813] 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)[1813] | 0.001s | passed | 
| [1814] 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)[1814] | 0s | passed | 
| [1815] 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)[1815] | 0s | passed | 
| [1816] subSeqEmpty, subSeqEmpty {
\find(seqSub(seq,i,i))
\replacewith(seqEmpty) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1816] | 0.001s | passed | 
| [1817] 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)[1817] | 0.007s | passed | 
| [1818] 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)[1818] | 0.001s | passed | 
| [1819] subSeqSingleton, subSeqSingleton {
\find(seqSub(seqSingleton(x),Z(0(#)),Z(1(#))))
\replacewith(seqSingleton(x)) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[1819] | 0.001s | 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] 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)[1820] | 0s | passed | 
| [1821] 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)[1821] | 0s | passed | 
| [1822] 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)[1822] | 0.001s | passed | 
| [1823] 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)[1823] | 0.001s | passed | 
| [1824] 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)[1824] | 0.001s | passed | 
| [1825] 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)[1825] | 0s | passed | 
| [1826] 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)[1826] | 0s | passed | 
| [1827] 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)[1827] | 0s | passed | 
| [1828] 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)[1828] | 0.001s | passed | 
| [1829] sub_literals, sub_literals {
\find(sub(Z(iz),Z(jz)))
\replacewith(#sub(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1829] | 0.001s | 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] sub_sub_elim, sub_sub_elim {
\find(neg(neg(i)))
\replacewith(i) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1830] | 0s | passed | 
| [1831] sub_zero_1, sub_zero_1 {
\find(Z(neglit(0(#))))
\replacewith(Z(0(#))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1831] | 0.001s | passed | 
| [1832] sub_zero_2, sub_zero_2 {
\find(sub(i,Z(0(#))))
\replacewith(i) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1832] | 0.001s | passed | 
| [1833] subsetOfEmpty, subsetOfEmpty {
\find(subset(s,empty))
\replacewith(equals(s,empty)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1833] | 0.001s | passed | 
| [1834] subsetOfIntersectWithItSelf1, subsetOfIntersectWithItSelf1 {
\find(subset(s,intersect(s,s2)))
\replacewith(subset(s,s2)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1834] | 0.001s | passed | 
| [1835] subsetOfIntersectWithItSelf2, subsetOfIntersectWithItSelf2 {
\find(subset(s,intersect(s2,s)))
\replacewith(subset(s,s2)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1835] | 0s | passed | 
| [1836] 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)[1836] | 0s | passed | 
| [1837] 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)[1837] | 0.001s | passed | 
| [1838] subsetOfItself, subsetOfItself {
\find(subset(s,s))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1838] | 0.001s | passed | 
| [1839] subsetOfUnionWithItSelf1, subsetOfUnionWithItSelf1 {
\find(subset(s,union(s,s2)))
\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] | 0s | passed | 
| [1840] subsetOfUnionWithItSelf2, subsetOfUnionWithItSelf2 {
\find(subset(s,union(s2,s)))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1840] | 0s | passed | 
| [1841] subsetOfUnionWithItSelfEQ1, subsetOfUnionWithItSelfEQ1 {
\assumes ([equals(union(s,s2),EQ)]==>[]) 
\find(subset(s,EQ))
\sameUpdateLevel\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1841] | 0s | passed | 
| [1842] subsetOfUnionWithItSelfEQ2, subsetOfUnionWithItSelfEQ2 {
\assumes ([equals(union(s2,s),EQ)]==>[]) 
\find(subset(s,EQ))
\sameUpdateLevel\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1842] | 0s | passed | 
| [1843] subsetSingletonLeft, subsetSingletonLeft {
\find(subset(singleton(o,f),s))
\replacewith(elementOf(o,f,s)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1843] | 0.001s | passed | 
| [1844] 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)[1844] | 0.003s | passed | 
| [1845] 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)[1845] | 0.001s | passed | 
| [1846] 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)[1846] | 0.001s | passed | 
| [1847] 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)[1847] | 0s | passed | 
| [1848] 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)[1848] | 0s | passed | 
| [1849] 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)[1849] | 0.001s | 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] | 0.001s | passed | 
| [1850] 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)[1850] | 0s | passed | 
| [1851] subsetWithAllLocs, subsetWithAllLocs {
\find(subset(s,allLocs))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1851] | 0s | passed | 
| [1852] subsetWithAllLocs2, subsetWithAllLocs2 {
\find(subset(allLocs,s))
\replacewith(equals(s,allLocs)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1852] | 0.001s | passed | 
| [1853] subsetWithEmpty, subsetWithEmpty {
\find(subset(empty,s))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1853] | 0.001s | passed | 
| [1854] subsetWithSetMinusLeft, subsetWithSetMinusLeft {
\find(subset(setMinus(s,s2),s3))
\replacewith(subset(s,union(s2,s3))) 
\heuristics(simplify_enlarging)
Choices: programRules:Java} | testEquality(String, String)[1854] | 0.001s | passed | 
| [1855] 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)[1855] | 0s | passed | 
| [1856] 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)[1856] | 0.002s | passed | 
| [1857] 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)[1857] | 0.002s | passed | 
| [1858] 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)[1858] | 0.001s | passed | 
| [1859] 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)[1859] | 0s | 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] sum_empty, sum_empty {
\find(sum{x (variable)}(FALSE,t))
\replacewith(Z(0(#))) 
\heuristics(concrete)
Choices: integerSimplificationRules:full} | testEquality(String, String)[1860] | 0s | passed | 
| [1861] sum_zero, sum_zero {
\find(sum{x (variable)}(range,Z(0(#))))
\replacewith(Z(0(#))) 
\heuristics(concrete)
Choices: integerSimplificationRules:full} | testEquality(String, String)[1861] | 0.001s | passed | 
| [1862] 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)[1862] | 0.001s | passed | 
| [1863] 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)[1863] | 0.001s | passed | 
| [1864] 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)[1864] | 0s | passed | 
| [1865] switch_brackets, switch_brackets {
\find(add(add(i,i0),i1))
\replacewith(add(i,add(i0,i1))) 
Choices: true} | testEquality(String, String)[1865] | 0.001s | passed | 
| [1866] switch_params, switch_params {
\find(add(i0,i1))
\replacewith(add(i1,i0)) 
Choices: true} | testEquality(String, String)[1866] | 0.001s | passed | 
| [1867] 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)[1867] | 0s | passed | 
| [1868] synchronizedBlockEmpty2, synchronizedBlockEmpty2 {
\find(#allmodal ( (modal operator))\[{ ..
  synchronized(#cr) {}
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog_subset, simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1868] | 0.001s | passed | 
| [1869] 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: program… | testEquality(String, String)[1869] | 0.001s | 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] | 0s | passed | 
| [1870] tanIsNaN, tanIsNaN {
\find(tanDouble(arg))
\add [imp(or(doubleIsNaN(arg),doubleIsInfinite(arg)),doubleIsNaN(tanDouble(arg)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1870] | 0s | passed | 
| [1871] tanIsZero, tanIsZero {
\find(tanDouble(arg))
\add [imp(equals(arg,DFP(0(#))),equals(tanDouble(arg),DFP(0(#))))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[1871] | 0s | passed | 
| [1872] theorem_of_archimedes, theorem_of_archimedes {
\assumes ([gt(i0,sub(i1,Z(1(#))))]==>[]) 
\find(lt(i0,i1)==>)
\replacewith([false]==>[]) 
Choices: true} | testEquality(String, String)[1872] | 0s | passed | 
| [1873] throwBox, throwBox {
\find(#box ( (modal operator))\[{
  throw #se;
  #slist
}\] (post))
\replacewith(true) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1873] | 0.001s | passed | 
| [1874] throwDiamond, throwDiamond {
\find(#diamond ( (modal operator))\[{
  throw #se;
  #slist
}\] (post))
\replacewith(false) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1874] | 0.001s | passed | 
| [1875] 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)[1875] | 0s | passed | 
| [1876] 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)[1876] | 0.001s | passed | 
| [1877] 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)[1877] | 0.001s | passed | 
| [1878] 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)[1878] | 0s | passed | 
| [1879] 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)[1879] | 0.001s | 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_minus_one_1, times_minus_one_1 {
\find(mul(i,Z(neglit(1(#)))))
\replacewith(neg(i)) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1880] | 0.001s | passed | 
| [1881] 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)[1881] | 0s | passed | 
| [1882] times_one_1, times_one_1 {
\find(mul(i,Z(1(#))))
\replacewith(i) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1882] | 0s | passed | 
| [1883] times_one_2, times_one_2 {
\find(mul(Z(1(#)),i))
\replacewith(i) 
\heuristics(simplify_int)
Choices: true} | testEquality(String, String)[1883] | 0.001s | passed | 
| [1884] times_zero_1, times_zero_1 {
\find(mul(i,Z(0(#))))
\replacewith(Z(0(#))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1884] | 0s | passed | 
| [1885] times_zero_2, times_zero_2 {
\find(mul(Z(0(#)),i))
\replacewith(Z(0(#))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[1885] | 0.001s | passed | 
| [1886] translate#, translate# {
\find(clTranslateInt(Z(#)))
\replacewith(seqEmpty) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1886] | 0.001s | passed | 
| [1887] translate0, translate0 {
\find(clTranslateInt(Z(0(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(8(4(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1887] | 0s | passed | 
| [1888] translate1, translate1 {
\find(clTranslateInt(Z(1(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(9(4(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1888] | 0.001s | passed | 
| [1889] translate2, translate2 {
\find(clTranslateInt(Z(2(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(0(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1889] | 0s | 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] | 0s | passed | 
| [1890] translate3, translate3 {
\find(clTranslateInt(Z(3(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(1(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1890] | 0s | passed | 
| [1891] translate4, translate4 {
\find(clTranslateInt(Z(4(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(2(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1891] | 0.001s | passed | 
| [1892] translate5, translate5 {
\find(clTranslateInt(Z(5(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(3(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1892] | 0s | passed | 
| [1893] translate6, translate6 {
\find(clTranslateInt(Z(6(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(4(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1893] | 0s | passed | 
| [1894] translate7, translate7 {
\find(clTranslateInt(Z(7(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(5(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1894] | 0.001s | passed | 
| [1895] translate8, translate8 {
\find(clTranslateInt(Z(8(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(6(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1895] | 0.001s | passed | 
| [1896] translate9, translate9 {
\find(clTranslateInt(Z(9(iz))))
\replacewith(seqConcat(clTranslateInt(Z(iz)),seqSingleton(C(7(5(#)))))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1896] | 0s | passed | 
| [1897] translateCheckedAddInt, translateCheckedAddInt {
\find(checkedAddInt(left,right))
\replacewith(add(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1897] | 0.001s | passed | 
| [1898] translateCheckedAddLong, translateCheckedAddLong {
\find(checkedAddLong(left,right))
\replacewith(add(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1898] | 0.001s | passed | 
| [1899] translateCheckedBitwiseAndInt, translateCheckedBitwiseAndInt {
\find(checkedBitwiseAndInt(left,right))
\replacewith(binaryAnd(left,right)) 
\heuristics(simplify)
Choices: true} | 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] translateCheckedBitwiseAndLong, translateCheckedBitwiseAndLong {
\find(checkedBitwiseAndLong(left,right))
\replacewith(binaryAnd(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1900] | 0.001s | passed | 
| [1901] translateCheckedBitwiseNegateInt, translateCheckedBitwiseNegateInt {
\find(checkedBitwiseNegateInt(left))
\replacewith(sub(neg(left),Z(1(#)))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1901] | 0.001s | passed | 
| [1902] translateCheckedBitwiseNegateLong, translateCheckedBitwiseNegateLong {
\find(checkedBitwiseNegateLong(left))
\replacewith(sub(neg(left),Z(1(#)))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1902] | 0s | passed | 
| [1903] translateCheckedBitwiseOrInt, translateCheckedBitwiseOrInt {
\find(checkedBitwiseOrInt(left,right))
\replacewith(binaryOr(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1903] | 0.001s | passed | 
| [1904] translateCheckedBitwiseOrLong, translateCheckedBitwiseOrLong {
\find(checkedBitwiseOrLong(left,right))
\replacewith(binaryOr(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1904] | 0.001s | passed | 
| [1905] translateCheckedBitwiseXOrInt, translateCheckedBitwiseXOrInt {
\find(checkedBitwiseXOrInt(left,right))
\replacewith(binaryXOr(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1905] | 0s | passed | 
| [1906] translateCheckedBitwiseXOrLong, translateCheckedBitwiseXOrLong {
\find(checkedBitwiseXOrLong(left,right))
\replacewith(binaryXOr(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1906] | 0.001s | passed | 
| [1907] translateCheckedDivInt, translateCheckedDivInt {
\find(checkedDivInt(left,right))
\replacewith(jdiv(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1907] | 0.001s | passed | 
| [1908] translateCheckedDivLong, translateCheckedDivLong {
\find(checkedDivLong(left,right))
\replacewith(jdiv(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1908] | 0s | passed | 
| [1909] translateCheckedMulInt, translateCheckedMulInt {
\find(checkedMulInt(left,right))
\replacewith(mul(left,right)) 
\heuristics(simplify)
Choices: true} | 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] translateCheckedMulLong, translateCheckedMulLong {
\find(checkedMulLong(left,right))
\replacewith(mul(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1910] | 0.001s | passed | 
| [1911] translateCheckedShiftLeftInt, translateCheckedShiftLeftInt {
\find(checkedShiftLeftInt(left,right))
\replacewith(shiftleft(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1911] | 0s | passed | 
| [1912] translateCheckedShiftLeftLong, translateCheckedShiftLeftLong {
\find(checkedShiftLeftLong(left,right))
\replacewith(shiftleft(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1912] | 0s | passed | 
| [1913] translateCheckedShiftRightInt, translateCheckedShiftRightInt {
\find(checkedShiftRightInt(left,right))
\replacewith(shiftright(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1913] | 0.001s | passed | 
| [1914] translateCheckedShiftRightLong, translateCheckedShiftRightLong {
\find(checkedShiftRightLong(left,right))
\replacewith(shiftright(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1914] | 0s | passed | 
| [1915] translateCheckedSubInt, translateCheckedSubInt {
\find(checkedSubInt(left,right))
\replacewith(sub(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1915] | 0.001s | passed | 
| [1916] translateCheckedSubLong, translateCheckedSubLong {
\find(checkedSubLong(left,right))
\replacewith(sub(left,right)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1916] | 0.001s | passed | 
| [1917] translateCheckedUnaryMinusInt, translateCheckedUnaryMinusInt {
\find(checkedUnaryMinusInt(left))
\replacewith(neg(left)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1917] | 0s | passed | 
| [1918] translateCheckedUnaryMinusLong, translateCheckedUnaryMinusLong {
\find(checkedUnaryMinusLong(left))
\replacewith(neg(left)) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[1918] | 0.002s | passed | 
| [1919] translateJavaAddInt, translateJavaAddInt {
\find(javaAddInt(left,right))
\replacewith(add(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1919] | 0s | 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] | 0s | passed | 
| [1920] translateJavaAddLong, translateJavaAddLong {
\find(javaAddLong(left,right))
\replacewith(add(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1920] | 0.001s | passed | 
| [1921] translateJavaBitwiseAndInt, translateJavaBitwiseAndInt {
\find(javaBitwiseAndInt(left,right))
\replacewith(binaryAnd(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1921] | 0s | passed | 
| [1922] translateJavaBitwiseAndLong, translateJavaBitwiseAndLong {
\find(javaBitwiseAndLong(left,right))
\replacewith(binaryAnd(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1922] | 0s | passed | 
| [1923] translateJavaBitwiseOrInt, translateJavaBitwiseOrInt {
\find(javaBitwiseOrInt(left,right))
\replacewith(binaryOr(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1923] | 0.001s | passed | 
| [1924] translateJavaBitwiseOrLong, translateJavaBitwiseOrLong {
\find(javaBitwiseOrLong(left,right))
\replacewith(binaryOr(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1924] | 0s | passed | 
| [1925] translateJavaBitwiseXOrInt, translateJavaBitwiseXOrInt {
\find(javaBitwiseXOrInt(left,right))
\replacewith(binaryXOr(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1925] | 0s | passed | 
| [1926] translateJavaBitwiseXOrLong, translateJavaBitwiseXOrLong {
\find(javaBitwiseXOrLong(left,right))
\replacewith(binaryXOr(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1926] | 0.001s | passed | 
| [1927] translateJavaCastByte, translateJavaCastByte {
\find(javaCastByte(left))
\replacewith(left) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1927] | 0s | passed | 
| [1928] translateJavaCastChar, translateJavaCastChar {
\find(javaCastChar(left))
\replacewith(left) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1928] | 0.001s | passed | 
| [1929] translateJavaCastInt, translateJavaCastInt {
\find(javaCastInt(left))
\replacewith(left) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1929] | 0.001s | 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] translateJavaCastLong, translateJavaCastLong {
\find(javaCastLong(left))
\replacewith(left) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1930] | 0s | passed | 
| [1931] translateJavaCastShort, translateJavaCastShort {
\find(javaCastShort(left))
\replacewith(left) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1931] | 0s | passed | 
| [1932] translateJavaDivInt, translateJavaDivInt {
\find(javaDivInt(left,right))
\replacewith(jdiv(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1932] | 0.005s | passed | 
| [1933] translateJavaDivLong, translateJavaDivLong {
\find(javaDivLong(left,right))
\replacewith(jdiv(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1933] | 0s | passed | 
| [1934] translateJavaMod, translateJavaMod {
\find(javaMod(left,right))
\replacewith(jmod(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1934] | 0s | passed | 
| [1935] translateJavaMulInt, translateJavaMulInt {
\find(javaMulInt(left,right))
\replacewith(mul(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1935] | 0.001s | passed | 
| [1936] translateJavaMulLong, translateJavaMulLong {
\find(javaMulLong(left,right))
\replacewith(mul(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1936] | 0.001s | passed | 
| [1937] translateJavaShiftLeftInt, translateJavaShiftLeftInt {
\find(javaShiftLeftInt(left,right))
\replacewith(shiftleft(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1937] | 0s | passed | 
| [1938] translateJavaShiftLeftLong, translateJavaShiftLeftLong {
\find(javaShiftLeftLong(left,right))
\replacewith(shiftleft(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1938] | 0.001s | passed | 
| [1939] translateJavaShiftRightInt, translateJavaShiftRightInt {
\find(javaShiftRightInt(left,right))
\replacewith(shiftright(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1939] | 0.001s | 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] translateJavaShiftRightLong, translateJavaShiftRightLong {
\find(javaShiftRightLong(left,right))
\replacewith(shiftright(left,right)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1940] | 0s | passed | 
| [1941] translateJavaSubInt, translateJavaSubInt {
\find(javaSubInt(left,right))
\replacewith(sub(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1941] | 0.001s | passed | 
| [1942] translateJavaSubLong, translateJavaSubLong {
\find(javaSubLong(left,right))
\replacewith(sub(left,right)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1942] | 0.001s | passed | 
| [1943] translateJavaUnaryMinusInt, translateJavaUnaryMinusInt {
\find(javaUnaryMinusInt(left))
\replacewith(neg(left)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1943] | 0s | passed | 
| [1944] translateJavaUnaryMinusLong, translateJavaUnaryMinusLong {
\find(javaUnaryMinusLong(left))
\replacewith(neg(left)) 
\heuristics(simplify, javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1944] | 0.001s | passed | 
| [1945] translateNegLit, translateNegLit {
\find(clTranslateInt(Z(neglit(iz))))
\replacewith(seqConcat(seqSingleton(C(5(4(#)))),clTranslateInt(Z(iz)))) 
\heuristics(integerToString)
Choices: Strings:on} | testEquality(String, String)[1945] | 0.001s | passed | 
| [1946] translatejavaBitwiseNegateInt, translatejavaBitwiseNegateInt {
\find(javaBitwiseNegateInt(left))
\replacewith(bitwiseNegateJint(left)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1946] | 0s | passed | 
| [1947] translatejavaBitwiseNegateLong, translatejavaBitwiseNegateLong {
\find(javaBitwiseNegateLong(left))
\replacewith(bitwiseNegateJlong(left)) 
\heuristics(javaIntegerSemantics)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[1947] | 0.001s | passed | 
| [1948] true_left, true_left {
\find(true==>)
\replacewith([]==>[]) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[1948] | 0.001s | passed | 
| [1949] true_to_not_false, true_to_not_false {
\find(equals(bo,TRUE))
\replacewith(not(equals(bo,FALSE))) 
Choices: true} | testEquality(String, String)[1949] | 0s | 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.001s | passed | 
| [1950] 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)[1950] | 0.001s | passed | 
| [1951] 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)[1951] | 0.001s | passed | 
| [1952] 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) {
    try {
      #t #v0;
      #v0 = (#t) #se;
      #slist1
    } finally {
      #slist2
… | testEquality(String, String)[1952] | 0.001s | passed | 
| [1953] 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)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1953] | 0.001s | passed | 
| [1954] tryEmpty, tryEmpty {
\find(#allmodal ( (modal operator))\[{ ..
  try {}#cs
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1954] | 0s | passed | 
| [1955] 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)[1955] | 0.001s | passed | 
| [1956] 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)[1956] | 0.001s | passed | 
| [1957] tryFinallyEmpty, tryFinallyEmpty {
\find(#allmodal ( (modal operator))\[{ ..
  try {}#cs finally {
    #slist2
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  {
    #slist2
  }
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1957] | 0s | passed | 
| [1958] tryFinallyReturn, tryFinallyReturn {
\find(#allmodal ( (modal operator))\[{ ..
  try {
    return #se;
    #slist
  }#cs finally {
    #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)[1958] | 0s | passed | 
| [1959] tryFinallyReturnNoValue, tryFinallyReturnNoValue {
\find(#allmodal ( (modal operator))\[{ ..
  try {
    return;
    #slist
  }#cs finally {
    #slist2
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  {
    #slist2
  }
  return;
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[1959] | 0.001s | 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] 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)
Choices: programRul… | testEquality(String, String)[1960] | 0.001s | passed | 
| [1961] 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) {
    #t #v0;
    #v0 = (#t) #se;
    #slist1
  } else {
    try {
      th… | testEquality(String, String)[1961] | 0.001s | passed | 
| [1962] 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)[1962] | 0s | passed | 
| [1963] 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)[1963] | 0.001s | passed | 
| [1964] 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)[1964] | 0s | passed | 
| [1965] 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)[1965] | 0s | passed | 
| [1966] 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)[1966] | 0.001s | passed | 
| [1967] 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)[1967] | 0s | passed | 
| [1968] typeEq, typeEq {
\find(equals(s,t1)==>)
\add [equals(H::instance(s),TRUE),equals(G::instance(t1),TRUE)]==>[] 
Choices: true} | testEquality(String, String)[1968] | 0s | passed | 
| [1969] typeEqDerived, typeEqDerived {
\assumes ([equals(s,t1)]==>[]) 
\find(H::instance(s))
\sameUpdateLevel\replacewith(TRUE) 
\heuristics(concrete, simplify)
Choices: true} | 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] | 0s | passed | 
| [1970] typeEqDerived2, typeEqDerived2 {
\assumes ([equals(s,t1)]==>[]) 
\find(G::instance(t1))
\sameUpdateLevel\replacewith(TRUE) 
\heuristics(concrete, simplify)
Choices: true} | testEquality(String, String)[1970] | 0s | passed | 
| [1971] typeStatic, typeStatic {
\find(s)
\sameUpdateLevel\add [equals(G::instance(s),TRUE)]==>[] 
Choices: true} | testEquality(String, String)[1971] | 0.001s | passed | 
| [1972] 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)[1972] | 0s | passed | 
| [1973] 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)[1973] | 0s | passed | 
| [1974] 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)[1974] | 0.001s | passed | 
| [1975] 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)[1975] | 0.001s | passed | 
| [1976] 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)[1976] | 0s | passed | 
| [1977] 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)[1977] | 0.001s | passed | 
| [1978] 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)[1978] | 0.001s | passed | 
| [1979] unionIntersectItself, unionIntersectItself {
\find(union(intersect(s1,s2),s1))
\replacewith(s1) 
\heuristics(simplify)
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] | 0s | passed | 
| [1980] unionIntersectItself_2, unionIntersectItself_2 {
\find(union(intersect(s2,s1),s1))
\replacewith(s1) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1980] | 0s | passed | 
| [1981] unionIntersectItself_3, unionIntersectItself_3 {
\find(union(union(s,intersect(s1,s2)),s1))
\replacewith(union(s,s1)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1981] | 0.001s | passed | 
| [1982] unionIntersectItself_4, unionIntersectItself_4 {
\find(union(union(s,intersect(s2,s1)),s1))
\replacewith(union(s,s1)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1982] | 0s | passed | 
| [1983] unionIntersectItself_5, unionIntersectItself_5 {
\find(union(union(intersect(s1,s2),s),s1))
\replacewith(union(s,s1)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1983] | 0s | passed | 
| [1984] unionIntersectItself_6, unionIntersectItself_6 {
\find(union(union(intersect(s2,s1),s),s1))
\replacewith(union(s,s1)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[1984] | 0.001s | passed | 
| [1985] unionWithAllLocs, unionWithAllLocs {
\find(union(allLocs,s))
\replacewith(allLocs) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1985] | 0s | passed | 
| [1986] unionWithAllLocsRight, unionWithAllLocsRight {
\find(union(s,allLocs))
\replacewith(allLocs) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1986] | 0s | passed | 
| [1987] unionWithEmpty, unionWithEmpty {
\find(union(empty,s))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1987] | 0s | passed | 
| [1988] unionWithEmptyRight, unionWithEmptyRight {
\find(union(s,empty))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1988] | 0.001s | passed | 
| [1989] unionWithItself, unionWithItself {
\find(union(s,s))
\replacewith(s) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[1989] | 0s | 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] 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)[1990] | 0s | passed | 
| [1991] 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)[1991] | 0.001s | passed | 
| [1992] 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)[1992] | 0.001s | passed | 
| [1993] 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)[1993] | 0.003s | passed | 
| [1994] 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(while (#nse) #body)
...… | testEquality(String, String)[1994] | 0s | passed | 
| [1995] 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)[1995] | 0s | passed | 
| [1996] 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)[1996] | 0.001s | passed | 
| [1997] 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)[1997] | 0.003s | passed | 
| [1998] 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)[1998] | 0.001s | passed | 
| [1999] 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)[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.004s | 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.014s | passed | 
| [2000] 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)[2000] | 0s | passed | 
| [2001] 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)[2001] | 0.001s | passed | 
| [2002] wellFormedAnon, wellFormedAnon {
\find(wellFormed(anon(h,s,h2)))
\succedentPolarity\replacewith(and(wellFormed(h),wellFormed(h2))) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[2002] | 0s | passed | 
| [2003] 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)[2003] | 0s | passed | 
| [2004] wellFormedCreate, wellFormedCreate {
\find(wellFormed(create(h,o)))
\succedentPolarity\replacewith(wellFormed(h)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[2004] | 0.001s | passed | 
| [2005] 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)[2005] | 0.001s | passed | 
| [2006] 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)[2006] | 0s | passed | 
| [2007] 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)[2007] | 0s | passed | 
| [2008] 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)[2008] | 0.001s | passed | 
| [2009] 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)[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] 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)[2010] | 0.001s | passed | 
| [2011] 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)[2011] | 0.001s | passed | 
| [2012] 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)[2012] | 0s | passed | 
| [2013] 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)[2013] | 0.001s | passed | 
| [2014] 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)[2014] | 0.001s | passed | 
| [2015] 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)[2015] | 0s | passed | 
| [2016] 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)[2016] | 0s | passed | 
| [2017] 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)[2017] | 0.001s | passed | 
| [2018] 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)[2018] | 0s | passed | 
| [2019] 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)[2019] | 0.001s | 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 | 
| [2020] 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)[2020] | 0s | passed | 
| [2021] 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)[2021] | 0s | passed | 
| [2022] 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)[2022] | 0.001s | passed | 
| [2023] 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)[2023] | 0s | passed | 
| [2024] 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)[2024] | 0s | passed | 
| [2025] 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)[2025] | 0.001s | passed | 
| [2026] 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)[2026] | 0s | passed | 
| [2027] writePermission, writePermission {
\find(writePermission(p))
\replacewith(writePermissionObject(currentThread,p)) 
\heuristics(simplify_enlarging)
Choices: true} | testEquality(String, String)[2027] | 0.001s | passed | 
| [2028] writePermissionObject, writePermissionObject {
\find(writePermissionObject(o,p))
\replacewith(true) 
\heuristics(concrete)
Choices: permissions:off} | testEquality(String, String)[2028] | 0s | passed | 
| [2029] xorJIntDef, xorJIntDef {
\find(xorJint(left,right))
\replacewith(moduloInt(binaryXOr(left,right))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[2029] | 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.004s | passed | 
| [2030] zadd_left_cancel0, zadd_left_cancel0 {
\find(equals(i0,add(i0,i1)))
\replacewith(equals(i1,Z(0(#)))) 
Choices: true} | testEquality(String, String)[2030] | 0.001s | passed | 
| [2031] 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)[2031] | 0s | passed | 
| [2032] 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)[2032] | 0s | 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: (progr… | 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, simpl… | 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 & runtimeException… | testEquality(String, String)[205] | 0.003s | 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] | 0s | 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] | 0s | 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: (progra… | 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:… | testEquality(String, String)[211] | 0s | 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-applic… | 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] | 0s | 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] | 0s | 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] | 0.001s | 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.001s | 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] | 0s | 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] | 0s | passed | 
| [223] atanIsNaN, atanIsNaN {
\find(atanDouble(arg))
\add [imp(doubleIsNaN(arg),doubleIsNaN(atanDouble(arg)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[223] | 0.001s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0.001s | 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] | 0s | 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] | 0s | 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] | 0s | 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] | 0s | 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.001s | 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] | 0s | 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] | 0s | 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.007s | 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.002s | passed | 
| [257] binaryAndSymm, binaryAndSymm {
\find(binaryAnd(left,right))
\replacewith(binaryAnd(right,left)) 
Choices: true} | testEquality(String, String)[257] | 0.002s | 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] | 0.001s | 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] | 0s | 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] | 0s | 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] bitwiseNegateJIntDefinition, bitwiseNegateJIntDefinition {
\find(bitwiseNegateJint(i))
\replacewith(sub(neg(i),Z(1(#)))) 
\heuristics(javaIntegerSemantics)
Choices: true} | testEquality(String, String)[268] | 0.001s | passed | 
| [269] bitwiseNegateJlongDefinition, bitwiseNegateJlongDefinition {
\find(bitwiseNegateJlong(i))
\replacewith(sub(neg(i),Z(1(#)))) 
\heuristics(javaIntegerSemantics)
Choices: true} | 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] bitwiseNegationInt, bitwiseNegationInt {
\find(#normalassign ( (modal operator))\[{ ..
  #loc = ~#seCharByteShortInt;
... }\] (post))
\replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseNegateInt(#se)),#normalassign(post))) 
\heuristics(executeIntegerAssignment)
Choices: programRules:Java} | testEquality(String, String)[270] | 0.001s | passed | 
| [271] bitwiseNegationLong, bitwiseNegationLong {
\find(#normalassign ( (modal operator))\[{ ..
  #loc = ~#se;
... }\] (post))
\replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseNegateLong(#seLong)),#normalassign(post))) 
\heuristics(executeIntegerAssignment)
Choices: programRules:Java} | testEquality(String, String)[271] | 0s | passed | 
| [272] blockBreak, blockBreak {
\find(#allmodal ( (modal operator))\[{ ..
  {
    break;
    #slist
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  break;
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[272] | 0.002s | passed | 
| [273] 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)[273] | 0.001s | passed | 
| [274] blockBreakLabeled, blockBreakLabeled {
\find(#allmodal ( (modal operator))\[{ ..
  {
    break;
    #slist
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  break;
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[274] | 0s | passed | 
| [275] 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)[275] | 0.001s | passed | 
| [276] blockContinue, blockContinue {
\find(#allmodal ( (modal operator))\[{ ..
  {
    continue;
    #slist
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  continue;
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[276] | 0.009s | passed | 
| [277] blockContinueLabeled, blockContinueLabeled {
\find(#allmodal ( (modal operator))\[{ ..
  {
    continue;
    #slist
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  continue;
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[277] | 0.001s | passed | 
| [278] blockEmpty, blockEmpty {
\find(#allmodal ( (modal operator))\[{ ..
  {}
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog_subset, simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[278] | 0.001s | passed | 
| [279] 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)[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.001s | passed | 
| [280] 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)[280] | 0s | passed | 
| [281] 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)[281] | 0s | passed | 
| [282] 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)[282] | 0.001s | passed | 
| [283] 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)[283] | 0.001s | passed | 
| [284] 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)[284] | 0s | passed | 
| [285] boolean_equal, boolean_equal {
\find(equals(bo,bo))
\replacewith(true) 
\heuristics(concrete, simplify_boolean)
Choices: true} | testEquality(String, String)[285] | 0.001s | passed | 
| [286] 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)[286] | 0s | passed | 
| [287] boolean_false_commute, boolean_false_commute {
\find(equals(FALSE,bo))
\replacewith(equals(bo,FALSE)) 
\heuristics(simplify_boolean)
Choices: true} | testEquality(String, String)[287] | 0s | passed | 
| [288] boolean_not_equal_1, boolean_not_equal_1 {
\find(equals(TRUE,FALSE))
\replacewith(false) 
\heuristics(concrete, simplify_boolean)
Choices: true} | testEquality(String, String)[288] | 0.001s | passed | 
| [289] boolean_not_equal_2, boolean_not_equal_2 {
\find(equals(FALSE,TRUE))
\replacewith(false) 
\heuristics(concrete, simplify_boolean)
Choices: true} | 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] boolean_true_commute, boolean_true_commute {
\find(equals(TRUE,bo))
\replacewith(equals(bo,TRUE)) 
\heuristics(simplify_boolean)
Choices: true} | testEquality(String, String)[290] | 0s | passed | 
| [291] boxToDiamond, boxToDiamond {
\find(\[{ ..
  #s
... }\] (post))
\replacewith(not(\<{ ..
  #s
... }\> (not(post)))) 
\heuristics(boxDiamondConv)
Choices: programRules:Java} | testEquality(String, String)[291] | 0.001s | passed | 
| [292] boxToDiamondTransaction, boxToDiamondTransaction {
\find(box_transaction\[{ ..
  #s
... }\] (post))
\replacewith(not(diamond_transaction\[{ ..
  #s
... }\] (not(post)))) 
\heuristics(boxDiamondConv)
Choices: programRules:Java} | testEquality(String, String)[292] | 0.001s | passed | 
| [293] 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)[293] | 0s | passed | 
| [294] 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)[294] | 0.001s | passed | 
| [295] 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)[295] | 0.001s | passed | 
| [296] 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)[296] | 0.001s | passed | 
| [297] box_true, box_true {
\find(#box ( (modal operator))\[{ ..
  #s
... }\] (true))
\replacewith(true) 
\heuristics(modal_tautology)
Choices: programRules:Java} | testEquality(String, String)[297] | 0s | passed | 
| [298] 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)[298] | 0s | passed | 
| [299] 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)[299] | 0s | 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_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)[300] | 0.001s | passed | 
| [301] 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)[301] | 0.001s | passed | 
| [302] 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)[302] | 0s | passed | 
| [303] 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)[303] | 0s | passed | 
| [304] 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)[304] | 0.001s | passed | 
| [305] 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)[305] | 0.001s | passed | 
| [306] 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)[306] | 0s | passed | 
| [307] 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)[307] | 0.001s | passed | 
| [308] 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)[308] | 0.003s | passed | 
| [309] 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)[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.002s | passed | 
| [310] 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)[310] | 0.045s | passed | 
| [311] 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)[311] | 0.001s | passed | 
| [312] 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)[312] | 0.002s | passed | 
| [313] 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)[313] | 0.001s | passed | 
| [314] 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)[314] | 0s | passed | 
| [315] 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)[315] | 0.001s | passed | 
| [316] 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)[316] | 0s | passed | 
| [317] 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)[317] | 0.003s | passed | 
| [318] 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)[318] | 0.001s | passed | 
| [319] 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)[319] | 0s | 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_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)[320] | 0.001s | passed | 
| [321] 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)[321] | 0.001s | passed | 
| [322] 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)[322] | 0.001s | passed | 
| [323] 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)[323] | 0s | passed | 
| [324] 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)[324] | 0.001s | passed | 
| [325] 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)[325] | 0.001s | passed | 
| [326] 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)[326] | 0.001s | passed | 
| [327] 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)[327] | 0.001s | passed | 
| [328] 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)[328] | 0s | passed | 
| [329] 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)[329] | 0.001s | 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, 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)[330] | 0.001s | passed | 
| [331] 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)[331] | 0.001s | passed | 
| [332] 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)[332] | 0.004s | passed | 
| [333] 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)[333] | 0.001s | passed | 
| [334] 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)[334] | 0.001s | passed | 
| [335] 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)[335] | 0.001s | passed | 
| [336] 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)[336] | 0.001s | passed | 
| [337] 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)[337] | 0s | passed | 
| [338] 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)[338] | 0.001s | passed | 
| [339] 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)[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] | 0s | passed | 
| [340] 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)[340] | 0.001s | passed | 
| [341] 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)[341] | 0s | passed | 
| [342] 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)[342] | 0s | passed | 
| [343] 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)[343] | 0.001s | passed | 
| [344] 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)[344] | 0.001s | passed | 
| [345] 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)[345] | 0.001s | passed | 
| [346] 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)[346] | 0.001s | passed | 
| [347] 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)[347] | 0s | passed | 
| [348] 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)[348] | 0.001s | passed | 
| [349] 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)[349] | 0s | 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_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)[350] | 0.001s | passed | 
| [351] 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)[351] | 0.001s | passed | 
| [352] 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)[352] | 0.001s | passed | 
| [353] 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)[353] | 0s | passed | 
| [354] 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)[354] | 0.001s | passed | 
| [355] 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)[355] | 0.001s | passed | 
| [356] 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)[356] | 0.001s | passed | 
| [357] 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)[357] | 0s | passed | 
| [358] 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)[358] | 0s | passed | 
| [359] 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)[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.002s | passed | 
| [360] 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)[360] | 0.001s | passed | 
| [361] 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)[361] | 0.002s | passed | 
| [362] 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)[362] | 0.001s | passed | 
| [363] 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)[363] | 0s | passed | 
| [364] 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)[364] | 0.001s | passed | 
| [365] 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)[365] | 0.001s | passed | 
| [366] 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)[366] | 0.003s | passed | 
| [367] 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)[367] | 0.001s | passed | 
| [368] 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)[368] | 0.004s | passed | 
| [369] 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)[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] 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)[370] | 0.001s | passed | 
| [371] 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)[371] | 0.001s | passed | 
| [372] 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)[372] | 0.001s | passed | 
| [373] 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)[373] | 0.001s | passed | 
| [374] 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)[374] | 0.002s | passed | 
| [375] 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)[375] | 0.001s | passed | 
| [376] castAdd, castAdd {
\assumes ([equals(CSub::instance(strictCTerm2),TRUE)]==>[]) 
\find(strictCTerm2)
\sameUpdateLevel\replacewith(CSub::cast(strictCTerm2)) 
Choices: true} | testEquality(String, String)[376] | 0.001s | passed | 
| [377] castAdd2, castAdd2 {
\assumes ([equals(cs,gt)]==>[]) 
\find(gt)
\sameUpdateLevel\varcond(\strict\sub(C, G), )
\replacewith(C::cast(gt)) 
Choices: true} | testEquality(String, String)[377] | 0.002s | passed | 
| [378] castDel, castDel {
\find(C::cast(castedTerm))
\replacewith(castedTerm) 
\heuristics(cast_deletion, simplify)
Choices: true} | testEquality(String, String)[378] | 0.001s | passed | 
| [379] castDel2, castDel2 {
\assumes ([equals(cs,gt)]==>[]) 
\find(C::cast(gt))
\sameUpdateLevel\replacewith(cs) 
Choices: true} | testEquality(String, String)[379] | 0.001s | 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] | 0s | passed | 
| [380] 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)[380] | 0s | passed | 
| [381] 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)[381] | 0.001s | passed | 
| [382] 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)[382] | 0.001s | passed | 
| [383] 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)[383] | 0.001s | passed | 
| [384] 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)[384] | 0.001s | passed | 
| [385] castedGetAny, castedGetAny {
\find(beta::cast(any::seqGet(seq,idx)))
\replacewith(beta::seqGet(seq,idx)) 
\heuristics(simplify)
Choices: sequences:on} | testEquality(String, String)[385] | 0.001s | passed | 
| [386] charLiteral_to_int, charLiteral_to_int {
\find(C(iz))
\replacewith(Z(iz)) 
\heuristics(charLiteral_to_intLiteral)
Choices: true} | testEquality(String, String)[386] | 0s | passed | 
| [387] close, close {
\assumes ([b]==>[]) 
\find(==>b)
\closegoal\heuristics(closure)
Choices: true} | testEquality(String, String)[387] | 0s | passed | 
| [388] closeAntec, closeAntec {
\assumes ([]==>[b]) 
\find(b==>)
\closegoal
Choices: true} | testEquality(String, String)[388] | 0.001s | passed | 
| [389] closeFalse, closeFalse {
\find(false==>)
\closegoal\heuristics(closure)
Choices: true} | testEquality(String, String)[389] | 0.001s | 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] | 0s | passed | 
| [390] closeTrue, closeTrue {
\find(==>true)
\closegoal\heuristics(closure)
Choices: true} | testEquality(String, String)[390] | 0.001s | passed | 
| [391] closeType, closeType {
\assumes ([]==>[equals(G::instance(t1),TRUE)]) 
\find(equals(GSub::instance(t1),TRUE)==>)
\closegoal\heuristics(closure)
Choices: true} | testEquality(String, String)[391] | 0.001s | passed | 
| [392] closeTypeSwitched, closeTypeSwitched {
\assumes ([equals(GSub::instance(t1),TRUE)]==>[]) 
\find(==>equals(G::instance(t1),TRUE))
\closegoal\heuristics(closure)
Choices: true} | testEquality(String, String)[392] | 0.001s | passed | 
| [393] 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)[393] | 0s | passed | 
| [394] 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)[394] | 0s | passed | 
| [395] 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)[395] | 0.001s | passed | 
| [396] 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)[396] | 0.001s | passed | 
| [397] 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)[397] | 0.001s | passed | 
| [398] 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)[398] | 0.001s | passed | 
| [399] 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)[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] | 0s | 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.001s | passed | 
| [400] commitJavaCardTransactionBox, commitJavaCardTransactionBox {
\find(==>box_transaction\[{ ..
  #commitJavaCardTransaction;
... }\] (post))
\replacewith([]==>[box(post)]) 
\heuristics(simplify_prog)
Choices: (programRules:Java & JavaCard:on)} | testEquality(String, String)[400] | 0s | passed | 
| [401] commitJavaCardTransactionDiamond, commitJavaCardTransactionDiamond {
\find(==>diamond_transaction\[{ ..
  #commitJavaCardTransaction;
... }\] (post))
\replacewith([]==>[diamond(post)]) 
\heuristics(simplify_prog)
Choices: (programRules:Java & JavaCard:on)} | testEquality(String, String)[401] | 0.001s | passed | 
| [402] commuteDisjoint, commuteDisjoint {
\find(disjoint(commLeft,commRight))
\replacewith(disjoint(commRight,commLeft)) 
\heuristics(cnf_setComm)
Choices: programRules:Java} | testEquality(String, String)[402] | 0.001s | passed | 
| [403] commuteIntersection, commuteIntersection {
\find(intersect(commLeft,commRight))
\replacewith(intersect(commRight,commLeft)) 
\heuristics(cnf_setComm)
Choices: programRules:Java} | testEquality(String, String)[403] | 0.001s | passed | 
| [404] 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)[404] | 0.001s | passed | 
| [405] commuteUnion, commuteUnion {
\find(union(commLeft,commRight))
\replacewith(union(commRight,commLeft)) 
\heuristics(cnf_setComm)
Choices: programRules:Java} | testEquality(String, String)[405] | 0.001s | passed | 
| [406] 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)[406] | 0.002s | passed | 
| [407] commute_and, commute_and {
\find(and(commLeft,commRight))
\replacewith(and(commRight,commLeft)) 
\heuristics(cnf_andComm, conjNormalForm)
Choices: true} | testEquality(String, String)[407] | 0.001s | passed | 
| [408] 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)[408] | 0.001s | passed | 
| [409] commute_or, commute_or {
\find(or(commLeft,commRight))
\replacewith(or(commRight,commLeft)) 
\heuristics(cnf_orComm, conjNormalForm)
Choices: true} | 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] 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)[410] | 0.001s | passed | 
| [411] 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)[411] | 0.001s | passed | 
| [412] 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)[412] | 0.001s | passed | 
| [413] 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)[413] | 0.001s | passed | 
| [414] 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)[414] | 0.002s | passed | 
| [415] 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)[415] | 0.001s | passed | 
| [416] 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)[416] | 0s | passed | 
| [417] 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)[417] | 0.001s | passed | 
| [418] 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)[418] | 0.001s | passed | 
| [419] 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)[419] | 0.001s | 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_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)[420] | 0.001s | passed | 
| [421] 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)[421] | 0s | passed | 
| [422] 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)[422] | 0.001s | passed | 
| [423] 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)[423] | 0.001s | passed | 
| [424] 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)[424] | 0.001s | passed | 
| [425] 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)[425] | 0.001s | passed | 
| [426] 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)[426] | 0s | passed | 
| [427] 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)[427] | 0.001s | passed | 
| [428] 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)[428] | 0.001s | passed | 
| [429] 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)[429] | 0.001s | 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] | 0.001s | passed | 
| [430] 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)[430] | 0.001s | passed | 
| [431] 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)[431] | 0s | passed | 
| [432] 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)[432] | 0.001s | passed | 
| [433] 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)[433] | 0.001s | passed | 
| [434] 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)[434] | 0.005s | passed | 
| [435] 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)[435] | 0.001s | passed | 
| [436] 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)[436] | 0.001s | passed | 
| [437] 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)[437] | 0.001s | passed | 
| [438] 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)[438] | 0s | passed | 
| [439] 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)[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] | 0s | passed | 
| [440] 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)[440] | 0.001s | passed | 
| [441] 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)[441] | 0.001s | passed | 
| [442] 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)[442] | 0s | passed | 
| [443] 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)[443] | 0.001s | passed | 
| [444] 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)[444] | 0.002s | passed | 
| [445] 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)[445] | 0s | passed | 
| [446] 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)[446] | 0.002s | passed | 
| [447] 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)[447] | 0.001s | passed | 
| [448] 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)[448] | 0.001s | passed | 
| [449] 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)[449] | 0.001s | 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.001s | passed | 
| [450] 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)[450] | 0s | passed | 
| [451] 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)[451] | 0.001s | passed | 
| [452] 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)[452] | 0.001s | passed | 
| [453] 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)[453] | 0.002s | passed | 
| [454] 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)[454] | 0.002s | passed | 
| [455] 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)[455] | 0.001s | passed | 
| [456] 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)[456] | 0.002s | passed | 
| [457] 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)[457] | 0.001s | passed | 
| [458] 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)[458] | 0.001s | passed | 
| [459] 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)[459] | 0s | 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_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)[460] | 0.001s | passed | 
| [461] 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)[461] | 0.001s | passed | 
| [462] 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)[462] | 0s | passed | 
| [463] 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)[463] | 0.001s | passed | 
| [464] 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)[464] | 0.005s | passed | 
| [465] 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)[465] | 0.001s | passed | 
| [466] 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)[466] | 0.001s | passed | 
| [467] 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)[467] | 0.001s | passed | 
| [468] 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)[468] | 0.001s | passed | 
| [469] 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)[469] | 0.002s | 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.001s | passed | 
| [470] 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)[470] | 0.001s | passed | 
| [471] 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)[471] | 0.003s | passed | 
| [472] 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)[472] | 0.001s | passed | 
| [473] 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)[473] | 0.028s | passed | 
| [474] 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)[474] | 0.002s | passed | 
| [475] 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)[475] | 0.001s | passed | 
| [476] 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)[476] | 0.002s | passed | 
| [477] 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)[477] | 0.001s | passed | 
| [478] 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)[478] | 0.001s | passed | 
| [479] 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)[479] | 0.002s | 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_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)[480] | 0.002s | passed | 
| [481] 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)[481] | 0.002s | passed | 
| [482] 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)[482] | 0.022s | passed | 
| [483] 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)[483] | 0.003s | passed | 
| [484] 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)[484] | 0.001s | passed | 
| [485] 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)[485] | 0.012s | passed | 
| [486] 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)[486] | 0.002s | passed | 
| [487] 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)[487] | 0.001s | passed | 
| [488] 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)[488] | 0.002s | passed | 
| [489] 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)[489] | 0.001s | 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_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)[490] | 0.002s | passed | 
| [491] 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)[491] | 0.001s | passed | 
| [492] 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)[492] | 0.001s | passed | 
| [493] 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)[493] | 0.001s | passed | 
| [494] 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)[494] | 0.001s | passed | 
| [495] 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)[495] | 0.001s | passed | 
| [496] 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)[496] | 0.001s | passed | 
| [497] 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)[497] | 0.001s | passed | 
| [498] 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)[498] | 0s | passed | 
| [499] 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)[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.005s | 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.001s | passed | 
| [500] 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)[500] | 0.001s | passed | 
| [501] 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)[501] | 0.001s | passed | 
| [502] 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)[502] | 0.001s | passed | 
| [503] concatRepeatContraction3, concatRepeatContraction3 {
\find(regExConcat(repeat(rexp,nTimes),regEx(seqEmpty)))
\replacewith(repeat(rexp,nTimes)) 
\heuristics(concrete)
Choices: Strings:on} | testEquality(String, String)[503] | 0s | passed | 
| [504] concatRepeatContraction3Sym, concatRepeatContraction3Sym {
\find(regExConcat(regEx(seqEmpty),repeat(rexp,nTimes)))
\replacewith(repeat(rexp,nTimes)) 
\heuristics(concrete)
Choices: Strings:on} | testEquality(String, String)[504] | 0s | passed | 
| [505] concrete_and_1, concrete_and_1 {
\find(and(true,b))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[505] | 0.001s | passed | 
| [506] concrete_and_2, concrete_and_2 {
\find(and(false,b))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[506] | 0s | passed | 
| [507] concrete_and_3, concrete_and_3 {
\find(and(b,true))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[507] | 0s | passed | 
| [508] concrete_and_4, concrete_and_4 {
\find(and(b,false))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[508] | 0.001s | passed | 
| [509] concrete_eq_1, concrete_eq_1 {
\find(equiv(true,b))
\replacewith(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_eq_2, concrete_eq_2 {
\find(equiv(false,b))
\replacewith(not(b)) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[510] | 0s | passed | 
| [511] concrete_eq_3, concrete_eq_3 {
\find(equiv(b,true))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[511] | 0.001s | passed | 
| [512] concrete_eq_4, concrete_eq_4 {
\find(equiv(b,false))
\replacewith(not(b)) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[512] | 0s | passed | 
| [513] concrete_impl_1, concrete_impl_1 {
\find(imp(true,b))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[513] | 0s | passed | 
| [514] concrete_impl_2, concrete_impl_2 {
\find(imp(false,b))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[514] | 0.001s | passed | 
| [515] concrete_impl_3, concrete_impl_3 {
\find(imp(b,false))
\replacewith(not(b)) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[515] | 0s | passed | 
| [516] concrete_impl_4, concrete_impl_4 {
\find(imp(b,true))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[516] | 0s | passed | 
| [517] concrete_not_1, concrete_not_1 {
\find(not(true))
\replacewith(false) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[517] | 0.001s | passed | 
| [518] concrete_not_2, concrete_not_2 {
\find(not(false))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[518] | 0s | passed | 
| [519] concrete_or_1, concrete_or_1 {
\find(or(true,b))
\replacewith(true) 
\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] | 0s | passed | 
| [520] concrete_or_2, concrete_or_2 {
\find(or(false,b))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[520] | 0.001s | passed | 
| [521] concrete_or_3, concrete_or_3 {
\find(or(b,true))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[521] | 0s | passed | 
| [522] concrete_or_4, concrete_or_4 {
\find(or(b,false))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[522] | 0s | passed | 
| [523] concrete_or_5, concrete_or_5 {
\find(or(and(c,b),and(c,not(b))))
\replacewith(c) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[523] | 0.001s | passed | 
| [524] 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)[524] | 0s | passed | 
| [525] 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)[525] | 0s | passed | 
| [526] 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)[526] | 0.002s | passed | 
| [527] 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)[527] | 0.008s | passed | 
| [528] 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)[528] | 0.001s | passed | 
| [529] 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)[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.005s | passed | 
| [530] cosIsNaN, cosIsNaN {
\find(cosDouble(arg))
\add [imp(or(doubleIsNaN(arg),doubleIsInfinite(arg)),doubleIsNaN(cosDouble(arg)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[530] | 0.001s | passed | 
| [531] cosIsNaNAlt, cosIsNaNAlt {
\find(doubleIsNaN(cosDouble(arg)))
\replacewith(or(doubleIsNaN(arg),doubleIsInfinite(arg))) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[531] | 0s | passed | 
| [532] 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)[532] | 0s | passed | 
| [533] 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)[533] | 0.001s | passed | 
| [534] 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)[534] | 0.001s | passed | 
| [535] 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)[535] | 0.001s | passed | 
| [536] 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)[536] | 0s | passed | 
| [537] 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)[537] | 0s | passed | 
| [538] 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)[538] | 0s | passed | 
| [539] 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)[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.001s | passed | 
| [540] 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)[540] | 0.001s | passed | 
| [541] createdInHeapWithEmpty, createdInHeapWithEmpty {
\find(createdInHeap(empty,h))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[541] | 0.001s | passed | 
| [542] 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)[542] | 0.006s | passed | 
| [543] 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)[543] | 0s | passed | 
| [544] createdInHeapWithSelect, createdInHeapWithSelect {
\find(==>createdInHeap(LocSet::select(h,o,f),h))
\replacewith([]==>[wellFormed(h)]) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[544] | 0.001s | passed | 
| [545] 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)[545] | 0s | passed | 
| [546] createdInHeapWithSetMinusFreshLocs, createdInHeapWithSetMinusFreshLocs {
\find(createdInHeap(setMinus(s,freshLocs(h)),h))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[546] | 0s | passed | 
| [547] createdInHeapWithSetMinusFreshLocsEQ, createdInHeapWithSetMinusFreshLocsEQ {
\assumes ([equals(setMinus(s,freshLocs(h)),EQ)]==>[]) 
\find(createdInHeap(EQ,h))
\sameUpdateLevel\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[547] | 0.001s | passed | 
| [548] 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)[548] | 0s | passed | 
| [549] 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)[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] 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)[550] | 0.001s | passed | 
| [551] 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)[551] | 0s | passed | 
| [552] 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)[552] | 0.001s | passed | 
| [553] cut, cut {
\add []==>[cutFormula] ;
\add [cutFormula]==>[] 
\heuristics(cut)
Choices: true} | testEquality(String, String)[553] | 0s | passed | 
| [554] 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)[554] | 0s | passed | 
| [555] cut_direct, cut_direct {
\find(cutFormula)
\sameUpdateLevel\add []==>[cutFormula] \replacewith(false) ;
\add [cutFormula]==>[] \replacewith(true) 
\heuristics(cut_direct)
Choices: true} | testEquality(String, String)[555] | 0.001s | passed | 
| [556] cut_direct_l, cut_direct_l {
\find(b==>)
\add []==>[b] ;
\replacewith([b]==>[]) 
Choices: true} | testEquality(String, String)[556] | 0s | passed | 
| [557] cut_direct_r, cut_direct_r {
\find(==>b)
\add [b]==>[] ;
\replacewith([]==>[b]) 
Choices: true} | testEquality(String, String)[557] | 0s | passed | 
| [558] 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)[558] | 0.001s | passed | 
| [559] 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)[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] | 0.001s | passed | 
| [560] defMapEmpty, defMapEmpty {
\find(mapEmpty)
\replacewith(mapForeach{vy (variable)}(FALSE,mapUndef)) 
Choices: true} | testEquality(String, String)[560] | 0.001s | passed | 
| [561] 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)[561] | 0s | passed | 
| [562] 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)[562] | 0s | passed | 
| [563] 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)[563] | 0.001s | passed | 
| [564] 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)[564] | 0s | passed | 
| [565] 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)[565] | 0s | passed | 
| [566] 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)[566] | 0.001s | passed | 
| [567] 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)[567] | 0s | passed | 
| [568] 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)[568] | 0s | passed | 
| [569] 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)[569] | 0.001s | 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] 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)[570] | 0s | passed | 
| [571] 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)[571] | 0.001s | passed | 
| [572] 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)[572] | 0s | passed | 
| [573] 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)[573] | 0s | passed | 
| [574] 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)[574] | 0.001s | passed | 
| [575] 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)[575] | 0s | passed | 
| [576] 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)[576] | 0s | passed | 
| [577] 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)[577] | 0.001s | passed | 
| [578] 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)[578] | 0s | passed | 
| [579] 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)[579] | 0s | 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] 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)[580] | 0.001s | passed | 
| [581] 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)[581] | 0s | passed | 
| [582] 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)[582] | 0s | passed | 
| [583] deleteMergePoint, deleteMergePoint {
\find(#allmodal ( (modal operator))\[{ ..
  //@ merge_point (#lhs);;
  ... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(merge_point, simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[583] | 0.001s | passed | 
| [584] 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)[584] | 0.001s | passed | 
| [585] diamondToBox, diamondToBox {
\find(\<{ ..
  #s
... }\> (post))
\replacewith(not(\[{ ..
  #s
... }\] (not(post)))) 
\heuristics(boxDiamondConv)
Choices: programRules:Java} | testEquality(String, String)[585] | 0.001s | passed | 
| [586] diamondToBoxTransaction, diamondToBoxTransaction {
\find(diamond_transaction\[{ ..
  #s
... }\] (post))
\replacewith(not(box_transaction\[{ ..
  #s
... }\] (not(post)))) 
\heuristics(boxDiamondConv)
Choices: programRules:Java} | testEquality(String, String)[586] | 0.001s | passed | 
| [587] 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)[587] | 0s | passed | 
| [588] 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)[588] | 0.001s | passed | 
| [589] diamond_false, diamond_false {
\find(#diamond ( (modal operator))\[{ ..
  #s
... }\] (false))
\replacewith(false) 
\heuristics(modal_tautology)
Choices: programRules:Java} | testEquality(String, String)[589] | 0s | passed | 
| [58] allFieldsEq, allFieldsEq {
\find(equals(allFields(o1),allFields(o2)))
\replacewith(equals(o1,o2)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[58] | 0.001s | passed | 
| [590] 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)[590] | 0s | passed | 
| [591] 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)[591] | 0.001s | passed | 
| [592] diamond_split_termination, diamond_split_termination {
\find(\<{ ..
  #s
... }\> (post))
\replacewith(and(\[{ ..
  #s
... }\] (post),\<{ ..
  #s
... }\> (true))) 
Choices: programRules:Java} | testEquality(String, String)[592] | 0s | passed | 
| [593] 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)[593] | 0s | passed | 
| [594] 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)[594] | 0.001s | passed | 
| [595] 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)[595] | 0s | passed | 
| [596] 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)[596] | 0.001s | passed | 
| [597] 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)[597] | 0s | passed | 
| [598] 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)[598] | 0s | passed | 
| [599] 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)[599] | 0.001s | 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] | 0.001s | 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] 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)[600] | 0s | passed | 
| [601] 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)[601] | 0.001s | passed | 
| [602] 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)[602] | 0.001s | passed | 
| [603] 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)[603] | 0s | passed | 
| [604] 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)[604] | 0.001s | passed | 
| [605] disjointDefinition, disjointDefinition {
\find(disjoint(s,s2))
\replacewith(equals(intersect(s,s2),empty)) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[605] | 0s | passed | 
| [606] 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)[606] | 0.001s | passed | 
| [607] 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)[607] | 0.001s | passed | 
| [608] 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)[608] | 0s | passed | 
| [609] 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)[609] | 0.001s | 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] 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)[610] | 0s | passed | 
| [611] disjointWithEmpty, disjointWithEmpty {
\find(disjoint(empty,s))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[611] | 0s | passed | 
| [612] disjointWithSingleton1, disjointWithSingleton1 {
\find(equals(intersect(s,singleton(o,f)),empty))
\replacewith(not(elementOf(o,f,s))) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[612] | 0s | passed | 
| [613] disjointWithSingleton2, disjointWithSingleton2 {
\find(equals(intersect(singleton(o,f),s),empty))
\replacewith(not(elementOf(o,f,s))) 
\heuristics(simplify)
Choices: programRules:Java} | testEquality(String, String)[613] | 0.001s | passed | 
| [614] 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)[614] | 0.001s | passed | 
| [615] 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)[615] | 0s | passed | 
| [616] 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)[616] | 0s | passed | 
| [617] 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)[617] | 0.001s | passed | 
| [618] 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)[618] | 0s | passed | 
| [619] 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)[619] | 0s | passed | 
| [61] allLeft, allLeft {
\find(all{u (variable)}(b)==>)
\add [subst{u (variable)}(t,b)]==>[] 
\heuristics(gamma)
Choices: true} | testEquality(String, String)[61] | 0.001s | passed | 
| [620] 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)[620] | 0.001s | passed | 
| [621] 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)[621] | 0s | passed | 
| [622] 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)[622] | 0.001s | passed | 
| [623] 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)[623] | 0s | passed | 
| [624] 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)[624] | 0s | passed | 
| [625] divGreatestDNeg, divGreatestDNeg {
\find(lt(divNum,mul(divDenom,coef))==>)
\add [imp(lt(divDenom,Z(0(#))),lt(coef,div(divNum,divDenom)))]==>[] 
Choices: true} | testEquality(String, String)[625] | 0.001s | passed | 
| [626] divGreatestDPos, divGreatestDPos {
\find(leq(mul(divDenom,coef),divNum)==>)
\add [imp(gt(divDenom,Z(0(#))),leq(coef,div(divNum,divDenom)))]==>[] 
Choices: true} | testEquality(String, String)[626] | 0s | passed | 
| [627] 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)[627] | 0s | passed | 
| [628] 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)[628] | 0.001s | passed | 
| [629] divLeastDNeg, divLeastDNeg {
\find(leq(mul(divDenom,coef),divNum)==>)
\add [imp(lt(divDenom,Z(0(#))),leq(div(divNum,divDenom),coef))]==>[] 
Choices: true} | testEquality(String, String)[629] | 0s | 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.003s | passed | 
| [630] divLeastDPos, divLeastDPos {
\find(lt(divNum,mul(divDenom,coef))==>)
\add [imp(gt(divDenom,Z(0(#))),lt(div(divNum,divDenom),coef))]==>[] 
Choices: true} | testEquality(String, String)[630] | 0.001s | passed | 
| [631] 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)[631] | 0.001s | passed | 
| [632] 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)[632] | 0s | passed | 
| [633] 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)[633] | 0.001s | passed | 
| [634] 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)[634] | 0s | passed | 
| [635] 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)[635] | 0s | passed | 
| [636] 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)[636] | 0.001s | passed | 
| [637] 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)[637] | 0s | passed | 
| [638] 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)[638] | 0s | passed | 
| [639] 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)[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.001s | passed | 
| [640] 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)[640] | 0s | passed | 
| [641] div_literals, div_literals {
\find(div(Z(iz),Z(jz)))
\replacewith(#div(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[641] | 0.001s | passed | 
| [642] div_one, div_one {
\find(div(divNum,Z(1(#))))
\replacewith(divNum) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[642] | 0s | passed | 
| [643] 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)[643] | 0s | passed | 
| [644] 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)[644] | 0.001s | passed | 
| [645] 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)[645] | 0s | passed | 
| [646] 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)[646] | 0s | passed | 
| [647] 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)[647] | 0.001s | passed | 
| [648] 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)[648] | 0s | passed | 
| [649] 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)[649] | 0.001s | 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_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)[650] | 0.001s | passed | 
| [651] 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)[651] | 0s | passed | 
| [652] 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)[652] | 0.001s | passed | 
| [653] 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)[653] | 0.001s | passed | 
| [654] 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)[654] | 0s | passed | 
| [655] 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)[655] | 0.001s | passed | 
| [656] 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)[656] | 0s | passed | 
| [657] 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)[657] | 0s | passed | 
| [658] 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)[658] | 0.001s | passed | 
| [659] 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)[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_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)[660] | 0s | passed | 
| [661] 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)[661] | 0.001s | passed | 
| [662] 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)[662] | 0s | passed | 
| [663] 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)[663] | 0s | passed | 
| [664] 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)[664] | 0.001s | passed | 
| [665] doWhileUnwind, doWhileUnwind {
\find(#allmodal ( (modal operator))\[{ ..
  do #s
  while (#e);
... }\] (post))
\varcond(\newLabel (#innerLabel (program Label)), \newLabel (#outerLabel (program Label)), )
\replacewith(#allmodal ( (modal operator))\[{ ..
  #unwind-loop(do #s
  while (#e);)
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[665] | 0.001s | passed | 
| [666] doubleImpLeft, doubleImpLeft {
\find(imp(b,imp(c,d))==>)
\replacewith([d]==>[]) ;
\replacewith([]==>[c]) ;
\replacewith([]==>[b]) 
\heuristics(beta)
Choices: true} | testEquality(String, String)[666] | 0s | passed | 
| [667] double_not, double_not {
\find(not(not(b)))
\replacewith(b) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[667] | 0s | passed | 
| [668] double_unary_minus_literal, double_unary_minus_literal {
\find(Z(neglit(neglit(iz))))
\replacewith(Z(iz)) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[668] | 0.001s | passed | 
| [669] 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)[669] | 0.075s | 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.001s | passed | 
| [670] elementOfAllFields, elementOfAllFields {
\find(elementOf(o,f,allFields(o2)))
\replacewith(equals(o,o2)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[670] | 0.001s | passed | 
| [671] elementOfAllLocs, elementOfAllLocs {
\find(elementOf(o,f,allLocs))
\replacewith(true) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[671] | 0.001s | passed | 
| [672] elementOfAllObjects, elementOfAllObjects {
\find(elementOf(o,f,allObjects(f2)))
\replacewith(equals(f,f2)) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[672] | 0s | passed | 
| [673] 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)[673] | 0.004s | passed | 
| [674] 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)[674] | 0.001s | passed | 
| [675] 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)[675] | 0.001s | passed | 
| [676] elementOfEmpty, elementOfEmpty {
\find(elementOf(o,f,empty))
\replacewith(false) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[676] | 0s | passed | 
| [677] 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)[677] | 0.001s | passed | 
| [678] 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)[678] | 0s | passed | 
| [679] 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)[679] | 0s | 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] | 0s | passed | 
| [680] 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)[680] | 0.001s | passed | 
| [681] 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)[681] | 0.001s | passed | 
| [682] 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)[682] | 0s | passed | 
| [683] 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)[683] | 0.001s | passed | 
| [684] 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)[684] | 0.001s | passed | 
| [685] 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)[685] | 0s | passed | 
| [686] 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)[686] | 0.001s | passed | 
| [687] 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)[687] | 0s | passed | 
| [688] 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)[688] | 0s | passed | 
| [689] 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)[689] | 0.001s | 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] | 0s | passed | 
| [690] 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)[690] | 0s | passed | 
| [691] 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)[691] | 0.001s | passed | 
| [692] 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)[692] | 0.028s | passed | 
| [693] 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)[693] | 0.001s | passed | 
| [694] 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)[694] | 0s | passed | 
| [695] 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)[695] | 0s | passed | 
| [696] 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)[696] | 0.001s | passed | 
| [697] 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)[697] | 0s | passed | 
| [698] 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)[698] | 0.001s | passed | 
| [699] 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)[699] | 0s | 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_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)[700] | 0s | passed | 
| [701] 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)[701] | 0.001s | passed | 
| [702] 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)[702] | 0.001s | passed | 
| [703] 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)[703] | 0s | passed | 
| [704] 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)[704] | 0.001s | passed | 
| [705] elim_double_block_8, elim_double_block_8 {
\find(#allmodal ( (modal operator))\[{ ..
  {
    do #s
    while (#e);
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  do #s
  while (#e);
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[705] | 0.001s | passed | 
| [706] 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)[706] | 0s | passed | 
| [707] 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)[707] | 0s | passed | 
| [708] 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)[708] | 0.001s | passed | 
| [709] 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)[709] | 0.001s | 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] | 0s | passed | 
| [710] 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)[710] | 0s | passed | 
| [711] 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)[711] | 0.001s | passed | 
| [712] 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)[712] | 0s | passed | 
| [713] 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)[713] | 0s | passed | 
| [714] 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)[714] | 0.001s | passed | 
| [715] 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)[715] | 0s | passed | 
| [716] 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)[716] | 0.001s | passed | 
| [717] 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)[717] | 0.001s | passed | 
| [718] 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)[718] | 0s | passed | 
| [719] 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)[719] | 0s | 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] | 0s | passed | 
| [720] 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)[720] | 0.001s | passed | 
| [721] 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)[721] | 0s | passed | 
| [722] 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)[722] | 0.001s | passed | 
| [723] 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)[723] | 0.001s | passed | 
| [724] 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)[724] | 0s | passed | 
| [725] 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)[725] | 0.001s | passed | 
| [726] 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)[726] | 0s | passed | 
| [727] 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)[727] | 0s | passed | 
| [728] 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)[728] | 0.001s | passed | 
| [729] 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)[729] | 0s | 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_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)[730] | 0.001s | passed | 
| [731] 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)[731] | 0s | passed | 
| [732] 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)[732] | 0.004s | passed | 
| [733] 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)[733] | 0s | passed | 
| [734] 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)[734] | 0s | passed | 
| [735] 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)[735] | 0.001s | passed | 
| [736] 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)[736] | 0.002s | passed | 
| [737] 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)[737] | 0s | passed | 
| [738] 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)[738] | 0.001s | passed | 
| [739] 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)[739] | 0.001s | 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_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)[740] | 0.001s | passed | 
| [741] 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)[741] | 0s | passed | 
| [742] 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)[742] | 0s | passed | 
| [743] 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)[743] | 0.001s | passed | 
| [744] 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)[744] | 0s | passed | 
| [745] 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)[745] | 0.001s | passed | 
| [746] 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)[746] | 0s | passed | 
| [747] 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)[747] | 0.001s | passed | 
| [748] 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)[748] | 0s | passed | 
| [749] 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)[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] | 0s | passed | 
| [750] 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)[750] | 0.001s | passed | 
| [751] 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)[751] | 0s | passed | 
| [752] 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)[752] | 0.001s | passed | 
| [753] 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)[753] | 0s | passed | 
| [754] 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)[754] | 0s | passed | 
| [755] 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)[755] | 0.001s | passed | 
| [756] 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)[756] | 0s | passed | 
| [757] emptyEqualsSingleton, emptyEqualsSingleton {
\find(equals(empty,singleton(o,f)))
\replacewith(false) 
\heuristics(concrete)
Choices: programRules:Java} | testEquality(String, String)[757] | 0.001s | passed | 
| [758] emptyModality, emptyModality {
\find(#normal(post))
\replacewith(post) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[758] | 0.001s | passed | 
| [759] emptyModalityBoxTransaction, emptyModalityBoxTransaction {
\find(box_transaction(post))
\replacewith(true) 
\heuristics(simplify_prog)
Choices: programRules:Java} | 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] | 0s | passed | 
| [760] emptyModalityDiamondTransaction, emptyModalityDiamondTransaction {
\find(diamond_transaction(post))
\replacewith(false) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[760] | 0.002s | passed | 
| [761] emptyStatement, emptyStatement {
\find(#allmodal ( (modal operator))\[{ ..
  ;
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog_subset, simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[761] | 0s | passed | 
| [762] 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)[762] | 0.001s | passed | 
| [763] 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)[763] | 0.002s | passed | 
| [764] eqClose, eqClose {
\find(equals(s,s))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[764] | 0s | passed | 
| [765] eqSymm, eqSymm {
\find(equals(commEqLeft,commEqRight))
\replacewith(equals(commEqRight,commEqLeft)) 
\heuristics(order_terms)
Choices: true} | testEquality(String, String)[765] | 0s | passed | 
| [766] eqTermCut, eqTermCut {
\find(t)
\sameUpdateLevel\add [not(equals(t,s))]==>[] ;
\add [equals(t,s)]==>[] 
Choices: true} | testEquality(String, String)[766] | 0.002s | passed | 
| [767] 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)[767] | 0.006s | passed | 
| [768] 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)[768] | 0s | passed | 
| [769] eq_and, eq_and {
\find(and(phi,phi))
\replacewith(phi) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[769] | 0s | passed | 
| [76] andLeft, andLeft {
\find(and(b,c)==>)
\replacewith([b,c]==>[]) 
\heuristics(alpha)
Choices: true} | testEquality(String, String)[76] | 0s | passed | 
| [770] eq_and_2, eq_and_2 {
\find(and(and(psi,phi),phi))
\replacewith(and(psi,phi)) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[770] | 0s | passed | 
| [771] eq_eq, eq_eq {
\find(equiv(phi,phi))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[771] | 0.001s | passed | 
| [772] eq_imp, eq_imp {
\find(imp(phi,phi))
\replacewith(true) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[772] | 0s | passed | 
| [773] eq_or, eq_or {
\find(or(phi,phi))
\replacewith(phi) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[773] | 0s | passed | 
| [774] eq_or_2, eq_or_2 {
\find(or(or(psi,phi),phi))
\replacewith(or(psi,phi)) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[774] | 0.001s | passed | 
| [775] eq_sides, eq_sides {
\find(equals(i,j))
\replacewith(equals(sub(i,j),Z(0(#)))) 
Choices: true} | testEquality(String, String)[775] | 0s | passed | 
| [776] equalCharacters, equalCharacters {
\find(equals(C(iz1),C(iz2)))
\replacewith(equals(Z(iz1),Z(iz2))) 
\heuristics(stringsSimplify)
Choices: Strings:on} | testEquality(String, String)[776] | 0s | passed | 
| [777] 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)[777] | 0.001s | passed | 
| [778] 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)[778] | 0.002s | passed | 
| [779] 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)[779] | 0.001s | passed | 
| [77] andRight, andRight {
\find(==>and(b,c))
\replacewith([]==>[c]) ;
\replacewith([]==>[b]) 
\heuristics(beta)
Choices: true} | testEquality(String, String)[77] | 0.001s | passed | 
| [780] 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)[780] | 0.001s | passed | 
| [781] 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)[781] | 0s | passed | 
| [782] 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)[782] | 0s | passed | 
| [783] 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)[783] | 0s | passed | 
| [784] 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)[784] | 0.001s | passed | 
| [785] 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)[785] | 0.001s | passed | 
| [786] 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)[786] | 0s | passed | 
| [787] 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)[787] | 0s | passed | 
| [788] 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)[788] | 0.001s | passed | 
| [789] 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)[789] | 0s | 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_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)[790] | 0.001s | passed | 
| [791] 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)[791] | 0s | passed | 
| [792] 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)[792] | 0s | passed | 
| [793] 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)[793] | 0.001s | passed | 
| [794] equal_literals, equal_literals {
\find(equals(Z(iz),Z(jz)))
\replacewith(#eq(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[794] | 0.009s | passed | 
| [795] 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)[795] | 0.001s | passed | 
| [796] 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)[796] | 0s | passed | 
| [797] 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)[797] | 0.001s | passed | 
| [798] 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)[798] | 0.001s | passed | 
| [799] 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)[799] | 0.001s | passed | 
| [79] applyEqReverse, applyEqReverse {
\assumes ([equals(s,t1)]==>[]) 
\find(t1)
\sameUpdateLevel\replacewith(s) 
\heuristics(apply_auxiliary_eq)
Choices: true} | testEquality(String, String)[79] | 0.001s | 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.001s | passed | 
| [800] 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)[800] | 0.001s | passed | 
| [801] 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)[801] | 0.001s | passed | 
| [802] 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)[802] | 0.001s | passed | 
| [803] 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)[803] | 0.001s | passed | 
| [804] 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)[804] | 0.001s | passed | 
| [805] 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)[805] | 0.001s | passed | 
| [806] equiv_left, equiv_left {
\find(equiv(b,c)==>)
\replacewith([]==>[b,c]) ;
\replacewith([b,c]==>[]) 
\heuristics(beta)
Choices: true} | testEquality(String, String)[806] | 0.001s | passed | 
| [807] equiv_right, equiv_right {
\find(==>equiv(b,c))
\replacewith([c]==>[b]) ;
\replacewith([b]==>[c]) 
\heuristics(beta)
Choices: true} | testEquality(String, String)[807] | 0.004s | passed | 
| [808] 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)[808] | 0.001s | passed | 
| [809] 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)[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_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)[810] | 0.001s | passed | 
| [811] 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)[811] | 0.002s | passed | 
| [812] 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)[812] | 0s | passed | 
| [813] 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)[813] | 0.001s | passed | 
| [814] 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)[814] | 0s | passed | 
| [815] 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_sub… | testEquality(String, String)[815] | 0s | passed | 
| [816] 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)[816] | 0.001s | passed | 
| [817] 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)[817] | 0.001s | passed | 
| [818] 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)[818] | 0s | passed | 
| [819] 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)[819] | 0.002s | 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] | 0s | passed | 
| [820] 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)[820] | 0.001s | passed | 
| [821] 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)[821] | 0.001s | passed | 
| [822] 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)[822] | 0.001s | passed | 
| [823] 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)[823] | 0.001s | passed | 
| [824] 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)[824] | 0s | passed | 
| [825] 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)[825] | 0s | passed | 
| [826] 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)[826] | 0.001s | passed | 
| [827] 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)[827] | 0.001s | passed | 
| [828] 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)[828] | 0s | passed | 
| [829] 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)[829] | 0s | 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] | 0s | passed | 
| [830] 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)[830] | 0.001s | passed | 
| [831] 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)[831] | 0.001s | passed | 
| [832] 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)[832] | 0.001s | passed | 
| [833] 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)[833] | 0s | passed | 
| [834] 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)[834] | 0s | passed | 
| [835] 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)[835] | 0.001s | passed | 
| [836] 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)[836] | 0s | passed | 
| [837] 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)[837] | 0.001s | passed | 
| [838] 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)[838] | 0.021s | passed | 
| [839] 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)[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] 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)[840] | 0.001s | passed | 
| [841] 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)[841] | 0.001s | passed | 
| [842] 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)[842] | 0s | passed | 
| [843] exLeft, exLeft {
\find(exists{u (variable)}(b)==>)
\replacewith([subst{u (variable)}(sk,b)]==>[]) 
\heuristics(delta)
Choices: true} | testEquality(String, String)[843] | 0s | passed | 
| [844] exRight, exRight {
\find(==>exists{u (variable)}(b))
\add []==>[subst{u (variable)}(t,b)] 
\heuristics(gamma)
Choices: true} | testEquality(String, String)[844] | 0.001s | passed | 
| [845] 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)[845] | 0s | passed | 
| [846] 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)[846] | 0s | passed | 
| [847] 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)[847] | 0.001s | passed | 
| [848] 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)[848] | 0s | passed | 
| [849] 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)[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] 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)[850] | 0s | passed | 
| [851] 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)[851] | 0s | passed | 
| [852] ex_unused, ex_unused {
\find(exists{u (variable)}(b))
\varcond(\notFreeIn(u (variable), b (formula)))
\replacewith(b) 
\heuristics(elimQuantifier)
Choices: true} | testEquality(String, String)[852] | 0.001s | passed | 
| [853] 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)[853] | 0s | passed | 
| [854] 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)[854] | 0s | passed | 
| [855] 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)[855] | 0s | passed | 
| [856] 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)[856] | 0.001s | passed | 
| [857] 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)[857] | 0.001s | passed | 
| [858] 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)[858] | 0.001s | passed | 
| [859] 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)[859] | 0.001s | 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] 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)[860] | 0s | passed | 
| [861] 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)[861] | 0.001s | passed | 
| [862] 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)[862] | 0.001s | passed | 
| [863] 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)[863] | 0s | passed | 
| [864] 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)[864] | 0s | passed | 
| [865] 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)[865] | 0.001s | passed | 
| [866] 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)[866] | 0s | passed | 
| [867] 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)[867] | 0s | passed | 
| [868] 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)[868] | 0.001s | passed | 
| [869] 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)[869] | 0.001s | 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] | 0.001s | passed | 
| [870] 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)[870] | 0.001s | passed | 
| [871] 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)[871] | 0s | passed | 
| [872] 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)[872] | 0.001s | passed | 
| [873] 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)[873] | 0.001s | passed | 
| [874] 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)[874] | 0s | passed | 
| [875] 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)[875] | 0s | passed | 
| [876] 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)[876] | 0.001s | passed | 
| [877] 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(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[877] | 0.001s | passed | 
| [878] 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)[878] | 0s | passed | 
| [879] 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)[879] | 0.001s | 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.001s | passed | 
| [880] 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)[880] | 0.001s | passed | 
| [881] 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)[881] | 0.001s | passed | 
| [882] 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)[882] | 0.001s | passed | 
| [883] 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)[883] | 0s | passed | 
| [884] 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)[884] | 0.001s | passed | 
| [885] 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)[885] | 0.001s | passed | 
| [886] 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)[886] | 0s | passed | 
| [887] 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)[887] | 0.001s | passed | 
| [888] 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)[888] | 0.001s | passed | 
| [889] 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)[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] 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)[890] | 0s | passed | 
| [891] 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)[891] | 0.001s | passed | 
| [892] 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)[892] | 0s | passed | 
| [893] 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)[893] | 0s | passed | 
| [894] 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)[894] | 0.001s | passed | 
| [895] execEmpty, execEmpty {
\find(#allmodal ( (modal operator))\[{ ..
  exec {}#cs
... }\] (post))
\replacewith(#allmodal(post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[895] | 0s | passed | 
| [896] 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;
    #slist1
  } else {
    exec {
… | testEquality(String, String)[896] | 0s | passed | 
| [897] execNoCcatch, execNoCcatch {
\find(#allmodal ( (modal operator))\[{ ..
  exec {
    #slist
  }
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ ..
  {
    #slist
  }
... }\] (post)) 
\heuristics(simplify_prog)
Choices: programRules:Java} | testEquality(String, String)[897] | 0.001s | passed | 
| [898] 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)[898] | 0.001s | passed | 
| [899] 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)[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.002s | passed | 
| [900] 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)[900] | 0s | passed | 
| [901] 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)[901] | 0.001s | passed | 
| [902] 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)[902] | 0s | passed | 
| [903] 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)[903] | 0s | passed | 
| [904] 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)[904] | 0.001s | passed | 
| [905] 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)[905] | 0s | passed | 
| [906] 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)[906] | 0s | passed | 
| [907] 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)[907] | 0.002s | passed | 
| [908] 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)[908] | 0s | passed | 
| [909] 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)[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] 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)[910] | 0.001s | passed | 
| [911] 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)[911] | 0s | passed | 
| [912] 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)[912] | 0s | passed | 
| [913] 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)[913] | 0.001s | passed | 
| [914] 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)[914] | 0s | passed | 
| [915] 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)[915] | 0s | passed | 
| [916] 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)[916] | 0.001s | passed | 
| [917] 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)[917] | 0.001s | passed | 
| [918] 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)[918] | 0.001s | passed | 
| [919] 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)[919] | 0s | 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] | 0.001s | passed | 
| [920] 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)[920] | 0s | passed | 
| [921] 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)[921] | 0.001s | passed | 
| [922] 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)[922] | 0.002s | passed | 
| [923] 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)[923] | 0s | passed | 
| [924] 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)[924] | 0s | passed | 
| [925] 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)[925] | 0.001s | passed | 
| [926] expIsNaN, expIsNaN {
\find(expDouble(arg))
\add [imp(doubleIsNaN(arg),doubleIsNaN(expDouble(arg)))]==>[] 
\heuristics(userTaclets1)
Choices: true} | testEquality(String, String)[926] | 0s | passed | 
| [927] 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)[927] | 0s | passed | 
| [928] expandInRangeByte, expandInRangeByte {
\find(inRangeByte(i))
\replacewith(and(leq(i,byte_MAX),leq(byte_MIN,i))) 
\heuristics(delayedExpansion, defOps_expandRanges)
Choices: true} | testEquality(String, String)[928] | 0.001s | passed | 
| [929] expandInRangeChar, expandInRangeChar {
\find(inRangeChar(i))
\replacewith(and(leq(i,char_MAX),leq(char_MIN,i))) 
\heuristics(delayedExpansion, defOps_expandRanges)
Choices: true} | testEquality(String, String)[929] | 0s | 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] | 0s | passed | 
| [930] expandInRangeInt, expandInRangeInt {
\find(inRangeInt(i))
\replacewith(and(leq(i,int_MAX),leq(int_MIN,i))) 
\heuristics(delayedExpansion, defOps_expandRanges)
Choices: true} | testEquality(String, String)[930] | 0.001s | passed | 
| [931] expandInRangeLong, expandInRangeLong {
\find(inRangeLong(i))
\replacewith(and(leq(i,long_MAX),leq(long_MIN,i))) 
\heuristics(delayedExpansion, defOps_expandRanges)
Choices: true} | testEquality(String, String)[931] | 0.001s | passed | 
| [932] expandInRangeShort, expandInRangeShort {
\find(inRangeShort(i))
\replacewith(and(leq(i,short_MAX),leq(short_MIN,i))) 
\heuristics(delayedExpansion, defOps_expandRanges)
Choices: true} | testEquality(String, String)[932] | 0s | passed | 
| [933] expand_addJint, expand_addJint {
\find(addJint(i,i1))
\replacewith(moduloInt(add(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[933] | 0.001s | passed | 
| [934] expand_addJlong, expand_addJlong {
\find(addJlong(i,i1))
\replacewith(moduloLong(add(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[934] | 0s | passed | 
| [935] expand_divJint, expand_divJint {
\find(divJint(i,i1))
\replacewith(moduloInt(jdiv(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[935] | 0s | passed | 
| [936] expand_divJlong, expand_divJlong {
\find(divJlong(i,i1))
\replacewith(moduloLong(jdiv(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[936] | 0.001s | passed | 
| [937] expandInByte, expandInByte {
\find(inByte(i))
\replacewith(true) 
\heuristics(concrete)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[937] | 0.001s | passed | 
| [938] expandInChar, expandInChar {
\find(inChar(i))
\replacewith(true) 
\heuristics(concrete)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[938] | 0.001s | passed | 
| [939] expandInInt, expandInInt {
\find(inInt(i))
\replacewith(true) 
\heuristics(concrete)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[939] | 0s | 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] | 0s | passed | 
| [940] expandInLong, expandInLong {
\find(inLong(i))
\replacewith(true) 
\heuristics(concrete)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[940] | 0.001s | passed | 
| [941] expandInShort, expandInShort {
\find(inShort(i))
\replacewith(true) 
\heuristics(concrete)
Choices: (programRules:Java & (intRules:arithmeticSemanticsIgnoringOF | intRules:arithmeticSemanticsCheckingOF))} | testEquality(String, String)[941] | 0s | passed | 
| [942] expand_modJint, expand_modJint {
\find(modJint(i,i1))
\replacewith(moduloInt(jmod(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[942] | 0s | passed | 
| [943] expand_modJlong, expand_modJlong {
\find(modJlong(i,i1))
\replacewith(moduloLong(jmod(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[943] | 0.001s | passed | 
| [944] 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)[944] | 0s | passed | 
| [945] expand_moduloChar, expand_moduloChar {
\find(moduloChar(i))
\replacewith(mod(i,add(char_MAX,Z(1(#))))) 
\heuristics(delayedExpansion, defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[945] | 0.001s | passed | 
| [946] 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)[946] | 0s | passed | 
| [947] 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)[947] | 0s | passed | 
| [948] 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)[948] | 0.001s | passed | 
| [949] expand_mulJint, expand_mulJint {
\find(mulJint(i,i1))
\replacewith(moduloInt(mul(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[949] | 0s | 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] | 0s | passed | 
| [950] expand_mulJlong, expand_mulJlong {
\find(mulJlong(i,i1))
\replacewith(moduloLong(mul(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[950] | 0.001s | passed | 
| [951] expand_subJint, expand_subJint {
\find(subJint(i,i1))
\replacewith(moduloInt(sub(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[951] | 0.001s | passed | 
| [952] expand_subJlong, expand_subJlong {
\find(subJlong(i,i1))
\replacewith(moduloLong(sub(i,i1))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[952] | 0s | passed | 
| [953] expand_unaryMinusJint, expand_unaryMinusJint {
\find(unaryMinusJint(i))
\replacewith(moduloInt(neg(i))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[953] | 0.001s | passed | 
| [954] expand_unaryMinusJlong, expand_unaryMinusJlong {
\find(unaryMinusJlong(i))
\replacewith(moduloLong(neg(i))) 
\heuristics(defOps_expandJNumericOp)
Choices: true} | testEquality(String, String)[954] | 0s | passed | 
| [955] false_right, false_right {
\find(==>false)
\replacewith([]==>[]) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[955] | 0s | passed | 
| [956] 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)[956] | 0.001s | passed | 
| [957] finishJavaCardTransactionBox, finishJavaCardTransactionBox {
\find(==>box_transaction\[{ ..
  #finishJavaCardTransaction;
... }\] (post))
\replacewith([]==>[box(post)]) 
\heuristics(simplify_prog)
Choices: (programRules:Java & JavaCard:on)} | testEquality(String, String)[957] | 0s | passed | 
| [958] finishJavaCardTransactionDiamond, finishJavaCardTransactionDiamond {
\find(==>diamond_transaction\[{ ..
  #finishJavaCardTransaction;
... }\] (post))
\replacewith([]==>[diamond(post)]) 
\heuristics(simplify_prog)
Choices: (programRules:Java & JavaCard:on)} | testEquality(String, String)[958] | 0.001s | passed | 
| [959] firstOfPair, firstOfPair {
\find(first(pair(t,t1)))
\replacewith(t) 
\heuristics(concrete)
Choices: true} | testEquality(String, String)[959] | 0.001s | 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] 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)[960] | 0s | passed | 
| [961] 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)[961] | 0.001s | passed | 
| [962] 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)[962] | 0.001s | passed | 
| [963] 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)[963] | 0s | passed | 
| [964] geq_diff_1, geq_diff_1 {
\find(geq(add(i0,Z(1(#))),i0))
\replacewith(true) 
\heuristics(int_arithmetic)
Choices: true} | testEquality(String, String)[964] | 0.001s | passed | 
| [965] geq_to_leq, geq_to_leq {
\find(geq(i,i0))
\replacewith(leq(i0,i)) 
Choices: true} | testEquality(String, String)[965] | 0s | passed | 
| [966] geq_to_lt, geq_to_lt {
\find(geq(i,j))
\replacewith(not(lt(i,j))) 
Choices: true} | testEquality(String, String)[966] | 0s | passed | 
| [967] 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)[967] | 0.001s | passed | 
| [968] 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)[968] | 0s | passed | 
| [969] 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)[969] | 0.001s | 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] | 0s | passed | 
| [970] 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)[970] | 0.001s | passed | 
| [971] getOfMapEmpty, getOfMapEmpty {
\find(mapGet(mapEmpty,x))
\sameUpdateLevel\replacewith(mapUndef) 
\heuristics(simplify)
Choices: true} | testEquality(String, String)[971] | 0s | passed | 
| [972] 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)[972] | 0.001s | passed | 
| [973] 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)[973] | 0.001s | passed | 
| [974] 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)[974] | 0s | passed | 
| [975] 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)[975] | 0.001s | passed | 
| [976] 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)[976] | 0s | passed | 
| [977] 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)[977] | 0s | passed | 
| [978] 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)[978] | 0.001s | passed | 
| [979] 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)[979] | 0s | 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] 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)[980] | 0.001s | passed | 
| [981] 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)[981] | 0.001s | passed | 
| [982] 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)[982] | 0s | passed | 
| [983] 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)[983] | 0.001s | passed | 
| [984] 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)[984] | 0s | passed | 
| [985] getOfSeqSingletonConcrete, getOfSeqSingletonConcrete {
\find(alpha::seqGet(seqSingleton(x),Z(0(#))))
\replacewith(alpha::cast(x)) 
\heuristics(concrete)
Choices: sequences:on} | testEquality(String, String)[985] | 0.001s | passed | 
| [986] 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)[986] | 0s | passed | 
| [987] 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)[987] | 0.001s | passed | 
| [988] 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)[988] | 0s | passed | 
| [989] greater, greater {
\find(gt(i,i0))
\replacewith(lt(i0,i)) 
Choices: true} | testEquality(String, String)[989] | 0s | 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] | 0s | passed | 
| [990] 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)[990] | 0.001s | passed | 
| [991] 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)[991] | 0s | passed | 
| [992] 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)[992] | 0s | passed | 
| [993] 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)[993] | 0.001s | passed | 
| [994] 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)[994] | 0s | passed | 
| [995] 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)[995] | 0s | passed | 
| [996] greater_literals, greater_literals {
\find(gt(Z(iz),Z(jz)))
\replacewith(#greater(Z(iz),Z(jz))) 
\heuristics(simplify_literals)
Choices: true} | testEquality(String, String)[996] | 0.001s | passed | 
| [997] 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)[997] | 0s | passed | 
| [998] 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)[998] | 0.001s | passed | 
| [999] 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)[999] | 0.001s | 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.022s | 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.002s | passed |