def goal_conditions_for_demo(demo: Demonstration, behaviors: Any) -> List[str]:
    '\n    Infer the goal conditions of a single demonstration.\n\n    Args\n    ----\n        demo: the demonstration to infer the goal of.\n        behavior: check the behavior to remove conflicting conditions.\n\n    Returns\n    -------\n        goals: list of the goals inferred in the demonstration.\n\n    '
    goals = []
    for i in range((len(demo) - 1), (- 1), (- 1)):
        for condition in demo[i].postconditions():
            if ((condition not in goals) and (not contains_conflicting(behaviors, goals, condition))):
                goals.append(condition)
    goals.reverse()
    return goals
Infer the goal conditions of a single demonstration.

Args
----
    demo: the demonstration to infer the goal of.
    behavior: check the behavior to remove conflicting conditions.

Returns
-------
    goals: list of the goals inferred in the demonstration.
def goal_conditions_for_demo(demo: Demonstration, behaviors: Any) -> List[str]:
    '\n    Infer the goal conditions of a single demonstration.\n\n    Args\n    ----\n        demo: the demonstration to infer the goal of.\n        behavior: check the behavior to remove conflicting conditions.\n\n    Returns\n    -------\n        goals: list of the goals inferred in the demonstration.\n\n    '
    goals = []
    for i in range((len(demo) - 1), (- 1), (- 1)):
        for condition in demo[i].postconditions():
            if ((condition not in goals) and (not contains_conflicting(behaviors, goals, condition))):
                goals.append(condition)
    goals.reverse()
    return goals