#include #include "proposition.h" /* a proposition defines a relation between two propositions */ prop_t init_prop(char isNegative, prop_t* propA, prop_t* propB, tokenType_t relation) { prop_t prop; prop.isNegative = isNegative; prop.propA = propA; prop.propB = propB; prop.relation = relation; prop.isSimple = 0; prop.isContradiction = 0; return prop; } /* a simple proposition is one with only a name */ prop_t init_simple_prop(char isNegative, char* name) { prop_t prop; prop.isNegative = isNegative; prop.name = name; prop.isSimple = 1; prop.isContradiction = 0; return prop; } prop_t init_contradiction_prop() { prop_t prop; prop.isNegative = 0; prop.name = NULL; prop.isSimple = 1; prop.isContradiction = 1; return prop; } char* jrtos(justRule_t rule) { switch (rule) { case PREMISE_R: return "PREMISE"; case ASSUMPTION_R: return "ASSUMPTION"; case CONJUNCT_INTRO: return "CONJUNCTION INTRODUCTION"; case DISJUNCT_INTRO: return "DISJUNCTION INTRODUCTION"; case IMPLICATION_INTRO: return "IMPLICATION INTRODUCTION"; case NEGATION_INTRO: return "NEGATION INTRODUCTION"; case CONTRADICTION_INTRO: return "CONTRADICTION INTRODUCTION"; case CONJUNCT_ELIM: return "CONJUNCTION ELIMINATION"; case DISJUNCT_ELIM: return "DISJUNCTION ELIMINATION"; case IMPLICATION_ELIM: return "IMPLICATION ELIMINATION"; case NEGATION_ELIM: return "NEGATION ELIMINATION"; default: return "ERR"; } } just_t init_just(justRule_t rule, int* references, int referencesCount) { just_t just; just.rule = rule; just.references = references; just.referencesCount = referencesCount; return just; }