:- use_module(library(clpfd)).

smm(L) :-
        L = [S,E,N,D,M,O,R,Y],

        % Wertebereich festlegen:
        domain(L,0,9), % SICStus-Prolog
        %L ins 0..9, % SWI-Prolog

        % Constraints festlegen:
        S #> 0, M #> 0,
        all_different(L),
                       1000 * S + 100 * E + 10 * N + D
                     + 1000 * M + 100 * O + 10 * R + E
        #= 10000 * M + 1000 * O + 100 * N + 10 * E + Y,

        % Werte aufzählen:
        labeling([],L).


