El objetivo de este trabajo es describir un lenguaje de programación en lógica rebatible como una extensión de la programación en lógica convencional. Para ello se utilizarán los programas lógicos rebatibles (PLR), los cuales están formados por dos tipos de cláusulas: las cláusulas de programa extendido [4] que permiten inferir tanto información positiva como negativa, y las cláusulas de programa rebatible [11] que a diferencia de las anteriores representan información tentativa que puede ser utilizada en la medida que no sea contradecida. Los PLR permiten la utilización de la negación clásica y la negación por falla, esto posibilita la representación de diferentes formas de "CWA" como cláusulas de programa.
En extensiones anteriores de la programación en lógica, al derivar dos literales complementarios se obtiene todo el lenguaje [4], o no hay forma de decidir entre ellos [5]. Para solucionar este tipo de problemas, nuestro desarrollo utiliza los conceptos de la argumentación rebatible para poder trabajar con información tentativa y potencialmente inconsistente. La noción de inferencia rebatible permite construir un argumento como un subconjunto de un PLR, para luego utilizar los conceptos de derrota y justificación de un sistema argumentativo como motor de inferencia del sistema. La semántica de un PLR queda caracterizada por los conjuntos de respuestas afirmativas, negativas, indecisas y desconocidas. Actualmente se encuentra en construcción una maquina abstracta para la ejecución de programas en lógica rebatible [3], basado en esta semántica, para lo cual se extenderá la máquina abstracta de Warren [15].