From a9d035d45fece10ff47f706a14ee27b935c675d8 Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@uni-duesseldorf.de>
Date: Wed, 24 Nov 2021 09:22:46 +0100
Subject: [PATCH] add another puzzle

Signed-off-by: Michael Leuschel <leuschel@uni-duesseldorf.de>
---
 puzzles/SEND-MORE-MONEY.ipynb | 133 ++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

diff --git a/puzzles/SEND-MORE-MONEY.ipynb b/puzzles/SEND-MORE-MONEY.ipynb
index 5d59c0c..a115f81 100644
--- a/puzzles/SEND-MORE-MONEY.ipynb
+++ b/puzzles/SEND-MORE-MONEY.ipynb
@@ -318,6 +318,139 @@
     "{K,P} <: 1..9 & {I,S,A,O,N} <: 0..9 & (1000*K+100*I+10*S+S) * (1000*K+100*I+10*S+S) = 1000000*P+100000*A+10000*S+1000*S+100*I+10*O+N & card({K, I, S, P, A, O, N}) = 7"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Another Puzzle\n",
+    "\n",
+    "```\n",
+    "    ABC\n",
+    "    DEF\n",
+    "  + GHI\n",
+    "  -----\n",
+    "   123J\n",
+    " ```\n",
+    " Each letter is a distinct digit 0-9. What is J?\n",
+    " \n",
+    "[A solution is available here.](https://twitter.com/joe_antognini/status/1436044846028902408)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\mathit{TRUE}$\n",
+       "\n",
+       "**Solution:**\n",
+       "* $\\mathit{A} = 8$\n",
+       "* $\\mathit{B} = 7$\n",
+       "* $\\mathit{C} = 9$\n",
+       "* $\\mathit{D} = 2$\n",
+       "* $\\mathit{E} = 5$\n",
+       "* $\\mathit{F} = 4$\n",
+       "* $\\mathit{G} = 1$\n",
+       "* $\\mathit{H} = 0$\n",
+       "* $\\mathit{I} = 3$\n",
+       "* $\\mathit{J} = 6$"
+      ],
+      "text/plain": [
+       "TRUE\n",
+       "\n",
+       "Solution:\n",
+       "\tA = 8\n",
+       "\tB = 7\n",
+       "\tC = 9\n",
+       "\tD = 2\n",
+       "\tE = 5\n",
+       "\tF = 4\n",
+       "\tG = 1\n",
+       "\tH = 0\n",
+       "\tI = 3\n",
+       "\tJ = 6"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "{A,B,C,D,E,F,G,H,I,J} <: 0..9 &\n",
+    "card({A,B,C,D,E,F,G,H,I,J}) = 10 &\n",
+    " A*100 + B*10 + C +\n",
+    " D*100 + E*10 + F +\n",
+    " G*100 + H*10 + I =\n",
+    " 1230 + J \n",
+    " & A>D & D>G & B>E & E>H & C>F & F>I // symmetry breaking"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\{(5\\mapsto 8\\mapsto 9\\mapsto 4\\mapsto 3\\mapsto 7\\mapsto 2\\mapsto 1\\mapsto 0\\mapsto 6),(5\\mapsto 9\\mapsto 8\\mapsto 4\\mapsto 3\\mapsto 7\\mapsto 2\\mapsto 0\\mapsto 1\\mapsto 6),(7\\mapsto 8\\mapsto 9\\mapsto 3\\mapsto 4\\mapsto 5\\mapsto 1\\mapsto 0\\mapsto 2\\mapsto 6),(7\\mapsto 8\\mapsto 9\\mapsto 4\\mapsto 3\\mapsto 5\\mapsto 0\\mapsto 1\\mapsto 2\\mapsto 6),(7\\mapsto 9\\mapsto 8\\mapsto 4\\mapsto 2\\mapsto 5\\mapsto 0\\mapsto 1\\mapsto 3\\mapsto 6),(8\\mapsto 5\\mapsto 9\\mapsto 2\\mapsto 4\\mapsto 7\\mapsto 1\\mapsto 3\\mapsto 0\\mapsto 6),(8\\mapsto 7\\mapsto 9\\mapsto 2\\mapsto 5\\mapsto 4\\mapsto 1\\mapsto 0\\mapsto 3\\mapsto 6),(8\\mapsto 7\\mapsto 9\\mapsto 3\\mapsto 4\\mapsto 5\\mapsto 0\\mapsto 1\\mapsto 2\\mapsto 6),(8\\mapsto 9\\mapsto 7\\mapsto 2\\mapsto 3\\mapsto 5\\mapsto 1\\mapsto 0\\mapsto 4\\mapsto 6),(8\\mapsto 9\\mapsto 7\\mapsto 3\\mapsto 2\\mapsto 5\\mapsto 0\\mapsto 1\\mapsto 4\\mapsto 6),(9\\mapsto 5\\mapsto 8\\mapsto 2\\mapsto 4\\mapsto 7\\mapsto 0\\mapsto 3\\mapsto 1\\mapsto 6),(9\\mapsto 7\\mapsto 8\\mapsto 2\\mapsto 4\\mapsto 5\\mapsto 0\\mapsto 1\\mapsto 3\\mapsto 6),(9\\mapsto 8\\mapsto 7\\mapsto 2\\mapsto 3\\mapsto 5\\mapsto 0\\mapsto 1\\mapsto 4\\mapsto 6)\\}$"
+      ],
+      "text/plain": [
+       "{(5↦8↦9↦4↦3↦7↦2↦1↦0↦6),(5↦9↦8↦4↦3↦7↦2↦0↦1↦6),(7↦8↦9↦3↦4↦5↦1↦0↦2↦6),(7↦8↦9↦4↦3↦5↦0↦1↦2↦6),(7↦9↦8↦4↦2↦5↦0↦1↦3↦6),(8↦5↦9↦2↦4↦7↦1↦3↦0↦6),(8↦7↦9↦2↦5↦4↦1↦0↦3↦6),(8↦7↦9↦3↦4↦5↦0↦1↦2↦6),(8↦9↦7↦2↦3↦5↦1↦0↦4↦6),(8↦9↦7↦3↦2↦5↦0↦1↦4↦6),(9↦5↦8↦2↦4↦7↦0↦3↦1↦6),(9↦7↦8↦2↦4↦5↦0↦1↦3↦6),(9↦8↦7↦2↦3↦5↦0↦1↦4↦6)}"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "{A,B,C,D,E,F,G,H,I,J |\n",
+    "{A,B,C,D,E,F,G,H,I,J} <: 0..9 &\n",
+    "card({A,B,C,D,E,F,G,H,I,J}) = 10 &\n",
+    " A*100 + B*10 + C +\n",
+    " D*100 + E*10 + F +\n",
+    " G*100 + H*10 + I =\n",
+    " 1230 + J \n",
+    " & A>D & D>G & B>E & E>H & C>F & F>I\n",
+    " }"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\{6\\}$"
+      ],
+      "text/plain": [
+       "{6}"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "ran({A,B,C,D,E,F,G,H,I,J |\n",
+    "{A,B,C,D,E,F,G,H,I,J} <: 0..9 &\n",
+    "card({A,B,C,D,E,F,G,H,I,J}) = 10 &\n",
+    " A*100 + B*10 + C +\n",
+    " D*100 + E*10 + F +\n",
+    " G*100 + H*10 + I =\n",
+    " 1230 + J \n",
+    " & A>D & D>G & B>E & E>H & C>F & F>I\n",
+    " })"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
-- 
GitLab