File: ccl_propclauses.h

package info (click to toggle)
eprover 2.6%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 21,288 kB
  • sloc: ansic: 331,111; csh: 12,026; python: 10,178; awk: 5,825; makefile: 461; sh: 389
file content (98 lines) | stat: -rw-r--r-- 3,397 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*-----------------------------------------------------------------------

  File  : ccl_propclauses.h

  Author: Stephan Schulz

  Contents

  Definitions for propositional clauses (for eground) which can be
  stored much more compactly than ordinary clauses - at the price of
  less functionality and flexibility.

  Copyright 1998-2011 by the author.
  This code is released under the GNU General Public Licence and
  the GNU Lesser General Public License.
  See the file COPYING in the main E directory for details..
  Run "eprover -h" for contact information.

  Changes

  Created: Sun Dec 16 16:29:02 CET 2001

  -----------------------------------------------------------------------*/

#ifndef CCL_PROPCLAUSES

#define CCL_PROPCLAUSES

#include <ccl_clauses.h>


/*---------------------------------------------------------------------*/
/*                    Data type declarations                           */
/*---------------------------------------------------------------------*/

typedef struct proplitcell
{
   EqnProperties properties;
   Term_p        lit;
}PropLitCell, *PropLit_p;


typedef struct propclausecell
{
   int        lit_no;
   PropLit_p  literals;
   struct propclausecell *next; /* For linear lists == PropClauseSets */
}PropClauseCell, *PropClause_p;

typedef struct propclausesetcell
{
   long         members;
   long         literals;
   long         empty_clauses;
   PropClause_p list;    /* List of clauses */
   PropClause_p *inspos; /* Points to next field of last clause, so we
                            can keep inserted clauses in order - I
                            believe giving propositional provers small
                            clauses first may be beneficial */
}PropClauseSetCell, *PropClauseSet_p;





/*---------------------------------------------------------------------*/
/*                Exported Functions and Variables                     */
/*---------------------------------------------------------------------*/

#define PropClauseCellAlloc()    (PropClauseCell*)SizeMalloc(sizeof(PropClauseCell))
#define PropClauseCellFree(junk) SizeFree(junk, sizeof(PropClauseCell))

PropClause_p PropClauseAlloc(Clause_p clause);
void         PropClauseFree(PropClause_p clause);
Clause_p     PropClauseToClause(TB_p bank, PropClause_p clause);
void         PropClausePrint(FILE* out, TB_p bank, PropClause_p
                             clause);
long         PropClauseMaxVar(PropClause_p clause);


#define PropClauseSetCellAlloc()    (PropClauseSetCell*)SizeMalloc(sizeof(PropClauseSetCell))
#define PropClauseSetCellFree(junk) SizeFree(junk, sizeof(PropClauseSetCell))

PropClauseSet_p PropClauseSetAlloc(void);
void            PropClauseSetFree(PropClauseSet_p set);
long            PropClauseSetInsertPropClause(PropClauseSet_p set,
                                              PropClause_p clause);
long            PropClauseSetInsertClause(PropClauseSet_p set,
                                          Clause_p clause);
void            PropClauseSetPrint(FILE* out, TB_p bank,
                                   PropClauseSet_p set);
long            PropClauseSetMaxVar(PropClauseSet_p set);

#endif

/*---------------------------------------------------------------------*/
/*                        End of File                                  */
/*---------------------------------------------------------------------*/