Typentheorie

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springenZur Suche springen

Inmathematischer Logik undtheoretischer Informatik sindTypentheorienformale Systeme, in denen jeder Term einen Typ hat und Operationen auf bestimmte Typen beschränkt sind. Einige Typentheorien werden als Alternative zuraxiomatischen Mengenlehre als Grundlage für die moderne Mathematik benutzt.

Typentheorien haben Überschneidungen mitTypsystemen, die ein Merkmal vonProgrammiersprachen zur Fehlervermeidung darstellen.

Zwei populäre Typentheorien, die als mathematische Grundlagen genutzt werden, sindAlonzo Churchstypisierter Lambda-Kalkül undPer Martin-Löfsintuitionistische Typentheorie.

Inhaltsverzeichnis

Geschichte

[Bearbeiten |Quelltext bearbeiten]

Zwischen 1902 und 1908 schlugBertrand Russell verschiedene Typentheorien vor, mit denen dieRussellsche Antinomie dernaiven MengenlehreGottlob Freges vermieden werden sollte. Seine „verzweigte“ Typentheorie und dasReduzibilitätsaxiom spielten eine wichtige Rolle in den zwischen 1910 und 1913 veröffentlichtenPrincipia Mathematica.Whitehead und Russell versuchten dort, Russells Paradoxon durch eine Hierarchie von Typen zu vermeiden, wobei jeder mathematischen Entität ein Typ zuzuordnen ist. Objekte eines bestimmten Typs können nur aus Objekten niederen Typs aufgebaut sein, so dass Schleifen vermieden werden. In den 1920er Jahren schlugenLeon Chwistek undFrank P. Ramsey eine einfachere Theorie vor, die heute als „einfache Typentheorie“ bekannt ist.

Üblicherweise besteht eine Typentheorie aus Typen und einemTermersetzungssystem. Ein bekanntes Beispiel ist derLambda-Kalkül. Auf ihm basiert dieLogik höherer Stufe.

In einigen Bereichen derkonstruktiven Mathematik und auch für den BeweisassistentenAgda wird die intuitionistische Typentheorie verwendet. Dagegen beruht der BeweisassistentCoq auf demKonstruktionskalkül CoC. Ein aktives Forschungsgebiet ist dieHomotopietypentheorie.

Grundlegende Konzepte

[Bearbeiten |Quelltext bearbeiten]

In einer Typentheorie hat jeder Term einen Typ und Operationen werden nur für Terme eines bestimmten Typs definiert. Ein TypurteilM:A{\displaystyle M\colon A} besagt, dass der TermM{\displaystyle M} vom TypA{\displaystyle A} ist. Zum Beispiel istNat{\displaystyle \mathrm {Nat} } der Typ dernatürlichen Zahlen und0,1,2,{\displaystyle 0,1,2,\ldots } sind Terme von diesem Typ.2:Nat{\displaystyle 2\colon \mathrm {Nat} } ist das Urteil, dass2{\displaystyle 2} vom TypNat{\displaystyle \mathrm {Nat} } ist.

Eine Funktion wird in der Typentheorie durch einen Pfeil{\displaystyle \to } bezeichnet. DieNachfolger-FunktionaddOne{\displaystyle \mathrm {addOne} } hat das UrteiladdOne:NatNat{\displaystyle \mathrm {addOne} \colon \mathrm {Nat} \to \mathrm {Nat} }. Der Aufruf einer Funktion wird gelegentlich auch ohne Klammer geschrieben, alsoaddOne2{\displaystyle \mathrm {addOne} \,2} anstelle vonaddOne(2).{\displaystyle \mathrm {addOne} (2).}

Eine Typentheorie kann auch Termumformungsregeln enthalten. Zum Beispiel sind2+1{\displaystyle 2+1} und3{\displaystyle 3} syntaktisch unterschiedliche Terme, der erste lässt sich aber auf den zweiten reduzieren. Man schreibt2+13{\displaystyle 2+1\twoheadrightarrow 3}.

Typentheorien

[Bearbeiten |Quelltext bearbeiten]

Lambda-Kalkül (nach Church)

[Bearbeiten |Quelltext bearbeiten]
Hauptartikel:Lambda-Kalkül

Alonzo Church benutzte den Lambda-Kalkül, um 1936 sowohl eine negative Antwort auf dasEntscheidungsproblem zu geben als auch eine Fundierung eines logischen Systems zu finden, wie es den Principia Mathematica von Bertrand Russell und Alfred North Whitehead zugrunde lag. Mittels des untypisierten Lambda-Kalküls kann man klar definieren, was eineberechenbare Funktion ist. Die Frage, ob zwei Lambda-Ausdrücke(s. u.) äquivalent sind, kann im Allgemeinen nicht algorithmisch entschieden werden. In seiner typisierten Form kann der Kalkül benutzt werden, umLogik höherer Stufe darzustellen. Der Lambda-Kalkül hat die Entwicklungfunktionaler Programmiersprachen, die Forschung um Typsysteme von Programmiersprachen im Allgemeinen sowie moderne Teildisziplinen in derLogik wie die Typtheorie wesentlich beeinflusst.

Intuitionistische Typentheorie (nach Martin-Löf)

[Bearbeiten |Quelltext bearbeiten]

Die intuitionistische Typentheorie nachPer Martin-Löf ist eine auf den Prinzipien desKonstruktivismus aufbauende Typentheorie und alternative Grundlegung derMathematik.

Sie beruht auf einer Analogie zwischen Propositionen und Typen: eine Proposition wird mit dem Typ ihres Beweises identifiziert. So ist z. B. der Typ allergeordneten Paare vergleichbar mitlogischer Konjunktion: Ein solches geordnetes Paar kann nur existieren, falls beide Typen mindestens ein Element besitzen. Hierdurch können viele logische Prinzipien verallgemeinert werden.

Ein ebenfalls sehr relevanter Aspekt der Typentheorie sind induktive Definitionen. Ein Beispiel dafür sind dienatürlichen Zahlen: Sie werden explizit als Konstruktion aus der Null und einer Nachfolgerfunktion definiert. Diese werden nicht wie in derMengenlehre speziell definiert, sondern ihre Existenz wird angenommen oder durch eine verallgemeinerte Konstruktion erlaubt. Zusammen mit diesen Konstruktoren existiert auch einInduktionsschema, das die Erstellung von Funktionen über die natürlichen Zahlen oder auch Beweisen, die für jede natürliche Zahl gelten, erlaubt.

Im Allgemeinen wird die intuitionistische Typentheorie oft als näher zur mathematischen Praxis gesehen als fundamentale Mengenlehre, da in dieser jeglichesmathematisches Objekt als Menge betrachtet wird.

Calculus of Constructions (nach Coquand)

[Bearbeiten |Quelltext bearbeiten]

Die Typentheorie Calculus of Constructions (CoC) nachThierry Coquand ist ein Lambda-Kalkül höherer Ordnung, der die Grundlage sowohl für einen konstruktiven Aufbau der Mathematik als auch für das computerisierte BeweissystemCoq ist.

Homotopietypentheorie

[Bearbeiten |Quelltext bearbeiten]

DieHomotopietypentheorie (HoTT) bezeichnet Entwicklungen der intensionalen Typentheorie von Martin-Löf, basierend auf der Interpretation von Typen als Objekte derHomotopietheorie (Vladimir Voevodsky). Homotopietypentheorie kann als Alternative zurMengenlehre als Grundlage für jegliche Mathematik benutzt werden. Aktuelle Forschung umfasst deshalb u. a. die Formulierung herkömmlicher Mathematik auf Grundlage von Typentheorie und die Umsetzung inBeweisassistenten.

Im akademischen Jahr 2012/2013 entstand in einem gemeinsamen Forschungsprojekt amInstitute for Advanced Study ein Buch über die Grundlagen dieser Disziplin.[1]

Spezielle Typen

[Bearbeiten |Quelltext bearbeiten]
  • Einheitstyp – void oder 0-Tupel (Englisch: void type), hat nur einen einzigen Wert, ähnlich:
  • Bottom-Typ – leerer Typ ohne Werte (null oder ⊥) (hat keinen Wert)
  • Top-Typ – der universelle Typ (object oder ⊤) (alle anderen Typen sind Subtypen)

Typkonstruktoren

[Bearbeiten |Quelltext bearbeiten]

Mit einemTypkonstruktor lassen sich aus vorhandenen (einfachen) Typen neue konstruieren. Beispiele sindsetof[2] entsprechend der Russellschen Typhierarchie (auch iteriert zu einem Basistyp) und Konstruktoren für geordnete Paare oder auchn-Tupel: Wenn Komponenten verschiedene Typen haben,[3] ist einePaardarstellung nachKuratowski (oder ähnlich) nicht möglich und es muss die Existenz eines Paartyps axiomatisch (per Paaraxiom) gefordert werden. In der Anwendung bei Programmiersprachen werden ähnliche Konstruktorenrecord oderstruct genannt, allerdings haben deren Komponenten gewöhnlich Namen statt Indexnummern wie bei Tupelkoordinaten.[4] Siehe dazu auchMonaden,Lambda-Kalkül §Typisierter Lambda-Kalkül,Typkonstruktoren in der Programmiersprache Haskell.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Literatur

[Bearbeiten |Quelltext bearbeiten]

Weblinks

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Homotopy Type Theory: Univalent Foundations of Mathematics
  2. siehePL/PostgreSQL
  3. Jedenfalls wenn die Basistypen entsprechend der Russellschen Typhierarchie verschieden sind; bei verschiedenen Typstufen innerhalb derselben Hierarchie kann man die Paardarstellung noch geeignet modifizieren.
  4. Entsprechend einerFeature-Logik.
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Typentheorie&oldid=250631136
Kategorien: