

inshi(L) :- L = [X11,X21,X31,X41,X51,
                 X12,X22,X32,X42,X52,
                 X13,X23,X33,X43,X53,
                 X14,X24,X34,X44,X54,
		 X15,X25,X35,X45,X55],
            fd_domain(L,1,9),
            fd_all_different([X11,X12,X13,X14,X15]),
            fd_all_different([X21,X22,X23,X24,X25]),
            fd_all_different([X31,X32,X33,X34,X35]),
            fd_all_different([X41,X42,X43,X44,X45]),
            fd_all_different([X51,X52,X53,X54,X55]),
            fd_all_different([X11,X21,X31,X41,X51]),
            fd_all_different([X12,X22,X32,X42,X52]),
            fd_all_different([X13,X23,X33,X43,X53]),
            fd_all_different([X14,X24,X34,X44,X54]),
            fd_all_different([X15,X25,X35,X45,X55]),
            X11 #= 5, X31*X41 #= 2, X32*X42 #= 4, X33 #= 4, 
            X43*X53 #= 15, X34*X44 #= 15, X15*X25*X35*X45 #= 120,
            X21*X22 #= 15, X51*X52 #= 12, X12*X13*X14 #= 8,
            X23*X24 #= 2, X54*X55 #= 2,
            fd_labeling(L).

            

