aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2020-02-24 17:23:53 +0100
committerJuan Marín Noguera <juan.marinn@um.es>2020-02-24 17:23:53 +0100
commit4b30e6ec24b2786d7308e86a42c3c99ad71b3953 (patch)
tree3e9692e944a4e0d80de77ecca472c1086555e1e9
parent195eb24b98dd84bc266e9af117db42c7eb784c8a (diff)
Asignaturas actuales
-rw-r--r--README.md9
-rw-r--r--bd/n.lyx166
-rw-r--r--bd/n1.lyx319
-rw-r--r--bd/n2.lyx594
-rw-r--r--cc/n.lyx171
-rw-r--r--cc/n1.lyx1200
-rw-r--r--cc/n2.lyx1032
-rw-r--r--st/n.lyx152
-rw-r--r--st/n1.lyx280
-rw-r--r--ts/n.lyx168
-rw-r--r--ts/n1.lyx2358
11 files changed, 6449 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2f2da39..2da5493 100644
--- a/README.md
+++ b/README.md
@@ -39,6 +39,15 @@ Las asignaturas de ingeniería informática que se incluyen son las siguientes:
* `pcd`: Programación Concurrente y Distribuida (sólo PDF).
* `rc`: Redes de Comunicaciones (sólo PDF).
+Las siguientes asignaturas están en progreso:
+
+* `anm`: Análisis Numérico Matricial.
+* `bd`: Bases de Datos.
+* `cc`: Compiladores.
+* `ga`: Grupos y Anillos.
+* `st`: Servicios Telemáticos.
+* `ts`: Topología de Superficies.
+
Los apuntes están escritos con [LyX](https://www.lyx.org/). En cada directorio,
el fichero `n.lyx` es el fichero principal con los apuntes de la asignatura.
En distribuciones basadas en Debian, LyX y todo lo necesario de
diff --git a/bd/n.lyx b/bd/n.lyx
new file mode 100644
index 0000000..c4b1679
--- /dev/null
+++ b/bd/n.lyx
@@ -0,0 +1,166 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Bases de Datos
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2020}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Diapositivas de clase, Universidad de Murcia.
+\end_layout
+
+\begin_layout Chapter
+Introducción
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Modelo Entidad-Relación
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/bd/n1.lyx b/bd/n1.lyx
new file mode 100644
index 0000000..429da5f
--- /dev/null
+++ b/bd/n1.lyx
@@ -0,0 +1,319 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Un
+\series bold
+dato
+\series default
+ es un hecho conocido que puede registrarse.
+ Una
+\series bold
+base de datos
+\series default
+ es un conjunto coherente de datos almacenados con significado inherente
+ sobre un
+\series bold
+dominio
+\series default
+ o
+\series bold
+universo de discurso
+\series default
+ del mundo real, diseñada, creada y cargada con datos para conseguir ciertos
+ objetivos para ciertos usuarios.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+modelo de datos
+\series default
+ es una herramienta formal para comprender y representar el mundo real para
+ conseguir una visión abstracta de un dominio, mediante tipos de datos,
+ relaciones entre ellos y restricciones que deben cumplir, e incluye operaciones
+ básicas para especificar consultas y modificar tanto los datos como su
+ estructura.
+ Tipos de modelos:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Conceptuales
+\series default
+ o
+\series bold
+de alto nivel
+\series default
+: Describe la realidad como entidades que se relacionan entre sí.
+
+\series bold
+Modelo entidad relación
+\series default
+ (
+\series bold
+MER
+\series default
+ o
+\series bold
+ERM
+\series default
+,
+\emph on
+Entity-Relationship Model
+\emph default
+), modelos
+\series bold
+orientados a objetos
+\series default
+ como
+\series bold
+UML
+\series default
+ (
+\emph on
+Unified Modeling Language
+\emph default
+).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Lógicos
+\series default
+ o
+\series bold
+de representación
+\series default
+: Los conceptos sean entendibles por usuarios finales, ocultando detalles
+ de implementación, pero estos son directamente implementables.
+ Son los más usados.
+ Distinguimos modelos lógicos
+\series bold
+basados en registros
+\series default
+, como el
+\series bold
+relacional
+\series default
+, de
+\series bold
+red
+\series default
+ o
+\series bold
+jerárquico
+\series default
+, y
+\series bold
+orientados a objetos
+\series default
+, más próximos a los conceptuales.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Físicos
+\series default
+ o
+\series bold
+de bajo nivel
+\series default
+: Dirigidos a especialistas en informática, describen la estructura física,
+ incluyendo el formato y ordenamiento de los registros, los tamaños de página
+ y de bloque y los caminos o estructuras de acceso a datos, como ficheros
+ índice.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+sistema de gestión de bases de datos
+\series default
+ (SGBD) es un software para definir el
+\series bold
+esquema
+\series default
+ de una base de datos según un modelo; crear la base de datos en un almacenamien
+to según el esquema; manipularla consultando, introduciendo, modificando
+ o eliminando datos para reflejar cambios en el dominio y generar informes
+ a partir de los datos, y controlar el acceso a la base de datos proporcionando
+ seguridad, integridad, control de concurrencia y recuperación tras fallos,
+ y ofreciendo un catálogo de
+\series bold
+metadatos
+\series default
+, descripciones de los datos.
+
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+sistema de bases de datos
+\series default
+ consta de una base de datos, un sistema de gestión y software de aplicación
+ para usar la base de datos.
+ El
+\series bold
+estado
+\series default
+ de una base de datos es el conjunto de datos,
+\series bold
+instancias
+\series default
+ de los elementos del esquema, que contiene la base de datos en un instante
+ concreto.
+\end_layout
+
+\begin_layout Standard
+Un diagrama de un esquema en un modelo está compuesto de esquemas de tipos
+ de registro, y generalmente solo muestra algunos aspectos del esquema.
+
+\end_layout
+
+\begin_layout Standard
+El diseño de una base de datos se hace para satisfacer los requisitos de
+ contenido de usuarios y aplicaciones, estructurando los datos de forma
+ natural, fácil de entender y flexible para poder modificar el esquema posterior
+mente, y para soportar los requisitos de procesamiento y rendimiento.
+ Pasos:
+\end_layout
+
+\begin_layout Enumerate
+Recopilación de requisitos de usuario.
+\end_layout
+
+\begin_layout Enumerate
+Diseño conceptual: Análisis de los requisitos y
+\series bold
+conceptualización
+\series default
+ o diseño del esquema conceptual, que describe los requisitos de forma independi
+ente de usuarios, aplicaciones, SGBD específico o rendimiento.
+\end_layout
+
+\begin_layout Enumerate
+Elección del SGBD.
+\end_layout
+
+\begin_layout Enumerate
+Diseño lógico.
+\end_layout
+
+\begin_layout Enumerate
+Diseño físico: Obtención de un
+\series bold
+esquema interno
+\series default
+ para conseguir una implementación lo más eficiente posible del esquema
+ lógico en el SGBD elegido.
+ Las decisiones en esta fase pueden afectar al esquema lógico, aunque esto
+ no es conveniente.
+\end_layout
+
+\begin_layout Enumerate
+Implementación.
+\end_layout
+
+\begin_layout Standard
+Para el diseño usamos herramientas o recursos como diagramas, grafos, teorías,
+ modelos, lenguajes de datos (como SQL), documentación, adquisición de requisito
+s, diccionarios de datos, etc.
+ Un
+\series bold
+método
+\series default
+ es un conjunto de herramientas para facilitar la representación de los
+ datos en cada fase del diseño y de reglas para pasar de una fase a la siguiente.
+\end_layout
+
+\begin_layout Standard
+El diseño de bases de datos, guiado por los datos, y el del software, guiado
+ por los procesos, deben hacerse de forma coordinada para que el modelo
+ de procesos y el esquema conceptual sean consistentes entre ellos y completos
+ (todo dato requerido por los procesos debe estar en el esquema y toda operación
+ requerida por la base de datos debe reflejarse en el modelo de procesos).
+\end_layout
+
+\end_body
+\end_document
diff --git a/bd/n2.lyx b/bd/n2.lyx
new file mode 100644
index 0000000..65f67ab
--- /dev/null
+++ b/bd/n2.lyx
@@ -0,0 +1,594 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Es una familia de modelos propuesta por Peter P.
+ Chen en 1976 con extensiones y aportaciones de muchos otros autores, muy
+ extendida y soportada por herramientas
+\series bold
+CASE
+\series default
+ (
+\emph on
+Computer-Aided Software Engineering
+\emph default
+) de bases de datos.
+\end_layout
+
+\begin_layout Section
+Entidades
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+entidad
+\series default
+ (
+\emph on
+entity
+\emph default
+) es aquello del mundo real con existencia propia distinguible del resto,
+ sea esta física o real, y abstracta o conceptual.
+ Un
+\series bold
+atributo
+\series default
+ (
+\emph on
+attribute
+\emph default
+) es una propiedad de una entidad, de forma que una entidad particular se
+ describe por los valores de sus atributos.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+tipo de entidad
+\series default
+ (
+\emph on
+entity set
+\emph default
+) es un conjunto de entidades con los mismos atributos, y describe el
+\series bold
+esquema
+\series default
+ o
+\series bold
+intensión
+\series default
+ para un conjunto de entidades, las
+\series bold
+instancias
+\series default
+ del tipo, con la misma estructura.
+ Las instancias de un tipo de entidad se agrupan en un
+\series bold
+conjunto de entidades
+\series default
+ o
+\series bold
+extensión
+\series default
+.
+ Representamos un tipo de entidad con un rectángulo que contiene el nombre
+ del tipo.
+\end_layout
+
+\begin_layout Section
+Atributos
+\end_layout
+
+\begin_layout Standard
+Un atributo se representa con una elipse que contiene su nombre, y se une
+ con una línea al tipo de entidad que lo tiene.
+ Su
+\series bold
+dominio
+\series default
+ (
+\emph on
+value set
+\emph default
+) es el conjunto de valores que puede adoptar.
+\end_layout
+
+\begin_layout Standard
+Un atributo es
+\series bold
+simple
+\series default
+ si es indivisible o
+\series bold
+compuesto
+\series default
+ si puede dividirse en otros con significado propio, lo que representamos
+ uniendo los subatributos con el atributo compuesto en vez de con el tipo
+ de entidad.
+ Es
+\series bold
+almacenado
+\series default
+ si su valor procede del mundo real o
+\series bold
+derivado
+\series default
+ si se calcula a partir de otra información ya existente, siendo por tanto
+ redundante, y en tal caso la elipse se dibuja punteada.
+\end_layout
+
+\begin_layout Standard
+Es
+\series bold
+monovalorado
+\series default
+ o
+\series bold
+monovaluado
+\series default
+ si solo admite un valor para cada instancia en cada momento, o
+\series bold
+multivalorado
+\series default
+ o
+\series bold
+multivaluado
+\series default
+ si puede tener más de un valor a la vez para la misma entidad, en cuyo
+ caso la elipse es doble.
+
+\end_layout
+
+\begin_layout Standard
+Un atributo es
+\series bold
+opcional
+\series default
+ si su valor puede ser
+\series bold
+nulo
+\series default
+ (
+\emph on
+null value
+\emph default
+), que indica que el valor existe pero no se conoce, no se sabe si existe
+ o no o la entidad concreta no tiene ningún valor aplicable para el atributo.
+
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+cardinalidad
+\series default
+ de un atributo es un par
+\begin_inset Formula $(m,n)$
+\end_inset
+
+ donde
+\begin_inset Formula $0\leq m\leq n\leq+\infty$
+\end_inset
+
+,
+\begin_inset Formula $m<+\infty$
+\end_inset
+
+, que indica que una instancia del padre puede tener un mínimo de
+\begin_inset Formula $m$
+\end_inset
+
+ y un máximo de
+\begin_inset Formula $n$
+\end_inset
+
+ (o no tener máximo si
+\begin_inset Formula $n=+\infty$
+\end_inset
+
+) para el atributo.
+ Se indica añadiendo el par a la línea que conecta al atributo con el padre,
+ cambiando
+\begin_inset Formula $+\infty$
+\end_inset
+
+ por una letra, siendo los valores por defecto
+\begin_inset Formula $(1,1)$
+\end_inset
+
+ para atributos monovalorados o
+\begin_inset Formula $(1,+\infty)$
+\end_inset
+
+ para multivalorados.
+
+\end_layout
+
+\begin_layout Standard
+Un atributo
+\series bold
+clave
+\series default
+ o
+\series bold
+identificador
+\series default
+ es uno con valor distinto para cada entidad, y se indica subrayando el
+ nombre.
+ Una
+\series bold
+clave compuesta
+\series default
+ es un conjunto mínimo de atributos que, juntos, actúan como una clave,
+ y se indica añadiendo un punto en cada línea que une un elemento del conjunto
+ con su padre, uniendo estos puntos y haciendo esta unión el padre de un
+ nuevo atributo con nombre subrayado.
+
+\end_layout
+
+\begin_layout Standard
+Si hay varias claves, las llamamos
+\series bold
+identificadores candidatos
+\series default
+ (ICs) y, de entre ellas, elegimos uno como
+\series bold
+identificador principal
+\series default
+ (IP), que indicamos añadiendo
+\begin_inset Quotes cld
+\end_inset
+
+IP
+\begin_inset Quotes crd
+\end_inset
+
+ a la línea que lo une con el padre, y llamando al resto
+\series bold
+identificadores alternativos
+\series default
+.
+\end_layout
+
+\begin_layout Section
+Relaciones
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+tipo de relación
+\series default
+ es una estructura genérica o abstracción de un conjunto de
+\series bold
+relaciones
+\series default
+ o
+\series bold
+interrelaciones
+\series default
+ (
+\emph on
+relationship
+\emph default
+), asociación entre varias entidades representadas por el tipo de relación
+ y una
+\begin_inset Formula $n$
+\end_inset
+
+-upla de entidades con
+\begin_inset Formula $n\geq2$
+\end_inset
+
+, donde las tuplas del mismo tipo tienen igual tamaño y cada posición de
+ estas tiene valores de un mismo tipo de entidad y cumple un mismo
+\series bold
+rol
+\series default
+ o
+\series bold
+papel
+\series default
+ en la relación.
+
+\end_layout
+
+\begin_layout Standard
+Un tipo de relación se representa por un rombo que contiene el nombre del
+ tipo con una línea de unión al tipo de entidad por cada elemento de las
+ relaciones que contiene.
+ El rol se puede indicar en esta línea mediante su nombre o se puede inferir
+ del orden de lectura de arriba a abajo y de izquierda a derecha según dónde
+ se hayan conectado las líneas.
+
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+grado
+\series default
+ de un tipo de relación es el número de tipos de entidad que participan.
+ Una relación es
+\series bold
+binaria
+\series default
+ si su tipo de relación es de grado 2,
+\series bold
+ternaria
+\series default
+ si es de grado 3,
+\series bold
+cuaternaria
+\series default
+ si es de grado 4, etc., y
+\series bold
+reflexiva
+\series default
+ o
+\series bold
+recursiva
+\series default
+ si es de grado 1.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+cardinalidad
+\series default
+ de una posición en un tipo de relación es el número de relaciones que puede
+ haber del tipo en que la posición de la tupla tiene un mismo elemento.
+ Se representa igual que la cardinalidad de atributos, en la línea que une
+ el tipo de relación con el tipo de entidad, y es obligatorio indicarla.
+\end_layout
+
+\begin_layout Standard
+Una puede tener atributos, pero no claves, y estos se representan poniendo
+ el tipo de relación como
+\begin_inset Quotes cld
+\end_inset
+
+padre
+\begin_inset Quotes crd
+\end_inset
+
+ del atributo.
+\end_layout
+
+\begin_layout Standard
+Un tipo de entidad es
+\series bold
+fuerte
+\series default
+ si tiene un atributo identificador o
+\series bold
+débil
+\series default
+ si no lo tiene, en cuyo caso debe estar en una o varias relaciones de cardinali
+dad
+\begin_inset Formula $(1,1)$
+\end_inset
+
+ con tipos de entidad fuerte y, si es necesario, incluir una
+\series bold
+clave parcial
+\series default
+ o
+\series bold
+discriminante
+\series default
+, de forma que, dadas dos entidades distintas del tipo, o estas difieren
+ en la entidad fuerte con la que se relacionan para alguna relación, o difieren
+ en la clave parcial.
+
+\end_layout
+
+\begin_layout Standard
+Las claves parciales pueden ser compuestas, puede haber varias y se representan
+ como los identificadores pero haciendo el subrayado punteado.
+ Para indicar que un tipo de entidad es débil, se rodea de un doble rectángulo
+ y se hacen dobles tanto las líneas que las unen con tipos de relación con
+ entidades fuertes que participan de la identificación como los rombos que
+ representan estos tipos de relación.
+\end_layout
+
+\begin_layout Standard
+A veces una herramienta de diseño solo permite relaciones entre dos entidades,
+ en cuyo caso podemos representar un tipo de relación entre más entidades
+ como un tipo de entidad débil con una relación binaria identificadora por
+ cada posición de las relaciones.
+\end_layout
+
+\begin_layout Section
+Tipos de relación excluyentes
+\end_layout
+
+\begin_layout Standard
+Dos o más tipos de relación son
+\series bold
+exclusivos
+\series default
+ respecto a una posición de cada uno con un mismo tipo de entidad si cada
+ instancia de dicho tipo solo puede participar en uno de los tipos en dicha
+ posición.
+ Esto se representa con una curva que corta con todas las uniones entre
+ el tipo de entidad y los tipos de relación para dichas posiciones.
+\end_layout
+
+\begin_layout Standard
+Un tipo de entidad puede ser
+\series bold
+subtipo
+\series default
+ de otro, creando una
+\series bold
+jerarquía
+\series default
+ entre tipos de entidad que se puede formar
+\series bold
+especialización
+\series default
+, partiendo del tipo general y creando a los específicos, o por
+\series bold
+generalización
+\series default
+, partiendo de los específicos y creando el general.
+ El tipo de entidad general es el
+\series bold
+supertipo
+\series default
+ de los específicos.
+\end_layout
+
+\begin_layout Standard
+En general los subtipos están definidos según una característica distintiva
+ o
+\series bold
+discriminante
+\series default
+ de las entidades del supertipo.
+ Este se representa mediante un círculo sin nombre, que puede tener atributos
+ y que se une con una línea al supertipo y con una línea cortada por una
+ curva a cada subtipo.
+ Un subtipo puede tener atributos propios específicos y participar en relaciones
+, y
+\series bold
+hereda
+\series default
+ todos los atributos del supertipo y relaciones en las que participa.
+\end_layout
+
+\begin_layout Standard
+Para un cierto discriminante, los subtipos son
+\series bold
+solapados
+\series default
+ (
+\emph on
+overlapped
+\emph default
+) si una instancia del supertipo puede serlo de más de un subtipo, opción
+ por defecto que puede representarse si se quiere con una
+\begin_inset Quotes cld
+\end_inset
+
+o
+\begin_inset Quotes crd
+\end_inset
+
+ dentro del círculo, o
+\series bold
+disjuntos
+\series default
+ si una instancia del supertipo puede serlo de un solo subtipo como máximo,
+ lo que se representa con una
+\begin_inset Quotes cld
+\end_inset
+
+d
+\begin_inset Quotes crd
+\end_inset
+
+ dentro del círculo.
+\end_layout
+
+\begin_layout Standard
+La especialización puede ser
+\series bold
+parcial
+\series default
+ si puede haber instancias que no pertenecen a ninguno de los subtipos,
+ la opción por defecto, o
+\series bold
+total
+\series default
+ o
+\series bold
+completa
+\series default
+ si toda instancia del supertipo debe serlo también de uno de los subtipos,
+ lo que se representa haciendo doble la línea que une el supertipo con el
+ discriminante.
+\end_layout
+
+\end_body
+\end_document
diff --git a/cc/n.lyx b/cc/n.lyx
new file mode 100644
index 0000000..7ffc706
--- /dev/null
+++ b/cc/n.lyx
@@ -0,0 +1,171 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\begin_preamble
+\usepackage{tikz}
+\end_preamble
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Compiladores
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2020}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Apuntes de Compiladores, María Antonia Cárdenas Viedma, Eduardo Martínez
+ Graciá y María Antonia Martínez Carreras (2018), Grado en Ingeniería Informátic
+a, Universidad de Murcia.
+\end_layout
+
+\begin_layout Chapter
+Traductores e intérpretes
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Análisis léxico
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/cc/n1.lyx b/cc/n1.lyx
new file mode 100644
index 0000000..602e833
--- /dev/null
+++ b/cc/n1.lyx
@@ -0,0 +1,1200 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\begin_preamble
+\usepackage{tikz}
+\end_preamble
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+program#1#2{-- ++(1.5,0) -- ++(0,1) arc(-90:90:0.5) -- ++(-1.5,0) arc(90:270:0.5)
+ -- ++(0,-1) ++(0.75,0.5) node{#2} ++(0,1) node{#1} ++(-0.75,-1.5)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+translator#1#2#3{-- ++(1.5,0) -- ++(0,1) -- ++(0.7,0) -- ++(0,1) -- ++(-2.9,0)
+ -- ++(0,-1) -- ++(0.7,0) -- ++(0,-1) ++(0,1.5) node{#1} ++(0.75,0) node{$
+\backslash
+longrightarrow$} ++(0.75,0) node{#2} ++(-0.75,-1) node{#3} ++(-0.75,-0.5)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+machine#1{-- ++(0.75,-0.5) -- ++(0.75,0.5) -- ++(0,1) -- ++(-1.5,0) -- ++(0,-1)
+ ++(0.75,0.5) node{#1} ++(-0.75,-0.5)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+run#1{++(0,1) #1 ++(0,-1)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+source#1{++(-2.2,1) #1 ++(2.2,-1)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+object#1{++(2.2,1) #1 ++(-2.2,-1)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+interpreter#1#2{-- ++(1.5,0) -- ++(0,2) -- ++(-1.5,0) -- ++(0,-2) ++(0.75,0.5)
+ node{#2} ++(0,1) node{#1} ++(-0.75,-1.5)}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+interpret#1{++(0,2) #1 ++(0,-2)}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+lenguaje de programación
+\series default
+ es una notación formal para expresar algoritmo.
+ Distinguimos lenguajes:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+De primera generación
+\series default
+ o
+\series bold
+lenguajes máquina
+\series default
+, código binario entendible directamente por un procesador y dependiente
+ de la máquina.
+ Los programas son difíciles de leer, escribir, modificar y corregir, por
+ lo que el desarrollo es lento y propenso a fallos.
+
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+De segunda generación
+\series default
+ o
+\series bold
+ensambladores
+\series default
+, creados al comienzo de los años 50, y que permiten usar abreviaturas mnemotécn
+icas para representar las instrucciones de la máquina y códigos octales
+ o hexadecimales para valores.
+ También permiten crear macros, secuencias de instrucciones parametrizadas
+ para uso frecuente.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+De tercera generación
+\series default
+ o
+\series bold
+de alto nivel
+\series default
+, que permiten usar estructuras de control basadas en objetos lógicos y
+ especificar los datos, funciones o procesos de forma independiente de la
+ máquina.
+ Fortran, Cobol, C, C++, Java.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+De cuarta generación
+\series default
+, para problemas específicos, como SQL para bases de datos o PostScript
+ para dar formato a texto.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+De quinta generación
+\series default
+ o
+\series bold
+declarativos
+\series default
+, como Prolog o Haskell, con los que se especifica el cálculo que se quiere
+ realizar más que cómo debe realizarse.
+\end_layout
+
+\begin_layout Section
+Traductores
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+traductor
+\series default
+ es un programa que acepta textos en un lenguaje de programación
+\series bold
+fuente
+\series default
+ (
+\series bold
+programa fuente
+\series default
+) y genera otro semánticamente equivalente en un lenguaje de programación
+
+\series bold
+destino
+\series default
+ (
+\series bold
+programa objeto
+\series default
+).
+ Tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Preprocesador
+\series default
+: traductor de una forma extendida de un lenguaje de alto nivel a su forma
+ estándar.
+ Reúne el programa fuente, a menudo dividido en módulos en ficheros distintos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Compilador
+\series default
+: de un lenguaje de alto nivel a otro de bajo nivel, informando también
+ de cualquier error detectado en el programa fuente.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Cruzado
+\series default
+ (
+\emph on
+cross-compiler
+\emph default
+): se ejecuta sobre una
+\series bold
+máquina huésped
+\series default
+ pero genera código para una
+\series bold
+máquina destino
+\series default
+ distinta.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Just-in-time
+\series default
+\emph default
+ (
+\series bold
+JIT
+\series default
+): Traduce código de una máquina abstracta a código de una máquina real
+ según se necesite durante la ejecución de dicho código.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Optimizador
+\series default
+: modifica el código intermedio o el código objeto para mejorar su eficiencia,
+ sin alterar la funcionalidad del programa original.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Ensamblador
+\series default
+: de un lenguaje ensamblador a su correspondiente código máquina.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Traductor de alto nivel
+\series default
+: la fuente y el destino son lenguajes de alto nivel.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Desensamblador
+\series default
+: de un código máquina a su correspondiente lenguaje ensamblador.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Descompilador
+\series default
+: de un lenguaje de bajo nivel a otro de alto nivel.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+traductor de
+\begin_inset Formula $n$
+\end_inset
+
+ etapas
+\series default
+ es el traductor resultante de componer
+\begin_inset Formula $n$
+\end_inset
+
+ traductores, manejando
+\begin_inset Formula $n-1$
+\end_inset
+
+ lenguajes intermedios.
+ Un traductor es
+\series bold
+de una pasada
+\series default
+ si genera el código objeto realizando una única lectura del código fuente,
+ o
+\series bold
+de múltiples pasadas
+\series default
+ si procesa varias veces el código fuente o alguna representación intermedia
+ de este.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{center}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{tikzpicture}
+\backslash
+draw (0,0)
+\backslash
+program{$P$}{$L$};
+\backslash
+end{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+hfil
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{tikzpicture}
+\backslash
+draw (0,0)
+\backslash
+translator{$S$}{$D$}{$I$};
+\backslash
+end{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+hfil
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{tikzpicture}
+\backslash
+draw (0,0)
+\backslash
+machine{$M$};
+\backslash
+end{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{center}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:diag"
+
+\end_inset
+
+De izquierda a derecha, diagrama de un programa común, de un traductor y
+ de una máquina.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Representamos programas, traductores (que también son programas) y máquinas
+ como se muestra en la figura
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:diag"
+plural "false"
+caps "false"
+noprefix "false"
+
+\end_inset
+
+, donde
+\begin_inset Formula $P$
+\end_inset
+
+ es el nombre del programa,
+\begin_inset Formula $L$
+\end_inset
+
+ es el lenguaje en que está representado,
+\begin_inset Formula $S$
+\end_inset
+
+ es el lenguaje fuente del traductor,
+\begin_inset Formula $D$
+\end_inset
+
+ es el lenguaje destino,
+\begin_inset Formula $I$
+\end_inset
+
+ es el
+\series bold
+lenguaje de implementación
+\series default
+, en el que está representado el traductor, y
+\begin_inset Formula $M$
+\end_inset
+
+ es el lenguaje máquina aceptado.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{center}
+\backslash
+begin{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+draw (0,0)
+\backslash
+machine{$M$}
+\backslash
+run{
+\backslash
+translator{$S$}{$D$}{$M$}
+\backslash
+source{
+\backslash
+program{$P$}{$S$}}
+\backslash
+object{
+\backslash
+program{$P$}{$D$}}};
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{tikzpicture}
+\backslash
+end{center}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:trans"
+
+\end_inset
+
+Proceso de traducción.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Para indicar que un programa se ejecuta sobre una cierta máquina, lo situamos
+ encima, y para indicar que un traductor traduce un programa de un lenguaje
+ fuente a uno destino, situamos el programa fuente, cuyo lenguaje es el
+ lenguaje fuente del traductor, a la izquierda del mismo, y el destino,
+ de mismo nombre pero lenguaje el de destino del traductor, a la derecha.
+ Así, un proceso traductor se representa como en la figura
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:trans"
+plural "false"
+caps "false"
+noprefix "false"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Compiladores
+\end_layout
+
+\begin_layout Standard
+Un compilador se divide en fases:
+\end_layout
+
+\begin_layout Enumerate
+Fase de
+\series bold
+análisis
+\series default
+ o
+\series bold
+\emph on
+front-end
+\series default
+\emph default
+: Se determina la estructura y el significado de un código fuente creando
+ una representación intermedia.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Análisis léxico
+\series default
+: Se transforma un flujo de caracteres en un flujo de
+\series bold
+\emph on
+tokens
+\series default
+\emph default
+, que son identificadores de variables o funciones, palabras clave, constantes,
+ operadores, etc.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Análisis sintáctico
+\series default
+: Se crea un árbol sintáctico que refleja la estructura gramatical del programa.
+ Si se parte del axioma de la gramática y se va construyendo el árbol de
+ análisis hacia abajo por derivaciones por la izquierda, se habla de análisis
+
+\series bold
+descendente
+\series default
+, y si se parte de la entrada y se va generando el árbol hacia arriba por
+ reducciones por la izquierda, se habla de análisis
+\series bold
+ascendente
+\series default
+.
+ Se usan autómatas con pila para reconocer una gramática libre de contexto
+ normalmente recursiva, si bien la mayoría de lenguajes de programación
+ son dependientes del contexto.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Análisis semántico
+\series default
+: Se verifican construcciones sintácticas que no se pueden tratar con gramáticas
+ libres de contexto y se calculan valores semánticos para garantizar la
+ generación de código correcto, creando un
+\series bold
+árbol semántico
+\series default
+.
+ La semántica se especifica con métodos formales.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Generación de código intermedio
+\series default
+ en un lenguaje de bajo nivel, que debe ser fácil de producir y de traducir
+ a código objeto.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+
+\series bold
+Optimización de código intermedio
+\series default
+, resultando en un código semánticamente equivalente pero con menor consumo
+ de memoria o tiempo de ejecución.
+ No se suele producir código óptimo, pues este es un problema NP-completo.
+ Como esta fase requiere tiempo, el compilador suele ofrecer la opción de
+ desactivarla para el desarrollo o la depuración de programas.
+\end_layout
+
+\begin_layout Enumerate
+Fase de
+\series bold
+síntesis
+\series default
+ o
+\series bold
+\emph on
+back-end
+\series default
+\emph default
+: Convierte el código intermedio en un programa objeto semánticamente equivalent
+e.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Generación de código
+\series default
+: Traducción dirigida por la sintaxis, basada en la gramática del lenguaje
+ intermedio.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Optimización
+\series default
+ de código dependiente de la máquina.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+En la práctica, algunas de estas fases se agrupan, sin construir los datos
+ intermedios de forma explícita.
+
+\end_layout
+
+\begin_layout Standard
+Cuando el lenguaje de implementación y el lenguaje fuente del compilador
+ coinciden, el compilador puede compilarse a sí mismo, y hablamos de
+\series bold
+arranque
+\series default
+ o
+\emph on
+bootstrapping
+\emph default
+.
+ El primer compilador capaz de compilarse a sí mismo fue credo para Lisp
+ por Hart y Levin en el MIT en 1962, y desde 1970 esto es habitual, aunque
+ Pascal y C son alternativas muy usadas.
+\end_layout
+
+\begin_layout Standard
+Cuando un programa se divide en varios ficheros fuentes, la compilación
+ de cada uno produce un fichero objeto con código reubicable.
+ El
+\series bold
+enlazador
+\series default
+ une todos estos ficheros, así como el de las bibliotecas estáticas usadas,
+ y el
+\series bold
+cargador
+\series default
+, parte del sistema operativo, carga en memoria el ejecutable resultante
+ con las bibliotecas dinámicas usadas, uniéndolos, y salta al punto de entrada
+ del programa.
+\end_layout
+
+\begin_layout Section
+Jerarquía de lenguajes de Chomsky
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tipo 0
+\series default
+, gramáticas
+\series bold
+sin restricciones
+\series default
+ o
+\series bold
+con estructura de frase
+\series default
+, con reglas
+\begin_inset Formula $\alpha X\beta\to\gamma$
+\end_inset
+
+, siendo
+\begin_inset Formula $X$
+\end_inset
+
+ cualquier símbolo, terminal o no.
+ Reconocidos por máquinas de Turing.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tipo 1
+\series default
+, gramáticas
+\series bold
+dependientes del contexto
+\series default
+, con reglas
+\begin_inset Formula $\alpha A\beta\to\alpha\gamma\beta$
+\end_inset
+
+, siendo
+\begin_inset Formula $A$
+\end_inset
+
+ no terminal.
+ Reconocidos por autómatas linealmente acotados.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tipo 2
+\series default
+, gramáticas
+\series bold
+libres de contexto
+\series default
+, con reglas
+\begin_inset Formula $A\to\alpha$
+\end_inset
+
+ siendo
+\begin_inset Formula $A$
+\end_inset
+
+ no terminal.
+ Reconocidos por autómatas con pila.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tipo 3
+\series default
+, gramáticas
+\series bold
+regulares
+\series default
+, con reglas
+\begin_inset Formula $A\to a$
+\end_inset
+
+,
+\begin_inset Formula $A\to aB$
+\end_inset
+
+ o
+\begin_inset Formula $A\to\lambda$
+\end_inset
+
+, siendo
+\begin_inset Formula $A$
+\end_inset
+
+ y
+\begin_inset Formula $B$
+\end_inset
+
+ no terminales y
+\begin_inset Formula $a$
+\end_inset
+
+ terminal.
+ Reconocidos por autómatas finitos.
+\end_layout
+
+\begin_layout Standard
+Los lenguajes de un tipo también son de todos los tipos anteriores, aunque
+ muchos lenguajes no son de tipo 0.
+ La mayoría de lenguajes de programación son de tipo 1, aunque muchas de
+ sus reglas gramaticales pueden reducirse al tipo 2 y, para los símbolos
+ básicos del lenguaje, al tipo 3.
+\end_layout
+
+\begin_layout Section
+Intérpretes
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+intérprete
+\series default
+ es un programa que acepta un
+\series bold
+programa fuente
+\series default
+ en un
+\series bold
+lenguaje fuente
+\series default
+ y lo ejecuta inmediatamente, sin traducirlo a un código objeto.
+ Es un buen método cuando el programador está trabajando de forma interactiva;
+ el programa se va a utilizar pocas veces, con lo que el rendimiento no
+ es importante; se espera que cada instrucción se ejecuta una sola vez,
+ y las instrucciones tienen un formato simple.
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{center}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+draw (0,0)
+\backslash
+interpreter{$S$}{$M$};
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+hfil
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+draw (0,0)
+\backslash
+machine{$M$}
+\backslash
+run{
+\backslash
+interpreter{$S$}{$M$}
+\backslash
+interpret{
+\backslash
+program{$P$}{$S$}}};
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{tikzpicture}
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{center}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:interpreter"
+
+\end_inset
+
+Intérprete (izquierda) e interpretación de un programa (derecha).
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Un intérprete muy usado es el intérprete de comandos de Unix, la
+\emph on
+shell
+\emph default
+.
+ Los intérpretes los representamos como en la figura
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:interpreter"
+plural "false"
+caps "false"
+noprefix "false"
+
+\end_inset
+
+, donde
+\begin_inset Formula $S$
+\end_inset
+
+ es el lenguaje fuente y
+\begin_inset Formula $M$
+\end_inset
+
+ es la máquina sobre la que se ejecuta el intérprete.
+\end_layout
+
+\begin_layout Standard
+La interpretación de un programa en un lenguaje de alto nivel es unas 100
+ veces más lenta que la ejecución de un programa equivalente en código máquina,
+ por lo que esto no interesa cuando el programa se va a ejecutar en producción,
+ las instrucciones se van a ejecutar frecuentemente o las instrucciones
+ tienen formatos complicados.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+emulador
+\series default
+ es un intérprete cuyo lenguaje fuente es de bajo nivel, útil para verificar
+ un diseño hardware.
+ Así, podemos ver una máquina como un intérprete implementado en hardware,
+ un intérprete como una máquina implementada en software y un código máquina
+ como un lenguaje para el que existe un intérprete hardware.
+ A veces llamamos
+\series bold
+máquinas abstractas
+\series default
+ a los intérpretes para diferenciarlos de las máquinas reales.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+compilador interpretado
+\series default
+ es un traductor de un lenguaje fuente a un lenguaje intermedio diseñado
+ para que la traducción sea rápida, el nivel de abstracción sea intermedio
+ entre el lenguaje fuente y el código maquina y las instrucciones tengan
+ un formato simple, facilitando su interpretación.
+
+\end_layout
+
+\begin_layout Standard
+El código de la máquina virtual de Java (
+\series bold
+JVM
+\series default
+) es un lenguaje de este tipo, pues proporciona instrucciones que corresponden
+ directamente a operaciones como creación de objetos, llamadas a métodos
+ e indexado de matrices, facilitando la traducción de Java a código intermedio,
+ pero las instrucciones tienen un formato sencillo como las instrucciones
+ máquina, con campos de operación y operandos, facilitando la interpretación.
+ El kit de desarrollo de Java (
+\series bold
+JDK
+\series default
+) contiene un traductor de Java a código JVM, un intérprete de código JVM
+ y un compilador JIT que complementa al intérprete.
+\end_layout
+
+\begin_layout Section
+Portabilidad
+\end_layout
+
+\begin_layout Standard
+Un programa es
+\series bold
+portable
+\series default
+ si puede ser compilado y ejecutado en cualquier máquina en el código fuente.
+ La
+\series bold
+portabilidad
+\series default
+ de un programa es la porción de código que no haría falta cambiar cuando
+ el programa se mueve entre máquinas diferentes.
+\end_layout
+
+\begin_layout Standard
+Para el código ensamblador, la portabilidad es, en general, del
+\begin_inset Formula $\unit[0]{\%}$
+\end_inset
+
+, mientras que para un lenguaje de alto nivel, es del
+\begin_inset Formula $\unit[\text{95--100}]{\%}$
+\end_inset
+
+.
+ Los procesadores de lenguajes se escriben en lenguajes de alto nivel, aunque
+ los compiladores no pueden ser totalmente portables si queremos que compilen
+ al lenguaje de la implementación.
+\end_layout
+
+\end_body
+\end_document
diff --git a/cc/n2.lyx b/cc/n2.lyx
new file mode 100644
index 0000000..88c2801
--- /dev/null
+++ b/cc/n2.lyx
@@ -0,0 +1,1032 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\begin_preamble
+\usepackage{tikz}
+\end_preamble
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Un
+\series bold
+\emph on
+token
+\series default
+\emph default
+ es un par formado por un
+\series bold
+nombre de
+\emph on
+token
+\series default
+\emph default
+, que representa un tipo de unidad léxica, y un atributo opcional, cuyo
+ tipo depende del nombre de
+\emph on
+token
+\emph default
+.
+ Todo nombre de
+\emph on
+token
+\emph default
+ lleva asociado un
+\series bold
+patrón
+\series default
+, un lenguaje regular que describe las secuencias de caracteres que deben
+ ser convertidas a un
+\emph on
+token
+\emph default
+ con dicho nombre, llamadas
+\series bold
+lexemas
+\series default
+.
+
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+analizador léxico
+\series default
+ es un programa que separa una secuencia de caracteres de entrada en lexemas
+ y genera una lista ordenada de
+\emph on
+tokens
+\emph default
+, informando de errores y pudiendo hacer otras tareas como ignorar comentarios
+ y caracteres de espaciado.
+
+\end_layout
+
+\begin_layout Standard
+El analizador sintáctico usa los nombres de
+\emph on
+token
+\emph default
+ como símbolos terminales de una gramática libre de contexto, pues aunque
+ esta gramática podría incluir la definición de los
+\emph on
+tokens
+\emph default
+, dividir el análisis en dos fases simplifica el diseño, y mejora la portabilida
+d al no tener que preocuparse el analizador sintáctico de la codificación
+ de caracteres.
+ En general el analizador léxico está subordinado al sintáctico, ofreciéndole
+ una interfaz de llamadas.
+\end_layout
+
+\begin_layout Section
+Fundamentos teóricos
+\end_layout
+
+\begin_layout Standard
+Dado un alfabeto
+\begin_inset Formula $V$
+\end_inset
+
+, los símbolos
+\begin_inset Formula $\lambda$
+\end_inset
+
+ y
+\begin_inset Formula $\emptyset$
+\end_inset
+
+ y los elementos de
+\begin_inset Formula $V$
+\end_inset
+
+ son
+\series bold
+expresiones regulares
+\series default
+; también lo son
+\begin_inset Formula $(\alpha|\beta)$
+\end_inset
+
+,
+\begin_inset Formula $(\alpha\circ\beta)$
+\end_inset
+
+ y
+\begin_inset Formula $(\alpha^{*})$
+\end_inset
+
+ si
+\begin_inset Formula $\alpha$
+\end_inset
+
+ y
+\begin_inset Formula $\beta$
+\end_inset
+
+ son expresiones regulares, y solo son expresiones regulares las expresiones
+ que se obtienen aplicando estas reglas.
+ Se pueden omitir los paréntesis si no causa ambigüedad, entendiendo que
+
+\begin_inset Formula $*$
+\end_inset
+
+ tiene más precedencia que
+\begin_inset Formula $\circ$
+\end_inset
+
+ y
+\begin_inset Formula $\circ$
+\end_inset
+
+ más que
+\begin_inset Formula $|$
+\end_inset
+
+ y que los tres operadores son asociativos por la izquierda, y se puede
+ escribir
+\begin_inset Formula $\alpha\beta:=\alpha\circ\beta$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Toda expresión regular
+\begin_inset Formula $\alpha$
+\end_inset
+
+ lleva asociado un lenguaje
+\begin_inset Formula $L(\alpha)$
+\end_inset
+
+, dado por
+\begin_inset Formula $L(\emptyset):=\emptyset$
+\end_inset
+
+;
+\begin_inset Formula $L(\lambda):=\{\lambda\}$
+\end_inset
+
+; si
+\begin_inset Formula $a\in V$
+\end_inset
+
+,
+\begin_inset Formula $L(a):=\{a\}$
+\end_inset
+
+, y si
+\begin_inset Formula $\alpha$
+\end_inset
+
+ y
+\begin_inset Formula $\beta$
+\end_inset
+
+ son expresiones regulares,
+\begin_inset Formula $L(\alpha|\beta):=L(\alpha)\cup L(\beta)$
+\end_inset
+
+,
+\begin_inset Formula $L(\alpha\beta):=L(\alpha)L(\beta)$
+\end_inset
+
+ y
+\begin_inset Formula $L(\alpha^{*}):=L(\alpha)^{*}$
+\end_inset
+
+.
+ Un lenguaje es
+\series bold
+regular
+\series default
+ si es el lenguaje asociado alguna expresión regular.
+ Dos expresiones regulares son
+\series bold
+equivalentes
+\series default
+,
+\begin_inset Formula $\alpha=\beta$
+\end_inset
+
+, si
+\begin_inset Formula $L(\alpha)=L(\beta)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+AFD
+\series default
+ es una tupla
+\begin_inset Formula $(Q,V,\delta,q_{0},F)$
+\end_inset
+
+ donde
+\begin_inset Formula $Q$
+\end_inset
+
+ es un conjunto finito de
+\series bold
+estados
+\series default
+,
+\begin_inset Formula $V$
+\end_inset
+
+ es un alfabeto,
+\begin_inset Formula $q_{0}\in Q$
+\end_inset
+
+ es el
+\series bold
+estado inicial
+\series default
+,
+\begin_inset Formula $F\subseteq Q$
+\end_inset
+
+ es el conjunto de
+\series bold
+estados finales
+\series default
+ y
+\begin_inset Formula $\delta:D\subseteq(Q\times V)\to Q$
+\end_inset
+
+ es la
+\series bold
+función de transición
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+AFND
+\series default
+ es una tupla
+\begin_inset Formula $(Q,V,\delta,q_{0},F)$
+\end_inset
+
+, definida como un AFD salvo que
+\begin_inset Formula $\delta:Q\times(V\dot{\cup}\{\lambda\})\to{\cal P}(Q)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Diseño
+\end_layout
+
+\begin_layout Standard
+Para diseñar un analizador léxico usamos
+\emph on
+Flex
+\emph default
+, una herramienta multiplataforma que genera código en C basándose en un
+ fichero de especificación de expresiones regulares, sucesora de
+\emph on
+Lex
+\emph default
+ para Unix.
+ Los ficheros de especificación suelen tener extensión
+\family typewriter
+.l
+\family default
+ y constan de 3 partes separadas por una línea
+\family typewriter
+%%
+\family default
+:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\series bold
+Definiciones
+\series default
+: Macros para expresiones regulares auxiliares con formato
+\family typewriter
+\emph on
+nombre expresión
+\family default
+\emph default
+ en una línea.
+ Código C, entre una línea
+\family typewriter
+%{
+\family default
+ y una
+\family typewriter
+}%
+\family default
+.
+ Opciones con
+\family typewriter
+%option
+\emph on
+opción
+\family default
+\emph default
+.
+ Condiciones de contexto, tablas, etc.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Reglas
+\series default
+: Con forma
+\family typewriter
+\emph on
+expresión código
+\family default
+\emph default
+, donde
+\family typewriter
+\emph on
+expresión
+\family default
+\emph default
+ es una expresión regular que puede incluir macros con formato
+\family typewriter
+{
+\emph on
+nombre
+\emph default
+}
+\family default
+ y
+\family typewriter
+\emph on
+código
+\family default
+\emph default
+ es una línea de C o un bloque código entre llaves que se ejecuta cuando
+ se reconoce un lexema asociado a la expresión regular.
+ Si en el código hay una sentencia
+\family typewriter
+return
+\family default
+, esta sale del analizador léxico devolviendo el entero indicado, normalmente
+ el código de
+\emph on
+token
+\emph default
+.
+ De lo contrario sigue leyendo, por lo que es habitual usar reglas para
+ espacios y comentarios con la sentencia vacía (
+\family typewriter
+;
+\family default
+).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Subrutinas de usuario
+\series default
+: Código C auxiliar que se añade al final del fichero generado.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+La orden
+\family typewriter
+flex [-o
+\emph on
+SALIDA
+\emph default
+]
+\emph on
+FICHERO
+\family default
+\emph default
+ genera un analizador léxico
+\family typewriter
+\emph on
+SALIDA
+\family default
+\emph default
+ (por defecto,
+\family typewriter
+lex.yy.c
+\family default
+) desde la especificación
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+ Este debe enlazarse a la biblioteca
+\family typewriter
+fl
+\family default
+, por ejemplo mediante la opción
+\family typewriter
+-lfl
+\family default
+ de
+\family typewriter
+gcc
+\family default
+.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Identificar los
+\emph on
+tokens
+\emph default
+ y definir los patrones
+\end_layout
+
+\begin_layout Standard
+Se suelen considerar
+\emph on
+tokens
+\emph default
+:
+\end_layout
+
+\begin_layout Itemize
+Los identificadores.
+\end_layout
+
+\begin_layout Itemize
+Las
+\series bold
+palabras clave
+\series default
+, que pueden estar
+\series bold
+reservadas
+\series default
+, en cuyo caso el usuario no puede modificar su significado y el analizador
+ léxico puede reconocerlas directamente, o no estarlo, en cuyo caso el analizado
+r léxico debe reconocerlas como identificadores para que una fase posterior
+ las distinga.
+\end_layout
+
+\begin_layout Itemize
+Los operadores y signos de puntuación.
+\end_layout
+
+\begin_layout Itemize
+Las constantes simples, como reales, enteros, caracteres o cadenas de caracteres.
+\end_layout
+
+\begin_layout Itemize
+Los espacios en blanco y comentarios, aunque en general en analizador léxico
+ los ignora y no los devuelve.
+\end_layout
+
+\begin_layout Standard
+Las expresiones regulares en
+\emph on
+Flex
+\emph default
+ se forman combinando símbolos y operadores.
+ Los operadores son, en orden de prioridad:
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+?
+\family default
+,
+\family typewriter
+*
+\family default
+ y
+\family typewriter
++
+\family default
+, respectivamente, de 0–1, 0 o más y 1 o más repeticiones de lo anterior.
+
+\end_layout
+
+\begin_layout Enumerate
+Concatenación de símbolos.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+{
+\family default
+...
+\family typewriter
+}
+\family default
+, de repetición.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+^
+\family default
+, de comienzo de línea, y
+\family typewriter
+$
+\family default
+, de final.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+|
+\family default
+ de disyunción entre los elementos a izquierda y derecha.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+/
+\family default
+, para reconocer la expresión regular de la izquierda solo si va seguida
+ de la de la derecha (
+\emph on
+look-ahead
+\emph default
+).
+\end_layout
+
+\begin_layout Standard
+También se puede agrupar con paréntesis
+\family typewriter
+(
+\family default
+...
+\family typewriter
+)
+\family default
+, preceder un símbolo de
+\family typewriter
+
+\backslash
+
+\family default
+ para evitar que se trate como un operador o indicar una cadena de caracteres
+ literal con
+\family typewriter
+"
+\family default
+...
+\family typewriter
+"
+\family default
+.
+ Otros operadores:
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+[
+\family default
+...
+\family typewriter
+]
+\family default
+ indica disyunción entre los caracteres del conjunto indicado.
+
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+b
+\family default
+\emph default
+ indica todos los caracteres entre
+\family typewriter
+\emph on
+a
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+b
+\family default
+\emph default
+, inclusive;
+\family typewriter
+^
+\family default
+ al principio complementa el conjunto;
+\family typewriter
+
+\backslash
+
+\family default
+ indica caracteres de escape;
+\family typewriter
+[:
+\family default
+...
+\family typewriter
+:]
+\family default
+ indica una clase de caracteres como
+\family typewriter
+[:digit:]
+\family default
+ o
+\family typewriter
+[:alnum:]
+\family default
+, y cualquier otro caracter dentro de los corchetes se indica a sí mismo.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+.
+
+\family default
+ indica cualquier caracter salvo salto de línea.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+<<EOF>>
+\family default
+ indica final de fichero.
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+caracteres de anticipación
+\series default
+ a los que se leen al hacer
+\emph on
+look-ahead
+\emph default
+ para determinar el final de un
+\emph on
+token
+\emph default
+, lo que hace falta cuando hay reglas que acaban en
+\family typewriter
++
+\family default
+,
+\family typewriter
+*
+\family default
+,
+\family typewriter
+?
+\family default
+,
+\family typewriter
+$
+\family default
+ y
+\family typewriter
+/
+\family default
+, y cuando un lexema de una expresión regular puede ser prefijo de uno de
+ otra.
+
+\emph on
+Flex
+\emph default
+ maneja esto de forma automática, devolviendo a la entrada los caracteres
+ no usados (
+\emph on
+push back
+\emph default
+).
+
+\end_layout
+
+\begin_layout Standard
+En caso de ambigüedad en las reglas,
+\emph on
+Flex
+\emph default
+ reconoce el lexema más largo posible que pueda estar asociado a una expresión
+ regular, y si este puede corresponder a varias, se asocia a la que aparezca
+ antes.
+ Así, las palabras reservadas deben estar antes que la expresión regular
+ que reconoce los identificadores.
+\end_layout
+
+\begin_layout Subsection
+Construcción e implementación del autómata
+\end_layout
+
+\begin_layout Standard
+Se podría obtener un AFD correspondiente a las expresiones regulares directament
+e, pero esto es difícil, por lo que se obtiene un AFND y, como su simulación
+ es costosa, se construye entonces un AFD equivalente y se minimiza.
+ Podemos simular directamente la tabla de transiciones con los estados o
+ simular el diagrama de transiciones mediante código específico.
+ De esto se encarga
+\emph on
+Flex
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection
+Diseño de la interfaz de entrada y salida
+\end_layout
+
+\begin_layout Standard
+Para la entrada, es muy ineficiente leer el código de caracter a caracter,
+ por lo que se lee en bloques que se guardan en
+\emph on
+buffers
+\emph default
+, que deben diseñarse permitiendo secuencias largas de caracteres de anticipació
+n.
+ La salida suele ser una o varias funciones que el analizador sintáctico
+ llama para obtener el siguiente
+\emph on
+token
+\emph default
+.
+
+\emph on
+Flex
+\emph default
+ proporciona la siguiente interfaz:
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yytext
+\family default
+ Último lexema leído.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yyleng
+\family default
+ Longitud de
+\family typewriter
+yytext
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yylineno
+\family default
+ Activando la opción
+\family typewriter
+yylineno
+\family default
+, número de línea actual.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yymore()
+\family default
+ Indica que, la próxima vez que se lea un lexema, este se debería concatenar
+ al de
+\family typewriter
+yytext
+\family default
+ en vez de reemplazarlo.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yyless(int)
+\family default
+ Retrasa el puntero de lectura para que apunte al caracter de
+\family typewriter
+yytext
+\family default
+ con el índice dado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yywrap()
+\family default
+ Se ejecuta al alcanzarse el final del fichero.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yyin
+\family default
+ Descriptor de fichero de donde se lee.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+yyout
+\family default
+ Descriptor de fichero al que se escribe al usar la opción
+\family typewriter
+echo
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+input()
+\family default
+ Lee el siguiente caracter del flujo de entrada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+output(char)
+\family default
+ Escribe el caracter dado en la salida.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+unput(char)
+\family default
+ Coloca el caracter dado en el flujo de entrada, para que sea el primero
+ leído en la próxima ocasión.
+\end_layout
+
+\begin_layout Subsection
+Manejo de errores
+\end_layout
+
+\begin_layout Standard
+Una forma sencilla es la
+\series bold
+recuperación en modo pánico
+\series default
+: ignorar caracteres hasta encontrar un caracter válido para un nuevo
+\emph on
+token
+\emph default
+.
+ Para implementarlo es necesaria una expresión regular capaz de reconocer
+ un conjunto de caracteres erróneos antes del comienzo de un nuevo lexema.
+ Otras técnicas permiten borrar un caracter extraño, insertar uno que falta,
+ reemplazar un caracter incorrecto por otro correcto o intercambiar caracteres
+ adyacentes.
+\end_layout
+
+\end_body
+\end_document
diff --git a/st/n.lyx b/st/n.lyx
new file mode 100644
index 0000000..ee38f3d
--- /dev/null
+++ b/st/n.lyx
@@ -0,0 +1,152 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Servicios Telemáticos
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2020}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Diapositivas de clase, Universidad de Murcia.
+\end_layout
+
+\begin_layout Chapter
+Introducción
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/st/n1.lyx b/st/n1.lyx
new file mode 100644
index 0000000..e34cfb4
--- /dev/null
+++ b/st/n1.lyx
@@ -0,0 +1,280 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Internet es una red de redes formada por ISPs que, mediante enlaces de comunicac
+ión (fibra, cobre, ondas de radio, etc.) con un cierto ancho de banda y dispositi
+vos de conmutación como
+\emph on
+routers
+\emph default
+ y
+\emph on
+switches
+\emph default
+ que reenvían paquetes (bloques de datos), interconectan
+\emph on
+hosts
+\emph default
+ o dispositivos anfitriones que ejecutan aplicaciones de red en el extremo
+ de la red a través de accesos residenciales, institucionales (centros educativo
+s, empresas, etc.) o móviles, e interconectan sus distintas zonas entre sí
+ y con el resto de ISPs en el núcleo de la red, una malla (
+\emph on
+mesh
+\emph default
+) de
+\emph on
+routers
+\emph default
+ interconectados que enrutan paquetes de uno al siguiente entre la fuente
+ y el destino (
+\emph on
+forwarding
+\emph default
+) usando algoritmos de encaminamiento para determinar el siguiente salto
+ (
+\emph on
+routing
+\emph default
+).
+ Se puede ver como una infraestructura que ofrece servicios a aplicaciones,
+ como las de acceso a la web, voz sobre IP, correo electrónico, juegos multiusua
+rio, comercio electrónico, redes sociales, chat, compartición de ficheros,
+
+\emph on
+streaming
+\emph default
+ de vídeo, motores de búsqueda, etc., para conectarse entre sí mediante una
+ interfaz.
+\end_layout
+
+\begin_layout Standard
+Internet es muy complejo y ha evolucionado según temas económicos y políticas
+ nacionales.
+ Conectar cada ISP con cada uno de los demás no escala, y conectarlos todos
+ a uno global tampoco, y además habrá competidores que se deben interconectar.
+ El resultado es que los proveedores se interconectan mediante
+\emph on
+internet exchange points
+\emph default
+ y
+\emph on
+peering links
+\emph default
+, con conexiones entre redes regionales cercanas, con redes de proveedores
+ de contenido (
+\emph on
+content provider networks
+\emph default
+) que conectan centros de datos para ofrecer servicios y contenidos cerca
+ del usuario final, e ISPs comerciales
+\emph on
+tier-I
+\emph default
+ (Level 3, Sprint, AT&T, NTT, etc.) con cobertura nacional e internacional.
+
+\end_layout
+
+\begin_layout Standard
+Otra alternativa sería la conmutación de circuitos, usada en la red telefónica,
+ en que se dedican recursos de extremo a extremo para una llamada entre
+ la fuente y el destino.
+ Esto da un rendimiento garantizado y evita los retardos en los paquetes
+ y las pérdidas debidas a la posibilidad de congestión, pero es más complejo
+ y evita la compartición de recursos.
+ El suministro de un ancho de banda garantizado para aplicaciones de audio
+ y vídeo en conmutación de paquetes está sin resolver.
+\end_layout
+
+\begin_layout Standard
+La comunicación se hace siguiendo protocolos para el envío y recepción de
+ mensajes, bien abiertos, muchos recogidos en
+\series bold
+RFCs
+\series default
+ (
+\emph on
+Requests for Comments
+\emph default
+) de la
+\series bold
+IETF
+\series default
+ (
+\emph on
+Internet Engineering Task Force
+\emph default
+), o privativos, y divididos en niveles:
+\end_layout
+
+\begin_layout Enumerate
+Aplicación: Aplicaciones de red.
+ FTP, SMTP, HTTP.
+ Los protocolos definen los tipos de mensajes intercambiados, su sintaxis
+ (qué campos hay y cómo se delimitan), su semántica y las reglas de cuándo
+ y cómo los procesos envían y reciben mensajes.
+ Tipos:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Cliente-servidor
+\series default
+: Los clientes, que pueden estar intermitentemente conectados y tener una
+ IP dinámica, solo se comunican con el servidor, siempre activo y en línea
+ con IP fija y muchas veces en un centro de datos por escalabilidad.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+P2P
+\series default
+: No hay un servidor siempre en línea, sino que los sistemas finales se
+ comunican directamente, solicitando y ofreciendo servicios a otros equipos.
+ Esto es escalable, pues nuevos equipos añaden demanda pero también capacidad,
+ pero su gestión es compleja porque los equipos están intermitentemente
+ conectados y cambian de IP.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Transporte: Transferencia de datos entre procesos de distintos
+\emph on
+hosts
+\emph default
+.
+ TCP y UDP.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Dos procesos en un mismo
+\emph on
+host
+\emph default
+ se comunican por el sistema operativo.
+ Hay procesos clientes, que inician una comunicación, y servidores, que
+ esperan a ser conectados, y las aplicaciones P2P tienen de ambos tipos.
+ Los procesos envían y reciben mensajes por un
+\emph on
+socket
+\emph default
+, para lo cual llevan asociados un identificador, formado por la dirección
+ IP del
+\emph on
+host
+\emph default
+ y números de puerto asociados con el proceso en el
+\emph on
+host
+\emph default
+.
+ Por ejemplo, los servidores HTTP usan en general el puerto 80, y los SMTP,
+ el 25.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Red: Enrutamiento de paquetes de la fuente al destino.
+ IP, protocolos de enrutamiento.
+\end_layout
+
+\begin_layout Enumerate
+Enlace: Transferencia de datos entre elementos de red vecinos.
+ Ethernet, 802.11 (WiFi), PPP.
+\end_layout
+
+\begin_layout Enumerate
+Físico: Bits en el cable.
+\end_layout
+
+\begin_layout Standard
+Internet se diseño pensando en usuarios que confiaban los unos con los otros,
+ pero hoy en día en necesaria seguridad para proteger las comunicaciones.
+ TCP y UDP no ofrecen cifrado, sino que este se hace a nivel de aplicación,
+ como con SSL, que ofrece cifrado, integridad de los datos y autenticación
+ de los extremos sobre TCP.
+\end_layout
+
+\end_body
+\end_document
diff --git a/ts/n.lyx b/ts/n.lyx
new file mode 100644
index 0000000..5c56ecf
--- /dev/null
+++ b/ts/n.lyx
@@ -0,0 +1,168 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Topología de superficies
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2020}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Diapositivas de clase, Pascual Lucas (2019–20), Departamento de Matemáticas,
+ Universidad de Murcia.
+\end_layout
+
+\begin_layout Itemize
+Modelling CPV, Ian Richard Cole (2015),
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://repository.lboro.ac.uk/articles/Modelling_CPV/9523520
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Chapter
+Espacios topológicos
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/ts/n1.lyx b/ts/n1.lyx
new file mode 100644
index 0000000..910f51e
--- /dev/null
+++ b/ts/n1.lyx
@@ -0,0 +1,2358 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Dado un conjunto
+\begin_inset Formula $X$
+\end_inset
+
+,
+\begin_inset Formula ${\cal T}\subseteq{\cal P}(X)$
+\end_inset
+
+ es una
+\series bold
+topología
+\series default
+ si
+\begin_inset Formula $\emptyset,X\in{\cal T}$
+\end_inset
+
+,
+\begin_inset Formula $\forall{\cal A}\subseteq{\cal T},\bigcup{\cal A}\in{\cal T}$
+\end_inset
+
+ y
+\begin_inset Formula $\forall A_{1},\dots,A_{n}\in{\cal T},\bigcap\{A_{1},\dots,A_{n}\}\in{\cal T}$
+\end_inset
+
+.
+ Entonces llamamos
+\series bold
+espacio topológico
+\series default
+ al par
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+, (
+\series bold
+conjuntos
+\series default
+)
+\series bold
+abiertos
+\series default
+ a los elementos de
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ y (
+\series bold
+conjuntos
+\series default
+)
+\series bold
+cerrados
+\series default
+ a sus complementarios.
+ Así,
+\begin_inset Formula $\emptyset$
+\end_inset
+
+ y
+\begin_inset Formula $X$
+\end_inset
+
+ son cerrados, la intersección arbitraria de cerrados es un cerrado y la
+ unión finita de cerrados es un cerrado.
+\end_layout
+
+\begin_layout Standard
+Dado
+\begin_inset Formula $X\neq\emptyset$
+\end_inset
+
+, llamamos
+\series bold
+topología trivial
+\series default
+ o
+\series bold
+indiscreta
+\series default
+ a
+\begin_inset Formula ${\cal T}_{\text{ind}}:=\{\emptyset,X\}$
+\end_inset
+
+ y
+\series bold
+topología discreta
+\series default
+ a
+\begin_inset Formula ${\cal T}_{\text{dis}}:={\cal P}(X)$
+\end_inset
+
+.
+ Llamamos
+\series bold
+espacio indiscreto
+\series default
+ a
+\begin_inset Formula $(X,{\cal T}_{\text{ind}})$
+\end_inset
+
+ y
+\series bold
+espacio discreto
+\series default
+ a
+\begin_inset Formula $(X,{\cal T}_{\text{dis}})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Interior y clausura
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ un espacio topológico y
+\begin_inset Formula $S\subseteq X$
+\end_inset
+
+, llamamos
+\series bold
+interior
+\series default
+ de
+\begin_inset Formula $S$
+\end_inset
+
+,
+\begin_inset Formula $\text{int}S$
+\end_inset
+
+ o
+\begin_inset Formula $\mathring{S}$
+\end_inset
+
+ al mayor abierto contenido en
+\begin_inset Formula $S$
+\end_inset
+
+, que es la unión de todos ellos, y
+\series bold
+clausura
+\series default
+ de
+\begin_inset Formula $S$
+\end_inset
+
+,
+\begin_inset Formula $\text{cl}S$
+\end_inset
+
+ o
+\begin_inset Formula $\overline{S}$
+\end_inset
+
+ al menor cerrado que lo contiene, que es la intersección de todos ellos.
+ Así,
+\begin_inset Formula $\mathring{S}\subseteq S\subseteq\overline{S}$
+\end_inset
+
+, y
+\begin_inset Formula $S$
+\end_inset
+
+ es abierto si y sólo si
+\begin_inset Formula $S=\mathring{S}$
+\end_inset
+
+ y cerrado si y sólo si
+\begin_inset Formula $S=\overline{S}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+entorno
+\series default
+ de
+\begin_inset Formula $x\in X$
+\end_inset
+
+ es un elemento de
+\begin_inset Formula ${\cal E}(x):=\{U\in{\cal T}:x\in{\cal U}\}$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula $x\in\mathring{S}$
+\end_inset
+
+ si y sólo si existe un entorno de
+\begin_inset Formula $x$
+\end_inset
+
+ contenido en
+\begin_inset Formula $S$
+\end_inset
+
+, y
+\begin_inset Formula $x\in\overline{S}$
+\end_inset
+
+ si y sólo si todo entorno de
+\begin_inset Formula $x$
+\end_inset
+
+ interseca con
+\begin_inset Formula $S$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Espacios métricos
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+distancia
+\series default
+ en un conjunto
+\begin_inset Formula $X$
+\end_inset
+
+ es una función
+\begin_inset Formula $d:X\times X\to\mathbb{R}$
+\end_inset
+
+ tal que para cada
+\begin_inset Formula $x,y,z\in X$
+\end_inset
+
+,
+\begin_inset Formula $0\leq d(x,y)=d(y,x)\leq d(x,z)+d(z,y)$
+\end_inset
+
+.
+ Decimos entonces que
+\begin_inset Formula $(X,d)$
+\end_inset
+
+ es un
+\series bold
+espacio métrico
+\series default
+.
+
+\end_layout
+
+\begin_layout Standard
+En
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ tenemos la distancia usual
+\begin_inset Formula $d_{u}(x,y):=|x-y|$
+\end_inset
+
+.
+ Dado un espacio métrico en
+\begin_inset Formula $(X,d)$
+\end_inset
+
+, definimos en
+\begin_inset Formula $X^{n}$
+\end_inset
+
+ la distancia
+\begin_inset Formula
+\[
+d_{p}(x,y):=\left(\sum_{k=1}^{n}d(x_{k},y_{k})^{p}\right)^{\frac{1}{p}}
+\]
+
+\end_inset
+
+ para
+\begin_inset Formula $p\in\mathbb{N}^{*}$
+\end_inset
+
+, y
+\begin_inset Formula $d_{\infty}(x,y):=\max_{k=1}^{n}d(x_{k},y_{k})$
+\end_inset
+
+.
+ Llamamos
+\series bold
+distancia Manhattan
+\series default
+ o
+\series bold
+del taxi
+\series default
+ a
+\begin_inset Formula $d_{1}$
+\end_inset
+
+,
+\series bold
+distancia euclídea
+\series default
+ a
+\begin_inset Formula $d_{2}$
+\end_inset
+
+ y
+\series bold
+distancia del ajedrez
+\series default
+ a
+\begin_inset Formula $d_{\infty}$
+\end_inset
+
+.
+ Además, en un conjunto
+\begin_inset Formula $X$
+\end_inset
+
+ definimos la
+\series bold
+distancia discreta
+\series default
+ como
+\begin_inset Formula
+\[
+d_{D}(x,y):=\left\{ \begin{aligned}1 & \text{si }x\neq y,\\
+0 & \text{si }x=y.
+\end{aligned}
+\right.
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $(X,d)$
+\end_inset
+
+ un espacio métrico,
+\begin_inset Formula $x\in X$
+\end_inset
+
+ y
+\begin_inset Formula $\delta>0$
+\end_inset
+
+, llamamos
+\series bold
+bola
+\series default
+ (
+\series bold
+abierta
+\series default
+) en la distancia
+\begin_inset Formula $d$
+\end_inset
+
+ de centro
+\begin_inset Formula $x$
+\end_inset
+
+ y radio
+\begin_inset Formula $\delta$
+\end_inset
+
+ a
+\begin_inset Formula
+\[
+B_{d}(x,\delta):=\{y\in X:d(x,y)<\varepsilon\}.
+\]
+
+\end_inset
+
+Llamamos
+\series bold
+topología
+\series default
+ (
+\series bold
+métrica
+\series default
+)
+\series bold
+inducida
+\series default
+ por
+\begin_inset Formula $d$
+\end_inset
+
+ en
+\begin_inset Formula $X$
+\end_inset
+
+ a la topología
+\begin_inset Formula ${\cal T}_{d}:=\{A\in X:\forall x\in A,\exists\delta>0:B_{d}(x,\delta)\subseteq A\}$
+\end_inset
+
+.
+ Las bolas son abiertas en la topología inducida, por lo que en esta los
+ abiertos son uniones de bolas.
+\end_layout
+
+\begin_layout Standard
+La distancia discreta induce la topología discreta, y las distancias del
+ taxi, euclídea y del ajedrez sobre
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ con la distancia usual en
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ inducen una misma topología que llamamos
+\series bold
+topología usual
+\series default
+ en
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ (
+\begin_inset Formula $n\geq1$
+\end_inset
+
+).
+ En
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+, los abiertos de esta topología son las uniones de intervalos abiertos.
+\end_layout
+
+\begin_layout Section
+Subespacios topológicos
+\end_layout
+
+\begin_layout Standard
+Dados un espacio topológico
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ e
+\begin_inset Formula $Y\subseteq X$
+\end_inset
+
+,
+\begin_inset Formula ${\cal T}_{Y}:=\{U\cap Y\}_{U\in{\cal T}}$
+\end_inset
+
+ es una topología sobre
+\begin_inset Formula $Y$
+\end_inset
+
+, la
+\series bold
+topología del subespacio
+\series default
+ o
+\series bold
+inducida
+\series default
+ sobre
+\begin_inset Formula $Y$
+\end_inset
+
+.
+ Algunos subespacios topológicos importantes:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\mathbb{Z}\subseteq\mathbb{R}$
+\end_inset
+
+.
+ En este caso, la topología inducida por la usual es la discreta.
+\end_layout
+
+\begin_layout Enumerate
+La
+\series bold
+
+\begin_inset Formula $n$
+\end_inset
+
+-esfera
+\series default
+,
+\begin_inset Formula $\mathbb{S}^{n}(r):=\{(x_{1},\dots,x_{n+1})\in\mathbb{R}^{n+1}:x_{1}^{2}+\dots+x_{n+1}^{2}=r^{2}\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+plano agujereado
+\series default
+
+\begin_inset Formula $\mathbb{R}^{2}\setminus\{0\}\subseteq\mathbb{R}^{2}$
+\end_inset
+
+ y el
+\series bold
+espacio agujereado
+\series default
+
+\begin_inset Formula $\mathbb{R}^{n}\setminus\{0\}\subseteq\mathbb{R}^{n}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+intervalo cerrado
+\series default
+
+\begin_inset Formula $I:=[0,1]\subseteq\mathbb{R}$
+\end_inset
+
+ o el
+\series bold
+cuadrado unidad
+\series default
+
+\begin_inset Formula $I\times I\subseteq\mathbb{R}^{2}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+cilindro
+\series default
+,
+\begin_inset Formula $C:=\{(x,y,z)\in\mathbb{R}^{3}:x^{2}+y^{2}=1,0\leq z\leq1\}$
+\end_inset
+
+, cono de rotación sobre el eje
+\begin_inset Formula $z$
+\end_inset
+
+ de
+\begin_inset Formula $\{(1,0,s)\}_{s\in[0,1]}$
+\end_inset
+
+, esto es,
+\begin_inset Formula $C=\{R_{\theta}(1,0,s)\}_{\theta\in[0,2\pi],s\in[0,1]}$
+\end_inset
+
+ con
+\begin_inset Formula
+\[
+R_{\theta}:=\left(\begin{array}{ccc}
+\cos\theta & -\sin\theta & 0\\
+\sin\theta & \cos\theta & 0\\
+0 & 0 & 1
+\end{array}\right).
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+toro
+\series default
+,
+\begin_inset Formula $\mathbb{T}:=\{(x,y,z)\in\mathbb{R}^{3}:x^{2}+y^{2}+z^{2}-4\sqrt{x^{2}+y^{2}}+3=0\}$
+\end_inset
+
+, cono de rotación sobre el eje
+\begin_inset Formula $z$
+\end_inset
+
+ de
+\begin_inset Formula $\{(x,0,z):(x-2)^{2}+z^{2}=1\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\supseteq]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Tenemos
+\begin_inset Formula $\{(x,0,z):(x-2)^{2}+z^{2}=1\}=\{\alpha(s):=(\cos s+2,0,\sin s)\}_{s\in[0,2\pi]}$
+\end_inset
+
+, luego el cono de rotación es
+\begin_inset Formula $\{(\cos\theta(\cos s+2),\sin\theta(\cos s+2),\sin s)\}_{s,\theta\in[0,2\pi]}$
+\end_inset
+
+.
+ Sustituyendo en la ecuación implícita y teniendo en cuenta que
+\begin_inset Formula $x^{2}+y^{2}=(\cos s+2)^{2}$
+\end_inset
+
+, tenemos
+\begin_inset Formula
+\begin{multline*}
+(\cos s+2)^{2}+\sin^{2}s-4(\cos s+2)+3=\\
+=\cos^{2}s+4\cos s+4+\sin^{2}s-4\cos s-8+3=0.
+\end{multline*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\subseteq]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Dado
+\begin_inset Formula $(x,y,z)\in\mathbb{T}$
+\end_inset
+
+, sea
+\begin_inset Formula $s$
+\end_inset
+
+ tal que
+\begin_inset Formula $\sin s=z$
+\end_inset
+
+, concretamente,
+\begin_inset Formula $s\in[0,\frac{\pi}{2}]\cup[\frac{3\pi}{2},2\pi]$
+\end_inset
+
+ si
+\begin_inset Formula $x^{2}+y^{2}\geq4$
+\end_inset
+
+ o
+\begin_inset Formula $s\in[\frac{\pi}{2},\frac{3\pi}{2}]$
+\end_inset
+
+ en caso contrario.
+ Esto es válido porque, si
+\begin_inset Formula $z^{2}>1$
+\end_inset
+
+, entonces
+\begin_inset Formula $x^{2}+y^{2}-4\sqrt{x^{2}+y^{2}}+4<0$
+\end_inset
+
+, pero
+\begin_inset Formula $x^{2}+y^{2}-4\sqrt{x^{2}+y^{2}}+4=(x^{2}+y^{2}-2)^{2}\geq0\#$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula $x^{2}+y^{2}+\sin^{2}s-4\sqrt{x^{2}+y^{2}}+3=0\iff\sqrt{x^{2}+y^{2}}=\frac{4\pm\sqrt{16-4\sin^{2}s-12}}{2}=2\pm\sqrt{1-\sin^{2}s}=2\pm\cos s$
+\end_inset
+
+, luego
+\begin_inset Formula $x^{2}+y^{2}=(2\pm\cos s)^{2}$
+\end_inset
+
+, y por cómo hemos elegido
+\begin_inset Formula $s$
+\end_inset
+
+, es
+\begin_inset Formula $x^{2}+y^{2}=(2+\cos s)^{2}$
+\end_inset
+
+.
+ Entonces basta tomar
+\begin_inset Formula $\theta$
+\end_inset
+
+ tal que
+\begin_inset Formula $\cos\theta=\frac{x}{\sqrt{x^{2}+y^{2}}}=\frac{x}{\cos s+2}$
+\end_inset
+
+ (es claro que
+\begin_inset Formula $\cos s+2\neq0$
+\end_inset
+
+) y
+\begin_inset Formula $\sin\theta=\frac{y}{\sqrt{x^{2}+y^{2}}}=\frac{y}{\cos s+2}$
+\end_inset
+
+.
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+La
+\series bold
+cinta de Möbius
+\series default
+,
+\begin_inset Formula $M:=\{(\cos\theta(3-t\sin\frac{\theta}{2}),\sin\theta(3-t\sin\frac{\theta}{2}),t\cos\frac{\theta}{2})\}_{\theta\in[0,2\pi],t\in[-1,1]}$
+\end_inset
+
+.
+ La idea es tener una varilla inicialmente paralela al eje
+\begin_inset Formula $Z$
+\end_inset
+
+ a longitud 3 que va girando alrededor del eje a la vez que gira alrededor
+ de su punto medio a la mitad de velocidad angular de forma perpendicular
+ al eje.
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+grupo lineal general
+\series default
+
+\begin_inset Formula ${\cal GL}(n,\mathbb{R})\subseteq{\cal M}_{n}(\mathbb{R})$
+\end_inset
+
+, compuesto por las matrices invertibles, con la topología para
+\begin_inset Formula ${\cal M}_{n}(\mathbb{R})$
+\end_inset
+
+ dada por isomorfismo lineal con
+\begin_inset Formula $\mathbb{R}^{n^{2}}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+grupo ortogonal
+\series default
+
+\begin_inset Formula ${\cal O}(n)\subseteq{\cal GL}(n,\mathbb{R})$
+\end_inset
+
+, formado por las matrices cuya inversa es su traspuesta.
+\end_layout
+
+\begin_layout Enumerate
+El
+\series bold
+grupo ortogonal especial
+\series default
+
+\begin_inset Formula ${\cal SO}(n)\subseteq{\cal O}(n)$
+\end_inset
+
+, formado por las matrices ortogonales con determinante 1.
+\end_layout
+
+\begin_layout Section
+Continuidad
+\end_layout
+
+\begin_layout Standard
+Dados dos espacios topológicos
+\begin_inset Formula $(X,{\cal T}_{X})$
+\end_inset
+
+ e
+\begin_inset Formula $(Y,{\cal T}_{Y})$
+\end_inset
+
+,
+\begin_inset Formula $f:X\to Y$
+\end_inset
+
+, o
+\begin_inset Formula $f:(X,{\cal T}_{X})\to(Y,{\cal T}_{Y})$
+\end_inset
+
+ si queremos resaltar la dependencia de las topologías, es
+\series bold
+continua
+\series default
+ si
+\begin_inset Formula $\forall V\in{\cal T}_{Y},f^{-1}(V)\in{\cal T}_{X}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Dados dos espacios topológicos
+\begin_inset Formula $X_{1}$
+\end_inset
+
+ y
+\begin_inset Formula $X_{2}$
+\end_inset
+
+ y
+\begin_inset Formula $f:X_{1}\to X_{2}$
+\end_inset
+
+ continua, si
+\begin_inset Formula $Y_{1}\subseteq X_{1}$
+\end_inset
+
+,
+\begin_inset Formula $f|_{Y_{1}}:Y_{1}\to X_{2}$
+\end_inset
+
+ es continua, por lo que en particular la inclusión
+\begin_inset Formula $i:Y_{1}\to X_{1}$
+\end_inset
+
+ es continua, y si
+\begin_inset Formula $f(X_{1})\subseteq Y_{2}\subseteq X_{2}$
+\end_inset
+
+, la
+\series bold
+restricción del rango
+\series default
+
+\begin_inset Formula $f':X_{1}\to Y_{2}$
+\end_inset
+
+, dada por
+\begin_inset Formula $f'(x):=f(x)$
+\end_inset
+
+, es continua.
+ Además, si
+\begin_inset Formula $X_{2}$
+\end_inset
+
+ es un subespacio topológico de
+\begin_inset Formula $X'$
+\end_inset
+
+, la
+\series bold
+extensión de la imagen
+\series default
+
+\begin_inset Formula $f':X_{1}\to X'$
+\end_inset
+
+ es continua.
+\end_layout
+
+\begin_layout Standard
+Son funciones continuas:
+\end_layout
+
+\begin_layout Enumerate
+Las de forma
+\begin_inset Formula $f:(X,{\cal T}_{\text{dis}})\to Y$
+\end_inset
+
+ o
+\begin_inset Formula $f:X\to(Y,{\cal T}_{\text{ind}})$
+\end_inset
+
+.
+
+\end_layout
+
+\begin_layout Enumerate
+Las constantes.
+\end_layout
+
+\begin_layout Enumerate
+La composición de aplicaciones continuas.
+ No obstante, dadas
+\begin_inset Formula $f:X\to Y$
+\end_inset
+
+ y
+\begin_inset Formula $g:Y\to Z$
+\end_inset
+
+, que
+\begin_inset Formula $g\circ f$
+\end_inset
+
+ sea continua no significa que lo sean
+\begin_inset Formula $f$
+\end_inset
+
+ y
+\begin_inset Formula $g$
+\end_inset
+
+, pues por ejemplo, si tomamos
+\begin_inset Formula $g$
+\end_inset
+
+ constante,
+\begin_inset Formula $g\circ f$
+\end_inset
+
+ es continua aun si
+\begin_inset Formula $f$
+\end_inset
+
+ es discontinua.
+
+\end_layout
+
+\begin_layout Enumerate
+La
+\series bold
+suma
+\series default
+
+\begin_inset Formula $s:\mathbb{R}^{2}\to\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $s(x,y):=x+y$
+\end_inset
+
+, con la topología usual.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Como los abiertos en
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ son uniones de intervalos abiertos, basta ver que, dado
+\begin_inset Formula $(a,b)\subseteq\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $s^{-1}((a,b))=\{(x,y):a<s(x,y)=x+y<b\}=\{(x,y):a-x<y<b-x\}$
+\end_inset
+
+.
+ Sean
+\begin_inset Formula $(x_{0},y_{0})\in s^{-1}((a,b))$
+\end_inset
+
+,
+\begin_inset Formula $t:=s(x_{0},y_{0})$
+\end_inset
+
+ y
+\begin_inset Formula $\delta>0$
+\end_inset
+
+ tal que
+\begin_inset Formula $B(t,\delta)\subseteq(a,b)$
+\end_inset
+
+, para
+\begin_inset Formula $(x,y)\in B_{d_{1}}((x_{0},y_{0}),\delta)$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+d(s(x,y),s(x_{0},y_{0}))=|x+y-x_{0}-y_{0}|=|(x-x_{0})-(y-y_{0})|\leq\delta
+\]
+
+\end_inset
+
+y por tanto
+\begin_inset Formula $s(x,y)\in(a,b)$
+\end_inset
+
+ y
+\begin_inset Formula $(x,y)\in s^{-1}((a,b))$
+\end_inset
+
+, con lo que
+\begin_inset Formula $B_{d_{1}}((x_{0},y_{0}),\delta)\subseteq s^{-1}((a,b))$
+\end_inset
+
+ y
+\begin_inset Formula $s^{-1}((a,b))$
+\end_inset
+
+ es abierto.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+El
+\series bold
+producto
+\series default
+
+\begin_inset Formula $p:\mathbb{R}^{2}\to\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $p(x,y):=xy$
+\end_inset
+
+, con la topología usual.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Dado
+\begin_inset Formula $(a,b)\subseteq\mathbb{R}$
+\end_inset
+
+, queremos ver que
+\begin_inset Formula $p^{-1}((a,b))=\{(x,y):a<p(x,y)=xy<b\}$
+\end_inset
+
+ es abierto.
+ Sean
+\begin_inset Formula $(x_{0},y_{0})\in p^{-1}((a,b))$
+\end_inset
+
+,
+\begin_inset Formula $t:=p(x_{0},y_{0})$
+\end_inset
+
+,
+\begin_inset Formula $r>0$
+\end_inset
+
+ tal que
+\begin_inset Formula $B(t,\delta)\subseteq(a,b)$
+\end_inset
+
+ y
+\begin_inset Formula $\delta:=\min\{1,\frac{r}{|x_{0}|+|y_{0}|+1}\}$
+\end_inset
+
+, para
+\begin_inset Formula $(x,y)\in B_{d_{\infty}}((x_{0},y_{0}),\delta)$
+\end_inset
+
+,
+\begin_inset Formula
+\begin{multline*}
+|p(x,y)-p(x_{0},y_{0})|=|xy-x_{0}y_{0}|=|xy-xy_{0}+xy_{0}-x_{0}y_{0}|\leq\\
+\leq|x||y-y_{0}|+|x-x_{0}||y_{0}|\leq(|x_{0}|+\delta)\delta+|y_{0}|\delta=\delta(|x_{0}|+|y_{0}|+\delta)\leq\\
+\leq\delta(|x_{0}|+|y_{0}|+1)\leq r,
+\end{multline*}
+
+\end_inset
+
+con lo que
+\begin_inset Formula $B_{d_{\infty}}((x_{0},y_{0}),\delta)\subseteq p^{-1}((a,b))$
+\end_inset
+
+ y
+\begin_inset Formula $p^{-1}((a,b))$
+\end_inset
+
+ es abierto.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+La
+\series bold
+diagonal
+\series default
+
+\begin_inset Formula $d:\mathbb{R}\to\mathbb{R}^{n}$
+\end_inset
+
+,
+\begin_inset Formula $d(x):=(x,\dots,x)$
+\end_inset
+
+, con la topología usual.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Basta ver que, dada una bola
+\begin_inset Formula $B_{\infty}(y,r)$
+\end_inset
+
+ con
+\begin_inset Formula $y\in\mathbb{R}^{n}$
+\end_inset
+
+, su inversa es un abierto.
+ Tenemos
+\begin_inset Formula $d^{-1}(B_{d_{\infty}}(y,r))=\{x:d_{\infty}((x,\dots,x),y)<r\}=\{t:|x-y_{1}|,\dots,|x-y_{n}|<r\}$
+\end_inset
+
+, pero
+\begin_inset Formula $|x-y_{k}|<r\iff-r<x-y_{k}<r\iff y_{k}-r<x<y_{k}+r\iff x\in B(y_{k},r)$
+\end_inset
+
+, luego
+\begin_inset Formula $d^{-1}(B_{d_{\infty}}((x,y),r))=\bigcap_{k=1}^{n}B(y_{k},r)$
+\end_inset
+
+, que es abierto.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Los polinomios reales, con la topología usual.
+\end_layout
+
+\begin_layout Enumerate
+El determinante
+\begin_inset Formula $\det:{\cal M}_{n}(\mathbb{R})\to\mathbb{R}$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Es un polinomio.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+La inversa matricial
+\begin_inset Formula $\text{inv}:GL(n,\mathbb{R})\to GL(n,\mathbb{R})$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Es una función racional en cada componente.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+\begin_inset CommandInset label
+LatexCommand label
+name "enu:angle"
+
+\end_inset
+
+La aplicación
+\begin_inset Formula $f:\mathbb{S}^{3}\to{\cal SO}(3)$
+\end_inset
+
+ dada por
+\begin_inset Formula
+\[
+f(w,x,y,z):=\left(\begin{array}{ccc}
+w^{2}+x^{2}-y^{2}-z^{2} & 2(xy-wz) & 2(wy+xz)\\
+2(xy+wz) & w^{2}-x^{2}+y^{2}-z^{2} & 2(yz-wx)\\
+2(xz-wy) & 2(yz+wx) & w^{2}-x^{2}-y^{2}+z^{2}
+\end{array}\right),
+\]
+
+\end_inset
+
+que asocia a
+\begin_inset Formula $(\cos\theta,x,y,z)\in\mathbb{S}^{3}$
+\end_inset
+
+ la rotación de ángulo
+\begin_inset Formula $2\theta$
+\end_inset
+
+ alrededor de la recta
+\begin_inset Formula $\langle(x,y,z)\rangle$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+La función es continua porque lo es en cada componente, al serlo la suma
+ y el producto.
+ Dado
+\begin_inset Formula $u:=(\cos\theta,x,y,z)$
+\end_inset
+
+, sean
+\begin_inset Formula $v:=(x,y,z)$
+\end_inset
+
+ y
+\begin_inset Formula $n:=\Vert v\Vert$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $n=0$
+\end_inset
+
+, la matriz es la identidad, que es lo que tendría sentido ya que el ángulo
+ sería de
+\begin_inset Formula $2\theta=2k\pi$
+\end_inset
+
+ con
+\begin_inset Formula $k\in\mathbb{Z}$
+\end_inset
+
+, aunque realmente es un caso degenerado porque no hay recta.
+ Supongamos
+\begin_inset Formula $n\neq0$
+\end_inset
+
+.
+
+\end_layout
+
+\begin_layout Enumerate
+Rotamos sobre el eje
+\begin_inset Formula $Z$
+\end_inset
+
+ para situar a
+\begin_inset Formula $u$
+\end_inset
+
+ en el plano
+\begin_inset Formula $XZ$
+\end_inset
+
+.
+ El ángulo es aquel entre la proyección de
+\begin_inset Formula $v$
+\end_inset
+
+ en el plano
+\begin_inset Formula $XY$
+\end_inset
+
+ y el eje
+\begin_inset Formula $X$
+\end_inset
+
+, que es un
+\begin_inset Formula $\alpha$
+\end_inset
+
+ tal que
+\begin_inset Formula $(1,0,0)\cdot(x,y,0)=|(1,0,0)||(x,y,0)|\cos\alpha\iff x=\sqrt{x^{2}+y^{2}}\cos\alpha\iff x,y=0\lor\cos\alpha=\frac{x}{\sqrt{x^{2}+y^{2}}}$
+\end_inset
+
+.
+ Tenemos
+\begin_inset Formula
+\[
+\sin\alpha=\pm\sqrt{1-\cos^{2}\alpha}=\pm\sqrt{1-\frac{x^{2}}{x^{2}+y^{2}}}=\pm\sqrt{\frac{y^{2}}{x^{2}+y^{2}}}=\frac{\pm y}{\sqrt{x^{2}+y^{2}}},
+\]
+
+\end_inset
+
+ pero como
+\begin_inset Formula $\alpha<0$
+\end_inset
+
+ cuando
+\begin_inset Formula $y>0$
+\end_inset
+
+,
+\begin_inset Formula $\sin\alpha=-\frac{y}{\sqrt{x^{2}+y^{2}}}$
+\end_inset
+
+ y la rotación es
+\begin_inset Formula
+\[
+A:=\left(\begin{array}{ccc}
+\frac{x}{\sqrt{x^{2}+y^{2}}} & \frac{y}{\sqrt{x^{2}+y^{2}}}\\
+-\frac{y}{\sqrt{x^{2}+y^{2}}} & \frac{x}{\sqrt{x^{2}+y^{2}}}\\
+ & & 1
+\end{array}\right).
+\]
+
+\end_inset
+
+Para
+\begin_inset Formula $(x,y)=(0,0)$
+\end_inset
+
+, esta matriz no está definida, pero entonces no es necesaria la rotación.
+ Tras la transformación,
+\begin_inset Formula $x\geq0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Rotamos sobre el eje
+\begin_inset Formula $Y$
+\end_inset
+
+ para situar a
+\begin_inset Formula $u$
+\end_inset
+
+ en el eje
+\begin_inset Formula $Z$
+\end_inset
+
+.
+ El ángulo es aquel entre el nuevo valor de
+\begin_inset Formula $u$
+\end_inset
+
+ y el eje
+\begin_inset Formula $Z$
+\end_inset
+
+, un
+\begin_inset Formula $\alpha$
+\end_inset
+
+ tal que
+\begin_inset Formula $(0,0,1)\cdot Au=|(0,0,1)||Av|\cos\alpha=|v|\cos\alpha\iff z=n\cos\alpha\iff\cos\alpha=\frac{z}{n}$
+\end_inset
+
+.
+ Tenemos
+\begin_inset Formula
+\[
+\sin\alpha=\pm\sqrt{1-\cos^{2}\alpha}=\pm\sqrt{\frac{n^{2}-z^{2}}{n^{2}}}=\pm\frac{\sqrt{x^{2}+y^{2}}}{n},
+\]
+
+\end_inset
+
+ pero como
+\begin_inset Formula $\alpha<0$
+\end_inset
+
+,
+\begin_inset Formula $\sin\alpha=-\frac{\sqrt{x^{2}+y^{2}}}{n}$
+\end_inset
+
+, y la rotación es
+\begin_inset Formula
+\[
+B:=\left(\begin{array}{ccc}
+\frac{z}{n} & & -\frac{\sqrt{x^{2}+y^{2}}}{n}\\
+ & 1\\
+\frac{\sqrt{x^{2}+y^{2}}}{n} & & \frac{z}{n}
+\end{array}\right).
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Hacemos la rotación de ángulo
+\begin_inset Formula $2\theta$
+\end_inset
+
+ sobre el eje
+\begin_inset Formula $Z$
+\end_inset
+
+.
+ Tenemos
+\begin_inset Formula
+\begin{eqnarray*}
+\cos(2\theta) & = & \cos^{2}\theta-\sin^{2}\theta=2\cos^{2}\theta-1=2w^{2}-1,\\
+\sin(2\theta) & = & 2\sin\theta\cos\theta=2w\sqrt{1-w^{2}}=2w\sqrt{x^{2}+y^{2}+z^{2}}=2wn,
+\end{eqnarray*}
+
+\end_inset
+
+luego la rotación es
+\begin_inset Formula
+\[
+C:=\left(\begin{array}{ccc}
+2w^{2}-1 & -2wn\\
+2wn & 2w^{2}-1\\
+ & & 1
+\end{array}\right).
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Revertimos las dos rotaciones anteriores.
+ Sea
+\begin_inset Formula $t:=\sqrt{x^{2}+y^{2}}$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+BA=\left(\begin{array}{ccc}
+\frac{z}{n} & & -\frac{t}{n}\\
+ & 1\\
+\frac{t}{n} & & \frac{z}{n}
+\end{array}\right)\left(\begin{array}{ccc}
+\frac{x}{t} & \frac{y}{t}\\
+-\frac{y}{t} & \frac{x}{t}\\
+ & & 1
+\end{array}\right)=\left(\begin{array}{ccc}
+\frac{xz}{nt} & \frac{yz}{nt} & -\frac{t}{n}\\
+-\frac{y}{t} & \frac{x}{t}\\
+\frac{x}{n} & \frac{y}{n} & \frac{z}{n}
+\end{array}\right).
+\]
+
+\end_inset
+
+Ahora bien, como todas estas matrices son rotaciones y por tanto son ortonormale
+s especiales, su inversa es su traspuesta,
+\begin_inset Formula
+\[
+D:=(BA)^{-1}=(BA)^{t}=\left(\begin{array}{ccc}
+\frac{xz}{nt} & -\frac{y}{t} & \frac{x}{n}\\
+\frac{yz}{nt} & \frac{x}{t} & \frac{y}{n}\\
+-\frac{t}{n} & & \frac{z}{n}
+\end{array}\right).
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Multiplicando todo, la matriz es
+\begin_inset Formula
+\begin{eqnarray*}
+DCBA & = & \left(\begin{array}{ccc}
+\frac{xz}{nt} & -\frac{y}{t} & \frac{x}{n}\\
+\frac{yz}{nt} & \frac{x}{t} & \frac{y}{n}\\
+-\frac{t}{n} & & \frac{z}{n}
+\end{array}\right)\left(\begin{array}{ccc}
+2w^{2}-1 & -2wn\\
+2wn & 2w^{2}-1\\
+ & & 1
+\end{array}\right)\left(\begin{array}{ccc}
+\frac{xz}{nt} & \frac{yz}{nt} & -\frac{t}{n}\\
+-\frac{y}{t} & \frac{x}{t}\\
+\frac{x}{n} & \frac{y}{n} & \frac{z}{n}
+\end{array}\right)\\
+ & \overset{\text{Maxima}}{=} & \left(\begin{array}{ccc}
+1-2y^{2}-2z^{2} & 2(xy-wz) & 2(wy+xz)\\
+2(xy+wz) & 1-2x^{2}-2z^{2} & 2(yz-wx)\\
+2(xz-wy) & 2(yz-wx) & 1-2x^{2}-2y^{2}
+\end{array}\right)\\
+ & = & \left(\begin{array}{ccc}
+w^{2}+x^{2}-y^{2}-z^{2} & 2(xy-wz) & 2(wy+xz)\\
+2(xy+wz) & w^{2}-x^{2}+y^{2}-z^{2} & 2(yz-wx)\\
+2(xz-wy) & 2(yz-wx) & w^{2}-x^{2}-y^{2}+z^{2}
+\end{array}\right).
+\end{eqnarray*}
+
+\end_inset
+
+Claramente esta matriz es ortogonal especial por ser producto de matrices
+ ortogonales especiales.
+ Vemos que, cuando
+\begin_inset Formula $(x,y)=(0,0)$
+\end_inset
+
+,
+\begin_inset Formula $z^{2}=n^{2}$
+\end_inset
+
+ y tenemos la matriz
+\begin_inset Formula $C$
+\end_inset
+
+, que también es ortogonal especial.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+La aplicación
+\begin_inset Formula $f:\mathbb{S}^{2}\to{\cal SO}(3)$
+\end_inset
+
+ dada por
+\begin_inset Formula
+\[
+f(x,y,z):=\left(\begin{array}{ccc}
+2x^{2}-1 & 2xy & 2xz\\
+2xy & 2y^{2}-1 & 2yz\\
+2xz & 2yz & 2z^{2}-1
+\end{array}\right),
+\]
+
+\end_inset
+
+que asocia a cada punto de la esfera la rotación de
+\begin_inset Formula $180^{\text{o}}$
+\end_inset
+
+ alrededor de la recta que genera.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Se obtiene tomando
+\begin_inset Formula $w=0$
+\end_inset
+
+ en el punto
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "enu:angle"
+plural "false"
+caps "false"
+noprefix "false"
+
+\end_inset
+
+ y simplificando.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Base de una topología
+\end_layout
+
+\begin_layout Standard
+Dado un espacio topológico
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+,
+\begin_inset Formula ${\cal B}\subseteq{\cal T}$
+\end_inset
+
+ es una
+\series bold
+base
+\series default
+ para
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ si
+\begin_inset Formula $\forall A\in{\cal T},\exists{\cal A}\subseteq{\cal B}:A=\bigcup{\cal A}$
+\end_inset
+
+, en cuyo caso llamamos
+\series bold
+elementos básicos
+\series default
+ a los elementos de
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+.
+ Vemos que
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ es una base para
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $\forall U\in{\cal T},\forall x\in U,\exists B\in{\cal B}:x\in B\subseteq U$
+\end_inset
+
+, y entonces, si
+\begin_inset Formula ${\cal B}_{Y}$
+\end_inset
+
+ es base de
+\begin_inset Formula ${\cal T}_{Y}$
+\end_inset
+
+,
+\begin_inset Formula $f:(X,{\cal T}_{X})\to(Y,{\cal T}_{Y})$
+\end_inset
+
+ es continua si y solo si
+\begin_inset Formula $\forall B\in{\cal B}_{Y},f^{-1}(B)\in{\cal T}_{X}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Dadas dos topologías
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+ sobre
+\begin_inset Formula $X$
+\end_inset
+
+, decimos que
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+ es
+\series bold
+más fina
+\series default
+ o
+\series bold
+más grande
+\series default
+ que
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+, y que
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ es
+\series bold
+más gruesa
+\series default
+ o
+\series bold
+más pequeña
+\series default
+ que
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+, si
+\begin_inset Formula ${\cal T}\subseteq{\cal T}'$
+\end_inset
+
+.
+ Si la inclusión es estricta, decimos que
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+ es
+\series bold
+estrictamente más fina
+\series default
+ o
+\series bold
+estrictamente más grande
+\series default
+ que
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ y que
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ es
+\series bold
+estrictamente más gruesa
+\series default
+ o
+\series bold
+estrictamente más pequeña
+\series default
+ que
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+.
+
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+ son
+\series bold
+comparables
+\series default
+ si
+\begin_inset Formula ${\cal T}\subseteq{\cal T}'$
+\end_inset
+
+ o
+\begin_inset Formula ${\cal T}'\subseteq{\cal T}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal B}'$
+\end_inset
+
+ bases respectivas para las topologías
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal T}'$
+\end_inset
+
+ sobre
+\begin_inset Formula $X$
+\end_inset
+
+,
+\begin_inset Formula ${\cal T}\subseteq{\cal T}'$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula ${\cal B}\subseteq{\cal T}'$
+\end_inset
+
+, si y sólo si
+\begin_inset Formula $\forall B\in{\cal B},\forall x\in B,\exists B'\in{\cal B}':x\in B'\subseteq B$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $[1\implies2]$
+\end_inset
+
+ Obvio.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $[2\implies3]$
+\end_inset
+
+ Como
+\begin_inset Formula $B\in{\cal T}'$
+\end_inset
+
+,
+\begin_inset Formula $B$
+\end_inset
+
+ se puede expresar como unión de elementos de
+\begin_inset Formula ${\cal B}'$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $[3\implies1]$
+\end_inset
+
+ Todo
+\begin_inset Formula $A\in{\cal T}$
+\end_inset
+
+ se puede expresar como unión de elementos
+\begin_inset Formula $B\in{\cal B}$
+\end_inset
+
+.
+ Si para
+\begin_inset Formula $x\in B$
+\end_inset
+
+ llamamos
+\begin_inset Formula $B_{x}$
+\end_inset
+
+ a un elemento
+\begin_inset Formula $B'\in{\cal B}'$
+\end_inset
+
+ con
+\begin_inset Formula $x\in B'\subseteq B$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+A=\bigcup_{\begin{subarray}{c}
+B\in{\cal B}\\
+B\subseteq A
+\end{subarray}}\bigcup_{x\in B}B_{x},
+\]
+
+\end_inset
+
+una unión de elementos de
+\begin_inset Formula ${\cal B}'\subseteq{\cal T}'$
+\end_inset
+
+, luego
+\begin_inset Formula $A\in{\cal T}'$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula ${\cal B}\subseteq{\cal P}(X)$
+\end_inset
+
+ es una
+\series bold
+base
+\series default
+ para una topología sobre
+\begin_inset Formula $X$
+\end_inset
+
+ si
+\begin_inset Formula $\forall x\in X,\exists B\in{\cal B}:x\in B$
+\end_inset
+
+ y
+\begin_inset Formula $\forall B_{1},B_{2}\in{\cal B},\forall x\in B_{1}\cap B_{2},\exists B_{3}\in{\cal B}:x\in B_{3}\subseteq B_{1}\cap B_{2}$
+\end_inset
+
+.
+ En tal caso, llamamos
+\series bold
+topología generada
+\series default
+ por
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ a
+\begin_inset Formula ${\cal T}_{{\cal B}}:=\{U\subseteq X:\forall x\in U,\exists B\in{\cal B}:x\in B\subseteq U\}$
+\end_inset
+
+, y se tiene que
+\begin_inset Formula ${\cal T}_{{\cal B}}$
+\end_inset
+
+ es una topología y
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ es base para
+\begin_inset Formula ${\cal T}_{{\cal B}}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+topología del límite inferior
+\series default
+,
+\begin_inset Formula ${\cal T}_{\ell i}$
+\end_inset
+
+, a la topología
+\begin_inset Formula ${\cal T}_{\ell i}$
+\end_inset
+
+ generada por la base
+\begin_inset Formula ${\cal B}_{\ell i}:=\{[a,b)\}_{a,b\in\mathbb{R};a<b}$
+\end_inset
+
+.
+ Para indicar que
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ está equipado con esta topología, escribimos
+\begin_inset Formula $\mathbb{R}_{\ell i}$
+\end_inset
+
+.
+ Esta topología es estrictamente más fina que la topología usual de
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+.
+ En efecto,
+\begin_inset Formula $[a,b)$
+\end_inset
+
+ no es abierto con la topología usual de
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+, pero tomando la base
+\begin_inset Formula ${\cal B}_{u}:=\{(a,b)\}_{a,b\in\mathbb{R},a<b}$
+\end_inset
+
+ de la topología usual de
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+, dado
+\begin_inset Formula $(a,b)\subseteq{\cal B}_{u}$
+\end_inset
+
+ y
+\begin_inset Formula $x\in(a,b)$
+\end_inset
+
+,
+\begin_inset Formula $[x,b)\in{\cal B}_{\ell i}$
+\end_inset
+
+ cumple
+\begin_inset Formula $x\in[x,b)\subseteq(a,b)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Axiomas de numerabilidad
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ cumple el
+\series bold
+segundo axioma de numerabilidad
+\series default
+ o es
+\begin_inset Formula $\mathbf{2A\mathbb{N}}$
+\end_inset
+
+ si
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ admite una base numerable.
+ Ejemplos:
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $X$
+\end_inset
+
+ es finito, toda topología es 2A
+\begin_inset Formula $\mathbb{N}$
+\end_inset
+
+, pues
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+ es base finita de
+\begin_inset Formula ${\cal T}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $(X,{\cal T}_{\text{dis}})$
+\end_inset
+
+ es 2A
+\begin_inset Formula $\mathbb{N}$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $X$
+\end_inset
+
+ es numerable, y
+\begin_inset Formula $(X,{\cal T}_{\text{ind}})$
+\end_inset
+
+ siempre es 2A
+\begin_inset Formula $\mathbb{N}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ es 2A
+\begin_inset Formula $\mathbb{N}$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Tomamos la base
+\begin_inset Formula $\{(p,q)\}_{p,q\in\mathbb{Q},p<q}$
+\end_inset
+
+.
+ En efecto, la base usual es
+\begin_inset Formula $\{(a,b)\}_{a,b\in\mathbb{R},a<b}$
+\end_inset
+
+, pero dado
+\begin_inset Formula $(a,b)$
+\end_inset
+
+, sean
+\begin_inset Formula $n_{0}$
+\end_inset
+
+ tal que
+\begin_inset Formula $b-a>\frac{2}{n_{0}}$
+\end_inset
+
+,
+\begin_inset Formula $(p_{n}:=\frac{\lceil an\rceil}{n})_{n\geq n_{0}}$
+\end_inset
+
+ y
+\begin_inset Formula $(q_{n}:=\frac{\lfloor bn\rfloor}{n})_{n\geq n_{0}}$
+\end_inset
+
+,
+\begin_inset Formula $p_{n}<a+\frac{1}{n}\leq a+\frac{1}{n_{0}}<b-\frac{1}{n_{0}}\leq b-\frac{1}{n}\leq q_{n}$
+\end_inset
+
+, luego
+\begin_inset Formula $((p_{n},q_{n}))_{n\geq n_{0}}$
+\end_inset
+
+ es una sucesión de intervalos de extremos racionales cuya unión es
+\begin_inset Formula $(a,b)$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+\begin_inset Formula $\mathbb{R}_{\ell i}$
+\end_inset
+
+ no es 2A
+\begin_inset Formula $\mathbb{N}$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Sea
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ una base de
+\begin_inset Formula $\mathbb{R}_{\ell i}$
+\end_inset
+
+.
+ Para
+\begin_inset Formula $x\in\mathbb{R}$
+\end_inset
+
+, sea
+\begin_inset Formula $U_{x}:=[x,x+1)\in{\cal T}_{\ell i}$
+\end_inset
+
+, existe
+\begin_inset Formula $B_{x}\in{\cal B}$
+\end_inset
+
+ con
+\begin_inset Formula $x\in B_{x}\subseteq U_{x}$
+\end_inset
+
+ y por tanto
+\begin_inset Formula $\inf B_{x}=x$
+\end_inset
+
+.
+ Así, para
+\begin_inset Formula $x\neq y$
+\end_inset
+
+,
+\begin_inset Formula $\inf B_{x}=x\neq y=\inf B_{y}$
+\end_inset
+
+ y por tanto
+\begin_inset Formula $B_{x}\neq B_{y}$
+\end_inset
+
+, luego hay al menos tantos elementos básicos como números reales y la base
+ no es numerable.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Dados
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ y
+\begin_inset Formula $x\in X$
+\end_inset
+
+,
+\begin_inset Formula ${\cal B}_{x}\subseteq{\cal E}(x)$
+\end_inset
+
+ es una
+\series bold
+base de entornos
+\series default
+ de
+\begin_inset Formula $x$
+\end_inset
+
+ si
+\begin_inset Formula $\forall U\in{\cal E}(x),\exists B\in{\cal B}_{x}:B\subseteq U$
+\end_inset
+
+, en cuyo caso llamamos
+\series bold
+entornos básicos
+\series default
+ en
+\begin_inset Formula $x$
+\end_inset
+
+ a los elementos de
+\begin_inset Formula ${\cal B}_{x}$
+\end_inset
+
+.
+
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ satisface el
+\series bold
+primer axioma de numerabilidad
+\series default
+ o es
+\begin_inset Formula ${\bf 1A\mathbb{N}}$
+\end_inset
+
+ si todo
+\begin_inset Formula $x\in X$
+\end_inset
+
+ tiene una base de entornos numerable.
+ Ejemplos:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\mathbb{R}_{\ell i}$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula ${\cal B}_{x}:=\{[x,x+\frac{1}{n})\}_{n\in\mathbb{N}^{*}}$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Todo espacio métrico
+\begin_inset Formula $(X,d)$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula ${\cal B}_{x}:=\{B_{d}(x-\frac{1}{n},x+\frac{1}{n})\}_{n\in\mathbb{N}^{*}}$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Todo espacio 2A
+\begin_inset Formula $\mathbb{N}$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Dada una base
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ numerable,
+\begin_inset Formula ${\cal B}_{x}:=\{B\in{\cal B}:x\in B\}$
+\end_inset
+
+ es base de entornos de
+\begin_inset Formula $x$
+\end_inset
+
+, pues todo
+\begin_inset Formula $U\in{\cal E}(x)$
+\end_inset
+
+ puede expresarse como unión de elementos de
+\begin_inset Formula ${\cal B}$
+\end_inset
+
+ y basta tomar el elemento de esta unión que contenga a
+\begin_inset Formula $x$
+\end_inset
+
+, que estará en
+\begin_inset Formula ${\cal B}_{x}$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\end_body
+\end_document