Benutzer:부고/Bewertungsring

aus Wikipedia, der freien Enzyklopädie

Grafakos: Classical Fourier Analysis

Bremaud: Fourier Analysis and stochastic processes

Broecker-tom Dieck: Representations of compact Lie groups

Varadarajan: Lie groups, Lie algebras and their representations

Sepanski: Compact Lie groups

Duistermaat-Kolk: Lie groups

Bump: Lie groups

Warner: Foundations of differentiable manifolds and Lie groups

Olver: Applications of Lie groups to differential equations

Arnold: Mathematical methods of classical mechanics

Farkas-Kra: Riemann surfaces

Forster: Lectures on Riemann surfaces

Berenstein-Gay: Complex variables

Fritzsche-Grauert: From holomorphic functions to complex variables

Borel: Linear algebraic groups

Koblitz: Introduction to elliptic curves and modular forms

Silverman: Arithmetic of elliptic curves

Fulton: Algebraic topology

Rotman: An introduction to algebraic topology

Massey: A basic course in algebraic topology

Vick: Homology theory

Bott-Tu: Differential forms in algebraic topology

Bredon: Topology and geometry

Stillwell: Classical topology and combinatorial group theory

Lee: Introduction to smooth manifolds

Gruenbaum: Convex polytopes

Matousek: Lectures on discrete geometry

Dubrovin-Novikov-Fomenko: Modern geometry

Petersen: Riemannian geometry

Berger-Gostiaux: Differential geometry: manifolds, curves and surfaces


In Mathematik, Logik und Informatik ist eine Theorie des Typs eine Klasse von formalen Systemen, von denen einige dienen können Alternativen zu Set Theorie als Gründung für alle Mathematik. In der Typentheorie hat jeder "Begriff" einen "Typ" und Operationen sind auf Begriffe eines bestimmten Typs beschränkt.

Typ-Theorie ist eng verwandt mit (und in einigen Fällen Überlappungen mit) Typ-System s, die eine Programmiersprache -Funktion zur Reduzierung von Programmfehler sind. Die Typen der Typentheorie wurden geschaffen, um Paradoxien in einer Vielzahl von formalen Logik s zu vermeiden, und manchmal "Typentheorie" wird verwendet, um auf diese breitere Anwendung zu verweisen.

Zwei bekannte Typentheorien, die als mathematische Grundlagen dienen können, sind der [[typisierte Lambda-Kalkül | typed λ-Kalkül] Alonzo und Pro-Martin-Löf [[intuitionistische Typentheorie] ].

Geschichte

Zwischen 1902 und 1908 Bertrand Russell schlug verschiedene "Theorien des Typs" als Antwort auf seine Entdeckung vor, dass Gottlob Frege Version von naiver Satztheorie mit Russell's Paradox betroffen war. Um 1908 kam Russell zu einer "verzweigten" Theorie der Typen zusammen mit einem "Axiom der Reducibility", die beide prominent in Whitehead und Russell Principia Mathematica, die zwischen 1910 und 1913 veröffentlicht wurde. Sie versuchen, Russells Paradoxie zu vermeiden, indem sie zuerst eine Hierarchie von Typen erstellen und dann jeder mathematischen (und möglicherweise anderen) Entität einen Typ zuweisen. Objekte eines gegebenen Typs werden ausschließlich aus Objekten vorhergehender Typen (die in der Hierarchie niedriger) aufgebaut, wodurch Schleifen verhindert werden. In den 1920er Jahren Leon Chwistek und Frank P. Ramsey eine einfachere Theorie, jetzt bekannt als die "Theorie der einfachen Typen" oder "einfache Art Theorie", die die komplizierte Hierarchie der "verzweigt Theorie "und verlangte nicht das Axiom der Reduktion.

Die übliche Verwendung von "Typentheorie" ist, wenn diese Typen mit einem Begriff Rewrite-System verwendet werden. Das bekannteste frühe Beispiel ist Alonzo Church 's lambda calculus. Kirche der Theorie der Typen <ref name = "Kirche"> Alonzo-Kirche, Eine Formulierung der einfachen Theorie der Typen , The Journal of (1940) </ ref> half dem formalen System, das Kleene-Rosser-Paradox zu vermeiden, das den ursprünglichen untypisierten Lambda-Kalkül beeinträchtigte. Die Kirche zeigte, dass sie als Grundlage für die Mathematik dienen könnte und wurde als [Logik höherer Ordnung] bezeichnet.

Einige andere Theorien der Theorie umfassen die intuitionistische Theorie, die in einigen Bereichen des Konstruktivismus (Mathematik) konstruktive Mathematik (Mathematik) und für Beweis-Assistent [ [Agda (Programmiersprache) | Agda]]. Thierry Coquand 's Kalkül der Konstruktionen und seine Derivate sind die Grundlage von Coq und andere verwendet. Das Feld ist ein Bereich der aktiven Forschung, wie durch homotopy type theory demonstriert.

Grundlegende Konzepte

Vorlage:Cleanup In einem System der Typentheorie hat jedes ' term' einen 'type' und Operationen sind auf Terme eines bestimmten Typs beschränkt. Ein </ math> beschreibt, dass der Begriff <math> M </ math> den Typ <math> A </ math> hat. Beispielsweise kann <math> \ mathrm {nat} </ math> ein Typ sein, der die natürlichen Zahlen darstellt und <math> 0, 1, 2, ... </ math> kann Bewohner dieses Typs sein. Das Urteil, dass <math> 2 </ math> den Typ <math> \ mathrm {nat} </ math> hat, wird als <math> 2: \ mathrm {nat} </ math> geschrieben.

Eine Funktion in der Typentheorie wird mit einem Pfeil <math> \ to </ math> bezeichnet. Die Funktion <math> \ mathrm {addOne} </ math> (allgemein genannt successor) hat das Urteil <math> \ mathrm {addOne}: \ mathrm {nat} \ to \ mathrm {nat } </ Math>. Eine Funktion eines Arguments wird manchmal ohne Klammern geschrieben, so dass <math> \ mathrm {addOne} \ 2 </ math> anstelle von <math> \ mathrm {addOne} (2) <verwendet wird / Math>. (Dies kann als ausdrucksvollere Notation für konsistente Currying dienen.)

Typentheorien enthalten auch Regeln für das Umschreiben von Begriffen. Diese werden 'Konvertierungsregeln' oder, wenn die Regel nur in einer Richtung arbeitet, 'Reduktionsregel' genannt. Beispielsweise sind <math> 2 + 1 </ math> und <math> 3 </ math> syntaktisch verschiedene Terme, aber ersteres reduziert sich auf letztere. Diese Reduktion wird als <math> 2 + 1 \ twoheadrightarrow 3 </ math> bezeichnet.

Unterschied zur Mengenlehre

Es gibt viele verschiedene Satztheorien und viele verschiedene Systeme der Typentheorie, so was folgt, sind Verallgemeinerungen.

  • Set Theorie ist auf der Logik aufgebaut. Es erfordert ein eigenes System wie Freges darunter. In der Typentheorie können Begriffe wie "und" und "oder" als Typen in der Typentheorie selbst kodiert werden.
  • In der Mengenlehre kann ein Element zu mehreren Mengen gehören, entweder zu einer Teilmenge oder zu einer Obermenge. In der Typentheorie gehören Begriffe (allgemein) nur zu einem Typ. (Wenn eine Teilmenge verwendet würde, erzeugt die Typentheorie einen neuen Typ, der so genannte abhängiger Summentyp, mit neuen Begriffen Union | sum type]] und neue Begriffe.)
  • In der Mengenlehre können Mengen nicht zusammenhängende Elemente enthalten, z. B. Äpfel und reelle Zahlen. In der Typentheorie sind Typen, die nicht zusammenhängende Typen miteinander kombinieren, indem sie neue Begriffe schaffen.
  • Set Theorie in der Regel kodiert Zahlen als Mengen. (0 ist der leere Satz, 1 ist ein Satz, der den leeren Satz enthält usw.) Typentheorie kann Zahlen als Funktionen unter Verwendung von Church encoding oder mehr natürlich als [[Intuitionistische Theorie # Induktive Typen | induktive Typen] , Die Typen mit gut erzogenen konstanten Terme sind.
  • Set Theory erlaubt Set Builder-Notation.
  • Typ Theorie hat eine einfache Verbindung zur konstruktiven Mathematik durch die BHK-Interpretation (BHK-Interpretation).

Optionale Eigenschaften

Normalisierung

Der Begriff <math> 2 + 1 </ math> reduziert sich auf <math> 3 </ math>. Da <math> 3 </ math> nicht weiter reduziert werden kann, wird es als 'normale Form' bezeichnet. Ein System der Typentheorie wird als "Normalisierungseigenschaft" bezeichnet, wenn alle Begriffe eine normale Form haben und jede Reihenfolge der Reduktionen sie erreicht. 'Schwach Normalisierung' Systeme haben eine normale Form, aber einige Befehle der Reduktionen können für immer Schleife und nie erreichen.

Für ein normalisierendes System leihen einige das Wort 'element' von der Mengenlehre und verwenden es, um sich auf alle geschlossenen Begriffe zu beziehen, die auf dieselbe normale Form reduzieren können. Ein 'abgeschlossener Begriff' ist einer ohne Parameter. (Ein Ausdruck wie <math> x + 1 </ math> mit seinem Parameter <math> x </ math> wird als 'open term' bezeichnet.) Somit ist <math> 2 + 1 </ math> Und <math> 3 + 0 </ math> können unterschiedliche Terme sein, aber beide bilden das Element <math> 3 </ math>.

Eine ähnliche Idee, die für offene und geschlossene Begriffe funktioniert, ist Konvertibilität. Zwei Begriffe sind 'konvertierbar' , wenn es einen Begriff gibt, den sie beide reduzieren. Beispielsweise sind <math> 2 + 1 </ math> und <math> 1 + 2 </ math> konvertierbar. Wie sind <math> x + (1 + 1) </ math> und <math> x + 2 </ math>. Allerdings sind <math> x + 1 </ math> und <math> 1 + x </ math> (wobei <math> x </ math> eine freie Variable ist) nicht weil beide in normaler Form sind und sie nicht sind das Gleiche. Konfluente Konfluenz und schwach normalisierende Systeme können testen, ob zwei Begriffe konvertierbar sind, indem sie prüfen, ob sie beide auf dieselbe normale Form reduzieren.

Abhängige Typen

Ein 'abhängiger Typ' ist ein Typ, der von einem Begriff oder von einem anderen Typ abhängt. Somit kann der Typ, der von einer Funktion zurückgegeben wird, von dem Argument der Funktion abhängen.

Beispielsweise kann eine Liste von <math> \ mathrm {nat} </ math> s der Länge 4 ein anderer Typ sein als eine Liste von <math> \ mathrm {nat} </ math> s der Länge 5. In a Typ-Theorie mit abhängigen Typen ist es möglich, eine Funktion zu definieren, die einen Parameter "n" annimmt und eine Liste mit "n" Nullen zurückgibt. Das Aufrufen der Funktion mit 4 würde einen Term mit einem anderen Typ erzeugen, als wenn die Funktion mit 5 aufgerufen wurde.

Abhängige Typen spielen eine zentrale Rolle in intuitionistischer Typentheorie und im Entwurf von funktionale Programmiersprachen wie Idris, ATS , Agda und Epigram.

Gleichheitstypen (oder "Identitätstypen")

Viele Systeme der Typentheorie haben einen Typ, der die Gleichheit der Typen und der Begriffe darstellt. Dieser Typ unterscheidet sich von der Konvertibilität und wird oft als 'propositionale Gleichheit' bezeichnet.

In der intuitionistischen Typentheorie wird der Gleichheitstyp als <math> I </ math> für die Identität bezeichnet. Es gibt einen Typ <math> I \ A \ a \ b </ math>, wenn <math> A </ math> ein Typ ist und <math> a </ math> und <math> b </ math> beide sind Ausdrücke des Typs <math> A </ math>. Ein Ausdruck vom Typ <math> I \ A \ a \ b </ math> wird so interpretiert, dass <math> a </ math> gleich <math> b </ math> ist.

In der Praxis ist es möglich, einen Typ <math> I \ \ mathrm {nat} \ 3 \ 4 </ math> zu erstellen, aber es gibt keinen Term dieses Typs. In der Intuitionstheorie beginnen neue Gleichheitsbegriffe mit Reflexivität. Wenn <math> 3 </ math> ein Term vom Typ <math> \ mathrm {nat} </ math> ist, existiert ein Term vom Typ <math> I \ \ mathrm {nat} \ 3 \ 3 </ Math>. Kompliziertere Gleichheiten können durch die Schaffung eines reflexiven Begriffs und dann eine Reduktion auf einer Seite zu schaffen. Wenn also <math> 2 + 1 </ math> ein Term vom Typ <math> \ mathrm {nat} </ math> ist, dann gibt es einen Term vom Typ <math> I \ \ mathrm {nat} \ (2 + 1) \ (2 + 1) </ math> und erzeugt durch Reduktion einen Term vom Typ <math> I \ \ mathrm {nat} \ (2 + 1) \ 3 </ math>. In diesem System bedeutet der Gleichheitstyp, dass zwei Werte desselben Typs durch Reduktionen umwandelbar sind.

Eine Art für Gleichheit zu haben ist wichtig, weil sie innerhalb des Systems manipuliert werden kann. Es gibt in der Regel kein Urteil zu sagen, zwei Begriffe sind nicht gleich; Wie in der Brouwer-Heyting-Kolmogorov-Interpretation, <math> \ neg (a = b) </ math> auf <math> (a = b) \ zu \ bot </ math> Wobei <math> \ bot </ math> der bottom type ohne Werte ist. Es existiert ein Term mit dem Typ <math> (I \ \ mathrm {nat} \ 3 \ 4) \ zu \ bot </ math> 3) \ to \ bot </ math>.

Homotopie-Typ-Theorie unterscheidet sich von Intuitionstheorie meist durch ihre Behandlung des Gleichheitstyps.

Induktive Typen

Ein System der Typentheorie erfordert einige grundlegende Begriffe und Typen zu bedienen. Einige Systeme bauen sie aus Funktionen mit Church encoding. Andere Systeme haben 'induktive Typen' : einen Satz von Basistypen und einen Satz type constructor s, die Typen mit gut erzogenen Eigenschaften erzeugen. Zum Beispiel, bestimmte rekursive Funktionen aufgerufen induktive Typen werden garantiert zu beenden.

'Coinduktivität' sind unendliche Datentypen, die durch eine Funktion erzeugt werden, die die nächsten Elemente erzeugt. Siehe Coinduction und Corecursion.

'[' Induktions-Induktion (Typ-Theorie) | Induktionsinduktion]] 'ist ein Merkmal für die Deklaration eines induktiven Typs und einer Typenfamilie, die vom induktiven Typ abhängt.

'[' Induktionsrekursion (Typ-Theorie) | Induktionsrekursion]] 'erlaubt eine breitere Palette von gut erzogenen Typen, erfordert jedoch, dass der Typ und die rekursiven Funktionen, die auf ihnen operieren, gleichzeitig definiert werden.

Universumstypen

Arten wurden geschaffen, um Paradoxien, wie Russells Paradoxon zu verhindern. Aber die Motive, die zu diesen Paradoxien führen - in der Lage, Dinge über alle Typen zu sagen - existieren noch. So viele Typenlehren haben einen "Universumtyp", der alle anderen Typen (und nicht sich selbst) enthält.

In Systemen, in denen Sie etwas über Universaltypen sagen möchten, gibt es eine Hierarchie von Universaltypen, die jeweils die darunterliegende in der Hierarchie enthalten. Die Hierarchie ist als unendlich definiert, aber Aussagen dürfen sich nur auf eine endliche Anzahl von Universalebenen beziehen.

Typ-Universen sind besonders schwierig in der Typentheorie. Der ursprüngliche Vorschlag der intuitionistischen Typentheorie litt Girard's Paradoxon.

Berechnungsbaustein

Viele Systeme der Typentheorie, wie der einfach-typisierte Lambda-Kalkül, intuitionistische Typentheorie und der Kalkül der Konstruktionen, sind auch Programmiersprachen. Das heißt, sie sollen eine "rechnerische Komponente" haben. Die Berechnung ist die Reduzierung von Begriffen der Sprache mit rewriting rules.

Ein System der Typentheorie, das eine gut erarbeitete Rechenkomponente besitzt, hat auch eine einfache Verbindung zur konstruktiven Mathematik durch die BHK-Interpretation.

Nichtkonstruktive Mathematik in diesen Systemen ist möglich, indem Operatoren auf Fortsetzungen wie Aufruf mit aktueller Fortsetzung addiert werden. Diese Operatoren neigen jedoch dazu, wünschenswerte Eigenschaften wie Kanonizität und Parametricity zu brechen.

Systeme der Typentheorie

Major

Intuitionistische Typentheorie;

Minor

Active

Praktische Auswirkungen

Programmiersprachen

Vorlage:Haupt Es gibt umfangreiche Überschneidungen und Interaktionen zwischen den Gebieten der Typentheorie und der Typsysteme. Typ-Systeme sind eine Programmiersprachen-Feature zur Identifizierung von Bugs. Jede statische Programmanalyse, wie die Typüberprüfungsalgorithmen in der semantischen Analysephase von Compiler, hat eine Verbindung zur Typentheorie.

Ein Paradebeispiel ist Agda, eine Programmiersprache, die intuitionistische Typentheorie für ihr Typsystem verwendet. Die Programmiersprache ML wurde für die Manipulation von Typentheorien entwickelt (siehe LCF) und ihr eigenes Typsystem wurde stark von ihnen beeinflusst.

Mathematische Grundlagen

Vorlage:Erweitern Abschnitt Der erste Computer-Beweis-Assistent, genannt Automath, verwendet Typ-Theorie, um Mathematik auf einem Computer zu kodieren. Martin-Löf entwickelte speziell intuitionistische Typentheorie, um alle Mathematik zu kodieren, um als neue Grundlage für die Mathematik zu dienen. Es gibt aktuelle Forschung in mathematischen Grundlagen mit Homotopy Typ Theorie.

Mathematiker, die in Kategorienlehre arbeiteten, hatten bereits Schwierigkeiten, mit der allgemein anerkannten Grundlage von Zermelo-Fraenkel Satztheorie zu arbeiten. Dies führte zu Vorschlägen wie der [[Elementare Theorie der Setskategorie] von Lawvere] (ETCS). <Ref> Vorlage:Nlab </ ref> Die Homotopietyp-Theorie setzt sich in dieser Zeile mit der Typentheorie fort. Die Forscher untersuchen Verbindungen zwischen abhängigen Typen (insbesondere dem Identitätstyp) und algebraische Topologie (spezifisch Homotopie).

Nachweisassistenten

Ein Großteil der aktuellen Forschung zur Typentheorie wird von proof checkers, dem interaktiven proof assistant s und dem automatisierten Theorem bewiesen. Die meisten dieser Systeme verwenden eine Typtheorie als mathematische Grundlage für die Verschlüsselung von Beweisen, was angesichts der engen Verbindung zwischen Typentheorie und Programmiersprachen nicht verwunderlich ist:

Mehrere Theorien werden von LEGO und Isabelle unterstützt. Isabelle unterstützt auch Stiftungen neben Typ-Theorien, wie z. B. ZFC. Mizar ist ein Beispiel für ein Proof-System, das nur Set-Theorie unterstützt.

Sprachwissenschaft

Typ Theorie ist auch weit verbreitet in formale Theorien der Semantik von natürliche Sprache s, besonders Montague Grammatik und seine Nachkommen. Insbesondere die kategoriale Grammatik und die Pregroup-Grammatik machen umfangreiche Verwendung von Typkonstruktoren, um die Typen ( noun , 'verb' 'usw.) von Wörtern zu definieren.

Die häufigsten Konstruktionen sind die Grundtypen <math> e </ math> und <math> t </ math> für Personen bzw. Wahrheitswert s und definieren den Satz von Typen rekursiv wie folgt:

  • Wenn <math> a </ math> und <math> b </ math> Typen sind, dann ist auch <math> \ langle a, b \ rangle </ math>;
  • Nichts außer den Grundtypen, und was aus ihnen mit Hilfe der vorherigen Klausel konstruiert werden können, sind Typen.

Ein komplexer Typ <math> \ langle a, b \ rangle </ math> ist der Typ von Funktionen von Entitäten vom Typ <math> a </ math> zu Entitäten vom Typ <math> B </ math>. So hat man Typen wie <math> \ langle e, t \ rangle </ math>, die als Elemente des Satzes von Funktionen von Entitäten zu Wahrheitswerten, d.h. Indikatorfunktion s von Mengen von Entitäten interpretiert werden. Ein Ausdruck vom Typ <math> \ langle \ langle e, t \ rangle, t \ rangle </ math> ist eine Funktion von Mengen von Entitäten zu Wahrheitswerten, d.h. a (Indikatorfunktion von) Satzmengen. Dieser letztere Typ wird üblicherweise als der natural language quantifiers bezeichnet, wie "jeder" oder "niemand" (Montague 1973, Barwise und Cooper 1981).

Sozialwissenschaften

Gregory Bateson führte eine Theorie der logischen Typen in die Sozialwissenschaften ein; Seine Vorstellungen von double bind und logical levels basieren auf Russells Theorie der Typen.

Beziehung zur Kategorie-Theorie

Obwohl die anfängliche Motivation für die Kategorietheorie weit vom Fundamentalismus entfernt war, erwiesen sich die beiden Felder zu tiefen Verbindungen. Wie John Lane Bell schreibt: "In der Tat können Kategorien" selbst "als Typentheorien einer bestimmten Art angesehen werden, diese Tatsache allein zeigt, dass Typentheorie viel mehr mit der Theorie der Theorie verwandt ist, als sie zu setzen ist Theorie." Kurz gesagt, kann eine Kategorie als eine Typentheorie betrachtet werden, indem sie ihre Objekte als Typen (oder Arten) betrachtet, d.h. "Grob gesprochen kann eine Kategorie als eine Typentheorie betrachtet werden, die von ihrer Syntax geschoren wird." Eine Reihe von signifikanten Ergebnissen folgen auf diese Weise: <ref name = "Sets und Erweiterungen im zwanzigsten Jahrhundert"> Akihiro Kanamory (Hrsg.): Handbook of the History of Logic. Band 6. Sets und Erweiterungen im 20. Jahrhundert. Elsevier, 2012, ISBN 978-0-08-093066-4. </ ref>

Das Zusammenspiel, bekannt als kategorische Logik, ist seither Gegenstand aktiver Forschung; Siehe die Monographie von Jacobs (1999) zum Beispiel.

Siehe auch