/* Solution correspondant à la première modélisation */
send(LD):-
    /* On définit les variables et leurs domaines */

    LD=[S,E,N,D,M,O,R,Y],
    fd_domain(LD,0,9),
    fd_domain([S,M],1,9),

    /* On pose les contraintes */
    fd_all_different(LD),
       1000*S+100*E+10*N+D + 1000*M+100*O+10*R+E
    #= 10000*M+1000*O+100*N+10*E+Y,

    /* On énumère les solutions */
    fd_labeling(LD).

/* Solution correspondant à la deuxième modélisation */
send2(LD):-
    /* On définit les variables et leurs domaines */
    LD=[S,E,N,D,M,O,R,Y],
    fd_domain(LD,0,9),
    fd_domain([S,M],1,9),
    fd_domain([R1,R2,R3],0,1),

    /* On pose les contraintes */
    fd_all_different(LD),
    D+E #= Y + 10*R1,
    R1+N+R #= E + 10*R2,
    R2+E+O #= N + 10*R3,
    R3+S+M #= O +10*M,

    /* On énumère les solutions */
    fd_labeling(LD).