#ifndef PROPOSITION #define PROPOSITION #include "lexer.h" typedef struct Proposition { struct Proposition* propA; struct Proposition* propB; tokenType_t relation; char* name; char isSimple; } prop_t; prop_t init_prop(prop_t* propA, prop_t* propB, tokenType_t relation); prop_t init_simple_prop(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