Operations with no arguments
Operations with exactly one argument
Operations with exactly two argument
Operations with exactly three argument
Operations with variable number of arguments, requiring that the number of arguments is greater than least numRequired
Operations with variable number of arguments, none required
Operations with variable number of arguments, at least one required
Operations with variable number of arguments, at least two required
Operations with variable number of arguments, at least three required
General patterns for building and extracting FunctionApplication in theories.
Most SMT-LIB theories are a definition of many built-in functions. We do not wish to extend the core abstract syntax tree of SMT-LIB with theory specific operations, so a theory definition is simply providing Constructors and Extractors to build the proper trees out of core SMT-LIB FunctionApplication and Identifier.
this object provides traits to facilitate the definition of custom FunctionApplication with apply and unapply methods. They provide the proper signatures for different arities.
Refer to any theory definition to see examples of how to use these traits.