resources / logic tool
Situation tree viewer
1
Fluents and initial situation
2
Action axioms
Use fluent names with !, &, |, ->, and parentheses. Empty means true.
Each T/-/F row below edits the successor-state axiom cases for that action.
3
Generated axioms
Precondition axioms
Poss(load, s) <-> !part_loadedPoss(drill, s) <-> part_loaded & !drilledPoss(inspect, s) <-> drilled & !inspectedPoss(release, s) <-> inspected & !releasedSuccessor-state axioms
part_loaded(do(a, s)) <-> ((a = load and !part_loaded)) or (part_loaded(s) and not ((a = release and inspected & !released)))drilled(do(a, s)) <-> ((a = drill and part_loaded & !drilled)) or (drilled(s) and not ((a = load and !part_loaded)))inspected(do(a, s)) <-> ((a = inspect and drilled & !inspected)) or (inspected(s) and not ((a = load and !part_loaded)))released(do(a, s)) <-> ((a = release and inspected & !released)) or (released(s) and not ((a = load and !part_loaded)))4
Finite situation tree
S0
Selected situation
S0Executable actions
+part_loaded -drilled -inspected -releasedWhat this visualisation is showing
This is a small situation calculus visualisation tool. You describe a miniature action theory by naming fluents, setting the initial situation, writing action preconditions, and choosing the successor-state axiom cases that say how each action changes each fluent. The generated axioms and the finite situation tree update from that model.
In situation calculus, a situation represents a history of actions. The initial situation is usually written as S0, and doing an action a in a situation s creates the next situation, do(a, s). Fluents are facts whose truth can vary by situation, such as part_loaded(s) or released(s), while Poss(a, s) records when an action is executable.
The important persistence rule is the successor-state axiom: for each fluent, it states exactly when that fluent is true after an action. In this tool, T means the action makes the fluent true, F means it makes the fluent false, and - means inertia carries the previous value forward unless another case changes it.