:- use_module(library(clpfd)).

%Une liste est soit vide
%	soit un élément suivi d'une liste

%les arcs du graphe associés

arc(s,v,1).
arc(s,w,4).
arc(v,w,2).
arc(v,t,6).
arc(w,t,3).

%chemin(S1,S2,Chemin,Cout)

chemin(S1,S1,[S1],0).

%un arc
%chemin(S1,S2,[S1,S2],Cout) :-
%    arc(S1,S2,Cout).

%un arc et un chemin
chemin(S1,S2,[S1|CheminXS2],Cout) :-
    arc(S1,X,CoutArc),
    chemin(X,S2,CheminXS2,CoutXS2),
    Cout #= CoutArc + CoutXS2.