part_loaded
drilled
inspected
released
resources / logic tool
1
2
Use fluent names with !, &, |, ->, and parentheses. Empty means true.
3
Poss(load, s) <-> !part_loadedPoss(drill, s) <-> part_loaded & !drilledPoss(inspect, s) <-> drilled & !inspectedPoss(release, s) <-> inspected & !releasedpart_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
S0
S0+part_loaded -drilled -inspected -released