You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Optionally, fix also a \hyperref[def:fol_semantics/model]{model} \(\mscrX = (X, I) \) of \(\varphi\) and a \hyperref[def:choice_function]{choice function} \( c \) for the subsets of \( X \).
1014
1014
1015
+
We will also need an operation \(\sharp_m \), similar to the one for substitution discussed in \cref{def:atomic_lambda_term_substitution/sharp}, that provides us with a fresh function symbol of arity \( m \). For definiteness, suppose that \(\sharp_m(F) \) is \( a^m \), where \( a \) is the smallest \hyperref[def:variable_identifier]{small Latin identifiers} such that \( a^m \) is not in \( F \).
1016
+
1015
1017
We will use recursion on \( k \leq n \) to build a quadruple \( (\Sigma_k, \phi_k, U_k, \mscrX_k) \) consisting of the following:
\thmitem{alg:fol_skolemization/existential} At step \( k > 0 \), suppose that \( Q_k = \synexists\). Let \( U_k \coloneqq U_{k-1} \) and suppose that \( x_{i_1}, \ldots, x_{i_m} \) are the variables in \( U_k = U_{k-1} \).
1063
1065
1064
-
Fix a new function symbol \( f_k \) of arity \( m \). Define \(\Sigma_k \) to be the extension of \(\Sigma_{k-1} \) with \( f_k \) and let
1066
+
The function \(\sharp_m \) discussed above gives us a new function symbol \( f_k \) of arity \( m \).
1067
+
1068
+
Define \(\Sigma_k \) to be the extension of \(\Sigma_{k-1} \) with \( f_k \) and let
where \( c \) is the choice function we have fixed in the beginning.
1081
1086
1082
1087
We call \( I_k(f) \) a \term[en=Skolem function (\cite[thm. 2.3.34]{Hinman2005Logic})]{Skolem function}. Naturally, we let \(\mscrX_k \coloneqq (X, I_k) \).
1083
1088
\end{thmenum}
1084
1089
\end{algorithm}
1085
1090
\begin{comments}
1086
1091
\item The overall premise of Skolemization is described in \cref{rem:definitional_extensions_and_skolemization}.
1092
+
\item There are two sources of ambiguity in the algorithm --- the choice of Skolem function symbols and the choice of the functions themselves. The disambiguation that we may find useful depends on the situation.
1087
1093
\item This algorithm can be found as \identifier{math.logic.skolemization.skolemize} in \cite{notebook:code}.
0 commit comments