]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/www/matita/matita.shtml
updated web site
[helm.git] / helm / www / matita / matita.shtml
index ecb47af32b0b0d8b410fabf54635f19f969ab4cb..5da934cdc8aa6661c76a4af35997b6fd49401713 100644 (file)
@@ -1,51 +1,65 @@
 <!--#include virtual="xhtml-header.shtml" -->
-<html>
+<!-- $Id$ -->
+<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
+    <meta name="keywords" content="Matita, prover, assistant" />
     <title>Matita - Home Page</title>
     <!--#include virtual="xhtml-meta.shtml" -->
   </head>
   <body>
     <!--#include virtual="menubar.shtml" -->
+    <!--#include virtual="news.shtml" -->
     <div class="main">
 
       <div class="topimage">
-       <img src="images/matita-text-big.png" />
+       <img src="images/matita-text-big.png" alt="Matita" />
+       <a href="matita_it.shtml">
+         <img src="flags/wit.gif" alt="italian flag" />
+        </a>
       </div>
 
-      <p> Matita is a new document-centric interactive theorem prover that
-      integrates several <a href="http://www.mkm-ig.org">Mathematical Knowledge
-       Management</a> tools and techniques. </p>
-
-      <p> Matita is <strong>traditional</strong>. Its logical foundation is the
-      Calculus of (Co)Inductive Constructions (CIC). It can re-use
-      mathematical concepts produced by other proof assistants like
-      <a href="http://coq.inria.fr">Coq</a> and encoded in an
-      <a href="http://www.w3.org/XML/">XML</a> encoding of CIC. The interaction
-      paradigm of Matita is familiar, being inspired by CtCoq and
-      <a href="http://proofgeneral.inf.ed.ac.uk/">Proof General</a>. Its
-      proof language is procedural in the same spirit of LCF. </p>
-
-      <p> Matita is <strong>innovative</strong>: </p>
-      <ul class="wide">
+      <p class="spaced">
+      Matita (that means <em>pencil</em> in italian) is an experimental, 
+       interactive theorem prover under development at the 
+      <a href="http://www.cs.unibo.it">Computer Science Department</a> of the 
+      <a href="http://www.unibo.it">University of Bologna</a>.
+      </p>
 
-       <li> the user interface sports high quality bidimensional rendering of
-       proofs and formulae transformed on-the-fly to
-       <a href="http://www.w3.org/Math/">MathML</a> markup, on which direct
-       manipulation of the underlying CIC terms is still possible; </li>
+      <p>
+      </p>
+<!-- <a href="http://www.mkm-ig.org">Mathematical Knowledge Management</a> tools and techniques. </p> -->
+      
+      <p>An interactive prover is a software tool aiding the development of 
+      formal proofs by man-machine collaboration. It provides a formal language 
+      where mathematical definitions, executable algorithms and theorems cohexist, 
+      and an interactive environment keeping the current status of the proof, 
+      and updating it according to commands (usually called tactics) issued by the user.
+      </p>
 
-       <li> the knowledge base is distributed: every authored concepts can be
-       published becoming part of the Matita library which can be browsed as
-       an hypertext (locally or on the World Wide Web) and searched by means
-       of content-based queries; </li>
+      <p>
+      Matita is based on a <a href="http://en.wikipedia.org/wiki/Dependent_type">Dependent Type System</a> known as the Calculus of Inductive Constructions.</p>
 
-       <li> the tactical language, part of the proof language, has
-       step-by-step semantics, enabling inspection and replaying of deeply
-       structured proof scripts. </li>
+      <p>It embeds key computational constructs of functional programming languages: 
+      functions can be defined by (well-founded) recursion, and are live entities that can be 
+      tested and executed.</p>
 
-      </ul>
+      <p>At the same time, proofs are an integrated part of the formalism, allowing, via the 
+      <a href="http://en.wikipedia.org/wiki/Curry-Howard_correspondence">Curry Howard 
+      isomorphism</a>, a smooth interplay between
+      specification, implementation and verification: proofs are objects of the language, and
+      can be treated as normal data, naturally leading to a programming style
+      akin to <a href="http://en.wikipedia.org/wiki/Proof-carrying_code">proof-carrying-code</a>, 
+      where chunks of software 
+      come equipped with proofs of (some of) their properties.</p>
 
+      <p>Matita is currently adopted in the European Union "Certified Complexity" Project
+      <a href="http://cerco.cs.unibo.it/">CerCo</a> for the formal verification of a 
+      complexity-preserving compiler from a large subset of C to a microcontroller 
+      assembly of the kind traditionally used in embedded systems.
+      </p>
+      
       <!--#include virtual="bottombar.shtml" -->
+
     </div>
   </body>
 </html>
-<!-- $Id$ -->