Problem: Write a Prolog program for solving the crypt-arithmetic puzzle AM + PM = DAY. That is, write predicate solve([A, M, P, D, Y]) which binds each of the variables [A, M, P, D, Y] with values from 0 to 9 such that it satisfies the equation AM + PM = DAY. Make sure that all the variables have a different value assignment and A, P, D cannot take the value 0. Be detailed in your response and provide examples also.