Coq (Software)

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

Coq logo.png
Ein Beweiszustand in einer Datei der Standardbibliothek
Basisdaten

Entwickler Institut national de recherche en informatique et en automatique, Open Source
Erscheinungsjahr 1984
Aktuelle Version 8.8.2
(26. September 2018[1])
Betriebssystem Plattformunabhängig
Programmiersprache Objective CAML[2]
Kategorie Maschinengestütztes Beweisen
Lizenz LGPL (Freie Software)
coq.inria.fr

Coq ist ein Programm zum maschinengestützten Beweisen mathematischer Aussagen.

Übersicht[Bearbeiten | Quelltext bearbeiten]

In Coq formuliert man Datentypdefinitionen und ausführbare Programmteile sowie mathematische Aussagen und Beweise. Die getroffenen Aussagen beziehen sich gewöhnlich auf die definierten Funktionen. Coq überprüft die formale Richtigkeit von Beweisen mithilfe seines auch sonst benutzten Typprüfers.

Weiterhin unterstützt Coq die Suche nach Beweisen und erlaubt es, aus einer formalen Programmspezifikation samt Implementation und Korrektheitsbeweis beispielsweise ein ML-Programm zu extrahieren. Hierbei werden nichtübersetzbare Typinformationen ignoriert. Aus (zwangsläufig konstruktiven) Beweisen von Existenzaussagen lässt sich ebenfalls Zielcode generieren.

Coq verwendet den Kalkül der induktiven Konstruktion[3], eine Form des Konstruktionskalküls. Coq ist kein vollautomatisches Beweissystem, kennt aber einige Beweistaktiken und Entscheidungsfindungsprozeduren.

Entwicklung[Bearbeiten | Quelltext bearbeiten]

Coq wird in Frankreich im Projekt TypiCal (früher LogiCal) entwickelt, einem Gemeinschaftsprojekt von INRIA, École polytechnique, Universität Paris-Süd und CNRS. Eine weitere Arbeitsgruppe bestand an der École normale supérieure de Lyon. Teamleiter ist Benjamin Werner.

Coq wird in Objective CAML entwickelt, einer (im Wesentlichen) funktionalen Programmiersprache.

Name[Bearbeiten | Quelltext bearbeiten]

Das französische Wort Coq bedeutet Gockel oder Hahn und steht in der französischen Tradition, wissenschaftliche Entwicklungswerkzeuge nach Tieren zu benennen. Außerdem erinnert es an Thierry Coquand, der gemeinsam mit Gérard Huet den Konstruktionskalkül entwickelte.

Vier-Farben-Satz[Bearbeiten | Quelltext bearbeiten]

Georges Gonthier (von Microsoft Research, in Cambridge, England) und Benjamin Werner (von INRIA) erzeugten mit Hilfe von Coq einen überschaubaren Beweis des Vier-Farben-Satzes, der 2005 fertiggestellt wurde.[4]

Als Nebenergebnis dieser Arbeit entstand eine Erweiterung für Coq namens ssreflect ("small scale reflection"). Trotz des Namens sind die meisten Features der Erweiterung allgemein verwendbar, also nicht nur für reflexive Beweise. Die aktuelle Version ssreflect 1.2 ist freie Software (Lizenz CeCILL) und kompatibel zu Coq 8.2.[5]

Satz von Feit-Thompson[Bearbeiten | Quelltext bearbeiten]

Der Satz von Feit-Thompson sagt aus, dass jede endliche Gruppe ungerader Ordnung auflösbar ist. Er wurde 1963 von W. Feit und J. G. Thompson bewiesen.

Georges Gonthier gelang mit Kollegen nach sechsjähriger Arbeit 2012 die Verifikation des Beweises mit Coq. [6]

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Commons: Coq (Software) – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Coq 8.8.2 is out
  2. The Coq proof assistant Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
  3. Coq-Referenzhandbuch – Calculus of Inductive Constructions (Memento vom 27. Dezember 2012 im Internet Archive)
  4. Gonthier: Formal Proof – the Four-Color Theorem, Notices AMS 2008 (PDF; 2,7 MB)
  5. Announcing Ssreflect version 1.2
  6. Feit-Thompson proved in Coq, Microsoft Research-Inria, 20. September 2012, Web-Archive