cómo se expresa "b es una potencia de 10".
Dado que Rory ya ha abordado los problemas que plantea tu planteamiento, yo abordaré la cuestión de encontrar una solución diferente. En mi primer intento de hacerlo, he cometido un error, así que reescribo completamente mi respuesta. Ahora está inspirada en esta entrada por Anders Kaseorg, aunque la redacción es mía.
Todos los poderes a la vez
El principal problema es que no se puede escribir simplemente una definición recursiva. No puedes hacer que la fórmula se construya sobre sí misma. Una forma de resolverlo es hablar de todas las potencias de diez, al menos hasta el número dado, simultáneamente. A falta de conjuntos, tenemos que representar esto como un solo número. Todavía no podemos hacer el desplazamiento de dígitos en base 10, pero puede expresar potencias de diez en alguna base prima.
Un poco de nomenclatura por adelantado. Utilizaré $a$ para denotar la variable libre, la entrada, la cosa para la que queremos comprobar el predicado. $p$ será un número primo utilizado como base numérica, $t$ la base- $p$ número utilizado para codificar nuestras potencias de diez. $d$ será a menudo un dígito o elemento de ese conjunto de potencias de diez.
Para facilitar la comprensión, definiré las abreviaturas de las unidades semánticas. Pero ten en cuenta que cada una de esas abreviaturas sólo se basa en las que he definido antes, no en sí misma ni en las que vengan después. Por lo tanto, se podrían ampliar las abreviaturas nivel por nivel para volver a la notación estricta de TNT. Lo haré hacia el final de este post.
Paso a paso
esPrimo(p)
¿Cuándo un número es primo? Si él mismo no es menor que $2$ y no el producto de dos enteros mayores o iguales que $2$ . (Escribo $\neg$ en lugar de $\sim$ para la negación).
$$\text{isPrime}(p):=\;\;\langle\exists i:p=\textsf{SS}i\;\wedge\;\neg\;\exists j:\exists k:p=\textsf{SS}j\cdot\textsf{SS}k\rangle$$
primePower(p, q)
Para escribir operaciones con dígitos en una base $p$ número, tendremos que hablar de potencias de $p$ . ¿Cuándo se $q$ un poder de $p$ ? Si $q$ es distinto de cero y no contiene otros factores primos. (Prefiero escribir implicación como $\rightarrow$ no $\supset$ .)
\begin{align*} \text{primePower}(p,q):=\;\;&\Bigl\langle\neg\;q=\textsf 0\;\wedge\\&\forall g:\forall h:\big\langle q=\textsf{SS}g\cdot\textsf{SS}h\;\rightarrow\;\langle\neg\;\text{isPrime}(\textsf{SS}g)\;\vee\;\textsf{SS}g=p\rangle\big\rangle\Bigr\rangle \end{align*}
digitOf(p, t, d)
¿Cuándo es $d$ un dígito de una base- $p$ número $t$ ? Si $t=(e\cdot p+d)\cdot p^k+f$ para algunos $e,f,k$ con $d<p$ y $f<p^k$ .
\begin{align*} \text{digitOf}(p,t,d):=\;\;&\exists e:\exists f:\exists q:\big\langle \langle\exists c:p=d+\textsf{S}c\;\wedge\;\exists c:q=f+\textsf{S}c\rangle\;\wedge\\&\langle t=(e\cdot p+d)\cdot q+f\;\wedge\;\text{primePower}(p,q)\rangle\big\rangle\end{align*}
contiene(p, t, d)
Teniendo base $p$ Los números representan conjuntos es una idea hermosa, pero hay que tener cuidado con los ceros: cada contiene un número infinito de ceros a la izquierda. Pero no queremos ceros en nuestro conjunto de potencias de diez, así que podemos excluir los ceros.
$$\text{contains}(p, t, d):=\;\;\langle\neg\;d=0\;\wedge\;\text{digitOf}(p, t, d)\rangle$$
potenciasDeDiez(p, t)
Ahora podemos empezar a hablar de potencias de diez. ¿Cuándo una base $p$ número $t$ describir un número suficiente de potencias de diez? Originalmente empezaría diciendo que debe contener $1=10^0$ y para cada $d$ debe contener $10\cdot d$ y ningún otro número excepto éstos. Pero al final cuantificaremos este número como $\exists t$ Así que todos los requisitos sobre lo que debe contener puede evitarse. Lo único importante es anotar lo que debe no contener, es decir, expresar que no debe contener más que potencias de diez. Por cada número que contenga, debe haber una potencia menor de diez que también contenga, con el uno como excepción obvia.
\begin{align*} \text{powersOfTen}(p,t):=\;\;&\forall d:\Big\langle\text{contains}(p,t,d)\;\rightarrow\;\big\langle d=\textsf{S0}\;\vee\\&\exists b:\langle d=\textsf{SSSSSSSSSS0}\cdot b\;\wedge\;\text{contains}(p,t,b)\rangle\big\rangle\Big\rangle \end{align*}
potenciaDeDiez(a)
¿Cuándo un número es una potencia de diez? Si está contenido en el número de potencias de diez, para algún primo adecuado $p$ .
\begin{align*} \text{powerOfTen}(a):=\;\;&\exists p:\bigl\langle\text{isPrime}(p)\;\wedge\\& \exists t:\langle\text{powersOfTen}(p,t)\;\wedge\;\text{contains}(p,t,a)\rangle\bigr\rangle\end{align*}
No requerimos $p>a$ pero la cuantificación existencial de $t$ se encarga de eso. Del mismo modo, en ningún momento hicimos ninguna declaración sobre el orden de los dígitos dentro de $t$ . Cualquier orden es válido, y las repeticiones también están bien.
La formulación no está optimizada para ser breve. En su lugar, he intentado que cada definición capte una idea matemática de la forma más precisa posible, aunque eso signifique abarcar casos extremos que son irrelevantes para la aplicación en cuestión. Por ejemplo, si en la $\text{digitOf}$ formulación que había escrito $\textsf Sq$ para $p^k$ en lugar de $q$ entonces el caso de $q=0$ en $\text{primePower}$ sería irrelevante.
Todos juntos
Si lo unes todo, obtienes la siguiente expresión bastante ilegible:
$$ \exists p:\langle \\ \langle\exists i:p=\textsf{SS}i\;\wedge\;\neg\;\exists j:\exists k:p=\textsf{SS}j\cdot\textsf{SS}k\rangle \\ \;\wedge\;\exists t:\langle \forall d:\langle \\ \langle\neg\;d=0\;\wedge\; \\ \exists e:\exists f:\exists q:\langle\langle\exists c:p=d+\textsf Sc\;\wedge\;\exists c:q=f+\textsf Sc\rangle\;\wedge\;\langle t=(e\cdot p+d)\cdot q+f\;\wedge\; \\ \langle\neg\;q=\textsf 0\;\wedge\;\forall g:\forall h:\langle q=\textsf{SS}g\cdot\textsf{SS}h\;\rightarrow\;\langle\neg\; \\ \langle\exists i:\textsf{SS}g=\textsf{SS}i\;\wedge\;\neg\;\exists j:\exists k:\textsf{SS}g=\textsf{SS}j\cdot\textsf{SS}k\rangle \\ \;\vee\;\textsf{SS}g=p\rangle\rangle\rangle \rangle\rangle \rangle \\ \;\rightarrow\;\langle d=\textsf{S0}\;\vee\;\exists b:\langle d=\textsf{SSSSSSSSSS0}\cdot b\;\wedge\; \\ \langle\neg\;b=0\;\wedge\; \\ \exists e:\exists f:\exists q:\langle\langle\exists c:p=b+\textsf Sc\;\wedge\;\exists c:q=f+\textsf Sc\rangle\;\wedge\;\langle t=(e\cdot p+b)\cdot q+f\;\wedge\; \\ \langle\neg\;q=\textsf 0\;\wedge\;\forall g:\forall h:\langle q=\textsf{SS}g\cdot\textsf{SS}h\;\rightarrow\;\langle\neg\; \\ \langle\exists i:\textsf{SS}g=\textsf{SS}i\;\wedge\;\neg\;\exists j:\exists k:\textsf{SS}g=\textsf{SS}j\cdot\textsf{SS}k\rangle \\ \;\vee\;\textsf{SS}g=p\rangle\rangle\rangle \rangle\rangle \rangle \rangle\rangle\rangle \\ \;\wedge\; \langle\neg\;a=0\;\wedge\; \\ \exists e:\exists f:\exists q:\langle\langle\exists c:p=a+\textsf Sc\;\wedge\;\exists c:q=f+\textsf Sc\rangle\;\wedge\;\langle t=(e\cdot p+a)\cdot q+f\;\wedge\; \\ \langle\neg\;q=\textsf 0\;\wedge\;\forall g:\forall h:\langle q=\textsf{SS}g\cdot\textsf{SS}h\;\rightarrow\;\langle\neg\; \\ \langle\exists i:\textsf{SS}g=\textsf{SS}i\;\wedge\;\neg\;\exists j:\exists k:\textsf{SS}g=\textsf{SS}j\cdot\textsf{SS}k\rangle \\ \;\vee\;\textsf{SS}g=p\rangle\rangle\rangle \rangle\rangle \rangle \rangle\rangle $$
Si se fija bien, podrá reconocer tres bloques similares, correspondientes a los tres $\text{contains}$ instancias. Eso podría ayudarte a orientarte.
Alternativas
Lo anterior es un posible formulación, pero hay muchas otras. El post de Anders Kaseorg formulado $\text{primePower}$ no en términos de "todo factor primo debe ser igual a $p$ "sino que "cada factor debe ser divisible por $p$ ". En la forma ampliada esto es ciertamente más corto, pero como mi formulación es la que primero se me ocurrió, la mantendré tal cual.
En lugar de escribir $t$ como configure de todas las potencias de diez, también se podría hacer una secuencia de tales poderes. En ese caso dirías que cada par de dígitos subsiguientes tiene una potencia de diez entre ellos. Pero como seguimos necesitando el $\text{contains}$ para comprobar si $a$ está contenido, trabajar exclusivamente en platós simplifica las cosas.
¿Cómo se define la exponenciación en la aritmética de Peano? es una variante más general de esta cuestión. Las respuestas allí no utilizan base- $p$ números, sino los Teorema chino del resto para expresar una secuencia en un solo número. La gran ventaja es que el índice de la secuencia es sólo un factor de algún producto en las fórmulas que lo acompañan. En mi enfoque, es el exponente del primo, así que necesito predicados extra para formular eso. Así que la indexación es más fácil con el teorema chino del resto. Por otro lado, ver cómo se almacenan los datos en el número es más difícil. Incluso si racionalmente estás perfectamente convencido de que el teorema funciona como se anuncia, sigo pensando que es más difícil establecer una especie de comprensión visceral de cómo el único número (o más bien par de números, en mi caso $t$ y $p$ ) representa una secuencia. Esa es la razón por la que prefiero la base $p$ cifras. Sin embargo, su enfoque es más adecuado si no sólo desea establecer que $a$ es una potencia de diez, sino también caracterizar el exponente, como comprobar si $a=10^b$ para $a,b$ dadas como variables libres. El uso de una secuencia con una indexación sencilla resulta rentable en esta configuración.
Otra herramienta común para representar secuencias como números individuales es mediante el uso de un función de emparejamiento para denotar la secuencia. El primer elemento del par sería un elemento de la lista, el segundo el resto de la lista excepto ese primer elemento. Pero se trata de una estructura de datos recursiva, y ya hemos tenido bastantes problemas para expresar los conceptos recursivos más simples, así que yo no seguiría ese enfoque aquí. Lo mismo ocurre con la idea de representar un conjunto escribiendo tantos números primos distintos como elementos tenga el conjunto, y utilizando los elementos del conjunto como exponentes de los números primos. Para descifrar esto, no sólo hay que reconocer las potencias de los números primos, sino también identificar el exponente. Una vez que puedes expresar estas cosas, la respuesta a este problema es una aplicación bastante trivial.
0 votos
Este puesto de Anders Kaseorg tiene un buen artículo sobre cómo expresar esa condición. Estoy pensando en convertirlo en una respuesta, pero todavía no estoy satisfecho con la forma en que estoy añadiendo mi propio toque a la misma.
0 votos
Ver también esta otra pregunta para otro intento fallido de formular este predicado, también publicado en MathOverflow (y cerrado allí). ¿Cómo se define la exponenciación en la aritmética de Peano? aborda la cuestión central en un contexto más general y ofrece algunas buenas respuestas.