From: Alexander Fedotov Date: Mon, 14 Mar 2016 19:56:25 +0000 (+0100) Subject: 489 coord model X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=65064c86ccd584dce8bff8927dda8d8bc2e9d408;p=mc1516pa.git 489 coord model --- diff --git a/Models/489-coord.smv b/Models/489-coord.smv new file mode 100644 index 0000000..b122475 --- /dev/null +++ b/Models/489-coord.smv @@ -0,0 +1,2125 @@ +MODULE main +VAR + x0_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x0_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x0_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x0_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x0_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x0_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x0_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x1_7 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x2_7 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x3_7 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x4_7 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x5_7 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x6_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_0 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_1 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_2 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_3 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_4 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_5 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + x7_6 : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget}; + move : {Up, Down, Left, Right}; + ASSIGN + init(move) := {Up, Down, Left, Right}; + init(x0_0) := Free; + init(x0_1) := Free; + init(x0_2) := Wall; + init(x0_3) := Wall; + init(x0_4) := Wall; + init(x0_5) := Wall; + init(x0_6) := Wall; + init(x1_0) := Wall; + init(x1_1) := Wall; + init(x1_2) := Wall; + init(x1_3) := Free; + init(x1_4) := Free; + init(x1_5) := Free; + init(x1_6) := Wall; + init(x1_7) := Wall; + init(x2_0) := Wall; + init(x2_1) := Free; + init(x2_2) := Box; + init(x2_3) := Box; + init(x2_4) := Target; + init(x2_5) := Target; + init(x2_6) := Free; + init(x2_7) := Wall; + init(x3_0) := Wall; + init(x3_1) := Free; + init(x3_2) := Free; + init(x3_3) := Target; + init(x3_4) := Agent; + init(x3_5) := Wall; + init(x3_6) := Free; + init(x3_7) := Wall; + init(x4_0) := Wall; + init(x4_1) := Wall; + init(x4_2) := Free; + init(x4_3) := Wall; + init(x4_4) := Free; + init(x4_5) := Free; + init(x4_6) := Free; + init(x4_7) := Wall; + init(x5_0) := Free; + init(x5_1) := Wall; + init(x5_2) := Free; + init(x5_3) := Box; + init(x5_4) := BoxOnTarget; + init(x5_5) := Free; + init(x5_6) := Wall; + init(x5_7) := Wall; + init(x6_0) := Free; + init(x6_1) := Wall; + init(x6_2) := Wall; + init(x6_3) := Wall; + init(x6_4) := Free; + init(x6_5) := Free; + init(x6_6) := Wall; + init(x7_0) := Free; + init(x7_1) := Free; + init(x7_2) := Free; + init(x7_3) := Wall; + init(x7_4) := Wall; + init(x7_5) := Wall; + init(x7_6) := Wall; + next(x0_0) := case + x0_0 = Wall: Wall; + x0_0 = Free & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Left: Agent; + x0_0 = Free & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Up: Agent; + x0_0 = Free & (x0_1 = Box | x0_1 = BoxOnTarget) & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Left: Box; + x0_0 = Free & (x1_0 = Box | x1_0 = BoxOnTarget) & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Up: Box; + x0_0 = Agent & (x0_1 = Free | x0_1 = Target) & move = Right: Free; + x0_0 = Agent & (x1_0 = Free | x1_0 = Target) & move = Down: Free; + x0_0 = Agent & (x0_1 = Box | x0_1 = BoxOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Right: Free; + x0_0 = Agent & (x1_0 = Box | x1_0 = BoxOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Down: Free; + x0_0 = Target & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x0_0 = Target & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_0 = Target & (x0_1 = Box | x0_1 = BoxOnTarget) & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x0_0 = Target & (x1_0 = Box | x1_0 = BoxOnTarget) & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_0 = AgentOnTarget & (x0_1 = Free | x0_1 = Target) & move = Right: Target; + x0_0 = AgentOnTarget & (x1_0 = Free | x1_0 = Target) & move = Down: Target; + TRUE : x0_0; + esac; + next(x0_1) := case + x0_1 = Wall: Wall; + x0_1 = Free & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Left: Agent; + x0_1 = Free & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Up: Agent; + x0_1 = Free & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Right : Agent; + x0_1 = Free & (x0_2 = Box | x0_2 = BoxOnTarget) & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Left: Box; + x0_1 = Free & (x1_1 = Box | x1_1 = BoxOnTarget) & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Up: Box; + x0_1 = Agent & (x0_2 = Free | x0_2 = Target) & move = Right: Free; + x0_1 = Agent & (x1_1 = Free | x1_1 = Target) & move = Down: Free; + x0_1 = Agent & (x0_0 = Free | x0_0 = Target) & move = Left : Free; + x0_1 = Agent & (x0_2 = Box | x0_2 = BoxOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Right: Free; + x0_1 = Agent & (x1_1 = Box | x1_1 = BoxOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Down: Free; + x0_1 = Box & (x0_2 = Agent | x0_2 = AgentOnTarget) & (x0_0 = Free | x0_0 = Target) & move = Left: Agent; + x0_1 = Box & (x0_0 = Agent | x0_0 = AgentOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Right : Agent; + x0_1 = Target & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x0_1 = Target & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_1 = Target & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x0_1 = Target & (x0_2 = Box | x0_2 = BoxOnTarget) & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x0_1 = Target & (x1_1 = Box | x1_1 = BoxOnTarget) & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_1 = AgentOnTarget & (x0_2 = Free | x0_2 = Target) & move = Right: Target; + x0_1 = AgentOnTarget & (x1_1 = Free | x1_1 = Target) & move = Down: Target; + x0_1 = AgentOnTarget & (x0_0 = Free | x0_0 = Target) & move = Left : Target; + x0_1 = BoxOnTarget & (x0_2 = Agent | x0_2 = AgentOnTarget) & (x0_0 = Free | x0_0 = Target) & move = Left: AgentOnTarget; + x0_1 = BoxOnTarget & (x0_0 = Agent | x0_0 = AgentOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Right : AgentOnTarget; + TRUE : x0_1; + esac; + next(x0_2) := case + x0_2 = Wall: Wall; + x0_2 = Free & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Left: Agent; + x0_2 = Free & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Up: Agent; + x0_2 = Free & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Right : Agent; + x0_2 = Free & (x0_3 = Box | x0_3 = BoxOnTarget) & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Left: Box; + x0_2 = Free & (x1_2 = Box | x1_2 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Up: Box; + x0_2 = Free & (x0_1 = Box | x0_1 = BoxOnTarget) & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Right : Box; + x0_2 = Agent & (x0_3 = Free | x0_3 = Target) & move = Right: Free; + x0_2 = Agent & (x1_2 = Free | x1_2 = Target) & move = Down: Free; + x0_2 = Agent & (x0_1 = Free | x0_1 = Target) & move = Left : Free; + x0_2 = Agent & (x0_3 = Box | x0_3 = BoxOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Right: Free; + x0_2 = Agent & (x1_2 = Box | x1_2 = BoxOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Down: Free; + x0_2 = Agent & (x0_1 = Box | x0_1 = BoxOnTarget) & (x0_0 = Free | x0_0 = Target) & move = Left: Free; + x0_2 = Box & (x0_3 = Agent | x0_3 = AgentOnTarget) & (x0_1 = Free | x0_1 = Target) & move = Left: Agent; + x0_2 = Box & (x0_1 = Agent | x0_1 = AgentOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Right : Agent; + x0_2 = Target & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x0_2 = Target & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_2 = Target & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x0_2 = Target & (x0_3 = Box | x0_3 = BoxOnTarget) & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x0_2 = Target & (x1_2 = Box | x1_2 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_2 = Target & (x0_1 = Box | x0_1 = BoxOnTarget) & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x0_2 = AgentOnTarget & (x0_3 = Free | x0_3 = Target) & move = Right: Target; + x0_2 = AgentOnTarget & (x1_2 = Free | x1_2 = Target) & move = Down: Target; + x0_2 = AgentOnTarget & (x0_1 = Free | x0_1 = Target) & move = Left : Target; + x0_2 = BoxOnTarget & (x0_3 = Agent | x0_3 = AgentOnTarget) & (x0_1 = Free | x0_1 = Target) & move = Left: AgentOnTarget; + x0_2 = BoxOnTarget & (x0_1 = Agent | x0_1 = AgentOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Right : AgentOnTarget; + TRUE : x0_2; + esac; + next(x0_3) := case + x0_3 = Wall: Wall; + x0_3 = Free & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Left: Agent; + x0_3 = Free & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Up: Agent; + x0_3 = Free & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Right : Agent; + x0_3 = Free & (x0_4 = Box | x0_4 = BoxOnTarget) & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Left: Box; + x0_3 = Free & (x1_3 = Box | x1_3 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Up: Box; + x0_3 = Free & (x0_2 = Box | x0_2 = BoxOnTarget) & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Right : Box; + x0_3 = Agent & (x0_4 = Free | x0_4 = Target) & move = Right: Free; + x0_3 = Agent & (x1_3 = Free | x1_3 = Target) & move = Down: Free; + x0_3 = Agent & (x0_2 = Free | x0_2 = Target) & move = Left : Free; + x0_3 = Agent & (x0_4 = Box | x0_4 = BoxOnTarget) & (x0_5 = Free | x0_5 = Target) & move = Right: Free; + x0_3 = Agent & (x1_3 = Box | x1_3 = BoxOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Down: Free; + x0_3 = Agent & (x0_2 = Box | x0_2 = BoxOnTarget) & (x0_1 = Free | x0_1 = Target) & move = Left: Free; + x0_3 = Box & (x0_4 = Agent | x0_4 = AgentOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Left: Agent; + x0_3 = Box & (x0_2 = Agent | x0_2 = AgentOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Right : Agent; + x0_3 = Target & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x0_3 = Target & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_3 = Target & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x0_3 = Target & (x0_4 = Box | x0_4 = BoxOnTarget) & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x0_3 = Target & (x1_3 = Box | x1_3 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_3 = Target & (x0_2 = Box | x0_2 = BoxOnTarget) & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x0_3 = AgentOnTarget & (x0_4 = Free | x0_4 = Target) & move = Right: Target; + x0_3 = AgentOnTarget & (x1_3 = Free | x1_3 = Target) & move = Down: Target; + x0_3 = AgentOnTarget & (x0_2 = Free | x0_2 = Target) & move = Left : Target; + x0_3 = BoxOnTarget & (x0_4 = Agent | x0_4 = AgentOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Left: AgentOnTarget; + x0_3 = BoxOnTarget & (x0_2 = Agent | x0_2 = AgentOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Right : AgentOnTarget; + TRUE : x0_3; + esac; + next(x0_4) := case + x0_4 = Wall: Wall; + x0_4 = Free & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Left: Agent; + x0_4 = Free & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Up: Agent; + x0_4 = Free & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Right : Agent; + x0_4 = Free & (x0_5 = Box | x0_5 = BoxOnTarget) & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Left: Box; + x0_4 = Free & (x1_4 = Box | x1_4 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Up: Box; + x0_4 = Free & (x0_3 = Box | x0_3 = BoxOnTarget) & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Right : Box; + x0_4 = Agent & (x0_5 = Free | x0_5 = Target) & move = Right: Free; + x0_4 = Agent & (x1_4 = Free | x1_4 = Target) & move = Down: Free; + x0_4 = Agent & (x0_3 = Free | x0_3 = Target) & move = Left : Free; + x0_4 = Agent & (x0_5 = Box | x0_5 = BoxOnTarget) & (x0_6 = Free | x0_6 = Target) & move = Right: Free; + x0_4 = Agent & (x1_4 = Box | x1_4 = BoxOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Down: Free; + x0_4 = Agent & (x0_3 = Box | x0_3 = BoxOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Left: Free; + x0_4 = Box & (x0_5 = Agent | x0_5 = AgentOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Left: Agent; + x0_4 = Box & (x0_3 = Agent | x0_3 = AgentOnTarget) & (x0_5 = Free | x0_5 = Target) & move = Right : Agent; + x0_4 = Target & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x0_4 = Target & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_4 = Target & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x0_4 = Target & (x0_5 = Box | x0_5 = BoxOnTarget) & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x0_4 = Target & (x1_4 = Box | x1_4 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_4 = Target & (x0_3 = Box | x0_3 = BoxOnTarget) & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x0_4 = AgentOnTarget & (x0_5 = Free | x0_5 = Target) & move = Right: Target; + x0_4 = AgentOnTarget & (x1_4 = Free | x1_4 = Target) & move = Down: Target; + x0_4 = AgentOnTarget & (x0_3 = Free | x0_3 = Target) & move = Left : Target; + x0_4 = BoxOnTarget & (x0_5 = Agent | x0_5 = AgentOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Left: AgentOnTarget; + x0_4 = BoxOnTarget & (x0_3 = Agent | x0_3 = AgentOnTarget) & (x0_5 = Free | x0_5 = Target) & move = Right : AgentOnTarget; + TRUE : x0_4; + esac; + next(x0_5) := case + x0_5 = Wall: Wall; + x0_5 = Free & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Left: Agent; + x0_5 = Free & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Up: Agent; + x0_5 = Free & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Right : Agent; + x0_5 = Free & (x1_5 = Box | x1_5 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Up: Box; + x0_5 = Free & (x0_4 = Box | x0_4 = BoxOnTarget) & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Right : Box; + x0_5 = Agent & (x0_6 = Free | x0_6 = Target) & move = Right: Free; + x0_5 = Agent & (x1_5 = Free | x1_5 = Target) & move = Down: Free; + x0_5 = Agent & (x0_4 = Free | x0_4 = Target) & move = Left : Free; + x0_5 = Agent & (x1_5 = Box | x1_5 = BoxOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Down: Free; + x0_5 = Agent & (x0_4 = Box | x0_4 = BoxOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Left: Free; + x0_5 = Box & (x0_6 = Agent | x0_6 = AgentOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Left: Agent; + x0_5 = Box & (x0_4 = Agent | x0_4 = AgentOnTarget) & (x0_6 = Free | x0_6 = Target) & move = Right : Agent; + x0_5 = Target & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x0_5 = Target & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_5 = Target & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x0_5 = Target & (x1_5 = Box | x1_5 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_5 = Target & (x0_4 = Box | x0_4 = BoxOnTarget) & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x0_5 = AgentOnTarget & (x0_6 = Free | x0_6 = Target) & move = Right: Target; + x0_5 = AgentOnTarget & (x1_5 = Free | x1_5 = Target) & move = Down: Target; + x0_5 = AgentOnTarget & (x0_4 = Free | x0_4 = Target) & move = Left : Target; + x0_5 = BoxOnTarget & (x0_6 = Agent | x0_6 = AgentOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Left: AgentOnTarget; + x0_5 = BoxOnTarget & (x0_4 = Agent | x0_4 = AgentOnTarget) & (x0_6 = Free | x0_6 = Target) & move = Right : AgentOnTarget; + TRUE : x0_5; + esac; + next(x0_6) := case + x0_6 = Wall: Wall; + x0_6 = Free & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Up: Agent; + x0_6 = Free & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Right : Agent; + x0_6 = Free & (x1_6 = Box | x1_6 = BoxOnTarget) & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Up: Box; + x0_6 = Free & (x0_5 = Box | x0_5 = BoxOnTarget) & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Right : Box; + x0_6 = Agent & (x1_6 = Free | x1_6 = Target) & move = Down: Free; + x0_6 = Agent & (x0_5 = Free | x0_5 = Target) & move = Left : Free; + x0_6 = Agent & (x1_6 = Box | x1_6 = BoxOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Down: Free; + x0_6 = Agent & (x0_5 = Box | x0_5 = BoxOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Left: Free; + x0_6 = Target & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x0_6 = Target & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x0_6 = Target & (x1_6 = Box | x1_6 = BoxOnTarget) & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Up: BoxOnTarget; + x0_6 = Target & (x0_5 = Box | x0_5 = BoxOnTarget) & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x0_6 = AgentOnTarget & (x1_6 = Free | x1_6 = Target) & move = Down: Target; + x0_6 = AgentOnTarget & (x0_5 = Free | x0_5 = Target) & move = Left : Target; + TRUE : x0_6; + esac; + next(x1_0) := case + x1_0 = Wall: Wall; + x1_0 = Free & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Left: Agent; + x1_0 = Free & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Up: Agent; + x1_0 = Free & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Down : Agent; + x1_0 = Free & (x1_1 = Box | x1_1 = BoxOnTarget) & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Left: Box; + x1_0 = Free & (x2_0 = Box | x2_0 = BoxOnTarget) & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Up: Box; + x1_0 = Agent & (x1_1 = Free | x1_1 = Target) & move = Right: Free; + x1_0 = Agent & (x2_0 = Free | x2_0 = Target) & move = Down: Free; + x1_0 = Agent & (x0_0= Free | x0_0 = Target) & move = Up : Free; + x1_0 = Agent & (x1_1 = Box | x1_1 = BoxOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Right: Free; + x1_0 = Agent & (x2_0 = Box | x2_0 = BoxOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Down: Free; + x1_0 = Box & (x2_0 = Agent | x2_0 = AgentOnTarget) & (x0_0 = Free | x0_0 = Target) & move = Up: Agent; + x1_0 = Box & (x0_0 = Agent | x0_0 = AgentOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Down : Agent; + x1_0 = Target & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_0 = Target & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_0 = Target & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_0 = Target & (x1_1 = Box | x1_1 = BoxOnTarget) & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x1_0 = Target & (x2_0 = Box | x2_0 = BoxOnTarget) & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_0 = AgentOnTarget & (x1_1 = Free | x1_1 = Target) & move = Right: Target; + x1_0 = AgentOnTarget & (x2_0 = Free | x2_0 = Target) & move = Down: Target; + x1_0 = AgentOnTarget & (x0_0 = Free | x0_0 = Target) & move = Up : Target; + x1_0 = BoxOnTarget & (x2_0 = Agent | x2_0 = AgentOnTarget) & (x0_0 = Free | x0_0 = Target) & move = Up: AgentOnTarget; + x1_0 = BoxOnTarget & (x0_0 = Agent | x0_0 = AgentOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Down : AgentOnTarget; + TRUE : x1_0; + esac; + next(x1_1) := case + x1_1 = Wall: Wall; + x1_1 = Free & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Left: Agent; + x1_1 = Free & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Up: Agent; + x1_1 = Free & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Right : Agent; + x1_1 = Free & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Down : Agent; + x1_1 = Free & (x1_2 = Box | x1_2 = BoxOnTarget) & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Left: Box; + x1_1 = Free & (x2_1 = Box | x2_1 = BoxOnTarget) & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Up: Box; + x1_1 = Agent & (x1_2 = Free | x1_2 = Target) & move = Right: Free; + x1_1 = Agent & (x2_1 = Free | x2_1 = Target) & move = Down: Free; + x1_1 = Agent & (x1_0 = Free | x1_0 = Target) & move = Left : Free; + x1_1 = Agent & (x0_1= Free | x0_1 = Target) & move = Up : Free; + x1_1 = Agent & (x1_2 = Box | x1_2 = BoxOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Right: Free; + x1_1 = Agent & (x2_1 = Box | x2_1 = BoxOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Down: Free; + x1_1 = Box & (x1_2 = Agent | x1_2 = AgentOnTarget) & (x1_0 = Free | x1_0 = Target) & move = Left: Agent; + x1_1 = Box & (x2_1 = Agent | x2_1 = AgentOnTarget) & (x0_1 = Free | x0_1 = Target) & move = Up: Agent; + x1_1 = Box & (x1_0 = Agent | x1_0 = AgentOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Right : Agent; + x1_1 = Box & (x0_1 = Agent | x0_1 = AgentOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Down : Agent; + x1_1 = Target & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_1 = Target & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_1 = Target & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_1 = Target & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_1 = Target & (x1_2 = Box | x1_2 = BoxOnTarget) & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x1_1 = Target & (x2_1 = Box | x2_1 = BoxOnTarget) & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_1 = AgentOnTarget & (x1_2 = Free | x1_2 = Target) & move = Right: Target; + x1_1 = AgentOnTarget & (x2_1 = Free | x2_1 = Target) & move = Down: Target; + x1_1 = AgentOnTarget & (x1_0 = Free | x1_0 = Target) & move = Left : Target; + x1_1 = AgentOnTarget & (x0_1 = Free | x0_1 = Target) & move = Up : Target; + x1_1 = BoxOnTarget & (x1_2 = Agent | x1_2 = AgentOnTarget) & (x1_0 = Free | x1_0 = Target) & move = Left: AgentOnTarget; + x1_1 = BoxOnTarget & (x2_1 = Agent | x2_1 = AgentOnTarget) & (x0_1 = Free | x0_1 = Target) & move = Up: AgentOnTarget; + x1_1 = BoxOnTarget & (x1_0 = Agent | x1_0 = AgentOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Right : AgentOnTarget; + x1_1 = BoxOnTarget & (x0_1 = Agent | x0_1 = AgentOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Down : AgentOnTarget; + TRUE : x1_1; + esac; + next(x1_2) := case + x1_2 = Wall: Wall; + x1_2 = Free & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Left: Agent; + x1_2 = Free & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Up: Agent; + x1_2 = Free & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Right : Agent; + x1_2 = Free & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Down : Agent; + x1_2 = Free & (x1_3 = Box | x1_3 = BoxOnTarget) & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Left: Box; + x1_2 = Free & (x2_2 = Box | x2_2 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Up: Box; + x1_2 = Free & (x1_1 = Box | x1_1 = BoxOnTarget) & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Right : Box; + x1_2 = Agent & (x1_3 = Free | x1_3 = Target) & move = Right: Free; + x1_2 = Agent & (x2_2 = Free | x2_2 = Target) & move = Down: Free; + x1_2 = Agent & (x1_1 = Free | x1_1 = Target) & move = Left : Free; + x1_2 = Agent & (x0_2= Free | x0_2 = Target) & move = Up : Free; + x1_2 = Agent & (x1_3 = Box | x1_3 = BoxOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Right: Free; + x1_2 = Agent & (x2_2 = Box | x2_2 = BoxOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Down: Free; + x1_2 = Agent & (x1_1 = Box | x1_1 = BoxOnTarget) & (x1_0 = Free | x1_0 = Target) & move = Left: Free; + x1_2 = Box & (x1_3 = Agent | x1_3 = AgentOnTarget) & (x1_1 = Free | x1_1 = Target) & move = Left: Agent; + x1_2 = Box & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Up: Agent; + x1_2 = Box & (x1_1 = Agent | x1_1 = AgentOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Right : Agent; + x1_2 = Box & (x0_2 = Agent | x0_2 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Down : Agent; + x1_2 = Target & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_2 = Target & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_2 = Target & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_2 = Target & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_2 = Target & (x1_3 = Box | x1_3 = BoxOnTarget) & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x1_2 = Target & (x2_2 = Box | x2_2 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_2 = Target & (x1_1 = Box | x1_1 = BoxOnTarget) & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x1_2 = AgentOnTarget & (x1_3 = Free | x1_3 = Target) & move = Right: Target; + x1_2 = AgentOnTarget & (x2_2 = Free | x2_2 = Target) & move = Down: Target; + x1_2 = AgentOnTarget & (x1_1 = Free | x1_1 = Target) & move = Left : Target; + x1_2 = AgentOnTarget & (x0_2 = Free | x0_2 = Target) & move = Up : Target; + x1_2 = BoxOnTarget & (x1_3 = Agent | x1_3 = AgentOnTarget) & (x1_1 = Free | x1_1 = Target) & move = Left: AgentOnTarget; + x1_2 = BoxOnTarget & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Up: AgentOnTarget; + x1_2 = BoxOnTarget & (x1_1 = Agent | x1_1 = AgentOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Right : AgentOnTarget; + x1_2 = BoxOnTarget & (x0_2 = Agent | x0_2 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Down : AgentOnTarget; + TRUE : x1_2; + esac; + next(x1_3) := case + x1_3 = Wall: Wall; + x1_3 = Free & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Left: Agent; + x1_3 = Free & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Up: Agent; + x1_3 = Free & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Right : Agent; + x1_3 = Free & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Down : Agent; + x1_3 = Free & (x1_4 = Box | x1_4 = BoxOnTarget) & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Left: Box; + x1_3 = Free & (x2_3 = Box | x2_3 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Up: Box; + x1_3 = Free & (x1_2 = Box | x1_2 = BoxOnTarget) & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Right : Box; + x1_3 = Agent & (x1_4 = Free | x1_4 = Target) & move = Right: Free; + x1_3 = Agent & (x2_3 = Free | x2_3 = Target) & move = Down: Free; + x1_3 = Agent & (x1_2 = Free | x1_2 = Target) & move = Left : Free; + x1_3 = Agent & (x0_3= Free | x0_3 = Target) & move = Up : Free; + x1_3 = Agent & (x1_4 = Box | x1_4 = BoxOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Right: Free; + x1_3 = Agent & (x2_3 = Box | x2_3 = BoxOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Down: Free; + x1_3 = Agent & (x1_2 = Box | x1_2 = BoxOnTarget) & (x1_1 = Free | x1_1 = Target) & move = Left: Free; + x1_3 = Box & (x1_4 = Agent | x1_4 = AgentOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Left: Agent; + x1_3 = Box & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Up: Agent; + x1_3 = Box & (x1_2 = Agent | x1_2 = AgentOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Right : Agent; + x1_3 = Box & (x0_3 = Agent | x0_3 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Down : Agent; + x1_3 = Target & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_3 = Target & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_3 = Target & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_3 = Target & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_3 = Target & (x1_4 = Box | x1_4 = BoxOnTarget) & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x1_3 = Target & (x2_3 = Box | x2_3 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_3 = Target & (x1_2 = Box | x1_2 = BoxOnTarget) & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x1_3 = AgentOnTarget & (x1_4 = Free | x1_4 = Target) & move = Right: Target; + x1_3 = AgentOnTarget & (x2_3 = Free | x2_3 = Target) & move = Down: Target; + x1_3 = AgentOnTarget & (x1_2 = Free | x1_2 = Target) & move = Left : Target; + x1_3 = AgentOnTarget & (x0_3 = Free | x0_3 = Target) & move = Up : Target; + x1_3 = BoxOnTarget & (x1_4 = Agent | x1_4 = AgentOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Left: AgentOnTarget; + x1_3 = BoxOnTarget & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Up: AgentOnTarget; + x1_3 = BoxOnTarget & (x1_2 = Agent | x1_2 = AgentOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Right : AgentOnTarget; + x1_3 = BoxOnTarget & (x0_3 = Agent | x0_3 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Down : AgentOnTarget; + TRUE : x1_3; + esac; + next(x1_4) := case + x1_4 = Wall: Wall; + x1_4 = Free & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Left: Agent; + x1_4 = Free & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Up: Agent; + x1_4 = Free & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Right : Agent; + x1_4 = Free & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Down : Agent; + x1_4 = Free & (x1_5 = Box | x1_5 = BoxOnTarget) & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Left: Box; + x1_4 = Free & (x2_4 = Box | x2_4 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Up: Box; + x1_4 = Free & (x1_3 = Box | x1_3 = BoxOnTarget) & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Right : Box; + x1_4 = Agent & (x1_5 = Free | x1_5 = Target) & move = Right: Free; + x1_4 = Agent & (x2_4 = Free | x2_4 = Target) & move = Down: Free; + x1_4 = Agent & (x1_3 = Free | x1_3 = Target) & move = Left : Free; + x1_4 = Agent & (x0_4= Free | x0_4 = Target) & move = Up : Free; + x1_4 = Agent & (x1_5 = Box | x1_5 = BoxOnTarget) & (x1_6 = Free | x1_6 = Target) & move = Right: Free; + x1_4 = Agent & (x2_4 = Box | x2_4 = BoxOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Down: Free; + x1_4 = Agent & (x1_3 = Box | x1_3 = BoxOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Left: Free; + x1_4 = Box & (x1_5 = Agent | x1_5 = AgentOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Left: Agent; + x1_4 = Box & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Up: Agent; + x1_4 = Box & (x1_3 = Agent | x1_3 = AgentOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Right : Agent; + x1_4 = Box & (x0_4 = Agent | x0_4 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Down : Agent; + x1_4 = Target & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_4 = Target & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_4 = Target & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_4 = Target & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_4 = Target & (x1_5 = Box | x1_5 = BoxOnTarget) & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x1_4 = Target & (x2_4 = Box | x2_4 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_4 = Target & (x1_3 = Box | x1_3 = BoxOnTarget) & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x1_4 = AgentOnTarget & (x1_5 = Free | x1_5 = Target) & move = Right: Target; + x1_4 = AgentOnTarget & (x2_4 = Free | x2_4 = Target) & move = Down: Target; + x1_4 = AgentOnTarget & (x1_3 = Free | x1_3 = Target) & move = Left : Target; + x1_4 = AgentOnTarget & (x0_4 = Free | x0_4 = Target) & move = Up : Target; + x1_4 = BoxOnTarget & (x1_5 = Agent | x1_5 = AgentOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Left: AgentOnTarget; + x1_4 = BoxOnTarget & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Up: AgentOnTarget; + x1_4 = BoxOnTarget & (x1_3 = Agent | x1_3 = AgentOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Right : AgentOnTarget; + x1_4 = BoxOnTarget & (x0_4 = Agent | x0_4 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Down : AgentOnTarget; + TRUE : x1_4; + esac; + next(x1_5) := case + x1_5 = Wall: Wall; + x1_5 = Free & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Left: Agent; + x1_5 = Free & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Up: Agent; + x1_5 = Free & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Right : Agent; + x1_5 = Free & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Down : Agent; + x1_5 = Free & (x1_6 = Box | x1_6 = BoxOnTarget) & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Left: Box; + x1_5 = Free & (x2_5 = Box | x2_5 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Up: Box; + x1_5 = Free & (x1_4 = Box | x1_4 = BoxOnTarget) & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Right : Box; + x1_5 = Agent & (x1_6 = Free | x1_6 = Target) & move = Right: Free; + x1_5 = Agent & (x2_5 = Free | x2_5 = Target) & move = Down: Free; + x1_5 = Agent & (x1_4 = Free | x1_4 = Target) & move = Left : Free; + x1_5 = Agent & (x0_5= Free | x0_5 = Target) & move = Up : Free; + x1_5 = Agent & (x1_6 = Box | x1_6 = BoxOnTarget) & (x1_7 = Free | x1_7 = Target) & move = Right: Free; + x1_5 = Agent & (x2_5 = Box | x2_5 = BoxOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Down: Free; + x1_5 = Agent & (x1_4 = Box | x1_4 = BoxOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Left: Free; + x1_5 = Box & (x1_6 = Agent | x1_6 = AgentOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Left: Agent; + x1_5 = Box & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x0_5 = Free | x0_5 = Target) & move = Up: Agent; + x1_5 = Box & (x1_4 = Agent | x1_4 = AgentOnTarget) & (x1_6 = Free | x1_6 = Target) & move = Right : Agent; + x1_5 = Box & (x0_5 = Agent | x0_5 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Down : Agent; + x1_5 = Target & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_5 = Target & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_5 = Target & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_5 = Target & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_5 = Target & (x1_6 = Box | x1_6 = BoxOnTarget) & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Left: BoxOnTarget; + x1_5 = Target & (x2_5 = Box | x2_5 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_5 = Target & (x1_4 = Box | x1_4 = BoxOnTarget) & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x1_5 = AgentOnTarget & (x1_6 = Free | x1_6 = Target) & move = Right: Target; + x1_5 = AgentOnTarget & (x2_5 = Free | x2_5 = Target) & move = Down: Target; + x1_5 = AgentOnTarget & (x1_4 = Free | x1_4 = Target) & move = Left : Target; + x1_5 = AgentOnTarget & (x0_5 = Free | x0_5 = Target) & move = Up : Target; + x1_5 = BoxOnTarget & (x1_6 = Agent | x1_6 = AgentOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Left: AgentOnTarget; + x1_5 = BoxOnTarget & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x0_5 = Free | x0_5 = Target) & move = Up: AgentOnTarget; + x1_5 = BoxOnTarget & (x1_4 = Agent | x1_4 = AgentOnTarget) & (x1_6 = Free | x1_6 = Target) & move = Right : AgentOnTarget; + x1_5 = BoxOnTarget & (x0_5 = Agent | x0_5 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Down : AgentOnTarget; + TRUE : x1_5; + esac; + next(x1_6) := case + x1_6 = Wall: Wall; + x1_6 = Free & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Left: Agent; + x1_6 = Free & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Up: Agent; + x1_6 = Free & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Right : Agent; + x1_6 = Free & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Down : Agent; + x1_6 = Free & (x2_6 = Box | x2_6 = BoxOnTarget) & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Up: Box; + x1_6 = Free & (x1_5 = Box | x1_5 = BoxOnTarget) & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Right : Box; + x1_6 = Agent & (x1_7 = Free | x1_7 = Target) & move = Right: Free; + x1_6 = Agent & (x2_6 = Free | x2_6 = Target) & move = Down: Free; + x1_6 = Agent & (x1_5 = Free | x1_5 = Target) & move = Left : Free; + x1_6 = Agent & (x0_6= Free | x0_6 = Target) & move = Up : Free; + x1_6 = Agent & (x2_6 = Box | x2_6 = BoxOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Down: Free; + x1_6 = Agent & (x1_5 = Box | x1_5 = BoxOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Left: Free; + x1_6 = Box & (x1_7 = Agent | x1_7 = AgentOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Left: Agent; + x1_6 = Box & (x2_6 = Agent | x2_6 = AgentOnTarget) & (x0_6 = Free | x0_6 = Target) & move = Up: Agent; + x1_6 = Box & (x1_5 = Agent | x1_5 = AgentOnTarget) & (x1_7 = Free | x1_7 = Target) & move = Right : Agent; + x1_6 = Box & (x0_6 = Agent | x0_6 = AgentOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Down : Agent; + x1_6 = Target & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Left: AgentOnTarget; + x1_6 = Target & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_6 = Target & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_6 = Target & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x1_6 = Target & (x2_6 = Box | x2_6 = BoxOnTarget) & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_6 = Target & (x1_5 = Box | x1_5 = BoxOnTarget) & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x1_6 = AgentOnTarget & (x1_7 = Free | x1_7 = Target) & move = Right: Target; + x1_6 = AgentOnTarget & (x2_6 = Free | x2_6 = Target) & move = Down: Target; + x1_6 = AgentOnTarget & (x1_5 = Free | x1_5 = Target) & move = Left : Target; + x1_6 = AgentOnTarget & (x0_6 = Free | x0_6 = Target) & move = Up : Target; + x1_6 = BoxOnTarget & (x1_7 = Agent | x1_7 = AgentOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Left: AgentOnTarget; + x1_6 = BoxOnTarget & (x2_6 = Agent | x2_6 = AgentOnTarget) & (x0_6 = Free | x0_6 = Target) & move = Up: AgentOnTarget; + x1_6 = BoxOnTarget & (x1_5 = Agent | x1_5 = AgentOnTarget) & (x1_7 = Free | x1_7 = Target) & move = Right : AgentOnTarget; + x1_6 = BoxOnTarget & (x0_6 = Agent | x0_6 = AgentOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Down : AgentOnTarget; + TRUE : x1_6; + esac; + next(x1_7) := case + x1_7 = Wall: Wall; + x1_7 = Free & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Up: Agent; + x1_7 = Free & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Right : Agent; + x1_7 = Free & (x2_7 = Box | x2_7 = BoxOnTarget) & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Up: Box; + x1_7 = Free & (x1_6 = Box | x1_6 = BoxOnTarget) & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Right : Box; + x1_7 = Agent & (x2_7 = Free | x2_7 = Target) & move = Down: Free; + x1_7 = Agent & (x1_6 = Free | x1_6 = Target) & move = Left : Free; + x1_7 = Agent & (x2_7 = Box | x2_7 = BoxOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Down: Free; + x1_7 = Agent & (x1_6 = Box | x1_6 = BoxOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Left: Free; + x1_7 = Target & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Up: AgentOnTarget; + x1_7 = Target & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Right : AgentOnTarget; + x1_7 = Target & (x2_7 = Box | x2_7 = BoxOnTarget) & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Up: BoxOnTarget; + x1_7 = Target & (x1_6 = Box | x1_6 = BoxOnTarget) & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Right : BoxOnTarget; + x1_7 = AgentOnTarget & (x2_7 = Free | x2_7 = Target) & move = Down: Target; + x1_7 = AgentOnTarget & (x1_6 = Free | x1_6 = Target) & move = Left : Target; + TRUE : x1_7; + esac; + next(x2_0) := case + x2_0 = Wall: Wall; + x2_0 = Free & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Left: Agent; + x2_0 = Free & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Up: Agent; + x2_0 = Free & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Down : Agent; + x2_0 = Free & (x2_1 = Box | x2_1 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Left: Box; + x2_0 = Free & (x3_0 = Box | x3_0 = BoxOnTarget) & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Up: Box; + x2_0 = Free & (x1_0 = Box | x1_0 = BoxOnTarget) & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Down : Box; + x2_0 = Agent & (x2_1 = Free | x2_1 = Target) & move = Right: Free; + x2_0 = Agent & (x3_0 = Free | x3_0 = Target) & move = Down: Free; + x2_0 = Agent & (x1_0= Free | x1_0 = Target) & move = Up : Free; + x2_0 = Agent & (x2_1 = Box | x2_1 = BoxOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Right: Free; + x2_0 = Agent & (x3_0 = Box | x3_0 = BoxOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Down: Free; + x2_0 = Agent & (x1_0 = Box | x1_0 = BoxOnTarget) & (x0_0 = Free | x0_0 = Target) & move = Up: Free; + x2_0 = Box & (x3_0 = Agent | x3_0 = AgentOnTarget) & (x1_0 = Free | x1_0 = Target) & move = Up: Agent; + x2_0 = Box & (x1_0 = Agent | x1_0 = AgentOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Down : Agent; + x2_0 = Target & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_0 = Target & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_0 = Target & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_0 = Target & (x2_1 = Box | x2_1 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x2_0 = Target & (x3_0 = Box | x3_0 = BoxOnTarget) & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_0 = Target & (x1_0 = Box | x1_0 = BoxOnTarget) & (x0_0 = Agent | x0_0 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_0 = AgentOnTarget & (x2_1 = Free | x2_1 = Target) & move = Right: Target; + x2_0 = AgentOnTarget & (x3_0 = Free | x3_0 = Target) & move = Down: Target; + x2_0 = AgentOnTarget & (x1_0 = Free | x1_0 = Target) & move = Up : Target; + x2_0 = BoxOnTarget & (x3_0 = Agent | x3_0 = AgentOnTarget) & (x1_0 = Free | x1_0 = Target) & move = Up: AgentOnTarget; + x2_0 = BoxOnTarget & (x1_0 = Agent | x1_0 = AgentOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Down : AgentOnTarget; + TRUE : x2_0; + esac; + next(x2_1) := case + x2_1 = Wall: Wall; + x2_1 = Free & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Left: Agent; + x2_1 = Free & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Up: Agent; + x2_1 = Free & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Right : Agent; + x2_1 = Free & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Down : Agent; + x2_1 = Free & (x2_2 = Box | x2_2 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Left: Box; + x2_1 = Free & (x3_1 = Box | x3_1 = BoxOnTarget) & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Up: Box; + x2_1 = Free & (x1_1 = Box | x1_1 = BoxOnTarget) & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Down : Box; + x2_1 = Agent & (x2_2 = Free | x2_2 = Target) & move = Right: Free; + x2_1 = Agent & (x3_1 = Free | x3_1 = Target) & move = Down: Free; + x2_1 = Agent & (x2_0 = Free | x2_0 = Target) & move = Left : Free; + x2_1 = Agent & (x1_1= Free | x1_1 = Target) & move = Up : Free; + x2_1 = Agent & (x2_2 = Box | x2_2 = BoxOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Right: Free; + x2_1 = Agent & (x3_1 = Box | x3_1 = BoxOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Down: Free; + x2_1 = Agent & (x1_1 = Box | x1_1 = BoxOnTarget) & (x0_1 = Free | x0_1 = Target) & move = Up: Free; + x2_1 = Box & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Left: Agent; + x2_1 = Box & (x3_1 = Agent | x3_1 = AgentOnTarget) & (x1_1 = Free | x1_1 = Target) & move = Up: Agent; + x2_1 = Box & (x2_0 = Agent | x2_0 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Right : Agent; + x2_1 = Box & (x1_1 = Agent | x1_1 = AgentOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Down : Agent; + x2_1 = Target & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_1 = Target & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_1 = Target & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_1 = Target & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_1 = Target & (x2_2 = Box | x2_2 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x2_1 = Target & (x3_1 = Box | x3_1 = BoxOnTarget) & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_1 = Target & (x1_1 = Box | x1_1 = BoxOnTarget) & (x0_1 = Agent | x0_1 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_1 = AgentOnTarget & (x2_2 = Free | x2_2 = Target) & move = Right: Target; + x2_1 = AgentOnTarget & (x3_1 = Free | x3_1 = Target) & move = Down: Target; + x2_1 = AgentOnTarget & (x2_0 = Free | x2_0 = Target) & move = Left : Target; + x2_1 = AgentOnTarget & (x1_1 = Free | x1_1 = Target) & move = Up : Target; + x2_1 = BoxOnTarget & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Left: AgentOnTarget; + x2_1 = BoxOnTarget & (x3_1 = Agent | x3_1 = AgentOnTarget) & (x1_1 = Free | x1_1 = Target) & move = Up: AgentOnTarget; + x2_1 = BoxOnTarget & (x2_0 = Agent | x2_0 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Right : AgentOnTarget; + x2_1 = BoxOnTarget & (x1_1 = Agent | x1_1 = AgentOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Down : AgentOnTarget; + TRUE : x2_1; + esac; + next(x2_2) := case + x2_2 = Wall: Wall; + x2_2 = Free & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Left: Agent; + x2_2 = Free & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Up: Agent; + x2_2 = Free & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Right : Agent; + x2_2 = Free & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Down : Agent; + x2_2 = Free & (x2_3 = Box | x2_3 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Left: Box; + x2_2 = Free & (x3_2 = Box | x3_2 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Up: Box; + x2_2 = Free & (x2_1 = Box | x2_1 = BoxOnTarget) & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Right : Box; + x2_2 = Free & (x1_2 = Box | x1_2 = BoxOnTarget) & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Down : Box; + x2_2 = Agent & (x2_3 = Free | x2_3 = Target) & move = Right: Free; + x2_2 = Agent & (x3_2 = Free | x3_2 = Target) & move = Down: Free; + x2_2 = Agent & (x2_1 = Free | x2_1 = Target) & move = Left : Free; + x2_2 = Agent & (x1_2= Free | x1_2 = Target) & move = Up : Free; + x2_2 = Agent & (x2_3 = Box | x2_3 = BoxOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Right: Free; + x2_2 = Agent & (x3_2 = Box | x3_2 = BoxOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Down: Free; + x2_2 = Agent & (x2_1 = Box | x2_1 = BoxOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Left: Free; + x2_2 = Agent & (x1_2 = Box | x1_2 = BoxOnTarget) & (x0_2 = Free | x0_2 = Target) & move = Up: Free; + x2_2 = Box & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Left: Agent; + x2_2 = Box & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Up: Agent; + x2_2 = Box & (x2_1 = Agent | x2_1 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Right : Agent; + x2_2 = Box & (x1_2 = Agent | x1_2 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Down : Agent; + x2_2 = Target & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_2 = Target & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_2 = Target & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_2 = Target & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_2 = Target & (x2_3 = Box | x2_3 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x2_2 = Target & (x3_2 = Box | x3_2 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_2 = Target & (x2_1 = Box | x2_1 = BoxOnTarget) & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x2_2 = Target & (x1_2 = Box | x1_2 = BoxOnTarget) & (x0_2 = Agent | x0_2 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_2 = AgentOnTarget & (x2_3 = Free | x2_3 = Target) & move = Right: Target; + x2_2 = AgentOnTarget & (x3_2 = Free | x3_2 = Target) & move = Down: Target; + x2_2 = AgentOnTarget & (x2_1 = Free | x2_1 = Target) & move = Left : Target; + x2_2 = AgentOnTarget & (x1_2 = Free | x1_2 = Target) & move = Up : Target; + x2_2 = BoxOnTarget & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Left: AgentOnTarget; + x2_2 = BoxOnTarget & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Up: AgentOnTarget; + x2_2 = BoxOnTarget & (x2_1 = Agent | x2_1 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Right : AgentOnTarget; + x2_2 = BoxOnTarget & (x1_2 = Agent | x1_2 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Down : AgentOnTarget; + TRUE : x2_2; + esac; + next(x2_3) := case + x2_3 = Wall: Wall; + x2_3 = Free & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Left: Agent; + x2_3 = Free & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Up: Agent; + x2_3 = Free & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Right : Agent; + x2_3 = Free & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Down : Agent; + x2_3 = Free & (x2_4 = Box | x2_4 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Left: Box; + x2_3 = Free & (x3_3 = Box | x3_3 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Up: Box; + x2_3 = Free & (x2_2 = Box | x2_2 = BoxOnTarget) & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Right : Box; + x2_3 = Free & (x1_3 = Box | x1_3 = BoxOnTarget) & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Down : Box; + x2_3 = Agent & (x2_4 = Free | x2_4 = Target) & move = Right: Free; + x2_3 = Agent & (x3_3 = Free | x3_3 = Target) & move = Down: Free; + x2_3 = Agent & (x2_2 = Free | x2_2 = Target) & move = Left : Free; + x2_3 = Agent & (x1_3= Free | x1_3 = Target) & move = Up : Free; + x2_3 = Agent & (x2_4 = Box | x2_4 = BoxOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Right: Free; + x2_3 = Agent & (x3_3 = Box | x3_3 = BoxOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Down: Free; + x2_3 = Agent & (x2_2 = Box | x2_2 = BoxOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Left: Free; + x2_3 = Agent & (x1_3 = Box | x1_3 = BoxOnTarget) & (x0_3 = Free | x0_3 = Target) & move = Up: Free; + x2_3 = Box & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Left: Agent; + x2_3 = Box & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Up: Agent; + x2_3 = Box & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Right : Agent; + x2_3 = Box & (x1_3 = Agent | x1_3 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Down : Agent; + x2_3 = Target & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_3 = Target & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_3 = Target & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_3 = Target & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_3 = Target & (x2_4 = Box | x2_4 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x2_3 = Target & (x3_3 = Box | x3_3 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_3 = Target & (x2_2 = Box | x2_2 = BoxOnTarget) & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x2_3 = Target & (x1_3 = Box | x1_3 = BoxOnTarget) & (x0_3 = Agent | x0_3 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_3 = AgentOnTarget & (x2_4 = Free | x2_4 = Target) & move = Right: Target; + x2_3 = AgentOnTarget & (x3_3 = Free | x3_3 = Target) & move = Down: Target; + x2_3 = AgentOnTarget & (x2_2 = Free | x2_2 = Target) & move = Left : Target; + x2_3 = AgentOnTarget & (x1_3 = Free | x1_3 = Target) & move = Up : Target; + x2_3 = BoxOnTarget & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Left: AgentOnTarget; + x2_3 = BoxOnTarget & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Up: AgentOnTarget; + x2_3 = BoxOnTarget & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Right : AgentOnTarget; + x2_3 = BoxOnTarget & (x1_3 = Agent | x1_3 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Down : AgentOnTarget; + TRUE : x2_3; + esac; + next(x2_4) := case + x2_4 = Wall: Wall; + x2_4 = Free & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Left: Agent; + x2_4 = Free & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Up: Agent; + x2_4 = Free & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Right : Agent; + x2_4 = Free & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Down : Agent; + x2_4 = Free & (x2_5 = Box | x2_5 = BoxOnTarget) & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Left: Box; + x2_4 = Free & (x3_4 = Box | x3_4 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Up: Box; + x2_4 = Free & (x2_3 = Box | x2_3 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Right : Box; + x2_4 = Free & (x1_4 = Box | x1_4 = BoxOnTarget) & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Down : Box; + x2_4 = Agent & (x2_5 = Free | x2_5 = Target) & move = Right: Free; + x2_4 = Agent & (x3_4 = Free | x3_4 = Target) & move = Down: Free; + x2_4 = Agent & (x2_3 = Free | x2_3 = Target) & move = Left : Free; + x2_4 = Agent & (x1_4= Free | x1_4 = Target) & move = Up : Free; + x2_4 = Agent & (x2_5 = Box | x2_5 = BoxOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Right: Free; + x2_4 = Agent & (x3_4 = Box | x3_4 = BoxOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Down: Free; + x2_4 = Agent & (x2_3 = Box | x2_3 = BoxOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Left: Free; + x2_4 = Agent & (x1_4 = Box | x1_4 = BoxOnTarget) & (x0_4 = Free | x0_4 = Target) & move = Up: Free; + x2_4 = Box & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Left: Agent; + x2_4 = Box & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Up: Agent; + x2_4 = Box & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Right : Agent; + x2_4 = Box & (x1_4 = Agent | x1_4 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Down : Agent; + x2_4 = Target & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_4 = Target & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_4 = Target & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_4 = Target & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_4 = Target & (x2_5 = Box | x2_5 = BoxOnTarget) & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x2_4 = Target & (x3_4 = Box | x3_4 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_4 = Target & (x2_3 = Box | x2_3 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x2_4 = Target & (x1_4 = Box | x1_4 = BoxOnTarget) & (x0_4 = Agent | x0_4 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_4 = AgentOnTarget & (x2_5 = Free | x2_5 = Target) & move = Right: Target; + x2_4 = AgentOnTarget & (x3_4 = Free | x3_4 = Target) & move = Down: Target; + x2_4 = AgentOnTarget & (x2_3 = Free | x2_3 = Target) & move = Left : Target; + x2_4 = AgentOnTarget & (x1_4 = Free | x1_4 = Target) & move = Up : Target; + x2_4 = BoxOnTarget & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Left: AgentOnTarget; + x2_4 = BoxOnTarget & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Up: AgentOnTarget; + x2_4 = BoxOnTarget & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Right : AgentOnTarget; + x2_4 = BoxOnTarget & (x1_4 = Agent | x1_4 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Down : AgentOnTarget; + TRUE : x2_4; + esac; + next(x2_5) := case + x2_5 = Wall: Wall; + x2_5 = Free & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Left: Agent; + x2_5 = Free & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Up: Agent; + x2_5 = Free & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Right : Agent; + x2_5 = Free & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Down : Agent; + x2_5 = Free & (x2_6 = Box | x2_6 = BoxOnTarget) & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Left: Box; + x2_5 = Free & (x3_5 = Box | x3_5 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Up: Box; + x2_5 = Free & (x2_4 = Box | x2_4 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Right : Box; + x2_5 = Free & (x1_5 = Box | x1_5 = BoxOnTarget) & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Down : Box; + x2_5 = Agent & (x2_6 = Free | x2_6 = Target) & move = Right: Free; + x2_5 = Agent & (x3_5 = Free | x3_5 = Target) & move = Down: Free; + x2_5 = Agent & (x2_4 = Free | x2_4 = Target) & move = Left : Free; + x2_5 = Agent & (x1_5= Free | x1_5 = Target) & move = Up : Free; + x2_5 = Agent & (x2_6 = Box | x2_6 = BoxOnTarget) & (x2_7 = Free | x2_7 = Target) & move = Right: Free; + x2_5 = Agent & (x3_5 = Box | x3_5 = BoxOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Down: Free; + x2_5 = Agent & (x2_4 = Box | x2_4 = BoxOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Left: Free; + x2_5 = Agent & (x1_5 = Box | x1_5 = BoxOnTarget) & (x0_5 = Free | x0_5 = Target) & move = Up: Free; + x2_5 = Box & (x2_6 = Agent | x2_6 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Left: Agent; + x2_5 = Box & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Up: Agent; + x2_5 = Box & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Right : Agent; + x2_5 = Box & (x1_5 = Agent | x1_5 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Down : Agent; + x2_5 = Target & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_5 = Target & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_5 = Target & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_5 = Target & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_5 = Target & (x2_6 = Box | x2_6 = BoxOnTarget) & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Left: BoxOnTarget; + x2_5 = Target & (x3_5 = Box | x3_5 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_5 = Target & (x2_4 = Box | x2_4 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x2_5 = Target & (x1_5 = Box | x1_5 = BoxOnTarget) & (x0_5 = Agent | x0_5 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_5 = AgentOnTarget & (x2_6 = Free | x2_6 = Target) & move = Right: Target; + x2_5 = AgentOnTarget & (x3_5 = Free | x3_5 = Target) & move = Down: Target; + x2_5 = AgentOnTarget & (x2_4 = Free | x2_4 = Target) & move = Left : Target; + x2_5 = AgentOnTarget & (x1_5 = Free | x1_5 = Target) & move = Up : Target; + x2_5 = BoxOnTarget & (x2_6 = Agent | x2_6 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Left: AgentOnTarget; + x2_5 = BoxOnTarget & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Up: AgentOnTarget; + x2_5 = BoxOnTarget & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Right : AgentOnTarget; + x2_5 = BoxOnTarget & (x1_5 = Agent | x1_5 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Down : AgentOnTarget; + TRUE : x2_5; + esac; + next(x2_6) := case + x2_6 = Wall: Wall; + x2_6 = Free & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Left: Agent; + x2_6 = Free & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Up: Agent; + x2_6 = Free & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Right : Agent; + x2_6 = Free & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Down : Agent; + x2_6 = Free & (x3_6 = Box | x3_6 = BoxOnTarget) & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Up: Box; + x2_6 = Free & (x2_5 = Box | x2_5 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Right : Box; + x2_6 = Free & (x1_6 = Box | x1_6 = BoxOnTarget) & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Down : Box; + x2_6 = Agent & (x2_7 = Free | x2_7 = Target) & move = Right: Free; + x2_6 = Agent & (x3_6 = Free | x3_6 = Target) & move = Down: Free; + x2_6 = Agent & (x2_5 = Free | x2_5 = Target) & move = Left : Free; + x2_6 = Agent & (x1_6= Free | x1_6 = Target) & move = Up : Free; + x2_6 = Agent & (x3_6 = Box | x3_6 = BoxOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Down: Free; + x2_6 = Agent & (x2_5 = Box | x2_5 = BoxOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Left: Free; + x2_6 = Agent & (x1_6 = Box | x1_6 = BoxOnTarget) & (x0_6 = Free | x0_6 = Target) & move = Up: Free; + x2_6 = Box & (x2_7 = Agent | x2_7 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Left: Agent; + x2_6 = Box & (x3_6 = Agent | x3_6 = AgentOnTarget) & (x1_6 = Free | x1_6 = Target) & move = Up: Agent; + x2_6 = Box & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x2_7 = Free | x2_7 = Target) & move = Right : Agent; + x2_6 = Box & (x1_6 = Agent | x1_6 = AgentOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Down : Agent; + x2_6 = Target & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Left: AgentOnTarget; + x2_6 = Target & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_6 = Target & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_6 = Target & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_6 = Target & (x3_6 = Box | x3_6 = BoxOnTarget) & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_6 = Target & (x2_5 = Box | x2_5 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x2_6 = Target & (x1_6 = Box | x1_6 = BoxOnTarget) & (x0_6 = Agent | x0_6 = AgentOnTarget) & move = Down : BoxOnTarget; + x2_6 = AgentOnTarget & (x2_7 = Free | x2_7 = Target) & move = Right: Target; + x2_6 = AgentOnTarget & (x3_6 = Free | x3_6 = Target) & move = Down: Target; + x2_6 = AgentOnTarget & (x2_5 = Free | x2_5 = Target) & move = Left : Target; + x2_6 = AgentOnTarget & (x1_6 = Free | x1_6 = Target) & move = Up : Target; + x2_6 = BoxOnTarget & (x2_7 = Agent | x2_7 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Left: AgentOnTarget; + x2_6 = BoxOnTarget & (x3_6 = Agent | x3_6 = AgentOnTarget) & (x1_6 = Free | x1_6 = Target) & move = Up: AgentOnTarget; + x2_6 = BoxOnTarget & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x2_7 = Free | x2_7 = Target) & move = Right : AgentOnTarget; + x2_6 = BoxOnTarget & (x1_6 = Agent | x1_6 = AgentOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Down : AgentOnTarget; + TRUE : x2_6; + esac; + next(x2_7) := case + x2_7 = Wall: Wall; + x2_7 = Free & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Up: Agent; + x2_7 = Free & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Right : Agent; + x2_7 = Free & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Down : Agent; + x2_7 = Free & (x3_7 = Box | x3_7 = BoxOnTarget) & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Up: Box; + x2_7 = Free & (x2_6 = Box | x2_6 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Right : Box; + x2_7 = Agent & (x3_7 = Free | x3_7 = Target) & move = Down: Free; + x2_7 = Agent & (x2_6 = Free | x2_6 = Target) & move = Left : Free; + x2_7 = Agent & (x1_7= Free | x1_7 = Target) & move = Up : Free; + x2_7 = Agent & (x3_7 = Box | x3_7 = BoxOnTarget) & (x4_7 = Free | x4_7 = Target) & move = Down: Free; + x2_7 = Agent & (x2_6 = Box | x2_6 = BoxOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Left: Free; + x2_7 = Box & (x3_7 = Agent | x3_7 = AgentOnTarget) & (x1_7 = Free | x1_7 = Target) & move = Up: Agent; + x2_7 = Box & (x1_7 = Agent | x1_7 = AgentOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Down : Agent; + x2_7 = Target & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Up: AgentOnTarget; + x2_7 = Target & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Right : AgentOnTarget; + x2_7 = Target & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Down : AgentOnTarget; + x2_7 = Target & (x3_7 = Box | x3_7 = BoxOnTarget) & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Up: BoxOnTarget; + x2_7 = Target & (x2_6 = Box | x2_6 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Right : BoxOnTarget; + x2_7 = AgentOnTarget & (x3_7 = Free | x3_7 = Target) & move = Down: Target; + x2_7 = AgentOnTarget & (x2_6 = Free | x2_6 = Target) & move = Left : Target; + x2_7 = AgentOnTarget & (x1_7 = Free | x1_7 = Target) & move = Up : Target; + x2_7 = BoxOnTarget & (x3_7 = Agent | x3_7 = AgentOnTarget) & (x1_7 = Free | x1_7 = Target) & move = Up: AgentOnTarget; + x2_7 = BoxOnTarget & (x1_7 = Agent | x1_7 = AgentOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Down : AgentOnTarget; + TRUE : x2_7; + esac; + next(x3_0) := case + x3_0 = Wall: Wall; + x3_0 = Free & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Left: Agent; + x3_0 = Free & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Up: Agent; + x3_0 = Free & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Down : Agent; + x3_0 = Free & (x3_1 = Box | x3_1 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Left: Box; + x3_0 = Free & (x4_0 = Box | x4_0 = BoxOnTarget) & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Up: Box; + x3_0 = Free & (x2_0 = Box | x2_0 = BoxOnTarget) & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Down : Box; + x3_0 = Agent & (x3_1 = Free | x3_1 = Target) & move = Right: Free; + x3_0 = Agent & (x4_0 = Free | x4_0 = Target) & move = Down: Free; + x3_0 = Agent & (x2_0= Free | x2_0 = Target) & move = Up : Free; + x3_0 = Agent & (x3_1 = Box | x3_1 = BoxOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Right: Free; + x3_0 = Agent & (x4_0 = Box | x4_0 = BoxOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Down: Free; + x3_0 = Agent & (x2_0 = Box | x2_0 = BoxOnTarget) & (x1_0 = Free | x1_0 = Target) & move = Up: Free; + x3_0 = Box & (x4_0 = Agent | x4_0 = AgentOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Up: Agent; + x3_0 = Box & (x2_0 = Agent | x2_0 = AgentOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Down : Agent; + x3_0 = Target & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_0 = Target & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_0 = Target & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_0 = Target & (x3_1 = Box | x3_1 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x3_0 = Target & (x4_0 = Box | x4_0 = BoxOnTarget) & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_0 = Target & (x2_0 = Box | x2_0 = BoxOnTarget) & (x1_0 = Agent | x1_0 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_0 = AgentOnTarget & (x3_1 = Free | x3_1 = Target) & move = Right: Target; + x3_0 = AgentOnTarget & (x4_0 = Free | x4_0 = Target) & move = Down: Target; + x3_0 = AgentOnTarget & (x2_0 = Free | x2_0 = Target) & move = Up : Target; + x3_0 = BoxOnTarget & (x4_0 = Agent | x4_0 = AgentOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Up: AgentOnTarget; + x3_0 = BoxOnTarget & (x2_0 = Agent | x2_0 = AgentOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Down : AgentOnTarget; + TRUE : x3_0; + esac; + next(x3_1) := case + x3_1 = Wall: Wall; + x3_1 = Free & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Left: Agent; + x3_1 = Free & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Up: Agent; + x3_1 = Free & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Right : Agent; + x3_1 = Free & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Down : Agent; + x3_1 = Free & (x3_2 = Box | x3_2 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Left: Box; + x3_1 = Free & (x4_1 = Box | x4_1 = BoxOnTarget) & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Up: Box; + x3_1 = Free & (x2_1 = Box | x2_1 = BoxOnTarget) & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Down : Box; + x3_1 = Agent & (x3_2 = Free | x3_2 = Target) & move = Right: Free; + x3_1 = Agent & (x4_1 = Free | x4_1 = Target) & move = Down: Free; + x3_1 = Agent & (x3_0 = Free | x3_0 = Target) & move = Left : Free; + x3_1 = Agent & (x2_1= Free | x2_1 = Target) & move = Up : Free; + x3_1 = Agent & (x3_2 = Box | x3_2 = BoxOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Right: Free; + x3_1 = Agent & (x4_1 = Box | x4_1 = BoxOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Down: Free; + x3_1 = Agent & (x2_1 = Box | x2_1 = BoxOnTarget) & (x1_1 = Free | x1_1 = Target) & move = Up: Free; + x3_1 = Box & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Left: Agent; + x3_1 = Box & (x4_1 = Agent | x4_1 = AgentOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Up: Agent; + x3_1 = Box & (x3_0 = Agent | x3_0 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Right : Agent; + x3_1 = Box & (x2_1 = Agent | x2_1 = AgentOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Down : Agent; + x3_1 = Target & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_1 = Target & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_1 = Target & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_1 = Target & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_1 = Target & (x3_2 = Box | x3_2 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x3_1 = Target & (x4_1 = Box | x4_1 = BoxOnTarget) & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_1 = Target & (x2_1 = Box | x2_1 = BoxOnTarget) & (x1_1 = Agent | x1_1 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_1 = AgentOnTarget & (x3_2 = Free | x3_2 = Target) & move = Right: Target; + x3_1 = AgentOnTarget & (x4_1 = Free | x4_1 = Target) & move = Down: Target; + x3_1 = AgentOnTarget & (x3_0 = Free | x3_0 = Target) & move = Left : Target; + x3_1 = AgentOnTarget & (x2_1 = Free | x2_1 = Target) & move = Up : Target; + x3_1 = BoxOnTarget & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Left: AgentOnTarget; + x3_1 = BoxOnTarget & (x4_1 = Agent | x4_1 = AgentOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Up: AgentOnTarget; + x3_1 = BoxOnTarget & (x3_0 = Agent | x3_0 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Right : AgentOnTarget; + x3_1 = BoxOnTarget & (x2_1 = Agent | x2_1 = AgentOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Down : AgentOnTarget; + TRUE : x3_1; + esac; + next(x3_2) := case + x3_2 = Wall: Wall; + x3_2 = Free & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Left: Agent; + x3_2 = Free & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Up: Agent; + x3_2 = Free & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Right : Agent; + x3_2 = Free & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Down : Agent; + x3_2 = Free & (x3_3 = Box | x3_3 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Left: Box; + x3_2 = Free & (x4_2 = Box | x4_2 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Up: Box; + x3_2 = Free & (x3_1 = Box | x3_1 = BoxOnTarget) & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Right : Box; + x3_2 = Free & (x2_2 = Box | x2_2 = BoxOnTarget) & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Down : Box; + x3_2 = Agent & (x3_3 = Free | x3_3 = Target) & move = Right: Free; + x3_2 = Agent & (x4_2 = Free | x4_2 = Target) & move = Down: Free; + x3_2 = Agent & (x3_1 = Free | x3_1 = Target) & move = Left : Free; + x3_2 = Agent & (x2_2= Free | x2_2 = Target) & move = Up : Free; + x3_2 = Agent & (x3_3 = Box | x3_3 = BoxOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Right: Free; + x3_2 = Agent & (x4_2 = Box | x4_2 = BoxOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Down: Free; + x3_2 = Agent & (x3_1 = Box | x3_1 = BoxOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Left: Free; + x3_2 = Agent & (x2_2 = Box | x2_2 = BoxOnTarget) & (x1_2 = Free | x1_2 = Target) & move = Up: Free; + x3_2 = Box & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Left: Agent; + x3_2 = Box & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Up: Agent; + x3_2 = Box & (x3_1 = Agent | x3_1 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Right : Agent; + x3_2 = Box & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Down : Agent; + x3_2 = Target & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_2 = Target & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_2 = Target & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_2 = Target & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_2 = Target & (x3_3 = Box | x3_3 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x3_2 = Target & (x4_2 = Box | x4_2 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_2 = Target & (x3_1 = Box | x3_1 = BoxOnTarget) & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x3_2 = Target & (x2_2 = Box | x2_2 = BoxOnTarget) & (x1_2 = Agent | x1_2 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_2 = AgentOnTarget & (x3_3 = Free | x3_3 = Target) & move = Right: Target; + x3_2 = AgentOnTarget & (x4_2 = Free | x4_2 = Target) & move = Down: Target; + x3_2 = AgentOnTarget & (x3_1 = Free | x3_1 = Target) & move = Left : Target; + x3_2 = AgentOnTarget & (x2_2 = Free | x2_2 = Target) & move = Up : Target; + x3_2 = BoxOnTarget & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Left: AgentOnTarget; + x3_2 = BoxOnTarget & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Up: AgentOnTarget; + x3_2 = BoxOnTarget & (x3_1 = Agent | x3_1 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Right : AgentOnTarget; + x3_2 = BoxOnTarget & (x2_2 = Agent | x2_2 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Down : AgentOnTarget; + TRUE : x3_2; + esac; + next(x3_3) := case + x3_3 = Wall: Wall; + x3_3 = Free & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Left: Agent; + x3_3 = Free & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Up: Agent; + x3_3 = Free & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Right : Agent; + x3_3 = Free & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Down : Agent; + x3_3 = Free & (x3_4 = Box | x3_4 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Left: Box; + x3_3 = Free & (x4_3 = Box | x4_3 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Up: Box; + x3_3 = Free & (x3_2 = Box | x3_2 = BoxOnTarget) & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Right : Box; + x3_3 = Free & (x2_3 = Box | x2_3 = BoxOnTarget) & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Down : Box; + x3_3 = Agent & (x3_4 = Free | x3_4 = Target) & move = Right: Free; + x3_3 = Agent & (x4_3 = Free | x4_3 = Target) & move = Down: Free; + x3_3 = Agent & (x3_2 = Free | x3_2 = Target) & move = Left : Free; + x3_3 = Agent & (x2_3= Free | x2_3 = Target) & move = Up : Free; + x3_3 = Agent & (x3_4 = Box | x3_4 = BoxOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Right: Free; + x3_3 = Agent & (x4_3 = Box | x4_3 = BoxOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Down: Free; + x3_3 = Agent & (x3_2 = Box | x3_2 = BoxOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Left: Free; + x3_3 = Agent & (x2_3 = Box | x2_3 = BoxOnTarget) & (x1_3 = Free | x1_3 = Target) & move = Up: Free; + x3_3 = Box & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Left: Agent; + x3_3 = Box & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Up: Agent; + x3_3 = Box & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Right : Agent; + x3_3 = Box & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Down : Agent; + x3_3 = Target & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_3 = Target & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_3 = Target & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_3 = Target & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_3 = Target & (x3_4 = Box | x3_4 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x3_3 = Target & (x4_3 = Box | x4_3 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_3 = Target & (x3_2 = Box | x3_2 = BoxOnTarget) & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x3_3 = Target & (x2_3 = Box | x2_3 = BoxOnTarget) & (x1_3 = Agent | x1_3 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_3 = AgentOnTarget & (x3_4 = Free | x3_4 = Target) & move = Right: Target; + x3_3 = AgentOnTarget & (x4_3 = Free | x4_3 = Target) & move = Down: Target; + x3_3 = AgentOnTarget & (x3_2 = Free | x3_2 = Target) & move = Left : Target; + x3_3 = AgentOnTarget & (x2_3 = Free | x2_3 = Target) & move = Up : Target; + x3_3 = BoxOnTarget & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Left: AgentOnTarget; + x3_3 = BoxOnTarget & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Up: AgentOnTarget; + x3_3 = BoxOnTarget & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Right : AgentOnTarget; + x3_3 = BoxOnTarget & (x2_3 = Agent | x2_3 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Down : AgentOnTarget; + TRUE : x3_3; + esac; + next(x3_4) := case + x3_4 = Wall: Wall; + x3_4 = Free & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Left: Agent; + x3_4 = Free & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Up: Agent; + x3_4 = Free & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Right : Agent; + x3_4 = Free & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Down : Agent; + x3_4 = Free & (x3_5 = Box | x3_5 = BoxOnTarget) & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Left: Box; + x3_4 = Free & (x4_4 = Box | x4_4 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Up: Box; + x3_4 = Free & (x3_3 = Box | x3_3 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Right : Box; + x3_4 = Free & (x2_4 = Box | x2_4 = BoxOnTarget) & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Down : Box; + x3_4 = Agent & (x3_5 = Free | x3_5 = Target) & move = Right: Free; + x3_4 = Agent & (x4_4 = Free | x4_4 = Target) & move = Down: Free; + x3_4 = Agent & (x3_3 = Free | x3_3 = Target) & move = Left : Free; + x3_4 = Agent & (x2_4= Free | x2_4 = Target) & move = Up : Free; + x3_4 = Agent & (x3_5 = Box | x3_5 = BoxOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Right: Free; + x3_4 = Agent & (x4_4 = Box | x4_4 = BoxOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Down: Free; + x3_4 = Agent & (x3_3 = Box | x3_3 = BoxOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Left: Free; + x3_4 = Agent & (x2_4 = Box | x2_4 = BoxOnTarget) & (x1_4 = Free | x1_4 = Target) & move = Up: Free; + x3_4 = Box & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Left: Agent; + x3_4 = Box & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Up: Agent; + x3_4 = Box & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Right : Agent; + x3_4 = Box & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Down : Agent; + x3_4 = Target & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_4 = Target & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_4 = Target & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_4 = Target & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_4 = Target & (x3_5 = Box | x3_5 = BoxOnTarget) & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x3_4 = Target & (x4_4 = Box | x4_4 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_4 = Target & (x3_3 = Box | x3_3 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x3_4 = Target & (x2_4 = Box | x2_4 = BoxOnTarget) & (x1_4 = Agent | x1_4 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_4 = AgentOnTarget & (x3_5 = Free | x3_5 = Target) & move = Right: Target; + x3_4 = AgentOnTarget & (x4_4 = Free | x4_4 = Target) & move = Down: Target; + x3_4 = AgentOnTarget & (x3_3 = Free | x3_3 = Target) & move = Left : Target; + x3_4 = AgentOnTarget & (x2_4 = Free | x2_4 = Target) & move = Up : Target; + x3_4 = BoxOnTarget & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Left: AgentOnTarget; + x3_4 = BoxOnTarget & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Up: AgentOnTarget; + x3_4 = BoxOnTarget & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Right : AgentOnTarget; + x3_4 = BoxOnTarget & (x2_4 = Agent | x2_4 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Down : AgentOnTarget; + TRUE : x3_4; + esac; + next(x3_5) := case + x3_5 = Wall: Wall; + x3_5 = Free & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Left: Agent; + x3_5 = Free & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Up: Agent; + x3_5 = Free & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Right : Agent; + x3_5 = Free & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Down : Agent; + x3_5 = Free & (x3_6 = Box | x3_6 = BoxOnTarget) & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Left: Box; + x3_5 = Free & (x4_5 = Box | x4_5 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Up: Box; + x3_5 = Free & (x3_4 = Box | x3_4 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Right : Box; + x3_5 = Free & (x2_5 = Box | x2_5 = BoxOnTarget) & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Down : Box; + x3_5 = Agent & (x3_6 = Free | x3_6 = Target) & move = Right: Free; + x3_5 = Agent & (x4_5 = Free | x4_5 = Target) & move = Down: Free; + x3_5 = Agent & (x3_4 = Free | x3_4 = Target) & move = Left : Free; + x3_5 = Agent & (x2_5= Free | x2_5 = Target) & move = Up : Free; + x3_5 = Agent & (x3_6 = Box | x3_6 = BoxOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Right: Free; + x3_5 = Agent & (x4_5 = Box | x4_5 = BoxOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Down: Free; + x3_5 = Agent & (x3_4 = Box | x3_4 = BoxOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Left: Free; + x3_5 = Agent & (x2_5 = Box | x2_5 = BoxOnTarget) & (x1_5 = Free | x1_5 = Target) & move = Up: Free; + x3_5 = Box & (x3_6 = Agent | x3_6 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Left: Agent; + x3_5 = Box & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Up: Agent; + x3_5 = Box & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Right : Agent; + x3_5 = Box & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Down : Agent; + x3_5 = Target & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_5 = Target & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_5 = Target & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_5 = Target & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_5 = Target & (x3_6 = Box | x3_6 = BoxOnTarget) & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Left: BoxOnTarget; + x3_5 = Target & (x4_5 = Box | x4_5 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_5 = Target & (x3_4 = Box | x3_4 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x3_5 = Target & (x2_5 = Box | x2_5 = BoxOnTarget) & (x1_5 = Agent | x1_5 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_5 = AgentOnTarget & (x3_6 = Free | x3_6 = Target) & move = Right: Target; + x3_5 = AgentOnTarget & (x4_5 = Free | x4_5 = Target) & move = Down: Target; + x3_5 = AgentOnTarget & (x3_4 = Free | x3_4 = Target) & move = Left : Target; + x3_5 = AgentOnTarget & (x2_5 = Free | x2_5 = Target) & move = Up : Target; + x3_5 = BoxOnTarget & (x3_6 = Agent | x3_6 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Left: AgentOnTarget; + x3_5 = BoxOnTarget & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Up: AgentOnTarget; + x3_5 = BoxOnTarget & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Right : AgentOnTarget; + x3_5 = BoxOnTarget & (x2_5 = Agent | x2_5 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Down : AgentOnTarget; + TRUE : x3_5; + esac; + next(x3_6) := case + x3_6 = Wall: Wall; + x3_6 = Free & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Left: Agent; + x3_6 = Free & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Up: Agent; + x3_6 = Free & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Right : Agent; + x3_6 = Free & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Down : Agent; + x3_6 = Free & (x4_6 = Box | x4_6 = BoxOnTarget) & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Up: Box; + x3_6 = Free & (x3_5 = Box | x3_5 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Right : Box; + x3_6 = Free & (x2_6 = Box | x2_6 = BoxOnTarget) & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Down : Box; + x3_6 = Agent & (x3_7 = Free | x3_7 = Target) & move = Right: Free; + x3_6 = Agent & (x4_6 = Free | x4_6 = Target) & move = Down: Free; + x3_6 = Agent & (x3_5 = Free | x3_5 = Target) & move = Left : Free; + x3_6 = Agent & (x2_6= Free | x2_6 = Target) & move = Up : Free; + x3_6 = Agent & (x4_6 = Box | x4_6 = BoxOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Down: Free; + x3_6 = Agent & (x3_5 = Box | x3_5 = BoxOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Left: Free; + x3_6 = Agent & (x2_6 = Box | x2_6 = BoxOnTarget) & (x1_6 = Free | x1_6 = Target) & move = Up: Free; + x3_6 = Box & (x3_7 = Agent | x3_7 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Left: Agent; + x3_6 = Box & (x4_6 = Agent | x4_6 = AgentOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Up: Agent; + x3_6 = Box & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Right : Agent; + x3_6 = Box & (x2_6 = Agent | x2_6 = AgentOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Down : Agent; + x3_6 = Target & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Left: AgentOnTarget; + x3_6 = Target & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_6 = Target & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_6 = Target & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_6 = Target & (x4_6 = Box | x4_6 = BoxOnTarget) & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_6 = Target & (x3_5 = Box | x3_5 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x3_6 = Target & (x2_6 = Box | x2_6 = BoxOnTarget) & (x1_6 = Agent | x1_6 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_6 = AgentOnTarget & (x3_7 = Free | x3_7 = Target) & move = Right: Target; + x3_6 = AgentOnTarget & (x4_6 = Free | x4_6 = Target) & move = Down: Target; + x3_6 = AgentOnTarget & (x3_5 = Free | x3_5 = Target) & move = Left : Target; + x3_6 = AgentOnTarget & (x2_6 = Free | x2_6 = Target) & move = Up : Target; + x3_6 = BoxOnTarget & (x3_7 = Agent | x3_7 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Left: AgentOnTarget; + x3_6 = BoxOnTarget & (x4_6 = Agent | x4_6 = AgentOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Up: AgentOnTarget; + x3_6 = BoxOnTarget & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Right : AgentOnTarget; + x3_6 = BoxOnTarget & (x2_6 = Agent | x2_6 = AgentOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Down : AgentOnTarget; + TRUE : x3_6; + esac; + next(x3_7) := case + x3_7 = Wall: Wall; + x3_7 = Free & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Up: Agent; + x3_7 = Free & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Right : Agent; + x3_7 = Free & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Down : Agent; + x3_7 = Free & (x4_7 = Box | x4_7 = BoxOnTarget) & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Up: Box; + x3_7 = Free & (x3_6 = Box | x3_6 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Right : Box; + x3_7 = Free & (x2_7 = Box | x2_7 = BoxOnTarget) & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Down : Box; + x3_7 = Agent & (x4_7 = Free | x4_7 = Target) & move = Down: Free; + x3_7 = Agent & (x3_6 = Free | x3_6 = Target) & move = Left : Free; + x3_7 = Agent & (x2_7= Free | x2_7 = Target) & move = Up : Free; + x3_7 = Agent & (x4_7 = Box | x4_7 = BoxOnTarget) & (x5_7 = Free | x5_7 = Target) & move = Down: Free; + x3_7 = Agent & (x3_6 = Box | x3_6 = BoxOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Left: Free; + x3_7 = Agent & (x2_7 = Box | x2_7 = BoxOnTarget) & (x1_7 = Free | x1_7 = Target) & move = Up: Free; + x3_7 = Box & (x4_7 = Agent | x4_7 = AgentOnTarget) & (x2_7 = Free | x2_7 = Target) & move = Up: Agent; + x3_7 = Box & (x2_7 = Agent | x2_7 = AgentOnTarget) & (x4_7 = Free | x4_7 = Target) & move = Down : Agent; + x3_7 = Target & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Up: AgentOnTarget; + x3_7 = Target & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Right : AgentOnTarget; + x3_7 = Target & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Down : AgentOnTarget; + x3_7 = Target & (x4_7 = Box | x4_7 = BoxOnTarget) & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Up: BoxOnTarget; + x3_7 = Target & (x3_6 = Box | x3_6 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Right : BoxOnTarget; + x3_7 = Target & (x2_7 = Box | x2_7 = BoxOnTarget) & (x1_7 = Agent | x1_7 = AgentOnTarget) & move = Down : BoxOnTarget; + x3_7 = AgentOnTarget & (x4_7 = Free | x4_7 = Target) & move = Down: Target; + x3_7 = AgentOnTarget & (x3_6 = Free | x3_6 = Target) & move = Left : Target; + x3_7 = AgentOnTarget & (x2_7 = Free | x2_7 = Target) & move = Up : Target; + x3_7 = BoxOnTarget & (x4_7 = Agent | x4_7 = AgentOnTarget) & (x2_7 = Free | x2_7 = Target) & move = Up: AgentOnTarget; + x3_7 = BoxOnTarget & (x2_7 = Agent | x2_7 = AgentOnTarget) & (x4_7 = Free | x4_7 = Target) & move = Down : AgentOnTarget; + TRUE : x3_7; + esac; + next(x4_0) := case + x4_0 = Wall: Wall; + x4_0 = Free & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Left: Agent; + x4_0 = Free & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Up: Agent; + x4_0 = Free & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Down : Agent; + x4_0 = Free & (x4_1 = Box | x4_1 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Left: Box; + x4_0 = Free & (x5_0 = Box | x5_0 = BoxOnTarget) & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Up: Box; + x4_0 = Free & (x3_0 = Box | x3_0 = BoxOnTarget) & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Down : Box; + x4_0 = Agent & (x4_1 = Free | x4_1 = Target) & move = Right: Free; + x4_0 = Agent & (x5_0 = Free | x5_0 = Target) & move = Down: Free; + x4_0 = Agent & (x3_0= Free | x3_0 = Target) & move = Up : Free; + x4_0 = Agent & (x4_1 = Box | x4_1 = BoxOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Right: Free; + x4_0 = Agent & (x5_0 = Box | x5_0 = BoxOnTarget) & (x6_0 = Free | x6_0 = Target) & move = Down: Free; + x4_0 = Agent & (x3_0 = Box | x3_0 = BoxOnTarget) & (x2_0 = Free | x2_0 = Target) & move = Up: Free; + x4_0 = Box & (x5_0 = Agent | x5_0 = AgentOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Up: Agent; + x4_0 = Box & (x3_0 = Agent | x3_0 = AgentOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Down : Agent; + x4_0 = Target & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_0 = Target & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_0 = Target & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_0 = Target & (x4_1 = Box | x4_1 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x4_0 = Target & (x5_0 = Box | x5_0 = BoxOnTarget) & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_0 = Target & (x3_0 = Box | x3_0 = BoxOnTarget) & (x2_0 = Agent | x2_0 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_0 = AgentOnTarget & (x4_1 = Free | x4_1 = Target) & move = Right: Target; + x4_0 = AgentOnTarget & (x5_0 = Free | x5_0 = Target) & move = Down: Target; + x4_0 = AgentOnTarget & (x3_0 = Free | x3_0 = Target) & move = Up : Target; + x4_0 = BoxOnTarget & (x5_0 = Agent | x5_0 = AgentOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Up: AgentOnTarget; + x4_0 = BoxOnTarget & (x3_0 = Agent | x3_0 = AgentOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Down : AgentOnTarget; + TRUE : x4_0; + esac; + next(x4_1) := case + x4_1 = Wall: Wall; + x4_1 = Free & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Left: Agent; + x4_1 = Free & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Up: Agent; + x4_1 = Free & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Right : Agent; + x4_1 = Free & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Down : Agent; + x4_1 = Free & (x4_2 = Box | x4_2 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Left: Box; + x4_1 = Free & (x5_1 = Box | x5_1 = BoxOnTarget) & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Up: Box; + x4_1 = Free & (x3_1 = Box | x3_1 = BoxOnTarget) & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Down : Box; + x4_1 = Agent & (x4_2 = Free | x4_2 = Target) & move = Right: Free; + x4_1 = Agent & (x5_1 = Free | x5_1 = Target) & move = Down: Free; + x4_1 = Agent & (x4_0 = Free | x4_0 = Target) & move = Left : Free; + x4_1 = Agent & (x3_1= Free | x3_1 = Target) & move = Up : Free; + x4_1 = Agent & (x4_2 = Box | x4_2 = BoxOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Right: Free; + x4_1 = Agent & (x5_1 = Box | x5_1 = BoxOnTarget) & (x6_1 = Free | x6_1 = Target) & move = Down: Free; + x4_1 = Agent & (x3_1 = Box | x3_1 = BoxOnTarget) & (x2_1 = Free | x2_1 = Target) & move = Up: Free; + x4_1 = Box & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Left: Agent; + x4_1 = Box & (x5_1 = Agent | x5_1 = AgentOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Up: Agent; + x4_1 = Box & (x4_0 = Agent | x4_0 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Right : Agent; + x4_1 = Box & (x3_1 = Agent | x3_1 = AgentOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Down : Agent; + x4_1 = Target & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_1 = Target & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_1 = Target & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_1 = Target & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_1 = Target & (x4_2 = Box | x4_2 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x4_1 = Target & (x5_1 = Box | x5_1 = BoxOnTarget) & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_1 = Target & (x3_1 = Box | x3_1 = BoxOnTarget) & (x2_1 = Agent | x2_1 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_1 = AgentOnTarget & (x4_2 = Free | x4_2 = Target) & move = Right: Target; + x4_1 = AgentOnTarget & (x5_1 = Free | x5_1 = Target) & move = Down: Target; + x4_1 = AgentOnTarget & (x4_0 = Free | x4_0 = Target) & move = Left : Target; + x4_1 = AgentOnTarget & (x3_1 = Free | x3_1 = Target) & move = Up : Target; + x4_1 = BoxOnTarget & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Left: AgentOnTarget; + x4_1 = BoxOnTarget & (x5_1 = Agent | x5_1 = AgentOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Up: AgentOnTarget; + x4_1 = BoxOnTarget & (x4_0 = Agent | x4_0 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Right : AgentOnTarget; + x4_1 = BoxOnTarget & (x3_1 = Agent | x3_1 = AgentOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Down : AgentOnTarget; + TRUE : x4_1; + esac; + next(x4_2) := case + x4_2 = Wall: Wall; + x4_2 = Free & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Left: Agent; + x4_2 = Free & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Up: Agent; + x4_2 = Free & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Right : Agent; + x4_2 = Free & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Down : Agent; + x4_2 = Free & (x4_3 = Box | x4_3 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Left: Box; + x4_2 = Free & (x5_2 = Box | x5_2 = BoxOnTarget) & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Up: Box; + x4_2 = Free & (x4_1 = Box | x4_1 = BoxOnTarget) & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Right : Box; + x4_2 = Free & (x3_2 = Box | x3_2 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Down : Box; + x4_2 = Agent & (x4_3 = Free | x4_3 = Target) & move = Right: Free; + x4_2 = Agent & (x5_2 = Free | x5_2 = Target) & move = Down: Free; + x4_2 = Agent & (x4_1 = Free | x4_1 = Target) & move = Left : Free; + x4_2 = Agent & (x3_2= Free | x3_2 = Target) & move = Up : Free; + x4_2 = Agent & (x4_3 = Box | x4_3 = BoxOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Right: Free; + x4_2 = Agent & (x5_2 = Box | x5_2 = BoxOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Down: Free; + x4_2 = Agent & (x4_1 = Box | x4_1 = BoxOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Left: Free; + x4_2 = Agent & (x3_2 = Box | x3_2 = BoxOnTarget) & (x2_2 = Free | x2_2 = Target) & move = Up: Free; + x4_2 = Box & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Left: Agent; + x4_2 = Box & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Up: Agent; + x4_2 = Box & (x4_1 = Agent | x4_1 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Right : Agent; + x4_2 = Box & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Down : Agent; + x4_2 = Target & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_2 = Target & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_2 = Target & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_2 = Target & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_2 = Target & (x4_3 = Box | x4_3 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x4_2 = Target & (x5_2 = Box | x5_2 = BoxOnTarget) & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_2 = Target & (x4_1 = Box | x4_1 = BoxOnTarget) & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x4_2 = Target & (x3_2 = Box | x3_2 = BoxOnTarget) & (x2_2 = Agent | x2_2 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_2 = AgentOnTarget & (x4_3 = Free | x4_3 = Target) & move = Right: Target; + x4_2 = AgentOnTarget & (x5_2 = Free | x5_2 = Target) & move = Down: Target; + x4_2 = AgentOnTarget & (x4_1 = Free | x4_1 = Target) & move = Left : Target; + x4_2 = AgentOnTarget & (x3_2 = Free | x3_2 = Target) & move = Up : Target; + x4_2 = BoxOnTarget & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Left: AgentOnTarget; + x4_2 = BoxOnTarget & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Up: AgentOnTarget; + x4_2 = BoxOnTarget & (x4_1 = Agent | x4_1 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Right : AgentOnTarget; + x4_2 = BoxOnTarget & (x3_2 = Agent | x3_2 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Down : AgentOnTarget; + TRUE : x4_2; + esac; + next(x4_3) := case + x4_3 = Wall: Wall; + x4_3 = Free & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Left: Agent; + x4_3 = Free & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Up: Agent; + x4_3 = Free & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Right : Agent; + x4_3 = Free & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Down : Agent; + x4_3 = Free & (x4_4 = Box | x4_4 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Left: Box; + x4_3 = Free & (x5_3 = Box | x5_3 = BoxOnTarget) & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Up: Box; + x4_3 = Free & (x4_2 = Box | x4_2 = BoxOnTarget) & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Right : Box; + x4_3 = Free & (x3_3 = Box | x3_3 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Down : Box; + x4_3 = Agent & (x4_4 = Free | x4_4 = Target) & move = Right: Free; + x4_3 = Agent & (x5_3 = Free | x5_3 = Target) & move = Down: Free; + x4_3 = Agent & (x4_2 = Free | x4_2 = Target) & move = Left : Free; + x4_3 = Agent & (x3_3= Free | x3_3 = Target) & move = Up : Free; + x4_3 = Agent & (x4_4 = Box | x4_4 = BoxOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Right: Free; + x4_3 = Agent & (x5_3 = Box | x5_3 = BoxOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Down: Free; + x4_3 = Agent & (x4_2 = Box | x4_2 = BoxOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Left: Free; + x4_3 = Agent & (x3_3 = Box | x3_3 = BoxOnTarget) & (x2_3 = Free | x2_3 = Target) & move = Up: Free; + x4_3 = Box & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Left: Agent; + x4_3 = Box & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Up: Agent; + x4_3 = Box & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Right : Agent; + x4_3 = Box & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Down : Agent; + x4_3 = Target & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_3 = Target & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_3 = Target & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_3 = Target & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_3 = Target & (x4_4 = Box | x4_4 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x4_3 = Target & (x5_3 = Box | x5_3 = BoxOnTarget) & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_3 = Target & (x4_2 = Box | x4_2 = BoxOnTarget) & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x4_3 = Target & (x3_3 = Box | x3_3 = BoxOnTarget) & (x2_3 = Agent | x2_3 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_3 = AgentOnTarget & (x4_4 = Free | x4_4 = Target) & move = Right: Target; + x4_3 = AgentOnTarget & (x5_3 = Free | x5_3 = Target) & move = Down: Target; + x4_3 = AgentOnTarget & (x4_2 = Free | x4_2 = Target) & move = Left : Target; + x4_3 = AgentOnTarget & (x3_3 = Free | x3_3 = Target) & move = Up : Target; + x4_3 = BoxOnTarget & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Left: AgentOnTarget; + x4_3 = BoxOnTarget & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Up: AgentOnTarget; + x4_3 = BoxOnTarget & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Right : AgentOnTarget; + x4_3 = BoxOnTarget & (x3_3 = Agent | x3_3 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Down : AgentOnTarget; + TRUE : x4_3; + esac; + next(x4_4) := case + x4_4 = Wall: Wall; + x4_4 = Free & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Left: Agent; + x4_4 = Free & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Up: Agent; + x4_4 = Free & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Right : Agent; + x4_4 = Free & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Down : Agent; + x4_4 = Free & (x4_5 = Box | x4_5 = BoxOnTarget) & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Left: Box; + x4_4 = Free & (x5_4 = Box | x5_4 = BoxOnTarget) & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Up: Box; + x4_4 = Free & (x4_3 = Box | x4_3 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Right : Box; + x4_4 = Free & (x3_4 = Box | x3_4 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Down : Box; + x4_4 = Agent & (x4_5 = Free | x4_5 = Target) & move = Right: Free; + x4_4 = Agent & (x5_4 = Free | x5_4 = Target) & move = Down: Free; + x4_4 = Agent & (x4_3 = Free | x4_3 = Target) & move = Left : Free; + x4_4 = Agent & (x3_4= Free | x3_4 = Target) & move = Up : Free; + x4_4 = Agent & (x4_5 = Box | x4_5 = BoxOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Right: Free; + x4_4 = Agent & (x5_4 = Box | x5_4 = BoxOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Down: Free; + x4_4 = Agent & (x4_3 = Box | x4_3 = BoxOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Left: Free; + x4_4 = Agent & (x3_4 = Box | x3_4 = BoxOnTarget) & (x2_4 = Free | x2_4 = Target) & move = Up: Free; + x4_4 = Box & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Left: Agent; + x4_4 = Box & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Up: Agent; + x4_4 = Box & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Right : Agent; + x4_4 = Box & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Down : Agent; + x4_4 = Target & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_4 = Target & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_4 = Target & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_4 = Target & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_4 = Target & (x4_5 = Box | x4_5 = BoxOnTarget) & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x4_4 = Target & (x5_4 = Box | x5_4 = BoxOnTarget) & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_4 = Target & (x4_3 = Box | x4_3 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x4_4 = Target & (x3_4 = Box | x3_4 = BoxOnTarget) & (x2_4 = Agent | x2_4 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_4 = AgentOnTarget & (x4_5 = Free | x4_5 = Target) & move = Right: Target; + x4_4 = AgentOnTarget & (x5_4 = Free | x5_4 = Target) & move = Down: Target; + x4_4 = AgentOnTarget & (x4_3 = Free | x4_3 = Target) & move = Left : Target; + x4_4 = AgentOnTarget & (x3_4 = Free | x3_4 = Target) & move = Up : Target; + x4_4 = BoxOnTarget & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Left: AgentOnTarget; + x4_4 = BoxOnTarget & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Up: AgentOnTarget; + x4_4 = BoxOnTarget & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Right : AgentOnTarget; + x4_4 = BoxOnTarget & (x3_4 = Agent | x3_4 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Down : AgentOnTarget; + TRUE : x4_4; + esac; + next(x4_5) := case + x4_5 = Wall: Wall; + x4_5 = Free & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Left: Agent; + x4_5 = Free & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Up: Agent; + x4_5 = Free & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Right : Agent; + x4_5 = Free & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Down : Agent; + x4_5 = Free & (x4_6 = Box | x4_6 = BoxOnTarget) & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Left: Box; + x4_5 = Free & (x5_5 = Box | x5_5 = BoxOnTarget) & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Up: Box; + x4_5 = Free & (x4_4 = Box | x4_4 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Right : Box; + x4_5 = Free & (x3_5 = Box | x3_5 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Down : Box; + x4_5 = Agent & (x4_6 = Free | x4_6 = Target) & move = Right: Free; + x4_5 = Agent & (x5_5 = Free | x5_5 = Target) & move = Down: Free; + x4_5 = Agent & (x4_4 = Free | x4_4 = Target) & move = Left : Free; + x4_5 = Agent & (x3_5= Free | x3_5 = Target) & move = Up : Free; + x4_5 = Agent & (x4_6 = Box | x4_6 = BoxOnTarget) & (x4_7 = Free | x4_7 = Target) & move = Right: Free; + x4_5 = Agent & (x5_5 = Box | x5_5 = BoxOnTarget) & (x6_5 = Free | x6_5 = Target) & move = Down: Free; + x4_5 = Agent & (x4_4 = Box | x4_4 = BoxOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Left: Free; + x4_5 = Agent & (x3_5 = Box | x3_5 = BoxOnTarget) & (x2_5 = Free | x2_5 = Target) & move = Up: Free; + x4_5 = Box & (x4_6 = Agent | x4_6 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Left: Agent; + x4_5 = Box & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Up: Agent; + x4_5 = Box & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Right : Agent; + x4_5 = Box & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Down : Agent; + x4_5 = Target & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_5 = Target & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_5 = Target & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_5 = Target & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_5 = Target & (x4_6 = Box | x4_6 = BoxOnTarget) & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Left: BoxOnTarget; + x4_5 = Target & (x5_5 = Box | x5_5 = BoxOnTarget) & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_5 = Target & (x4_4 = Box | x4_4 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x4_5 = Target & (x3_5 = Box | x3_5 = BoxOnTarget) & (x2_5 = Agent | x2_5 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_5 = AgentOnTarget & (x4_6 = Free | x4_6 = Target) & move = Right: Target; + x4_5 = AgentOnTarget & (x5_5 = Free | x5_5 = Target) & move = Down: Target; + x4_5 = AgentOnTarget & (x4_4 = Free | x4_4 = Target) & move = Left : Target; + x4_5 = AgentOnTarget & (x3_5 = Free | x3_5 = Target) & move = Up : Target; + x4_5 = BoxOnTarget & (x4_6 = Agent | x4_6 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Left: AgentOnTarget; + x4_5 = BoxOnTarget & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Up: AgentOnTarget; + x4_5 = BoxOnTarget & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Right : AgentOnTarget; + x4_5 = BoxOnTarget & (x3_5 = Agent | x3_5 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Down : AgentOnTarget; + TRUE : x4_5; + esac; + next(x4_6) := case + x4_6 = Wall: Wall; + x4_6 = Free & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Left: Agent; + x4_6 = Free & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Up: Agent; + x4_6 = Free & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Right : Agent; + x4_6 = Free & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Down : Agent; + x4_6 = Free & (x5_6 = Box | x5_6 = BoxOnTarget) & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Up: Box; + x4_6 = Free & (x4_5 = Box | x4_5 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Right : Box; + x4_6 = Free & (x3_6 = Box | x3_6 = BoxOnTarget) & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Down : Box; + x4_6 = Agent & (x4_7 = Free | x4_7 = Target) & move = Right: Free; + x4_6 = Agent & (x5_6 = Free | x5_6 = Target) & move = Down: Free; + x4_6 = Agent & (x4_5 = Free | x4_5 = Target) & move = Left : Free; + x4_6 = Agent & (x3_6= Free | x3_6 = Target) & move = Up : Free; + x4_6 = Agent & (x5_6 = Box | x5_6 = BoxOnTarget) & (x6_6 = Free | x6_6 = Target) & move = Down: Free; + x4_6 = Agent & (x4_5 = Box | x4_5 = BoxOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Left: Free; + x4_6 = Agent & (x3_6 = Box | x3_6 = BoxOnTarget) & (x2_6 = Free | x2_6 = Target) & move = Up: Free; + x4_6 = Box & (x4_7 = Agent | x4_7 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Left: Agent; + x4_6 = Box & (x5_6 = Agent | x5_6 = AgentOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Up: Agent; + x4_6 = Box & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x4_7 = Free | x4_7 = Target) & move = Right : Agent; + x4_6 = Box & (x3_6 = Agent | x3_6 = AgentOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Down : Agent; + x4_6 = Target & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Left: AgentOnTarget; + x4_6 = Target & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_6 = Target & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_6 = Target & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_6 = Target & (x5_6 = Box | x5_6 = BoxOnTarget) & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Up: BoxOnTarget; + x4_6 = Target & (x4_5 = Box | x4_5 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x4_6 = Target & (x3_6 = Box | x3_6 = BoxOnTarget) & (x2_6 = Agent | x2_6 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_6 = AgentOnTarget & (x4_7 = Free | x4_7 = Target) & move = Right: Target; + x4_6 = AgentOnTarget & (x5_6 = Free | x5_6 = Target) & move = Down: Target; + x4_6 = AgentOnTarget & (x4_5 = Free | x4_5 = Target) & move = Left : Target; + x4_6 = AgentOnTarget & (x3_6 = Free | x3_6 = Target) & move = Up : Target; + x4_6 = BoxOnTarget & (x4_7 = Agent | x4_7 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Left: AgentOnTarget; + x4_6 = BoxOnTarget & (x5_6 = Agent | x5_6 = AgentOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Up: AgentOnTarget; + x4_6 = BoxOnTarget & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x4_7 = Free | x4_7 = Target) & move = Right : AgentOnTarget; + x4_6 = BoxOnTarget & (x3_6 = Agent | x3_6 = AgentOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Down : AgentOnTarget; + TRUE : x4_6; + esac; + next(x4_7) := case + x4_7 = Wall: Wall; + x4_7 = Free & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Up: Agent; + x4_7 = Free & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Right : Agent; + x4_7 = Free & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Down : Agent; + x4_7 = Free & (x4_6 = Box | x4_6 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Right : Box; + x4_7 = Free & (x3_7 = Box | x3_7 = BoxOnTarget) & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Down : Box; + x4_7 = Agent & (x5_7 = Free | x5_7 = Target) & move = Down: Free; + x4_7 = Agent & (x4_6 = Free | x4_6 = Target) & move = Left : Free; + x4_7 = Agent & (x3_7= Free | x3_7 = Target) & move = Up : Free; + x4_7 = Agent & (x4_6 = Box | x4_6 = BoxOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Left: Free; + x4_7 = Agent & (x3_7 = Box | x3_7 = BoxOnTarget) & (x2_7 = Free | x2_7 = Target) & move = Up: Free; + x4_7 = Box & (x5_7 = Agent | x5_7 = AgentOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Up: Agent; + x4_7 = Box & (x3_7 = Agent | x3_7 = AgentOnTarget) & (x5_7 = Free | x5_7 = Target) & move = Down : Agent; + x4_7 = Target & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Up: AgentOnTarget; + x4_7 = Target & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Right : AgentOnTarget; + x4_7 = Target & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Down : AgentOnTarget; + x4_7 = Target & (x4_6 = Box | x4_6 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Right : BoxOnTarget; + x4_7 = Target & (x3_7 = Box | x3_7 = BoxOnTarget) & (x2_7 = Agent | x2_7 = AgentOnTarget) & move = Down : BoxOnTarget; + x4_7 = AgentOnTarget & (x5_7 = Free | x5_7 = Target) & move = Down: Target; + x4_7 = AgentOnTarget & (x4_6 = Free | x4_6 = Target) & move = Left : Target; + x4_7 = AgentOnTarget & (x3_7 = Free | x3_7 = Target) & move = Up : Target; + x4_7 = BoxOnTarget & (x5_7 = Agent | x5_7 = AgentOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Up: AgentOnTarget; + x4_7 = BoxOnTarget & (x3_7 = Agent | x3_7 = AgentOnTarget) & (x5_7 = Free | x5_7 = Target) & move = Down : AgentOnTarget; + TRUE : x4_7; + esac; + next(x5_0) := case + x5_0 = Wall: Wall; + x5_0 = Free & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Left: Agent; + x5_0 = Free & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Up: Agent; + x5_0 = Free & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Down : Agent; + x5_0 = Free & (x5_1 = Box | x5_1 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Left: Box; + x5_0 = Free & (x6_0 = Box | x6_0 = BoxOnTarget) & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Up: Box; + x5_0 = Free & (x4_0 = Box | x4_0 = BoxOnTarget) & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Down : Box; + x5_0 = Agent & (x5_1 = Free | x5_1 = Target) & move = Right: Free; + x5_0 = Agent & (x6_0 = Free | x6_0 = Target) & move = Down: Free; + x5_0 = Agent & (x4_0= Free | x4_0 = Target) & move = Up : Free; + x5_0 = Agent & (x5_1 = Box | x5_1 = BoxOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Right: Free; + x5_0 = Agent & (x6_0 = Box | x6_0 = BoxOnTarget) & (x7_0 = Free | x7_0 = Target) & move = Down: Free; + x5_0 = Agent & (x4_0 = Box | x4_0 = BoxOnTarget) & (x3_0 = Free | x3_0 = Target) & move = Up: Free; + x5_0 = Box & (x6_0 = Agent | x6_0 = AgentOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Up: Agent; + x5_0 = Box & (x4_0 = Agent | x4_0 = AgentOnTarget) & (x6_0 = Free | x6_0 = Target) & move = Down : Agent; + x5_0 = Target & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_0 = Target & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_0 = Target & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_0 = Target & (x5_1 = Box | x5_1 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x5_0 = Target & (x6_0 = Box | x6_0 = BoxOnTarget) & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_0 = Target & (x4_0 = Box | x4_0 = BoxOnTarget) & (x3_0 = Agent | x3_0 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_0 = AgentOnTarget & (x5_1 = Free | x5_1 = Target) & move = Right: Target; + x5_0 = AgentOnTarget & (x6_0 = Free | x6_0 = Target) & move = Down: Target; + x5_0 = AgentOnTarget & (x4_0 = Free | x4_0 = Target) & move = Up : Target; + x5_0 = BoxOnTarget & (x6_0 = Agent | x6_0 = AgentOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Up: AgentOnTarget; + x5_0 = BoxOnTarget & (x4_0 = Agent | x4_0 = AgentOnTarget) & (x6_0 = Free | x6_0 = Target) & move = Down : AgentOnTarget; + TRUE : x5_0; + esac; + next(x5_1) := case + x5_1 = Wall: Wall; + x5_1 = Free & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Left: Agent; + x5_1 = Free & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Up: Agent; + x5_1 = Free & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Right : Agent; + x5_1 = Free & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Down : Agent; + x5_1 = Free & (x5_2 = Box | x5_2 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Left: Box; + x5_1 = Free & (x6_1 = Box | x6_1 = BoxOnTarget) & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Up: Box; + x5_1 = Free & (x4_1 = Box | x4_1 = BoxOnTarget) & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Down : Box; + x5_1 = Agent & (x5_2 = Free | x5_2 = Target) & move = Right: Free; + x5_1 = Agent & (x6_1 = Free | x6_1 = Target) & move = Down: Free; + x5_1 = Agent & (x5_0 = Free | x5_0 = Target) & move = Left : Free; + x5_1 = Agent & (x4_1= Free | x4_1 = Target) & move = Up : Free; + x5_1 = Agent & (x5_2 = Box | x5_2 = BoxOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Right: Free; + x5_1 = Agent & (x6_1 = Box | x6_1 = BoxOnTarget) & (x7_1 = Free | x7_1 = Target) & move = Down: Free; + x5_1 = Agent & (x4_1 = Box | x4_1 = BoxOnTarget) & (x3_1 = Free | x3_1 = Target) & move = Up: Free; + x5_1 = Box & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Left: Agent; + x5_1 = Box & (x6_1 = Agent | x6_1 = AgentOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Up: Agent; + x5_1 = Box & (x5_0 = Agent | x5_0 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Right : Agent; + x5_1 = Box & (x4_1 = Agent | x4_1 = AgentOnTarget) & (x6_1 = Free | x6_1 = Target) & move = Down : Agent; + x5_1 = Target & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_1 = Target & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_1 = Target & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_1 = Target & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_1 = Target & (x5_2 = Box | x5_2 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x5_1 = Target & (x6_1 = Box | x6_1 = BoxOnTarget) & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_1 = Target & (x4_1 = Box | x4_1 = BoxOnTarget) & (x3_1 = Agent | x3_1 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_1 = AgentOnTarget & (x5_2 = Free | x5_2 = Target) & move = Right: Target; + x5_1 = AgentOnTarget & (x6_1 = Free | x6_1 = Target) & move = Down: Target; + x5_1 = AgentOnTarget & (x5_0 = Free | x5_0 = Target) & move = Left : Target; + x5_1 = AgentOnTarget & (x4_1 = Free | x4_1 = Target) & move = Up : Target; + x5_1 = BoxOnTarget & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Left: AgentOnTarget; + x5_1 = BoxOnTarget & (x6_1 = Agent | x6_1 = AgentOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Up: AgentOnTarget; + x5_1 = BoxOnTarget & (x5_0 = Agent | x5_0 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Right : AgentOnTarget; + x5_1 = BoxOnTarget & (x4_1 = Agent | x4_1 = AgentOnTarget) & (x6_1 = Free | x6_1 = Target) & move = Down : AgentOnTarget; + TRUE : x5_1; + esac; + next(x5_2) := case + x5_2 = Wall: Wall; + x5_2 = Free & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Left: Agent; + x5_2 = Free & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Up: Agent; + x5_2 = Free & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Right : Agent; + x5_2 = Free & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Down : Agent; + x5_2 = Free & (x5_3 = Box | x5_3 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Left: Box; + x5_2 = Free & (x6_2 = Box | x6_2 = BoxOnTarget) & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Up: Box; + x5_2 = Free & (x5_1 = Box | x5_1 = BoxOnTarget) & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Right : Box; + x5_2 = Free & (x4_2 = Box | x4_2 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Down : Box; + x5_2 = Agent & (x5_3 = Free | x5_3 = Target) & move = Right: Free; + x5_2 = Agent & (x6_2 = Free | x6_2 = Target) & move = Down: Free; + x5_2 = Agent & (x5_1 = Free | x5_1 = Target) & move = Left : Free; + x5_2 = Agent & (x4_2= Free | x4_2 = Target) & move = Up : Free; + x5_2 = Agent & (x5_3 = Box | x5_3 = BoxOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Right: Free; + x5_2 = Agent & (x6_2 = Box | x6_2 = BoxOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Down: Free; + x5_2 = Agent & (x5_1 = Box | x5_1 = BoxOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Left: Free; + x5_2 = Agent & (x4_2 = Box | x4_2 = BoxOnTarget) & (x3_2 = Free | x3_2 = Target) & move = Up: Free; + x5_2 = Box & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Left: Agent; + x5_2 = Box & (x6_2 = Agent | x6_2 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Up: Agent; + x5_2 = Box & (x5_1 = Agent | x5_1 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Right : Agent; + x5_2 = Box & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Down : Agent; + x5_2 = Target & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_2 = Target & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_2 = Target & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_2 = Target & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_2 = Target & (x5_3 = Box | x5_3 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x5_2 = Target & (x6_2 = Box | x6_2 = BoxOnTarget) & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_2 = Target & (x5_1 = Box | x5_1 = BoxOnTarget) & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x5_2 = Target & (x4_2 = Box | x4_2 = BoxOnTarget) & (x3_2 = Agent | x3_2 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_2 = AgentOnTarget & (x5_3 = Free | x5_3 = Target) & move = Right: Target; + x5_2 = AgentOnTarget & (x6_2 = Free | x6_2 = Target) & move = Down: Target; + x5_2 = AgentOnTarget & (x5_1 = Free | x5_1 = Target) & move = Left : Target; + x5_2 = AgentOnTarget & (x4_2 = Free | x4_2 = Target) & move = Up : Target; + x5_2 = BoxOnTarget & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Left: AgentOnTarget; + x5_2 = BoxOnTarget & (x6_2 = Agent | x6_2 = AgentOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Up: AgentOnTarget; + x5_2 = BoxOnTarget & (x5_1 = Agent | x5_1 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Right : AgentOnTarget; + x5_2 = BoxOnTarget & (x4_2 = Agent | x4_2 = AgentOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Down : AgentOnTarget; + TRUE : x5_2; + esac; + next(x5_3) := case + x5_3 = Wall: Wall; + x5_3 = Free & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Left: Agent; + x5_3 = Free & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Up: Agent; + x5_3 = Free & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Right : Agent; + x5_3 = Free & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Down : Agent; + x5_3 = Free & (x5_4 = Box | x5_4 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Left: Box; + x5_3 = Free & (x6_3 = Box | x6_3 = BoxOnTarget) & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Up: Box; + x5_3 = Free & (x5_2 = Box | x5_2 = BoxOnTarget) & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Right : Box; + x5_3 = Free & (x4_3 = Box | x4_3 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Down : Box; + x5_3 = Agent & (x5_4 = Free | x5_4 = Target) & move = Right: Free; + x5_3 = Agent & (x6_3 = Free | x6_3 = Target) & move = Down: Free; + x5_3 = Agent & (x5_2 = Free | x5_2 = Target) & move = Left : Free; + x5_3 = Agent & (x4_3= Free | x4_3 = Target) & move = Up : Free; + x5_3 = Agent & (x5_4 = Box | x5_4 = BoxOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Right: Free; + x5_3 = Agent & (x6_3 = Box | x6_3 = BoxOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Down: Free; + x5_3 = Agent & (x5_2 = Box | x5_2 = BoxOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Left: Free; + x5_3 = Agent & (x4_3 = Box | x4_3 = BoxOnTarget) & (x3_3 = Free | x3_3 = Target) & move = Up: Free; + x5_3 = Box & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Left: Agent; + x5_3 = Box & (x6_3 = Agent | x6_3 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Up: Agent; + x5_3 = Box & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Right : Agent; + x5_3 = Box & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Down : Agent; + x5_3 = Target & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_3 = Target & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_3 = Target & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_3 = Target & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_3 = Target & (x5_4 = Box | x5_4 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x5_3 = Target & (x6_3 = Box | x6_3 = BoxOnTarget) & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_3 = Target & (x5_2 = Box | x5_2 = BoxOnTarget) & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x5_3 = Target & (x4_3 = Box | x4_3 = BoxOnTarget) & (x3_3 = Agent | x3_3 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_3 = AgentOnTarget & (x5_4 = Free | x5_4 = Target) & move = Right: Target; + x5_3 = AgentOnTarget & (x6_3 = Free | x6_3 = Target) & move = Down: Target; + x5_3 = AgentOnTarget & (x5_2 = Free | x5_2 = Target) & move = Left : Target; + x5_3 = AgentOnTarget & (x4_3 = Free | x4_3 = Target) & move = Up : Target; + x5_3 = BoxOnTarget & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Left: AgentOnTarget; + x5_3 = BoxOnTarget & (x6_3 = Agent | x6_3 = AgentOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Up: AgentOnTarget; + x5_3 = BoxOnTarget & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Right : AgentOnTarget; + x5_3 = BoxOnTarget & (x4_3 = Agent | x4_3 = AgentOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Down : AgentOnTarget; + TRUE : x5_3; + esac; + next(x5_4) := case + x5_4 = Wall: Wall; + x5_4 = Free & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Left: Agent; + x5_4 = Free & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Up: Agent; + x5_4 = Free & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Right : Agent; + x5_4 = Free & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Down : Agent; + x5_4 = Free & (x5_5 = Box | x5_5 = BoxOnTarget) & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Left: Box; + x5_4 = Free & (x6_4 = Box | x6_4 = BoxOnTarget) & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Up: Box; + x5_4 = Free & (x5_3 = Box | x5_3 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Right : Box; + x5_4 = Free & (x4_4 = Box | x4_4 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Down : Box; + x5_4 = Agent & (x5_5 = Free | x5_5 = Target) & move = Right: Free; + x5_4 = Agent & (x6_4 = Free | x6_4 = Target) & move = Down: Free; + x5_4 = Agent & (x5_3 = Free | x5_3 = Target) & move = Left : Free; + x5_4 = Agent & (x4_4= Free | x4_4 = Target) & move = Up : Free; + x5_4 = Agent & (x5_5 = Box | x5_5 = BoxOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Right: Free; + x5_4 = Agent & (x6_4 = Box | x6_4 = BoxOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Down: Free; + x5_4 = Agent & (x5_3 = Box | x5_3 = BoxOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Left: Free; + x5_4 = Agent & (x4_4 = Box | x4_4 = BoxOnTarget) & (x3_4 = Free | x3_4 = Target) & move = Up: Free; + x5_4 = Box & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Left: Agent; + x5_4 = Box & (x6_4 = Agent | x6_4 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Up: Agent; + x5_4 = Box & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Right : Agent; + x5_4 = Box & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Down : Agent; + x5_4 = Target & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_4 = Target & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_4 = Target & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_4 = Target & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_4 = Target & (x5_5 = Box | x5_5 = BoxOnTarget) & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x5_4 = Target & (x6_4 = Box | x6_4 = BoxOnTarget) & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_4 = Target & (x5_3 = Box | x5_3 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x5_4 = Target & (x4_4 = Box | x4_4 = BoxOnTarget) & (x3_4 = Agent | x3_4 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_4 = AgentOnTarget & (x5_5 = Free | x5_5 = Target) & move = Right: Target; + x5_4 = AgentOnTarget & (x6_4 = Free | x6_4 = Target) & move = Down: Target; + x5_4 = AgentOnTarget & (x5_3 = Free | x5_3 = Target) & move = Left : Target; + x5_4 = AgentOnTarget & (x4_4 = Free | x4_4 = Target) & move = Up : Target; + x5_4 = BoxOnTarget & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Left: AgentOnTarget; + x5_4 = BoxOnTarget & (x6_4 = Agent | x6_4 = AgentOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Up: AgentOnTarget; + x5_4 = BoxOnTarget & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Right : AgentOnTarget; + x5_4 = BoxOnTarget & (x4_4 = Agent | x4_4 = AgentOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Down : AgentOnTarget; + TRUE : x5_4; + esac; + next(x5_5) := case + x5_5 = Wall: Wall; + x5_5 = Free & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Left: Agent; + x5_5 = Free & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Up: Agent; + x5_5 = Free & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Right : Agent; + x5_5 = Free & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Down : Agent; + x5_5 = Free & (x5_6 = Box | x5_6 = BoxOnTarget) & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Left: Box; + x5_5 = Free & (x6_5 = Box | x6_5 = BoxOnTarget) & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Up: Box; + x5_5 = Free & (x5_4 = Box | x5_4 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Right : Box; + x5_5 = Free & (x4_5 = Box | x4_5 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Down : Box; + x5_5 = Agent & (x5_6 = Free | x5_6 = Target) & move = Right: Free; + x5_5 = Agent & (x6_5 = Free | x6_5 = Target) & move = Down: Free; + x5_5 = Agent & (x5_4 = Free | x5_4 = Target) & move = Left : Free; + x5_5 = Agent & (x4_5= Free | x4_5 = Target) & move = Up : Free; + x5_5 = Agent & (x5_6 = Box | x5_6 = BoxOnTarget) & (x5_7 = Free | x5_7 = Target) & move = Right: Free; + x5_5 = Agent & (x6_5 = Box | x6_5 = BoxOnTarget) & (x7_5 = Free | x7_5 = Target) & move = Down: Free; + x5_5 = Agent & (x5_4 = Box | x5_4 = BoxOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Left: Free; + x5_5 = Agent & (x4_5 = Box | x4_5 = BoxOnTarget) & (x3_5 = Free | x3_5 = Target) & move = Up: Free; + x5_5 = Box & (x5_6 = Agent | x5_6 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Left: Agent; + x5_5 = Box & (x6_5 = Agent | x6_5 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Up: Agent; + x5_5 = Box & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Right : Agent; + x5_5 = Box & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x6_5 = Free | x6_5 = Target) & move = Down : Agent; + x5_5 = Target & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_5 = Target & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_5 = Target & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_5 = Target & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_5 = Target & (x5_6 = Box | x5_6 = BoxOnTarget) & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Left: BoxOnTarget; + x5_5 = Target & (x6_5 = Box | x6_5 = BoxOnTarget) & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_5 = Target & (x5_4 = Box | x5_4 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x5_5 = Target & (x4_5 = Box | x4_5 = BoxOnTarget) & (x3_5 = Agent | x3_5 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_5 = AgentOnTarget & (x5_6 = Free | x5_6 = Target) & move = Right: Target; + x5_5 = AgentOnTarget & (x6_5 = Free | x6_5 = Target) & move = Down: Target; + x5_5 = AgentOnTarget & (x5_4 = Free | x5_4 = Target) & move = Left : Target; + x5_5 = AgentOnTarget & (x4_5 = Free | x4_5 = Target) & move = Up : Target; + x5_5 = BoxOnTarget & (x5_6 = Agent | x5_6 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Left: AgentOnTarget; + x5_5 = BoxOnTarget & (x6_5 = Agent | x6_5 = AgentOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Up: AgentOnTarget; + x5_5 = BoxOnTarget & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Right : AgentOnTarget; + x5_5 = BoxOnTarget & (x4_5 = Agent | x4_5 = AgentOnTarget) & (x6_5 = Free | x6_5 = Target) & move = Down : AgentOnTarget; + TRUE : x5_5; + esac; + next(x5_6) := case + x5_6 = Wall: Wall; + x5_6 = Free & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Left: Agent; + x5_6 = Free & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Up: Agent; + x5_6 = Free & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Right : Agent; + x5_6 = Free & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Down : Agent; + x5_6 = Free & (x6_6 = Box | x6_6 = BoxOnTarget) & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Up: Box; + x5_6 = Free & (x5_5 = Box | x5_5 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Right : Box; + x5_6 = Free & (x4_6 = Box | x4_6 = BoxOnTarget) & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Down : Box; + x5_6 = Agent & (x5_7 = Free | x5_7 = Target) & move = Right: Free; + x5_6 = Agent & (x6_6 = Free | x6_6 = Target) & move = Down: Free; + x5_6 = Agent & (x5_5 = Free | x5_5 = Target) & move = Left : Free; + x5_6 = Agent & (x4_6= Free | x4_6 = Target) & move = Up : Free; + x5_6 = Agent & (x6_6 = Box | x6_6 = BoxOnTarget) & (x7_6 = Free | x7_6 = Target) & move = Down: Free; + x5_6 = Agent & (x5_5 = Box | x5_5 = BoxOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Left: Free; + x5_6 = Agent & (x4_6 = Box | x4_6 = BoxOnTarget) & (x3_6 = Free | x3_6 = Target) & move = Up: Free; + x5_6 = Box & (x5_7 = Agent | x5_7 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Left: Agent; + x5_6 = Box & (x6_6 = Agent | x6_6 = AgentOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Up: Agent; + x5_6 = Box & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x5_7 = Free | x5_7 = Target) & move = Right : Agent; + x5_6 = Box & (x4_6 = Agent | x4_6 = AgentOnTarget) & (x6_6 = Free | x6_6 = Target) & move = Down : Agent; + x5_6 = Target & (x5_7 = Agent | x5_7 = AgentOnTarget) & move = Left: AgentOnTarget; + x5_6 = Target & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x5_6 = Target & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_6 = Target & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_6 = Target & (x6_6 = Box | x6_6 = BoxOnTarget) & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Up: BoxOnTarget; + x5_6 = Target & (x5_5 = Box | x5_5 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x5_6 = Target & (x4_6 = Box | x4_6 = BoxOnTarget) & (x3_6 = Agent | x3_6 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_6 = AgentOnTarget & (x5_7 = Free | x5_7 = Target) & move = Right: Target; + x5_6 = AgentOnTarget & (x6_6 = Free | x6_6 = Target) & move = Down: Target; + x5_6 = AgentOnTarget & (x5_5 = Free | x5_5 = Target) & move = Left : Target; + x5_6 = AgentOnTarget & (x4_6 = Free | x4_6 = Target) & move = Up : Target; + x5_6 = BoxOnTarget & (x5_7 = Agent | x5_7 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Left: AgentOnTarget; + x5_6 = BoxOnTarget & (x6_6 = Agent | x6_6 = AgentOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Up: AgentOnTarget; + x5_6 = BoxOnTarget & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x5_7 = Free | x5_7 = Target) & move = Right : AgentOnTarget; + x5_6 = BoxOnTarget & (x4_6 = Agent | x4_6 = AgentOnTarget) & (x6_6 = Free | x6_6 = Target) & move = Down : AgentOnTarget; + TRUE : x5_6; + esac; + next(x5_7) := case + x5_7 = Wall: Wall; + x5_7 = Free & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Right : Agent; + x5_7 = Free & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Down : Agent; + x5_7 = Free & (x5_6 = Box | x5_6 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Right : Box; + x5_7 = Free & (x4_7 = Box | x4_7 = BoxOnTarget) & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Down : Box; + x5_7 = Agent & (x5_6 = Free | x5_6 = Target) & move = Left : Free; + x5_7 = Agent & (x4_7= Free | x4_7 = Target) & move = Up : Free; + x5_7 = Agent & (x5_6 = Box | x5_6 = BoxOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Left: Free; + x5_7 = Agent & (x4_7 = Box | x4_7 = BoxOnTarget) & (x3_7 = Free | x3_7 = Target) & move = Up: Free; + x5_7 = Target & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Right : AgentOnTarget; + x5_7 = Target & (x4_7 = Agent | x4_7 = AgentOnTarget) & move = Down : AgentOnTarget; + x5_7 = Target & (x5_6 = Box | x5_6 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Right : BoxOnTarget; + x5_7 = Target & (x4_7 = Box | x4_7 = BoxOnTarget) & (x3_7 = Agent | x3_7 = AgentOnTarget) & move = Down : BoxOnTarget; + x5_7 = AgentOnTarget & (x5_6 = Free | x5_6 = Target) & move = Left : Target; + x5_7 = AgentOnTarget & (x4_7 = Free | x4_7 = Target) & move = Up : Target; + TRUE : x5_7; + esac; + next(x6_0) := case + x6_0 = Wall: Wall; + x6_0 = Free & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Left: Agent; + x6_0 = Free & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Up: Agent; + x6_0 = Free & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Down : Agent; + x6_0 = Free & (x6_1 = Box | x6_1 = BoxOnTarget) & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Left: Box; + x6_0 = Free & (x5_0 = Box | x5_0 = BoxOnTarget) & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Down : Box; + x6_0 = Agent & (x6_1 = Free | x6_1 = Target) & move = Right: Free; + x6_0 = Agent & (x7_0 = Free | x7_0 = Target) & move = Down: Free; + x6_0 = Agent & (x5_0= Free | x5_0 = Target) & move = Up : Free; + x6_0 = Agent & (x6_1 = Box | x6_1 = BoxOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Right: Free; + x6_0 = Agent & (x5_0 = Box | x5_0 = BoxOnTarget) & (x4_0 = Free | x4_0 = Target) & move = Up: Free; + x6_0 = Box & (x7_0 = Agent | x7_0 = AgentOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Up: Agent; + x6_0 = Box & (x5_0 = Agent | x5_0 = AgentOnTarget) & (x7_0 = Free | x7_0 = Target) & move = Down : Agent; + x6_0 = Target & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x6_0 = Target & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_0 = Target & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_0 = Target & (x6_1 = Box | x6_1 = BoxOnTarget) & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x6_0 = Target & (x5_0 = Box | x5_0 = BoxOnTarget) & (x4_0 = Agent | x4_0 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_0 = AgentOnTarget & (x6_1 = Free | x6_1 = Target) & move = Right: Target; + x6_0 = AgentOnTarget & (x7_0 = Free | x7_0 = Target) & move = Down: Target; + x6_0 = AgentOnTarget & (x5_0 = Free | x5_0 = Target) & move = Up : Target; + x6_0 = BoxOnTarget & (x7_0 = Agent | x7_0 = AgentOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Up: AgentOnTarget; + x6_0 = BoxOnTarget & (x5_0 = Agent | x5_0 = AgentOnTarget) & (x7_0 = Free | x7_0 = Target) & move = Down : AgentOnTarget; + TRUE : x6_0; + esac; + next(x6_1) := case + x6_1 = Wall: Wall; + x6_1 = Free & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Left: Agent; + x6_1 = Free & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Up: Agent; + x6_1 = Free & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Right : Agent; + x6_1 = Free & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Down : Agent; + x6_1 = Free & (x6_2 = Box | x6_2 = BoxOnTarget) & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Left: Box; + x6_1 = Free & (x5_1 = Box | x5_1 = BoxOnTarget) & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Down : Box; + x6_1 = Agent & (x6_2 = Free | x6_2 = Target) & move = Right: Free; + x6_1 = Agent & (x7_1 = Free | x7_1 = Target) & move = Down: Free; + x6_1 = Agent & (x6_0 = Free | x6_0 = Target) & move = Left : Free; + x6_1 = Agent & (x5_1= Free | x5_1 = Target) & move = Up : Free; + x6_1 = Agent & (x6_2 = Box | x6_2 = BoxOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Right: Free; + x6_1 = Agent & (x5_1 = Box | x5_1 = BoxOnTarget) & (x4_1 = Free | x4_1 = Target) & move = Up: Free; + x6_1 = Box & (x6_2 = Agent | x6_2 = AgentOnTarget) & (x6_0 = Free | x6_0 = Target) & move = Left: Agent; + x6_1 = Box & (x7_1 = Agent | x7_1 = AgentOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Up: Agent; + x6_1 = Box & (x6_0 = Agent | x6_0 = AgentOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Right : Agent; + x6_1 = Box & (x5_1 = Agent | x5_1 = AgentOnTarget) & (x7_1 = Free | x7_1 = Target) & move = Down : Agent; + x6_1 = Target & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x6_1 = Target & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_1 = Target & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x6_1 = Target & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_1 = Target & (x6_2 = Box | x6_2 = BoxOnTarget) & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x6_1 = Target & (x5_1 = Box | x5_1 = BoxOnTarget) & (x4_1 = Agent | x4_1 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_1 = AgentOnTarget & (x6_2 = Free | x6_2 = Target) & move = Right: Target; + x6_1 = AgentOnTarget & (x7_1 = Free | x7_1 = Target) & move = Down: Target; + x6_1 = AgentOnTarget & (x6_0 = Free | x6_0 = Target) & move = Left : Target; + x6_1 = AgentOnTarget & (x5_1 = Free | x5_1 = Target) & move = Up : Target; + x6_1 = BoxOnTarget & (x6_2 = Agent | x6_2 = AgentOnTarget) & (x6_0 = Free | x6_0 = Target) & move = Left: AgentOnTarget; + x6_1 = BoxOnTarget & (x7_1 = Agent | x7_1 = AgentOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Up: AgentOnTarget; + x6_1 = BoxOnTarget & (x6_0 = Agent | x6_0 = AgentOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Right : AgentOnTarget; + x6_1 = BoxOnTarget & (x5_1 = Agent | x5_1 = AgentOnTarget) & (x7_1 = Free | x7_1 = Target) & move = Down : AgentOnTarget; + TRUE : x6_1; + esac; + next(x6_2) := case + x6_2 = Wall: Wall; + x6_2 = Free & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Left: Agent; + x6_2 = Free & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Up: Agent; + x6_2 = Free & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Right : Agent; + x6_2 = Free & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Down : Agent; + x6_2 = Free & (x6_3 = Box | x6_3 = BoxOnTarget) & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Left: Box; + x6_2 = Free & (x6_1 = Box | x6_1 = BoxOnTarget) & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Right : Box; + x6_2 = Free & (x5_2 = Box | x5_2 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Down : Box; + x6_2 = Agent & (x6_3 = Free | x6_3 = Target) & move = Right: Free; + x6_2 = Agent & (x7_2 = Free | x7_2 = Target) & move = Down: Free; + x6_2 = Agent & (x6_1 = Free | x6_1 = Target) & move = Left : Free; + x6_2 = Agent & (x5_2= Free | x5_2 = Target) & move = Up : Free; + x6_2 = Agent & (x6_3 = Box | x6_3 = BoxOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Right: Free; + x6_2 = Agent & (x6_1 = Box | x6_1 = BoxOnTarget) & (x6_0 = Free | x6_0 = Target) & move = Left: Free; + x6_2 = Agent & (x5_2 = Box | x5_2 = BoxOnTarget) & (x4_2 = Free | x4_2 = Target) & move = Up: Free; + x6_2 = Box & (x6_3 = Agent | x6_3 = AgentOnTarget) & (x6_1 = Free | x6_1 = Target) & move = Left: Agent; + x6_2 = Box & (x7_2 = Agent | x7_2 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Up: Agent; + x6_2 = Box & (x6_1 = Agent | x6_1 = AgentOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Right : Agent; + x6_2 = Box & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Down : Agent; + x6_2 = Target & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x6_2 = Target & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_2 = Target & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x6_2 = Target & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_2 = Target & (x6_3 = Box | x6_3 = BoxOnTarget) & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x6_2 = Target & (x6_1 = Box | x6_1 = BoxOnTarget) & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x6_2 = Target & (x5_2 = Box | x5_2 = BoxOnTarget) & (x4_2 = Agent | x4_2 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_2 = AgentOnTarget & (x6_3 = Free | x6_3 = Target) & move = Right: Target; + x6_2 = AgentOnTarget & (x7_2 = Free | x7_2 = Target) & move = Down: Target; + x6_2 = AgentOnTarget & (x6_1 = Free | x6_1 = Target) & move = Left : Target; + x6_2 = AgentOnTarget & (x5_2 = Free | x5_2 = Target) & move = Up : Target; + x6_2 = BoxOnTarget & (x6_3 = Agent | x6_3 = AgentOnTarget) & (x6_1 = Free | x6_1 = Target) & move = Left: AgentOnTarget; + x6_2 = BoxOnTarget & (x7_2 = Agent | x7_2 = AgentOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Up: AgentOnTarget; + x6_2 = BoxOnTarget & (x6_1 = Agent | x6_1 = AgentOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Right : AgentOnTarget; + x6_2 = BoxOnTarget & (x5_2 = Agent | x5_2 = AgentOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Down : AgentOnTarget; + TRUE : x6_2; + esac; + next(x6_3) := case + x6_3 = Wall: Wall; + x6_3 = Free & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Left: Agent; + x6_3 = Free & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Up: Agent; + x6_3 = Free & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Right : Agent; + x6_3 = Free & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Down : Agent; + x6_3 = Free & (x6_4 = Box | x6_4 = BoxOnTarget) & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Left: Box; + x6_3 = Free & (x6_2 = Box | x6_2 = BoxOnTarget) & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Right : Box; + x6_3 = Free & (x5_3 = Box | x5_3 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Down : Box; + x6_3 = Agent & (x6_4 = Free | x6_4 = Target) & move = Right: Free; + x6_3 = Agent & (x7_3 = Free | x7_3 = Target) & move = Down: Free; + x6_3 = Agent & (x6_2 = Free | x6_2 = Target) & move = Left : Free; + x6_3 = Agent & (x5_3= Free | x5_3 = Target) & move = Up : Free; + x6_3 = Agent & (x6_4 = Box | x6_4 = BoxOnTarget) & (x6_5 = Free | x6_5 = Target) & move = Right: Free; + x6_3 = Agent & (x6_2 = Box | x6_2 = BoxOnTarget) & (x6_1 = Free | x6_1 = Target) & move = Left: Free; + x6_3 = Agent & (x5_3 = Box | x5_3 = BoxOnTarget) & (x4_3 = Free | x4_3 = Target) & move = Up: Free; + x6_3 = Box & (x6_4 = Agent | x6_4 = AgentOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Left: Agent; + x6_3 = Box & (x7_3 = Agent | x7_3 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Up: Agent; + x6_3 = Box & (x6_2 = Agent | x6_2 = AgentOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Right : Agent; + x6_3 = Box & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Down : Agent; + x6_3 = Target & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x6_3 = Target & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_3 = Target & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x6_3 = Target & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_3 = Target & (x6_4 = Box | x6_4 = BoxOnTarget) & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x6_3 = Target & (x6_2 = Box | x6_2 = BoxOnTarget) & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x6_3 = Target & (x5_3 = Box | x5_3 = BoxOnTarget) & (x4_3 = Agent | x4_3 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_3 = AgentOnTarget & (x6_4 = Free | x6_4 = Target) & move = Right: Target; + x6_3 = AgentOnTarget & (x7_3 = Free | x7_3 = Target) & move = Down: Target; + x6_3 = AgentOnTarget & (x6_2 = Free | x6_2 = Target) & move = Left : Target; + x6_3 = AgentOnTarget & (x5_3 = Free | x5_3 = Target) & move = Up : Target; + x6_3 = BoxOnTarget & (x6_4 = Agent | x6_4 = AgentOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Left: AgentOnTarget; + x6_3 = BoxOnTarget & (x7_3 = Agent | x7_3 = AgentOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Up: AgentOnTarget; + x6_3 = BoxOnTarget & (x6_2 = Agent | x6_2 = AgentOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Right : AgentOnTarget; + x6_3 = BoxOnTarget & (x5_3 = Agent | x5_3 = AgentOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Down : AgentOnTarget; + TRUE : x6_3; + esac; + next(x6_4) := case + x6_4 = Wall: Wall; + x6_4 = Free & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Left: Agent; + x6_4 = Free & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Up: Agent; + x6_4 = Free & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Right : Agent; + x6_4 = Free & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Down : Agent; + x6_4 = Free & (x6_5 = Box | x6_5 = BoxOnTarget) & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Left: Box; + x6_4 = Free & (x6_3 = Box | x6_3 = BoxOnTarget) & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Right : Box; + x6_4 = Free & (x5_4 = Box | x5_4 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Down : Box; + x6_4 = Agent & (x6_5 = Free | x6_5 = Target) & move = Right: Free; + x6_4 = Agent & (x7_4 = Free | x7_4 = Target) & move = Down: Free; + x6_4 = Agent & (x6_3 = Free | x6_3 = Target) & move = Left : Free; + x6_4 = Agent & (x5_4= Free | x5_4 = Target) & move = Up : Free; + x6_4 = Agent & (x6_5 = Box | x6_5 = BoxOnTarget) & (x6_6 = Free | x6_6 = Target) & move = Right: Free; + x6_4 = Agent & (x6_3 = Box | x6_3 = BoxOnTarget) & (x6_2 = Free | x6_2 = Target) & move = Left: Free; + x6_4 = Agent & (x5_4 = Box | x5_4 = BoxOnTarget) & (x4_4 = Free | x4_4 = Target) & move = Up: Free; + x6_4 = Box & (x6_5 = Agent | x6_5 = AgentOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Left: Agent; + x6_4 = Box & (x7_4 = Agent | x7_4 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Up: Agent; + x6_4 = Box & (x6_3 = Agent | x6_3 = AgentOnTarget) & (x6_5 = Free | x6_5 = Target) & move = Right : Agent; + x6_4 = Box & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Down : Agent; + x6_4 = Target & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x6_4 = Target & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_4 = Target & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x6_4 = Target & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_4 = Target & (x6_5 = Box | x6_5 = BoxOnTarget) & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x6_4 = Target & (x6_3 = Box | x6_3 = BoxOnTarget) & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x6_4 = Target & (x5_4 = Box | x5_4 = BoxOnTarget) & (x4_4 = Agent | x4_4 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_4 = AgentOnTarget & (x6_5 = Free | x6_5 = Target) & move = Right: Target; + x6_4 = AgentOnTarget & (x7_4 = Free | x7_4 = Target) & move = Down: Target; + x6_4 = AgentOnTarget & (x6_3 = Free | x6_3 = Target) & move = Left : Target; + x6_4 = AgentOnTarget & (x5_4 = Free | x5_4 = Target) & move = Up : Target; + x6_4 = BoxOnTarget & (x6_5 = Agent | x6_5 = AgentOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Left: AgentOnTarget; + x6_4 = BoxOnTarget & (x7_4 = Agent | x7_4 = AgentOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Up: AgentOnTarget; + x6_4 = BoxOnTarget & (x6_3 = Agent | x6_3 = AgentOnTarget) & (x6_5 = Free | x6_5 = Target) & move = Right : AgentOnTarget; + x6_4 = BoxOnTarget & (x5_4 = Agent | x5_4 = AgentOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Down : AgentOnTarget; + TRUE : x6_4; + esac; + next(x6_5) := case + x6_5 = Wall: Wall; + x6_5 = Free & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Left: Agent; + x6_5 = Free & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Up: Agent; + x6_5 = Free & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Right : Agent; + x6_5 = Free & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Down : Agent; + x6_5 = Free & (x6_4 = Box | x6_4 = BoxOnTarget) & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Right : Box; + x6_5 = Free & (x5_5 = Box | x5_5 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Down : Box; + x6_5 = Agent & (x6_6 = Free | x6_6 = Target) & move = Right: Free; + x6_5 = Agent & (x7_5 = Free | x7_5 = Target) & move = Down: Free; + x6_5 = Agent & (x6_4 = Free | x6_4 = Target) & move = Left : Free; + x6_5 = Agent & (x5_5= Free | x5_5 = Target) & move = Up : Free; + x6_5 = Agent & (x6_4 = Box | x6_4 = BoxOnTarget) & (x6_3 = Free | x6_3 = Target) & move = Left: Free; + x6_5 = Agent & (x5_5 = Box | x5_5 = BoxOnTarget) & (x4_5 = Free | x4_5 = Target) & move = Up: Free; + x6_5 = Box & (x6_6 = Agent | x6_6 = AgentOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Left: Agent; + x6_5 = Box & (x7_5 = Agent | x7_5 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Up: Agent; + x6_5 = Box & (x6_4 = Agent | x6_4 = AgentOnTarget) & (x6_6 = Free | x6_6 = Target) & move = Right : Agent; + x6_5 = Box & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x7_5 = Free | x7_5 = Target) & move = Down : Agent; + x6_5 = Target & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x6_5 = Target & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_5 = Target & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x6_5 = Target & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_5 = Target & (x6_4 = Box | x6_4 = BoxOnTarget) & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x6_5 = Target & (x5_5 = Box | x5_5 = BoxOnTarget) & (x4_5 = Agent | x4_5 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_5 = AgentOnTarget & (x6_6 = Free | x6_6 = Target) & move = Right: Target; + x6_5 = AgentOnTarget & (x7_5 = Free | x7_5 = Target) & move = Down: Target; + x6_5 = AgentOnTarget & (x6_4 = Free | x6_4 = Target) & move = Left : Target; + x6_5 = AgentOnTarget & (x5_5 = Free | x5_5 = Target) & move = Up : Target; + x6_5 = BoxOnTarget & (x6_6 = Agent | x6_6 = AgentOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Left: AgentOnTarget; + x6_5 = BoxOnTarget & (x7_5 = Agent | x7_5 = AgentOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Up: AgentOnTarget; + x6_5 = BoxOnTarget & (x6_4 = Agent | x6_4 = AgentOnTarget) & (x6_6 = Free | x6_6 = Target) & move = Right : AgentOnTarget; + x6_5 = BoxOnTarget & (x5_5 = Agent | x5_5 = AgentOnTarget) & (x7_5 = Free | x7_5 = Target) & move = Down : AgentOnTarget; + TRUE : x6_5; + esac; + next(x6_6) := case + x6_6 = Wall: Wall; + x6_6 = Free & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Up: Agent; + x6_6 = Free & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Right : Agent; + x6_6 = Free & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Down : Agent; + x6_6 = Free & (x6_5 = Box | x6_5 = BoxOnTarget) & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Right : Box; + x6_6 = Free & (x5_6 = Box | x5_6 = BoxOnTarget) & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Down : Box; + x6_6 = Agent & (x7_6 = Free | x7_6 = Target) & move = Down: Free; + x6_6 = Agent & (x6_5 = Free | x6_5 = Target) & move = Left : Free; + x6_6 = Agent & (x5_6= Free | x5_6 = Target) & move = Up : Free; + x6_6 = Agent & (x6_5 = Box | x6_5 = BoxOnTarget) & (x6_4 = Free | x6_4 = Target) & move = Left: Free; + x6_6 = Agent & (x5_6 = Box | x5_6 = BoxOnTarget) & (x4_6 = Free | x4_6 = Target) & move = Up: Free; + x6_6 = Box & (x7_6 = Agent | x7_6 = AgentOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Up: Agent; + x6_6 = Box & (x5_6 = Agent | x5_6 = AgentOnTarget) & (x7_6 = Free | x7_6 = Target) & move = Down : Agent; + x6_6 = Target & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Up: AgentOnTarget; + x6_6 = Target & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x6_6 = Target & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x6_6 = Target & (x6_5 = Box | x6_5 = BoxOnTarget) & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x6_6 = Target & (x5_6 = Box | x5_6 = BoxOnTarget) & (x4_6 = Agent | x4_6 = AgentOnTarget) & move = Down : BoxOnTarget; + x6_6 = AgentOnTarget & (x7_6 = Free | x7_6 = Target) & move = Down: Target; + x6_6 = AgentOnTarget & (x6_5 = Free | x6_5 = Target) & move = Left : Target; + x6_6 = AgentOnTarget & (x5_6 = Free | x5_6 = Target) & move = Up : Target; + x6_6 = BoxOnTarget & (x7_6 = Agent | x7_6 = AgentOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Up: AgentOnTarget; + x6_6 = BoxOnTarget & (x5_6 = Agent | x5_6 = AgentOnTarget) & (x7_6 = Free | x7_6 = Target) & move = Down : AgentOnTarget; + TRUE : x6_6; + esac; + next(x7_0) := case + x7_0 = Wall: Wall; + x7_0 = Free & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Left: Agent; + x7_0 = Free & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Down : Agent; + x7_0 = Free & (x7_1 = Box | x7_1 = BoxOnTarget) & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Left: Box; + x7_0 = Free & (x6_0 = Box | x6_0 = BoxOnTarget) & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Down : Box; + x7_0 = Agent & (x7_1 = Free | x7_1 = Target) & move = Right: Free; + x7_0 = Agent & (x6_0= Free | x6_0 = Target) & move = Up : Free; + x7_0 = Agent & (x7_1 = Box | x7_1 = BoxOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Right: Free; + x7_0 = Agent & (x6_0 = Box | x6_0 = BoxOnTarget) & (x5_0 = Free | x5_0 = Target) & move = Up: Free; + x7_0 = Target & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Left: AgentOnTarget; + x7_0 = Target & (x6_0 = Agent | x6_0 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_0 = Target & (x7_1 = Box | x7_1 = BoxOnTarget) & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Left: BoxOnTarget; + x7_0 = Target & (x6_0 = Box | x6_0 = BoxOnTarget) & (x5_0 = Agent | x5_0 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_0 = AgentOnTarget & (x7_1 = Free | x7_1 = Target) & move = Right: Target; + x7_0 = AgentOnTarget & (x6_0 = Free | x6_0 = Target) & move = Up : Target; + TRUE : x7_0; + esac; + next(x7_1) := case + x7_1 = Wall: Wall; + x7_1 = Free & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Left: Agent; + x7_1 = Free & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Right : Agent; + x7_1 = Free & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Down : Agent; + x7_1 = Free & (x7_2 = Box | x7_2 = BoxOnTarget) & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Left: Box; + x7_1 = Free & (x6_1 = Box | x6_1 = BoxOnTarget) & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Down : Box; + x7_1 = Agent & (x7_2 = Free | x7_2 = Target) & move = Right: Free; + x7_1 = Agent & (x7_0 = Free | x7_0 = Target) & move = Left : Free; + x7_1 = Agent & (x6_1= Free | x6_1 = Target) & move = Up : Free; + x7_1 = Agent & (x7_2 = Box | x7_2 = BoxOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Right: Free; + x7_1 = Agent & (x6_1 = Box | x6_1 = BoxOnTarget) & (x5_1 = Free | x5_1 = Target) & move = Up: Free; + x7_1 = Box & (x7_2 = Agent | x7_2 = AgentOnTarget) & (x7_0 = Free | x7_0 = Target) & move = Left: Agent; + x7_1 = Box & (x7_0 = Agent | x7_0 = AgentOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Right : Agent; + x7_1 = Target & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Left: AgentOnTarget; + x7_1 = Target & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Right : AgentOnTarget; + x7_1 = Target & (x6_1 = Agent | x6_1 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_1 = Target & (x7_2 = Box | x7_2 = BoxOnTarget) & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Left: BoxOnTarget; + x7_1 = Target & (x6_1 = Box | x6_1 = BoxOnTarget) & (x5_1 = Agent | x5_1 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_1 = AgentOnTarget & (x7_2 = Free | x7_2 = Target) & move = Right: Target; + x7_1 = AgentOnTarget & (x7_0 = Free | x7_0 = Target) & move = Left : Target; + x7_1 = AgentOnTarget & (x6_1 = Free | x6_1 = Target) & move = Up : Target; + x7_1 = BoxOnTarget & (x7_2 = Agent | x7_2 = AgentOnTarget) & (x7_0 = Free | x7_0 = Target) & move = Left: AgentOnTarget; + x7_1 = BoxOnTarget & (x7_0 = Agent | x7_0 = AgentOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Right : AgentOnTarget; + TRUE : x7_1; + esac; + next(x7_2) := case + x7_2 = Wall: Wall; + x7_2 = Free & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Left: Agent; + x7_2 = Free & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Right : Agent; + x7_2 = Free & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Down : Agent; + x7_2 = Free & (x7_3 = Box | x7_3 = BoxOnTarget) & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Left: Box; + x7_2 = Free & (x7_1 = Box | x7_1 = BoxOnTarget) & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Right : Box; + x7_2 = Free & (x6_2 = Box | x6_2 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Down : Box; + x7_2 = Agent & (x7_3 = Free | x7_3 = Target) & move = Right: Free; + x7_2 = Agent & (x7_1 = Free | x7_1 = Target) & move = Left : Free; + x7_2 = Agent & (x6_2= Free | x6_2 = Target) & move = Up : Free; + x7_2 = Agent & (x7_3 = Box | x7_3 = BoxOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Right: Free; + x7_2 = Agent & (x7_1 = Box | x7_1 = BoxOnTarget) & (x7_0 = Free | x7_0 = Target) & move = Left: Free; + x7_2 = Agent & (x6_2 = Box | x6_2 = BoxOnTarget) & (x5_2 = Free | x5_2 = Target) & move = Up: Free; + x7_2 = Box & (x7_3 = Agent | x7_3 = AgentOnTarget) & (x7_1 = Free | x7_1 = Target) & move = Left: Agent; + x7_2 = Box & (x7_1 = Agent | x7_1 = AgentOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Right : Agent; + x7_2 = Target & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Left: AgentOnTarget; + x7_2 = Target & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Right : AgentOnTarget; + x7_2 = Target & (x6_2 = Agent | x6_2 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_2 = Target & (x7_3 = Box | x7_3 = BoxOnTarget) & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Left: BoxOnTarget; + x7_2 = Target & (x7_1 = Box | x7_1 = BoxOnTarget) & (x7_0 = Agent | x7_0 = AgentOnTarget) & move = Right : BoxOnTarget; + x7_2 = Target & (x6_2 = Box | x6_2 = BoxOnTarget) & (x5_2 = Agent | x5_2 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_2 = AgentOnTarget & (x7_3 = Free | x7_3 = Target) & move = Right: Target; + x7_2 = AgentOnTarget & (x7_1 = Free | x7_1 = Target) & move = Left : Target; + x7_2 = AgentOnTarget & (x6_2 = Free | x6_2 = Target) & move = Up : Target; + x7_2 = BoxOnTarget & (x7_3 = Agent | x7_3 = AgentOnTarget) & (x7_1 = Free | x7_1 = Target) & move = Left: AgentOnTarget; + x7_2 = BoxOnTarget & (x7_1 = Agent | x7_1 = AgentOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Right : AgentOnTarget; + TRUE : x7_2; + esac; + next(x7_3) := case + x7_3 = Wall: Wall; + x7_3 = Free & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Left: Agent; + x7_3 = Free & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Right : Agent; + x7_3 = Free & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Down : Agent; + x7_3 = Free & (x7_4 = Box | x7_4 = BoxOnTarget) & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Left: Box; + x7_3 = Free & (x7_2 = Box | x7_2 = BoxOnTarget) & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Right : Box; + x7_3 = Free & (x6_3 = Box | x6_3 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Down : Box; + x7_3 = Agent & (x7_4 = Free | x7_4 = Target) & move = Right: Free; + x7_3 = Agent & (x7_2 = Free | x7_2 = Target) & move = Left : Free; + x7_3 = Agent & (x6_3= Free | x6_3 = Target) & move = Up : Free; + x7_3 = Agent & (x7_4 = Box | x7_4 = BoxOnTarget) & (x7_5 = Free | x7_5 = Target) & move = Right: Free; + x7_3 = Agent & (x7_2 = Box | x7_2 = BoxOnTarget) & (x7_1 = Free | x7_1 = Target) & move = Left: Free; + x7_3 = Agent & (x6_3 = Box | x6_3 = BoxOnTarget) & (x5_3 = Free | x5_3 = Target) & move = Up: Free; + x7_3 = Box & (x7_4 = Agent | x7_4 = AgentOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Left: Agent; + x7_3 = Box & (x7_2 = Agent | x7_2 = AgentOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Right : Agent; + x7_3 = Target & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Left: AgentOnTarget; + x7_3 = Target & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Right : AgentOnTarget; + x7_3 = Target & (x6_3 = Agent | x6_3 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_3 = Target & (x7_4 = Box | x7_4 = BoxOnTarget) & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Left: BoxOnTarget; + x7_3 = Target & (x7_2 = Box | x7_2 = BoxOnTarget) & (x7_1 = Agent | x7_1 = AgentOnTarget) & move = Right : BoxOnTarget; + x7_3 = Target & (x6_3 = Box | x6_3 = BoxOnTarget) & (x5_3 = Agent | x5_3 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_3 = AgentOnTarget & (x7_4 = Free | x7_4 = Target) & move = Right: Target; + x7_3 = AgentOnTarget & (x7_2 = Free | x7_2 = Target) & move = Left : Target; + x7_3 = AgentOnTarget & (x6_3 = Free | x6_3 = Target) & move = Up : Target; + x7_3 = BoxOnTarget & (x7_4 = Agent | x7_4 = AgentOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Left: AgentOnTarget; + x7_3 = BoxOnTarget & (x7_2 = Agent | x7_2 = AgentOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Right : AgentOnTarget; + TRUE : x7_3; + esac; + next(x7_4) := case + x7_4 = Wall: Wall; + x7_4 = Free & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Left: Agent; + x7_4 = Free & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Right : Agent; + x7_4 = Free & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Down : Agent; + x7_4 = Free & (x7_5 = Box | x7_5 = BoxOnTarget) & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Left: Box; + x7_4 = Free & (x7_3 = Box | x7_3 = BoxOnTarget) & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Right : Box; + x7_4 = Free & (x6_4 = Box | x6_4 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Down : Box; + x7_4 = Agent & (x7_5 = Free | x7_5 = Target) & move = Right: Free; + x7_4 = Agent & (x7_3 = Free | x7_3 = Target) & move = Left : Free; + x7_4 = Agent & (x6_4= Free | x6_4 = Target) & move = Up : Free; + x7_4 = Agent & (x7_5 = Box | x7_5 = BoxOnTarget) & (x7_6 = Free | x7_6 = Target) & move = Right: Free; + x7_4 = Agent & (x7_3 = Box | x7_3 = BoxOnTarget) & (x7_2 = Free | x7_2 = Target) & move = Left: Free; + x7_4 = Agent & (x6_4 = Box | x6_4 = BoxOnTarget) & (x5_4 = Free | x5_4 = Target) & move = Up: Free; + x7_4 = Box & (x7_5 = Agent | x7_5 = AgentOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Left: Agent; + x7_4 = Box & (x7_3 = Agent | x7_3 = AgentOnTarget) & (x7_5 = Free | x7_5 = Target) & move = Right : Agent; + x7_4 = Target & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Left: AgentOnTarget; + x7_4 = Target & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Right : AgentOnTarget; + x7_4 = Target & (x6_4 = Agent | x6_4 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_4 = Target & (x7_5 = Box | x7_5 = BoxOnTarget) & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Left: BoxOnTarget; + x7_4 = Target & (x7_3 = Box | x7_3 = BoxOnTarget) & (x7_2 = Agent | x7_2 = AgentOnTarget) & move = Right : BoxOnTarget; + x7_4 = Target & (x6_4 = Box | x6_4 = BoxOnTarget) & (x5_4 = Agent | x5_4 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_4 = AgentOnTarget & (x7_5 = Free | x7_5 = Target) & move = Right: Target; + x7_4 = AgentOnTarget & (x7_3 = Free | x7_3 = Target) & move = Left : Target; + x7_4 = AgentOnTarget & (x6_4 = Free | x6_4 = Target) & move = Up : Target; + x7_4 = BoxOnTarget & (x7_5 = Agent | x7_5 = AgentOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Left: AgentOnTarget; + x7_4 = BoxOnTarget & (x7_3 = Agent | x7_3 = AgentOnTarget) & (x7_5 = Free | x7_5 = Target) & move = Right : AgentOnTarget; + TRUE : x7_4; + esac; + next(x7_5) := case + x7_5 = Wall: Wall; + x7_5 = Free & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Left: Agent; + x7_5 = Free & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Right : Agent; + x7_5 = Free & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Down : Agent; + x7_5 = Free & (x7_4 = Box | x7_4 = BoxOnTarget) & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Right : Box; + x7_5 = Free & (x6_5 = Box | x6_5 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Down : Box; + x7_5 = Agent & (x7_6 = Free | x7_6 = Target) & move = Right: Free; + x7_5 = Agent & (x7_4 = Free | x7_4 = Target) & move = Left : Free; + x7_5 = Agent & (x6_5= Free | x6_5 = Target) & move = Up : Free; + x7_5 = Agent & (x7_4 = Box | x7_4 = BoxOnTarget) & (x7_3 = Free | x7_3 = Target) & move = Left: Free; + x7_5 = Agent & (x6_5 = Box | x6_5 = BoxOnTarget) & (x5_5 = Free | x5_5 = Target) & move = Up: Free; + x7_5 = Box & (x7_6 = Agent | x7_6 = AgentOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Left: Agent; + x7_5 = Box & (x7_4 = Agent | x7_4 = AgentOnTarget) & (x7_6 = Free | x7_6 = Target) & move = Right : Agent; + x7_5 = Target & (x7_6 = Agent | x7_6 = AgentOnTarget) & move = Left: AgentOnTarget; + x7_5 = Target & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Right : AgentOnTarget; + x7_5 = Target & (x6_5 = Agent | x6_5 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_5 = Target & (x7_4 = Box | x7_4 = BoxOnTarget) & (x7_3 = Agent | x7_3 = AgentOnTarget) & move = Right : BoxOnTarget; + x7_5 = Target & (x6_5 = Box | x6_5 = BoxOnTarget) & (x5_5 = Agent | x5_5 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_5 = AgentOnTarget & (x7_6 = Free | x7_6 = Target) & move = Right: Target; + x7_5 = AgentOnTarget & (x7_4 = Free | x7_4 = Target) & move = Left : Target; + x7_5 = AgentOnTarget & (x6_5 = Free | x6_5 = Target) & move = Up : Target; + x7_5 = BoxOnTarget & (x7_6 = Agent | x7_6 = AgentOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Left: AgentOnTarget; + x7_5 = BoxOnTarget & (x7_4 = Agent | x7_4 = AgentOnTarget) & (x7_6 = Free | x7_6 = Target) & move = Right : AgentOnTarget; + TRUE : x7_5; + esac; + next(x7_6) := case + x7_6 = Wall: Wall; + x7_6 = Free & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Right : Agent; + x7_6 = Free & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Down : Agent; + x7_6 = Free & (x7_5 = Box | x7_5 = BoxOnTarget) & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Right : Box; + x7_6 = Free & (x6_6 = Box | x6_6 = BoxOnTarget) & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Down : Box; + x7_6 = Agent & (x7_5 = Free | x7_5 = Target) & move = Left : Free; + x7_6 = Agent & (x6_6= Free | x6_6 = Target) & move = Up : Free; + x7_6 = Agent & (x7_5 = Box | x7_5 = BoxOnTarget) & (x7_4 = Free | x7_4 = Target) & move = Left: Free; + x7_6 = Agent & (x6_6 = Box | x6_6 = BoxOnTarget) & (x5_6 = Free | x5_6 = Target) & move = Up: Free; + x7_6 = Target & (x7_5 = Agent | x7_5 = AgentOnTarget) & move = Right : AgentOnTarget; + x7_6 = Target & (x6_6 = Agent | x6_6 = AgentOnTarget) & move = Down : AgentOnTarget; + x7_6 = Target & (x7_5 = Box | x7_5 = BoxOnTarget) & (x7_4 = Agent | x7_4 = AgentOnTarget) & move = Right : BoxOnTarget; + x7_6 = Target & (x6_6 = Box | x6_6 = BoxOnTarget) & (x5_6 = Agent | x5_6 = AgentOnTarget) & move = Down : BoxOnTarget; + x7_6 = AgentOnTarget & (x7_5 = Free | x7_5 = Target) & move = Left : Target; + x7_6 = AgentOnTarget & (x6_6 = Free | x6_6 = Target) & move = Up : Target; + TRUE : x7_6; + esac; + next(move) := {Up, Down, Left, Right}; +INVARSPEC !( +x2_4 = BoxOnTarget & +x2_5 = BoxOnTarget & +x3_3 = BoxOnTarget +) \ No newline at end of file