Asumiremos que el lector tiene una idea intuitiva del concepto de funcion. Daremos aqui una definicion matematica de dicho concepto. Una funcion es un conjunto \(f\) de pares ordenados con la siguiente propiedad
adhocprefix(F)adhocsufix Si \((x,y)\in f\) y \((x,z)\in f\), entonces \(y=z\).
Por ejemplo, si tomamos \(f=\{(x,x^{2}):x\in\omega\}\) se puede ver facilmente que \(f\) cumple la propiedad (F). Dada una funcion \(f\), definamos \[\begin{aligned} D_{f} & =\text{ dominio de }f=\{x:(x,y)\in f\text{ para algun }y\}\\ I_{f} & =\text{ imagen de }f=\{y:(x,y)\in f\text{ para algun }x\} \end{aligned}\] A veces escribiremos \(\operatorname{Dom}(f)\) y \(\operatorname{Im}(f)\) para denotar, respectivamente, el dominio y la imagen de una funcion \(f\). Como es usual dado \(x\in D_{f}\), usaremos \(f(x)\) para denotar al unico \(y\in I_{f}\) tal que \((x,y)\in f\). Notese que \(\emptyset\) es una funcion y que \(D_{\emptyset}=I_{\emptyset}=\emptyset\). Por ejemplo para \(f=\{(x,x^{2}):x\in\omega\}\) se tiene que \(D_{f}=\omega\) y \(I_{f}=\{y:y=x^{2}\) para algun \(x\in\omega\}\). Ademas notese que \(f(x)=x^{2}\), para cada \(x\in D_{f}\).
Escribiremos \(f:S\subseteq A\rightarrow B\) para expresar que \(f\) es una funcion tal que \(D_{f}=S\subseteq A\) y \(I_{f}\subseteq B\). Tambien escribiremos \(f:A\rightarrow B\) para expresar que \(f\) es una funcion tal que \(D_{f}=A\) y \(I_{f}\subseteq B\). En tal contexto llamaremos a \(B\) conjunto de llegada. Por supuesto \(B\) no esta determinado por \(f\) ya que solo debe cumplir \(I_{f}\subseteq B\). Es decir que cualquier conjunto \(B\) que contenga a \(I_{f}\) puede ser considerado conjunto de llegada de \(f\).
Muchas veces para definir una funcion \(f\), lo haremos dando su dominio y su regla de asignacion, es decir especificaremos en forma precisa que conjunto es el dominio de \(f\) y ademas especificaremos en forma presisa quien es \(f(x)\) para cada \(x\) de dicho dominio. Obviamente esto determina por completo a la funcion \(f\) ya que \(f=\{(x,f(x)):x\in D_{f}\}\). Por ejemplo si decimos que \(f\) es la funcion dada por: \[\begin{aligned} D_{f} & =\omega\\ f(x) & =23x^{2} \end{aligned}\] nos estaremos refiriendo a la funcion \(\{(x,23x^{2}):x\in\omega\}\). Tambien escribiremos \[\begin{array}{rll} f:\omega & \rightarrow & \omega\\ x & \rightarrow & 23x^{2} \end{array}\] para describir a \(f\). Es decir, a veces para hacer mas intuitiva aun la descripcion de la funcion, tambien incluiremos un conjunto de llegada de dicha funcion y a la regla de asignacion la escribiremos usando una flecha. Para dar otro ejemplo, si escribimos sea \(f\) dada por: \[\begin{array}{rll} f:\mathbf{N} & \rightarrow & \omega\\ x & \rightarrow & \left\{ \begin{array}{ccc} x+1 & & \text{si }x\text{ es par}\\ x^{2} & & \text{si }x\text{ es impar} \end{array}\right. \end{array}\] estaremos diciendo que \(f\) es la funcion \[\{(x,x+1):x\text{ es par y }x\in\mathbf{N}\}\cup\{(x,x^{2}):x\text{ es impar y }x\in\mathbf{N}\}\]
Sean \(f\) y \(g\) dos funciones. Ya que las mismas son conjuntos, tendremos que \(f\) sera igual a \(g\) si y solo si para cada par \((a,b)\), se tiene que \((a,b)\in f\) sii \((a,b)\in g\). Muchas veces sera util el siguiente criterio de igualdad de funciones:
1.1. Sean \(f\) y \(g\) funciones. Entonces \(f=g\) sii \(D_{f}=D_{g}\) y para cada \(x\in D_{f}\) se tiene que \(f(x)=g(x)\)
Dado un conjunto \(A\), a la funcion \[\begin{array}{rll} A & \rightarrow & A\\ a & \rightarrow & a \end{array}\] La denotaremos con \(Id_{A}\) y la llamaremos la funcion identidad sobre \(A\). Notese que \(Id_{A}=\{(a,a):a\in A\}\).
Dadas funciones \(f\) y \(g\) definamos la funcion \(f\circ g\) de la siguiente manera: \[\begin{aligned} D_{f\circ g} & =\{e\in D_{g}:g(e)\in D_{f}\}\\ f\circ g(e) & =f(g(e)) \end{aligned}\] Notar que \(f\circ g=\{(u,v):\) existe \(z\) tal que \((u,z)\in g\) y \((z,v)\in f\}\). Notese que \(f\circ g\neq\emptyset\) si y solo si \(I_{g}\cap D_{f}\neq\emptyset\), lo cual nos dice que muchas veces sucedera que \(f\circ g=\emptyset\)
Una funcion \(f\) es inyectiva cuando no se da que \(f(a)=f(b)\) para algun par de elementos distintos \(a,b\in D_{f}\). Dada una funcion \(f:A\rightarrow B\) diremos que \(f\) es suryectiva cuando \(I_{f}=B\). Debe notarse que el concepto de suryectividad depende de un conjunto de llegada previamente fijado, es decir que no tiene sentido hablar de la suryectividad de una funcion \(f\) si no decimos respecto de que conjunto de llegada lo es. Muchas veces diremos que una funcion \(f\) es sobre para expresar que es suryectiva.
Dada una funcion \(f:A\rightarrow B\) diremos que \(f\) es biyectiva cuando \(f\) sea inyectiva y suryectiva. Tambien diremos que \(f\) es una biyeccion de \(A\) en \(B\) cuando \(f:A\rightarrow B\) sea biyectiva. Notese que si \(f:A\rightarrow B\) es biyectiva, entonces podemos definir una nueva funcion \(f^{-1}:B\rightarrow A\), de la siguiente manera: \[f^{-1}(b)=\text{ unico }a\in A\text{ tal que }f(a)=b\] La funcion \(f^{-1}\) sera llamada la inversa de \(f\). Notese que \(f\circ f^{-1}=Id_{B}\) y \(f^{-1}\circ f=Id_{A}\). El siguiente lema muestra que esta ultima propiedad caracteriza la inversa.
1.2. Supongamos \(f:A\rightarrow B\) y \(g:B\rightarrow A\) son tales que \(f\circ g=Id_{B}\) y \(g\circ f=Id_{A}\). Entonces \(f\) y \(g\) son biyectivas, \(f^{-1}=g\) y \(g^{-1}=f\).
Dada una funcion \(f:A\rightarrow B\), definamos: \[\ker(f)=\{(a,b)\in A^{2}:f(a)=f(b)\}\] El conjunto \(\ker(f)\) sera llamado el nucleo de \(f\). Notese que \(f\) es inyectiva si y solo si \(\ker(f)=\{(a,a):a\in A\}\).
Sea \(X\) un conjunto cualquiera y sea \(S\subseteq X\). Usaremos \(\chi_{S}^{X}\) para denotar la funcion \[\begin{array}{rcl} \chi_{S}^{X}:X & \rightarrow & \omega\\ x & \rightarrow & \left\{ \begin{array}{c} 1\text{ si }x\in S\\ 0\text{ si }x\notin S \end{array}\right. \end{array}\] Llamaremos a \(\chi_{S}^{X}\) la funcion caracteristica de \(S\) con respecto a \(X\). Muchas veces cuando el conjunto \(X\) este fijo y sea claro el contexto, escribiremos \(\chi_{S}\) en lugar de \(\chi_{S}^{X}\).
Dada una funcion \(f\) y un conjunto \(S\subseteq D_{f}\), usaremos \(f|_{S}\) para denotar la restriccion de \(f\) al conjunto \(S\), i.e. \(f|_{S}=f\cap(S\times I_{f})\). Notese que \(f|_{S}\) es la funcion dada por \[\begin{aligned} D_{f|_{S}} & =S\\ f|_{S}(e) & =f(e)\text{, para cada }e\in S \end{aligned}\] Notese que cualesquiera sea la funcion \(f\) tenemos que \(f|_{\emptyset}=\emptyset\) y \(f|_{D_{f}}=f\).
Dadas funciones \(f_{1},...,f_{n}\), con \(n\geq2\), definamos la funcion \([f_{1},...,f_{n}]\) de la siguiente manera: \[\begin{aligned} D_{[f_{1},...,f_{n}]} & =D_{f_{1}}\cap...\cap D_{f_{n}}\\{} [f_{1},...,f_{n}](e) & =(f_{1}(e),...,f_{n}(e)) \end{aligned}\] Notese que \(I_{[f_{1},...,f_{n}]}\subseteq I_{f_{1}}\times\cdots\times I_{f_{n}}\). Por conveniencia notacional (que el lector entendera mas adelante) definiremos \([f_{1}]=f_{1}\). Es decir que hemos definido para cada sucecion de funciones \(f_{1},...,f_{n}\), con \(n\geq1\), una nueva funcion la cual denotamos con \([f_{1},...,f_{n}]\).
Una observacion interesante es que si \(f_{i}:A_{i}\rightarrow B_{i}\), \(i=1,...,k\), son funciones tales que \(A_{i}\cap A_{j}=\emptyset\) para \(i\neq j\), entonces \(f_{1}\cup...\cup f_{k}\) es la funcion \[\begin{array}{rll} A_{1}\cup...\cup A_{k} & \rightarrow & B_{1}\cup...\cup B_{k}\\ e & \rightarrow & \left\{ \begin{array}{clc} f_{1}(e) & & \text{si }e\in A_{1}\\ \vdots & & \vdots\\ f_{k}(e) & & \text{si }e\in A_{k} \end{array}\right. \end{array}\]