Content deleted Content added
misc copyedits |
m WP:ADOPTYPO boolean -> Boolean |
||
(48 intermediate revisions by 21 users not shown) | |||
Line 1:
{{Short description|Type of function in mathematical logic}}
In [[mathematical logic]], an '''uninterpreted function'''<ref>
The '''theory of uninterpreted functions''' is also sometimes called the '''free theory''', because it is freely generated, and thus a [[free object]], or the '''empty theory''', being the [[theory (mathematical logic)|theory]] having an empty set of [[sentence (mathematical logic)|sentences]] (in analogy to an [[initial algebra]]). Theories with a non-empty set of equations are known as [[equational theory|equational theories]]. The [[
==Example==
As an example of uninterpreted functions for [[SMT-LIB]], if this input is given to an [[Satisfiability modulo theories|SMT solver]]:
<syntaxhighlight lang="text" line="1">
(declare-fun f (Int) Int)
(assert (= (f 10) 1))
</syntaxhighlight>
the SMT solver would return "This input is satisfiable". That happens because <code>f</code> is an uninterpreted function (i.e., all that is known about <code>f</code> is its [[Signature (logic)|signature]]), so it is possible that <code>f(10) = 1</code>. But by applying the input below:
<syntaxhighlight lang="text" line="1">
(declare-fun f (Int) Int)
(assert (= (f 10) 1))
(assert (= (f 10) 42))
</syntaxhighlight>
the SMT solver would return "This input is unsatisfiable". That happens because <code>f</code>, being a function, can never return different values for the same input.
The [[decision problem]] for free theories is particularly important, because many theories can be reduced by it.<ref>{{cite book |last1=de Moura |first1=Leonardo |last2=Bjørner |first2=Nikolaj |title=Formal methods : foundations and applications : 12th Brazilian Symposium on Formal Methods, SBMF 2009, Gramado, Brazil, August 19-21, 2009 : revised selected papers |date=2009 |publisher=Springer |___location=Berlin |isbn=978-3-642-10452-7 |url=https://leodemoura.github.io/files/sbmf09.pdf}}</ref>
Free theories can be solved by searching for [[common subexpression]]s to form the [[congruence closure]].{{clarify|reason=Indicate about solving which problem in free theories the sentence is supposed to speak. E.g. to solve the satisfiability problem of conjunctions of equations, the Martelli-Montanari syntactic unification algorithm suffices, neither common subexpressions nor congruence closures are needed. Maybe, satisfiability of arbitrary Boolean combinations of equations is meant?|date=May 2014}} Solvers include [[satisfiability modulo theories]] solvers.
== See also ==▼
* [[Theory of pure equality]]
==Notes==
{{reflist|group=note}}
==References==▼
{{reflist}}
▲== Discussion==
▲== See also ==
▲* [[algebraic data type]]
▲* [[initial algebra]]
▲* [[term algebra]]
▲==References==
{{Mathematical logic}}
{{Formalmethods-stub}}
|