spot 2.11.6.dev
Loading...
Searching...
No Matches
apcollect.hh
1// -*- coding: utf-8 -*-
2// Copyright (C) 2012, 2013, 2014, 2015, 2023 Laboratoire de Recherche et
3// Développement de l'Epita (LRDE).
4// Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
5// département Systèmes Répartis Coopératifs (SRC), Université Pierre
6// et Marie Curie.
7//
8// This file is part of Spot, a model checking library.
9//
10// Spot is free software; you can redistribute it and/or modify it
11// under the terms of the GNU General Public License as published by
12// the Free Software Foundation; either version 3 of the License, or
13// (at your option) any later version.
14//
15// Spot is distributed in the hope that it will be useful, but WITHOUT
16// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
18// License for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with this program. If not, see <http://www.gnu.org/licenses/>.
22
23#pragma once
24
25#include <spot/tl/formula.hh>
26#include <set>
27#include <vector>
28#include <bddx.h>
29#include <spot/twa/fwd.hh>
30
31namespace spot
32{
35
37 typedef std::set<formula> atomic_prop_set;
38
40 SPOT_API
42
51 SPOT_API atomic_prop_set*
53
60 SPOT_API bdd
61 atomic_prop_collect_as_bdd(formula f, const twa_ptr& a);
62
63
70 SPOT_API
72
78 SPOT_API
79 std::vector<std::vector<spot::formula>>
81
82
83
85 class SPOT_API realizability_simplifier final
86 {
87 public:
90 polarity = 0b1,
92 global_equiv = 0b10,
94 global_equiv_output_only = 0b110,
95 };
96
98 const std::vector<std::string>& inputs,
99 unsigned options = polarity | global_equiv,
100 std::ostream* verbose = nullptr);
101
104 {
105 return f_;
106 }
107
109 const std::vector<std::tuple<formula, bool, formula>>& get_mapping() const
110 {
111 return mapping_;
112 }
113
115 void patch_mealy(twa_graph_ptr mealy) const;
116
118 void patch_game(twa_graph_ptr mealy) const;
119
120 private:
121 void add_to_mapping(formula from, bool from_is_input, formula to);
122 std::vector<std::tuple<formula, bool, formula>> mapping_;
123 formula f_;
124 bool global_equiv_output_only_;
125 };
126
128}
Main class for temporal logic formula.
Definition formula.hh:733
Simplify a reactive specification, preserving realizability.
Definition apcollect.hh:86
formula simplified_formula() const
Return the simplified formula.
Definition apcollect.hh:103
void patch_mealy(twa_graph_ptr mealy) const
Patch a Mealy machine to add the missing APs.
const std::vector< std::tuple< formula, bool, formula > > & get_mapping() const
Returns a vector of (from,from_is_input,to)
Definition apcollect.hh:109
void patch_game(twa_graph_ptr mealy) const
Patch a game to add the missing APs.
realizability_simplifier_option
Definition apcollect.hh:88
LTL/PSL formula interface.
atomic_prop_set create_atomic_prop_set(unsigned n)
construct an atomic_prop_set with n propositions
bdd atomic_prop_collect_as_bdd(formula f, const twa_ptr &a)
Return the set of atomic propositions occurring in a formula, as a BDD.
atomic_prop_set * atomic_prop_collect(formula f, atomic_prop_set *s=nullptr)
Return the set of atomic propositions occurring in a formula.
atomic_prop_set collect_literals(formula f)
Collect the literals occuring in f.
std::set< formula > atomic_prop_set
Set of atomic propositions.
Definition apcollect.hh:37
std::vector< std::vector< spot::formula > > collect_equivalent_literals(formula f)
Collect equivalent APs.
Definition automata.hh:27

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Fri Feb 27 2015 10:00:07 for spot by doxygen 1.9.8