]> matita.cs.unibo.it Git - helm.git/blob - helm/www/matita/library.shtml
Maietti suggested to replace a paragraph about the development on the
[helm.git] / helm / www / matita / library.shtml
1 <!--#include virtual="xhtml-header.shtml" -->
2 <!-- $Id$ -->
3 <html xmlns="http://www.w3.org/1999/xhtml">
4   <head>
5     <title>Matita - Library</title>
6     <!--#include virtual="xhtml-meta.shtml" -->
7   </head>
8   <body>
9     <!--#include virtual="menubar.shtml" -->
10     <div class="main">
11       <h1>Matita Library</h1>
12
13       <h2>Scripts<a name="scripts"></a></h2>
14       <p>
15       The <a href="library/">scripts</a> used to generate the knowledge base of
16       Matita can be <a href="library/">browsed on line</a>.
17       </p>
18       <p>
19       The experimental <a href="nlibrary/">scripts</a> for the next major version of Matita can also be <a href="nlibrary/">browsed on line</a>.
20       </p>
21
22       <br/>
23
24       <h1>Large Developments</h1>
25
26       <h2>Certified Complexity (CerCo)<a name="cerco"></a></h2>
27       <p>Matita is being used to certify a cost preserving compiler from a
28          large subset of C into the 8051 machine code. The compiler does not
29          only produce the target code, but it also instruments the source code
30          with precise cost declarations for the execution of O(1) code
31          fragments. This induced cost model for the source language is
32          inherently non compositional since it is affected by the compilation
33          strategy: the same instructions are compiled in different ways in
34          different contexts, yielding different costs.
35        </p>
36        <p>The final aim of the CerCo project is to formally reason on
37          intensional properties on the C code -- e.g. to show that some hard
38          deadline is always met
39          -- and to be sure that the property holds also for the target code.
40        </p>
41        <p>The CerCo project is a FET Open IST project funded by the EU
42           community in the 7th Framework Programme. More informations on the
43           project and the code of the Matita formalization can be found
44           on the <a href="cerco.cs.unibo.it">CerCo Web site</a>
45        </p>
46
47       <h2>The Basic Picture<a name="sambin"></a></h2>
48       <p>
49       The <a href="library/formal_topology">scripts</a> present a formalization
50       of some results from the forthcoming book <a href="http://www.oup.com/us/catalog/general/subject/Mathematics/Logic/?view=usa&ci=9780199232888">The Basic Picture - Structures for Constructive Topology</a> by Giovanni Sambin.
51       </p>
52       <p>The formalization has been the result of a three years long
53        collaboration between mathematicians from the University of Padova
54        and computer scientists from the University of
55        Bologna, sponsored by the University of Padova. In particular,
56        the groups that collaborated are headed respectively by Prof. Sambin
57        in Padua (formal topology and constructive type theory)
58        and by Prof. Asperti in Bologna (constructive type theory and interactive
59        theorem proving).
60       </p>
61       <p>
62       In particular the <a href="library/formal_topology">scripts</a> present:
63       </p>
64       <ul>
65        <li>the category of Basic Pairs, that are generalizations of
66            topological spaces</li>
67        <li>the category of Basic Topologies, that are generalizations of
68            formal topologies</li>
69        <li>the existence of a categorical embedding of the former category
70            into the latter. The embedding is an improvement on the usual
71            adjunction between topological spaces and locales</li>
72       </ul>
73       <p>
74       All the results are presented constructively and in the predicative 
75       fragment of Matita based on the minimalist type theory
76       by Maietti and Sambin, where choice axioms are not valid.
77       </p>
78       In order to reason conformtably on the previous concrete categories and
79       functors, we also present algebraic versions of all the introduced
80       notions, as well as categorical embedding of the concrete categories in
81       the algebraized ones. In particular we formalized:
82       </p>
83       <ul>
84        <li>the large category of Overlap Algebras, that extend locales with an
85            axiomatized (= algebraized) overlap binary predicate. The
86            concrete overlap predicate states positively 
87            (i.e. without using negation) the existence (in the intuitionistic
88            sense) of a point in the intersection of two sets.
89            The natural morphism over Overlap Algebras are functions for the
90            existential and universal pre and post images of a relation.
91            </li>
92        <li>the large category of O-Basic Pairs, that algebraize Basic
93            Pairs by means of Overlap Algebras</li>
94        <li>the large category of O-Basic Topologies, that algebraize Basic
95            Topologies by means of Overlap Algebras</li>
96        <li>the categorical embedding of Basic Pairs into O-Basic Pairs and
97            of Basic Topologies into O-Basic Topologies</li>
98        <li>the existence of a categorical embedding of the category
99            of O-Basic Pairs into the category of O-Basic Topologies</li>
100       </ul>
101       <p>
102       More information will be available in a forthcoming paper by
103       Claudio Sacerdoti Coen and Enrico Tassi to be
104       published in the Mathematical Structures in Computer Science journal.
105       </p>
106
107       <h2>Freescale<a name="freescale"></a></h2>
108       <p>
109       The <a href="freescale/">scripts</a> present:
110       </p>
111
112       <ul>
113        <li>an executable formalization of the operational semantics of
114            any <a href="http://www.freescale.com">Freescale</a>
115            micro-controller of the <a href="http://www.freescale.com/webapp/sps/site/homepage.jsp?nodeId=0162468449&tid=FSH">HC05/HC08/RS08/HCS08 families</a>
116            </li>
117        <li>a compiler from assembly language (pseudocodes + operands) to
118        machine code</li>
119        <li>several automatic checks for unhandled opcodes, memory accesses,
120        correctness of ALU logic, etc.</li>
121        <li>three examples of assembly programs (string reverse, counting sort
122        and perfect numbers sieve) with sets of data to run them</li>
123       </ul>
124       
125       <p>The execution in the executable formalization has been compared
126          to real world execution using the <a href="http://www.freescale.com/webapp/sps/site/overview.jsp?code=784_LPBBNEWTOOL&fsrch=1">USB SPYDER08</a>
127         in-circuit debugger.
128       </p>
129
130       <p>
131        The code (in <a href="http://caml.inria.fr">OCaml</a>)
132        of an executable <a href="freescale/freescale_ocaml">emulator</a>,
133        automatically generated from the scripts above. On the tests above,
134        it runs at about 29% of the speed of the
135        <a href="http://www.freescale.com/codewarrior">CodeWarrior</a>
136        emulation engine.
137       </p>
138
139       <p>The formalization has been the Undergraduate Thesis of
140          Mr. Cosimo Oliboni. The manuscript (italian only) can be found
141          <a href="http://matita.cs.unibo.it/documentation.shtml#freescale">
142          here</a>.
143       </p>
144
145       <h2>The Formal System &lambda;&delta; (lambda-delta)<a name="lambda-delta"></a></h2>
146       
147       <p>The formal system &lambda;&delta; is a typed &lambda;-calculus that
148          pursues the unification of terms, types, environments and contexts
149          as the main goal.
150          &lambda;&delta; takes some features from the Automath-related
151          &lambda;-calculi and some from the pure type systems, but differs
152          from both in that it does not include the &Pi; construction while it
153          provides for an abbreviation mechanism at the level of terms.
154       </p>
155
156       <p> The development presents the proofs of some important properties that
157           &lambda;&delta; enjoys. In particular: 
158           <ul> <li> the confluence of reduction </li>
159                <li> the correctness of types </li>
160                <li> the uniqueness of types up to conversion </li>
161                <li> the subject reduction of the type assignment </li>
162                <li> the strong normalization of the typed terms </li>
163                <li> the decidability of type inference problem </li>
164           </ul>
165       </p>
166       
167       <p>
168        See the <a href="http://helm.cs.unibo.it/lambda-delta/">&lambda;&delta; home page</a>
169        for more information.
170       </p>
171
172       <h1>Small Developments</h1>
173
174       <h2>Pointed regular expressions<a name="freescale"></a></h2>
175       <p>
176       The <a href="re/">script</a> present:
177       </p>
178
179       <ul>
180        <li>a formalization of the syntax and semantics of pointed regular
181            expressions, that are regular expressions where points are put
182            in front of atoms to describe where the next character recognized
183            by the expression should be. Multiple points represent the union
184            of multiple languages. A pointed regular expression corresponds
185            to a state of a regular automaton for the regular expression
186            obtained erasing all points.</li>
187        <li>a formalization of the construction of the automaton for a regular
188            expression by means of iterative computation of pointed regular
189            expressions.</li>
190        <li>a proof of correctness of the construction (to be completed)</li>
191       </ul>
192
193       <p>The development requires the SVN version of Matita to be executed.</p>
194
195       <!--#include virtual="bottombar.shtml" -->
196     </div>
197   </body>
198 </html>