New in Version

Released 15 Jun 2026

New features

  • Users can build an arbitrary unary operation by writing a function of the form void F(const rangeval &in, rangeval &out), creating an instance of object user_unary_factory (passing a name and the custom function to the constructor), and then using apply on that object. See the test file tests/ops_user_un.cc.

Interface Changes

  • Built-in operations REACHABLE_STATES_BFS and REVERSE_REACHABLE_BFS are deprecated; use instead REACHABLE_TRAD_NOFS(true) and REACHABLE_TRAD_NOFS(false), respectively.

  • Built-in operations REACHABLE_STATES_DFS and REVERSE_REACHABLE_DFS are deprecated; use instead REACHABLE_SATUR(true) and REACHABLE_SATUR(false), respectively. A second argument may be passed to these functions, to specify the version number of saturation. Currently, only version 1 is supported.

  • To read a domain from a file, method domain::read() has been replaced by an overloaded static method domain::create().

  • Added bogus built-in unary and binary operations, that always fail. The idea is to use these when an operation (or factory) is required, but there really isn’t one.

Implementation

  • The COPY operation will use relation nodes in some cases. This will allow conversions from implicit representations once those implementations are migrated over.

Updated: