spot 2.12.2
|
Classes | |
struct | spot::parsed_aut |
Result of the automaton parser. More... | |
struct | spot::automaton_parser_options |
class | spot::automaton_stream_parser |
Parse a stream of automata. More... | |
class | spot::hoa_alias_formater |
Help printing BDDs as text, using aliases. More... | |
Typedefs | |
typedef std::pair< spot::location, std::string > | spot::parse_aut_error |
A parse diagnostic with its location. More... | |
typedef std::list< parse_aut_error > | spot::parse_aut_error_list |
A list of parser diagnostics, as filled by parse. More... | |
typedef std::shared_ptr< parsed_aut > | spot::parsed_aut_ptr |
typedef std::shared_ptr< const parsed_aut > | spot::const_parsed_aut_ptr |
Enumerations | |
enum class | parsed_aut_type { HOA , NeverClaim , LBTT , DRA , DSA , PGAME , Unknown } |
Functions | |
parsed_aut_ptr | spot::parse_aut (const std::string &filename, const bdd_dict_ptr &dict, environment &env=default_environment::instance(), automaton_parser_options opts={}) |
Read the first spot::twa_graph from a file. More... | |
std::ostream & | spot::print_aiger (std::ostream &os, const_aig_ptr circuit) |
Print the aig to stream in AIGER format. More... | |
std::ostream & | spot::print_aiger (std::ostream &os, const const_twa_graph_ptr &aut, const char *mode) |
Encode and print an automaton as an AIGER circuit. More... | |
std::ostream & | spot::print_dot (std::ostream &os, const const_twa_ptr &g, const char *options=nullptr) |
Print reachable states in dot format. More... | |
std::ostream & | spot::print_hoa (std::ostream &os, const const_twa_ptr &g, const char *opt=nullptr) |
Print reachable states in Hanoi Omega Automata format. More... | |
std::vector< std::pair< std::string, bdd > > * | spot::get_aliases (const const_twa_ptr &g) |
Obtain aliases used in the HOA format. More... | |
void | spot::set_aliases (twa_ptr g, const std::vector< std::pair< std::string, bdd > > &aliases) |
Define all aliases used in the HOA format. More... | |
void | spot::create_alias_basis (const twa_graph_ptr &aut) |
Create an alias basis. More... | |
std::ostream & | spot::print_lbtt (std::ostream &os, const const_twa_ptr &g, const char *opt=nullptr) |
Print reachable states in LBTT's format. More... | |
std::ostream & | spot::print_never_claim (std::ostream &os, const const_twa_ptr &g, const char *opt=nullptr) |
Print reachable states in Spin never claim format. More... | |
typedef std::pair<spot::location, std::string> spot::parse_aut_error |
#include <spot/parseaut/public.hh>
A parse diagnostic with its location.
typedef std::list<parse_aut_error> spot::parse_aut_error_list |
#include <spot/parseaut/public.hh>
A list of parser diagnostics, as filled by parse.
void spot::create_alias_basis | ( | const twa_graph_ptr & | aut | ) |
#include <spot/twaalgos/hoa.hh>
Create an alias basis.
This use spot::edge_separator to build a set of alias that can be used as a basis for all labels of the automaton.
Such a basis can be used to shorten the size of an output file when printing in HOA format (actually, calling print_hoa() with option 'b' will call this function). Such a basis may also be useful to help visualize an automaton (using spot::print_dot's @
option) when its labels are too large.
std::vector< std::pair< std::string, bdd > > * spot::get_aliases | ( | const const_twa_ptr & | g | ) |
#include <spot/twaalgos/hoa.hh>
Obtain aliases used in the HOA format.
Aliases are stored as a vector of pairs (name, bdd). The bdd is expected to use only variable registered by g.
parsed_aut_ptr spot::parse_aut | ( | const std::string & | filename, |
const bdd_dict_ptr & | dict, | ||
environment & | env = default_environment::instance() , |
||
automaton_parser_options | opts = {} |
||
) |
#include <spot/parseaut/public.hh>
Read the first spot::twa_graph from a file.
filename | The name of the file to parse. |
dict | The BDD dictionary where to use. |
env | The environment of atomic proposition into which parsing should take place. |
opts | Additional options to pass to the parser. |
parsed_aut
structure.This is a wrapper around spot::automaton_stream_parser that returns the first automaton of the file. Empty inputs are reported as syntax errors, so the aut
field of the result is guaranteed not to be null if errors
is empty. (This is unlike automaton_stream_parser::parse() where a null aut
denotes the end of a stream.)
std::ostream & spot::print_aiger | ( | std::ostream & | os, |
const const_twa_graph_ptr & | aut, | ||
const char * | mode | ||
) |
#include <spot/twaalgos/aiger.hh>
Encode and print an automaton as an AIGER circuit.
The circuit actually encodes the transition relation of the automaton, not its acceptance condition. Therefore, this function will reject automata whose acceptance condition is not trivial (i.e. true). States are encoded by latches (or registers) in the circuit. Atomic propositions are encoded as inputs and outputs of the circuit. To know which AP should be encoded as outputs, print_aiger() relies on the named property "synthesis-outputs", which is a bdd containing the conjunction of such output propositions. All other AP are encoded as inputs. If the named property is not set, all AP are encoded as inputs, and the circuit has no output.
os | The output stream to print on. |
aut | The automaton to output. |
mode | This param has to be of the form ite|isop|both [+dc][+ud][+sub0|+sub1|+sub2] Where ite means encoded via if-then-else normal form, isop means encoded via irredundant sum-of-products, both means trying both encodings to keep the smaller one. +dc is optional and tries to take advantage of "do not care" outputs to minimize the encoding. +dual is optional and indicates that the algorithm should also try to encode the negation of each condition in case its encoding is smaller. +subN indicates that the conditions can be separated into blocks with sub0 being no separation, sub1 separation into input/latches/gates (isop only) and sub2 tries to seek common subformulas. |
std::ostream & spot::print_aiger | ( | std::ostream & | os, |
const_aig_ptr | circuit | ||
) |
#include <spot/twaalgos/aiger.hh>
Print the aig to stream in AIGER format.
std::ostream & spot::print_dot | ( | std::ostream & | os, |
const const_twa_ptr & | g, | ||
const char * | options = nullptr |
||
) |
#include <spot/twaalgos/dot.hh>
Print reachable states in dot format.
If assume_sba is set, this assumes that the automaton is an SBA and use double ellipse to mark accepting states.
options | an optional string of letters, each indicating a different option. Presently the following options are supported: 'v' for vertical output, 'h' for horizontal output, 't' force transition-based acceptance, 'N' hide the name of the automaton, 'n' shows the name, 'c' uses circle-shaped states, 'a' shows the acceptance, 'k' uses state-based labels if possible. |
std::ostream & spot::print_hoa | ( | std::ostream & | os, |
const const_twa_ptr & | g, | ||
const char * | opt = nullptr |
||
) |
#include <spot/twaalgos/hoa.hh>
Print reachable states in Hanoi Omega Automata format.
os | The output stream to print on. |
g | The automaton to output. |
opt | a set of characters each corresponding to a possible option: (b) create an alias basis if more >=2 AP are used, (i) implicit labels for complete and deterministic automata, (k) state labels when possible, (s) state-based acceptance when possible, (t) transition-based acceptance, (m) mixed acceptance, (l) single-line output, (v) verbose properties, (1.1) use version 1.1 of the HOA format. |
std::ostream & spot::print_lbtt | ( | std::ostream & | os, |
const const_twa_ptr & | g, | ||
const char * | opt = nullptr |
||
) |
#include <spot/twaalgos/lbtt.hh>
Print reachable states in LBTT's format.
g | The automata to print. |
os | Where to print. |
opt | if "t", force transition-based acceptance, otherwise, |
std::ostream & spot::print_never_claim | ( | std::ostream & | os, |
const const_twa_ptr & | g, | ||
const char * | opt = nullptr |
||
) |
#include <spot/twaalgos/neverclaim.hh>
Print reachable states in Spin never claim format.
os | The output stream to print on. |
g | The (state-based degeneralized) automaton to output. There should be only one acceptance condition, and all the transitions of a state should be either all accepting or all unaccepting. If your automaton does not satisfies these requirements, call degeneralize() first. |
opt | a string of option: 'c' to comment each state |
void spot::set_aliases | ( | twa_ptr | g, |
const std::vector< std::pair< std::string, bdd > > & | aliases | ||
) |
#include <spot/twaalgos/hoa.hh>
Define all aliases used in the HOA format.
Aliases are stored as a vector of pairs (name, bdd). The bdd is expected to use only variable registered by g.
Pass an empty vector to remove existing aliases.