%pgdc/3
pgdc(A,B , PGDC) :- infe(A,B),
      moins(B,A , NB),
      pgdc(A,NB , PGDC).
pgdc(A,B , PGDC) :- infe(B,A),
      moins(A,B , NA),
      pgdc(NA,B , PGDC).
pgdc(A,A , A) :- nat(A).


/*
Exemples :
?- HUIT = s(s(s(s(s(s(s(s(zero)))))))) ,
QUINZE = s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(zero))))))))))))))) ,
pgdc(HUIT, QUINZE , UN ).

HUIT = s(s(s(s(s(s(s(s(zero))))))))
QUINZE = s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(zero)))))))))))))))
UN = s(zero)
yes
?- DOUZE = s(s(s(s(s(s(s(s(s(s(s(s(zero)))))))))))) ,
SEIZE = s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(zero)))))))))))))))) ,
pgdc(DOUZE, SEIZE , QUATRE ).

DOUZE = s(s(s(s(s(s(s(s(s(s(s(s(zero))))))))))))
SEIZE = s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(zero))))))))))))))))
QUATRE = s(s(s(s(zero))))
yes
*/