 ##  [Abhängige Typen](/de/node/61345) 

 Definition

Eine Eigenschaft der Typentheorie und Familie von Systemen, in denen Typen von Werten (Termen) abhängen können, wodurch Typen präzise Spezifikationen ausdrücken, Daten und Beweise verbinden und Prophezeiungen als Typen internalisiert werden können.

 

 

 

 

 

 





## Prinzip

Prinzip

Typen als Prädikate: Ein Typ kann nach einem Wert parametriert sein (z. B. Vector n A), sodass das Typsystem Invarianten auf Wertezusichern erzwingt; die Curry–Howard-Korrespondenz wird dabei mit größerer Ausdruckskraft realisiert.

 

 

 

 

 





## Demonstration

Demonstration

Definition eines Listentyps mit Länge n als List A n und Schreiben einer Funktion append : ∀n m. List A n → List A m → List A (n + m); der Typ stellt zur Kompilierzeit sicher, dass die Länge des Ergebnisses der Summe der Eingabelängen entspricht.

 

 

 

 

## Fehlanwendung

Fehlanwendung

Indezidierbare oder zu aufwändige Eigenschaften direkt in Typen zu kodieren (z. B. beliebige Suche während der Typprüfung), ohne Vorsicht walten zu lassen, wodurch die Typprüfung nicht terminieren oder Programme unpraktisch werden können.

 

 

 

 

 





## Konsequenz

Konsequenz

Ermöglicht das Einbetten reichhaltiger Spezifikationen in Typen, sodass viele Korrektheitseigenschaften vom Typrüfer geprüft werden; es erleichtert die Programmextraktion aus konstruktiven Beweisen und die Entwicklung hochzuverlässiger Software bei guter Gestaltung.

 

 

 

 

## Umkehrung

Umkehrung

Einfache Typensysteme, in denen Typen unabhängig von Laufzeitwerten sind (z. B. einfach typisierte Systeme), die ausdrucksstarke Spezifikationen zugunsten entscheidbarer und effizienter Typprüfung aufgeben.

 

 

 

 

 





## Abgrenzung

Abgrenzung

Gilt, wenn die Typprüfungsdisziplin wertebenen Berechnungen und Terminierungskontrollen unterstützt; abhängige Typen entscheiden nicht willkürlich über semantische Eigenschaften und erfordern oft Totalitäts-/Terminierungsbedingungen und Beweisverpflichtungen.

 

 

 

 

 





## Semantische Spannung

Semantische Spannung

Spannung zwischen ausdrucksstarken abhängigen Typen, die starke Invarianten formulieren können, und dem Wunsch nach entscheidbarer, effizienter Typprüfung und Automatisierung; außerdem Spannung zwischen Verwendung abhängiger Typen für Beweise und pragmatischer Programmierergonomie.

 

 

 

 

 





## Synthese

Synthese

Abhängige Typen erweitern das Typsystem so, dass Typen über Werte sprechen können, wodurch Typen zu präzisen Spezifikationen werden und Beweise über Programmverhalten neben dem Code leben können; sie erkaufen erhöhte Ausdruckskraft und Verifikationsfähigkeit mit größerer Komplexität bei Typprüfung und Entwicklung.