Komprehension: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:
In der [[Mengenlehre]] werden [[Objekt]]e mit Hilfe der [[Elementbeziehung]] zu [[Menge]]n und [[Klasse]]n zusammengefasst.  
In der [[Mengenlehre]] werden [[Objekt]]e mit Hilfe der [[Elementbeziehung]] zu [[Menge]]n und [[Klasse]]n zusammengefasst.  
Es ist möglich, mathematische Theorien '''ausschließlich''' mit Hilfe von Klassen und der Elementbeziehung  
Es ist möglich, mathematische Theorien '''ausschließlich''' mit Hilfe von Klassen und der Elementbeziehung  
zu formalisieren ({{zB}} mittels der klassenlogischen Sprache LЄ von Glubrecht, Oberschelp und   
zu formalisieren ({{zB}} mittels der klassenlogischen Sprache LЄ von Glubrecht, Oberschelp und  Todt<ref name="Glubrecht, Oberschelp, Todt (1983)">{{Quelle|Glubrecht, Oberschelp, Todt (1983)}}</ref>).   
Todt<ref name="Glubrecht, Oberschelp, Todt (1983)">{{Quelle|Glubrecht, Oberschelp, Todt (1983)}}</ref>).   
Purkert und Ilgauds betonen, dass viele Mathematiker sogar der Meinung seien, dass die Mengenlehre das Fundament  
Purkert und Ilgauds betonen, dass viele Mathematiker sogar der Meinung seien, dass die Mengenlehre das Fundament  
für die gesamte Mathematik bildet:
für die gesamte Mathematik bildet:
Zeile 105: Zeile 104:
und/oder als Elemente auftreten können:
und/oder als Elemente auftreten können:


* [[Klassen]] sind Container: Sie können Elemente enthalten (und zwar Urelemente und Mengen).
* {{Klasse}}n sind Container: Sie können Elemente enthalten (und zwar Urelemente und Mengen).
* [[Urelemente]] können in Klassen als Elemente enthalten sein, können selbst aber keine Elemente enthalten.
* [[Urelemente]] können in Klassen als Elemente enthalten sein, können selbst aber keine Elemente enthalten.
* [[Mengen]] sind spezielle Klassen (können also Elemente enthalten); sie können auch in Klassen als Elemente enthalten sein.
* {{Menge}}n sind spezielle Klassen (können also Elemente enthalten); sie können auch in Klassen als Elemente enthalten sein.
* [[Unmengen]] sind spezielle Klassen (können also Elemente enthalten); sie sind aber so umfangreich, dass sie nicht in irgendwelchen Klassen als Elemente enthalten sein können.
* [[Unmenge]]n sind spezielle Klassen (können also Elemente enthalten); sie sind aber so umfangreich, dass sie nicht in irgendwelchen Klassen als Elemente enthalten sein können.


Typische Urelemente sind Zahlen, Zeichenketten, Boolesche Werte etc.
Typische Urelemente sind Zahlen, Zeichenketten, Boolesche Werte etc.
Üblicherweise verzichtet man in der Mathematik heutzutage auf die Definition von speziellen Urelementen.
Üblicherweise verzichtet man heutzutage in mathematischen Theorien auf die Definition von speziellen Urelementen.
Es reicht aus, wenn man die leere Menge, {{dh}} die einzige Klasse, die keine Elemente enthält, als Urelement zur Verfügung hat.
Es reicht aus, wenn man die leere Menge, {{dh}} die einzige Klasse, die keine Elemente enthält, als Urelement zur Verfügung hat.
Alle andere Urelemente können dann durch spezielle Klassen ({{dh}} Container) repräsentiert werden  
Alle andere Urelemente können dann durch spezielle Klassen ({{dh}} Container) repräsentiert werden  
(die Zahl „Null“ beispielsweise durch die leere Menge $\{\}$, die Zahl „Eins“ durch die einelementige Menge $\{\{\}\}$ etc.).
(die Zahl „Null“ beispielsweise durch die leere Menge $\{\}$, die Zahl „Eins“ durch die einelementige Menge $\{\{\}\}$ etc.).
Es gibt aber auch Ausnahmen, wie {{zB}} die Sprache [[LISP]], in der – vor allem aus Performanz-Gründen – nicht
Es gibt aber auch Ausnahmen, wie {{zB}} die [[Klassenlogik]] von
auf Urelemente verzichtet wird. In LISP werden die Urelemente „Atome“ genannt.<ref Name="McCarthy (1960)">{{Quelle|McCarthy (1960)}}</ref>
Glubrecht, Oberschelp, und Todt<ref name="Glubrecht, Oberschelp, Todt (1983)">{{Quelle|Glubrecht, Oberschelp, Todt (1983)}}</ref>,
deren formale Systeme nicht nur Urelemente zulassen, sondern teilweise sogar $\epsilon$-unerreichbare Elemente.
 
In Programmiersprachen gibt es dagegen immer Urelemente (von esoterischen Ausnahmen abgesehen).
Zum Beispiel wird in der Sprache [[LISP]], die auf dem [[Lambda-Kalkül]] von [[Alonzo Church]] basiert, nicht
auf Urelemente verzichtet. Church hat gezeigt, dass [[Boolean|Boolesche Werte]], [[Integer|Ganze Zahlen]], [[geordnetes Paar|geordnete Paare]] etc.
allein mit Hilfe von Lambda-Termen nachgebildet werden können. Dennoch wurden diese Elemente explizit in LISP als
eigenständige Elemente eingeführt – vor allem aus Performanz-Gründen. Es gibt ein Container-Element (geordnete Paare)
und diverse Urelemente: Zahlen, Zeichenketten, Boolesche Werte, den Wert NIL etc.
In LISP werden die Urelemente „Atome“ genannt.<ref Name="McCarthy (1960)">{{Quelle|McCarthy (1960)}}</ref>


Auch bei Paaren und deren Verallgemeinerung, den [[Tupel]]n handelt es sich um Container,
Auch bei Paaren und deren Verallgemeinerung, den [[Tupel]]n handelt es sich um Container,

Version vom 23. August 2019, 20:07 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 2
(teilweise überprüft)
Umfang: 2
(wichtige Fakten fehlen)
Quellenangaben: 2
(wichtige Quellen fehlen)
Quellenarten: 5
(ausgezeichnet)
Konformität: 5
(ausgezeichnet)

Das Zusammenfassen von Objekten zu einer Einheit wird Komprehesion genannt. Komprehension ist ein fundamentales Prinzip der Mathematik sowie der Informatik.

In der Mengenlehre werden Objekte mit Hilfe der Elementbeziehung zu Mengen und Klassen zusammengefasst. Es ist möglich, mathematische Theorien ausschließlich mit Hilfe von Klassen und der Elementbeziehung zu formalisieren (z. B. mittels der klassenlogischen Sprache LЄ von Glubrecht, Oberschelp und Todt[1]). Purkert und Ilgauds betonen, dass viele Mathematiker sogar der Meinung seien, dass die Mengenlehre das Fundament für die gesamte Mathematik bildet: Die Tatsache, daß alle mathematischen Begriff auf mengentheoretische Begriffe zurückgeführt werden können, hat einige Autoren sogar zu der Behauptung veranlaßt, die gesamte Mathematik sei letztendlich mit der Mengenlehre identisch.[2]

Aber auch in der Programmierung ist das Zusammenfassen von Objekten zu komplexeren Objekte von zentraler Bedeutung: Jede höhere Programmiersprache stellt komplexe Datenstrukturen – wie Tupeln, Listen, Bäumen etc. – bereit, um Daten verwalten zu können.[3]

Um Komprehension formalisieren zu können, benötigt man drei Begriffe:

  • Container/Collection: Das sind Objekte, die Objekte als Elemente enthalten können.
  • Individuen: Das sind Objekte, die in Objekten als Elemente enthalten sein können.
  • Elementbeziehung: Diese setzt Individuen und Container in Beziehung zueinander.

Der Begriff Container wurde – in Ermangelung eines gebräuchlicheren Terminus – der C++-Standardbibliothek STL entlehnt. In SQL wird auch der Begriff Collection dafür verwendet.[4] Der Begriff Individuum ist etwas allgemeiner als der von Cantor geprägte Begriff Element[5]. Er geht auf Quine zurück und wird von Glubrecht, Oberschelp, Todt bei der Definition diverser Klassenlogiken verwendet.[6][1]

In der Mengenlehre heißt ein Container heute üblicherweise Menge oder Klasse, aber es finden sich – insbesondere in alten Schriften – diverse weitere Bezeichnungen: Mannigfaltigkeit, Ingebriff, Gesamtheit, Umfang oder System. Für die Gesamtheit aller Individuen finden sich in der Literatur weitere Begriffe, wie z. B. Individuenbereich, Dingbereich oder Tägermenge.

Definition (Duden – Das Fremdwörterbuch (2001)[7]

(Philos.) Zusammenfassung, Vereinigung von Mannigfaltigkeiten zu einer Einheit

Definitionen (Kowarschick (GlossarWiki))

Datei:Container.png
Klassifikation der Objekte eines Universums

Es sei $U$ ein Universum (Universe of Discourse) einer mathematischen Theorie oder eines informationstechnischen Systems. Die Mitglieder von $U$ heißen Objekte.

Unter Komprehension versteht man die Zusammenfassung von beliebig vielen Objekten aus $U$ zu einem Objekt aus $U$ mit Hilfe einer so genannten Elementbeziehung. Ein Objekt, das Objekte als Elemente enthält, wird Container genannt.

Die Objekte des Universums $U$ können hinsichtlich einer gegebenen Elementbeziehung $\epsilon$ folgendermaßen klassifiziert werden:

  • Ein $\epsilon$-Container ist ein Objekt, das Elemente (gemäß der gegebenen Beziehung $\epsilon$) enhalten kann.
  • Ein leerer $\epsilon$-Container ist ein Objekt, dass zwar als $\epsilon$-Container klassifiziert wird, aber zu keinem Zeitpunkt ein Element enhalten kann.
  • Ein $\epsilon$-Individuum ist ein Objekt, das Element eines $\epsilon$-Containers sein kann.
  • Ein Objekt, das sowohl $\epsilon$-Individuum als auch $\epsilon$-Container ist, heißt $\epsilon$-Container-Individuum.
  • Ein $\epsilon$-Container, der kein $\epsilon$-Individuum ist, heißt purer $\epsilon$-Container.
  • Ein $\epsilon$-Individuum, das kein $\epsilon$-Container ist, heißt $\epsilon$-Urelement.
  • Ein Objekt das weder ein $\epsilon$-Individuum noch ein $\epsilon$-Container ist, heißt $\epsilon$-unerreichbar.

Wenn klar ist, welche Elementbeziehung gemeint ist, wird i. Allg. der Zusatz „$\epsilon$-“ bei den obigen Begriffen nicht geschrieben. Allerdings muss man diesen Zusatz manchmal explizit angeben, da es in einer mathematischen Theorie oder einem informationstechnischem System durchaus mehrere Elementbeziehungen geben kann und jedes Objekte des Universums in jeder Elementebeziehung eine andere Rolle spielen kann.

Unterschied zwischen mathematischen und informationstechnischen Theorien

Mathematischen Theorien liegt meist ein Bündel von statischen Welten zu Grunde, die irgendwelche gemeinsame Eigenschaften haben. Diese Welten werden durch sogenannte Modelle beschrieben, die gemeinsamen Eigenschaften durch sogenannte Axiome, deren Gültigkeit in allen betrachteten Welten als gegeben angesehen wird.[8] Zeitliche Aspekte werden in mathematischen Theorien eher selten betrachtet. (Es gibt allerdings Ausnahmen, wie z. B. die Temporallogik oder die Turingmaschine.)

Informationstechnische Systeme leben dagegen vom Zeitbegriff. Ein Programm befindet sich zum Startzeitpunkt in einem bestimmten Zustand und führt nacheinander bestimmte Anweisungen aus, die das Programm jeweils in einen neuen Zustand überführen. (Die Turingmaschine beschreibt dieses Verhalten mit mathematischen Mitteln.)

Für mathematische Theorien reicht es daher üblicherweise, eine Elementbeziehung durch Relationen auf den Universen der betrachteten Welten zu interpretieren. Um den gegebenen Axiomen zu genügen, müssen die Elementrelationen auf den zugehörigen Universen jeweils bestimmte Bedingungen erfüllen. Für informationstechnische Systeme muss es dagegen möglich sein, im Laufe der Zeit Container zu erzeugen, zu durchsuchen, zu modifizieren und zu löschen, da hier die Welten nicht gleichzeitig, sondern nacheinander betrachtet werden. Man benötigt für die Handhabung von Containern also zusätzlich sogenannte CRUD-Befehle (create, read, update, delete).

Mengenlehre

TO BE DONE

Datei:Container paradoxa.png
Mengenuniversum ohne Modell

Die wichtigsten Container in mathematischen Theorien sind: Mengen, Klassen, geordnete Paare, Tupel.

Urelemente: Man geht von einem Bereich von Objekten mit einer Element-Beziehung $\epsilon$ aus. Es wird ein (eventuell leerer) Teilbereich aller Objekte ausgezeichnet. Die ihm angehörenden Objekte heißen Urelemente. Für alle Urelemente $a$ gilt, es gibt kein $d$ mit $d \,\epsilon\, a$ [9]

Üblicherweise ist ein leerer Container ein Container-Indivduum. Es sind aber auch Situationen denkbar, in denen es sich um einen puren Container handelt.

In mathematischen Theorien gibt es meist genau einen leeren Container (die leere Menge), in informationstechnischen Systemen gibt es dagegen meist beliebig viele leere Container (JavaScript: Mit {} – oder genauer Object.create(null) – wird jedesmal ein neues leeres Object erstellt).

Geordnete Paare sind per Definitionem Container, da sie genau zwei Objekte als Elemente enthalten, die so genannten Paarelemente. Auch die Verallgemeinerung der geordneten Paare, die Tupel sind Container. Ein $n$-Tupel enthält genau $n$ Elemente – die so genannten Tupelelemente – in einer bestimmten Reihenfolge.

In der Mengenlehre gibt es diverse weitere Arten von Objekten, die entweder als Container und/oder als Elemente auftreten können:

  • Klassen sind Container: Sie können Elemente enthalten (und zwar Urelemente und Mengen).
  • Urelemente können in Klassen als Elemente enthalten sein, können selbst aber keine Elemente enthalten.
  • Mengen sind spezielle Klassen (können also Elemente enthalten); sie können auch in Klassen als Elemente enthalten sein.
  • Unmengen sind spezielle Klassen (können also Elemente enthalten); sie sind aber so umfangreich, dass sie nicht in irgendwelchen Klassen als Elemente enthalten sein können.

Typische Urelemente sind Zahlen, Zeichenketten, Boolesche Werte etc. Üblicherweise verzichtet man heutzutage in mathematischen Theorien auf die Definition von speziellen Urelementen. Es reicht aus, wenn man die leere Menge, d. h. die einzige Klasse, die keine Elemente enthält, als Urelement zur Verfügung hat. Alle andere Urelemente können dann durch spezielle Klassen (d. h. Container) repräsentiert werden (die Zahl „Null“ beispielsweise durch die leere Menge $\{\}$, die Zahl „Eins“ durch die einelementige Menge $\{\{\}\}$ etc.). Es gibt aber auch Ausnahmen, wie z. B. die Klassenlogik von Glubrecht, Oberschelp, und Todt[1], deren formale Systeme nicht nur Urelemente zulassen, sondern teilweise sogar $\epsilon$-unerreichbare Elemente.

In Programmiersprachen gibt es dagegen immer Urelemente (von esoterischen Ausnahmen abgesehen). Zum Beispiel wird in der Sprache LISP, die auf dem Lambda-Kalkül von Alonzo Church basiert, nicht auf Urelemente verzichtet. Church hat gezeigt, dass Boolesche Werte, Ganze Zahlen, geordnete Paare etc. allein mit Hilfe von Lambda-Termen nachgebildet werden können. Dennoch wurden diese Elemente explizit in LISP als eigenständige Elemente eingeführt – vor allem aus Performanz-Gründen. Es gibt ein Container-Element (geordnete Paare) und diverse Urelemente: Zahlen, Zeichenketten, Boolesche Werte, den Wert NIL etc. In LISP werden die Urelemente „Atome“ genannt.[10]

Auch bei Paaren und deren Verallgemeinerung, den Tupeln handelt es sich um Container, die Elemente enthalten, die so genannten Paar- oder Tupelelemente. Zwischen Klassen und Klassenpaaren gibt es also einen wichtigen Unterschied: Unmengen können keine Elemente von irgendwelchen Klassen sein, wohl aber (Paar-)Elemente von Klassenpaaren. Das heißt, mit Hilfe Klassenpaaren (und Klassentupeln) kann man auch Unmengen zu größeren Einheiten zusammenfassen. Mit Mengenpaaren geht dies nicht.

Allerdings gibt es nicht nur Mengen- und Klassenpaare. Ein geordnetes Paar kann – in speziellen formalen Systemen – an Stelle von Klassen und Urelementen auch andere Arten von Elementen enthalten. Gottlob Frege erlaubt beispielsweise „Gegenstände“, „Funktionen“ und „Werthverläufe“ als Elemente.[11] John von Neumann erlaubt „Argumente“ (und damit insbesondere auch spezielle Funktionen, die sogenannten „Argument-Funktionen“)[12] und in LISP sind nur Atome (Urelemente) und Paare als Elemente erlaubt.[10]

Quellen

  1. 1,0 1,1 1,2 Glubrecht, Oberschelp, Todt (1983): Jürgen-Michael Glubrecht, Arnold Oberschelp und Günter Todt; Klassenlogik; Verlag: Bibliographisches Institut; Adresse: Mannheim, Wien, Zürich; ISBN: 3-411-01634-5, 978-3411016341; 1983; Quellengüte: 5 (Buch)
  2. Purkert, Ilgauds (1987): Walter Purkert und Hans-Joachim Ilgauds; Georg Cantor 1845 – 1918; Reihe: Vita Methematica; Verlag: Birkhäuser; Adresse: Basel, Boston, Stuttgart; ISBN: 3-7643-1770-1; 1987; Quellengüte: 5 (Buch), S. 9
  3. Sebesta (2016): Robert W. Sebesta; Concepts of Programming Languages; Auflage: 11; Verlag: Prentice Hall; ISBN: 978-1292100555, 978-0133943023; 2016; Quellengüte: 5 (Buch)
  4. Cantor (1895): Georg Cantor; Beiträge zur Begründung der transfiniten Mengenlehre; in: Mathematische Annalen; Band: 46; Nummer: 4; Seite(n): 481 – 512; Verlag: B. G. Teubner Verlag; Adresse: Leipzig; ISSN: 00255831 (Papier), 14321807 (Online); Web-Link 0, Web-Link 1, Web-Link 2, Web-Link 3; 1895; Quellengüte: 5 (Artikel)
  5. Quine (1963): Willard Van Orman Quine; Set Theory and its Logic; Verlag: Harvard University Press; Adresse: Cambridge; 1963; Quellengüte: 5 (Buch)
  6. Duden Band 5 (2001): Duden – Das Fremdwörterbuch; Band: 5; Auflage: 7; Verlag: Bibliographisches Institut & F.A. Brockhaus AG; Adresse: Mannheim; ISBN: 3411040572; 2001; Quellengüte: 5 (Buch)
  7. vgl. Güntzer, Schmidt, Kempf, Möller (1989): Ulrich Güntzer, Gunther Schmidt, Michael Kempf und Bernhard Möller; Mathematische Logik; Band: TUM-I-8900; Hochschule: Technische Universität München; 1989; Quellengüte: 4 (Skript)
  8. Felscher (1978): W. Felscher; Naive Mengen und abstrakte Zahlen; Band: 1; Verlag: BI-Wissenschaftsverlag; Adresse: Mannheim; ISBN: 3-411-01538-1; 1978; Quellengüte: 5 (Buch)
  9. 10,0 10,1 McCarthy (1960): John McCarthy; Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I; in: Communications of the ACM; Band: 3; Nummer: 4; Seite(n): 184-195; Verlag: Association for Computing Machinery; Adresse: New York; Web-Link 0, Web-Link 1; 1960; Quellengüte: 5 (Artikel)
  10. Frege (1893): Gottlob Frege; Grundgesetze der Arithmetik; Band: I; Verlag: Verlag Hermann Pohle; Adresse: Jena; Web-Link 0, Web-Link 1, Web-Link 2, Web-Link 3; 1893; Quellengüte: 5 (Buch)
  11. Neumann (1925): John von Neumann; Eine Axiomatisierung der Mengenlehre; in: Journal für die reine und angewandte Mathematik; Band: 154; Seite(n): 219-240; ISSN: 0075-4102, 1435-5345; Web-Link 0, Web-Link 1; 1925; Quellengüte: 5 (Artikel)

Siehe auch