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