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 )