1 <!--#include virtual="xhtml-header.shtml" -->
3 <html xmlns="http://www.w3.org/1999/xhtml">
5 <title>Matita - Library</title>
6 <!--#include virtual="xhtml-meta.shtml" -->
9 <!--#include virtual="menubar.shtml" -->
11 <h1>Matita Library</h1>
13 <h2>Scripts<a name="scripts"></a></h2>
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>.
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>.
24 <h1>Large Developments</h1>
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.
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.
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>
47 <h2>The Basic Picture<a name="sambin"></a></h2>
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.
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
62 In particular the <a href="library/formal_topology">scripts</a> present:
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>
74 All the results are presented constructively and in the predicative
75 fragment of Matita, without any reference to choice axioms.
77 In order to reason conformtably on the previous concrete categories and
78 functors, we also present algebraic versions of all the introduced
79 notions, as well as categorical embedding of the concrete categories in
80 the algebraized ones. In particular we formalized:
83 <li>the large category of Overlap Algebras, that extend locales with an
84 axiomatized (= algebraized) overlap binary predicate. The
85 concrete overlap predicate states positively
86 (i.e. without using negation) the existence (in the intuitionistic
87 sense) of a point in the intersection of two sets.
88 The natural morphism over Overlap Algebras are functions for the
89 existential and universal pre and post images of a relation.
91 <li>the large category of O-Basic Pairs, that algebraize Basic
92 Pairs by means of Overlap Algebras</li>
93 <li>the large category of O-Basic Topologies, that algebraize Basic
94 Topologies by means of Overlap Algebras</li>
95 <li>the categorical embedding of Basic Pairs into O-Basic Pairs and
96 of Basic Topologies into O-Basic Topologies</li>
97 <li>the existence of a categorical embedding of the category
98 of O-Basic Pairs into the category of O-Basic Topologies</li>
101 More information will be available in a forthcoming paper by
102 Claudio Sacerdoti Coen and Enrico Tassi to be
103 published in the Mathematical Structures in Computer Science journal.
106 <h2>Freescale<a name="freescale"></a></h2>
108 The <a href="freescale/">scripts</a> present:
112 <li>an executable formalization of the operational semantics of
113 any <a href="http://www.freescale.com">Freescale</a>
114 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>a compiler from assembly language (pseudocodes + operands) to
118 <li>several automatic checks for unhandled opcodes, memory accesses,
119 correctness of ALU logic, etc.</li>
120 <li>three examples of assembly programs (string reverse, counting sort
121 and perfect numbers sieve) with sets of data to run them</li>
124 <p>The execution in the executable formalization has been compared
125 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>
130 The code (in <a href="http://caml.inria.fr">OCaml</a>)
131 of an executable <a href="freescale/freescale_ocaml">emulator</a>,
132 automatically generated from the scripts above. On the tests above,
133 it runs at about 29% of the speed of the
134 <a href="http://www.freescale.com/codewarrior">CodeWarrior</a>
138 <p>The formalization has been the Undergraduate Thesis of
139 Mr. Cosimo Oliboni. The manuscript (italian only) can be found
140 <a href="http://matita.cs.unibo.it/documentation.shtml#freescale">
144 <h2>The Formal System λδ (lambda-delta)<a name="lambda-delta"></a></h2>
146 <p>The formal system λδ is a typed λ-calculus that
147 pursues the unification of terms, types, environments and contexts
149 λδ takes some features from the Automath-related
150 λ-calculi and some from the pure type systems, but differs
151 from both in that it does not include the Π construction while it
152 provides for an abbreviation mechanism at the level of terms.
155 <p> The development presents the proofs of some important properties that
156 λδ enjoys. In particular:
157 <ul> <li> the confluence of reduction </li>
158 <li> the correctness of types </li>
159 <li> the uniqueness of types up to conversion </li>
160 <li> the subject reduction of the type assignment </li>
161 <li> the strong normalization of the typed terms </li>
162 <li> the decidability of type inference problem </li>
167 See the <a href="http://helm.cs.unibo.it/lambda-delta/">λδ home page</a>
168 for more information.
171 <h1>Small Developments</h1>
173 <h2>Pointed regular expressions<a name="freescale"></a></h2>
175 The <a href="re/">script</a> present:
179 <li>a formalization of the syntax and semantics of pointed regular
180 expressions, that are regular expressions where points are put
181 in front of atoms to describe where the next character recognized
182 by the expression should be. Multiple points represent the union
183 of multiple languages. A pointed regular expression corresponds
184 to a state of a regular automaton for the regular expression
185 obtained erasing all points.</li>
186 <li>a formalization of the construction of the automaton for a regular
187 expression by means of iterative computation of pointed regular
189 <li>a proof of correctness of the construction (to be completed)</li>
192 <p>The development requires the SVN version of Matita to be executed.</p>
194 <!--#include virtual="bottombar.shtml" -->