Articulo de referencia

Tupla

En matemáticas , una tupla es una secuencia finita (o lista ordenada) de números . De forma más general, es una secuencia de objetos matemáticos , llamados elementos de la tupla...

En matemáticas , una tupla es una secuencia finita (o lista ordenada) de números . De forma más general, es una secuencia de objetos matemáticos , llamados elementos de la tupla. Una n -tupla es una tupla de n elementos, donde n es un entero no negativo . Solo existe una 0-tupla, llamada tupla vacía . Una 1-tupla y una 2-tupla se denominan comúnmente singleton y par ordenado , respectivamente. El término "tupla infinita" se usa ocasionalmente para referirse a "secuencias infinitas" .

Las tuplas se suelen escribir enumerando los elementos entre paréntesis " ( ) " y separados por comas; por ejemplo, (2, 7, 4, 1, 7) denota una tupla de 5 elementos. A veces se utilizan otros tipos de corchetes, aunque pueden tener un significado diferente. [ a ]

Una n -tupla se puede definir formalmente como la imagen de una función cuyo dominio es el conjunto de los primeros n números naturales ( 1, 2, ..., n ). Las tuplas también se pueden definir a partir de pares ordenados mediante una recurrencia que comienza con un par ordenado; de hecho, una n -tupla se puede identificar con el par ordenado de sus primeros ( n − 1) elementos y su n- ésimo elemento, por ejemplo,(((1,2),3),4)=(1,2,3,4){\displaystyle \left(\left(\left(1,2\right),3\right),4\right)=\left(1,2,3,4\right)}.

En informática , las tuplas se presentan en muchas formas. La mayoría de los lenguajes de programación funcional tipados implementan las tuplas directamente como tipos de producto , [ 1 ] estrechamente asociados con tipos de datos algebraicos , coincidencia de patrones y asignación de desestructuración . [ 2 ] Muchos lenguajes de programación ofrecen una alternativa a las tuplas, conocida como tipos de registro , que presentan elementos no ordenados a los que se accede por etiqueta. [ 3 ] Algunos lenguajes de programación combinan tipos de producto de tuplas ordenadas y tipos de registro no ordenados en una sola construcción, como en las estructuras de C y los registros de Haskell. Las bases de datos relacionales pueden identificar formalmente sus filas (registros) como tuplas .

Las tuplas también aparecen en el álgebra relacional ; al programar la web semántica con el Resource Description Framework (RDF); en lingüística ; [ 4 ] y en filosofía . [ 5 ]

Etimología

El término se originó como una abstracción de la secuencia: simple, pareja/doble, triple, cuádruple, quíntuple, séxtuple, séptuple, óctuple, ..., n -tupla, ..., donde los prefijos se toman de los nombres latinos de los numerales. La única 0-tupla se llama tupla nula o tupla vacía . Una 1-tupla se llama simple (o singleton ), una 2-tupla se llama par ordenado o pareja , y una 3-tupla se llama triple (o triplete ). El número n puede ser cualquier entero no negativo . Por ejemplo, un número complejo se puede representar como una 2-tupla de reales, un cuaternión se puede representar como una 4-tupla, un octonión se puede representar como una 8-tupla, y un sedenión se puede representar como una 16-tupla.

Aunque estos usos tratan -tuple como el sufijo, el sufijo original era -ple como en "triple" (tres veces) o "decuple" (diez veces). Esto tiene su origen en el latín medieval plus (que significa "más") relacionado con el griego -πλοῦς, que reemplazó al clásico y tardoantiguo -plex (que significa "plegado"), como en "dúplex". [ 6 ] [ b ]

Propiedades

La regla general para la identidad de dos n -tuplas es

(a1,a2,,anorte)=(b1,b2,,bnorte){\displaystyle (a_{1},a_{2},\ldots ,a_{n})=(b_{1},b_{2},\ldots ,b_{n})}si y solo sia1=b1, a2=b2, , anorte=bnorte{\displaystyle a_{1}=b_{1},{\text{ }}a_{2}=b_{2},{\text{ }}\ldots ,{\text{ }}a_{n}=b_{n}}.

Por lo tanto, una tupla tiene propiedades que la distinguen de un conjunto :

  1. Una tupla puede contener múltiples instancias del mismo elemento, por lo que tupla(1,2,2,3)(1,2,3){\displaystyle (1,2,2,3)\neq (1,2,3)}; pero establecido{1,2,2,3}={1,2,3}{\displaystyle \{1,2,2,3\}=\{1,2,3\}}.
  2. Los elementos de la tupla están ordenados: tupla(1,2,3)(3,2,1){\displaystyle (1,2,3)\neq (3,2,1)}, pero establecido{1,2,3}={3,2,1}{\displaystyle \{1,2,3\}=\{3,2,1\}}.
  3. Una tupla tiene un número finito de elementos, mientras que un conjunto o un multiconjunto puede tener un número infinito de elementos.

Definiciones

Existen varias definiciones de tuplas que les confieren las propiedades descritas en la sección anterior.

Tuplas como funciones

El0{\displaystyle 0}-tupla puede identificarse como la función vacía . Paranorte1,{\displaystyle n\geq 1,}elnorte{\displaystyle n}-tupla(a1,,anorte){\displaystyle \left(a_{1},\ldots ,a_{n}\right)}puede identificarse con la función sobreyectiva

F : {1,,norte}  {a1,,anorte}{\displaystyle F~:~\left\{1,\ldots ,n\right\}~\to ~\left\{a_{1},\ldots ,a_{n}\right\}}

con dominio

dominioF={1,,norte}={inorte:1inorte}{\displaystyle \operatorname {domain} F=\left\{1,\ldots ,n\right\}=\left\{i\in \mathbb {N} :1\leq i\leq n\right\}}

y con codominio

codominioF={a1,,anorte},{\displaystyle \operatorname {codomain} F=\left\{a_{1},\ldots ,a_{n}\right\},}

que se define enidominioF={1,,norte}{\displaystyle i\in \operatorname {domain} F=\left\{1,\ldots ,n\right\}}por

F(i):=ai.{\displaystyle F(i):=a_{i}.}

Eso es,F{\displaystyle F}es la función definida por

1a1norteanorte{\displaystyle {\begin{alignedat}{3}1\;&\mapsto &&\;a_{1}\\\;&\;\;\vdots &&\;\\n\;&\mapsto &&\;a_{n}\\\end{alignedat}}}

en cuyo caso la igualdad

(a1,a2,,anorte)=(F(1),F(2),,F(norte)){\displaystyle \left(a_{1},a_{2},\dots ,a_{n}\right)=\left(F(1),F(2),\dots ,F(n)\right)}

necesariamente se cumple.

Tuplas como conjuntos de pares ordenados

Las funciones se identifican comúnmente con sus gráficas , que son un conjunto determinado de pares ordenados. De hecho, muchos autores utilizan las gráficas como definición de una función. Usando esta definición de "función", la función anteriorF{\displaystyle F}se puede definir como:

F := {(1,a1),,(norte,anorte)}.{\displaystyle F~:=~\left\{\left(1,a_{1}\right),\ldots ,\left(n,a_{n}\right)\right\}.}

Tuplas como pares ordenados anidados

Otra forma de modelar tuplas en la teoría de conjuntos es como pares ordenados anidados . Este enfoque presupone que la noción de par ordenado ya ha sido definida.

  1. La tupla 0 (es decir, la tupla vacía) está representada por el conjunto vacío.{\displaystyle \emptyset }.
  2. Una n -tupla, con n > 0 , se puede definir como un par ordenado formado por su primera entrada y una ( n − 1) -tupla (que contiene las entradas restantes cuando n > 1) :
    (a1,a2,a3,,anorte)=(a1,(a2,a3,,anorte)){\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=(a_{1},(a_{2},a_{3},\ldots ,a_{n}))}

Esta definición se puede aplicar recursivamente a la ( n − 1) -tupla:

(a1,a2,a3,,anorte)=(a1,(a2,(a3,(,(anorte,))))){\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=(a_{1},(a_{2},(a_{3},(\ldots ,(a_{n},\emptyset )\ldots ))))}

Así, por ejemplo:

(1,2,3)=(1,(2,(3,)))(1,2,3,4)=(1,(2,(3,(4,)))){\displaystyle {\begin{aligned}(1,2,3)&=(1,(2,(3,\emptyset )))\\(1,2,3,4)&=(1,(2,(3,(4,\emptyset ))))\\\end{aligned}}}

Una variante de esta definición comienza a "desprender" elementos del otro extremo:

  1. La 0-tupla es el conjunto vacío{\displaystyle \emptyset }.
  2. Para n > 0 :
    (a1,a2,a3,,anorte)=((a1,a2,a3,,anorte1),anorte){\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=((a_{1},a_{2},a_{3},\ldots ,a_{n-1}),a_{n})}

Esta definición puede aplicarse de forma recursiva:

(a1,a2,a3,,anorte)=(((((,a1),a2),a3),),anorte){\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=((\ldots (((\emptyset ,a_{1}),a_{2}),a_{3}),\ldots ),a_{n})}

Así, por ejemplo:

(1,2,3)=(((,1),2),3)(1,2,3,4)=((((,1),2),3),4){\displaystyle {\begin{aligned}(1,2,3)&=(((\emptyset ,1),2),3)\\(1,2,3,4)&=((((\emptyset ,1),2),3),4)\\\end{aligned}}}

Tuplas como conjuntos anidados

Utilizando la representación de Kuratowski para un par ordenado , la segunda definición anterior puede reformularse en términos de teoría de conjuntos pura :

  1. La tupla 0 (es decir, la tupla vacía) está representada por el conjunto vacío.{\displaystyle \emptyset };
  2. Dejarincógnita{\displaystyle x}ser una n -tupla(a1,a2,,anorte){\displaystyle (a_{1},a_{2},\ldots ,a_{n})}y dejarincógnitab(a1,a2,,anorte,b){\displaystyle x\rightarrow b\equiv (a_{1},a_{2},\ldots ,a_{n},b)}. Entonces,incógnitab{{incógnita},{incógnita,b}}{\displaystyle x\rightarrow b\equiv \{\{x\},\{x,b\}\}}. (La flecha derecha,{\displaystyle \rightarrow }, podría leerse como "junto con".)

En esta formulación:

()=(1)=()1={{()},{(),1}}={{},{,1}}(1,2)=(1)2={{(1)},{(1),2}}={{{{},{,1}}},{{{},{,1}},2}}(1,2,3)=(1,2)3={{(1,2)},{(1,2),3}}={{{{{{},{,1}}},{{{},{,1}},2}}},{{{{{},{,1}}},{{{},{,1}},2}},3}}{\displaystyle {\begin{array}{lclcl}()&&&=&\emptyset \\&&&&\\(1)&=&()\rightarrow 1&=&\{\{()\},\{(),1\}\}\\&&&=&\{\{\emptyset \},\{\emptyset ,1\}\}\\&&&&\\(1,2)&=&(1)\rightarrow 2&=&\{\{(1)\},\{(1),2\}\}\\&&&=&\{\{\{\{\emptyset \},\{\emptyset ,1\}\}\},\\&&&&\{\{\{\emptyset \},\{\emptyset ,1\}\},2\}\}\\&&&&\\(1,2,3)&=&(1,2)\rightarrow 3&=&\{\{(1,2)\},\{(1,2),3\}\}\\&&&=&\{\{\{\{\{\{\emptyset \},\{\emptyset ,1\}\}\},\\&&&&\{\{\{\emptyset \},\{\emptyset ,1\}\},2\}\}\},\\&&&&\{\{\{\{\{\emptyset \},\{\emptyset ,1\}\}\},\\&&&&\{\{\{\emptyset \},\{\emptyset ,1\}\},2\}\},3\}\}\\\end{array}}}

n -tuplas de m- conjuntos

En matemáticas discretas , especialmente en combinatoria y teoría de probabilidad finita , las n -tuplas surgen en el contexto de varios problemas de conteo y se tratan de manera más informal como listas ordenadas de longitud n . [ 7 ] Las n -tuplas cuyas entradas provienen de un conjunto de m elementos también se denominan arreglos con repetición , permutaciones de un multiconjunto y, en cierta literatura no inglesa, variaciones con repetición . El número de n -tuplas de un m -conjunto es m n . Esto se deduce de la regla combinatoria del producto . [ 8 ] Si S es un conjunto finito de cardinalidad m , este número es la cardinalidad de la potencia cartesiana n -ésima S × S × ⋯ × S. Las tuplas son elementos de este conjunto producto.

teoría de tipos

En la teoría de tipos , comúnmente utilizada en lenguajes de programación , una tupla tiene un tipo de producto ; esto fija no solo la longitud, sino también los tipos subyacentes de cada componente. Formalmente:

(incógnita1,incógnita2,,incógnitanorte):T1×T2××Tnorte{\displaystyle (x_{1},x_{2},\ldots ,x_{n}):{\mathsf {T}}_{1}\times {\mathsf {T}}_{2}\times \ldots \times {\mathsf {T}}_{n}}

y las proyecciones son constructores de términos:

π1(incógnita):T1, π2(incógnita):T2, , πnorte(incógnita):Tnorte{\displaystyle \pi _{1}(x):{\mathsf {T}}_{1},~\pi _{2}(x):{\mathsf {T}}_{2},~\ldots ,~\pi _{n}(x):{\mathsf {T}}_{n}}

La tupla con elementos etiquetados utilizada en el modelo relacional tiene un tipo de registro . Ambos tipos pueden definirse como extensiones simples del cálculo lambda simplemente tipado . [ 9 ]

La noción de tupla en la teoría de tipos y en la teoría de conjuntos se relacionan de la siguiente manera: Si consideramos el modelo natural de una teoría de tipos y usamos los corchetes de Scott para indicar la interpretación semántica , entonces el modelo consta de algunos conjuntos.S1,S2,,Snorte{\displaystyle S_{1},S_{2},\ldots ,S_{n}}(nota: el uso de cursiva aquí distingue los conjuntos de los tipos) de tal manera que:

[[T1]]=S1, [[T2]]=S2, , [[Tnorte]]=Snorte{\displaystyle [\![{\mathsf {T}}_{1}]\!]=S_{1},~[\![{\mathsf {T}}_{2}]\!]=S_{2},~\ldots ,~[\![{\mathsf {T}}_{n}]\!]=S_{n}}

y la interpretación de los términos básicos es:

[[incógnita1]][[T1]], [[incógnita2]][[T2]], , [[incógnitanorte]][[Tnorte]]{\displaystyle [\![x_{1}]\!]\in [\![{\mathsf {T}}_{1}]\!],~[\![x_{2}]\!]\in [\![{\mathsf {T}}_{2}]\!],~\ldots ,~[\![x_{n}]\!]\in [\![{\mathsf {T}}_{n}]\!]}.

La n -tupla de la teoría de tipos tiene la interpretación natural de una n -tupla de la teoría de conjuntos: [ 10 ]

[[(incógnita1,incógnita2,,incógnitanorte)]]=([[incógnita1]],[[incógnita2]],,[[incógnitanorte]]){\displaystyle [\![(x_{1},x_{2},\ldots ,x_{n})]\!]=(\,[\![x_{1}]\!],[\![x_{2}]\!],\ldots ,[\![x_{n}]\!]\,)}

El tipo de unidad tiene como interpretación semántica la 0-tupla.

Para obtener una lista de los tipos de tuplas en los lenguajes de programación, consulte Tipo de producto#Tipos de producto en los lenguajes de programación .

Véase también

Notas

  1. Los corchetes se utilizan para matrices , incluidos los vectores fila . Las llaves se utilizan para conjuntos . Cada lenguaje de programación tiene su propia convención para los diferentes corchetes.
  2. Compare la etimología de ploidía , del griego que significa -pliegue.

Referencias

  1. "Tipo de dato algebraico - HaskellWiki" . wiki.haskell.org .
  2. "Desestructuración de la asignación" . MDN Web Docs . 18 de abril de 2023.
  3. "¿Garantiza JavaScript el orden de las propiedades de los objetos?" . Stack Overflow .
  4. Matthews, PH, ed. (enero de 2007). «N-tupla» . The Concise Oxford Dictionary of Linguistics . Oxford University Press. ISBN 9780199202720. Consultado el 1 de mayo de 2015 .
  5. Blackburn, Simon (1994). «n-tupla ordenada». The Oxford Dictionary of Philosophy . Oxford guidelines quick reference (3.ª ed.). Oxford: Oxford University Press (publicado en 2016). p. 342. ISBN   9780198735304. Recuperado el 30-06-2017 . n-tupla ordenada[:] Una generalización de la noción de un [...] par ordenado a secuencias de n objetos.
  6. OED , sv "triple", "cuádruple", "quíntuple", "decuple"
  7. D'Angelo y West 2000 , pág. 9 
  8. D'Angelo y West 2000 , pág. 101 
  9. Pierce, Benjamin (2002). Tipos y lenguajes de programación . MIT Press. págs. 126-132 . ISBN  0-262-16209-1.
  10. Steve Awodey, De conjuntos a tipos, a categorías, a conjuntos , 2009, preimpresión

Fuentes

  • D'Angelo, John P .; West, Douglas B. (2000), Pensamiento matemático/Resolución de problemas y demostraciones (2.ª  ed.), Prentice-Hall, ISBN 978-0-13-014412-6
  • Keith Devlin , El placer de los conjuntos . Springer Verlag, 2.ª ed., 1993, ISBN 0-387-94094-4págs. 7–8
  • Abraham Adolf Fraenkel , Yehoshua Bar-Hillel , Azriel Lévy , Fundamentos de la teoría de conjuntos escolar , Elsevier Studies in Logic, vol. 67, 2.ª edición, revisada, 1973, ISBN 0-7204-2270-1pág. 33
  • Gaisi Takeuti , WM Zaring, Introducción a la teoría axiomática de conjuntos , Springer GTM 1, 1971, ISBN 978-0-387-90024-7pág. 14
  • George J. Tourlakis, Apuntes de clase sobre lógica y teoría de conjuntos. Volumen 2: Teoría de conjuntos , Cambridge University Press, 2003, ISBN 978-0-521-75374-6págs. 182–193
  • Logotipo de WikcionarioDefinición de tupla en el diccionario Wikcionario