summaryrefslogtreecommitdiff
path: root/src/proposition.h
blob: 2d09688637b7b30e51182de598127d2893761f4f (plain)
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
#ifndef PROPOSITION
#define PROPOSITION
#include "lexer.h"
typedef struct Proposition {
	char isSimple;
	char isNegative;
	struct Proposition* propA;
	struct Proposition* propB;
	tokenType_t relation;
	char* name;
} prop_t;
prop_t init_prop(char isNegative, prop_t* propA, prop_t* propB, tokenType_t relation);
prop_t init_simple_prop(char isNegative, char* name);
typedef enum JustificationRule {
	ERR_R,
	PREMISE_R,
	ASSUMPTION_R,
	CONJUNCT_INTRO,
	DISJUNCT_INTRO,
	IMPLICATION_INTRO,
	BI_IMPLICATION_INTRO,
	CONJUNCT_ELIM,
	DISJUNCT_ELIM,
	IMPLICATION_ELIM,
	BI_IMPLICATION_ELIM
} justRule_t;
char* jrtos(justRule_t rule);
typedef struct Justification {
	justRule_t rule;
	int* references;
	int referencesCount;
} just_t;
just_t init_just(justRule_t rule, int* references, int referencesCount);
#endif