Root:0- === Tarea:0 (:method hunt_all :precondition (and (type_member_snake viper) (type_member_location px0y0) (type_member_location px2y2) (type_member_location px0y1) (mouse-at px0y0) (head viper px2y2) (adjacent px0y0 px0y1) ) :tasks ( (move viper px2y2 px0y1) (strike viper px0y1 px0y0) (hunt) ) ) === Tarea:1 (:method move-short-snake :precondition (and (type_member_snake viper) (type_member_location px2y2) (type_member_location px0y1) (type_member_location px1y2) (adjacent px1y2 px2y2) (not (occupied px1y2)) (tail viper px2y2) ) :tasks ( (move-short viper px1y2 px2y2) (move viper px1y2 px0y1) ) ) === Tarea:4 (:method method1 :precondition (and (type_member_snake viper) (type_member_location px1y2) (type_member_location px2y2) ) :tasks ( (move-short_primitive viper px1y2 px2y2) ) ) === Tarea:6 === Tarea:5 (:method move-short-snake :precondition (and (type_member_snake viper) (type_member_location px1y2) (type_member_location px0y1) (type_member_location px0y2) (adjacent px0y2 px1y2) (not (occupied px0y2)) (tail viper px1y2) ) :tasks ( (move-short viper px0y2 px1y2) (move viper px0y2 px0y1) ) ) === Tarea:8 (:method method1 :precondition (and (type_member_snake viper) (type_member_location px0y2) (type_member_location px1y2) ) :tasks ( (move-short_primitive viper px0y2 px1y2) ) ) === Tarea:10 === Tarea:9 (:method move-short-snake :precondition (and (type_member_snake viper) (type_member_location px0y2) (type_member_location px0y1) (type_member_location px0y1) (adjacent px0y1 px0y2) (not (occupied px0y1)) (tail viper px0y2) ) :tasks ( (move-short viper px0y1 px0y2) (move viper px0y1 px0y1) ) ) === Tarea:12 (:method method1 :precondition (and (type_member_snake viper) (type_member_location px0y1) (type_member_location px0y2) ) :tasks ( (move-short_primitive viper px0y1 px0y2) ) ) === Tarea:14 === Tarea:13 (:method move-base :precondition (and (type_member_snake viper) (type_member_location px0y1) (type_member_location px0y1) (= px0y1 px0y1) ) :tasks ( (:inline () ()) ) ) === Tarea:16 === Tarea:2 (:method method1 :precondition (and (type_member_snake viper) (type_member_location px0y1) (type_member_location px0y0) ) :tasks ( (strike_primitive viper px0y1 px0y0) ) ) === Tarea:18 === Tarea:3 (:method hunt_done :precondition (and (forall ( ?pos - location) (not (mouse-at ?pos - location)) ) ) :tasks ( (:inline () ()) ) ) === Tarea:20 === ?pos1 <- px0y1 ?snakepos <- px2y2 ?foodpos <- px0y0 ?snake <- viper ?pos2 <- px1y2 ?pos2 <- px0y2 ?pos2 <- px0y1 === Lista de tareas: [0] :unexpanded (hunt) [1] :unexpanded (move viper px2y2 px0y1) [2] :unexpanded (strike viper px0y1 px0y0) [3] :unexpanded (hunt) [4] :unexpanded (move-short viper px1y2 px2y2) [5] :unexpanded (move viper px1y2 px0y1) [6] :unexpanded (move-short_primitive viper px1y2 px2y2) [7] :action (move-short_primitive viper px1y2 px2y2) [8] :unexpanded (move-short viper px0y2 px1y2) [9] :unexpanded (move viper px0y2 px0y1) [10] :unexpanded (move-short_primitive viper px0y2 px1y2) [11] :action (move-short_primitive viper px0y2 px1y2) [12] :unexpanded (move-short viper px0y1 px0y2) [13] :unexpanded (move viper px0y1 px0y1) [14] :unexpanded (move-short_primitive viper px0y1 px0y2) [15] :action (move-short_primitive viper px0y1 px0y2) [16] :action (:inline) [17] :action (:inline) [18] :unexpanded (strike_primitive viper px0y1 px0y0) [19] :action (strike_primitive viper px0y1 px0y0) [20] :action (:inline) [21] :action (:inline) ### :action (move-short_primitive viper px1y2 px2y2) :action (move-short_primitive viper px0y2 px1y2) :action (move-short_primitive viper px0y1 px0y2) :action (strike_primitive viper px0y1 px0y0) ==> 4 move-short viper px1y2 px2y2 8 move-short viper px0y2 px1y2 12 move-short viper px0y1 px0y2 2 strike viper px0y1 px0y0 root 0 0 hunt -> hunt_all 1 2 3 1 move viper px2y2 px0y1 -> move-short-snake 4 5 5 move viper px1y2 px0y1 -> move-short-snake 8 9 9 move viper px0y2 px0y1 -> move-short-snake 12 13 13 move viper px0y1 px0y1 -> move-base 3 hunt -> hunt_done <== %TIME 0:00.27 38368 %EXIT 0 pandaPIparser is configured as follows Colors in output: false Mode: plan verification Verbosity: 1 Lenient mode: false Ignore given order: false Reading plan given as input Parse instantiated task from " move-short viper px1y2 px2y2" ... done Parsed action id=4 move-short viper px1y2 px2y2 Parse instantiated task from " move-short viper px0y2 px1y2" ... done Parsed action id=8 move-short viper px0y2 px1y2 Parse instantiated task from " move-short viper px0y1 px0y2" ... done Parsed action id=12 move-short viper px0y1 px0y2 Parse instantiated task from " strike viper px0y1 px0y0" ... done Parsed action id=2 strike viper px0y1 px0y0 Size of primitive plan: 4 Reading list of integers from " 0" Root tasks (1): 0 Reading plan given as input Parse instantiated task from " hunt" ... done Parsed abstract task id=0 hunt Parsed method name: hunt_all Subtasks: 1 2 3 Parse instantiated task from " move viper px2y2 px0y1" ... done Parsed abstract task id=1 move viper px2y2 px0y1 Parsed method name: move-short-snake Subtasks: 4 5 Parse instantiated task from " move viper px1y2 px0y1" ... done Parsed abstract task id=5 move viper px1y2 px0y1 Parsed method name: move-short-snake Subtasks: 8 9 Parse instantiated task from " move viper px0y2 px0y1" ... done Parsed abstract task id=9 move viper px0y2 px0y1 Parsed method name: move-short-snake Subtasks: 12 13 Parse instantiated task from " move viper px0y1 px0y1" ... done Parsed abstract task id=13 move viper px0y1 px0y1 Parsed method name: move-base Subtasks: Parse instantiated task from " hunt" ... done Parsed abstract task id=3 hunt Parsed method name: hunt_done Subtasks: Reached end of plan (marked). Checking the given plan ... IDs of subtasks used in the plan exist: true Tasks declared in plan actually exist and can be instantiated as given: true Methods don't contain duplicate subtasks: true Methods don't contain orphaned tasks: true Generating Matchings for task with id=0 Matching Task 1 Curpos=0 #sources=1 Task is: move viper px2y2 px0y1 Attempting matching with source __t_id_0 Setting ?snake = viper Setting ?snakepos = px2y2 Setting ?pos1 = px0y1 Matching Task 2 Curpos=1 #sources=1 Task is: strike viper px0y1 px0y0 Attempting matching with source __t_id_1 Setting ?snake = viper Setting ?pos1 = px0y1 Setting ?foodpos = px0y0 Matching Task 3 Curpos=2 #sources=1 Task is: hunt Attempting matching with source __t_id_2 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=0 Generating Matchings for task with id=1 Matching Task 4 Curpos=0 #sources=1 Task is: move-short viper px1y2 px2y2 Attempting matching with source __t_id_5 Setting ?snake = viper Setting ?pos2 = px1y2 Setting ?snakepos = px2y2 Matching Task 5 Curpos=1 #sources=1 Task is: move viper px1y2 px0y1 Attempting matching with source __t_id_6 Setting ?snake = viper Setting ?pos2 = px1y2 Setting ?goalpos = px0y1 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=1 Generating Matchings for task with id=3 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=3 Generating Matchings for task with id=5 Matching Task 8 Curpos=0 #sources=1 Task is: move-short viper px0y2 px1y2 Attempting matching with source __t_id_5 Setting ?snake = viper Setting ?pos2 = px0y2 Setting ?snakepos = px1y2 Matching Task 9 Curpos=1 #sources=1 Task is: move viper px0y2 px0y1 Attempting matching with source __t_id_6 Setting ?snake = viper Setting ?pos2 = px0y2 Setting ?goalpos = px0y1 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=5 Generating Matchings for task with id=6 Matching Task 0 Curpos=0 #sources=1 Task is: hunt Attempting matching with source __t_id_7 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=6 Generating Matchings for task with id=9 Matching Task 12 Curpos=0 #sources=1 Task is: move-short viper px0y1 px0y2 Attempting matching with source __t_id_5 Setting ?snake = viper Setting ?pos2 = px0y1 Setting ?snakepos = px0y2 Matching Task 13 Curpos=1 #sources=1 Task is: move viper px0y1 px0y1 Attempting matching with source __t_id_6 Setting ?snake = viper Setting ?pos2 = px0y1 Setting ?goalpos = px0y1 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=9 Generating Matchings for task with id=13 Found compatible linearisation. Checking constants are in variable type ... Checking method's constraint formula ... Checking variable constraints in method's precondition ... Matching is ok. Found 1 matchings for task with id=13 Methods can be instantiated: true Check whether primitive plan is a linearisation of the orderings resulting from applied decomposition methods. Abstract Task id=6 matching still unique: true (1) Attempting matching Abstract Task id=0 matching still unique: true (1) Attempting matching Abstract Task id=1 matching still unique: true (1) Attempting matching Primitive Task id=4 Abstract Task id=5 matching still unique: true (1) Attempting matching Primitive Task id=8 Abstract Task id=9 matching still unique: true (1) Attempting matching Primitive Task id=12 Abstract Task id=13 matching still unique: true (1) Attempting matching Ordering OK. Ordering OK. Ordering OK. Ordering OK. Primitive Task id=2 Abstract Task id=3 matching still unique: true (1) Attempting matching Ordering OK. Ordering OK. Root Task, checking primitive executability ... Running exponential top-sort. The current state is: adjacent px0y0 px0y1 adjacent px0y0 px1y0 adjacent px0y1 px0y0 adjacent px0y1 px0y2 adjacent px0y1 px1y1 adjacent px0y2 px0y1 adjacent px0y2 px1y2 adjacent px1y0 px0y0 adjacent px1y0 px1y1 adjacent px1y0 px2y0 adjacent px1y1 px0y1 adjacent px1y1 px1y0 adjacent px1y1 px1y2 adjacent px1y1 px2y1 adjacent px1y2 px0y2 adjacent px1y2 px1y1 adjacent px1y2 px2y2 adjacent px2y0 px1y0 adjacent px2y0 px2y1 adjacent px2y1 px1y1 adjacent px2y1 px2y0 adjacent px2y1 px2y2 adjacent px2y2 px1y2 adjacent px2y2 px2y1 head viper px2y2 mouse-at px0y0 occupied px0y0 occupied px2y2 tail viper px2y2 Executing plan time=1 #sources=1 Source 6 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 0 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 1 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 4 is a primitive action. Action has an effect. Performed all sources that can be taken greedily. 1 sources remain. unique=true Attempting to progress through source 4 Task is: move-short viper px1y2 px2y2 Applying effects of the action. Removing fact from state: head viper px2y2 Removing fact from state: occupied px2y2 Removing fact from state: tail viper px2y2 Adding fact to state: head viper px1y2 Adding fact to state: occupied px1y2 Adding fact to state: tail viper px1y2 The new state is: adjacent px0y0 px0y1 adjacent px0y0 px1y0 adjacent px0y1 px0y0 adjacent px0y1 px0y2 adjacent px0y1 px1y1 adjacent px0y2 px0y1 adjacent px0y2 px1y2 adjacent px1y0 px0y0 adjacent px1y0 px1y1 adjacent px1y0 px2y0 adjacent px1y1 px0y1 adjacent px1y1 px1y0 adjacent px1y1 px1y2 adjacent px1y1 px2y1 adjacent px1y2 px0y2 adjacent px1y2 px1y1 adjacent px1y2 px2y2 adjacent px2y0 px1y0 adjacent px2y0 px2y1 adjacent px2y1 px1y1 adjacent px2y1 px2y0 adjacent px2y1 px2y2 adjacent px2y2 px1y2 adjacent px2y2 px2y1 head viper px1y2 mouse-at px0y0 occupied px0y0 occupied px1y2 tail viper px1y2 Executing plan time=1 #sources=1 Source -5 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 5 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 8 is a primitive action. Action has an effect. Performed all sources that can be taken greedily. 1 sources remain. unique=true Attempting to progress through source 8 Task is: move-short viper px0y2 px1y2 Applying effects of the action. Removing fact from state: head viper px1y2 Removing fact from state: occupied px1y2 Removing fact from state: tail viper px1y2 Adding fact to state: head viper px0y2 Adding fact to state: occupied px0y2 Adding fact to state: tail viper px0y2 The new state is: adjacent px0y0 px0y1 adjacent px0y0 px1y0 adjacent px0y1 px0y0 adjacent px0y1 px0y2 adjacent px0y1 px1y1 adjacent px0y2 px0y1 adjacent px0y2 px1y2 adjacent px1y0 px0y0 adjacent px1y0 px1y1 adjacent px1y0 px2y0 adjacent px1y1 px0y1 adjacent px1y1 px1y0 adjacent px1y1 px1y2 adjacent px1y1 px2y1 adjacent px1y2 px0y2 adjacent px1y2 px1y1 adjacent px1y2 px2y2 adjacent px2y0 px1y0 adjacent px2y0 px2y1 adjacent px2y1 px1y1 adjacent px2y1 px2y0 adjacent px2y1 px2y2 adjacent px2y2 px1y2 adjacent px2y2 px2y1 head viper px0y2 mouse-at px0y0 occupied px0y0 occupied px0y2 tail viper px0y2 Executing plan time=1 #sources=1 Source -9 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 9 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 12 is a primitive action. Action has an effect. Performed all sources that can be taken greedily. 1 sources remain. unique=true Attempting to progress through source 12 Task is: move-short viper px0y1 px0y2 Applying effects of the action. Removing fact from state: head viper px0y2 Removing fact from state: occupied px0y2 Removing fact from state: tail viper px0y2 Adding fact to state: head viper px0y1 Adding fact to state: occupied px0y1 Adding fact to state: tail viper px0y1 The new state is: adjacent px0y0 px0y1 adjacent px0y0 px1y0 adjacent px0y1 px0y0 adjacent px0y1 px0y2 adjacent px0y1 px1y1 adjacent px0y2 px0y1 adjacent px0y2 px1y2 adjacent px1y0 px0y0 adjacent px1y0 px1y1 adjacent px1y0 px2y0 adjacent px1y1 px0y1 adjacent px1y1 px1y0 adjacent px1y1 px1y2 adjacent px1y1 px2y1 adjacent px1y2 px0y2 adjacent px1y2 px1y1 adjacent px1y2 px2y2 adjacent px2y0 px1y0 adjacent px2y0 px2y1 adjacent px2y1 px1y1 adjacent px2y1 px2y0 adjacent px2y1 px2y2 adjacent px2y2 px1y2 adjacent px2y2 px2y1 head viper px0y1 mouse-at px0y0 occupied px0y0 occupied px0y1 tail viper px0y1 Executing plan time=1 #sources=1 Source -13 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 13 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -14 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -10 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -6 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -2 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 2 is a primitive action. Action has an effect. Performed all sources that can be taken greedily. 1 sources remain. unique=true Attempting to progress through source 2 Task is: strike viper px0y1 px0y0 Applying effects of the action. Removing fact from state: head viper px0y1 Removing fact from state: mouse-at px0y0 Adding fact to state: connected viper px0y0 px0y1 Adding fact to state: head viper px0y0 The new state is: adjacent px0y0 px0y1 adjacent px0y0 px1y0 adjacent px0y1 px0y0 adjacent px0y1 px0y2 adjacent px0y1 px1y1 adjacent px0y2 px0y1 adjacent px0y2 px1y2 adjacent px1y0 px0y0 adjacent px1y0 px1y1 adjacent px1y0 px2y0 adjacent px1y1 px0y1 adjacent px1y1 px1y0 adjacent px1y1 px1y2 adjacent px1y1 px2y1 adjacent px1y2 px0y2 adjacent px1y2 px1y1 adjacent px1y2 px2y2 adjacent px2y0 px1y0 adjacent px2y0 px2y1 adjacent px2y1 px1y1 adjacent px2y1 px2y0 adjacent px2y1 px2y2 adjacent px2y2 px1y2 adjacent px2y2 px2y1 connected viper px0y0 px0y1 head viper px0y0 occupied px0y0 occupied px0y1 tail viper px0y1 Executing plan time=1 #sources=1 Source -3 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source 3 is the begin of an abstract task. Evaluating the method precondition Method has no effect. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -4 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -1 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=1 Source -7 is a dummy for the end of a task. I can greedily take this source without making any mistake. Executing plan time=1 #sources=0 Executed the whole plan ... checking whether we reached the goal state. The current state is: adjacent px0y0 px0y1 adjacent px0y0 px1y0 adjacent px0y1 px0y0 adjacent px0y1 px0y2 adjacent px0y1 px1y1 adjacent px0y2 px0y1 adjacent px0y2 px1y2 adjacent px1y0 px0y0 adjacent px1y0 px1y1 adjacent px1y0 px2y0 adjacent px1y1 px0y1 adjacent px1y1 px1y0 adjacent px1y1 px1y2 adjacent px1y1 px2y1 adjacent px1y2 px0y2 adjacent px1y2 px1y1 adjacent px1y2 px2y2 adjacent px2y0 px1y0 adjacent px2y0 px2y1 adjacent px2y1 px1y1 adjacent px2y1 px2y0 adjacent px2y1 px2y2 adjacent px2y2 px1y2 adjacent px2y2 px2y1 connected viper px0y0 px0y1 head viper px0y0 occupied px0y0 occupied px0y1 tail viper px0y1 Executable linearisation found. Ordering OK. Result true true Order induced by methods is present in plan: true Plan is executable: true Plan verification result: true