stringtranslate.com

Función no interpretada

En lógica matemática , una función no interpretada [1] o símbolo de función [2] es una que no tiene otra propiedad que su nombre y su forma n-aria . Los símbolos de función se utilizan, junto con constantes y variables, para formar términos .

La teoría de funciones no interpretadas también se denomina a veces teoría libre , porque se genera libremente y, por lo tanto, es un objeto libre , o teoría vacía , siendo la teoría que tiene un conjunto vacío de oraciones (en analogía con un álgebra inicial ). Las teorías con un conjunto no vacío de ecuaciones se conocen como teorías ecuacionales . El problema de satisfacibilidad de las teorías libres se resuelve mediante unificación sintáctica ; los intérpretes de varios lenguajes informáticos utilizan algoritmos para esta última, como Prolog . La unificación sintáctica también se utiliza en algoritmos para el problema de satisfacibilidad de ciertas otras teorías ecuacionales, véase Unificación (informática) .

Ejemplo

Como ejemplo de funciones no interpretadas para SMT-LIB , si se proporciona esta entrada a un solucionador SMT :

(declarar-fun f (Int) Int)(afirmar (= (f 10) 1))

El solucionador SMT devolvería "Esta entrada es satisfacible". Esto sucede porque fes una función no interpretada (es decir, todo lo que se conoce fes su firma ), por lo que es posible que f(10) = 1. Pero al aplicar la entrada a continuación:

(declarar-fun f (Int) Int)(afirmar (= (f 10) 1))(afirmar (= (f 10) 42))

El solucionador SMT devolvería "Esta entrada no se puede satisfacer". Esto sucede porque f, al ser una función, nunca puede devolver valores diferentes para la misma entrada.

Discusión

El problema de decisión para las teorías libres es particularmente importante, porque muchas teorías pueden reducirse mediante él. [3]

Las teorías libres se pueden resolver buscando subexpresiones comunes para formar el cierre de congruencia . [ aclaración necesaria ] Los solucionadores incluyen solucionadores de teorías de satisfacibilidad módulo .

Véase también

Notas

Referencias

  1. ^ Bryant, Randal E.; Lahiri, Shuvendu K.; Seshia, Sanjit A. (2002). "Modelado y verificación de sistemas utilizando una lógica de contraaritmética con expresiones lambda y funciones no interpretadas" (PDF) . Verificación asistida por computadora . Apuntes de clase en informática. Vol. 2404. págs. 78–92. doi :10.1007/3-540-45657-0_7. ISBN 978-3-540-43997-4.S2CID 9471360  .
  2. ^ Baader, Franz ; Nipkow, Tobias (1999). Reescritura de términos y todo eso . Cambridge University Press. pág. 34. ISBN 978-0-521-77920-3.
  3. ^ de Moura, Leonardo; Bjørner, Nikolaj (2009). Métodos formales: fundamentos y aplicaciones: 12.° Simposio brasileño sobre métodos formales, SBMF 2009, Gramado, Brasil, 19-21 de agosto de 2009: artículos seleccionados revisados ​​(PDF) . Berlín: Springer. ISBN 978-3-642-10452-7.