TaPAS  0.2
prestaf-predicate.h
Go to the documentation of this file.
1 /*
2  * prestaf-predicate.h -- Prestaf Predicates
3  *
4  * This file is a part of the PresTAF project.
5  *
6  * Copyright (C) 2010 CNRS UMR 5800 & Université Bordeaux I (see AUTHORS file).
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  */
23 
36 #ifndef __PRESTAF_PREDICATE_H__
37 # define __PRESTAF_PREDICATE_H__
38 
39 # include <ccl/ccl-list.h>
40 # include <ccl/ccl-string.h>
41 # include <sataf/sataf.h>
42 
43 BEGIN_C_DECLS
44 
54 typedef struct prestaf_predicate_st prestaf_predicate;
55 
56 
70 extern prestaf_predicate *
72 
80 extern prestaf_predicate *
82 
90 extern void
92 
99 extern ccl_list *
101 
108 extern sataf_msa *
110 
122 extern void
124 
125 extern prestaf_predicate *
126 prestaf_predicate_true (void);
127 
128 extern prestaf_predicate *
129 prestaf_predicate_false (void);
130 
138 extern prestaf_predicate *
140 
150 extern prestaf_predicate *
152 
162 extern prestaf_predicate *
164 
173 extern prestaf_predicate *
175 
184 extern prestaf_predicate *
186 
196 extern prestaf_predicate *
198 
208 extern prestaf_predicate *
210 
211 extern prestaf_predicate *
212 prestaf_predicate_xor (prestaf_predicate *P1, prestaf_predicate *P2);
213 
223 extern prestaf_predicate *
225 
235 extern prestaf_predicate *
237 
255 extern int
257 
258 extern void
259 prestaf_predicate_display_formula (ccl_log_type log, prestaf_predicate *P,
260  int prefix);
261 
262 extern void
263 prestaf_predicate_display_automaton (ccl_log_type log, prestaf_predicate *P);
264 
265 END_C_DECLS
266 
267 #endif /* ! __PRESTAF_PREDICATE_H__ */
prestaf_predicate * prestaf_predicate_equiv(prestaf_predicate *P1, prestaf_predicate *P2)
Logical equality.
Generic simple linked list.
prestaf_predicate * prestaf_predicate_multi_and(ccl_list *predicates)
N-ary conjunction.
prestaf_predicate * prestaf_predicate_create(ccl_list *vars, sataf_msa *rel)
Contructor of predicates.
prestaf_predicate * prestaf_predicate_not(prestaf_predicate *P)
Compute the complement of a predictate P
struct prestaf_predicate_st prestaf_predicate
Structure representing a predicate. The variables of the predicate take their value into ...
sataf_msa * prestaf_predicate_get_relation(prestaf_predicate *P)
Relation of a predicate.
int prestaf_predicate_display_vectors(ccl_log_type log, prestaf_predicate *P)
Display the assignments belonging to the predicate ::P.
ccl_list * prestaf_predicate_get_variables(prestaf_predicate *P)
Variables of a predicate.
prestaf_predicate * prestaf_predicate_and(prestaf_predicate *P1, prestaf_predicate *P2)
Binary conjunction.
struct ccl_list_st ccl_list
Type of a generic list.
Definition: ccl-list.h:33
prestaf_predicate * prestaf_predicate_forall(ccl_ustring v, prestaf_predicate *P)
Universal projection.
prestaf_predicate * prestaf_predicate_add_reference(prestaf_predicate *P)
Increments the counter of reference of P.
Module gathering routines frequently used for the manipulation of string.
void prestaf_predicate_rename(prestaf_predicate *P, ccl_list *vars)
Relabelling of the variables.
char * ccl_ustring
Alias type for strings that are stored in an internal dictionary and then can be used as identifiers ...
Definition: ccl-string.h:34
void prestaf_predicate_del_reference(prestaf_predicate *P)
Decrements the counter of reference of P.
prestaf_predicate * prestaf_predicate_imply(prestaf_predicate *P1, prestaf_predicate *P2)
Logical implication.
enum ccl_log_type_enum ccl_log_type
Enum that indicates which kind of message has to be displayed. Each kind of message can be displayed ...
Definition: ccl-log.h:50
prestaf_predicate * prestaf_predicate_or(prestaf_predicate *P1, prestaf_predicate *P2)
Binary disjunction.
prestaf_predicate * prestaf_predicate_multi_or(ccl_list *predicates)
N-ary disjunction.
prestaf_predicate * prestaf_predicate_exists(ccl_ustring v, prestaf_predicate *P)
Existential projection.
struct sataf_msa_st sataf_msa
Type for the data structure encoding Marked Shared Automata.
Definition: sataf.h:81