<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Curry-Howard-Isomorphismus</id>
	<title>Curry-Howard-Isomorphismus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Curry-Howard-Isomorphismus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Curry-Howard-Isomorphismus&amp;action=history"/>
	<updated>2026-06-06T04:47:19Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Curry-Howard-Isomorphismus&amp;diff=2062958&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Quellen */ https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Curry-Howard-Isomorphismus&amp;diff=2062958&amp;oldid=prev"/>
		<updated>2023-10-16T19:04:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Quellen: &lt;/span&gt; https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Als &amp;#039;&amp;#039;&amp;#039;Curry-Howard-Isomorphismus&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;&amp;#039;Curry-Howard-Korrespondenz&amp;#039;&amp;#039;&amp;#039;) bezeichnet man die Interpretation von [[Datentyp|Typen]] als logische Aussagen und von Termen eines bestimmten Typs als Beweise der zum Typ gehörenden Aussage; und umgekehrt. Benannt ist er nach den Mathematikern [[Haskell Brooks Curry]] und [[William Alvin Howard]].&lt;br /&gt;
&lt;br /&gt;
== Halb-formale Beschreibung ==&lt;br /&gt;
Der Begriff der &amp;#039;&amp;#039;Wahrheit&amp;#039;&amp;#039; wird ausgetauscht mit dem Begriff der &amp;#039;&amp;#039;Beweisbarkeit&amp;#039;&amp;#039;, folgt also dem [[Intuitionismus (Logik und Mathematik)|intuitionistischen]] Verständnis von Mathematik. Eine Aussage ist beweisbar, wenn es einen Term gibt, der den zur Aussage passenden Typ hat.&lt;br /&gt;
&lt;br /&gt;
=== Einfache Junktoren ===&lt;br /&gt;
Ein Beweis für eine &amp;#039;&amp;#039;[[Konjunktion (Logik)|Konjunktion]]&amp;#039;&amp;#039; &amp;lt;math&amp;gt;A\land B&amp;lt;/math&amp;gt; ist ein Paar von Beweisen, &amp;lt;math&amp;gt;(p,q): A\times B&amp;lt;/math&amp;gt; für sowohl &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; als auch &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ein Beweis für eine &amp;#039;&amp;#039;[[Disjunktion]]&amp;#039;&amp;#039; &amp;lt;math&amp;gt;A\lor B&amp;lt;/math&amp;gt; ist ein Term aus der disjunkten Vereinigung von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;A+B&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Beweise für &amp;#039;&amp;#039;[[Implikationen]]&amp;#039;&amp;#039; &amp;lt;math&amp;gt;A\to B&amp;lt;/math&amp;gt; sind totale Funktionen des Typs &amp;lt;math&amp;gt;A\to B&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die [[Negation#Logik|logische Negation]] &amp;lt;math&amp;gt;\lnot A&amp;lt;/math&amp;gt; wird üblicherweise als Abkürzung für &amp;lt;math&amp;gt;A\to \bot&amp;lt;/math&amp;gt; definiert, wobei &amp;lt;math&amp;gt;\bot&amp;lt;/math&amp;gt; unter dem Curry-Howard-Isomorphismus dem [[Leerer Typ|leeren Typ]] entspricht.&lt;br /&gt;
&lt;br /&gt;
=== Quantoren ===&lt;br /&gt;
Eine universell quantifizierte Aussage &amp;lt;math&amp;gt;\forall {a\in A}: {X(a)}&amp;lt;/math&amp;gt; wird zu einer Funktion, bei der der &amp;#039;&amp;#039;Typ&amp;#039;&amp;#039; des Funktionswertes vom &amp;#039;&amp;#039;Wert&amp;#039;&amp;#039; des Funktionsarguments abhängig ist. Hier trifft man also auf &amp;#039;&amp;#039;dependent types&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Der Beweis einer existenziell quantifizierten Aussage &amp;lt;math&amp;gt;\exists {a\in A}: {X(a)}&amp;lt;/math&amp;gt; muss zwei Dinge liefern: ein &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;-Element &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, und einen Beweis für &amp;lt;math&amp;gt;X(a)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Beweisbeispiel ==&lt;br /&gt;
Der [[Satz vom ausgeschlossenen Dritten]] gilt in konstruktiven Logikkalkülen normalerweise nicht (würde er gelten, wäre jede Aussage entscheidbar, was entweder [[Gödelscher Unvollständigkeitssatz|Ausdrucksschwäche oder Inkonsistenz]] nach sich zieht). Eine Version mit doppelter Negation unterhalb der Allquantisierung über Aussagen lässt sich jedoch durch Angabe eines Beweisterms belegen.&lt;br /&gt;
Gesucht ist, für beliebige Aussagen &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, ein Beweis für&lt;br /&gt;
: &amp;lt;math&amp;gt;\lnot\lnot(A\lor\lnot A)&amp;lt;/math&amp;gt;,&lt;br /&gt;
was unter Curry-Howard und mit Auflösung der Negationsabkürzung ein &amp;#039;&amp;#039;Term&amp;#039;&amp;#039; des Typs&lt;br /&gt;
: &amp;lt;math&amp;gt;((A+(A\to\bot))\to\bot)\to\bot&amp;lt;/math&amp;gt;&lt;br /&gt;
wird. Der [[Lambda-Ausdruck]]&lt;br /&gt;
: &amp;lt;math&amp;gt;\lambda f.f(\kappa_2(\lambda a.f(\kappa_1 a)))&amp;lt;/math&amp;gt;&lt;br /&gt;
stellt einen Term des gewünschten Typs dar, wobei &amp;lt;math&amp;gt;\kappa_1 \colon A\to(A+(A\to\bot))&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\kappa_2 \colon (A\to\bot)\to(A+(A\to\bot))&amp;lt;/math&amp;gt; die Injektionen in den zweistelligen Summentyp sind.&lt;br /&gt;
&lt;br /&gt;
== Praktische Anwendungen ==&lt;br /&gt;
Verfügbare und benutzbare Beweisassistenten/Programmiersprachen wie [[Coq (Software)|Coq]], [[Epigram]] und [[Agda]] machen vom Curry-Howard-Isomorphismus Gebrauch, indem sie es gestatten, Beweise als Programme und Aussagen als Typen anzugeben. Der Typprüfer übernimmt dabei die Aufgabe, die angegebenen Beweise zu verifizieren.&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* [https://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf Simon Thompson: Type Theory and Functional Programming] (PDF; 1,3&amp;amp;nbsp;MB)&lt;br /&gt;
* [https://www.cse.chalmers.se/research/group/logic/book/book.pdf Bengt Nordström, Kent Petersson, Jan M. Smith: Programming in Martin-Löfs Type Theory] (PDF; 709&amp;amp;nbsp;kB)&lt;br /&gt;
* [https://homepages.inf.ed.ac.uk/wadler/papers/propositions-as-types/propositions-as-types.pdf Philip Wadler: Propositions as Types] (PDF; 261&amp;amp;nbsp;kB)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Typentheorie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>