#include <ltlvisit/randomltl.hh>
Collaboration diagram for spot::ltl::random_ltl:
Public Member Functions | |
random_ltl (const atomic_prop_set *ap) | |
Create a random LTL generator using atomic propositions from ap. | |
~random_ltl () | |
formula * | generate (int n) const |
Generate a formula of size n. | |
std::ostream & | dump_priorities (std::ostream &os) const |
Print the priorities of each operator, constants, and atomic propositions. | |
const char * | parse_options (char *options) |
Update the priorities used to generate LTL formulae. | |
const atomic_prop_set * | ap () const |
Return the set of atomic proposition used to build formulae. | |
Protected Member Functions | |
void | update_sums () |
Private Attributes | |
op_proba * | proba_ |
double | total_1_ |
op_proba * | proba_2_ |
double | total_2_ |
double | total_2_and_more_ |
const atomic_prop_set * | ap_ |
Classes | |
struct | op_proba |
This class recursively construct LTL formulae of a given size. The formulae will use the use atomic propositions from the set of proposition passed to the constructor, in addition to the constant and all LTL operators supported by Spot.
By default each operator has equal chance to be selected. Also, each atomic proposition has as much chance as each constant (i.e., true and false) to be picked. This can be tuned using parse_options().
|
Create a random LTL generator using atomic propositions from ap.
|
|
|
|
Return the set of atomic proposition used to build formulae.
|
|
Print the priorities of each operator, constants, and atomic propositions.
|
|
Generate a formula of size n.
It is possible to obtain formulae that are smaller than n, because some simple simplifications are performed by the AST. (For instance the formula
Furthermore, for the purpose of this generator, |
|
Update the priorities used to generate LTL formulae. The initial priorities are as follows.
ap n false 1 true 1 not 1 F 1 G 1 X 1 equiv 1 implies 1 xor 1 R 1 U 1 and 1 or 1
Where This means that each operator has equal chance to be selected. Also, each atomic proposition has as much chance as each constant (i.e., true and false) to be picked. This can be
These priorities can be altered using this function. options should be comma-separated list of KEY=VALUE assignments, using keys from the above list. For instance |
|
|
|
|
|
|
|
|
|
|
|
|
|
|