Programa básico para razonamiento hacia atrás

Programa que efectúa razonamientos hacia atrás a partir de hechos y premisas básicas. Las reglas se uso de explican en la interfaz, y aquí esta en resumen:

Los hechos de especifican de la siguiente forma hecho=valor donde valor = 1|0
las premisas con conjuntivas de la forma: premisa:hecho,hecho2,...,hechoN
los nombres de los hechos pueden ser uniliterales o estar formados por palabras completas sin espacios.

Se cargan los hechos y las premisas y se corre el motor de inferencia el cual responde a tratar de comprobar el hecho escrito en el área de comandos, lo cual afirma ejecuta el motor por medio del razonamiento hacia adelante para poder afirmar o negar el hecho según las reglas y hechos que se conocen o se van generando.

El programa esta hecho en java y posee una interfaz gráfica independiente del código del motor de inferencia, basta con generar una instancia del motor y asociarle un objeto de tipo textbox para que lo use como salida default, así que la GUI se puede rediseñar a voluntad, asociando los comandos de ejecución del motor a los eventos de la misma.

CODIGO AQUI
El programa fue hecho en netbeansIDE