diff --git a/Apples_and_Oranges.ipynb b/Apples_and_Oranges.ipynb index 0a60d468dd6849c58c35aa433fe351f8a57128bc..ec626b68a2dc350381ed0e35c6d7874c43fe7f5a 100644 --- a/Apples_and_Oranges.ipynb +++ b/Apples_and_Oranges.ipynb @@ -266,11 +266,25 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "## Argumentation Theory\n", + "\n", + "\n", + "\n", + "Below we try to model some concepts of argumentation theory in B. The examples try to show that classical (monotonic) logic with set theory can be used to model some aspects of argumentation theory quite naturally, and that ProB can solve and visualise some problems in argumentation theory. Alternative solutions are encoding arguments as normal logic programs (with non-monotonic negation) and using answer set solvers for problem solving.\n", + "\n", + "The following model was inspired by a talk given by Claudia Schulz.\n", + "\n", + "The model below represents the labelling of the arguments as a total function from arguments to its status, which can either be in (the argument is accepted), out (the argument is rejected), or undec (the argument is undecided). The relation between the arguments is given in the binary attacks relation.\n", + "\n", + "In case you are new to B, you probably need to know the following operators to understand the specification below (we als have a summary page about the B syntax in our handbook):\n", + "\n", + "* `x : S` specifies that x is an element of S\n", + "* `a|→b` represents the pair (a,b); note that a relation and function in B is a set of pairs.\n", + "* " + ] } ], "metadata": { diff --git a/N-Bishops.ipynb b/N-Bishops.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..fd2c351875fdb87761c954ef0cf2bb2f662075af --- /dev/null +++ b/N-Bishops.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# N-Bishops Puzzle\n", + "\n", + "\n", + "This puzzle is a variation of the N-Queens puzzle. You can find the N-Queens puzzle in our modeling examples as well. In this puzzle we try to place as many bishops as possible on a n by n chess board. In contrast to the N-Queens puzzle, one can place more than one bishop per row. As such, we can now longer represent the positions of the bishops as an total function `1..n >-> 1..n`. \n", + "\n", + "There are two encodings shown below. The first and following represents the bishops as a subset of the Cartesian product `(1..n)*(1..n)`, i.e., a set of positions (aka a binary relation on `1..n`).\n", + "\n", + "First of all we have to load the machine, if you are struggeling with any operation of our jupyter kernel, try out `:help` or take a look at our `ProB Jupyter Noteboook Overview`." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Loaded machine: NBishopsSets" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "::load\n", + "MACHINE NBishopsSets\n", + "CONSTANTS n, nbishops, hasbishop\n", + "PROPERTIES\n", + " n=8 &\n", + " hasbishop <: (1..n)*(1..n) &\n", + " !(i,j).(i:1..n & j:1..n\n", + " =>\n", + " ( (i,j): hasbishop\n", + " =>\n", + " (!k.(k:(i+1)..n =>\n", + " (k,j+k-i) /: hasbishop &\n", + " (k,j-k+i) /: hasbishop\n", + " ))\n", + " ))\n", + " & nbishops = card(hasbishop)\n", + " & nbishops >13\n", + "END" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can try and find the maximum number of bishops by gradually\n", + "increasing the lower limit for nbishops in the last line of the model\n", + "before the final END. The maximum number of bishops that can be placed\n", + "is 2*n - 2; see [here](http://mathworld.wolfram.com/BishopsProblem.html).\n", + "\n", + "To show this graphically, we will now include the ANIMATION_FUNCTION for this example. The ANIMATION_FUNCTION has to be declared in the `DEFINITIONS` section as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Loaded machine: NBishopsSets" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "::load\n", + "MACHINE NBishopsSets\n", + "DEFINITIONS\n", + " BWOFFSET(x,y) == (x+y) mod 2;\n", + " ANIMATION_FUNCTION_DEFAULT == ( {r,c,i|r:1..n & c:1..n & i=(r+c) mod 2 } );\n", + " ANIMATION_FUNCTION == {r,c,i|(r,c):hasbishop & i= 2+BWOFFSET(r,c)} ;\n", + " ANIMATION_IMG0 == \"images/ChessPieces/Chess_emptyl45.gif\";\n", + " ANIMATION_IMG1 == \"images/ChessPieces/Chess_emptyd45.gif\";\n", + " ANIMATION_IMG2 == \"images/ChessPieces/Chess_bll45.gif\";\n", + " ANIMATION_IMG3 == \"images/ChessPieces/Chess_bld45.gif\";\n", + " SET_PREF_TK_CUSTOM_STATE_VIEW_PADDING == 1;\n", + "CONSTANTS n, nbishops, hasbishop\n", + "PROPERTIES\n", + " n=8 &\n", + " hasbishop <: (1..n)*(1..n) &\n", + " !(i,j).(i:1..n & j:1..n\n", + " =>\n", + " ( (i,j): hasbishop\n", + " =>\n", + " (!k.(k:(i+1)..n =>\n", + " (k,j+k-i) /: hasbishop &\n", + " (k,j-k+i) /: hasbishop\n", + " ))\n", + " ))\n", + " & nbishops = card(hasbishop)\n", + " & nbishops >13\n", + "END" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now initialise the machine and run the default setting to take a look at the animation." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Machine constants set up using operation 0: $setup_constants()" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":constants" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Machine initialised using operation 1: $initialise_machine()" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the `:show` command from the jupyter kernel you can see the results of the N-Queens problem for yourself.\n", + "\n", + "Please note, that the image paths given in the DEFINITIONS have to be relative to the jupyter notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:1px\"><img alt=\"1\" src=\"images/ChessPieces/Chess_emptyd45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"2\" src=\"images/ChessPieces/Chess_bll45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"3\" src=\"images/ChessPieces/Chess_bld45.gif\"/></td>\n", + "<td style=\"padding:1px\"><img alt=\"0\" src=\"images/ChessPieces/Chess_emptyl45.gif\"/></td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the chess pieces we have used the images available at [this site](https://commons.wikimedia.org/wiki/Category:SVG_chess_pieces). These images are available under the [Creative Commons](https://en.wikipedia.org/wiki/Creative_Commons)\n", + "[Attribution-Share Alike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/deed.en). The same applies to the screenshots shown here." + ] + }, + { + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/ProB_Jupyter_Notebook_Overview.ipynb b/ProB_Jupyter_Notebook_Overview.ipynb index bb1e4eacf5d5cbcb4041718cd78a82d7be076b78..ce36b85f8cff383cae907e7f6f5677ae76bc7c6d 100644 --- a/ProB_Jupyter_Notebook_Overview.ipynb +++ b/ProB_Jupyter_Notebook_Overview.ipynb @@ -6,7 +6,7 @@ "source": [ "# ProB2 Jupyter Notebook Overview\n", "\n", - "In this jupyter notebook we want to give you an overview over the functionalities of the ProB2 Jupyter Notebook.\n", + "In this jupyter notebook, we will give you an extended overview of the functionalities that come with the ProB2 jupyter kernel.\n", "For this purpose, we will take a look at the simple machine `Lift.mch` taken from the [ProB Public Examples](https://www3.hhu.de/stups/downloads/prob/source/)." ] }, diff --git a/images/ChessPieces/Chess_bdd45.gif b/images/ChessPieces/Chess_bdd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..b05bb2a9e0c1acbc4ef61a4e4802835626836e65 Binary files /dev/null and b/images/ChessPieces/Chess_bdd45.gif differ diff --git a/images/ChessPieces/Chess_bdl45.gif b/images/ChessPieces/Chess_bdl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..cdc9b73e2029bc32e30290aedf54e56ed10dcfac Binary files /dev/null and b/images/ChessPieces/Chess_bdl45.gif differ diff --git a/images/ChessPieces/Chess_bld45.gif b/images/ChessPieces/Chess_bld45.gif new file mode 100644 index 0000000000000000000000000000000000000000..db5698ea45c728587fb7f24785ad3370e7f07a67 Binary files /dev/null and b/images/ChessPieces/Chess_bld45.gif differ diff --git a/images/ChessPieces/Chess_bll45.gif b/images/ChessPieces/Chess_bll45.gif new file mode 100644 index 0000000000000000000000000000000000000000..fcd6eabb2fbc0cb85aff75df3394d221a0c3964c Binary files /dev/null and b/images/ChessPieces/Chess_bll45.gif differ diff --git a/images/ChessPieces/Chess_emptyXg45.gif b/images/ChessPieces/Chess_emptyXg45.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da0f39e28bbe7e32bdf8bc7867d963fcb1fbd75 Binary files /dev/null and b/images/ChessPieces/Chess_emptyXg45.gif differ diff --git a/images/ChessPieces/Chess_emptyd45.gif b/images/ChessPieces/Chess_emptyd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc51105a88b05dccfa99c13b758484d3fb6d10b5 Binary files /dev/null and b/images/ChessPieces/Chess_emptyd45.gif differ diff --git a/images/ChessPieces/Chess_emptyg45.gif b/images/ChessPieces/Chess_emptyg45.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf86c6255b568b8efcb9125d1af4e3e9f7b41b59 Binary files /dev/null and b/images/ChessPieces/Chess_emptyg45.gif differ diff --git a/images/ChessPieces/Chess_emptyl45.gif b/images/ChessPieces/Chess_emptyl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e169e90e4f3e4d49b97aa71bb25a3ba898e197a Binary files /dev/null and b/images/ChessPieces/Chess_emptyl45.gif differ diff --git a/images/ChessPieces/Chess_kdd45.gif b/images/ChessPieces/Chess_kdd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..7bd6ad3c88ba95f13605617c6be959df370a31e7 Binary files /dev/null and b/images/ChessPieces/Chess_kdd45.gif differ diff --git a/images/ChessPieces/Chess_kdl45.gif b/images/ChessPieces/Chess_kdl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..6feb427b24f36f5700f2c1810ebba9123dc27a30 Binary files /dev/null and b/images/ChessPieces/Chess_kdl45.gif differ diff --git a/images/ChessPieces/Chess_kld45.gif b/images/ChessPieces/Chess_kld45.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cf3e77b783bce66e18b1f7f25f4c20868622669 Binary files /dev/null and b/images/ChessPieces/Chess_kld45.gif differ diff --git a/images/ChessPieces/Chess_kll45.gif b/images/ChessPieces/Chess_kll45.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a9c9b727cb2e738e823dddfbbeb725d82c63039 Binary files /dev/null and b/images/ChessPieces/Chess_kll45.gif differ diff --git a/images/ChessPieces/Chess_krd45.gif b/images/ChessPieces/Chess_krd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9dcd5fe497f2ce4abad88196d4057fd1c9bb2bb Binary files /dev/null and b/images/ChessPieces/Chess_krd45.gif differ diff --git a/images/ChessPieces/Chess_krl45.gif b/images/ChessPieces/Chess_krl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..b39c25e9dc8434a36e15fbb1920f555e88eb79ec Binary files /dev/null and b/images/ChessPieces/Chess_krl45.gif differ diff --git a/images/ChessPieces/Chess_krt45.gif b/images/ChessPieces/Chess_krt45.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc04c8250750c8bbf5ef53e22932e2df73e7ee94 Binary files /dev/null and b/images/ChessPieces/Chess_krt45.gif differ diff --git a/images/ChessPieces/Chess_ndd45.gif b/images/ChessPieces/Chess_ndd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..fdf77b49a4cdbbeccf69ca50f61813a9155fa31f Binary files /dev/null and b/images/ChessPieces/Chess_ndd45.gif differ diff --git a/images/ChessPieces/Chess_ndl45.gif b/images/ChessPieces/Chess_ndl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..9dc2583a3e5156945b904262799008a45c923953 Binary files /dev/null and b/images/ChessPieces/Chess_ndl45.gif differ diff --git a/images/ChessPieces/Chess_nld45.gif b/images/ChessPieces/Chess_nld45.gif new file mode 100644 index 0000000000000000000000000000000000000000..d58243f821a78a431440c1cd8e0117b31b6eab5e Binary files /dev/null and b/images/ChessPieces/Chess_nld45.gif differ diff --git a/images/ChessPieces/Chess_nll45.gif b/images/ChessPieces/Chess_nll45.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef43eaf63d33e247af8b21ad0daf1e562c97893a Binary files /dev/null and b/images/ChessPieces/Chess_nll45.gif differ diff --git a/images/ChessPieces/Chess_pdd45.gif b/images/ChessPieces/Chess_pdd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..e018fe3aae56113557e64a78931afe81deba7941 Binary files /dev/null and b/images/ChessPieces/Chess_pdd45.gif differ diff --git a/images/ChessPieces/Chess_pdl45.gif b/images/ChessPieces/Chess_pdl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb36dbc4cff7410d73388677bfc816a8d2be39a5 Binary files /dev/null and b/images/ChessPieces/Chess_pdl45.gif differ diff --git a/images/ChessPieces/Chess_pld45.gif b/images/ChessPieces/Chess_pld45.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c599168884f80d99bef94fd57324b074d1e3c18 Binary files /dev/null and b/images/ChessPieces/Chess_pld45.gif differ diff --git a/images/ChessPieces/Chess_pll45.gif b/images/ChessPieces/Chess_pll45.gif new file mode 100644 index 0000000000000000000000000000000000000000..99b4a47c6fd0f9938224db9690fb68b58cbf59f5 Binary files /dev/null and b/images/ChessPieces/Chess_pll45.gif differ diff --git a/images/ChessPieces/Chess_qdd45.gif b/images/ChessPieces/Chess_qdd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..949355f804dbc40621313a601b4e89122992cdd2 Binary files /dev/null and b/images/ChessPieces/Chess_qdd45.gif differ diff --git a/images/ChessPieces/Chess_qdl45.gif b/images/ChessPieces/Chess_qdl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8042b0933c07162baeda70b9cf6f1a8cc9fa880 Binary files /dev/null and b/images/ChessPieces/Chess_qdl45.gif differ diff --git a/images/ChessPieces/Chess_qgg45.gif b/images/ChessPieces/Chess_qgg45.gif new file mode 100644 index 0000000000000000000000000000000000000000..d82331a43807c787e671eb78b6c93081c3081809 Binary files /dev/null and b/images/ChessPieces/Chess_qgg45.gif differ diff --git a/images/ChessPieces/Chess_qgt45.gif b/images/ChessPieces/Chess_qgt45.gif new file mode 100644 index 0000000000000000000000000000000000000000..c36122b3f8c1b3f974a3fe662c2d415176aed83d Binary files /dev/null and b/images/ChessPieces/Chess_qgt45.gif differ diff --git a/images/ChessPieces/Chess_qld45.gif b/images/ChessPieces/Chess_qld45.gif new file mode 100644 index 0000000000000000000000000000000000000000..83f1bfebdad694c9309eeaa760e1f74ccf6e89a9 Binary files /dev/null and b/images/ChessPieces/Chess_qld45.gif differ diff --git a/images/ChessPieces/Chess_qll45.gif b/images/ChessPieces/Chess_qll45.gif new file mode 100644 index 0000000000000000000000000000000000000000..53d83b61605ea846bb8629cdacf4a5b71b87cbf6 Binary files /dev/null and b/images/ChessPieces/Chess_qll45.gif differ diff --git a/images/ChessPieces/Chess_qrg45.gif b/images/ChessPieces/Chess_qrg45.gif new file mode 100644 index 0000000000000000000000000000000000000000..5203f59c43825a21df097dd695e9c51a1338c7c9 Binary files /dev/null and b/images/ChessPieces/Chess_qrg45.gif differ diff --git a/images/ChessPieces/Chess_qrt45.gif b/images/ChessPieces/Chess_qrt45.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb437aca8f3a9e5e6828f0f84b4f0473c0fe6c1b Binary files /dev/null and b/images/ChessPieces/Chess_qrt45.gif differ diff --git a/images/ChessPieces/Chess_qyt45.gif b/images/ChessPieces/Chess_qyt45.gif new file mode 100644 index 0000000000000000000000000000000000000000..20ae45062bcc781bf1f4f9cbfc432c4f4a02fc09 Binary files /dev/null and b/images/ChessPieces/Chess_qyt45.gif differ diff --git a/images/ChessPieces/Chess_rdd45.gif b/images/ChessPieces/Chess_rdd45.gif new file mode 100644 index 0000000000000000000000000000000000000000..75a5812c100ca032e42054f07b9881470a4f68b9 Binary files /dev/null and b/images/ChessPieces/Chess_rdd45.gif differ diff --git a/images/ChessPieces/Chess_rdl45.gif b/images/ChessPieces/Chess_rdl45.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e679265235f4a26588577b78537056823cec747 Binary files /dev/null and b/images/ChessPieces/Chess_rdl45.gif differ diff --git a/images/ChessPieces/Chess_rld45.gif b/images/ChessPieces/Chess_rld45.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d9be5808b3276302b3cdcdb5c7b989f485ef99a Binary files /dev/null and b/images/ChessPieces/Chess_rld45.gif differ diff --git a/images/ChessPieces/Chess_rll45.gif b/images/ChessPieces/Chess_rll45.gif new file mode 100644 index 0000000000000000000000000000000000000000..86c7d22b1c49b63d7c35b6f6e99a03ec58078e55 Binary files /dev/null and b/images/ChessPieces/Chess_rll45.gif differ diff --git a/images/ChessPieces/Licence.txt b/images/ChessPieces/Licence.txt new file mode 100644 index 0000000000000000000000000000000000000000..10a82f1b28d348b0dd7675540661fcc282990fed --- /dev/null +++ b/images/ChessPieces/Licence.txt @@ -0,0 +1,26 @@ +Source: https://commons.wikimedia.org/wiki/Category:SVG_chess_pieces + +By en:User:Cburnett [GFDL (http://www.gnu.org/copyleft/fdl.html), CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/), BSD (http://opensource.org/licenses/bsd-license.php) or GPL (http://www.gnu.org/licenses/gpl.html)], via Wikimedia Commons from Wikimedia Commons + +I, the copyright holder of this work, hereby publish it under the following licenses: +GNU head Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License. +w:en:Creative Commons +attribution share alike This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. +You are free: +to share – to copy, distribute and transmit the work +to remix – to adapt the work +Under the following conditions: +attribution – You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +share alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. +This licensing tag was added to this file as part of the GFDL licensing update. +BSD wordmark.svg Copyright The author +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +Neither the name of The author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Čeština | Deutsch | Ελληνικά | English | Español | فارسی | Suomi | Français | Italiano | 日本語 | 한국어 | Македонски | Nederlands | Polski | Português | Português do Brasil | Русский | 中文 | 中文(简体) | 中文(繁體) | +/− +GNU head This work is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This work is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See version 2 and version 3 of the GNU General Public License for more details. +You may select the license of your choice. \ No newline at end of file