(VAR x y z )
(RULES 
 trans(trans(x,y), z) ->  trans(x,trans(y,z))
 trans(i(x), x) ->  one
 trans(one, x) ->  x
 trans(f(x), f(y)) ->  f(trans(x,y))
 trans(g(x), g(y)) ->  g(trans(x,y))
 trans(h(x), h(y)) ->  h(trans(x,y))
 trans(f(x), g(y)) ->  trans(g(y), f(x))
 trans(g(x), h(y)) ->  trans(h(y), g(x))
 trans(h(x), f(y)) ->  trans(f(y), h(x))
)