ProB has (limited) support for theories.
Currently supported are (examples refer to the theory project below):
Axiomatically defined operators are not supported without additional annotations.
An example project with theories: media:theories2.zip
TODO: A description of the supported parts.
ProB has some extra support for certain operators. ProB expects an annotation to an operator that provides the information that it should use a specific implementation for an operator. Such tags are given in a .ptm file (ProB Theory Mapping). The file must have the same name as the theory.
For each annotated operator, the file contains a line of the form
operator Name internal {Tag}
where Name is the name of the operator in the theory and Tag is a ProB internal name.
The use of these tags is usually for experts only. In the theory file below, some of the theories are annotated.
Currently are the following tags supported:
Tag | Description | Expected type |
---|---|---|
closure1 | the transitive closure | POW(T**T) |
SIGMA | the sum of a set | POW(T**INT) |
PI | the product of a set | POW(T**INT) |
mu | ||
choose | ||
mkinat(op1,op2) |
TODO: to be continued...