raise"shave_equalities: different size between new and old input op #{res.inputs.length} should be #{op.inputs.length}"unlessres.inputs.length==op.inputs.length
raise"shave_equalities: different size between new and old outputs op"unlessres.outputs.length==op.outputs.length
res.inputs.eachdo|a|
raise"atom non existing in new_atoms set (input of #{res}, #{a})"unlessSet.new(new_atoms).include?(a)
end
new_operators.push(res)
end
return[new_atoms,new_operators]
end
##
# returns new xors that can be used to improve the relaxations