HUCTLp / com.github.sybila.huctl / Temporal

Temporal

interface Temporal<out This : Formula> : Unary<This, Formula>

Common interface for temporal Formulas.

Properties

direction abstract val direction: DirFormula

Specifies the direction requirement expected from the selected paths.

quantifier abstract val quantifier: PathQuantifier

Specifies the condition for selecting paths originating in the inspected state.

Inherited Properties

inner abstract val inner: Tree

The singular child element of this object.

Functions

copy abstract fun copy(quantifier: PathQuantifier = this.quantifier, inner: Formula = this.inner, direction: DirFormula = this.direction): This

Create a copy of the original object, but optionally replace some of the elements.

Extension Functions

fold fun <Tree : TreeNode<Tree>, R> TreeNode<Tree>.fold(atom: Tree.() -> R, unary: Unary<*, Tree>.(R) -> R, binary: Binary<*, Tree>.(R, R) -> R): R

Standard tree fold. You can provide transformation operations for atoms, unary and binary nodes.

map fun <Tree : TreeNode<Tree>> TreeNode<Tree>.map(atom: Tree.() -> Tree = { this }, unary: Unary<Tree, Tree>.(Tree) -> Tree = { this.copy(inner = it) }, binary: Binary<Tree, Tree>.(Tree, Tree) -> Tree = { left, right -> this.copy(left, right)}): Tree

Change tree structure while preserving tree type. You can provide transformation operations for atoms, unary and binary nodes. The only requirement is that operations don't change the type of the tree.

Inheritors

Future data class Future : Formula, Temporal<Future>

Temporal future (F) operator. A state satisfies future if the paths specified by the quantifier match the direction and eventually satisfy the inner formula.

Globally data class Globally : Formula, Temporal<Globally>

Temporal globally (G) operator. A state satisfies globally if the paths specified by the quantifier match the direction and always satisfy the inner formula.

Next data class Next : Formula, Temporal<Next>

Temporal next (X) operator. A state satisfies next, if direct successors specified by the quantifier match the direction and satisfy the inner formula.

WeakFuture data class WeakFuture : Formula, Temporal<WeakFuture>

Weak temporal future (wF) operator. A state satisfying weak future when all paths (specified by the quantifier) that match the direction also satisfy the inner formula.

WeakNext data class WeakNext : Formula, Temporal<WeakNext>

Weak temporal next (wX) operator. A state satisfies weak next when all successors (specified by the quantifier) that match the direction also satisfy the inner formula.