Unification

Unify, if possible, the following pairs of predicates:

P( g(h(x)) , f(g(h(b))) , f(x) )
P(    y    , f(y)       , z    )

P( g(h(x)) , f(h(y)) ,  y   )
P( g(z)    , f(z)    , h(a) )

P(    x    , h(b) , h(x)          )
P( f(g(y)) ,  y   , h(f(g(h(a)))) )

P(   x  , g(x)    , z    )
P( f(y) , g(f(b)) , h(y) )

P( f(g(x)) , g(b) , h(x) )
P( f(y)    ,  y   , h(c) )

P(    x    , h(x)       , h(y) )
P( f(g(z)) , h(f(g(b))) , h(z) )