Inference Engine
A simple rule-based automated reasoning system can be expressed as:
\begin{equation}
[\mathbb{P}(B), V, L, Thm] \label{eq:prs}
\end{equation}
Primarily, given a non-empty set of N 1 N_1 N1 independent simple propositions B = { P 1 , P 2 , . . . , P N 1 } B = \{P_1,P_2,...,P_{N_1}\} B={
P1,P2,...,PN1}, with the “ ∧ \wedge ∧” and “ ∨ \vee ∨” operations, we can yield a proposition space P \mathbb{P} P from its base B B B. V : = { − 1 , 0 , 1 } V:=\{-1,0,1\} V:={
−1,0,1} is the value set that represents the state of a proposition, where -1 means “false”, 0 is “not given”, and 1 represents “true”. L : = { A N D , O R } L:=\{AND, OR\} L:={
AND,OR}, and we will clarify L L L’s A N D AND AND and O R OR OR functions later. T h m = { t h m 1 , . . . , t h m N 2 } ≠ ∅ Thm=\{thm_1,...,thm_{N_2}\}\ne\emptyset Thm={
thm1,...,thmN2}=∅ is a finite theorem set that stores some theorems built up from the elements of P \mathbb{P} P and is given before the algorithm starts.
To enable contrapositive reasoning and handle potential contradictions, we introduce the concept of conjugate. Define the relation between p p p and ¬ p \neg p ¬p as a “conjugate relation”. So do the operations “ ∧ \wedge ∧” and “ ∨ \vee ∨”, and functions A N D AND AND and O R OR OR. Thus, we denote ¬ A N D = O R \neg AND=OR ¬AND=OR, ¬ O R = A N D \neg OR=AND ¬OR=AND,