-------------------------------------------------------------------------------Si vogliono risolvere problemi di crittoaritmetica del tipo A B + A B + P Q = oppure P Q = ----- ----- X Y Q Aassegnando ad ogni lettera una cifra diversa. A questo scopo si vuole definirela relazionesum(N1,N2,N) "Sommando la lista di caratteri N1 alla lista di caratteri N2 si ottiene la lista di caratteri N e ad ogni carattere incognito viene assegnata una cifra diversa"Per semplicita` si considerano N1, N2 ed N tutte della stessa lunghezza.Tra gli operatori e le relazioni predefinite del Prolog possono sicuramenteessere utili:nonvar(X) "X non e` una variabile (oppure e` una variabile gia` legata)"A // B "Divisione intera tra A e B"A mod B "Resto della divisione intera tra A e B"Esempi di utilizzo di sum(N1,N2,N): A B + C D = ----- E F?- sum([A,B],[C,D],[E,F]).A = 4B = 1C = 5D = 2E = 9F = 3 Yes D O N A L D + G E R A L D = ------------- R O B E R T?- sum([D,O,N,A,L,D],[G,E,R,A,L,D],[R,O,B,E,R,T]).D = 5O = 2N = 6A = 4L = 8G = 1E = 9R = 7B = 3T = 0 ;No S E N D + M O R E = ----------- M O N E Y?- sum([0,S,E,N,D],[0,M,O,R,E],[M,O,N,E,Y]).S = 7E = 5N = 3D = 1M = 0O = 8R = 2Y = 6Yes-------------------------------------------------------------------------------Determinare quante soluzioni esistono per il primo degli esempi indicati; seutile allo scopo, impiegare anche predicati predefiniti non ancora utilizzati.