(defun money () (let* ((s (an-integer-betweenv 1 9)) (e (an-integer-betweenv 0 9)) (n (an-integer-betweenv 0 9)) (d (an-integer-betweenv 0 9)) (m (an-integer-betweenv 1 9)) (o (an-integer-betweenv 0 9)) (r (an-integer-betweenv 0 9)) (y (an-integer-betweenv 0 9)) (sol (list s e n d m o r y))) (assert! (notv (memberv s (list e n d m o r y)))) (assert! (notv (memberv e (list s n d m o r y)))) (assert! (notv (memberv n (list s e d m o r y)))) (assert! (notv (memberv d (list s e n m o r y)))) (assert! (notv (memberv m (list s e n d o r y)))) (assert! (notv (memberv o (list s e n d m r y)))) (assert! (notv (memberv r (list s e n d m o y)))) (assert! (notv (memberv y (list s e n d m o r)))) (assert! (=v (+v (*v 1000 s) (*v 100 e) (*v 10 n) d (*v 1000 m) (*v 100 o) (*v 10 r) e) (+v (*v 10000 m) (*v 1000 o) (*v 100 n) (*v 10 e) y))) (one-value (solution sol (static-ordering #'linear-force))))) (defun money2 () (let* ((s (an-integer-betweenv 1 9)) (e (an-integer-betweenv 0 9)) (n (an-integer-betweenv 0 9)) (d (an-integer-betweenv 0 9)) (m (an-integer-betweenv 1 9)) (o (an-integer-betweenv 0 9)) (r (an-integer-betweenv 0 9)) (y (an-integer-betweenv 0 9)) (sol (list s e n d m o r y))) (assert! (/=v s e n d m o r y)) (assert! (=v (+v (*v 1000 s) (*v 100 e) (*v 10 n) d (*v 1000 m) (*v 100 o) (*v 10 r) e) (+v (*v 10000 m) (*v 1000 o) (*v 100 n) (*v 10 e) y))) (one-value (solution sol (static-ordering #'linear-force))))) (defun money3 () (let* ((s (an-integer-betweenv 1 9)) (e (an-integer-betweenv 0 9)) (n (an-integer-betweenv 0 9)) (d (an-integer-betweenv 0 9)) (m (an-integer-betweenv 1 9)) (o (an-integer-betweenv 0 9)) (r (an-integer-betweenv 0 9)) (y (an-integer-betweenv 0 9)) (c1 (an-integer-betweenv 0 1)) (c2 (an-integer-betweenv 0 1)) (c3 (an-integer-betweenv 0 1)) (sol (list s e n d m o r y))) (assert! (/=v s e n d m o r y)) (assert! (=v (+v e d) (+v y (*v 10 c1)))) (assert! (=v (+v c1 n r) (+v e (*v 10 c2)))) (assert! (=v (+v c2 e o) (+v n (*v 10 c3)))) (assert! (=v (+v c3 s m) (+v o (*v 10 m)))) (one-value (solution sol (static-ordering #'linear-force))))) (defun money4 () (let* ((s (an-integer-betweenv 1 9)) (e (an-integer-betweenv 0 9)) (n (an-integer-betweenv 0 9)) (d (an-integer-betweenv 0 9)) (m (an-integer-betweenv 1 9)) (o (an-integer-betweenv 0 9)) (r (an-integer-betweenv 0 9)) (y (an-integer-betweenv 0 9)) (c1 (an-integer-betweenv 0 1)) (c2 (an-integer-betweenv 0 1)) (c3 (an-integer-betweenv 0 1)) (sol (list s e n d m o r y))) (assert! (notv (memberv s (list e n d m o r y)))) (assert! (notv (memberv e (list s n d m o r y)))) (assert! (notv (memberv n (list s e d m o r y)))) (assert! (notv (memberv d (list s e n m o r y)))) (assert! (notv (memberv m (list s e n d o r y)))) (assert! (notv (memberv o (list s e n d m r y)))) (assert! (notv (memberv r (list s e n d m o y)))) (assert! (notv (memberv y (list s e n d m o r)))) (assert! (=v (+v e d) (+v y (*v 10 c1)))) (assert! (=v (+v c1 n r) (+v e (*v 10 c2)))) (assert! (=v (+v c2 e o) (+v n (*v 10 c3)))) (assert! (=v (+v c3 s m) (+v o (*v 10 m)))) (one-value (solution sol (static-ordering #'linear-force)))))