spot
1.1.3
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ltlvisit
contain.hh
Go to the documentation of this file.
1
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Developpement de
2
// l'Epita (LRDE).
3
// Copyright (C) 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
4
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
5
// et Marie Curie.
6
//
7
// This file is part of Spot, a model checking library.
8
//
9
// Spot is free software; you can redistribute it and/or modify it
10
// under the terms of the GNU General Public License as published by
11
// the Free Software Foundation; either version 3 of the License, or
12
// (at your option) any later version.
13
//
14
// Spot is distributed in the hope that it will be useful, but WITHOUT
15
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17
// License for more details.
18
//
19
// You should have received a copy of the GNU General Public License
20
// along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22
#ifndef SPOT_LTLVISIT_CONTAIN_HH
23
# define SPOT_LTLVISIT_CONTAIN_HH
24
25
#include "
ltlast/formula.hh
"
26
#include "
tgbaalgos/ltl2tgba_fm.hh
"
27
#include "
misc/hash.hh
"
28
#include <map>
29
30
namespace
spot
31
{
32
namespace
ltl
33
{
34
// Check containment of language represented by LTL formulae.
35
class
language_containment_checker
36
{
37
struct
record_
38
{
39
const
tgba
*
translation
;
40
typedef
std::map<const record_*, bool>
incomp_map
;
41
incomp_map
incompatible
;
42
};
43
typedef
Sgi::hash_map
<
const
formula
*,
44
record_
,
formula_ptr_hash
>
trans_map
;
45
public
:
48
language_containment_checker
(
bdd_dict
* dict,
bool
exprop,
49
bool
symb_merge,
50
bool
branching_postponement,
51
bool
fair_loop_approx);
52
53
~language_containment_checker
();
54
56
void
clear
();
57
59
bool
contained
(
const
formula
* l,
const
formula
* g);
61
bool
neg_contained
(
const
formula
* l,
const
formula
* g);
63
bool
contained_neg
(
const
formula
* l,
const
formula
* g);
64
66
bool
equal
(
const
formula
* l,
const
formula
* g);
67
68
protected
:
69
bool
incompatible_
(
record_
* l,
record_
* g);
70
71
record_
*
register_formula_
(
const
formula
* f);
72
73
/* Translation options */
74
bdd_dict
*
dict_
;
75
bool
exprop_
;
76
bool
symb_merge_
;
77
bool
branching_postponement_
;
78
bool
fair_loop_approx_
;
79
/* Translation Maps */
80
trans_map
translated_
;
81
};
82
86
102
#if __GNUC__
110
const
formula
*
reduce_tau03
(
const
formula
* f,
111
bool
stronger =
true
)
112
__attribute__ ((deprecated));
113
#else
114
const
formula
*
reduce_tau03
(
const
formula
* f,
bool
stronger =
true
);
115
#endif
116
}
117
}
118
119
#endif // SPOT_LTLVISIT_CONTAIN_HH
Please direct any
question
,
comment
, or
bug report
to the Spot mailing list at
spot@lrde.epita.fr
.
Generated on Tue Jul 9 2013 14:04:33 for spot by
1.8.4