B.5: Inducción estructural
- Page ID
- 103523
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Hasta el momento hemos utilizado la inducción para establecer resultados sobre todos los números naturales. Pero un principio correspondiente se puede usar directamente para probar resultados sobre todos los elementos de un conjunto definido inductivamente. Esto a menudo se llama inducción estructural, porque depende de la estructura de los objetos definidos inductivamente.
Generalmente, una definición inductiva viene dada por (a) una lista de elementos “iniciales” del conjunto y (b) una lista de operaciones que producen nuevos elementos del conjunto a partir de los antiguos. En el caso de términos agradables, por ejemplo, los objetos iniciales son las letras. Solo tenemos una operación: las operaciones son Incluso\[\begin{aligned} o(s_1, s_2) = & [s_1 \circ s_2]\end{aligned}\] puedes pensar en los\(\Nat\) propios números naturales como dados por una definición inductiva: el objeto inicial es\(0\), y la operación es la función sucesora\(x + 1\).
Para probar algo sobre todos los elementos de un conjunto definido inductivamente, es decir, que cada elemento del conjunto tiene una propiedad\(P\), debemos:
-
Demostrar que los objetos iniciales tienen\(P\)
-
Demostrar que para cada operación\(o\), si los argumentos tienen\(P\), también lo hace el resultado.
Por ejemplo, para probar algo sobre todos los términos agradables, demostraríamos que es cierto sobre todas las letras, y que es cierto sobre\([s_1 \circ s_2]\) siempre que sea cierto\(s_1\) e\(s_2\) individualmente.
Proposición\(\PageIndex{1}\)
El número de\([\) es igual al número de\(]\) en cualquier término agradable\(t\).
Prueba. Utilizamos inducción estructural. Los términos agradables se definen inductivamente, con letras como objetos iniciales y las operaciones\(o\) para construir nuevos términos agradables a partir de los antiguos.
-
El reclamo es cierto para cada letra, ya que el número de\([\) en una letra por sí mismo es\(0\) y el número de\(]\) en ella también lo es\(0\).
-
Supongamos que el número de\([\) in\(s_1\) es igual al número de\(]\), y lo mismo es cierto para\(s_2\). El número de\([\) in\(o(s_1, s_2)\), es decir\([s_1 \circ s_2]\), in, es la suma del número de\([\) in\(s_1\) y\(s_2\). El número de\(]\) in\(o(s_1, s_2)\) es la suma del número de\(]\) in\(s_1\) y\(s_2\). Así, el número de\([\) in\(o(s_1, s_2)\) es igual al número de\(]\) in\(o(s_1,s_2)\).
◻
Problema\(\PageIndex{1}\)
Demostrar por inducción estructural que ningún término agradable comienza con\(]\).
Demos otra prueba por inducción estructural: un segmento inicial apropiado de una cadena\(t\) de símbolos es cualquier cadena\(s\) que concuerde con\(t\) símbolo por símbolo, leído desde la izquierda, pero que\(t\) sea más largo. Entonces, e.g.,\([a \circ {}\) es un segmento inicial apropiado de\([a \circ b]\), pero tampoco lo son\([b \circ {}\) (no están de acuerdo en el segundo símbolo) ni\([a \circ b]\) (tienen la misma longitud).
Cada segmento inicial adecuado de un buen término\(t\) tiene más que\([\)\(]\)'s.
Prueba. Por inducción en\(t\):
-
\(t\)es una letra por sí misma: Entonces no\(t\) tiene segmentos iniciales adecuados.
-
\(t = [s_1 \circ s_2]\)por algunos buenos términos\(s_1\) y\(s_2\). Si\(r\) es un segmento inicial adecuado de\(t\), hay una serie de posibilidades:
-
\(r\)es solo\([\): Entonces\(r\) tiene uno\([\) más que lo hace\(]\).
-
\(r\)es\([r_1\) donde\(r_1\) es un segmento inicial apropiado de\(s_1\): Ya que\(s_1\) es un término agradable, por hipótesis de inducción,\(r_1\) tiene\([\) más de\(]\) y lo mismo es cierto para\([r_1\).
-
\(r\)es\([s_1\) o\([s_1 \circ {}\): Por el resultado anterior, el número de\([\) y\(]\) en\(s_1\) son iguales; por lo tanto, el número de\([\) in\([s_1\) o\([s_1 \circ {}\) es uno más que el número de\(]\).
-
\(r\)es\([s_1 \circ r_2\) donde\(r_2\) es un segmento inicial apropiado de\(s_2\): Por hipótesis de inducción,\(r_2\) contiene\([\) más de\(]\). Por el resultado anterior, el número de\([\) y de\(]\) in\(s_1\) son iguales. Entonces el número de\([\) in\([s_1 \circ r_2\) es mayor que el número de\(]\).
-
\(r\)es\([s_1 \circ s_2\): Por el resultado anterior, el número de\([\) y\(]\) en\(s_1\) son iguales, y lo mismo para\(s_2\). Entonces hay uno\([s_1 \circ s_2\) más\([\) adentro de lo que hay\(]\).
-
◻