21#include <spot/tl/apcollect.hh>
24#include <unordered_set>
25#include <spot/misc/optionmap.hh>
26#include <spot/misc/hash.hh>
27#include <spot/tl/simplify.hh>
41 std::function<
bool(
formula)> is_output =
nullptr):
42 proba_size_(proba_size), proba_(new
op_proba[proba_size_]), ap_(
ap),
43 output_ap_(output_ap), is_output_(is_output)
79 return draw_literals_;
114 return total_2_ > 0.0;
132 void setup(
const char* name,
int min_n, builder build);
148 std::function<bool(
formula)> is_output_ =
nullptr;
209 std::function<
bool(
formula)> is_output =
nullptr,
218 std::function<
bool(
formula)> is_output =
nullptr);
266 std::function<
bool(
formula)> is_output =
nullptr,
376 typedef std::unordered_set<formula> fset_t;
383 static constexpr unsigned MAX_TRIALS = 100000U;
387 const char* opt_pL =
nullptr,
388 const char* opt_pS =
nullptr,
389 const char* opt_pB =
nullptr,
391 std::function<
bool(
formula)> is_output =
nullptr);
395 const char* opt_pL =
nullptr,
396 const char* opt_pS =
nullptr,
397 const char* opt_pB =
nullptr,
399 std::function<
bool(
formula)> is_output =
nullptr);
428 int opt_tree_size_min_;
429 int opt_tree_size_max_;
Manage a map of options.
Definition optionmap.hh:34
Generator of random LTL/PSL/SERE/Boolean formulas with configurable options.
Definition randomltl.hh:375
void dump_sere_bool_priorities(std::ostream &os)
Print SERE Boolean operator priorities to os.
randltlgenerator(int aprops_n, const option_map &opts, const char *opt_pL=nullptr, const char *opt_pS=nullptr, const char *opt_pB=nullptr, const atomic_prop_set *subformulas=nullptr, std::function< bool(formula)> is_output=nullptr)
Construct with aprops_n random atomic propositions.
output_type
Output formula type produced by the generator.
Definition randomltl.hh:381
formula next()
Generate the next random formula (up to MAX_TRIALS attempts).
void dump_psl_priorities(std::ostream &os)
Print PSL operator priorities to os.
void dump_sere_priorities(std::ostream &os)
Print SERE operator priorities to os.
void remove_some_props(atomic_prop_set &s)
Remove some propositions from s (used for well-formed generation).
void dump_bool_priorities(std::ostream &os)
Print Boolean operator priorities to os.
void dump_ltl_priorities(std::ostream &os)
Print LTL operator priorities to os.
randltlgenerator(atomic_prop_set aprops, const option_map &opts, const char *opt_pL=nullptr, const char *opt_pS=nullptr, const char *opt_pB=nullptr, const atomic_prop_set *subformulas=nullptr, std::function< bool(formula)> is_output=nullptr)
Construct with an explicit set of atomic propositions.
formula GF_n()
Return a GF(p1 & ... & pn) formula over n random propositions.
Generate random Boolean formulas.
Definition randomltl.hh:231
random_boolean(const atomic_prop_set *ap, const atomic_prop_set *output_ap=nullptr, std::function< bool(formula)> is_output=nullptr, const atomic_prop_set *subformulas=nullptr)
Generate random LTL formulas.
Definition randomltl.hh:166
void setup_proba_(const atomic_prop_set *patterns)
Initialize the probability table, optionally using patterns as atoms.
random_ltl(const atomic_prop_set *ap, const atomic_prop_set *output_ap=nullptr, std::function< bool(formula)> is_output=nullptr, const atomic_prop_set *subformulas=nullptr)
random_ltl(int size, const atomic_prop_set *ap, const atomic_prop_set *output_ap=nullptr, std::function< bool(formula)> is_output=nullptr)
Construct with explicit table size (for subclasses).
Generate random PSL formulas.
Definition randomltl.hh:322
random_sere rs
The SERE generator used to generate SERE subformulas.
Definition randomltl.hh:369
random_psl(const atomic_prop_set *ap)
Generate random SERE.
Definition randomltl.hh:280
random_boolean rb
The Boolean formula generator used to build Boolean sub-expressions.
Definition randomltl.hh:311
random_sere(const atomic_prop_set *ap)
Options controlling which simplification passes the tl_simplifier applies.
Definition simplify.hh:34
Rewrite or simplify f in various ways.
Definition simplify.hh:145
std::set< formula > atomic_prop_set
Set of atomic propositions.
Definition apcollect.hh:34
Definition automata.hh:26