Skip to content
This repository was archived by the owner on Mar 23, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified Proba/main.pdf
Binary file not shown.
4 changes: 1 addition & 3 deletions document.setup.tex
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}

\usepackage{inputenc}
\usepackage{fvextra}

\usepackage{algpseudocode}
\usepackage{algorithmicx}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[spanish]{babel}
Expand Down Expand Up @@ -36,7 +35,6 @@
\usepackage{wrapfig}
\usepackage{minted}


\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{automata}
Expand Down
10 changes: 5 additions & 5 deletions resumenes.code-workspace
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"folders": [
{
"path": "tleng"
}
"folders": [
{
"path": "."
}
],
"settings": {}
}
}
4 changes: 4 additions & 0 deletions tleng/custom.comands.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
\newcommand{\blue}[1]{{\color{blue}#1}}
\newcommand{\green}[1]{{\color{darkgreen}#1}}

\newcommand{\deriva}{\overset{*}{\Rightarrow}}

\newcommand{\resulta}[1]{\underset{#1}{\vdash}}
\newcommand{\resultam}[1]{\overset{*}{\resulta{#1}}}
\newcommand{\iffa}[1]{
\underset{\text{#1}}{\iff}
}
Expand Down
Binary file added tleng/imagenes/anbnanbn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tleng/imagenes/gic.pumping.tree.colapsable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tleng/imagenes/gic.pumping.tree.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tleng/imagenes/mt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tleng/main.pdf
Binary file not shown.
27 changes: 20 additions & 7 deletions tleng/main.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
\documentclass[10pt,a4paper]{book}

\input{../document.setup}

\title{Teoría de Lenguajes}
Expand All @@ -7,26 +9,37 @@
\theoremstyle{definition}
\newtheorem{definition}{Definición}[section]
\newtheorem{teorema}{Teorema}[section]
\newtheorem{lemma}{Lema}[section]

\begin{document}
\maketitle
\maketitle
\tableofcontents
\newpage

\input{secciones/introduccion.tex}
\chapter{La que da Julio}
\input{secciones/julio/introduccion.tex}
\newpage
\input{secciones/julio/automatas.tex}

\newpage
\input{secciones/julio/expresiones.regulares.tex}

\newpage
\input{secciones/julio/minimizacion.afd.tex}

\newpage
\input{secciones/automatas.tex}
\input{secciones/julio/lenguajes.regulares.tex}

\newpage
\input{secciones/expresiones.regulare.tex}
\input{secciones/julio/automatas.pila.tex}

\newpage
\input{secciones/minimizacion.afd.tex}
\input{secciones/julio/gramaticas.independientes.tex}

\newpage
\input{secciones/lenguajes.regulares.tex}
\input{secciones/julio/maquinas.turing.tex}

\newpage
\input{secciones/automatas.pila.tex}
\chapter{La que da Vero}
\input{secciones/vero/gramaticas.chomsky.tex}
\end{document}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
\section{Autómatas de Pila}
\label{sec:automatas-pila}

Los autómatas de pila (AP) son autómatas fínitos que además tienen la cpaidad de almacenar información en una pila con dos operaciones básicas: apilar y desapilar. La operación apilar consiste en agregar un elemento a la pila, mientras que la operación desapilar consiste en eliminar el elemento que se encuentra en la cima de la misma.
Los autómatas de pila (AP) son autómatas fínitos que además tienen la capacidad de almacenar información en una pila con dos operaciones básicas: apilar y desapilar. La operación apilar consiste en agregar un elemento a la pila, mientras que la operación desapilar consiste en eliminar el elemento que se encuentra en la cima de la misma.

Cuando se va a realiar una transición, se consume un elemento de la cadena de entrada y un elemento del tope de la pila. Al moverse al nuevo estado, el automáta puushea (apila) una cadena de símbolos en la pila (que puede ser vacía).
Cuando se va a realiar una transición, se consume un elemento de la cadena de entrada y un elemento del tope de la pila. Al moverse al nuevo estado, el automáta pushea (apila) una cadena de símbolos en la pila (que puede ser vacía).

\paragraph{Definición:} Un autómata de pila (AP) es una 7-tupla $M = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ donde:

Expand Down Expand Up @@ -39,7 +39,7 @@ \subsection{Configuración instantanea}
\end{itemize}

\subsection{Lenguajes reconocidos por un autómata}
\subsection{Lenguaje aceptado por estado final}
\subsubsection{Lenguaje aceptado por estado final}
Son todas las cadenas \(\alpha\in\Sigma^*\) que hacen que el automáta llegue a un estado final \(q\in F\).

\[ \mathcal{L}(M) = \{ \alpha \in \Sigma^* \mid \exists q \in F \text{ tal que } (q_0, \alpha, Z_0) \overset{*}{\vdash} (q, \lambda, Z_0) \} \]
Expand Down Expand Up @@ -173,6 +173,8 @@ \subsection{Autómatas de pila deterministicos}
\item \(|\delta(q,\lambda, A) = 1 \implies |\delta(q, a, A)| = 0\)
\end{enumerate}

No es cierto que para cada autómata de pila no deterministico exista un autómata de pila deterministico que acepte el mismo lenguaje.

\subsubsection{Propiedad del prefijo}
Se dice que un lenguaje \(L\) posee la \textbf{propiedad del prefijo} si y sollo si para todo par de cadenas \textbf{no nulas} \(x\) e \(y\) es cierto que \(x \in L \implies xy\notin L\).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ \subsubsection{Demostración}

Y como dijimos, más arriba si calculamos \(R^0_{1,j}\) para cada \(q_j\in F\) y unimos todas las expresiones, obtendremos la expresión regular que representa el lenguaje \(\mathcal{L}\).

\newpage
\subsection{Gramática regular a AFND}
Dada una grámatica regular \(G = \langle V_N, V_T, P, S\rangle\), podemos construir un AFND \\ \(M=\langle Q,\Sigma, \delta, q_0, F\rangle\) que reconozca el lenguaje generado por \(G\)

Expand All @@ -173,41 +172,41 @@ \subsubsection{Demostración}
\end{itemize}

\paragraph{Equivalencia clausura transitiva de producciones y \(\delta\): } Vamos a probar por inducción que
\[A \overset{*}{\Rightarrow} \alpha B \iff q_B\in\hat\delta(q_A, \alpha)\]
\[A \deriva \alpha B \iff q_B\in\hat\delta(q_A, \alpha)\]

\begin{itemize}
\item \textbf{Caso base \(\alpha = \lambda\):}
\begin{itemize}
\item \(A\overset{*}{\Rightarrow} \alpha B\), pero las gramáticas regulares no acentan producciones que vayan de un no terminal a otro sin pasar por un terminal, por lo que \(B = A\). Osea \(A\overset{*}{\Rightarrow} \alpha A\).
\item \(A\deriva \alpha B\), pero las gramáticas regulares no acentan producciones que vayan de un no terminal a otro sin pasar por un terminal, por lo que \(B = A\). Osea \(A\deriva \alpha A\).
\item Además, como es un AFND, no tiene transiciones lambda, osea que \(\delta(q_A, \lambda) = \{q_A\}\), por lo que \(q_A\in\hat\delta(q_A, \alpha)\).
\end{itemize}
\item \textbf{Caso inductivo \(\alpha = \beta a\):}
\begin{align*}
A\overset{*}{\Rightarrow} \alpha B \iff & A\overset{*}{\Rightarrow} \beta aB \iffa{def.} \red{\exists C\in V_N: A \overset{*}{\Rightarrow} \beta C} \wedge \blue{C\rightarrow aB} \\
\iffab{\red{H.I}}{\blue{constr. M}} & \blue{\exists q_C\in Q, q_c\in\hat\delta(q_A,\alpha)} \land \red{q_B\in\delta(q_C,a)} \\
\iff & q_B\in \delta(\hat\delta(q_A,\alpha),a) \\
\iff & q_B\in\hat\delta(q_A, \beta a) \iff q_B\in\hat\delta(q_A, \alpha) \\
A\deriva \alpha B \iff & A\deriva \beta aB \iffa{def.} \red{\exists C\in V_N: A \deriva \beta C} \wedge \blue{C\rightarrow aB} \\
\iffab{\red{H.I}}{\blue{constr. M}} & \blue{\exists q_C\in Q, q_c\in\hat\delta(q_A,\alpha)} \land \red{q_B\in\delta(q_C,a)} \\
\iff & q_B\in \delta(\hat\delta(q_A,\alpha),a) \\
\iff & q_B\in\hat\delta(q_A, \beta a) \iff q_B\in\hat\delta(q_A, \alpha) \\
\end{align*}
\end{itemize}

\paragraph{Demostración de la equivalencia:} Vamos a demostrar que el lenguaje generado por \(G\) y \(M\) son iguales, osea que \(\alpha a\in\mathcal{L}(M)\iff S\overset{*}{\Rightarrow} \alpha a\).
\paragraph{Demostración de la equivalencia:} Vamos a demostrar que el lenguaje generado por \(G\) y \(M\) son iguales, osea que \(\alpha a\in\mathcal{L}(M)\iff S\deriva \alpha a\).
Como \(G\) es una grámatica regular, hay solo dos formas de llegar desde \(S\) hasta \(\alpha a\):
\begin{enumerate}
\item \(\exists A\in V_N: S \overset{*}{\Rightarrow} \alpha A \wedge A \rightarrow a \in P\)
\item \(\exists B\in V_N: S \overset{*}{\Rightarrow} \alpha aB \wedge B \rightarrow \lambda \in P\)
\item \(\exists A\in V_N: S \deriva \alpha A \wedge A \rightarrow a \in P\)
\item \(\exists B\in V_N: S \deriva \alpha aB \wedge B \rightarrow \lambda \in P\)
\end{enumerate}
Entonces:

\begin{align*}
S\overset{*}{\Rightarrow} \alpha a \iffa{def. G} & (\exists A\in V_N: S \overset{*}{\Rightarrow} \alpha A \wedge A \rightarrow a \in P)\lor(\exists B\in V_N: S \overset{*}{\Rightarrow} \alpha aB \wedge B \rightarrow \lambda \in P) \\
\iffa{Equiv. anterior} & (\exists q_A\in Q, q_A\in\hat\delta(q_0, \alpha) \land q_f\in\delta(q_A, a)) \lor (\exists q_B\in Q, q_B\in\hat\delta(q_0, \alpha a) \land q_B\in F) \\
\iffa{def. \(\delta\)} & q_f\in\delta(q_S, \alpha a) \lor (\exists q_B\in Q, q_B\in\hat\delta(q_0, \alpha a) \land q_B\in F) \\
\iff & \alpha a \in \mathcal{L}(M) \\
S\deriva \alpha a \iffa{def. G} & (\exists A\in V_N: S \deriva \alpha A \wedge A \rightarrow a \in P)\lor(\exists B\in V_N: S \deriva \alpha aB \wedge B \rightarrow \lambda \in P) \\
\iffa{Equiv. anterior} & (\exists q_A\in Q, q_A\in\hat\delta(q_0, \alpha) \land q_f\in\delta(q_A, a)) \lor (\exists q_B\in Q, q_B\in\hat\delta(q_0, \alpha a) \land q_B\in F) \\
\iffa{def. \(\delta\)} & q_f\in\delta(q_S, \alpha a) \lor (\exists q_B\in Q, q_B\in\hat\delta(q_0, \alpha a) \land q_B\in F) \\
\iff & \alpha a \in \mathcal{L}(M) \\
\end{align*}

Falta ver que pasa si \(\lambda\in\mathcal{L}(G)\):

\[ \lambda\in\mathcal{L}(G) \iff S\overset{*}{\Rightarrow} \lambda \iff S\rightarrow \lambda \in P \iff q_S\in F \iff \lambda \in \mathcal{L}(M)\]
\[ \lambda\in\mathcal{L}(G) \iff S\deriva \lambda \iff S\rightarrow \lambda \in P \iff q_S\in F \iff \lambda \in \mathcal{L}(M)\]
\subsection{AFD a gramática regular}
Dado un AFD \(M=\langle Q, \Sigma, \delta, q_0, F\rangle\), existe una gramática regular \(G=\langle V_N, V_T, P, S\rangle\) equivalente

Expand All @@ -222,26 +221,26 @@ \subsubsection{Demonstración}
\item \(S\rightarrow \lambda \in P \iff q_0\in F\)
\end{itemize}

\paragraph{Paso intermedio:} Vamos a demostrar por inducción: \[ \hat\delta(p,\alpha) = q \iff A_p \overset{*}{\Rightarrow} \alpha A_q\]
\paragraph{Paso intermedio:} Vamos a demostrar por inducción: \[ \hat\delta(p,\alpha) = q \iff A_p \deriva \alpha A_q\]

\begin{itemize}
\item \textbf{Caso base:} \(\alpha = \lambda\) es trivial:
\begin{align*}
& \hat\delta(p,\lambda) = q \iff A_p \overset{*}{\Rightarrow} A_p
& \hat\delta(p,\lambda) = q \iff A_p \deriva A_p
\end{align*}
\item \textbf{Caso inductivo \(\alpha = \beta a\):} Queremos probar que \(\hat\delta(p,\alpha) = q \iff A_p \overset{*}{\Rightarrow} \alpha A_q\).
\item \textbf{Caso inductivo \(\alpha = \beta a\):} Queremos probar que \(\hat\delta(p,\alpha) = q \iff A_p \deriva \alpha A_q\).

Nuestra hipotesis inductiva: \(\hat\delta(p,\beta) = q \iff A_p \overset{*}{\Rightarrow} \beta A_q\) para todo \(|\beta| \leq n\)
Nuestra hipotesis inductiva: \(\hat\delta(p,\beta) = q \iff A_p \deriva \beta A_q\) para todo \(|\beta| \leq n\)

\begin{align*}
& \hat\delta(p, \alpha) = \hat\delta(p, \beta a) = q \iffa{def.}\blue{\exists r\in Q:~\hat\delta(p,\beta) = r} \land \red{\delta(r, a) = q} \\
& \iffab{\blue{H.I}}{\red{constr. G}} \blue{\exists A_r, A_p \overset{*}{\Rightarrow} \beta A_r} \land \red{A_r \rightarrow a A_q \in P} \iff A_p \overset{*}{\Rightarrow} \beta a A_q \\
& \hat\delta(p, \alpha) = \hat\delta(p, \beta a) = q \iffa{def.}\blue{\exists r\in Q:~\hat\delta(p,\beta) = r} \land \red{\delta(r, a) = q} \\
& \iffab{\blue{H.I}}{\red{constr. G}} \blue{\exists A_r, A_p \deriva \beta A_r} \land \red{A_r \rightarrow a A_q \in P} \iff A_p \deriva \beta a A_q \\
\end{align*}
\end{itemize}

\paragraph{Demostración de equivalencia de lenguajes:}
\begin{align*}
& \alpha a\in\mathcal{L}(M) \iffa{def.} \hat\delta(q_0, \alpha a) \in F \iffa{def.} \exists q\in Q:~\hat\delta(q_0, \alpha) = q \land \delta(q,a)\in F \\
& \underset{\text{paso intermedio}}{\iff} \exists A_p, A_{q0} \overset{*}{\Rightarrow} \alpha A_p \land A_p \rightarrow a \in P \iff A_{q0} \overset{*}{\Rightarrow} \alpha a \\
& \alpha a\in\mathcal{L}(M) \iffa{def.} \hat\delta(q_0, \alpha a) \in F \iffa{def.} \exists q\in Q:~\hat\delta(q_0, \alpha) = q \land \delta(q,a)\in F \\
& \underset{\text{paso intermedio}}{\iff} \exists A_p, A_{q0} \deriva \alpha A_p \land A_p \rightarrow a \in P \iff A_{q0} \deriva \alpha a \\
& \underset{\text{def.}}{\iff} \alpha a \in\mathcal{L}(G)
\end{align*}
Loading