;http://norvig.com/sudoku.html took 1439 secs ; see board below ;--00 thru 22 (declare-const b00 Int) (declare-const b01 Int) (declare-const b02 Int) (declare-const b10 Int) (declare-const b11 Int) (declare-const b12 Int) (declare-const b20 Int) (declare-const b21 Int) (declare-const b22 Int) ;--03 thru 25 (declare-const b03 Int) (declare-const b04 Int) (declare-const b05 Int) (declare-const b13 Int) (declare-const b14 Int) (declare-const b15 Int) (declare-const b23 Int) (declare-const b24 Int) (declare-const b25 Int) ;--06 thru 28 (declare-const b06 Int) (declare-const b07 Int) (declare-const b08 Int) (declare-const b16 Int) (declare-const b17 Int) (declare-const b18 Int) (declare-const b26 Int) (declare-const b27 Int) (declare-const b28 Int) ;--30 thru 52 (declare-const b30 Int) (declare-const b31 Int) (declare-const b32 Int) (declare-const b40 Int) (declare-const b41 Int) (declare-const b42 Int) (declare-const b50 Int) (declare-const b51 Int) (declare-const b52 Int) ;--33 thru 55 (declare-const b33 Int) (declare-const b34 Int) (declare-const b35 Int) (declare-const b43 Int) (declare-const b44 Int) (declare-const b45 Int) (declare-const b53 Int) (declare-const b54 Int) (declare-const b55 Int) ;--36 thru 58 (declare-const b36 Int) (declare-const b37 Int) (declare-const b38 Int) (declare-const b46 Int) (declare-const b47 Int) (declare-const b48 Int) (declare-const b56 Int) (declare-const b57 Int) (declare-const b58 Int) ;--60 thru 82 (declare-const b60 Int) (declare-const b61 Int) (declare-const b62 Int) (declare-const b70 Int) (declare-const b71 Int) (declare-const b72 Int) (declare-const b80 Int) (declare-const b81 Int) (declare-const b82 Int) ;--63 thru 85 (declare-const b63 Int) (declare-const b64 Int) (declare-const b65 Int) (declare-const b73 Int) (declare-const b74 Int) (declare-const b75 Int) (declare-const b83 Int) (declare-const b84 Int) (declare-const b85 Int) ;--66 thru 88 (declare-const b66 Int) (declare-const b67 Int) (declare-const b68 Int) (declare-const b76 Int) (declare-const b77 Int) (declare-const b78 Int) (declare-const b86 Int) (declare-const b87 Int) (declare-const b88 Int) ;-- assert ranges ;--00 thru 22 (assert (>= b00 1)) (assert (>= b01 1)) (assert (>= b02 1)) (assert (>= b10 1)) (assert (>= b11 1)) (assert (>= b12 1)) (assert (>= b20 1)) (assert (>= b21 1)) (assert (>= b22 1)) ;--03 thru 25 (assert (>= b03 1)) (assert (>= b04 1)) (assert (>= b05 1)) (assert (>= b13 1)) (assert (>= b14 1)) (assert (>= b15 1)) (assert (>= b23 1)) (assert (>= b24 1)) (assert (>= b25 1)) ;--06 thru 28 (assert (>= b06 1)) (assert (>= b07 1)) (assert (>= b08 1)) (assert (>= b16 1)) (assert (>= b17 1)) (assert (>= b18 1)) (assert (>= b26 1)) (assert (>= b27 1)) (assert (>= b28 1)) ;--30 thru 52 (assert (>= b30 1)) (assert (>= b31 1)) (assert (>= b32 1)) (assert (>= b40 1)) (assert (>= b41 1)) (assert (>= b42 1)) (assert (>= b50 1)) (assert (>= b51 1)) (assert (>= b52 1)) ;--33 thru 55 (assert (>= b33 1)) (assert (>= b34 1)) (assert (>= b35 1)) (assert (>= b43 1)) (assert (>= b44 1)) (assert (>= b45 1)) (assert (>= b53 1)) (assert (>= b54 1)) (assert (>= b55 1)) ;--36 thru 58 (assert (>= b36 1)) (assert (>= b37 1)) (assert (>= b38 1)) (assert (>= b46 1)) (assert (>= b47 1)) (assert (>= b48 1)) (assert (>= b56 1)) (assert (>= b57 1)) (assert (>= b58 1)) ;--60 thru 82 (assert (>= b60 1)) (assert (>= b61 1)) (assert (>= b62 1)) (assert (>= b70 1)) (assert (>= b71 1)) (assert (>= b72 1)) (assert (>= b80 1)) (assert (>= b81 1)) (assert (>= b82 1)) ;--63 thru 85 (assert (>= b63 1)) (assert (>= b64 1)) (assert (>= b65 1)) (assert (>= b73 1)) (assert (>= b74 1)) (assert (>= b75 1)) (assert (>= b83 1)) (assert (>= b84 1)) (assert (>= b85 1)) ;--66 thru 88 (assert (>= b66 1)) (assert (>= b67 1)) (assert (>= b68 1)) (assert (>= b76 1)) (assert (>= b77 1)) (assert (>= b78 1)) (assert (>= b86 1)) (assert (>= b87 1)) (assert (>= b88 1)) ;-- assert ranges <= 8 ;--00 thru 22 (assert (<= b00 9)) (assert (<= b01 9)) (assert (<= b02 9)) (assert (<= b10 9)) (assert (<= b11 9)) (assert (<= b12 9)) (assert (<= b20 9)) (assert (<= b21 9)) (assert (<= b22 9)) ;--03 thru 25 (assert (<= b03 9)) (assert (<= b04 9)) (assert (<= b05 9)) (assert (<= b13 9)) (assert (<= b14 9)) (assert (<= b15 9)) (assert (<= b23 9)) (assert (<= b24 9)) (assert (<= b25 9)) ;--06 thru 28 (assert (<= b06 9)) (assert (<= b07 9)) (assert (<= b08 9)) (assert (<= b16 9)) (assert (<= b17 9)) (assert (<= b18 9)) (assert (<= b26 9)) (assert (<= b27 9)) (assert (<= b28 9)) ;--30 thru 52 (assert (<= b30 9)) (assert (<= b31 9)) (assert (<= b32 9)) (assert (<= b40 9)) (assert (<= b41 9)) (assert (<= b42 9)) (assert (<= b50 9)) (assert (<= b51 9)) (assert (<= b52 9)) ;--33 thru 55 (assert (<= b33 9)) (assert (<= b34 9)) (assert (<= b35 9)) (assert (<= b43 9)) (assert (<= b44 9)) (assert (<= b45 9)) (assert (<= b53 9)) (assert (<= b54 9)) (assert (<= b55 9)) ;--36 thru 58 (assert (<= b36 9)) (assert (<= b37 9)) (assert (<= b38 9)) (assert (<= b46 9)) (assert (<= b47 9)) (assert (<= b48 9)) (assert (<= b56 9)) (assert (<= b57 9)) (assert (<= b58 9)) ;--60 thru 82 (assert (<= b60 9)) (assert (<= b61 9)) (assert (<= b62 9)) (assert (<= b70 9)) (assert (<= b71 9)) (assert (<= b72 9)) (assert (<= b80 9)) (assert (<= b81 9)) (assert (<= b82 9)) ;--63 thru 85 (assert (<= b63 9)) (assert (<= b64 9)) (assert (<= b65 9)) (assert (<= b73 9)) (assert (<= b74 9)) (assert (<= b75 9)) (assert (<= b83 9)) (assert (<= b84 9)) (assert (<= b85 9)) ;--66 thru 88 (assert (<= b66 9)) (assert (<= b67 9)) (assert (<= b68 9)) (assert (<= b76 9)) (assert (<= b77 9)) (assert (<= b78 9)) (assert (<= b86 9)) (assert (<= b87 9)) (assert (<= b88 9)) ;;; -- no dup in row/col ;-ROW0 (assert (not (= b00 b01))) (assert (not (= b00 b02))) (assert (not (= b00 b03))) (assert (not (= b00 b04))) (assert (not (= b00 b05))) (assert (not (= b00 b06))) (assert (not (= b00 b07))) (assert (not (= b00 b08))) ; (assert (not (= b01 b02))) (assert (not (= b01 b03))) (assert (not (= b01 b04))) (assert (not (= b01 b05))) (assert (not (= b01 b06))) (assert (not (= b01 b07))) (assert (not (= b01 b08))) ; (assert (not (= b02 b03))) (assert (not (= b02 b04))) (assert (not (= b02 b05))) (assert (not (= b02 b06))) (assert (not (= b02 b07))) (assert (not (= b02 b08))) ; (assert (not (= b03 b04))) (assert (not (= b03 b05))) (assert (not (= b03 b06))) (assert (not (= b03 b07))) (assert (not (= b03 b08))) ; (assert (not (= b04 b05))) (assert (not (= b04 b06))) (assert (not (= b04 b07))) (assert (not (= b04 b08))) ; (assert (not (= b05 b06))) (assert (not (= b05 b07))) (assert (not (= b05 b08))) ; (assert (not (= b06 b07))) (assert (not (= b06 b08))) ; (assert (not (= b07 b08))) ;-ROW1 (assert (not (= b10 b11))) (assert (not (= b10 b12))) (assert (not (= b10 b13))) (assert (not (= b10 b14))) (assert (not (= b10 b15))) (assert (not (= b10 b16))) (assert (not (= b10 b17))) (assert (not (= b10 b18))) ; (assert (not (= b11 b12))) (assert (not (= b11 b13))) (assert (not (= b11 b14))) (assert (not (= b11 b15))) (assert (not (= b11 b16))) (assert (not (= b11 b17))) (assert (not (= b11 b18))) ; (assert (not (= b12 b13))) (assert (not (= b12 b14))) (assert (not (= b12 b15))) (assert (not (= b12 b16))) (assert (not (= b12 b17))) (assert (not (= b12 b18))) ; (assert (not (= b13 b14))) (assert (not (= b13 b15))) (assert (not (= b13 b16))) (assert (not (= b13 b17))) (assert (not (= b13 b18))) ; (assert (not (= b14 b15))) (assert (not (= b14 b16))) (assert (not (= b14 b17))) (assert (not (= b14 b18))) ; (assert (not (= b15 b16))) (assert (not (= b15 b17))) (assert (not (= b15 b18))) ; (assert (not (= b16 b17))) (assert (not (= b16 b18))) ; (assert (not (= b17 b18))) ;-ROW2 (assert (not (= b20 b21))) (assert (not (= b20 b22))) (assert (not (= b20 b23))) (assert (not (= b20 b24))) (assert (not (= b20 b25))) (assert (not (= b20 b26))) (assert (not (= b20 b27))) (assert (not (= b20 b28))) ; (assert (not (= b21 b22))) (assert (not (= b21 b23))) (assert (not (= b21 b24))) (assert (not (= b21 b25))) (assert (not (= b21 b26))) (assert (not (= b21 b27))) (assert (not (= b21 b28))) ; (assert (not (= b22 b23))) (assert (not (= b22 b24))) (assert (not (= b22 b25))) (assert (not (= b22 b26))) (assert (not (= b22 b27))) (assert (not (= b22 b28))) ; (assert (not (= b23 b24))) (assert (not (= b23 b25))) (assert (not (= b23 b26))) (assert (not (= b23 b27))) (assert (not (= b23 b28))) ; (assert (not (= b24 b25))) (assert (not (= b24 b26))) (assert (not (= b24 b27))) (assert (not (= b24 b28))) ; (assert (not (= b25 b26))) (assert (not (= b25 b27))) (assert (not (= b25 b28))) ; (assert (not (= b26 b27))) (assert (not (= b26 b28))) ; (assert (not (= b27 b28))) ;-ROW3 (assert (not (= b30 b31))) (assert (not (= b30 b32))) (assert (not (= b30 b33))) (assert (not (= b30 b34))) (assert (not (= b30 b35))) (assert (not (= b30 b36))) (assert (not (= b30 b37))) (assert (not (= b30 b38))) ; (assert (not (= b31 b32))) (assert (not (= b31 b33))) (assert (not (= b31 b34))) (assert (not (= b31 b35))) (assert (not (= b31 b36))) (assert (not (= b31 b37))) (assert (not (= b31 b38))) ; (assert (not (= b32 b33))) (assert (not (= b32 b34))) (assert (not (= b32 b35))) (assert (not (= b32 b36))) (assert (not (= b32 b37))) (assert (not (= b32 b38))) ; (assert (not (= b33 b34))) (assert (not (= b33 b35))) (assert (not (= b33 b36))) (assert (not (= b33 b37))) (assert (not (= b33 b38))) ; (assert (not (= b34 b35))) (assert (not (= b34 b36))) (assert (not (= b34 b37))) (assert (not (= b34 b38))) ; (assert (not (= b35 b36))) (assert (not (= b35 b37))) (assert (not (= b35 b38))) ; (assert (not (= b36 b37))) (assert (not (= b36 b38))) ; (assert (not (= b37 b38))) ;-ROW4 (assert (not (= b40 b41))) (assert (not (= b40 b42))) (assert (not (= b40 b43))) (assert (not (= b40 b44))) (assert (not (= b40 b45))) (assert (not (= b40 b46))) (assert (not (= b40 b47))) (assert (not (= b40 b48))) ; (assert (not (= b41 b42))) (assert (not (= b41 b43))) (assert (not (= b41 b44))) (assert (not (= b41 b45))) (assert (not (= b41 b46))) (assert (not (= b41 b47))) (assert (not (= b41 b48))) ; (assert (not (= b42 b43))) (assert (not (= b42 b44))) (assert (not (= b42 b45))) (assert (not (= b42 b46))) (assert (not (= b42 b47))) (assert (not (= b42 b48))) ; (assert (not (= b43 b44))) (assert (not (= b43 b45))) (assert (not (= b43 b46))) (assert (not (= b43 b47))) (assert (not (= b43 b48))) ; (assert (not (= b44 b45))) (assert (not (= b44 b46))) (assert (not (= b44 b47))) (assert (not (= b44 b48))) ; (assert (not (= b45 b46))) (assert (not (= b45 b47))) (assert (not (= b45 b48))) ; (assert (not (= b46 b47))) (assert (not (= b46 b48))) ; (assert (not (= b47 b48))) ;-ROW5 (assert (not (= b50 b51))) (assert (not (= b50 b52))) (assert (not (= b50 b53))) (assert (not (= b50 b54))) (assert (not (= b50 b55))) (assert (not (= b50 b56))) (assert (not (= b50 b57))) (assert (not (= b50 b58))) ; (assert (not (= b51 b52))) (assert (not (= b51 b53))) (assert (not (= b51 b54))) (assert (not (= b51 b55))) (assert (not (= b51 b56))) (assert (not (= b51 b57))) (assert (not (= b51 b58))) ; (assert (not (= b52 b53))) (assert (not (= b52 b54))) (assert (not (= b52 b55))) (assert (not (= b52 b56))) (assert (not (= b52 b57))) (assert (not (= b52 b58))) ; (assert (not (= b53 b54))) (assert (not (= b53 b55))) (assert (not (= b53 b56))) (assert (not (= b53 b57))) (assert (not (= b53 b58))) ; (assert (not (= b54 b55))) (assert (not (= b54 b56))) (assert (not (= b54 b57))) (assert (not (= b54 b58))) ; (assert (not (= b55 b56))) (assert (not (= b55 b57))) (assert (not (= b55 b58))) ; (assert (not (= b56 b57))) (assert (not (= b56 b58))) ; (assert (not (= b57 b58))) ;-ROW6 (assert (not (= b60 b61))) (assert (not (= b60 b62))) (assert (not (= b60 b63))) (assert (not (= b60 b64))) (assert (not (= b60 b65))) (assert (not (= b60 b66))) (assert (not (= b60 b67))) (assert (not (= b60 b68))) ; (assert (not (= b61 b62))) (assert (not (= b61 b63))) (assert (not (= b61 b64))) (assert (not (= b61 b65))) (assert (not (= b61 b66))) (assert (not (= b61 b67))) (assert (not (= b61 b68))) ; (assert (not (= b62 b63))) (assert (not (= b62 b64))) (assert (not (= b62 b65))) (assert (not (= b62 b66))) (assert (not (= b62 b67))) (assert (not (= b62 b68))) ; (assert (not (= b63 b64))) (assert (not (= b63 b65))) (assert (not (= b63 b66))) (assert (not (= b63 b67))) (assert (not (= b63 b68))) ; (assert (not (= b64 b65))) (assert (not (= b64 b66))) (assert (not (= b64 b67))) (assert (not (= b64 b68))) ; (assert (not (= b65 b66))) (assert (not (= b65 b67))) (assert (not (= b65 b68))) ; (assert (not (= b66 b67))) (assert (not (= b66 b68))) ; (assert (not (= b67 b68))) ;-ROW7 (assert (not (= b70 b71))) (assert (not (= b70 b72))) (assert (not (= b70 b73))) (assert (not (= b70 b74))) (assert (not (= b70 b75))) (assert (not (= b70 b76))) (assert (not (= b70 b77))) (assert (not (= b70 b78))) ; (assert (not (= b71 b72))) (assert (not (= b71 b73))) (assert (not (= b71 b74))) (assert (not (= b71 b75))) (assert (not (= b71 b76))) (assert (not (= b71 b77))) (assert (not (= b71 b78))) ; (assert (not (= b72 b73))) (assert (not (= b72 b74))) (assert (not (= b72 b75))) (assert (not (= b72 b76))) (assert (not (= b72 b77))) (assert (not (= b72 b78))) ; (assert (not (= b73 b74))) (assert (not (= b73 b75))) (assert (not (= b73 b76))) (assert (not (= b73 b77))) (assert (not (= b73 b78))) ; (assert (not (= b74 b75))) (assert (not (= b74 b76))) (assert (not (= b74 b77))) (assert (not (= b74 b78))) ; (assert (not (= b75 b76))) (assert (not (= b75 b77))) (assert (not (= b75 b78))) ; (assert (not (= b76 b77))) (assert (not (= b76 b78))) ; (assert (not (= b77 b78))) ;-ROW8 (assert (not (= b80 b81))) (assert (not (= b80 b82))) (assert (not (= b80 b83))) (assert (not (= b80 b84))) (assert (not (= b80 b85))) (assert (not (= b80 b86))) (assert (not (= b80 b87))) (assert (not (= b80 b88))) ; (assert (not (= b81 b82))) (assert (not (= b81 b83))) (assert (not (= b81 b84))) (assert (not (= b81 b85))) (assert (not (= b81 b86))) (assert (not (= b81 b87))) (assert (not (= b81 b88))) ; (assert (not (= b82 b83))) (assert (not (= b82 b84))) (assert (not (= b82 b85))) (assert (not (= b82 b86))) (assert (not (= b82 b87))) (assert (not (= b82 b88))) ; (assert (not (= b83 b84))) (assert (not (= b83 b85))) (assert (not (= b83 b86))) (assert (not (= b83 b87))) (assert (not (= b83 b88))) ; (assert (not (= b84 b85))) (assert (not (= b84 b86))) (assert (not (= b84 b87))) (assert (not (= b84 b88))) ; (assert (not (= b85 b86))) (assert (not (= b85 b87))) (assert (not (= b85 b88))) ; (assert (not (= b86 b87))) (assert (not (= b86 b88))) ; (assert (not (= b87 b88))) ;---now for cols--- ;-COL0 (assert (not (= b00 b10))) (assert (not (= b00 b20))) (assert (not (= b00 b30))) (assert (not (= b00 b40))) (assert (not (= b00 b50))) (assert (not (= b00 b60))) (assert (not (= b00 b70))) (assert (not (= b00 b80))) ; (assert (not (= b10 b20))) (assert (not (= b10 b30))) (assert (not (= b10 b40))) (assert (not (= b10 b50))) (assert (not (= b10 b60))) (assert (not (= b10 b70))) (assert (not (= b10 b80))) ; (assert (not (= b20 b30))) (assert (not (= b20 b40))) (assert (not (= b20 b50))) (assert (not (= b20 b60))) (assert (not (= b20 b70))) (assert (not (= b20 b80))) ; (assert (not (= b30 b40))) (assert (not (= b30 b50))) (assert (not (= b30 b60))) (assert (not (= b30 b70))) (assert (not (= b30 b80))) ; (assert (not (= b40 b50))) (assert (not (= b40 b60))) (assert (not (= b40 b70))) (assert (not (= b40 b80))) ; (assert (not (= b50 b60))) (assert (not (= b50 b70))) (assert (not (= b50 b80))) ; (assert (not (= b60 b70))) (assert (not (= b60 b80))) ; (assert (not (= b70 b80))) ;-COL1 (assert (not (= b01 b11))) (assert (not (= b01 b21))) (assert (not (= b01 b31))) (assert (not (= b01 b41))) (assert (not (= b01 b51))) (assert (not (= b01 b61))) (assert (not (= b01 b71))) (assert (not (= b01 b81))) ; (assert (not (= b11 b21))) (assert (not (= b11 b31))) (assert (not (= b11 b41))) (assert (not (= b11 b51))) (assert (not (= b11 b61))) (assert (not (= b11 b71))) (assert (not (= b11 b81))) ; (assert (not (= b21 b31))) (assert (not (= b21 b41))) (assert (not (= b21 b51))) (assert (not (= b21 b61))) (assert (not (= b21 b71))) (assert (not (= b21 b81))) ; (assert (not (= b31 b41))) (assert (not (= b31 b51))) (assert (not (= b31 b61))) (assert (not (= b31 b71))) (assert (not (= b31 b81))) ; (assert (not (= b41 b51))) (assert (not (= b41 b61))) (assert (not (= b41 b71))) (assert (not (= b41 b81))) ; (assert (not (= b51 b61))) (assert (not (= b51 b71))) (assert (not (= b51 b81))) ; (assert (not (= b61 b71))) (assert (not (= b61 b81))) ; (assert (not (= b71 b81))) ;-COL2 (assert (not (= b02 b12))) (assert (not (= b02 b22))) (assert (not (= b02 b32))) (assert (not (= b02 b42))) (assert (not (= b02 b52))) (assert (not (= b02 b62))) (assert (not (= b02 b72))) (assert (not (= b02 b82))) ; (assert (not (= b12 b22))) (assert (not (= b12 b32))) (assert (not (= b12 b42))) (assert (not (= b12 b52))) (assert (not (= b12 b62))) (assert (not (= b12 b72))) (assert (not (= b12 b82))) ; (assert (not (= b22 b32))) (assert (not (= b22 b42))) (assert (not (= b22 b52))) (assert (not (= b22 b62))) (assert (not (= b22 b72))) (assert (not (= b22 b82))) ; (assert (not (= b32 b42))) (assert (not (= b32 b52))) (assert (not (= b32 b62))) (assert (not (= b32 b72))) (assert (not (= b32 b82))) ; (assert (not (= b42 b52))) (assert (not (= b42 b62))) (assert (not (= b42 b72))) (assert (not (= b42 b82))) ; (assert (not (= b52 b62))) (assert (not (= b52 b72))) (assert (not (= b52 b82))) ; (assert (not (= b62 b72))) (assert (not (= b62 b82))) ; (assert (not (= b72 b82))) ;-COL3 (assert (not (= b03 b13))) (assert (not (= b03 b23))) (assert (not (= b03 b33))) (assert (not (= b03 b43))) (assert (not (= b03 b53))) (assert (not (= b03 b63))) (assert (not (= b03 b73))) (assert (not (= b03 b83))) ; (assert (not (= b13 b23))) (assert (not (= b13 b33))) (assert (not (= b13 b43))) (assert (not (= b13 b53))) (assert (not (= b13 b63))) (assert (not (= b13 b73))) (assert (not (= b13 b83))) ; (assert (not (= b23 b33))) (assert (not (= b23 b43))) (assert (not (= b23 b53))) (assert (not (= b23 b63))) (assert (not (= b23 b73))) (assert (not (= b23 b83))) ; (assert (not (= b33 b43))) (assert (not (= b33 b53))) (assert (not (= b33 b63))) (assert (not (= b33 b73))) (assert (not (= b33 b83))) ; (assert (not (= b43 b53))) (assert (not (= b43 b63))) (assert (not (= b43 b73))) (assert (not (= b43 b83))) ; (assert (not (= b53 b63))) (assert (not (= b53 b73))) (assert (not (= b53 b83))) ; (assert (not (= b63 b73))) (assert (not (= b63 b83))) ; (assert (not (= b73 b83))) ;-COL4 (assert (not (= b04 b14))) (assert (not (= b04 b24))) (assert (not (= b04 b34))) (assert (not (= b04 b44))) (assert (not (= b04 b54))) (assert (not (= b04 b64))) (assert (not (= b04 b74))) (assert (not (= b04 b84))) ; (assert (not (= b14 b24))) (assert (not (= b14 b34))) (assert (not (= b14 b44))) (assert (not (= b14 b54))) (assert (not (= b14 b64))) (assert (not (= b14 b74))) (assert (not (= b14 b84))) ; (assert (not (= b24 b34))) (assert (not (= b24 b44))) (assert (not (= b24 b54))) (assert (not (= b24 b64))) (assert (not (= b24 b74))) (assert (not (= b24 b84))) ; (assert (not (= b34 b44))) (assert (not (= b34 b54))) (assert (not (= b34 b64))) (assert (not (= b34 b74))) (assert (not (= b34 b84))) ; (assert (not (= b44 b54))) (assert (not (= b44 b64))) (assert (not (= b44 b74))) (assert (not (= b44 b84))) ; (assert (not (= b54 b64))) (assert (not (= b54 b74))) (assert (not (= b54 b84))) ; (assert (not (= b64 b74))) (assert (not (= b64 b84))) ; (assert (not (= b74 b84))) ;-COL5 (assert (not (= b05 b15))) (assert (not (= b05 b25))) (assert (not (= b05 b35))) (assert (not (= b05 b45))) (assert (not (= b05 b55))) (assert (not (= b05 b65))) (assert (not (= b05 b75))) (assert (not (= b05 b85))) ; (assert (not (= b15 b25))) (assert (not (= b15 b35))) (assert (not (= b15 b45))) (assert (not (= b15 b55))) (assert (not (= b15 b65))) (assert (not (= b15 b75))) (assert (not (= b15 b85))) ; (assert (not (= b25 b35))) (assert (not (= b25 b45))) (assert (not (= b25 b55))) (assert (not (= b25 b65))) (assert (not (= b25 b75))) (assert (not (= b25 b85))) ; (assert (not (= b35 b45))) (assert (not (= b35 b55))) (assert (not (= b35 b65))) (assert (not (= b35 b75))) (assert (not (= b35 b85))) ; (assert (not (= b45 b55))) (assert (not (= b45 b65))) (assert (not (= b45 b75))) (assert (not (= b45 b85))) ; (assert (not (= b55 b65))) (assert (not (= b55 b75))) (assert (not (= b55 b85))) ; (assert (not (= b65 b75))) (assert (not (= b65 b85))) ; (assert (not (= b75 b85))) ;-COL6 (assert (not (= b06 b16))) (assert (not (= b06 b26))) (assert (not (= b06 b36))) (assert (not (= b06 b46))) (assert (not (= b06 b56))) (assert (not (= b06 b66))) (assert (not (= b06 b76))) (assert (not (= b06 b86))) ; (assert (not (= b16 b26))) (assert (not (= b16 b36))) (assert (not (= b16 b46))) (assert (not (= b16 b56))) (assert (not (= b16 b66))) (assert (not (= b16 b76))) (assert (not (= b16 b86))) ; (assert (not (= b26 b36))) (assert (not (= b26 b46))) (assert (not (= b26 b56))) (assert (not (= b26 b66))) (assert (not (= b26 b76))) (assert (not (= b26 b86))) ; (assert (not (= b36 b46))) (assert (not (= b36 b56))) (assert (not (= b36 b66))) (assert (not (= b36 b76))) (assert (not (= b36 b86))) ; (assert (not (= b46 b56))) (assert (not (= b46 b66))) (assert (not (= b46 b76))) (assert (not (= b46 b86))) ; (assert (not (= b56 b66))) (assert (not (= b56 b76))) (assert (not (= b56 b86))) ; (assert (not (= b66 b76))) (assert (not (= b66 b86))) ; (assert (not (= b76 b86))) ;-COL7 (assert (not (= b07 b17))) (assert (not (= b07 b27))) (assert (not (= b07 b37))) (assert (not (= b07 b47))) (assert (not (= b07 b57))) (assert (not (= b07 b67))) (assert (not (= b07 b77))) (assert (not (= b07 b87))) ; (assert (not (= b17 b27))) (assert (not (= b17 b37))) (assert (not (= b17 b47))) (assert (not (= b17 b57))) (assert (not (= b17 b67))) (assert (not (= b17 b77))) (assert (not (= b17 b87))) ; (assert (not (= b27 b37))) (assert (not (= b27 b47))) (assert (not (= b27 b57))) (assert (not (= b27 b67))) (assert (not (= b27 b77))) (assert (not (= b27 b87))) ; (assert (not (= b37 b47))) (assert (not (= b37 b57))) (assert (not (= b37 b67))) (assert (not (= b37 b77))) (assert (not (= b37 b87))) ; (assert (not (= b47 b57))) (assert (not (= b47 b67))) (assert (not (= b47 b77))) (assert (not (= b47 b87))) ; (assert (not (= b57 b67))) (assert (not (= b57 b77))) (assert (not (= b57 b87))) ; (assert (not (= b67 b77))) (assert (not (= b67 b87))) ; (assert (not (= b77 b87))) ;-COL8 (assert (not (= b08 b18))) (assert (not (= b08 b28))) (assert (not (= b08 b38))) (assert (not (= b08 b48))) (assert (not (= b08 b58))) (assert (not (= b08 b68))) (assert (not (= b08 b78))) (assert (not (= b08 b88))) ; (assert (not (= b18 b28))) (assert (not (= b18 b38))) (assert (not (= b18 b48))) (assert (not (= b18 b58))) (assert (not (= b18 b68))) (assert (not (= b18 b78))) (assert (not (= b18 b88))) ; (assert (not (= b28 b38))) (assert (not (= b28 b48))) (assert (not (= b28 b58))) (assert (not (= b28 b68))) (assert (not (= b28 b78))) (assert (not (= b28 b88))) ; (assert (not (= b38 b48))) (assert (not (= b38 b58))) (assert (not (= b38 b68))) (assert (not (= b38 b78))) (assert (not (= b38 b88))) ; (assert (not (= b48 b58))) (assert (not (= b48 b68))) (assert (not (= b48 b78))) (assert (not (= b48 b88))) ; (assert (not (= b58 b68))) (assert (not (= b58 b78))) (assert (not (= b58 b88))) ; (assert (not (= b68 b78))) (assert (not (= b68 b88))) ; (assert (not (= b78 b88))) ;;; -- Uniqueness within cages also needed ;-cage0 (assert (not (= b00 b10))) (assert (not (= b00 b20))) (assert (not (= b00 b01))) (assert (not (= b00 b11))) (assert (not (= b00 b21))) (assert (not (= b00 b02))) (assert (not (= b00 b12))) (assert (not (= b00 b22))) ; (assert (not (= b10 b20))) (assert (not (= b10 b01))) (assert (not (= b10 b11))) (assert (not (= b10 b21))) (assert (not (= b10 b02))) (assert (not (= b10 b12))) (assert (not (= b10 b22))) ; (assert (not (= b20 b01))) (assert (not (= b20 b11))) (assert (not (= b20 b21))) (assert (not (= b20 b02))) (assert (not (= b20 b12))) (assert (not (= b20 b22))) ; (assert (not (= b01 b11))) (assert (not (= b01 b21))) (assert (not (= b01 b02))) (assert (not (= b01 b12))) (assert (not (= b01 b22))) ; (assert (not (= b11 b21))) (assert (not (= b11 b02))) (assert (not (= b11 b12))) (assert (not (= b11 b22))) ; (assert (not (= b21 b02))) (assert (not (= b21 b12))) (assert (not (= b21 b22))) ; (assert (not (= b02 b12))) (assert (not (= b02 b22))) ; (assert (not (= b12 b22))) ;-cage1 (assert (not (= b03 b13))) (assert (not (= b03 b23))) (assert (not (= b03 b04))) (assert (not (= b03 b14))) (assert (not (= b03 b24))) (assert (not (= b03 b05))) (assert (not (= b03 b15))) (assert (not (= b03 b25))) ; (assert (not (= b13 b23))) (assert (not (= b13 b04))) (assert (not (= b13 b14))) (assert (not (= b13 b24))) (assert (not (= b13 b05))) (assert (not (= b13 b15))) (assert (not (= b13 b25))) ; (assert (not (= b23 b04))) (assert (not (= b23 b14))) (assert (not (= b23 b24))) (assert (not (= b23 b05))) (assert (not (= b23 b15))) (assert (not (= b23 b25))) ; (assert (not (= b04 b14))) (assert (not (= b04 b24))) (assert (not (= b04 b05))) (assert (not (= b04 b15))) (assert (not (= b04 b25))) ; (assert (not (= b14 b24))) (assert (not (= b14 b05))) (assert (not (= b14 b15))) (assert (not (= b14 b25))) ; (assert (not (= b24 b05))) (assert (not (= b24 b15))) (assert (not (= b24 b25))) ; (assert (not (= b05 b15))) (assert (not (= b05 b25))) ; (assert (not (= b15 b25))) ;-cage2 (assert (not (= b06 b16))) (assert (not (= b06 b26))) (assert (not (= b06 b07))) (assert (not (= b06 b17))) (assert (not (= b06 b27))) (assert (not (= b06 b08))) (assert (not (= b06 b18))) (assert (not (= b06 b28))) ; (assert (not (= b16 b26))) (assert (not (= b16 b07))) (assert (not (= b16 b17))) (assert (not (= b16 b27))) (assert (not (= b16 b08))) (assert (not (= b16 b18))) (assert (not (= b16 b28))) ; (assert (not (= b26 b07))) (assert (not (= b26 b17))) (assert (not (= b26 b27))) (assert (not (= b26 b08))) (assert (not (= b26 b18))) (assert (not (= b26 b28))) ; (assert (not (= b07 b17))) (assert (not (= b07 b27))) (assert (not (= b07 b08))) (assert (not (= b07 b18))) (assert (not (= b07 b28))) ; (assert (not (= b17 b27))) (assert (not (= b17 b08))) (assert (not (= b17 b18))) (assert (not (= b17 b28))) ; (assert (not (= b27 b08))) (assert (not (= b27 b18))) (assert (not (= b27 b28))) ; (assert (not (= b08 b18))) (assert (not (= b08 b28))) ; (assert (not (= b18 b28))) ;-cage3 (assert (not (= b30 b40))) (assert (not (= b30 b50))) (assert (not (= b30 b31))) (assert (not (= b30 b41))) (assert (not (= b30 b51))) (assert (not (= b30 b32))) (assert (not (= b30 b42))) (assert (not (= b30 b52))) ; (assert (not (= b40 b50))) (assert (not (= b40 b31))) (assert (not (= b40 b41))) (assert (not (= b40 b51))) (assert (not (= b40 b32))) (assert (not (= b40 b42))) (assert (not (= b40 b52))) ; (assert (not (= b50 b31))) (assert (not (= b50 b41))) (assert (not (= b50 b51))) (assert (not (= b50 b32))) (assert (not (= b50 b42))) (assert (not (= b50 b52))) ; (assert (not (= b31 b41))) (assert (not (= b31 b51))) (assert (not (= b31 b32))) (assert (not (= b31 b42))) (assert (not (= b31 b52))) ; (assert (not (= b41 b51))) (assert (not (= b41 b32))) (assert (not (= b41 b42))) (assert (not (= b41 b52))) ; (assert (not (= b51 b32))) (assert (not (= b51 b42))) (assert (not (= b51 b52))) ; (assert (not (= b32 b42))) (assert (not (= b32 b52))) ; (assert (not (= b42 b52))) ;-cage4 (assert (not (= b33 b43))) (assert (not (= b33 b53))) (assert (not (= b33 b34))) (assert (not (= b33 b44))) (assert (not (= b33 b54))) (assert (not (= b33 b35))) (assert (not (= b33 b45))) (assert (not (= b33 b55))) ; (assert (not (= b43 b53))) (assert (not (= b43 b34))) (assert (not (= b43 b44))) (assert (not (= b43 b54))) (assert (not (= b43 b35))) (assert (not (= b43 b45))) (assert (not (= b43 b55))) ; (assert (not (= b53 b34))) (assert (not (= b53 b44))) (assert (not (= b53 b54))) (assert (not (= b53 b35))) (assert (not (= b53 b45))) (assert (not (= b53 b55))) ; (assert (not (= b34 b44))) (assert (not (= b34 b54))) (assert (not (= b34 b35))) (assert (not (= b34 b45))) (assert (not (= b34 b55))) ; (assert (not (= b44 b54))) (assert (not (= b44 b35))) (assert (not (= b44 b45))) (assert (not (= b44 b55))) ; (assert (not (= b54 b35))) (assert (not (= b54 b45))) (assert (not (= b54 b55))) ; (assert (not (= b35 b45))) (assert (not (= b35 b55))) ; (assert (not (= b45 b55))) ;-cage5 (assert (not (= b36 b46))) (assert (not (= b36 b56))) (assert (not (= b36 b37))) (assert (not (= b36 b47))) (assert (not (= b36 b57))) (assert (not (= b36 b38))) (assert (not (= b36 b48))) (assert (not (= b36 b58))) ; (assert (not (= b46 b56))) (assert (not (= b46 b37))) (assert (not (= b46 b47))) (assert (not (= b46 b57))) (assert (not (= b46 b38))) (assert (not (= b46 b48))) (assert (not (= b46 b58))) ; (assert (not (= b56 b37))) (assert (not (= b56 b47))) (assert (not (= b56 b57))) (assert (not (= b56 b38))) (assert (not (= b56 b48))) (assert (not (= b56 b58))) ; (assert (not (= b37 b47))) (assert (not (= b37 b57))) (assert (not (= b37 b38))) (assert (not (= b37 b48))) (assert (not (= b37 b58))) ; (assert (not (= b47 b57))) (assert (not (= b47 b38))) (assert (not (= b47 b48))) (assert (not (= b47 b58))) ; (assert (not (= b57 b38))) (assert (not (= b57 b48))) (assert (not (= b57 b58))) ; (assert (not (= b38 b48))) (assert (not (= b38 b58))) ; (assert (not (= b48 b58))) ;-cage6 (assert (not (= b60 b70))) (assert (not (= b60 b80))) (assert (not (= b60 b61))) (assert (not (= b60 b71))) (assert (not (= b60 b81))) (assert (not (= b60 b62))) (assert (not (= b60 b72))) (assert (not (= b60 b82))) ; (assert (not (= b70 b80))) (assert (not (= b70 b61))) (assert (not (= b70 b71))) (assert (not (= b70 b81))) (assert (not (= b70 b62))) (assert (not (= b70 b72))) (assert (not (= b70 b82))) ; (assert (not (= b80 b61))) (assert (not (= b80 b71))) (assert (not (= b80 b81))) (assert (not (= b80 b62))) (assert (not (= b80 b72))) (assert (not (= b80 b82))) ; (assert (not (= b61 b71))) (assert (not (= b61 b81))) (assert (not (= b61 b62))) (assert (not (= b61 b72))) (assert (not (= b61 b82))) ; (assert (not (= b71 b81))) (assert (not (= b71 b62))) (assert (not (= b71 b72))) (assert (not (= b71 b82))) ; (assert (not (= b81 b62))) (assert (not (= b81 b72))) (assert (not (= b81 b82))) ; (assert (not (= b62 b72))) (assert (not (= b62 b82))) ; (assert (not (= b72 b82))) ;-cage7 (assert (not (= b63 b73))) (assert (not (= b63 b83))) (assert (not (= b63 b64))) (assert (not (= b63 b74))) (assert (not (= b63 b84))) (assert (not (= b63 b65))) (assert (not (= b63 b75))) (assert (not (= b63 b85))) ; (assert (not (= b73 b83))) (assert (not (= b73 b64))) (assert (not (= b73 b74))) (assert (not (= b73 b84))) (assert (not (= b73 b65))) (assert (not (= b73 b75))) (assert (not (= b73 b85))) ; (assert (not (= b83 b64))) (assert (not (= b83 b74))) (assert (not (= b83 b84))) (assert (not (= b83 b65))) (assert (not (= b83 b75))) (assert (not (= b83 b85))) ; (assert (not (= b64 b74))) (assert (not (= b64 b84))) (assert (not (= b64 b65))) (assert (not (= b64 b75))) (assert (not (= b64 b85))) ; (assert (not (= b74 b84))) (assert (not (= b74 b65))) (assert (not (= b74 b75))) (assert (not (= b74 b85))) ; (assert (not (= b84 b65))) (assert (not (= b84 b75))) (assert (not (= b84 b85))) ; (assert (not (= b65 b75))) (assert (not (= b65 b85))) ; (assert (not (= b75 b85))) ;-cage8 (assert (not (= b66 b76))) (assert (not (= b66 b86))) (assert (not (= b66 b67))) (assert (not (= b66 b77))) (assert (not (= b66 b87))) (assert (not (= b66 b68))) (assert (not (= b66 b78))) (assert (not (= b66 b88))) ; (assert (not (= b76 b86))) (assert (not (= b76 b67))) (assert (not (= b76 b77))) (assert (not (= b76 b87))) (assert (not (= b76 b68))) (assert (not (= b76 b78))) (assert (not (= b76 b88))) ; (assert (not (= b86 b67))) (assert (not (= b86 b77))) (assert (not (= b86 b87))) (assert (not (= b86 b68))) (assert (not (= b86 b78))) (assert (not (= b86 b88))) ; (assert (not (= b67 b77))) (assert (not (= b67 b87))) (assert (not (= b67 b68))) (assert (not (= b67 b78))) (assert (not (= b67 b88))) ; (assert (not (= b77 b87))) (assert (not (= b77 b68))) (assert (not (= b77 b78))) (assert (not (= b77 b88))) ; (assert (not (= b87 b68))) (assert (not (= b87 b78))) (assert (not (= b87 b88))) ; (assert (not (= b68 b78))) (assert (not (= b68 b88))) ; (assert (not (= b78 b88))) ;;; -- now the given board -- ; . . . |. . 5 |. 8 . ; . . . |6 . 1 |. 4 3 ; . . . |. . . |. . . ; ------+------+------ ; . 1 . |5 . . |. . . ; . . . |1 . 6 |. . . ; 3 . . |. . . |. . 5 ; ------+------+------ ; 5 3 . |. . . |. 6 1 ; . . . |. . . |. . 4 ; . . . |. . . |. . . ;; Entering row by row... (assert (= b05 5)) (assert (= b07 8)) ;; (assert (= b13 6)) (assert (= b15 1)) (assert (= b17 4)) (assert (= b18 3)) ;; (assert (= b31 1)) (assert (= b33 5)) ;; (assert (= b43 1)) (assert (= b45 6)) ;; (assert (= b50 3)) (assert (= b58 5)) ;; (assert (= b60 5)) (assert (= b61 3)) (assert (= b67 6)) (assert (= b68 1)) ;; (assert (= b78 4)) ;; (check-sat) ;(get-model) ;; UNSAT