1
/* Copyright (C) 2006, 2007 William McCune
3
This file is part of the LADR Deduction Library.
5
The LADR Deduction Library is free software; you can redistribute it
6
and/or modify it under the terms of the GNU General Public License,
9
The LADR Deduction Library is distributed in the hope that it will be
10
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
14
You should have received a copy of the GNU General Public License
15
along with the LADR Deduction Library; if not, write to the Free Software
16
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
28
/* Public definitions */
30
typedef struct literals * Literals;
38
/* End of public definitions */
40
/* Public function prototypes from literals.c */
42
Literals get_literals(void);
44
void free_literals(Literals p);
46
void fprint_literals_mem(FILE *fp, int heading);
48
void p_literals_mem();
50
void zap_literal(Literals l);
52
void zap_literals(Literals l);
54
Literals new_literal(int sign, Term atom);
56
Literals copy_literal(Literals lit);
58
Literals append_literal(Literals lits, Literals lit);
60
Literals term_to_literals(Term t, Literals lits);
62
Term literal_to_term(Literals l);
64
Term literals_to_term(Literals l);
66
Term lits_to_term(Literals l);
68
void free_lits_to_term(Term t);
70
int positive_literals(Literals lits);
72
int negative_literals(Literals lits);
74
BOOL positive_clause(Literals lits);
76
BOOL any_clause(Literals lits);
78
BOOL negative_clause(Literals lits);
80
BOOL mixed_clause(Literals lits);
82
int number_of_literals(Literals lits);
84
BOOL unit_clause(Literals lits);
86
BOOL horn_clause(Literals lits);
88
BOOL definite_clause(Literals lits);
90
int greatest_variable_in_clause(Literals lits);
92
Plist vars_in_clause(Literals lits);
94
Ilist varnums_in_clause(Literals lits);
96
int number_of_variables(Literals lits);
98
BOOL ground_clause(Literals lits);
100
Literals copy_literals(Literals lits);
102
Literals copy_literals_with_flags(Literals lits);
104
Literals copy_literals_with_flag(Literals lits, int flag);
106
int literal_number(Literals lits, Literals lit);
108
int atom_number(Literals lits, Term atom);
110
Literals ith_literal(Literals lits, int i);
112
BOOL true_clause(Literals lits);
114
BOOL tautology(Literals lits);
116
int symbol_occurrences_in_clause(Literals lits, int symnum);
118
Literals remove_null_literals(Literals l);
120
Literals first_literal_of_sign(Literals lits, BOOL sign);
122
Ilist constants_in_clause(Literals lits);
124
BOOL clause_ident(Literals lits1, Literals lits2);
126
int clause_symbol_count(Literals lits);
128
int clause_depth(Literals lits);
130
BOOL pos_eq(Literals lit);
132
BOOL neg_eq(Literals lit);
134
BOOL pos_eq_unit(Literals lits);
136
BOOL neg_eq_unit(Literals lits);
138
BOOL contains_pos_eq(Literals lits);
140
BOOL contains_eq(Literals lits);
142
BOOL only_eq(Literals lits);
144
int literals_depth(Literals lits);
146
Term term_at_position(Literals lits, Ilist pos);
148
Ilist pos_predicates(Ilist p, Literals lits);
150
#endif /* conditional compilation of whole file */