fonction upg( t1, t2: termes) rend l'upg de t1 et t2 ou echec si t1 = t2 alors rendre(substitution vide) finsi si t2 est une variable alors permuter t1 et t2 finsi si t1 est une variable alors si t2 contient t1 alors rendre(echec) /* test d'occurrence */ sinon rendre({ t1 <- t2 }) finsi sinon si t1 et t2 sont 2 structures de meme symbole et de meme arité alors soit t1 = symb(u_1, ..., u_n) et t2 = symb(v_1, ..., v_n) s <- substitution vide pour i de 1 a n faire s' <- upg( s(u_i), s(v_i) ) si s' = echec alors rendre(echec) finsi s <- s'(s) finfaire sinon rendre(echec) finsi finsi