﻿%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Graphe - successeur (suc), meme niveau (mNiv),
%  descendants des sommets du  meme niveau (col)
%  descendants des descendants des sommets du  meme niveau (cocol)
%  predecesseur Immédiat (predI), predecesseur (pred)
%  predecesseur immédiat de predI (predi2)


gr(a,b,2).
gr(a,g,6).
gr(b,e,2).
gr(b,c,7).
gr(g,e,1).
gr(g,h,4).
gr(e,f,2).
gr(f,c,3).
gr(f,h,2).
gr(c,d,3).
gr(h,d,2).

% chemin de longueur 1
chemin(X,Y) :-
            gr(X,Y,_).

% chemin de longueur n
chemin(X,Y) :-
            gr(X,Z,_), chemin(Z,Y).
            
% arc unique
distance(X,Y,D) :- gr(X,Y,D).
% arc multiple
distance(X,Y,D) :- gr(X,Z,D1), distance(Z,Y,D2), D is D1 + D2.