24 Commits

Author SHA1 Message Date
b72a17c190 Version bump for release 3.0.3. 2016-09-02 15:46:14 +02:00
6842bff04b Removed temporary directory. 2016-09-02 15:45:44 +02:00
6bec233e23 Moved IPC 2000 Elevator example instances to instance directory. 2016-09-02 15:44:33 +02:00
873ccef4ff Moved IPC 2008 OpenStacks example instances to instance directory. 2016-09-02 15:44:12 +02:00
4706d2915f Clarified how to plasp handle updates before executing the test suite. 2016-08-30 18:52:59 +02:00
1d59ad20c1 Merge branch 'develop' of github.com:potassco/plasp into develop 2016-08-30 18:48:40 +02:00
b4f7e4f102 Added test case covering unexpected whitespaces in SAS file. 2016-08-30 18:48:24 +02:00
e664fe8470 Updated readme file with new location of the meta encoding. 2016-08-30 14:28:29 +02:00
28b9d22a4c Hiding example instances from Linguist. 2016-08-30 13:05:03 +02:00
be376a9ffb Hiding mutex group section in output if there are none. 2016-08-30 13:02:00 +02:00
76f8df13fc Fixed parsing issue with unexpected whitespaces in SAS files. 2016-08-30 13:01:22 +02:00
9447912fbf Added a few SAS example instances for testing. 2016-08-29 18:26:59 +02:00
87717606b2 Moved PDDL example instances to subdirectory. 2016-08-29 17:49:57 +02:00
Torsten Schaub
348bc32cef generated some sas files from Rene's PDDL samples
- should be deleted later -
2016-08-28 21:00:05 +02:00
Torsten Schaub
fcdb0b65c2 fixed bug: frame axiom only on true fluents
renamed modified by changed (more frequent naming)
2016-08-28 20:53:25 +02:00
Torsten Schaub
0fb79d1268 just re-formatting 2016-08-26 18:21:33 +02:00
Torsten Schaub
69757e50ac fixed bug in conditional effects
- still one test screwing up -
2016-08-26 18:00:33 +02:00
06feeab244 Merge branch 'master' of github.com:potassco/plasp into develop 2016-08-26 15:51:07 +02:00
568945c7a8 Fixed incorrect output format of conditional effects with SAS. 2016-08-26 15:50:39 +02:00
dd33e47dd9 Fixed minor issues in output format documentation. 2016-08-26 15:42:39 +02:00
Torsten Schaub
7dfe760285 PRELIMINARY version of an encoding for sequential SAS planning
featuring: axioms and conditional effects
(extending Patrick's basic multi-valued encoding)
2016-08-23 18:31:33 +02:00
Torsten Schaub
d7b8cec50d simple fixed horizon-based encoding for sequential PDDL planning 2016-08-23 11:51:03 +02:00
Torsten Schaub
92f3018b89 first throw at PDDL specifc encoding for sequential planning using Boolean fluents only 2016-08-22 22:35:35 +02:00
3806fba9c2 Version bump after release 3.0.2. 2016-08-18 15:56:29 +02:00
65 changed files with 16952 additions and 32 deletions

1
.gitattributes vendored
View File

@@ -4,3 +4,4 @@
.travis.yml export-ignore
tests/data/* linguist-documentation
instances/* linguist-documentation

View File

@@ -1,5 +1,12 @@
# Change Log
## 3.0.3 (2016-09-02)
Bug Fixes:
* fixes incorrect output format of conditional effects with SAS
* fixes parsing issue with unexpected whitespaces in SAS files
## 3.0.2 (2016-08-18)
Features:

View File

@@ -35,11 +35,11 @@ $ plasp output.sas
### Solving the Translated Instance
The translated instance can finally be solved incrementally with `clingo` and a meta encoding, for instance, `pddl-meta-sequential-incremental.lp`:
The translated instance can finally be solved incrementally with `clingo` and a meta encoding, for instance, [`sequential-incremental.lp`](encodings/sequential-incremental.lp):
```bash
$ plasp domain.pddl problem.pddl > instance.lp
$ clingo encodings/pddl-meta-sequential-incremental.lp instance.lp
$ clingo encodings/sequential-incremental.lp instance.lp
```
## Command-Line Interface

View File

@@ -66,7 +66,7 @@ int main(int argc, char **argv)
if (variablesMap.count("version"))
{
std::cout << "plasp version 3.0.2" << std::endl;
std::cout << "plasp version 3.0.3" << std::endl;
return EXIT_SUCCESS;
}

View File

@@ -39,3 +39,6 @@ Finally, build and run the tests as follows:
```bash
$ make run-tests
```
After updating `plasp`, make sure to execute CMake again in order for the tests to run correctly.
Else, external files required by the test suite may be reported missing.

View File

@@ -69,7 +69,7 @@ type(type(<name>)).
% specifies that <type 1> inherits <type 2>
inherits(type(<type 1>), type(<type 2>)).
% specifies <constant> to be of type type(<name>)
% specifies <constant> to have type type(<name>)
has(<constant>, type(<name>)).
```
@@ -93,10 +93,10 @@ Variables are linked to the problem's [objects](#constants-objects) and [constan
`plasp`s variables are multivalued, and each variable has exactly one value at each point in time.
With SAS, variable names are numbers starting at 0, `variable(<number>)`.
SAS variables are inherently multivalued, which results in two or more values of the form `value(<SAS predicate>, <bool>)` for each variable.
SAS variables are inherently multivalued, which results in two or more values of the form `value(<SAS predicate>, <SAS value>)` for each variable.
With PDDL, Boolean variables are created from the PDDL predicates.
Variables ared named after the PDDL predicates, `variable(<PDDL predicate>).`
Variables are named after the PDDL predicates, `variable(<PDDL predicate>).`
Each variable contains exactly two values (one `true`, one `false`) of the form `value(<PDDL predicate>, <bool>)`.
Note that with PDDL, variables and values are named identically.
@@ -138,7 +138,7 @@ Actions may also have *action costs* required to apply them. Action costs are cu
% declares a <constant> or object
constant(constant(<name>)).
% specifies <constant> to be of type type(<name>)
% specifies <constant> to have type type(<name>)
has(<constant>, <type>).
```

View File

@@ -0,0 +1,28 @@
#const horizon=1.
step(0..horizon).
precondition(Action,variable(Fluent),Value) :- precondition(Action, variable(Fluent),value(Fluent,Value)).
postcondition(Action,variable(Fluent),Value) :- postcondition(Action,effect(unconditional),variable(Fluent),value(Fluent,Value)).
holds(variable(Fluent),0) :- initialState(variable(Fluent),value(Fluent,true)).
{ occurs(Action,T) : action(Action) } = 1 :- step(T), T>0.
:- occurs(Action,T), precondition(Action,Fluent,true), not holds(Fluent,T-1).
:- occurs(Action,T), precondition(Action,Fluent,false), holds(Fluent,T-1).
caused(Fluent,T) :- occurs(Action,T), postcondition(Action,Fluent,true).
holds(Fluent,T) :- caused(Fluent,T).
holds(Fluent,T) :- holds(Fluent,T-1), not occurs(Action,T) : postcondition(Action,Fluent,false); T<=horizon.
goalAt(T) :- holds(variable(Variable),T) : goal(variable(Variable), value(Variable,true));
not holds(variable(Variable),T) : goal(variable(Variable), value(Variable,false));
T=horizon.
:- not goalAt(horizon).
#show occurs/2.
% #show holds/2.

View File

@@ -0,0 +1,31 @@
#include <incmode>.
#program base.
precondition(Action,variable(Fluent),Value) :- precondition(Action, variable(Fluent),value(Fluent,Value)).
postcondition(Action,variable(Fluent),Value) :- postcondition(Action,effect(unconditional),variable(Fluent),value(Fluent,Value)).
holds(variable(Fluent),0) :- initialState(variable(Fluent),value(Fluent,true)).
#program step(t).
{ occurs(Action,t) : action(Action) } = 1.
:- occurs(Action,t), precondition(Action,Fluent,true), not holds(Fluent,t-1).
:- occurs(Action,t), precondition(Action,Fluent,false), holds(Fluent,t-1).
caused(Fluent,t) :- occurs(Action,t), postcondition(Action,Fluent,true).
holds(Fluent,t) :- caused(Fluent,t).
holds(Fluent,t) :- holds(Fluent,t-1), not occurs(Action,t) : postcondition(Action,Fluent,false).
#program check(t).
goalAt(t) :- holds(variable(Variable),t) : goal(variable(Variable), value(Variable,true));
not holds(variable(Variable),t) : goal(variable(Variable), value(Variable,false)).
:- not goalAt(t), query(t).
#show occurs/2.
% #show holds/2.

View File

@@ -0,0 +1,52 @@
#include <incmode>.
% Check feature requirements
% :- requires(feature(actionCosts)).
#program base.
% Establish initial state
holds(Variable, Value, 0) :- initialState(Variable, Value), not stateVariable(Variable).
% Identify (head and) state variables
headVariable(Rule,Variable) :- variable(Variable), axiomRule(Rule), postcondition(Rule,_,Variable,_).
stateVariable(Variable) :- headVariable(_,Variable).
#program step(t). % t=1,2,...
% Perform actions
1 {occurs(Action, t) : action(Action)} 1.
% Check preconditions
:- occurs(Action, t), precondition(Action, Variable, Value), not holds(Variable, Value, t - 1).
% Apply effects
caused(Variable, Value, t) :- occurs(Action, t), postcondition(Action, Effect, Variable, Value),
holds(Variable', Value', t - 1) : precondition(Effect, Variable', Value').
changed(Variable, t) :- caused(Variable, Value, t).
holds(Variable, Value, t) :- caused(Variable, Value, t).
holds(Variable, Value, t) :- holds(Variable, Value, t - 1), not changed(Variable, t), not stateVariable(Variable).
#program check(t). % t=0,1,...
% Check that variables have unique values
:- variable(Variable), {holds(Variable, Value, t) : contains(Variable, Value)} != 1.
% Check mutexes
:- mutexGroup(MutexGroup), {holds(Variable, Value, t) : contains(MutexGroup, Variable, Value)} > 1.
% Apply axioms
derived(Variable, Value, t) :- axiomRule(Rule), postcondition(Rule,_,Variable,Value),
holds(Variable', Value', t) : precondition(Rule, Variable', Value'), not headVariable(Rule,Variable').
modified(Variable, t) :- derived(Variable, Value, t).
holds(Variable, Value, t) :- derived(Variable, Value, t), stateVariable(Variable).
holds(Variable, Value, t) :- not modified(Variable, t), stateVariable(Variable), initialState(Variable, Value).
% Verify that goal is met
:- query(t), goal(Variable, Value), not holds(Variable, Value, t).
#show occurs/2.
% #show holds/3.

View File

@@ -27,6 +27,11 @@ class PDDLParserPolicy
return std::iswspace(c);
}
static bool isBlankCharacter(char c)
{
return std::isblank(c);
}
static bool isIdentifierCharacter(char c)
{
return c != '?'

View File

@@ -72,6 +72,7 @@ class Parser: public Stream, public ParserPolicy
std::string parseLine();
void skipWhiteSpace();
void skipBlankSpace();
void skipLine();
private:
@@ -124,6 +125,17 @@ void Parser<ParserPolicy>::skipWhiteSpace()
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class ParserPolicy>
void Parser<ParserPolicy>::skipBlankSpace()
{
check();
while (!atEnd() && ParserPolicy::isBlankCharacter(currentCharacter()))
advance();
}
////////////////////////////////////////////////////////////////////////////////////////////////////
template<class ParserPolicy>
void Parser<ParserPolicy>::skipLine()
{

View File

@@ -27,6 +27,11 @@ class CaseSensitiveParserPolicy
return std::iswspace(c);
}
static bool isBlankCharacter(char c)
{
return std::isblank(c);
}
static bool isIdentifierCharacter(char c)
{
return std::isgraph(c);
@@ -48,6 +53,11 @@ class CaseInsensitiveParserPolicy
return std::iswspace(c);
}
static bool isBlankCharacter(char c)
{
return std::isblank(c);
}
static bool isIdentifierCharacter(char c)
{
return std::isgraph(c);

View File

@@ -0,0 +1,76 @@
begin_version
3
end_version
begin_metric
0
end_metric
3
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom lift-at(f0)
Atom lift-at(f1)
end_variable
begin_variable
var2
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
1
begin_mutex_group
2
1 0
1 1
end_mutex_group
begin_state
1
0
1
end_state
begin_goal
1
2 0
end_goal
4
begin_operator
down f1 f0
0
1
0 1 1 0
1
end_operator
begin_operator
stop f0
1
1 0
2
0 0 -1 1
1 0 0 2 -1 0
1
end_operator
begin_operator
stop f1
1
1 1
1
1 2 1 0 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 1 0 1
1
end_operator
0

View File

@@ -0,0 +1,76 @@
begin_version
3
end_version
begin_metric
0
end_metric
3
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom lift-at(f0)
Atom lift-at(f1)
end_variable
begin_variable
var2
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
1
begin_mutex_group
2
1 0
1 1
end_mutex_group
begin_state
1
0
1
end_state
begin_goal
1
2 0
end_goal
4
begin_operator
down f1 f0
0
1
0 1 1 0
1
end_operator
begin_operator
stop f0
1
1 0
1
1 2 1 0 -1 0
1
end_operator
begin_operator
stop f1
1
1 1
2
0 0 -1 1
1 0 0 2 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 1 0 1
1
end_operator
0

View File

@@ -0,0 +1,76 @@
begin_version
3
end_version
begin_metric
0
end_metric
3
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom lift-at(f0)
Atom lift-at(f1)
end_variable
begin_variable
var2
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
1
begin_mutex_group
2
1 0
1 1
end_mutex_group
begin_state
1
0
1
end_state
begin_goal
1
2 0
end_goal
4
begin_operator
down f1 f0
0
1
0 1 1 0
1
end_operator
begin_operator
stop f0
1
1 0
2
0 0 -1 1
1 0 0 2 -1 0
1
end_operator
begin_operator
stop f1
1
1 1
1
1 2 1 0 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 1 0 1
1
end_operator
0

View File

@@ -0,0 +1,76 @@
begin_version
3
end_version
begin_metric
0
end_metric
3
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom lift-at(f0)
Atom lift-at(f1)
end_variable
begin_variable
var2
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
1
begin_mutex_group
2
1 0
1 1
end_mutex_group
begin_state
1
0
1
end_state
begin_goal
1
2 0
end_goal
4
begin_operator
down f1 f0
0
1
0 1 1 0
1
end_operator
begin_operator
stop f0
1
1 0
2
0 0 -1 1
1 0 0 2 -1 0
1
end_operator
begin_operator
stop f1
1
1 1
1
1 2 1 0 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 1 0 1
1
end_operator
0

View File

@@ -0,0 +1,76 @@
begin_version
3
end_version
begin_metric
0
end_metric
3
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom lift-at(f0)
Atom lift-at(f1)
end_variable
begin_variable
var2
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
1
begin_mutex_group
2
1 0
1 1
end_mutex_group
begin_state
1
0
1
end_state
begin_goal
1
2 0
end_goal
4
begin_operator
down f1 f0
0
1
0 1 1 0
1
end_operator
begin_operator
stop f0
1
1 0
2
0 0 -1 1
1 0 0 2 -1 0
1
end_operator
begin_operator
stop f1
1
1 1
1
1 2 1 0 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 1 0 1
1
end_operator
0

View File

@@ -0,0 +1,177 @@
begin_version
3
end_version
begin_metric
0
end_metric
5
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom boarded(p1)
NegatedAtom boarded(p1)
end_variable
begin_variable
var2
-1
4
Atom lift-at(f0)
Atom lift-at(f1)
Atom lift-at(f2)
Atom lift-at(f3)
end_variable
begin_variable
var3
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
begin_variable
var4
-1
2
Atom served(p1)
NegatedAtom served(p1)
end_variable
1
begin_mutex_group
4
2 0
2 1
2 2
2 3
end_mutex_group
begin_state
1
1
0
1
1
end_state
begin_goal
2
3 0
4 0
end_goal
15
begin_operator
down f1 f0
0
1
0 2 1 0
1
end_operator
begin_operator
down f2 f0
0
1
0 2 2 0
1
end_operator
begin_operator
down f2 f1
0
1
0 2 2 1
1
end_operator
begin_operator
down f3 f0
0
1
0 2 3 0
1
end_operator
begin_operator
down f3 f1
0
1
0 2 3 1
1
end_operator
begin_operator
down f3 f2
0
1
0 2 3 2
1
end_operator
begin_operator
stop f1
1
2 1
1
1 4 1 1 -1 0
1
end_operator
begin_operator
stop f2
1
2 2
2
0 0 -1 1
1 0 0 3 -1 0
1
end_operator
begin_operator
stop f3
1
2 3
3
1 3 1 0 -1 0
0 1 -1 1
1 1 0 4 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 2 0 1
1
end_operator
begin_operator
up f0 f2
0
1
0 2 0 2
1
end_operator
begin_operator
up f0 f3
0
1
0 2 0 3
1
end_operator
begin_operator
up f1 f2
0
1
0 2 1 2
1
end_operator
begin_operator
up f1 f3
0
1
0 2 1 3
1
end_operator
begin_operator
up f2 f3
0
1
0 2 2 3
1
end_operator
0

View File

@@ -0,0 +1,334 @@
begin_version
3
end_version
begin_metric
0
end_metric
7
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom boarded(p1)
NegatedAtom boarded(p1)
end_variable
begin_variable
var2
-1
2
Atom boarded(p2)
NegatedAtom boarded(p2)
end_variable
begin_variable
var3
-1
6
Atom lift-at(f0)
Atom lift-at(f1)
Atom lift-at(f2)
Atom lift-at(f3)
Atom lift-at(f4)
Atom lift-at(f5)
end_variable
begin_variable
var4
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
begin_variable
var5
-1
2
Atom served(p1)
NegatedAtom served(p1)
end_variable
begin_variable
var6
-1
2
Atom served(p2)
NegatedAtom served(p2)
end_variable
1
begin_mutex_group
6
3 0
3 1
3 2
3 3
3 4
3 5
end_mutex_group
begin_state
1
1
1
0
1
1
1
end_state
begin_goal
3
4 0
5 0
6 0
end_goal
34
begin_operator
down f1 f0
0
1
0 3 1 0
1
end_operator
begin_operator
down f2 f0
0
1
0 3 2 0
1
end_operator
begin_operator
down f2 f1
0
1
0 3 2 1
1
end_operator
begin_operator
down f3 f0
0
1
0 3 3 0
1
end_operator
begin_operator
down f3 f1
0
1
0 3 3 1
1
end_operator
begin_operator
down f3 f2
0
1
0 3 3 2
1
end_operator
begin_operator
down f4 f0
0
1
0 3 4 0
1
end_operator
begin_operator
down f4 f1
0
1
0 3 4 1
1
end_operator
begin_operator
down f4 f2
0
1
0 3 4 2
1
end_operator
begin_operator
down f4 f3
0
1
0 3 4 3
1
end_operator
begin_operator
down f5 f0
0
1
0 3 5 0
1
end_operator
begin_operator
down f5 f1
0
1
0 3 5 1
1
end_operator
begin_operator
down f5 f2
0
1
0 3 5 2
1
end_operator
begin_operator
down f5 f3
0
1
0 3 5 3
1
end_operator
begin_operator
down f5 f4
0
1
0 3 5 4
1
end_operator
begin_operator
stop f1
1
3 1
5
1 4 1 0 -1 0
0 1 -1 1
0 2 -1 1
1 1 0 5 -1 0
1 2 0 6 -1 0
1
end_operator
begin_operator
stop f3
1
3 3
1
1 5 1 1 -1 0
1
end_operator
begin_operator
stop f4
1
3 4
2
0 0 -1 1
1 0 0 4 -1 0
1
end_operator
begin_operator
stop f5
1
3 5
1
1 6 1 2 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 3 0 1
1
end_operator
begin_operator
up f0 f2
0
1
0 3 0 2
1
end_operator
begin_operator
up f0 f3
0
1
0 3 0 3
1
end_operator
begin_operator
up f0 f4
0
1
0 3 0 4
1
end_operator
begin_operator
up f0 f5
0
1
0 3 0 5
1
end_operator
begin_operator
up f1 f2
0
1
0 3 1 2
1
end_operator
begin_operator
up f1 f3
0
1
0 3 1 3
1
end_operator
begin_operator
up f1 f4
0
1
0 3 1 4
1
end_operator
begin_operator
up f1 f5
0
1
0 3 1 5
1
end_operator
begin_operator
up f2 f3
0
1
0 3 2 3
1
end_operator
begin_operator
up f2 f4
0
1
0 3 2 4
1
end_operator
begin_operator
up f2 f5
0
1
0 3 2 5
1
end_operator
begin_operator
up f3 f4
0
1
0 3 3 4
1
end_operator
begin_operator
up f3 f5
0
1
0 3 3 5
1
end_operator
begin_operator
up f4 f5
0
1
0 3 4 5
1
end_operator
0

View File

@@ -0,0 +1,823 @@
begin_version
3
end_version
begin_metric
0
end_metric
11
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom boarded(p1)
NegatedAtom boarded(p1)
end_variable
begin_variable
var2
-1
2
Atom boarded(p2)
NegatedAtom boarded(p2)
end_variable
begin_variable
var3
-1
2
Atom boarded(p3)
NegatedAtom boarded(p3)
end_variable
begin_variable
var4
-1
2
Atom boarded(p4)
NegatedAtom boarded(p4)
end_variable
begin_variable
var5
-1
10
Atom lift-at(f0)
Atom lift-at(f1)
Atom lift-at(f2)
Atom lift-at(f3)
Atom lift-at(f4)
Atom lift-at(f5)
Atom lift-at(f6)
Atom lift-at(f7)
Atom lift-at(f8)
Atom lift-at(f9)
end_variable
begin_variable
var6
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
begin_variable
var7
-1
2
Atom served(p1)
NegatedAtom served(p1)
end_variable
begin_variable
var8
-1
2
Atom served(p2)
NegatedAtom served(p2)
end_variable
begin_variable
var9
-1
2
Atom served(p3)
NegatedAtom served(p3)
end_variable
begin_variable
var10
-1
2
Atom served(p4)
NegatedAtom served(p4)
end_variable
1
begin_mutex_group
10
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
end_mutex_group
begin_state
1
1
1
1
1
0
1
1
1
1
1
end_state
begin_goal
5
6 0
7 0
8 0
9 0
10 0
end_goal
97
begin_operator
down f1 f0
0
1
0 5 1 0
1
end_operator
begin_operator
down f2 f0
0
1
0 5 2 0
1
end_operator
begin_operator
down f2 f1
0
1
0 5 2 1
1
end_operator
begin_operator
down f3 f0
0
1
0 5 3 0
1
end_operator
begin_operator
down f3 f1
0
1
0 5 3 1
1
end_operator
begin_operator
down f3 f2
0
1
0 5 3 2
1
end_operator
begin_operator
down f4 f0
0
1
0 5 4 0
1
end_operator
begin_operator
down f4 f1
0
1
0 5 4 1
1
end_operator
begin_operator
down f4 f2
0
1
0 5 4 2
1
end_operator
begin_operator
down f4 f3
0
1
0 5 4 3
1
end_operator
begin_operator
down f5 f0
0
1
0 5 5 0
1
end_operator
begin_operator
down f5 f1
0
1
0 5 5 1
1
end_operator
begin_operator
down f5 f2
0
1
0 5 5 2
1
end_operator
begin_operator
down f5 f3
0
1
0 5 5 3
1
end_operator
begin_operator
down f5 f4
0
1
0 5 5 4
1
end_operator
begin_operator
down f6 f0
0
1
0 5 6 0
1
end_operator
begin_operator
down f6 f1
0
1
0 5 6 1
1
end_operator
begin_operator
down f6 f2
0
1
0 5 6 2
1
end_operator
begin_operator
down f6 f3
0
1
0 5 6 3
1
end_operator
begin_operator
down f6 f4
0
1
0 5 6 4
1
end_operator
begin_operator
down f6 f5
0
1
0 5 6 5
1
end_operator
begin_operator
down f7 f0
0
1
0 5 7 0
1
end_operator
begin_operator
down f7 f1
0
1
0 5 7 1
1
end_operator
begin_operator
down f7 f2
0
1
0 5 7 2
1
end_operator
begin_operator
down f7 f3
0
1
0 5 7 3
1
end_operator
begin_operator
down f7 f4
0
1
0 5 7 4
1
end_operator
begin_operator
down f7 f5
0
1
0 5 7 5
1
end_operator
begin_operator
down f7 f6
0
1
0 5 7 6
1
end_operator
begin_operator
down f8 f0
0
1
0 5 8 0
1
end_operator
begin_operator
down f8 f1
0
1
0 5 8 1
1
end_operator
begin_operator
down f8 f2
0
1
0 5 8 2
1
end_operator
begin_operator
down f8 f3
0
1
0 5 8 3
1
end_operator
begin_operator
down f8 f4
0
1
0 5 8 4
1
end_operator
begin_operator
down f8 f5
0
1
0 5 8 5
1
end_operator
begin_operator
down f8 f6
0
1
0 5 8 6
1
end_operator
begin_operator
down f8 f7
0
1
0 5 8 7
1
end_operator
begin_operator
down f9 f0
0
1
0 5 9 0
1
end_operator
begin_operator
down f9 f1
0
1
0 5 9 1
1
end_operator
begin_operator
down f9 f2
0
1
0 5 9 2
1
end_operator
begin_operator
down f9 f3
0
1
0 5 9 3
1
end_operator
begin_operator
down f9 f4
0
1
0 5 9 4
1
end_operator
begin_operator
down f9 f5
0
1
0 5 9 5
1
end_operator
begin_operator
down f9 f6
0
1
0 5 9 6
1
end_operator
begin_operator
down f9 f7
0
1
0 5 9 7
1
end_operator
begin_operator
down f9 f8
0
1
0 5 9 8
1
end_operator
begin_operator
stop f1
1
5 1
2
0 4 -1 1
1 4 0 10 -1 0
1
end_operator
begin_operator
stop f2
1
5 2
2
0 3 -1 1
1 3 0 9 -1 0
1
end_operator
begin_operator
stop f3
1
5 3
2
1 6 1 0 -1 0
1 8 1 2 -1 0
1
end_operator
begin_operator
stop f5
1
5 5
4
0 1 -1 1
0 2 -1 1
1 1 0 7 -1 0
1 2 0 8 -1 0
1
end_operator
begin_operator
stop f6
1
5 6
3
0 0 -1 1
1 9 1 3 -1 0
1 0 0 6 -1 0
1
end_operator
begin_operator
stop f7
1
5 7
1
1 7 1 1 -1 0
1
end_operator
begin_operator
stop f9
1
5 9
1
1 10 1 4 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 5 0 1
1
end_operator
begin_operator
up f0 f2
0
1
0 5 0 2
1
end_operator
begin_operator
up f0 f3
0
1
0 5 0 3
1
end_operator
begin_operator
up f0 f4
0
1
0 5 0 4
1
end_operator
begin_operator
up f0 f5
0
1
0 5 0 5
1
end_operator
begin_operator
up f0 f6
0
1
0 5 0 6
1
end_operator
begin_operator
up f0 f7
0
1
0 5 0 7
1
end_operator
begin_operator
up f0 f8
0
1
0 5 0 8
1
end_operator
begin_operator
up f0 f9
0
1
0 5 0 9
1
end_operator
begin_operator
up f1 f2
0
1
0 5 1 2
1
end_operator
begin_operator
up f1 f3
0
1
0 5 1 3
1
end_operator
begin_operator
up f1 f4
0
1
0 5 1 4
1
end_operator
begin_operator
up f1 f5
0
1
0 5 1 5
1
end_operator
begin_operator
up f1 f6
0
1
0 5 1 6
1
end_operator
begin_operator
up f1 f7
0
1
0 5 1 7
1
end_operator
begin_operator
up f1 f8
0
1
0 5 1 8
1
end_operator
begin_operator
up f1 f9
0
1
0 5 1 9
1
end_operator
begin_operator
up f2 f3
0
1
0 5 2 3
1
end_operator
begin_operator
up f2 f4
0
1
0 5 2 4
1
end_operator
begin_operator
up f2 f5
0
1
0 5 2 5
1
end_operator
begin_operator
up f2 f6
0
1
0 5 2 6
1
end_operator
begin_operator
up f2 f7
0
1
0 5 2 7
1
end_operator
begin_operator
up f2 f8
0
1
0 5 2 8
1
end_operator
begin_operator
up f2 f9
0
1
0 5 2 9
1
end_operator
begin_operator
up f3 f4
0
1
0 5 3 4
1
end_operator
begin_operator
up f3 f5
0
1
0 5 3 5
1
end_operator
begin_operator
up f3 f6
0
1
0 5 3 6
1
end_operator
begin_operator
up f3 f7
0
1
0 5 3 7
1
end_operator
begin_operator
up f3 f8
0
1
0 5 3 8
1
end_operator
begin_operator
up f3 f9
0
1
0 5 3 9
1
end_operator
begin_operator
up f4 f5
0
1
0 5 4 5
1
end_operator
begin_operator
up f4 f6
0
1
0 5 4 6
1
end_operator
begin_operator
up f4 f7
0
1
0 5 4 7
1
end_operator
begin_operator
up f4 f8
0
1
0 5 4 8
1
end_operator
begin_operator
up f4 f9
0
1
0 5 4 9
1
end_operator
begin_operator
up f5 f6
0
1
0 5 5 6
1
end_operator
begin_operator
up f5 f7
0
1
0 5 5 7
1
end_operator
begin_operator
up f5 f8
0
1
0 5 5 8
1
end_operator
begin_operator
up f5 f9
0
1
0 5 5 9
1
end_operator
begin_operator
up f6 f7
0
1
0 5 6 7
1
end_operator
begin_operator
up f6 f8
0
1
0 5 6 8
1
end_operator
begin_operator
up f6 f9
0
1
0 5 6 9
1
end_operator
begin_operator
up f7 f8
0
1
0 5 7 8
1
end_operator
begin_operator
up f7 f9
0
1
0 5 7 9
1
end_operator
begin_operator
up f8 f9
0
1
0 5 8 9
1
end_operator
0

View File

@@ -0,0 +1,823 @@
begin_version
3
end_version
begin_metric
0
end_metric
11
begin_variable
var0
-1
2
Atom boarded(p0)
NegatedAtom boarded(p0)
end_variable
begin_variable
var1
-1
2
Atom boarded(p1)
NegatedAtom boarded(p1)
end_variable
begin_variable
var2
-1
2
Atom boarded(p2)
NegatedAtom boarded(p2)
end_variable
begin_variable
var3
-1
2
Atom boarded(p3)
NegatedAtom boarded(p3)
end_variable
begin_variable
var4
-1
2
Atom boarded(p4)
NegatedAtom boarded(p4)
end_variable
begin_variable
var5
-1
10
Atom lift-at(f0)
Atom lift-at(f1)
Atom lift-at(f2)
Atom lift-at(f3)
Atom lift-at(f4)
Atom lift-at(f5)
Atom lift-at(f6)
Atom lift-at(f7)
Atom lift-at(f8)
Atom lift-at(f9)
end_variable
begin_variable
var6
-1
2
Atom served(p0)
NegatedAtom served(p0)
end_variable
begin_variable
var7
-1
2
Atom served(p1)
NegatedAtom served(p1)
end_variable
begin_variable
var8
-1
2
Atom served(p2)
NegatedAtom served(p2)
end_variable
begin_variable
var9
-1
2
Atom served(p3)
NegatedAtom served(p3)
end_variable
begin_variable
var10
-1
2
Atom served(p4)
NegatedAtom served(p4)
end_variable
1
begin_mutex_group
10
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
end_mutex_group
begin_state
1
1
1
1
1
0
1
1
1
1
1
end_state
begin_goal
5
6 0
7 0
8 0
9 0
10 0
end_goal
97
begin_operator
down f1 f0
0
1
0 5 1 0
1
end_operator
begin_operator
down f2 f0
0
1
0 5 2 0
1
end_operator
begin_operator
down f2 f1
0
1
0 5 2 1
1
end_operator
begin_operator
down f3 f0
0
1
0 5 3 0
1
end_operator
begin_operator
down f3 f1
0
1
0 5 3 1
1
end_operator
begin_operator
down f3 f2
0
1
0 5 3 2
1
end_operator
begin_operator
down f4 f0
0
1
0 5 4 0
1
end_operator
begin_operator
down f4 f1
0
1
0 5 4 1
1
end_operator
begin_operator
down f4 f2
0
1
0 5 4 2
1
end_operator
begin_operator
down f4 f3
0
1
0 5 4 3
1
end_operator
begin_operator
down f5 f0
0
1
0 5 5 0
1
end_operator
begin_operator
down f5 f1
0
1
0 5 5 1
1
end_operator
begin_operator
down f5 f2
0
1
0 5 5 2
1
end_operator
begin_operator
down f5 f3
0
1
0 5 5 3
1
end_operator
begin_operator
down f5 f4
0
1
0 5 5 4
1
end_operator
begin_operator
down f6 f0
0
1
0 5 6 0
1
end_operator
begin_operator
down f6 f1
0
1
0 5 6 1
1
end_operator
begin_operator
down f6 f2
0
1
0 5 6 2
1
end_operator
begin_operator
down f6 f3
0
1
0 5 6 3
1
end_operator
begin_operator
down f6 f4
0
1
0 5 6 4
1
end_operator
begin_operator
down f6 f5
0
1
0 5 6 5
1
end_operator
begin_operator
down f7 f0
0
1
0 5 7 0
1
end_operator
begin_operator
down f7 f1
0
1
0 5 7 1
1
end_operator
begin_operator
down f7 f2
0
1
0 5 7 2
1
end_operator
begin_operator
down f7 f3
0
1
0 5 7 3
1
end_operator
begin_operator
down f7 f4
0
1
0 5 7 4
1
end_operator
begin_operator
down f7 f5
0
1
0 5 7 5
1
end_operator
begin_operator
down f7 f6
0
1
0 5 7 6
1
end_operator
begin_operator
down f8 f0
0
1
0 5 8 0
1
end_operator
begin_operator
down f8 f1
0
1
0 5 8 1
1
end_operator
begin_operator
down f8 f2
0
1
0 5 8 2
1
end_operator
begin_operator
down f8 f3
0
1
0 5 8 3
1
end_operator
begin_operator
down f8 f4
0
1
0 5 8 4
1
end_operator
begin_operator
down f8 f5
0
1
0 5 8 5
1
end_operator
begin_operator
down f8 f6
0
1
0 5 8 6
1
end_operator
begin_operator
down f8 f7
0
1
0 5 8 7
1
end_operator
begin_operator
down f9 f0
0
1
0 5 9 0
1
end_operator
begin_operator
down f9 f1
0
1
0 5 9 1
1
end_operator
begin_operator
down f9 f2
0
1
0 5 9 2
1
end_operator
begin_operator
down f9 f3
0
1
0 5 9 3
1
end_operator
begin_operator
down f9 f4
0
1
0 5 9 4
1
end_operator
begin_operator
down f9 f5
0
1
0 5 9 5
1
end_operator
begin_operator
down f9 f6
0
1
0 5 9 6
1
end_operator
begin_operator
down f9 f7
0
1
0 5 9 7
1
end_operator
begin_operator
down f9 f8
0
1
0 5 9 8
1
end_operator
begin_operator
stop f0
1
5 0
5
1 6 1 0 -1 0
0 3 -1 1
0 4 -1 1
1 3 0 9 -1 0
1 4 0 10 -1 0
1
end_operator
begin_operator
stop f1
1
5 1
3
0 0 -1 1
1 10 1 4 -1 0
1 0 0 6 -1 0
1
end_operator
begin_operator
stop f3
1
5 3
2
0 2 -1 1
1 2 0 8 -1 0
1
end_operator
begin_operator
stop f4
1
5 4
2
0 1 -1 1
1 1 0 7 -1 0
1
end_operator
begin_operator
stop f5
1
5 5
1
1 9 1 3 -1 0
1
end_operator
begin_operator
stop f6
1
5 6
1
1 8 1 2 -1 0
1
end_operator
begin_operator
stop f9
1
5 9
1
1 7 1 1 -1 0
1
end_operator
begin_operator
up f0 f1
0
1
0 5 0 1
1
end_operator
begin_operator
up f0 f2
0
1
0 5 0 2
1
end_operator
begin_operator
up f0 f3
0
1
0 5 0 3
1
end_operator
begin_operator
up f0 f4
0
1
0 5 0 4
1
end_operator
begin_operator
up f0 f5
0
1
0 5 0 5
1
end_operator
begin_operator
up f0 f6
0
1
0 5 0 6
1
end_operator
begin_operator
up f0 f7
0
1
0 5 0 7
1
end_operator
begin_operator
up f0 f8
0
1
0 5 0 8
1
end_operator
begin_operator
up f0 f9
0
1
0 5 0 9
1
end_operator
begin_operator
up f1 f2
0
1
0 5 1 2
1
end_operator
begin_operator
up f1 f3
0
1
0 5 1 3
1
end_operator
begin_operator
up f1 f4
0
1
0 5 1 4
1
end_operator
begin_operator
up f1 f5
0
1
0 5 1 5
1
end_operator
begin_operator
up f1 f6
0
1
0 5 1 6
1
end_operator
begin_operator
up f1 f7
0
1
0 5 1 7
1
end_operator
begin_operator
up f1 f8
0
1
0 5 1 8
1
end_operator
begin_operator
up f1 f9
0
1
0 5 1 9
1
end_operator
begin_operator
up f2 f3
0
1
0 5 2 3
1
end_operator
begin_operator
up f2 f4
0
1
0 5 2 4
1
end_operator
begin_operator
up f2 f5
0
1
0 5 2 5
1
end_operator
begin_operator
up f2 f6
0
1
0 5 2 6
1
end_operator
begin_operator
up f2 f7
0
1
0 5 2 7
1
end_operator
begin_operator
up f2 f8
0
1
0 5 2 8
1
end_operator
begin_operator
up f2 f9
0
1
0 5 2 9
1
end_operator
begin_operator
up f3 f4
0
1
0 5 3 4
1
end_operator
begin_operator
up f3 f5
0
1
0 5 3 5
1
end_operator
begin_operator
up f3 f6
0
1
0 5 3 6
1
end_operator
begin_operator
up f3 f7
0
1
0 5 3 7
1
end_operator
begin_operator
up f3 f8
0
1
0 5 3 8
1
end_operator
begin_operator
up f3 f9
0
1
0 5 3 9
1
end_operator
begin_operator
up f4 f5
0
1
0 5 4 5
1
end_operator
begin_operator
up f4 f6
0
1
0 5 4 6
1
end_operator
begin_operator
up f4 f7
0
1
0 5 4 7
1
end_operator
begin_operator
up f4 f8
0
1
0 5 4 8
1
end_operator
begin_operator
up f4 f9
0
1
0 5 4 9
1
end_operator
begin_operator
up f5 f6
0
1
0 5 5 6
1
end_operator
begin_operator
up f5 f7
0
1
0 5 5 7
1
end_operator
begin_operator
up f5 f8
0
1
0 5 5 8
1
end_operator
begin_operator
up f5 f9
0
1
0 5 5 9
1
end_operator
begin_operator
up f6 f7
0
1
0 5 6 7
1
end_operator
begin_operator
up f6 f8
0
1
0 5 6 8
1
end_operator
begin_operator
up f6 f9
0
1
0 5 6 9
1
end_operator
begin_operator
up f7 f8
0
1
0 5 7 8
1
end_operator
begin_operator
up f7 f9
0
1
0 5 7 9
1
end_operator
begin_operator
up f8 f9
0
1
0 5 8 9
1
end_operator
0

View File

@@ -0,0 +1,921 @@
begin_version
3
end_version
begin_metric
0
end_metric
34
begin_variable
var0
-1
15
Atom airborne(airplane_cfbeg, seg_rwe_0_50)
Atom airborne(airplane_cfbeg, seg_rww_0_50)
Atom at-segment(airplane_cfbeg, seg_pp_0_60)
Atom at-segment(airplane_cfbeg, seg_ppdoor_0_40)
Atom at-segment(airplane_cfbeg, seg_rw_0_400)
Atom at-segment(airplane_cfbeg, seg_rwe_0_50)
Atom at-segment(airplane_cfbeg, seg_rww_0_50)
Atom at-segment(airplane_cfbeg, seg_twe1_0_200)
Atom at-segment(airplane_cfbeg, seg_twe2_0_50)
Atom at-segment(airplane_cfbeg, seg_twe3_0_50)
Atom at-segment(airplane_cfbeg, seg_twe4_0_50)
Atom at-segment(airplane_cfbeg, seg_tww1_0_200)
Atom at-segment(airplane_cfbeg, seg_tww2_0_50)
Atom at-segment(airplane_cfbeg, seg_tww3_0_50)
Atom at-segment(airplane_cfbeg, seg_tww4_0_50)
end_variable
begin_variable
var1
-1
2
Atom blocked(seg_pp_0_60, airplane_cfbeg)
NegatedAtom blocked(seg_pp_0_60, airplane_cfbeg)
end_variable
begin_variable
var2
-1
2
Atom blocked(seg_ppdoor_0_40, airplane_cfbeg)
NegatedAtom blocked(seg_ppdoor_0_40, airplane_cfbeg)
end_variable
begin_variable
var3
-1
2
Atom blocked(seg_rw_0_400, airplane_cfbeg)
NegatedAtom blocked(seg_rw_0_400, airplane_cfbeg)
end_variable
begin_variable
var4
-1
2
Atom blocked(seg_rwe_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_rwe_0_50, airplane_cfbeg)
end_variable
begin_variable
var5
-1
2
Atom blocked(seg_rwtw1_0_10, airplane_cfbeg)
NegatedAtom blocked(seg_rwtw1_0_10, airplane_cfbeg)
end_variable
begin_variable
var6
-1
2
Atom blocked(seg_rww_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_rww_0_50, airplane_cfbeg)
end_variable
begin_variable
var7
-1
2
Atom blocked(seg_twe1_0_200, airplane_cfbeg)
NegatedAtom blocked(seg_twe1_0_200, airplane_cfbeg)
end_variable
begin_variable
var8
-1
2
Atom blocked(seg_twe2_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_twe2_0_50, airplane_cfbeg)
end_variable
begin_variable
var9
-1
2
Atom blocked(seg_twe3_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_twe3_0_50, airplane_cfbeg)
end_variable
begin_variable
var10
-1
2
Atom blocked(seg_twe4_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_twe4_0_50, airplane_cfbeg)
end_variable
begin_variable
var11
-1
2
Atom blocked(seg_tww1_0_200, airplane_cfbeg)
NegatedAtom blocked(seg_tww1_0_200, airplane_cfbeg)
end_variable
begin_variable
var12
-1
2
Atom blocked(seg_tww2_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_tww2_0_50, airplane_cfbeg)
end_variable
begin_variable
var13
-1
2
Atom blocked(seg_tww3_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_tww3_0_50, airplane_cfbeg)
end_variable
begin_variable
var14
-1
2
Atom blocked(seg_tww4_0_50, airplane_cfbeg)
NegatedAtom blocked(seg_tww4_0_50, airplane_cfbeg)
end_variable
begin_variable
var15
-1
2
Atom facing(airplane_cfbeg, north)
Atom facing(airplane_cfbeg, south)
end_variable
begin_variable
var16
-1
14
Atom is-moving(airplane_cfbeg)
Atom is-parked(airplane_cfbeg, seg_pp_0_60)
Atom is-parked(airplane_cfbeg, seg_ppdoor_0_40)
Atom is-parked(airplane_cfbeg, seg_rw_0_400)
Atom is-parked(airplane_cfbeg, seg_rwe_0_50)
Atom is-parked(airplane_cfbeg, seg_rww_0_50)
Atom is-parked(airplane_cfbeg, seg_twe1_0_200)
Atom is-parked(airplane_cfbeg, seg_twe2_0_50)
Atom is-parked(airplane_cfbeg, seg_twe3_0_50)
Atom is-parked(airplane_cfbeg, seg_twe4_0_50)
Atom is-parked(airplane_cfbeg, seg_tww1_0_200)
Atom is-parked(airplane_cfbeg, seg_tww2_0_50)
Atom is-parked(airplane_cfbeg, seg_tww3_0_50)
Atom is-parked(airplane_cfbeg, seg_tww4_0_50)
end_variable
begin_variable
var17
1
2
Atom new-axiom@1(south, seg_ppdoor_0_40, seg_tww1_0_200, medium)
NegatedAtom new-axiom@1(south, seg_ppdoor_0_40, seg_tww1_0_200, medium)
end_variable
begin_variable
var18
1
2
Atom new-axiom@1(south, seg_rw_0_400, seg_rww_0_50, medium)
NegatedAtom new-axiom@1(south, seg_rw_0_400, seg_rww_0_50, medium)
end_variable
begin_variable
var19
1
2
Atom new-axiom@1(south, seg_tww1_0_200, seg_ppdoor_0_40, medium)
NegatedAtom new-axiom@1(south, seg_tww1_0_200, seg_ppdoor_0_40, medium)
end_variable
begin_variable
var20
1
2
Atom new-axiom@1(south, seg_tww1_0_200, seg_twe1_0_200, medium)
NegatedAtom new-axiom@1(south, seg_tww1_0_200, seg_twe1_0_200, medium)
end_variable
begin_variable
var21
-1
2
Atom occupied(seg_pp_0_60)
NegatedAtom occupied(seg_pp_0_60)
end_variable
begin_variable
var22
-1
2
Atom occupied(seg_ppdoor_0_40)
NegatedAtom occupied(seg_ppdoor_0_40)
end_variable
begin_variable
var23
-1
2
Atom occupied(seg_rw_0_400)
NegatedAtom occupied(seg_rw_0_400)
end_variable
begin_variable
var24
-1
2
Atom occupied(seg_rwe_0_50)
NegatedAtom occupied(seg_rwe_0_50)
end_variable
begin_variable
var25
-1
2
Atom occupied(seg_rww_0_50)
NegatedAtom occupied(seg_rww_0_50)
end_variable
begin_variable
var26
-1
2
Atom occupied(seg_twe1_0_200)
NegatedAtom occupied(seg_twe1_0_200)
end_variable
begin_variable
var27
-1
2
Atom occupied(seg_twe2_0_50)
NegatedAtom occupied(seg_twe2_0_50)
end_variable
begin_variable
var28
-1
2
Atom occupied(seg_twe3_0_50)
NegatedAtom occupied(seg_twe3_0_50)
end_variable
begin_variable
var29
-1
2
Atom occupied(seg_twe4_0_50)
NegatedAtom occupied(seg_twe4_0_50)
end_variable
begin_variable
var30
-1
2
Atom occupied(seg_tww1_0_200)
NegatedAtom occupied(seg_tww1_0_200)
end_variable
begin_variable
var31
-1
2
Atom occupied(seg_tww2_0_50)
NegatedAtom occupied(seg_tww2_0_50)
end_variable
begin_variable
var32
-1
2
Atom occupied(seg_tww3_0_50)
NegatedAtom occupied(seg_tww3_0_50)
end_variable
begin_variable
var33
-1
2
Atom occupied(seg_tww4_0_50)
NegatedAtom occupied(seg_tww4_0_50)
end_variable
4
begin_mutex_group
15
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
end_mutex_group
begin_mutex_group
13
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
end_mutex_group
begin_mutex_group
2
15 0
15 1
end_mutex_group
begin_mutex_group
14
16 0
16 1
16 2
16 3
16 4
16 5
16 6
16 7
16 8
16 9
16 10
16 11
16 12
16 13
end_mutex_group
begin_state
4
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
end_state
begin_goal
1
16 1
end_goal
43
begin_operator
move airplane_cfbeg medium north seg_pp_0_60 seg_ppdoor_0_40 north
2
15 0
16 0
5
0 0 2 3
0 1 -1 0
0 2 -1 0
0 21 -1 1
0 22 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium north seg_ppdoor_0_40 seg_tww1_0_200 south
2
16 0
17 1
8
0 0 3 11
0 1 -1 1
0 2 -1 0
0 7 -1 0
0 11 -1 0
0 15 0 1
0 22 -1 1
0 30 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium north seg_tww1_0_200 seg_ppdoor_0_40 south
2
16 0
19 1
8
0 0 11 3
0 2 -1 0
0 7 -1 0
0 11 -1 0
0 12 -1 1
0 15 0 1
0 22 -1 0
0 30 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium north seg_tww1_0_200 seg_twe1_0_200 south
2
16 0
20 1
8
0 0 11 7
0 2 -1 0
0 7 -1 0
0 11 -1 0
0 12 -1 1
0 15 0 1
0 26 -1 0
0 30 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium north seg_tww2_0_50 seg_tww1_0_200 north
2
15 0
16 0
6
0 0 12 11
0 11 -1 0
0 12 -1 0
0 13 -1 1
0 30 -1 0
0 31 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium north seg_tww3_0_50 seg_tww2_0_50 north
2
15 0
16 0
6
0 0 13 12
0 12 -1 0
0 13 -1 0
0 14 -1 1
0 31 -1 0
0 32 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium north seg_tww4_0_50 seg_tww3_0_50 north
2
15 0
16 0
7
0 0 14 13
0 5 -1 1
0 6 -1 1
0 13 -1 0
0 14 -1 0
0 32 -1 0
0 33 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_ppdoor_0_40 seg_pp_0_60 south
2
15 1
16 0
7
0 0 3 2
0 1 -1 0
0 2 -1 0
0 7 -1 1
0 11 -1 1
0 21 -1 0
0 22 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_rw_0_400 seg_rww_0_50 south
3
15 1
16 0
18 1
6
0 0 4 6
0 3 -1 0
0 4 -1 0
0 6 -1 0
0 23 -1 1
0 25 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_rwe_0_50 seg_rw_0_400 south
2
15 1
16 0
6
0 0 5 4
0 3 -1 0
0 4 -1 0
0 10 -1 1
0 23 -1 0
0 24 -1 1
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_rww_0_50 seg_tww4_0_50 north
1
16 0
9
0 0 6 14
0 3 -1 1
0 4 -1 1
0 5 -1 0
0 6 -1 0
0 14 -1 0
0 15 1 0
0 25 -1 1
0 33 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_twe1_0_200 seg_twe2_0_50 south
2
15 1
16 0
7
0 0 7 8
0 2 -1 1
0 7 -1 0
0 8 -1 0
0 11 -1 1
0 26 -1 1
0 27 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_twe2_0_50 seg_twe3_0_50 south
2
15 1
16 0
6
0 0 8 9
0 7 -1 1
0 8 -1 0
0 9 -1 0
0 27 -1 1
0 28 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_twe3_0_50 seg_twe4_0_50 south
2
15 1
16 0
6
0 0 9 10
0 8 -1 1
0 9 -1 0
0 10 -1 0
0 28 -1 1
0 29 -1 0
1
end_operator
begin_operator
move airplane_cfbeg medium south seg_twe4_0_50 seg_rwe_0_50 south
2
15 1
16 0
6
0 0 10 5
0 4 -1 0
0 9 -1 1
0 10 -1 0
0 24 -1 0
0 29 -1 1
1
end_operator
begin_operator
park airplane_cfbeg medium seg_pp_0_60 north
2
0 2
15 0
1
0 16 0 1
1
end_operator
begin_operator
park airplane_cfbeg medium seg_pp_0_60 south
2
0 2
15 1
2
0 2 -1 1
0 16 0 1
1
end_operator
begin_operator
park airplane_cfbeg medium seg_ppdoor_0_40 north
2
0 3
15 0
2
0 1 -1 1
0 16 0 2
1
end_operator
begin_operator
park airplane_cfbeg medium seg_ppdoor_0_40 south
2
0 3
15 1
3
0 7 -1 1
0 11 -1 1
0 16 0 2
1
end_operator
begin_operator
park airplane_cfbeg medium seg_rw_0_400 north
2
0 4
15 0
2
0 6 -1 1
0 16 0 3
1
end_operator
begin_operator
park airplane_cfbeg medium seg_rw_0_400 south
2
0 4
15 1
2
0 4 -1 1
0 16 0 3
1
end_operator
begin_operator
park airplane_cfbeg medium seg_rwe_0_50 north
2
0 5
15 0
3
0 3 -1 1
0 6 -1 1
0 16 0 4
1
end_operator
begin_operator
park airplane_cfbeg medium seg_rwe_0_50 south
2
0 5
15 1
2
0 10 -1 1
0 16 0 4
1
end_operator
begin_operator
park airplane_cfbeg medium seg_rww_0_50 north
2
0 6
15 0
2
0 14 -1 1
0 16 0 5
1
end_operator
begin_operator
park airplane_cfbeg medium seg_rww_0_50 south
2
0 6
15 1
3
0 3 -1 1
0 4 -1 1
0 16 0 5
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe1_0_200 north
2
0 7
15 0
2
0 8 -1 1
0 16 0 6
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe1_0_200 south
2
0 7
15 1
3
0 2 -1 1
0 11 -1 1
0 16 0 6
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe2_0_50 north
2
0 8
15 0
2
0 9 -1 1
0 16 0 7
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe2_0_50 south
2
0 8
15 1
2
0 7 -1 1
0 16 0 7
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe3_0_50 north
2
0 9
15 0
2
0 10 -1 1
0 16 0 8
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe3_0_50 south
2
0 9
15 1
2
0 8 -1 1
0 16 0 8
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe4_0_50 north
2
0 10
15 0
2
0 4 -1 1
0 16 0 9
1
end_operator
begin_operator
park airplane_cfbeg medium seg_twe4_0_50 south
2
0 10
15 1
2
0 9 -1 1
0 16 0 9
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww1_0_200 north
2
0 11
15 0
2
0 12 -1 1
0 16 0 10
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww1_0_200 south
2
0 11
15 1
3
0 2 -1 1
0 7 -1 1
0 16 0 10
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww2_0_50 north
2
0 12
15 0
2
0 13 -1 1
0 16 0 11
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww2_0_50 south
2
0 12
15 1
2
0 11 -1 1
0 16 0 11
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww3_0_50 north
2
0 13
15 0
2
0 14 -1 1
0 16 0 12
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww3_0_50 south
2
0 13
15 1
2
0 12 -1 1
0 16 0 12
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww4_0_50 north
2
0 14
15 0
3
0 5 -1 1
0 6 -1 1
0 16 0 13
1
end_operator
begin_operator
park airplane_cfbeg medium seg_tww4_0_50 south
2
0 14
15 1
2
0 13 -1 1
0 16 0 13
1
end_operator
begin_operator
takeoff airplane_cfbeg seg_rwe_0_50 south
1
15 1
16
0 0 5 0
0 1 -1 1
0 2 -1 1
0 3 -1 1
0 4 -1 1
0 5 -1 1
0 6 -1 1
0 7 -1 1
0 8 -1 1
0 9 -1 1
0 10 -1 1
0 11 -1 1
0 12 -1 1
0 13 -1 1
0 14 -1 1
0 24 -1 1
1
end_operator
begin_operator
takeoff airplane_cfbeg seg_rww_0_50 north
1
15 0
16
0 0 6 1
0 1 -1 1
0 2 -1 1
0 3 -1 1
0 4 -1 1
0 5 -1 1
0 6 -1 1
0 7 -1 1
0 8 -1 1
0 9 -1 1
0 10 -1 1
0 11 -1 1
0 12 -1 1
0 13 -1 1
0 14 -1 1
0 25 -1 1
1
end_operator
4
begin_rule
1
22 1
20 0 1
end_rule
begin_rule
1
24 1
18 0 1
end_rule
begin_rule
1
26 1
17 0 1
end_rule
begin_rule
1
26 1
19 0 1
end_rule

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,997 @@
begin_version
3
end_version
begin_metric
0
end_metric
29
begin_variable
var0
-1
14
Atom activate(philosopher-0, forks--pid-rfork)
Atom activate(philosopher-0, forks--pid-wfork)
Atom activate(philosopher-0, forks-__-pidp1__2_-rfork)
Atom activate(philosopher-0, forks-__-pidp1__2_-wfork)
Atom blocked-trans(philosopher-0, forks--pid-rfork)
Atom blocked-trans(philosopher-0, forks--pid-wfork)
Atom blocked-trans(philosopher-0, forks-__-pidp1__2_-rfork)
Atom blocked-trans(philosopher-0, forks-__-pidp1__2_-wfork)
Atom enabled(philosopher-0, forks--pid-rfork)
Atom enabled(philosopher-0, forks--pid-wfork)
Atom enabled(philosopher-0, forks-__-pidp1__2_-rfork)
Atom enabled(philosopher-0, forks-__-pidp1__2_-wfork)
Atom pending(philosopher-0)
<none of those>
end_variable
begin_variable
var1
-1
14
Atom activate(philosopher-1, forks--pid-rfork)
Atom activate(philosopher-1, forks--pid-wfork)
Atom activate(philosopher-1, forks-__-pidp1__2_-rfork)
Atom activate(philosopher-1, forks-__-pidp1__2_-wfork)
Atom blocked-trans(philosopher-1, forks--pid-rfork)
Atom blocked-trans(philosopher-1, forks--pid-wfork)
Atom blocked-trans(philosopher-1, forks-__-pidp1__2_-rfork)
Atom blocked-trans(philosopher-1, forks-__-pidp1__2_-wfork)
Atom enabled(philosopher-1, forks--pid-rfork)
Atom enabled(philosopher-1, forks--pid-wfork)
Atom enabled(philosopher-1, forks-__-pidp1__2_-rfork)
Atom enabled(philosopher-1, forks-__-pidp1__2_-wfork)
Atom pending(philosopher-1)
<none of those>
end_variable
begin_variable
var2
-1
4
Atom advance-head(forks-0-)
Atom advance-tail(forks-0-)
Atom settled(forks-0-)
<none of those>
end_variable
begin_variable
var3
-1
4
Atom advance-head(forks-1-)
Atom advance-tail(forks-1-)
Atom settled(forks-1-)
<none of those>
end_variable
begin_variable
var4
-1
5
Atom at-process(philosopher-0, state-1)
Atom at-process(philosopher-0, state-3)
Atom at-process(philosopher-0, state-4)
Atom at-process(philosopher-0, state-5)
Atom at-process(philosopher-0, state-6)
end_variable
begin_variable
var5
-1
5
Atom at-process(philosopher-1, state-1)
Atom at-process(philosopher-1, state-3)
Atom at-process(philosopher-1, state-4)
Atom at-process(philosopher-1, state-5)
Atom at-process(philosopher-1, state-6)
end_variable
begin_variable
var6
-1
2
Atom blocked(philosopher-0)
NegatedAtom blocked(philosopher-0)
end_variable
begin_variable
var7
-1
2
Atom blocked(philosopher-1)
NegatedAtom blocked(philosopher-1)
end_variable
begin_variable
var8
0
2
Atom new-axiom@0(philosopher-0, philosopher, state-1)
NegatedAtom new-axiom@0(philosopher-0, philosopher, state-1)
end_variable
begin_variable
var9
0
2
Atom new-axiom@0(philosopher-0, philosopher, state-3)
NegatedAtom new-axiom@0(philosopher-0, philosopher, state-3)
end_variable
begin_variable
var10
0
2
Atom new-axiom@0(philosopher-0, philosopher, state-4)
NegatedAtom new-axiom@0(philosopher-0, philosopher, state-4)
end_variable
begin_variable
var11
0
2
Atom new-axiom@0(philosopher-0, philosopher, state-5)
NegatedAtom new-axiom@0(philosopher-0, philosopher, state-5)
end_variable
begin_variable
var12
0
2
Atom new-axiom@0(philosopher-0, philosopher, state-6)
NegatedAtom new-axiom@0(philosopher-0, philosopher, state-6)
end_variable
begin_variable
var13
0
2
Atom new-axiom@0(philosopher-1, philosopher, state-1)
NegatedAtom new-axiom@0(philosopher-1, philosopher, state-1)
end_variable
begin_variable
var14
0
2
Atom new-axiom@0(philosopher-1, philosopher, state-3)
NegatedAtom new-axiom@0(philosopher-1, philosopher, state-3)
end_variable
begin_variable
var15
0
2
Atom new-axiom@0(philosopher-1, philosopher, state-4)
NegatedAtom new-axiom@0(philosopher-1, philosopher, state-4)
end_variable
begin_variable
var16
0
2
Atom new-axiom@0(philosopher-1, philosopher, state-5)
NegatedAtom new-axiom@0(philosopher-1, philosopher, state-5)
end_variable
begin_variable
var17
0
2
Atom new-axiom@0(philosopher-1, philosopher, state-6)
NegatedAtom new-axiom@0(philosopher-1, philosopher, state-6)
end_variable
begin_variable
var18
0
2
Atom new-axiom@1()
NegatedAtom new-axiom@1()
end_variable
begin_variable
var19
-1
2
Atom queue-head-msg(forks-0-, empty)
NegatedAtom queue-head-msg(forks-0-, empty)
end_variable
begin_variable
var20
-1
2
Atom queue-head-msg(forks-0-, fork)
NegatedAtom queue-head-msg(forks-0-, fork)
end_variable
begin_variable
var21
-1
2
Atom queue-head-msg(forks-1-, empty)
NegatedAtom queue-head-msg(forks-1-, empty)
end_variable
begin_variable
var22
-1
2
Atom queue-head-msg(forks-1-, fork)
NegatedAtom queue-head-msg(forks-1-, fork)
end_variable
begin_variable
var23
-1
2
Atom queue-msg(forks-0-, qs-0, fork)
NegatedAtom queue-msg(forks-0-, qs-0, fork)
end_variable
begin_variable
var24
-1
2
Atom queue-msg(forks-1-, qs-0, fork)
NegatedAtom queue-msg(forks-1-, qs-0, fork)
end_variable
begin_variable
var25
-1
2
Atom queue-size(forks-0-, one)
Atom queue-size(forks-0-, zero)
end_variable
begin_variable
var26
-1
2
Atom queue-size(forks-1-, one)
Atom queue-size(forks-1-, zero)
end_variable
begin_variable
var27
-1
2
Atom queue-tail-msg(forks-0-, fork)
NegatedAtom queue-tail-msg(forks-0-, fork)
end_variable
begin_variable
var28
-1
2
Atom queue-tail-msg(forks-1-, fork)
NegatedAtom queue-tail-msg(forks-1-, fork)
end_variable
10
begin_mutex_group
13
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
end_mutex_group
begin_mutex_group
9
0 0
0 1
0 2
0 3
0 8
0 9
0 10
0 11
0 12
end_mutex_group
begin_mutex_group
13
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
end_mutex_group
begin_mutex_group
9
1 0
1 1
1 2
1 3
1 8
1 9
1 10
1 11
1 12
end_mutex_group
begin_mutex_group
3
2 0
2 1
2 2
end_mutex_group
begin_mutex_group
3
3 0
3 1
3 2
end_mutex_group
begin_mutex_group
5
4 0
4 1
4 2
4 3
4 4
end_mutex_group
begin_mutex_group
5
5 0
5 1
5 2
5 3
5 4
end_mutex_group
begin_mutex_group
2
25 0
25 1
end_mutex_group
begin_mutex_group
2
26 0
26 1
end_mutex_group
begin_state
12
12
2
2
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
end_state
begin_goal
2
6 0
7 0
end_goal
56
begin_operator
activate-trans philosopher-0 philosopher forks--pid-rfork state-6 state-3
2
4 4
18 1
1
0 0 12 0
1
end_operator
begin_operator
activate-trans philosopher-0 philosopher forks--pid-wfork state-1 state-6
2
4 0
18 1
1
0 0 12 1
1
end_operator
begin_operator
activate-trans philosopher-0 philosopher forks--pid-wfork state-4 state-5
2
4 2
18 1
1
0 0 12 1
1
end_operator
begin_operator
activate-trans philosopher-0 philosopher forks-__-pidp1__2_-rfork state-3 state-4
2
4 1
18 1
1
0 0 12 2
1
end_operator
begin_operator
activate-trans philosopher-0 philosopher forks-__-pidp1__2_-wfork state-5 state-6
2
4 3
18 1
1
0 0 12 3
1
end_operator
begin_operator
activate-trans philosopher-1 philosopher forks--pid-rfork state-6 state-3
2
5 4
18 1
1
0 1 12 0
1
end_operator
begin_operator
activate-trans philosopher-1 philosopher forks--pid-wfork state-1 state-6
2
5 0
18 1
1
0 1 12 1
1
end_operator
begin_operator
activate-trans philosopher-1 philosopher forks--pid-wfork state-4 state-5
2
5 2
18 1
1
0 1 12 1
1
end_operator
begin_operator
activate-trans philosopher-1 philosopher forks-__-pidp1__2_-rfork state-3 state-4
2
5 1
18 1
1
0 1 12 2
1
end_operator
begin_operator
activate-trans philosopher-1 philosopher forks-__-pidp1__2_-wfork state-5 state-6
2
5 3
18 1
1
0 1 12 3
1
end_operator
begin_operator
advance-empty-queue-tail forks-0- queue-1 qs-0 qs-0 fork empty zero one
1
27 0
5
0 2 1 2
0 19 0 1
0 20 -1 0
0 23 -1 0
0 25 1 0
1
end_operator
begin_operator
advance-empty-queue-tail forks-0- queue-1 qs-0 qs-0 fork fork zero one
2
20 0
27 0
3
0 2 1 2
0 23 -1 0
0 25 1 0
1
end_operator
begin_operator
advance-empty-queue-tail forks-1- queue-1 qs-0 qs-0 fork empty zero one
1
28 0
5
0 3 1 2
0 21 0 1
0 22 -1 0
0 24 -1 0
0 26 1 0
1
end_operator
begin_operator
advance-empty-queue-tail forks-1- queue-1 qs-0 qs-0 fork fork zero one
2
22 0
28 0
3
0 3 1 2
0 24 -1 0
0 26 1 0
1
end_operator
begin_operator
advance-queue-head forks-0- queue-1 qs-0 qs-0 fork one zero
1
23 0
3
0 2 0 2
0 20 -1 0
0 25 0 1
1
end_operator
begin_operator
advance-queue-head forks-1- queue-1 qs-0 qs-0 fork one zero
1
24 0
3
0 3 0 2
0 22 -1 0
0 26 0 1
1
end_operator
begin_operator
block philosopher-0 state-1 philosopher
2
4 0
8 1
1
0 6 -1 0
1
end_operator
begin_operator
block philosopher-0 state-3 philosopher
2
4 1
9 1
1
0 6 -1 0
1
end_operator
begin_operator
block philosopher-0 state-4 philosopher
2
4 2
10 1
1
0 6 -1 0
1
end_operator
begin_operator
block philosopher-0 state-5 philosopher
2
4 3
11 1
1
0 6 -1 0
1
end_operator
begin_operator
block philosopher-0 state-6 philosopher
2
4 4
12 1
1
0 6 -1 0
1
end_operator
begin_operator
block philosopher-1 state-1 philosopher
2
5 0
13 1
1
0 7 -1 0
1
end_operator
begin_operator
block philosopher-1 state-3 philosopher
2
5 1
14 1
1
0 7 -1 0
1
end_operator
begin_operator
block philosopher-1 state-4 philosopher
2
5 2
15 1
1
0 7 -1 0
1
end_operator
begin_operator
block philosopher-1 state-5 philosopher
2
5 3
16 1
1
0 7 -1 0
1
end_operator
begin_operator
block philosopher-1 state-6 philosopher
2
5 4
17 1
1
0 7 -1 0
1
end_operator
begin_operator
block-read-queue-empty philosopher-0 forks--pid-rfork forks-0- fork zero
1
25 1
2
0 0 0 4
0 2 2 3
1
end_operator
begin_operator
block-read-queue-empty philosopher-0 forks-__-pidp1__2_-rfork forks-1- fork zero
1
26 1
2
0 0 2 6
0 3 2 3
1
end_operator
begin_operator
block-read-queue-empty philosopher-1 forks--pid-rfork forks-1- fork zero
1
26 1
2
0 1 0 4
0 3 2 3
1
end_operator
begin_operator
block-read-queue-empty philosopher-1 forks-__-pidp1__2_-rfork forks-0- fork zero
1
25 1
2
0 1 2 6
0 2 2 3
1
end_operator
begin_operator
block-read-wrong-message philosopher-0 forks--pid-rfork forks-0- fork empty
1
19 0
2
0 0 0 4
0 2 2 3
1
end_operator
begin_operator
block-read-wrong-message philosopher-0 forks-__-pidp1__2_-rfork forks-1- fork empty
1
21 0
2
0 0 2 6
0 3 2 3
1
end_operator
begin_operator
block-read-wrong-message philosopher-1 forks--pid-rfork forks-1- fork empty
1
21 0
2
0 1 0 4
0 3 2 3
1
end_operator
begin_operator
block-read-wrong-message philosopher-1 forks-__-pidp1__2_-rfork forks-0- fork empty
1
19 0
2
0 1 2 6
0 2 2 3
1
end_operator
begin_operator
block-write philosopher-0 forks--pid-wfork forks-0- queue-1 fork one
1
25 0
2
0 0 1 5
0 2 2 3
1
end_operator
begin_operator
block-write philosopher-0 forks-__-pidp1__2_-wfork forks-1- queue-1 fork one
1
26 0
2
0 0 3 7
0 3 2 3
1
end_operator
begin_operator
block-write philosopher-1 forks--pid-wfork forks-1- queue-1 fork one
1
26 0
2
0 1 1 5
0 3 2 3
1
end_operator
begin_operator
block-write philosopher-1 forks-__-pidp1__2_-wfork forks-0- queue-1 fork one
1
25 0
2
0 1 3 7
0 2 2 3
1
end_operator
begin_operator
perform-trans philosopher-0 philosopher forks--pid-rfork state-6 state-3
1
18 1
2
0 0 8 12
0 4 4 1
1
end_operator
begin_operator
perform-trans philosopher-0 philosopher forks--pid-wfork state-1 state-6
1
18 1
2
0 0 9 12
0 4 0 4
1
end_operator
begin_operator
perform-trans philosopher-0 philosopher forks--pid-wfork state-4 state-5
1
18 1
2
0 0 9 12
0 4 2 3
1
end_operator
begin_operator
perform-trans philosopher-0 philosopher forks-__-pidp1__2_-rfork state-3 state-4
1
18 1
2
0 0 10 12
0 4 1 2
1
end_operator
begin_operator
perform-trans philosopher-0 philosopher forks-__-pidp1__2_-wfork state-5 state-6
1
18 1
2
0 0 11 12
0 4 3 4
1
end_operator
begin_operator
perform-trans philosopher-1 philosopher forks--pid-rfork state-6 state-3
1
18 1
2
0 1 8 12
0 5 4 1
1
end_operator
begin_operator
perform-trans philosopher-1 philosopher forks--pid-wfork state-1 state-6
1
18 1
2
0 1 9 12
0 5 0 4
1
end_operator
begin_operator
perform-trans philosopher-1 philosopher forks--pid-wfork state-4 state-5
1
18 1
2
0 1 9 12
0 5 2 3
1
end_operator
begin_operator
perform-trans philosopher-1 philosopher forks-__-pidp1__2_-rfork state-3 state-4
1
18 1
2
0 1 10 12
0 5 1 2
1
end_operator
begin_operator
perform-trans philosopher-1 philosopher forks-__-pidp1__2_-wfork state-5 state-6
1
18 1
2
0 1 11 12
0 5 3 4
1
end_operator
begin_operator
queue-read philosopher-0 forks--pid-rfork forks-0- fork
1
20 0
8
0 0 0 8
1 1 4 1 -1 13
1 1 5 1 -1 13
1 1 6 1 -1 13
1 1 7 1 -1 13
0 2 2 0
0 6 -1 1
0 7 -1 1
1
end_operator
begin_operator
queue-read philosopher-0 forks-__-pidp1__2_-rfork forks-1- fork
1
22 0
8
0 0 2 10
1 1 4 1 -1 13
1 1 5 1 -1 13
1 1 6 1 -1 13
1 1 7 1 -1 13
0 3 2 0
0 6 -1 1
0 7 -1 1
1
end_operator
begin_operator
queue-read philosopher-1 forks--pid-rfork forks-1- fork
1
22 0
8
1 0 4 0 -1 13
1 0 5 0 -1 13
1 0 6 0 -1 13
1 0 7 0 -1 13
0 1 0 8
0 3 2 0
0 6 -1 1
0 7 -1 1
1
end_operator
begin_operator
queue-read philosopher-1 forks-__-pidp1__2_-rfork forks-0- fork
1
20 0
8
1 0 4 0 -1 13
1 0 5 0 -1 13
1 0 6 0 -1 13
1 0 7 0 -1 13
0 1 2 10
0 2 2 0
0 6 -1 1
0 7 -1 1
1
end_operator
begin_operator
queue-write philosopher-0 forks--pid-wfork forks-0- fork
0
9
0 0 1 9
1 1 4 1 -1 13
1 1 5 1 -1 13
1 1 6 1 -1 13
1 1 7 1 -1 13
0 2 2 1
0 6 -1 1
0 7 -1 1
0 27 -1 0
1
end_operator
begin_operator
queue-write philosopher-0 forks-__-pidp1__2_-wfork forks-1- fork
0
9
0 0 3 11
1 1 4 1 -1 13
1 1 5 1 -1 13
1 1 6 1 -1 13
1 1 7 1 -1 13
0 3 2 1
0 6 -1 1
0 7 -1 1
0 28 -1 0
1
end_operator
begin_operator
queue-write philosopher-1 forks--pid-wfork forks-1- fork
0
9
1 0 4 0 -1 13
1 0 5 0 -1 13
1 0 6 0 -1 13
1 0 7 0 -1 13
0 1 1 9
0 3 2 1
0 6 -1 1
0 7 -1 1
0 28 -1 0
1
end_operator
begin_operator
queue-write philosopher-1 forks-__-pidp1__2_-wfork forks-0- fork
0
9
1 0 4 0 -1 13
1 0 5 0 -1 13
1 0 6 0 -1 13
1 0 7 0 -1 13
0 1 3 11
0 2 2 1
0 6 -1 1
0 7 -1 1
0 27 -1 0
1
end_operator
11
begin_rule
1
0 4
12 0 1
end_rule
begin_rule
1
0 5
8 0 1
end_rule
begin_rule
1
0 5
10 0 1
end_rule
begin_rule
1
0 6
9 0 1
end_rule
begin_rule
1
0 7
11 0 1
end_rule
begin_rule
1
1 4
17 0 1
end_rule
begin_rule
1
1 5
13 0 1
end_rule
begin_rule
1
1 5
15 0 1
end_rule
begin_rule
1
1 6
14 0 1
end_rule
begin_rule
1
1 7
16 0 1
end_rule
begin_rule
2
2 2
3 2
18 0 1
end_rule

View File

@@ -0,0 +1,815 @@
begin_version
3
end_version
begin_metric
1
end_metric
21
begin_variable
var0
-1
2
Atom made(p1)
NegatedAtom made(p1)
end_variable
begin_variable
var1
-1
2
Atom made(p2)
NegatedAtom made(p2)
end_variable
begin_variable
var2
-1
2
Atom made(p3)
NegatedAtom made(p3)
end_variable
begin_variable
var3
-1
2
Atom made(p4)
NegatedAtom made(p4)
end_variable
begin_variable
var4
-1
2
Atom made(p5)
NegatedAtom made(p5)
end_variable
begin_variable
var5
0
2
Atom new-axiom@0(p1)
NegatedAtom new-axiom@0(p1)
end_variable
begin_variable
var6
0
2
Atom new-axiom@0(p2)
NegatedAtom new-axiom@0(p2)
end_variable
begin_variable
var7
0
2
Atom new-axiom@0(p3)
NegatedAtom new-axiom@0(p3)
end_variable
begin_variable
var8
0
2
Atom new-axiom@0(p4)
NegatedAtom new-axiom@0(p4)
end_variable
begin_variable
var9
0
2
Atom new-axiom@0(p5)
NegatedAtom new-axiom@0(p5)
end_variable
begin_variable
var10
0
2
Atom new-axiom@1(o1)
NegatedAtom new-axiom@1(o1)
end_variable
begin_variable
var11
0
2
Atom new-axiom@1(o2)
NegatedAtom new-axiom@1(o2)
end_variable
begin_variable
var12
0
2
Atom new-axiom@1(o3)
NegatedAtom new-axiom@1(o3)
end_variable
begin_variable
var13
0
2
Atom new-axiom@1(o4)
NegatedAtom new-axiom@1(o4)
end_variable
begin_variable
var14
0
2
Atom new-axiom@1(o5)
NegatedAtom new-axiom@1(o5)
end_variable
begin_variable
var15
-1
3
Atom shipped(o1)
Atom started(o1)
Atom waiting(o1)
end_variable
begin_variable
var16
-1
3
Atom shipped(o2)
Atom started(o2)
Atom waiting(o2)
end_variable
begin_variable
var17
-1
3
Atom shipped(o3)
Atom started(o3)
Atom waiting(o3)
end_variable
begin_variable
var18
-1
3
Atom shipped(o4)
Atom started(o4)
Atom waiting(o4)
end_variable
begin_variable
var19
-1
3
Atom shipped(o5)
Atom started(o5)
Atom waiting(o5)
end_variable
begin_variable
var20
-1
6
Atom stacks-avail(n0)
Atom stacks-avail(n1)
Atom stacks-avail(n2)
Atom stacks-avail(n3)
Atom stacks-avail(n4)
Atom stacks-avail(n5)
end_variable
11
begin_mutex_group
3
15 0
15 1
15 2
end_mutex_group
begin_mutex_group
3
16 0
16 1
16 2
end_mutex_group
begin_mutex_group
3
17 0
17 1
17 2
end_mutex_group
begin_mutex_group
3
18 0
18 1
18 2
end_mutex_group
begin_mutex_group
3
19 0
19 1
19 2
end_mutex_group
begin_mutex_group
6
20 0
20 1
20 2
20 3
20 4
20 5
end_mutex_group
begin_mutex_group
2
15 1
15 2
end_mutex_group
begin_mutex_group
2
16 1
16 2
end_mutex_group
begin_mutex_group
2
17 1
17 2
end_mutex_group
begin_mutex_group
2
18 1
18 2
end_mutex_group
begin_mutex_group
2
19 1
19 2
end_mutex_group
begin_state
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
2
2
2
2
2
0
end_state
begin_goal
5
15 0
16 0
17 0
18 0
19 0
end_goal
60
begin_operator
make-product p1
1
5 1
1
0 0 1 0
0
end_operator
begin_operator
make-product p2
1
6 1
1
0 1 1 0
0
end_operator
begin_operator
make-product p3
1
7 1
1
0 2 1 0
0
end_operator
begin_operator
make-product p4
1
8 1
1
0 3 1 0
0
end_operator
begin_operator
make-product p5
1
9 1
1
0 4 1 0
0
end_operator
begin_operator
open-new-stack n0 n1
0
1
0 20 0 1
1
end_operator
begin_operator
open-new-stack n1 n2
0
1
0 20 1 2
1
end_operator
begin_operator
open-new-stack n2 n3
0
1
0 20 2 3
1
end_operator
begin_operator
open-new-stack n3 n4
0
1
0 20 3 4
1
end_operator
begin_operator
open-new-stack n4 n5
0
1
0 20 4 5
1
end_operator
begin_operator
ship-order o1 n0 n1
1
10 1
2
0 15 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o1 n1 n2
1
10 1
2
0 15 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o1 n2 n3
1
10 1
2
0 15 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o1 n3 n4
1
10 1
2
0 15 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o1 n4 n5
1
10 1
2
0 15 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o2 n0 n1
1
11 1
2
0 16 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o2 n1 n2
1
11 1
2
0 16 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o2 n2 n3
1
11 1
2
0 16 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o2 n3 n4
1
11 1
2
0 16 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o2 n4 n5
1
11 1
2
0 16 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o3 n0 n1
1
12 1
2
0 17 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o3 n1 n2
1
12 1
2
0 17 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o3 n2 n3
1
12 1
2
0 17 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o3 n3 n4
1
12 1
2
0 17 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o3 n4 n5
1
12 1
2
0 17 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o4 n0 n1
1
13 1
2
0 18 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o4 n1 n2
1
13 1
2
0 18 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o4 n2 n3
1
13 1
2
0 18 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o4 n3 n4
1
13 1
2
0 18 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o4 n4 n5
1
13 1
2
0 18 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o5 n0 n1
1
14 1
2
0 19 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o5 n1 n2
1
14 1
2
0 19 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o5 n2 n3
1
14 1
2
0 19 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o5 n3 n4
1
14 1
2
0 19 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o5 n4 n5
1
14 1
2
0 19 1 0
0 20 4 5
0
end_operator
begin_operator
start-order o1 n1 n0
0
2
0 15 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o1 n2 n1
0
2
0 15 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o1 n3 n2
0
2
0 15 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o1 n4 n3
0
2
0 15 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o1 n5 n4
0
2
0 15 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o2 n1 n0
0
2
0 16 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o2 n2 n1
0
2
0 16 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o2 n3 n2
0
2
0 16 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o2 n4 n3
0
2
0 16 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o2 n5 n4
0
2
0 16 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o3 n1 n0
0
2
0 17 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o3 n2 n1
0
2
0 17 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o3 n3 n2
0
2
0 17 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o3 n4 n3
0
2
0 17 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o3 n5 n4
0
2
0 17 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o4 n1 n0
0
2
0 18 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o4 n2 n1
0
2
0 18 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o4 n3 n2
0
2
0 18 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o4 n4 n3
0
2
0 18 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o4 n5 n4
0
2
0 18 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o5 n1 n0
0
2
0 19 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o5 n2 n1
0
2
0 19 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o5 n3 n2
0
2
0 19 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o5 n4 n3
0
2
0 19 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o5 n5 n4
0
2
0 19 2 1
0 20 5 4
0
end_operator
10
begin_rule
2
0 0
1 0
11 0 1
end_rule
begin_rule
1
1 0
10 0 1
end_rule
begin_rule
1
2 0
12 0 1
end_rule
begin_rule
2
2 0
3 0
13 0 1
end_rule
begin_rule
1
4 0
14 0 1
end_rule
begin_rule
2
15 1
16 1
6 0 1
end_rule
begin_rule
1
16 1
5 0 1
end_rule
begin_rule
2
17 1
18 1
7 0 1
end_rule
begin_rule
1
18 1
8 0 1
end_rule
begin_rule
1
19 1
9 0 1
end_rule

View File

@@ -0,0 +1,815 @@
begin_version
3
end_version
begin_metric
1
end_metric
21
begin_variable
var0
-1
2
Atom made(p1)
NegatedAtom made(p1)
end_variable
begin_variable
var1
-1
2
Atom made(p2)
NegatedAtom made(p2)
end_variable
begin_variable
var2
-1
2
Atom made(p3)
NegatedAtom made(p3)
end_variable
begin_variable
var3
-1
2
Atom made(p4)
NegatedAtom made(p4)
end_variable
begin_variable
var4
-1
2
Atom made(p5)
NegatedAtom made(p5)
end_variable
begin_variable
var5
0
2
Atom new-axiom@0(p1)
NegatedAtom new-axiom@0(p1)
end_variable
begin_variable
var6
0
2
Atom new-axiom@0(p2)
NegatedAtom new-axiom@0(p2)
end_variable
begin_variable
var7
0
2
Atom new-axiom@0(p3)
NegatedAtom new-axiom@0(p3)
end_variable
begin_variable
var8
0
2
Atom new-axiom@0(p4)
NegatedAtom new-axiom@0(p4)
end_variable
begin_variable
var9
0
2
Atom new-axiom@0(p5)
NegatedAtom new-axiom@0(p5)
end_variable
begin_variable
var10
0
2
Atom new-axiom@1(o1)
NegatedAtom new-axiom@1(o1)
end_variable
begin_variable
var11
0
2
Atom new-axiom@1(o2)
NegatedAtom new-axiom@1(o2)
end_variable
begin_variable
var12
0
2
Atom new-axiom@1(o3)
NegatedAtom new-axiom@1(o3)
end_variable
begin_variable
var13
0
2
Atom new-axiom@1(o4)
NegatedAtom new-axiom@1(o4)
end_variable
begin_variable
var14
0
2
Atom new-axiom@1(o5)
NegatedAtom new-axiom@1(o5)
end_variable
begin_variable
var15
-1
3
Atom shipped(o1)
Atom started(o1)
Atom waiting(o1)
end_variable
begin_variable
var16
-1
3
Atom shipped(o2)
Atom started(o2)
Atom waiting(o2)
end_variable
begin_variable
var17
-1
3
Atom shipped(o3)
Atom started(o3)
Atom waiting(o3)
end_variable
begin_variable
var18
-1
3
Atom shipped(o4)
Atom started(o4)
Atom waiting(o4)
end_variable
begin_variable
var19
-1
3
Atom shipped(o5)
Atom started(o5)
Atom waiting(o5)
end_variable
begin_variable
var20
-1
6
Atom stacks-avail(n0)
Atom stacks-avail(n1)
Atom stacks-avail(n2)
Atom stacks-avail(n3)
Atom stacks-avail(n4)
Atom stacks-avail(n5)
end_variable
11
begin_mutex_group
3
15 0
15 1
15 2
end_mutex_group
begin_mutex_group
3
16 0
16 1
16 2
end_mutex_group
begin_mutex_group
3
17 0
17 1
17 2
end_mutex_group
begin_mutex_group
3
18 0
18 1
18 2
end_mutex_group
begin_mutex_group
3
19 0
19 1
19 2
end_mutex_group
begin_mutex_group
6
20 0
20 1
20 2
20 3
20 4
20 5
end_mutex_group
begin_mutex_group
2
15 1
15 2
end_mutex_group
begin_mutex_group
2
16 1
16 2
end_mutex_group
begin_mutex_group
2
17 1
17 2
end_mutex_group
begin_mutex_group
2
18 1
18 2
end_mutex_group
begin_mutex_group
2
19 1
19 2
end_mutex_group
begin_state
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
2
2
2
2
2
0
end_state
begin_goal
5
15 0
16 0
17 0
18 0
19 0
end_goal
60
begin_operator
make-product p1
1
5 1
1
0 0 1 0
0
end_operator
begin_operator
make-product p2
1
6 1
1
0 1 1 0
0
end_operator
begin_operator
make-product p3
1
7 1
1
0 2 1 0
0
end_operator
begin_operator
make-product p4
1
8 1
1
0 3 1 0
0
end_operator
begin_operator
make-product p5
1
9 1
1
0 4 1 0
0
end_operator
begin_operator
open-new-stack n0 n1
0
1
0 20 0 1
1
end_operator
begin_operator
open-new-stack n1 n2
0
1
0 20 1 2
1
end_operator
begin_operator
open-new-stack n2 n3
0
1
0 20 2 3
1
end_operator
begin_operator
open-new-stack n3 n4
0
1
0 20 3 4
1
end_operator
begin_operator
open-new-stack n4 n5
0
1
0 20 4 5
1
end_operator
begin_operator
ship-order o1 n0 n1
1
10 1
2
0 15 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o1 n1 n2
1
10 1
2
0 15 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o1 n2 n3
1
10 1
2
0 15 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o1 n3 n4
1
10 1
2
0 15 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o1 n4 n5
1
10 1
2
0 15 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o2 n0 n1
1
11 1
2
0 16 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o2 n1 n2
1
11 1
2
0 16 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o2 n2 n3
1
11 1
2
0 16 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o2 n3 n4
1
11 1
2
0 16 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o2 n4 n5
1
11 1
2
0 16 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o3 n0 n1
1
12 1
2
0 17 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o3 n1 n2
1
12 1
2
0 17 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o3 n2 n3
1
12 1
2
0 17 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o3 n3 n4
1
12 1
2
0 17 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o3 n4 n5
1
12 1
2
0 17 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o4 n0 n1
1
13 1
2
0 18 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o4 n1 n2
1
13 1
2
0 18 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o4 n2 n3
1
13 1
2
0 18 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o4 n3 n4
1
13 1
2
0 18 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o4 n4 n5
1
13 1
2
0 18 1 0
0 20 4 5
0
end_operator
begin_operator
ship-order o5 n0 n1
1
14 1
2
0 19 1 0
0 20 0 1
0
end_operator
begin_operator
ship-order o5 n1 n2
1
14 1
2
0 19 1 0
0 20 1 2
0
end_operator
begin_operator
ship-order o5 n2 n3
1
14 1
2
0 19 1 0
0 20 2 3
0
end_operator
begin_operator
ship-order o5 n3 n4
1
14 1
2
0 19 1 0
0 20 3 4
0
end_operator
begin_operator
ship-order o5 n4 n5
1
14 1
2
0 19 1 0
0 20 4 5
0
end_operator
begin_operator
start-order o1 n1 n0
0
2
0 15 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o1 n2 n1
0
2
0 15 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o1 n3 n2
0
2
0 15 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o1 n4 n3
0
2
0 15 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o1 n5 n4
0
2
0 15 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o2 n1 n0
0
2
0 16 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o2 n2 n1
0
2
0 16 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o2 n3 n2
0
2
0 16 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o2 n4 n3
0
2
0 16 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o2 n5 n4
0
2
0 16 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o3 n1 n0
0
2
0 17 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o3 n2 n1
0
2
0 17 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o3 n3 n2
0
2
0 17 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o3 n4 n3
0
2
0 17 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o3 n5 n4
0
2
0 17 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o4 n1 n0
0
2
0 18 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o4 n2 n1
0
2
0 18 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o4 n3 n2
0
2
0 18 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o4 n4 n3
0
2
0 18 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o4 n5 n4
0
2
0 18 2 1
0 20 5 4
0
end_operator
begin_operator
start-order o5 n1 n0
0
2
0 19 2 1
0 20 1 0
0
end_operator
begin_operator
start-order o5 n2 n1
0
2
0 19 2 1
0 20 2 1
0
end_operator
begin_operator
start-order o5 n3 n2
0
2
0 19 2 1
0 20 3 2
0
end_operator
begin_operator
start-order o5 n4 n3
0
2
0 19 2 1
0 20 4 3
0
end_operator
begin_operator
start-order o5 n5 n4
0
2
0 19 2 1
0 20 5 4
0
end_operator
10
begin_rule
1
0 0
11 0 1
end_rule
begin_rule
1
0 0
14 0 1
end_rule
begin_rule
2
0 0
2 0
10 0 1
end_rule
begin_rule
2
1 0
3 0
12 0 1
end_rule
begin_rule
1
4 0
13 0 1
end_rule
begin_rule
1
15 1
7 0 1
end_rule
begin_rule
3
15 1
16 1
19 1
5 0 1
end_rule
begin_rule
1
17 1
6 0 1
end_rule
begin_rule
1
17 1
8 0 1
end_rule
begin_rule
1
18 1
9 0 1
end_rule

File diff suppressed because it is too large Load Diff

View File

@@ -30,14 +30,10 @@ Predicate Predicate::fromSAS(utils::Parser<> &parser)
while (true)
{
// Parse arguments until reaching newline
// TODO: reimplement
/*parser.skipWhiteSpace(
[&](const auto character)
{
return character != '\n' && std::isspace(character);
});*/
// Skip whitespace but not newlines
parser.skipBlankSpace();
// TODO: check \r handling
if (parser.currentCharacter() == '\n')
break;

View File

@@ -33,8 +33,12 @@ void TranslatorASP::translate() const
translateVariables();
m_outputStream << std::endl;
translateActions();
m_outputStream << std::endl;
translateMutexes();
if (!m_description.mutexGroups().empty())
{
m_outputStream << std::endl;
translateMutexes();
}
if (m_description.usesAxiomRules())
{
@@ -171,34 +175,34 @@ void TranslatorASP::translateActions() const
{
const auto &conditions = effect.conditions();
std::for_each(conditions.cbegin(), conditions.cend(),
[&](const auto &condition)
{
// Conditions of conditional effects
m_outputStream << utils::RuleName("precondition") << "(";
operator_.printPredicateAsASP(m_outputStream);
m_outputStream << ", " << utils::Keyword("effect") << "(" << utils::Number(std::to_string(currentEffectID)) << "), ";
condition.variable().printNameAsASPPredicate(m_outputStream);
m_outputStream << ", ";
condition.value().printAsASPPredicate(m_outputStream);
m_outputStream << ")." << std::endl;
});
m_outputStream << utils::RuleName("postcondition") << "(";
operator_.printPredicateAsASP(m_outputStream);
if (conditions.empty())
m_outputStream << ", " << utils::Keyword("effect") << "(" << utils::Reserved("unconditional") << "), ";
else
{
m_outputStream << ", " << utils::Keyword("effect") << "(" << utils::Number(std::to_string(currentEffectID)) << "), ";
currentEffectID++;
}
effect.postcondition().variable().printNameAsASPPredicate(m_outputStream);
m_outputStream << ", ";
effect.postcondition().value().printAsASPPredicate(m_outputStream);
m_outputStream << ")." << std::endl;
std::for_each(conditions.cbegin(), conditions.cend(),
[&](const auto &condition)
{
// Conditions of conditional effects
m_outputStream
<< utils::RuleName("precondition") << "("
<< utils::Keyword("effect") << "(" << utils::Number(std::to_string(currentEffectID)) << "), ";
condition.variable().printNameAsASPPredicate(m_outputStream);
m_outputStream << ", ";
condition.value().printAsASPPredicate(m_outputStream);
m_outputStream << ")." << std::endl;
});
if (!conditions.empty())
currentEffectID++;
});
m_outputStream << utils::RuleName("costs") << "(";

View File

@@ -111,6 +111,8 @@ TEST_F(SASParserTests, ParseValidSASFile)
{
FAIL() << e.what();
}
// TODO: add whitespace test
}
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -175,3 +177,11 @@ TEST_F(SASParserTests, ParseRequirements)
FAIL() << e.what();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
TEST_F(SASParserTests, CheckIssues)
{
// Check issue where unexpected whitespaces in SAS files led to a parsing error
ASSERT_NO_THROW(plasp::sas::Description::fromFile("data/issues/issue-6.sas"));
}

View File

@@ -0,0 +1,268 @@
begin_version
3
end_version
begin_metric
0
end_metric
7
begin_variable
var0
-1
2
Atom counter-at-zero()
NegatedAtom counter-at-zero()
end_variable
begin_variable
var1
-1
2
Atom have-cheese()
NegatedAtom have-cheese()
end_variable
begin_variable
var2
-1
2
Atom have-chips()
NegatedAtom have-chips()
end_variable
begin_variable
var3
-1
2
Atom have-crackers()
NegatedAtom have-crackers()
end_variable
begin_variable
var4
-1
2
Atom have-dip()
NegatedAtom have-dip()
end_variable
begin_variable
var5
-1
2
Atom have-pop()
NegatedAtom have-pop()
end_variable
begin_variable
var6
-1
2
Atom movie-rewound()
NegatedAtom movie-rewound()
end_variable
0
begin_state
1
1
1
1
1
1
1
end_state
begin_goal
7
0 0
1 0
2 0
3 0
4 0
5 0
6 0
end_goal
27
begin_operator
get-cheese z1
0
1
0 1 -1 0
1
end_operator
begin_operator
get-cheese z2
0
1
0 1 -1 0
1
end_operator
begin_operator
get-cheese z3
0
1
0 1 -1 0
1
end_operator
begin_operator
get-cheese z4
0
1
0 1 -1 0
1
end_operator
begin_operator
get-cheese z5
0
1
0 1 -1 0
1
end_operator
begin_operator
get-chips c1
0
1
0 2 -1 0
1
end_operator
begin_operator
get-chips c2
0
1
0 2 -1 0
1
end_operator
begin_operator
get-chips c3
0
1
0 2 -1 0
1
end_operator
begin_operator
get-chips c4
0
1
0 2 -1 0
1
end_operator
begin_operator
get-chips c5
0
1
0 2 -1 0
1
end_operator
begin_operator
get-crackers k1
0
1
0 3 -1 0
1
end_operator
begin_operator
get-crackers k2
0
1
0 3 -1 0
1
end_operator
begin_operator
get-crackers k3
0
1
0 3 -1 0
1
end_operator
begin_operator
get-crackers k4
0
1
0 3 -1 0
1
end_operator
begin_operator
get-crackers k5
0
1
0 3 -1 0
1
end_operator
begin_operator
get-dip d1
0
1
0 4 -1 0
1
end_operator
begin_operator
get-dip d2
0
1
0 4 -1 0
1
end_operator
begin_operator
get-dip d3
0
1
0 4 -1 0
1
end_operator
begin_operator
get-dip d4
0
1
0 4 -1 0
1
end_operator
begin_operator
get-dip d5
0
1
0 4 -1 0
1
end_operator
begin_operator
get-pop p1
0
1
0 5 -1 0
1
end_operator
begin_operator
get-pop p2
0
1
0 5 -1 0
1
end_operator
begin_operator
get-pop p3
0
1
0 5 -1 0
1
end_operator
begin_operator
get-pop p4
0
1
0 5 -1 0
1
end_operator
begin_operator
get-pop p5
0
1
0 5 -1 0
1
end_operator
begin_operator
reset-counter
0
1
0 0 -1 0
1
end_operator
begin_operator
rewind-movie
0
2
0 0 -1 1
0 6 -1 0
1
end_operator
0