{
    "MiniGrid-BlockedUnlockPickup-v0": [
        {
            "advice": "pick up the key if door is locked",
            "grounding": "Policy",
            "rlang": "Policy main:\n    if at(yellow_key) and yellow_door.is_closed:\n        Execute pickup\n    elif at_any(yellow_key) and yellow_door.is_closed:\n        Execute go_to(yellow_key)"
        },
        {
            "advice": "a key can open a locked door",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at(yellow_door) and in_inventory(yellow_key):\n        toggle(yellow_door)\n        Reward 1"
        }
    ],
    "MiniGrid-DistShift1-v0": [
        {
            "advice": "never step on lava",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at_any(Lava) and A == forward:\n        Reward -1"
        },
        {
            "advice": "go to the goal",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(goal)"
        }
    ],
    "MiniGrid-Dynamic-Obstacles-5x5-v0": [
        {
            "advice": "avoid the obstacles",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at_any(Wall) or at_any(Lava) or at_any(Ball):\n        Reward -1"
        },
        {
            "advice": "go to the goal",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(goal)"
        }
    ],
    "MiniGrid-LavaCrossingS11N5-v0": [
        {
            "advice": "go to the goal",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(goal)"
        },
        {
            "advice": "don't walk into lava",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at_any(Lava) and A == forward:\n        Reward -1"
        }
    ],
    "MiniGrid-MemoryS11-v0": [
        {
            "advice": "don't pickup the key",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at(green_key) and not in_inventory(green_key):\n        Reward -1"
        },
        {
            "advice": "walk to the left at first",
            "grounding": "Policy",
            "rlang": "Policy main:\n    if pointing_right():\n        Execute go_to(left)\n    elif not pointing_right():\n        Execute pointing_right()"
        },
        {
            "advice": "move to the left",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute left"
        },
        {
            "advice": "move to the left",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute step_towards(left)"
        },
        {
            "advice": "move to the left",
            "grounding": "Policy",
            "rlang": "Policy main:\n    if at(green_key):\n        Execute pickup\n    else:\n        Execute go_to(\"left\")"
        },
        {
            "advice": "move to the left until you see a ball or a key",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Set agent pointing_left\n    While not at_any(green_key, green_ball):\n        Execute step_towards(left)\n    If is_on_a(green_key):\n        Execute pickup\n    Else:\n        Execute done"
        },
        {
            "advice": "pick up the green ball if there are two green ball",
            "grounding": "Policy",
            "rlang": "Policy main:\n    if at_any(green_ball):\n    if at_any(green_ball, 2):\n        Execute pickup(green_ball)\n    else:\n        Execute done"
        }
    ],
    "MiniGrid-RedBlueDoors-6x6-v0": [
        {
            "advice": "go to red door before blue door",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(blue_door)\n    Execute toggle"
        },
        {
            "advice": "go to red door",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(red_door)"
        },
        {
            "advice": "don't go to blue door before red door",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(blue_door)\n    Execute toggle"
        },
        {
            "advice": "never go to blue door first",
            "grounding": "Policy",
            "rlang": "Policy main:\n    if at(red_door) or at(blue_door):\n        Execute go_to(GoalTile)\n    elif not at(red_door) and not at(blue_door):\n        Execute step_towards(GoalTile)"
        }
    ],
    "MiniGrid-Unlock-v0": [
        {
            "advice": "pick up the key",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(purple_key)\n    Execute pickup"
        },
        {
            "advice": "a key can open a door",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at(purple_door) and not purple_door.is_open and in_inventory(purple_key):\n        toggle(purple_door)\n        Reward +1"
        }
    ],
    "MiniGrid-LockedRoom-v0": [
        {
            "advice": "remember to toggle to open doors.",
            "grounding": "Policy",
            "rlang": "Policy main:\n    if carrying(red_key) and at(red_door) and not red_door.is_open:\n        Execute toggle"
        },
        {
            "advice": "you don't need carry keys to open the grey door.",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at(grey_door) and carrying(red_key):\n        Reward -1\n        S' -> S\n    elif at(grey_door) and carrying_something():\n        Reward -1\n        S' -> S"
        },
        {
            "advice": "Identify the room with the red key, move to that room by opening the door. Pick up the key. Identify the room with the red door, proceed there. Open the red door. Find the green square and go there to finish the game.",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(red_key)\n    Execute pickup\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(goal)"
        },
        {
            "advice": "Move to the grey door, open it and enter the room until you get to the red key, pick it up. Exit the room and move towards the red door, open it and get into that room. Move to the green block and enter it.",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(grey_door)\n    Execute toggle\n    Execute go_to(red_key)\n    Execute pickup\n    Execute go_to(grey_door)\n    Execute toggle\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(goal)"
        },
        {
            "advice": "go to the grey door. open the grey door. go to the red key. pick up the red key. go to the red door. open the red door. go to the green square.",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(grey_door)\n    Execute toggle\n    Execute go_to(red_key)\n    Execute pickup\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(goal)"
        },
        {
            "advice": "pick up the red key after opening the grey door. Then walk to the red door, open it, and go to the goal.",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(grey_door)\n    Execute toggle\n    Execute go_to(red_key)\n    Execute pickup\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(goal)"
        },
        {
            "advice": "You cannot open the red door without a red key.",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at(red_door) and not carrying(red_key):\n        Reward -1\n        S' -> S"
        },
        {
            "advice": "Walking towards the red door is not very useful if it is closed.",
            "grounding": "Effect",
            "rlang": "Effect main:\n    if at(red_door) and A == forward and not(red_door.is_open):\n        Reward -1\n        S' -> S"
        },
        {
            "advice": "Go down until the second door on  the left and pick up the key. Then exit the room and go down until the next door on the left and use it to open the door and get to the green box.",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(second_left_door)\n    Execute pickup\n    Execute go_to(exit)\n    Execute go_to(next_left_door)\n    Execute toggle\n    Execute go_to(green_box)"
        },
        {
            "advice": "Go to the room that has the red key, pick it up, and then go to the room with a red door. Enter the room, and go to the green goal object. .",
            "grounding": "Plan",
            "rlang": "Plan main:\n    Execute go_to(red_key)\n    Execute pickup\n    Execute go_to(red_door)\n    Execute toggle\n    Execute go_to(goal)"
        }
    ]
}
