From 679d97b954fcf4c096ad98b0d04842d843b1025d Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@uni-duesseldorf.de>
Date: Wed, 9 Nov 2022 10:19:00 +0100
Subject: [PATCH] add another notebook

Signed-off-by: Michael Leuschel <leuschel@uni-duesseldorf.de>
---
 notebooks/presentations/Prolog50_2022.ipynb   | 284 ++++++++++++++++++
 notebooks/presentations/img/SendMoreMoney.png | Bin 0 -> 27068 bytes
 2 files changed, 284 insertions(+)
 create mode 100644 notebooks/presentations/Prolog50_2022.ipynb
 create mode 100644 notebooks/presentations/img/SendMoreMoney.png

diff --git a/notebooks/presentations/Prolog50_2022.ipynb b/notebooks/presentations/Prolog50_2022.ipynb
new file mode 100644
index 0000000..7717ada
--- /dev/null
+++ b/notebooks/presentations/Prolog50_2022.ipynb
@@ -0,0 +1,284 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "slideshow": {
+     "slide_type": "slide"
+    }
+   },
+   "source": [
+    "# ProB's Prolog Constraint Solver\n",
+    "## Demo using Jupyter\n",
+    "\n",
+    "### Prolog Day 2022\n",
+    "\n",
+    "https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel\n",
+    "\n",
+    "![ProB](./img/prob_logo.png)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "slideshow": {
+     "slide_type": "subslide"
+    }
+   },
+   "source": [
+    "We highlight some of the features of ProB's constraint solving kernel written in Prolog,\n",
+    "dealing with unbounded arithmetic, higher-order and possibly infinite sets:"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "slideshow": {
+     "slide_type": "slide"
+    }
+   },
+   "source": [
+    "# Some Features"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "slideshow": {
+     "slide_type": "subslide"
+    }
+   },
+   "source": [
+    "Automatically detecting infinite sets:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": false,
+    "vscode": {
+     "languageId": "classicalb"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "Primes = {x|x>1 & !y.(y:2..x-1 => x mod y >0)}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Generating some prime > 100 and using Unicode notation:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "Primes = {x∣x>1 ∧ ∀y.(y∈2..x-1⇒ x mod y>0)} ∧\n",
+    "some_prime ∈ Primes & some_prime > 100"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Getting first 100 primes by intersection:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true,
+    "vscode": {
+     "languageId": "python"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "1..100 ∩ {x∣x>1∧∀y.(y∈2..x-1⇒ x mod y>0)}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Getting first 1000 primes; observe that P1000 is computed explicitly while Primes is automatically kept symbolic:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "P1000 = 1..1000 ∩ Primes ∧\n",
+    "Primes = {x∣x>1 ∧ ∀y.(y∈2..x-1⇒ x mod y>0)}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "slideshow": {
+     "slide_type": "subslide"
+    }
+   },
+   "source": [
+    "Solving the famous SEND+MORE = MONEY Puzzle with\n",
+    "multiline input:\n",
+    "\n",
+    "<div>\n",
+    "<img src=\"./img/SendMoreMoney.png\" width=\"400\"/>\n",
+    "</div>\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "vscode": {
+     "languageId": "python"
+    }
+   },
+   "outputs": [],
+   "source": [
+    ":table {S,E,N,D,M,O,R,Y |\n",
+    "\n",
+    "{S, E, N, D, M, O, R, Y} ⊆ 0..9\n",
+    "∧ S > 0 ∧ M > 0\n",
+    "∧ card({S, E, N, D, M, O, R, Y}) = 8\n",
+    "∧\n",
+    "            S*1000 + E*100 + N*10 + D\n",
+    "+           M*1000 + O*100 + R*10 + E\n",
+    "= M*10000 + O*1000 + N*100 + E*10 + Y\n",
+    "\n",
+    "}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Find distinct digits such that this multiplication becomes true:\n",
+    "\n",
+    "![ProB](./img/KissKissPassion.png)\n",
+    "\n",
+    "(This is a more difficult version of the Send+More=Money puzzle.)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "vscode": {
+     "languageId": "python"
+    }
+   },
+   "outputs": [],
+   "source": [
+    ":table {K,I,S,P,A,O,N | {K,P} ⊆ 1..9 ∧\n",
+    "    {I,S,A,O,N} ⊆ 0..9 ∧\n",
+    "    (1000*K+100*I+10*S+S) * (1000*K+100*I+10*S+S) \n",
+    "     =  1000000*P+100000*A+10000*S+1000*S+100*I+10*O+N ∧\n",
+    "    card({K, I, S, P, A, O, N}) = 7}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "slideshow": {
+     "slide_type": "subslide"
+    }
+   },
+   "source": [
+    "## Visualisation\n",
+    "\n",
+    "In B, sequences are also functions, functions are relations, and relations are sets.\n",
+    "Relations can be displayed visually:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "vscode": {
+     "languageId": "python"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "{x,y | x∈1..5 ∧ y∈1..5 ∧ x>y}"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "slideshow": {
+     "slide_type": "subslide"
+    },
+    "vscode": {
+     "languageId": "python"
+    }
+   },
+   "outputs": [],
+   "source": [
+    ":pref DOT_ENGINE=circo"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "vscode": {
+     "languageId": "python"
+    }
+   },
+   "outputs": [],
+   "source": [
+    ":dot expr_as_graph (\"K5\", {x,y | x∈1..5 ∧ y∈1..5 ∧ x>y})"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    ":dot expr_as_graph (\"K6\", {x,y | x∈1..6 ∧ y∈1..6 ∧ x>y})"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "ProB 2",
+   "language": "prob",
+   "name": "prob2"
+  },
+  "language_info": {
+   "codemirror_mode": "prob2_jupyter_repl",
+   "file_extension": ".prob",
+   "mimetype": "text/x-prob2-jupyter-repl",
+   "name": "prob"
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "301501caf4ced90c88b4867a75dc974b7f77d88824feb914d0cf4e75e12213b3"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/presentations/img/SendMoreMoney.png b/notebooks/presentations/img/SendMoreMoney.png
new file mode 100644
index 0000000000000000000000000000000000000000..4618631d14b2f2af11ab7a4f4874084f1fdef206
GIT binary patch
literal 27068
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%0AlSI-)vVQO
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
BAiw|s

literal 0
HcmV?d00001

-- 
GitLab