Components¶
BehaVerify supports the standard modern-BT node taxonomy: composite, decorator, and leaf. This page lists the node kinds accepted by the DSL, their semantics, and the code each backend emits for them.
Composite nodes¶
Kind |
DSL keyword |
Semantics |
|---|---|---|
Sequence |
|
Tick children left-to-right; return |
Selector (fallback) |
|
Tick children left-to-right; return |
Parallel |
|
Tick all children; return |
Every composite may carry a memory flag:
(no flag) – no memory: each tick restarts from the first child.
with_partial_memory– on re-tick, resume after the lastrunningchild.with_true_memory– additionally remembersuccess/failureof already-evaluated children.
Decorator nodes¶
Kind |
DSL keyword |
Semantics |
|---|---|---|
Status overrider |
|
Re-map the child’s status: |
Inverter |
|
Swap |
Repeat |
|
Tick the child up to |
One-shot |
|
After the chosen terminal status, freeze the node. |
Leaf nodes¶
Kind |
DSL keyword |
Semantics |
|---|---|---|
Check |
|
Evaluate a boolean condition over declared read-variables;
|
Environment check |
|
Same shape but reads only environment-scope variables. |
Action |
|
Run a sequence of |
Neural action |
|
Forward-propagates an ONNX model and writes the output to the
declared |
Sub-trees¶
A sub_tree { name ... } declaration introduces a reusable named
tree fragment. Inserting a reference is syntactically separate:
sub_trees {
sub_tree { safe_stop
composite { s sequence
children { emergency_check {} brake {} } } }
}
tree {
composite { root selector children {
insert { safe_stop }
...
} }
}
Backend coverage matrix¶
The following matrix shows where each feature is supported natively by
the generation backend. A dash (--) means the feature is either
unsupported or emitted through a non-native wrapper; the upstream
TODO.md tracks the outstanding items.
Feature |
nuxmv |
python |
cpp |
haskell |
latex |
|---|---|---|---|---|---|
Sequence / Selector |
Yes |
Yes |
partial |
Yes |
Yes |
Parallel |
Yes |
Yes |
– |
Yes |
Yes |
Memory flags |
Yes |
Yes |
– |
Yes |
– |
|
Yes |
Yes |
– |
Yes |
Yes |
Repeat / One-shot |
Yes |
Yes |
– |
Yes |
Yes |
Sub-tree insertion |
Yes |
Yes |
partial |
Yes |
Yes |
Neural leaf (ONNX) |
Yes |
Yes |
partial |
Yes |
– |
See Generation Modes for the per-backend command-line reference.