Skip to content

Constraints

Victor Mataré edited this page Dec 19, 2020 · 19 revisions

Taptenc Semantics

With the taptenc semantics, we can process constraints of the following forms:

Constraint ::= ActionFormula ":" StateFormula

ActionFormula ::= Hook "(" ActionSpec ")"
    | ActionFormula "|" ActionFormula
    | "during" "(" ActionSpec ")"
Hook ::= "start" | "end" | "finish" | "fail" | "cancel"
ActionSpec ::= ActionName "(" [ ActionArgs ] ")"
ActionArgs ::= "*" | Value [ "," ActionArgs ]

StateFormula ::= AtomicSF 
    | UnaryOp AtomicSF
    | AtomicSF BinaryOp AtomicSF
AtomicSF ::= "state" "(" Component ")"
    | AtomicSF "|" AtomicSF
    | "!" AtomicSF
UnaryOp ::= "future" | "past"

BinaryOp ::= "until" | "since"

Note that the general golog++ constraint syntax is less restrictive than this, so more powerful platform semantics can be implemented without extending the parser.

Clone this wiki locally