]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/www/matita/matita.shtml
Versione italiana
[helm.git] / helm / www / matita / matita.shtml
index 4ea191d03ffd1293bc2a4b3ef54843c4847b3c80..b06da9bd0b362bbd98e0c9e3fc10c6bc3547856e 100644 (file)
@@ -10,7 +10,7 @@
     <!--#include virtual="menubar.shtml" -->
     <!--#include virtual="news.shtml" -->
     <div class="main">
+
       <div class="topimage">
        <img src="images/matita-text-big.png" alt="Matita" />
        <a href="matita_it.shtml">
       <a href="http://www.unibo.it">University of Bologna</a>.
       </p>
 
+      <p>
+      </p>
 <!-- <a href="http://www.mkm-ig.org">Mathematical Knowledge Management</a> tools and techniques. </p> -->
 
+      <p class="spaced">
+      <span class="screenshots">
+       <a class="quiet" href="images/screenshot-matita.png">
+         <img src="images/MINI_screenshot-matita.png" alt="Matita screenshot: authoring interface" />
+       </a>
+      </span>
+      
+      <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>
+
+      <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>
+
+      <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>
+
+      <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 and reasoning: 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>
+      
 
     </div>
   </body>