From 8ad235f6a699935b8b721caa152482ed6136dcef Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Wed, 16 May 2018 13:25:31 +0200 Subject: [PATCH] Remove inline stdlib definitions Now that ClassicalBFactory.loadString has been fixed in the ProB 2 kernel, the stdlib can be used in ::load machines. --- notebooks/manual/ExternalFunctions.ipynb | 367 ++++++++--------------- notebooks/tests/external_functions.ipynb | 127 +++----- 2 files changed, 161 insertions(+), 333 deletions(-) diff --git a/notebooks/manual/ExternalFunctions.ipynb b/notebooks/manual/ExternalFunctions.ipynb index 670463d..17f9e92 100644 --- a/notebooks/manual/ExternalFunctions.ipynb +++ b/notebooks/manual/ExternalFunctions.ipynb @@ -30,18 +30,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-13 09:48:02,007, T+3926] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", - "[2018-05-13 09:48:03,239, T+5158] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 54031\n", - "[2018-05-13 09:48:03,240, T+5159] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 62735\n", - "[2018-05-13 09:48:03,243, T+5162] \"ProB Output Logger for instance 4f9c1863\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", - "[2018-05-13 09:48:03,263, T+5182] \"ProB Output Logger for instance 4f9c1863\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", - "[2018-05-13 09:48:03,386, T+5305] \"ProB Output Logger for instance 4f9c1863\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-04-11 12:07:37.302),Jupyter,[/Users/leuschel/git_root/JAVAPROB/prob2-jupyter-kernel/notebooks/manual])\u001b[0m\n" + "[2018-05-16 13:20:12,877, T+5592] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/david/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", + "[2018-05-16 13:20:14,476, T+7191] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 57016\n", + "[2018-05-16 13:20:14,478, T+7193] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 1950\n", + "[2018-05-16 13:20:14,481, T+7196] \"ProB Output Logger for instance 5406bd9a\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", + "[2018-05-16 13:20:14,504, T+7219] \"ProB Output Logger for instance 5406bd9a\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", + "[2018-05-16 13:20:14,685, T+7400] \"ProB Output Logger for instance 5406bd9a\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-05-16 12:58:57.712),Jupyter_LibraryStrings,[/Users/Shared/Uni/SHK/ProB2/prob2-jupyter-kernel/notebooks/manual,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/LibraryStrings.def])\u001b[0m\n" ] }, { "data": { "text/plain": [ - "Loaded machine: Jupyter : []\n" + "Loaded machine: Jupyter_LibraryStrings : []\n" ] }, "execution_count": 1, @@ -51,81 +51,8 @@ ], "source": [ "::load\n", - "MACHINE Jupyter\n", - "DEFINITIONS // \"LibraryStrings.def\"\n", - " STRING_LENGTH(xxx) == length(xxx);\n", - " EXTERNAL_FUNCTION_STRING_LENGTH == STRING --> INTEGER;\n", - " \n", - " /* This external function takes two strings and concatenates them. */\n", - " STRING_APPEND(xxx,yyy) == append(xxx,yyy);\n", - " EXTERNAL_FUNCTION_STRING_APPEND == (STRING*STRING) --> STRING;\n", - "\n", - " /* This external function takes a sequence of strings and concatenates them. */\n", - " STRING_CONC(string_conc_list) == \"\";\n", - " EXTERNAL_FUNCTION_STRING_CONC == seq(STRING) --> STRING;\n", - " \n", - " /* This external function takes two strings and separates the first string\n", - " according to the separator specified by the second string. */\n", - " STRING_SPLIT(xxx,yyy) == split(xxx,yyy);\n", - " EXTERNAL_FUNCTION_STRING_SPLIT == ((STRING*STRING) --> (INTEGER<->STRING));\n", - " \n", - " /* This external function takes a sequence of strings and a separator string\n", - " and joins the strings together inserting the separators as often as needed.\n", - " It is the inverse of the STRING_SPLIT function. */\n", - " STRING_JOIN(xxx,yyy) == join(xxx,yyy);\n", - " EXTERNAL_FUNCTION_STRING_JOIN == (((INTEGER<->STRING)*STRING) --> STRING);\n", - " \n", - " STRING_CHARS(xxx) == chars(xxx);\n", - " EXTERNAL_FUNCTION_STRING_CHARS == (STRING --> (INTEGER<->STRING));\n", - " \n", - " STRING_CODES(xxx) == codes(xxx);\n", - " EXTERNAL_FUNCTION_STRING_CODES == (STRING --> (INTEGER<->INTEGER));\n", - " \n", - " /* This external function takes a string and converts it into an integer.\n", - " An error is raised if this cannot be done.\n", - " It is safer to first check with {\\tt STRING\\_IS\\_INT} whether the conversion can be done. */\n", - " STRING_TO_INT(sss) == 0;\n", - " EXTERNAL_FUNCTION_STRING_TO_INT == (STRING --> INTEGER);\n", - " \n", - " /* This external predicate takes a string and is true if the string represents an integer. */\n", - " STRING_IS_INT(sss) == (1=1);\n", - " EXTERNAL_PREDICATE_STRING_IS_INT == (STRING);\n", - " \n", - " /* This external function takes a decimal string (with optional decimal places)\n", - " and converts it to an integer with the given precision. */\n", - " EXTERNAL_FUNCTION_DEC_STRING_TO_INT == STRING * INTEGER --> INTEGER;\n", - " DEC_STRING_TO_INT(decimal_string,precision) == 0;\n", - " \n", - " /* parametric function; cannot be represented as constant function : */\n", - " STRING_TO_ENUM(sss) ==({}(1)); /* Note: you have to include the DEFINITION into your B file */\n", - " EXTERNAL_FUNCTION_STRING_TO_ENUM(STRING_TO_ENUM_TYPE) == (STRING --> STRING_TO_ENUM_TYPE);\n", - " TYPED_STRING_TO_ENUM(t,sss) ==({}(1));\n", - " EXTERNAL_FUNCTION_TYPED_STRING_TO_ENUM(STRING_TO_ENUM_TYPE) == \n", - " (POW(STRING_TO_ENUM_TYPE)*STRING --> STRING_TO_ENUM_TYPE);\n", - " \n", - " /* This external function converts an integer to a string representation. */\n", - " INT_TO_STRING(sss) == \"0\";\n", - " EXTERNAL_FUNCTION_INT_TO_STRING == (INTEGER --> STRING);\n", - " \n", - " /* This external function converts an integer to a decimal string representation\n", - " with the precision provided by the second argument. */\n", - " INT_TO_DEC_STRING(integer,precision) == \"0.0\";\n", - " EXTERNAL_FUNCTION_INT_TO_DEC_STRING == (INTEGER*INTEGER --> STRING);\n", - " \n", - " /* This external function converts a B data value to a string representation. */\n", - " TO_STRING(sss) == \"0\";\n", - " EXTERNAL_FUNCTION_TO_STRING(TO_STRING_TYPE) == (TO_STRING_TYPE --> STRING);\n", - " \n", - " /* This external function takes a format string and a B sequence of values and generates an output\n", - " string, where the values have been inserted into the format string in place of the ~w placeholders.\n", - " */\n", - " FORMAT_TO_STRING(MyFormatString,ListOfValues) == \"0\";\n", - " EXTERNAL_FUNCTION_FORMAT_TO_STRING(FORMAT_TO_STRING_TYPE) == ((STRING*seq(FORMAT_TO_STRING_TYPE)) --> STRING);\n", - " \n", - " /* This external function checks whether the second string occurs contiguously within the first string. */\n", - " EXTERNAL_FUNCTION_STRING_CONTAINS_STRING == (STRING*STRING)--> BOOL;\n", - " STRING_CONTAINS_STRING(arg1,arg2)==FALSE; // TRUE when arg2 occurs as contiguous substring in arg1\n", - "\n", + "MACHINE Jupyter_LibraryStrings\n", + "DEFINITIONS \"LibraryStrings.def\"\n", "END" ] }, @@ -1360,7 +1287,7 @@ "source": [ "## Choose Operator\n", "You can obtain access to the definitions below by putting the following into your DEFINITIONS clause:\n", - " `DEFINITIONS \"Choose.def\"`\n", + " `DEFINITIONS \"CHOOSE.def\"`\n", "\n", "### Choose\n", "\n", @@ -1384,12 +1311,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-13 09:48:06,965, T+8884] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", - "[2018-05-13 09:48:08,087, T+10006] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 54038\n", - "[2018-05-13 09:48:08,088, T+10007] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 62740\n", - "[2018-05-13 09:48:08,090, T+10009] \"ProB Output Logger for instance 2f1db1bc\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", - "[2018-05-13 09:48:08,107, T+10026] \"ProB Output Logger for instance 2f1db1bc\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", - "[2018-05-13 09:48:08,207, T+10126] \"ProB Output Logger for instance 2f1db1bc\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-04-11 12:07:37.302),Jupyter_CHOOSE,[/Users/leuschel/git_root/JAVAPROB/prob2-jupyter-kernel/notebooks/manual])\u001b[0m\n" + "[2018-05-16 13:20:18,426, T+11141] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/david/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", + "[2018-05-16 13:20:19,769, T+12484] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 57053\n", + "[2018-05-16 13:20:19,770, T+12485] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 1954\n", + "[2018-05-16 13:20:19,772, T+12487] \"ProB Output Logger for instance 28964c5\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", + "[2018-05-16 13:20:19,796, T+12511] \"ProB Output Logger for instance 28964c5\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", + "[2018-05-16 13:20:19,946, T+12661] \"ProB Output Logger for instance 28964c5\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-05-16 12:58:57.712),Jupyter_CHOOSE,[/Users/Shared/Uni/SHK/ProB2/prob2-jupyter-kernel/notebooks/manual,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/CHOOSE.def])\u001b[0m\n" ] }, { @@ -1406,10 +1333,8 @@ "source": [ "::load\n", "MACHINE Jupyter_CHOOSE\n", - "DEFINITIONS\n", - " CHOOSE(XXX) == \"a member of XXX\";\n", - " EXTERNAL_FUNCTION_CHOOSE(CHOOSE_TYPE) == (POW(CHOOSE_TYPE)-->CHOOSE_TYPE)\n", - " END" + "DEFINITIONS \"CHOOSE.def\"\n", + "END" ] }, { @@ -1519,7 +1444,7 @@ "The operator is useful for writing WHILE loops or recursive functions which manipulate sets.\n", "The following example defines a recursive summation function using the CHOOSE operator.\n", "\n", - "`\n", + "```\n", "MACHINE RecursiveSigmaCHOOSEv3\n", "DEFINITIONS\n", " \"Choose.def\"\n", @@ -1534,7 +1459,7 @@ "ASSERTIONS\n", " sigma({3,5,7}) = 15;\n", "END\n", - "`" + "```" ] }, { @@ -1567,18 +1492,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-13 09:48:08,755, T+10674] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", - "[2018-05-13 09:48:09,935, T+11854] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 54042\n", - "[2018-05-13 09:48:09,935, T+11854] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 62744\n", - "[2018-05-13 09:48:09,937, T+11856] \"ProB Output Logger for instance f4b34d8\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", - "[2018-05-13 09:48:09,963, T+11882] \"ProB Output Logger for instance f4b34d8\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", - "[2018-05-13 09:48:10,084, T+12003] \"ProB Output Logger for instance f4b34d8\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-04-11 12:07:37.302),Jupyter_CHOOSE,[/Users/leuschel/git_root/JAVAPROB/prob2-jupyter-kernel/notebooks/manual])\u001b[0m\n" + "[2018-05-16 13:20:20,560, T+13275] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/david/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", + "[2018-05-16 13:20:22,110, T+14825] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 57070\n", + "[2018-05-16 13:20:22,111, T+14826] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 1958\n", + "[2018-05-16 13:20:22,114, T+14829] \"ProB Output Logger for instance 1c63edfa\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", + "[2018-05-16 13:20:22,137, T+14852] \"ProB Output Logger for instance 1c63edfa\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", + "[2018-05-16 13:20:22,280, T+14995] \"ProB Output Logger for instance 1c63edfa\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-05-16 12:58:57.712),Jupyter_SORT,[/Users/Shared/Uni/SHK/ProB2/prob2-jupyter-kernel/notebooks/manual,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/SORT.def])\u001b[0m\n" ] }, { "data": { "text/plain": [ - "Loaded machine: Jupyter_CHOOSE : []\n" + "Loaded machine: Jupyter_SORT : []\n" ] }, "execution_count": 60, @@ -1588,11 +1513,9 @@ ], "source": [ "::load\n", - "MACHINE Jupyter_CHOOSE\n", - "DEFINITIONS\n", - " SORT(X) == [];\n", - " EXTERNAL_FUNCTION_SORT(T) == (POW(T)-->seq(T))\n", - " END" + "MACHINE Jupyter_SORT\n", + "DEFINITIONS \"SORT.def\"\n", + "END" ] }, { @@ -1700,46 +1623,36 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-13 10:25:48,398, T+2270317] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", - "[2018-05-13 10:25:49,665, T+2271584] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 56523\n", - "[2018-05-13 10:25:49,666, T+2271585] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 63566\n", - "[2018-05-13 10:25:49,670, T+2271589] \"ProB Output Logger for instance 26a501d7\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", - "[2018-05-13 10:25:49,687, T+2271606] \"ProB Output Logger for instance 26a501d7\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", - "[2018-05-13 10:25:49,803, T+2271722] \"ProB Output Logger for instance 26a501d7\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-04-11 12:07:37.302),Jupyter,[/Users/leuschel/git_root/JAVAPROB/prob2-jupyter-kernel/notebooks/manual])\u001b[0m\n" + "[2018-05-16 13:20:22,869, T+15584] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/david/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", + "[2018-05-16 13:20:24,234, T+16949] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 57087\n", + "[2018-05-16 13:20:24,235, T+16950] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 1962\n", + "[2018-05-16 13:20:24,237, T+16952] \"ProB Output Logger for instance 742efc90\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", + "[2018-05-16 13:20:24,255, T+16970] \"ProB Output Logger for instance 742efc90\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", + "[2018-05-16 13:20:24,405, T+17120] \"ProB Output Logger for instance 742efc90\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-05-16 12:58:57.712),Jupyter_LibraryMeta,[/Users/Shared/Uni/SHK/ProB2/prob2-jupyter-kernel/notebooks/manual,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/LibraryMeta.def])\u001b[0m\n" ] }, { "data": { "text/plain": [ - "Loaded machine: Jupyter : []\n" + "Loaded machine: Jupyter_LibraryMeta : []\n" ] }, - "execution_count": 84, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "::load\n", - "MACHINE Jupyter\n", - "DEFINITIONS\n", - " EXTERNAL_FUNCTION_PROB_INFO_STR == STRING --> STRING;\n", - " PROB_INFO_STR(info_field_name) == \"\";\n", - " EXTERNAL_FUNCTION_PROB_STATISTICS == STRING --> INTEGER;\n", - " PROB_STATISTICS(info_field_name) == 0;\n", - " EXTERNAL_FUNCTION_PROJECT_INFO == STRING --> POW(STRING);\n", - " PROJECT_INFO(info_field_name) == {};\n", - " EXTERNAL_FUNCTION_PROJECT_STATISTICS == STRING --> INTEGER;\n", - " PROJECT_STATISTICS(info_field_name) == 0;\n", - " EXTERNAL_FUNCTION_MACHINE_INFO == STRING * STRING --> STRING;\n", - " MACHINE_INFO(info_field_name,machine) == \"\"\n", + "MACHINE Jupyter_LibraryMeta\n", + "DEFINITIONS \"LibraryMeta.def\"\n", "END" ] }, @@ -1754,7 +1667,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 66, "metadata": {}, "outputs": [ { @@ -1763,7 +1676,7 @@ "\"1.8.1-beta4\"" ] }, - "execution_count": 68, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -1774,16 +1687,16 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"d30772a772f686c7972a16ddcb7fe9d79e4af54f\"" + "\"60150095a9bbe8cd7e75d9ef85686d632beb8840\"" ] }, - "execution_count": 70, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -1794,16 +1707,16 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"Fri May 11 14:29:42 2018 +0200\"" + "\"Wed May 16 07:45:07 2018 +0200\"" ] }, - "execution_count": 82, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } @@ -1814,16 +1727,16 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"1.8.0_152-b16\"" + "\"1.8.0_172-b11\"" ] }, - "execution_count": 71, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -1834,16 +1747,16 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"/usr/bin/java\"" + "\"/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java\"" ] }, - "execution_count": 80, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } @@ -1854,16 +1767,16 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"13/5/2018 - 10h18 8s\"" + "\"16/5/2018 - 13h20 25s\"" ] }, - "execution_count": 81, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -1890,16 +1803,16 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "150527440" + "150571952" ] }, - "execution_count": 73, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } @@ -1910,7 +1823,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 73, "metadata": {}, "outputs": [ { @@ -1919,7 +1832,7 @@ "1" ] }, - "execution_count": 74, + "execution_count": 73, "metadata": {}, "output_type": "execute_result" } @@ -1930,7 +1843,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 74, "metadata": {}, "outputs": [ { @@ -1939,7 +1852,7 @@ "0" ] }, - "execution_count": 75, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" } @@ -1950,7 +1863,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 75, "metadata": {}, "outputs": [ { @@ -1959,7 +1872,7 @@ "0" ] }, - "execution_count": 76, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } @@ -1970,7 +1883,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 76, "metadata": {}, "outputs": [ { @@ -1979,7 +1892,7 @@ "−1" ] }, - "execution_count": 77, + "execution_count": 76, "metadata": {}, "output_type": "execute_result" } @@ -1990,16 +1903,16 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1526199415" + "1526469625" ] }, - "execution_count": 78, + "execution_count": 77, "metadata": {}, "output_type": "execute_result" } @@ -2010,16 +1923,16 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1320" + "1600" ] }, - "execution_count": 79, + "execution_count": 78, "metadata": {}, "output_type": "execute_result" } @@ -2030,16 +1943,16 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1054870" + "2600" ] }, - "execution_count": 83, + "execution_count": 79, "metadata": {}, "output_type": "execute_result" } @@ -2076,7 +1989,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 80, "metadata": {}, "outputs": [ { @@ -2085,7 +1998,7 @@ "0" ] }, - "execution_count": 86, + "execution_count": 80, "metadata": {}, "output_type": "execute_result" } @@ -2096,7 +2009,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 81, "metadata": {}, "outputs": [ { @@ -2105,7 +2018,7 @@ "0" ] }, - "execution_count": 87, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } @@ -2116,7 +2029,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 82, "metadata": {}, "outputs": [ { @@ -2125,7 +2038,7 @@ "0" ] }, - "execution_count": 88, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } @@ -2136,7 +2049,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 83, "metadata": {}, "outputs": [ { @@ -2145,7 +2058,7 @@ "0" ] }, - "execution_count": 89, + "execution_count": 83, "metadata": {}, "output_type": "execute_result" } @@ -2156,7 +2069,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 84, "metadata": {}, "outputs": [ { @@ -2165,7 +2078,7 @@ "0" ] }, - "execution_count": 90, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" } @@ -2176,7 +2089,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 85, "metadata": {}, "outputs": [ { @@ -2185,7 +2098,7 @@ "0" ] }, - "execution_count": 91, + "execution_count": 85, "metadata": {}, "output_type": "execute_result" } @@ -2196,7 +2109,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 86, "metadata": {}, "outputs": [ { @@ -2205,7 +2118,7 @@ "0" ] }, - "execution_count": 92, + "execution_count": 86, "metadata": {}, "output_type": "execute_result" } @@ -2225,16 +2138,16 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{\"manual\"}" + "{\"LibraryMeta.def\",\"manual\"}" ] }, - "execution_count": 93, + "execution_count": 87, "metadata": {}, "output_type": "execute_result" } @@ -2245,7 +2158,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 88, "metadata": {}, "outputs": [ { @@ -2254,7 +2167,7 @@ "{\"from_string\"}" ] }, - "execution_count": 100, + "execution_count": 88, "metadata": {}, "output_type": "execute_result" } @@ -2265,7 +2178,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 89, "metadata": {}, "outputs": [ { @@ -2274,7 +2187,7 @@ "∅" ] }, - "execution_count": 94, + "execution_count": 89, "metadata": {}, "output_type": "execute_result" } @@ -2285,7 +2198,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 90, "metadata": {}, "outputs": [ { @@ -2294,7 +2207,7 @@ "∅" ] }, - "execution_count": 95, + "execution_count": 90, "metadata": {}, "output_type": "execute_result" } @@ -2305,7 +2218,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 91, "metadata": {}, "outputs": [ { @@ -2314,7 +2227,7 @@ "∅" ] }, - "execution_count": 96, + "execution_count": 91, "metadata": {}, "output_type": "execute_result" } @@ -2325,7 +2238,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 92, "metadata": {}, "outputs": [ { @@ -2334,7 +2247,7 @@ "∅" ] }, - "execution_count": 97, + "execution_count": 92, "metadata": {}, "output_type": "execute_result" } @@ -2345,7 +2258,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 93, "metadata": {}, "outputs": [ { @@ -2354,7 +2267,7 @@ "∅" ] }, - "execution_count": 98, + "execution_count": 93, "metadata": {}, "output_type": "execute_result" } @@ -2365,7 +2278,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 94, "metadata": {}, "outputs": [ { @@ -2374,7 +2287,7 @@ "∅" ] }, - "execution_count": 99, + "execution_count": 94, "metadata": {}, "output_type": "execute_result" } @@ -2417,7 +2330,7 @@ "An XML document is represented using the type seq(XML_ELement_Type), i.e., a sequence\n", " of XML elements, whose type is defined by the following (included in the LibraryXML.def file):\n", "\n", - "`\n", + "```\n", " XML_ELement_Type == \n", " struct(\n", " recId: NATURAL1,\n", @@ -2426,7 +2339,7 @@ " attributes: STRING +-> STRING,\n", " meta: STRING +-> STRING\n", " );\n", - "`\n", + "```\n", "\n", "### Files and Strings\n", "\n", @@ -2435,58 +2348,37 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 95, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-14 10:43:17,767, T+2118174] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", - "[2018-05-14 10:43:19,119, T+2119526] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 60266\n", - "[2018-05-14 10:43:19,120, T+2119527] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 71649\n", - "[2018-05-14 10:43:19,132, T+2119539] \"ProB Output Logger for instance 2fda6747\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", - "[2018-05-14 10:43:19,145, T+2119552] \"ProB Output Logger for instance 2fda6747\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", - "[2018-05-14 10:43:19,271, T+2119678] \"ProB Output Logger for instance 2fda6747\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-04-11 12:07:37.302),JupyterLibraryXML,[/Users/leuschel/git_root/JAVAPROB/prob2-jupyter-kernel/notebooks/manual])\u001b[0m\n" + "[2018-05-16 13:20:26,472, T+19187] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/david/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", + "[2018-05-16 13:20:27,833, T+20548] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 57112\n", + "[2018-05-16 13:20:27,834, T+20549] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 1967\n", + "[2018-05-16 13:20:27,836, T+20551] \"ProB Output Logger for instance 136352e6\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", + "[2018-05-16 13:20:27,853, T+20568] \"ProB Output Logger for instance 136352e6\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", + "[2018-05-16 13:20:27,989, T+20704] \"ProB Output Logger for instance 136352e6\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-05-16 12:58:57.712),Jupyter_LibraryXML,[/Users/Shared/Uni/SHK/ProB2/prob2-jupyter-kernel/notebooks/manual,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/LibraryXML.def])\u001b[0m\n" ] }, { "data": { "text/plain": [ - "Loaded machine: JupyterLibraryXML : []\n" + "Loaded machine: Jupyter_LibraryXML : []\n" ] }, - "execution_count": 1, + "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "::load\n", - "MACHINE JupyterLibraryXML\n", - "DEFINITIONS\n", - " XML_ELement_Type == \n", - " struct(\n", - " recId: NATURAL1,\n", - " pId:NATURAL,\n", - " element:STRING,\n", - " attributes: STRING +-> STRING,\n", - " meta: STRING +-> STRING\n", - " );\n", - " EXTERNAL_FUNCTION_READ_XML == (STRING * STRING) --> seq(XML_ELement_Type);\n", - " READ_XML(file,encoding) == {}; \n", - " // encoding can be \"auto\", \"ISO-8859-1\", \"ISO-8859-2\", \"ISO-8859-15\", \"UTF-8\", \"UTF-16\",\n", - " // \"UTF-16LE\",\"UTF-16BE\",\"UTF-32\",\"UTF-32LE\",\"UTF-32BE\", \"ANSI_X3.4-1968\", \"windows 1252\"\n", - " \n", - " EXTERNAL_FUNCTION_READ_XML_FROM_STRING == STRING --> seq(XML_ELement_Type);\n", - " READ_XML_FROM_STRING(contents) == {};\n", - " \n", - " EXTERNAL_FUNCTION_WRITE_XML_TO_STRING == seq(XML_ELement_Type) --> STRING;\n", - " WRITE_XML_TO_STRING(contents) == \"<?xml ...?>\";\n", - " \n", - " EXTERNAL_PREDICATE_WRITE_XML == seq(XML_ELement_Type) * STRING;\n", - " WRITE_XML(contents,file) == (1=1)\n", - " END" + "MACHINE Jupyter_LibraryXML\n", + "DEFINITIONS \"LibraryXML.def\"\n", + "END" ] }, { @@ -2500,14 +2392,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-14 10:44:22,117, T+2182524] \"ProB Output Logger for instance 2fda6747\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] % Walltime 10 ms to parse and convert XML\u001b[0m\n" + "[2018-05-16 13:20:28,298, T+21013] \"ProB Output Logger for instance 136352e6\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] % Walltime 20 ms to parse and convert XML\u001b[0m\n" ] }, { @@ -2516,7 +2408,7 @@ "{(1↦rec(attributes∈{(\"version\"↦\"0.1\")},element∈\"Data\",meta∈{(\"xmlLineNumber\"↦\"3\")},pId∈0,recId∈1)),(2↦rec(attributes∈{(\"attr1\"↦\"value1\"),(\"elemID\"↦\"ID1\")},element∈\"Tag1\",meta∈{(\"xmlLineNumber\"↦\"4\")},pId∈1,recId∈2))}" ] }, - "execution_count": 2, + "execution_count": 96, "metadata": {}, "output_type": "execute_result" } @@ -2545,13 +2437,6 @@ " \"UTF-8\",\"UTF-16\",\"UTF-16LE\",\"UTF-16BE\",\"UTF-32\",\"UTF-32LE\",\"UTF-32BE\",\n", " \"ANSI\\_X3.4-1968\", \"windows 1252\"." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/notebooks/tests/external_functions.ipynb b/notebooks/tests/external_functions.ipynb index ed9bab2..00ed34a 100644 --- a/notebooks/tests/external_functions.ipynb +++ b/notebooks/tests/external_functions.ipynb @@ -1,66 +1,20 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The following fails:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "ename": "ProBError", - "evalue": "ProB returned error messages:\nError: Definition file cannot be read: Loading of file content not supported.", - "output_type": "error", - "traceback": [ - "\u001b[1m\u001b[31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1m\u001b[31mde.prob.exception.ProBError: ProB returned error messages:\u001b[0m", - "\u001b[1m\u001b[31mError: Definition file cannot be read: Loading of file content not supported.\u001b[0m", - "\u001b[1m\u001b[31m\tat de.prob.scripting.ClassicalBFactory.parseString(ClassicalBFactory.java:137)\u001b[0m", - "\u001b[1m\u001b[31m\tat de.prob.scripting.ClassicalBFactory.create(ClassicalBFactory.java:55)\u001b[0m", - "\u001b[1m\u001b[31m\tat de.prob2.jupyter.commands.LoadCellCommand.run(LoadCellCommand.java:49)\u001b[0m", - "\u001b[1m\u001b[31m\tat de.prob2.jupyter.ProBKernel.executeCellCommand(ProBKernel.java:98)\u001b[0m", - "\u001b[1m\u001b[31m\tat de.prob2.jupyter.ProBKernel.eval(ProBKernel.java:168)\u001b[0m", - "\u001b[1m\u001b[31m\tat io.github.spencerpark.jupyter.kernel.BaseKernel.handleExecuteRequest(BaseKernel.java:282)\u001b[0m", - "\u001b[1m\u001b[31m\tat io.github.spencerpark.jupyter.channels.ShellChannel.lambda$bind$0(ShellChannel.java:50)\u001b[0m", - "\u001b[1m\u001b[31m\tat java.lang.Thread.run(Thread.java:748)\u001b[0m", - "\u001b[1m\u001b[31m\tat io.github.spencerpark.jupyter.channels.Loop.run(Loop.java:39)\u001b[0m" - ] - } - ], - "source": [ - "::load\n", - "MACHINE Jupyter\n", - " DEFINITIONS \"LibraryMeta.def\"; \"LibraryStrings.def\"\n", - "END" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The following works:" - ] - }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-11 13:05:25,769, T+420396] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", - "[2018-05-11 13:05:26,896, T+421523] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 61716\n", - "[2018-05-11 13:05:26,896, T+421523] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 40215\n", - "[2018-05-11 13:05:26,898, T+421525] \"ProB Output Logger for instance 502f39a7\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", - "[2018-05-11 13:05:26,922, T+421549] \"ProB Output Logger for instance 502f39a7\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", - "[2018-05-11 13:05:27,034, T+421661] \"ProB Output Logger for instance 502f39a7\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-04-11 12:07:37.302),Jupyter,[/Users/leuschel/git_root/JAVAPROB/prob2-jupyter-kernel/notebooks/tests])\u001b[0m\n" + "[2018-05-16 13:05:41,328, T+7460] \"Shell-0\" de.prob.cli.PrologProcessProvider.makeProcess(PrologProcessProvider.java:64): [INFO] Starting ProB's Prolog Core. Path is /Users/david/.prob/prob2-3.2.10-SNAPSHOT/probcli.sh\n", + "[2018-05-16 13:05:42,778, T+8910] \"Shell-0\" de.prob.cli.PortPattern.setValue(PortPattern.java:30): [INFO] Server has started and listens on port 50359\n", + "[2018-05-16 13:05:42,779, T+8911] \"Shell-0\" de.prob.cli.InterruptRefPattern.setValue(InterruptRefPattern.java:29): [INFO] Server can receive user interrupts via reference 1835\n", + "[2018-05-16 13:05:42,783, T+8915] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] -- starting command loop --\u001b[0m\n", + "[2018-05-16 13:05:42,801, T+8933] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] Connected: 127.0.0.1\u001b[0m\n", + "[2018-05-16 13:05:42,973, T+9105] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] loading_classical_b(parser_version(2018-05-16 12:58:57.712),Jupyter,[/Users/Shared/Uni/SHK/ProB2/prob2-jupyter-kernel/notebooks/tests,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/LibraryMeta.def,/Users/david/.prob/prob2-3.2.10-SNAPSHOT/stdlib/LibraryStrings.def])\u001b[0m\n" ] }, { @@ -69,7 +23,7 @@ "Loaded machine: Jupyter : []\n" ] }, - "execution_count": 8, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -77,17 +31,13 @@ "source": [ "::load\n", "MACHINE Jupyter\n", - "DEFINITIONS\n", - " EXTERNAL_FUNCTION_PROB_INFO_STR == STRING --> STRING;\n", - " PROB_INFO_STR(info_field_name) == \"\";\n", - " EXTERNAL_FUNCTION_PROB_STATISTICS == STRING --> INTEGER;\n", - " PROB_STATISTICS(info_field_name) == 0\n", + " DEFINITIONS \"LibraryMeta.def\"; \"LibraryStrings.def\"\n", "END" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -96,7 +46,7 @@ "\"1.8.1-beta4\"" ] }, - "execution_count": 3, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -107,16 +57,16 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"1.8.0_152-b16\"" + "\"1.8.0_172-b11\"" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -127,16 +77,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"363372b41a2862e778657c124d58da965a3bdaf0\"" + "\"60150095a9bbe8cd7e75d9ef85686d632beb8840\"" ] }, - "execution_count": 7, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -147,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -156,7 +106,7 @@ "1" ] }, - "execution_count": 9, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -167,16 +117,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "150458528" + "150586816" ] }, - "execution_count": 10, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -194,50 +144,43 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2018-05-11 13:01:48,465, T+203092] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[31m\u001b[1m! An error occurred !\u001b[0m\n", - "[2018-05-11 13:01:48,466, T+203093] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! source(parsercall)\u001b[0m\n", - "[2018-05-11 13:01:48,466, T+203093] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! Unexpected error while parsing machine: \u001b[0m\n", - "[2018-05-11 13:01:48,467, T+203094] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! An error occurred !\u001b[0m\n", - "[2018-05-11 13:01:48,467, T+203094] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! source(parsercall)\u001b[0m\n", - "[2018-05-11 13:01:48,468, T+203095] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! Additional information: Error: Could not find or load main class de.prob.cliparser.CliBParser\u001b[0m\n", - "[2018-05-11 13:01:48,469, T+203096] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! An error occurred !\u001b[0m\n", - "[2018-05-11 13:01:48,469, T+203096] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! source(internal_error(parsercall))\u001b[0m\n", - "[2018-05-11 13:01:48,470, T+203097] \"ProB Output Logger for instance 4dadeb3e\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! Java B parser (probcliparser.jar) is missing from lib directory in: /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/\u001b[0m\n" + "[2018-05-16 13:06:07,175, T+33307] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[31m\u001b[1m! An error occurred !\u001b[0m\n", + "[2018-05-16 13:06:07,176, T+33308] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! source(parsercall)\u001b[0m\n", + "[2018-05-16 13:06:07,176, T+33308] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! Unexpected error while parsing machine: \u001b[0m\n", + "[2018-05-16 13:06:07,177, T+33309] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! An error occurred !\u001b[0m\n", + "[2018-05-16 13:06:07,177, T+33309] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! source(parsercall)\u001b[0m\n", + "[2018-05-16 13:06:07,178, T+33310] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! Additional information: Fehler: Hauptklasse de.prob.cliparser.CliBParser konnte nicht gefunden oder geladen werden\u001b[0m\n", + "[2018-05-16 13:06:07,179, T+33311] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! An error occurred !\u001b[0m\n", + "[2018-05-16 13:06:07,179, T+33311] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! source(internal_error(parsercall))\u001b[0m\n", + "[2018-05-16 13:06:07,180, T+33312] \"ProB Output Logger for instance 62d429fd\" de.prob.cli.ProBInstance.readAndLog(ConsoleListener.java:48): [INFO] \u001b[0m\u001b[31m\u001b[1m! Java B parser (probcliparser.jar) is missing from lib directory in: /Users/david/.prob/prob2-3.2.10-SNAPSHOT/\u001b[0m\n" ] }, { "ename": "UserErrorException", - "evalue": "NOT-WELL-DEFINED: \nUnexpected error while parsing machine: \n\n\nAdditional information: Error: Could not find or load main class de.prob.cliparser.CliBParser\n\n\nJava B parser (probcliparser.jar) is missing from lib directory in: /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/\n\n", + "evalue": "NOT-WELL-DEFINED: \nUnexpected error while parsing machine: \n\n\nAdditional information: Fehler: Hauptklasse de.prob.cliparser.CliBParser konnte nicht gefunden oder geladen werden\n\n\nJava B parser (probcliparser.jar) is missing from lib directory in: /Users/david/.prob/prob2-3.2.10-SNAPSHOT/\n\n", "output_type": "error", "traceback": [ "\u001b[1m\u001b[31mNOT-WELL-DEFINED: \u001b[0m", "\u001b[1m\u001b[31mUnexpected error while parsing machine: \u001b[0m", "\u001b[1m\u001b[31m\u001b[0m", "\u001b[1m\u001b[31m\u001b[0m", - "\u001b[1m\u001b[31mAdditional information: Error: Could not find or load main class de.prob.cliparser.CliBParser\u001b[0m", + "\u001b[1m\u001b[31mAdditional information: Fehler: Hauptklasse de.prob.cliparser.CliBParser konnte nicht gefunden oder geladen werden\u001b[0m", "\u001b[1m\u001b[31m\u001b[0m", "\u001b[1m\u001b[31m\u001b[0m", - "\u001b[1m\u001b[31mJava B parser (probcliparser.jar) is missing from lib directory in: /Users/leuschel/.prob/prob2-3.2.10-SNAPSHOT/\u001b[0m" + "\u001b[1m\u001b[31mJava B parser (probcliparser.jar) is missing from lib directory in: /Users/david/.prob/prob2-3.2.10-SNAPSHOT/\u001b[0m" ] } ], "source": [ "PROB_INFO_STR(\"parser-version\")" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { -- GitLab