| 25 |      1 | <?xml version="1.0" encoding="utf-8"?>
 | 
|  |      2 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | 
|  |      3 | <html>
 | 
|  |      4 | <head>
 | 
|  |      5 |   <title>Nominal Methods Group</title>
 | 
|  |      6 |   <link rel="stylesheet" href="nominal.css">
 | 
|  |      7 | </head>
 | 
|  |      8 | 
 | 
|  |      9 | <body>
 | 
|  |     10 | <div align="center">
 | 
|  |     11 | <table width="95%">
 | 
|  |     12 | <tbody>
 | 
|  |     13 | <tr>
 | 
|  |     14 | <td align="left">
 | 
|  |     15 | <H1>Aim</H1>
 | 
|  |     16 | 
 | 
|  |     17 | There is already quite good documentation available for users to learn
 | 
|  |     18 | how to interact with Isabelle and to use it for proving
 | 
|  |     19 | theorems (see <A HREF="http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html" target="_top">here</A>).
 | 
|  |     20 | However, the entry barrier for users to program on the ML-level of Isabelle
 | 
|  |     21 | is still unbearably high. In this project we want to change this state
 | 
|  |     22 | of affairs by providing a <i>tutorial</i> about ML-coding in Isabelle. The
 | 
|  |     23 | German Research Council has provided us with €26,000 to be spend 
 | 
|  |     24 | over the next three years on this project. We invite the Isabelle community to 
 | 
|  |     25 | participate in this project and benefit from the money (and of course 
 | 
|  |     26 | also to reap the benefits from the better documentation).
 | 
|  |     27 | <p> 
 | 
|  |     28 | 
 | 
|  |     29 | The main aim is to generate a tutorial for people who want to have 
 | 
|  |     30 | a look under the <i>hood</i> of Isabelle. At its centre it describes the 
 | 
|  |     31 | implementation of a simple prototypical Isabelle package (we describe
 | 
|  |     32 | a simplified version of the inductive package). We hope by 
 | 
|  |     33 | documenting every aspect of this package that in the future you will 
 | 
|  |     34 | be able to modify, extend and adapt this package for your own purposes, 
 | 
|  |     35 | see how developers code in Isabelle and understand better Isabelle's 
 | 
|  |     36 | idiosyncrasies. As a result you will be able to quickly produce code 
 | 
|  |     37 | for your own needs and will be able to participate in keeping Isabelle 
 | 
|  |     38 | alive in the long run. 
 | 
|  |     39 | 
 | 
|  |     40 | <p>
 | 
|  |     41 | Specific topics of the tutorial we have not yet covered: 
 | 
|  |     42 | 
 | 
|  |     43 | <P>
 | 
|  |     44 | <ul>
 | 
|  |     45 | <li> First Steps
 | 
|  |     46 | <ul> 
 | 
|  |     47 | <li>theories, contexts and local theories
 | 
|  |     48 | <li>morphisms
 | 
|  |     49 | <li>name spaces
 | 
|  |     50 | </ul>
 | 
|  |     51 | <li>Parsing
 | 
|  |     52 | <ul>
 | 
|  |     53 | <li>context-, argument- and attribute parsers
 | 
|  |     54 | <li>parsing and printing translations
 | 
|  |     55 | <li>methods
 | 
|  |     56 | </ul>
 | 
|  |     57 | <li>Tactical Reasoning
 | 
|  |     58 | <ul>
 | 
|  |     59 | <li>declarations
 | 
|  |     60 | <li>structured proofs
 | 
|  |     61 | </ul>
 | 
|  |     62 | <li>Advanced Stuff
 | 
|  |     63 | <ul> 
 | 
|  |     64 | <li>user-space type-systems
 | 
|  |     65 | <li>typing algorithms
 | 
|  |     66 | <li>external applications
 | 
|  |     67 | </ul>
 | 
|  |     68 | </ul>
 | 
|  |     69 | <P>
 | 
|  |     70 | 
 | 
|  |     71 | Please help us to expand on this list. 
 | 
|  |     72 | 
 | 
|  |     73 | <H3>We need You</H3>
 | 
|  |     74 | 
 | 
|  |     75 | We need help for accomplishing this tutorial. If you are familiar with the ML-level of
 | 
|  |     76 | Isabelle, then we can offer money in order that you write small parts of
 | 
|  |     77 | this documentation. Please get in contact with us (see addresses below). If you 
 | 
|  |     78 | are not familiar, but like to know more about the bits and pieces that make
 | 
|  |     79 | up the Isabelle code, then let us know what you are interested in or what
 | 
|  |     80 | project you like to implement. Above all we like to help future users and 
 | 
|  |     81 | developers of Isabelle; we do not want to end up with some "artificial documentation" 
 | 
|  |     82 | that is of nobody's help. Also proofreading and feedback would be most
 | 
|  |     83 | appreciated.
 | 
|  |     84 | 
 | 
|  |     85 | <H3>People to contact</H3>
 | 
|  |     86 | 
 | 
|  |     87 | The project is managed by
 | 
|  |     88 | 
 | 
|  |     89 | <ul>
 | 
|  |     90 | <li> <A HREF="http://www4.in.tum.de/~urbanc/" target="_top">Christian Urban</A> (urbanc at in tum de)
 | 
|  |     91 | <li> <A HREF="http://www.cl.cam.ac.uk/~lp15/" target="_top">Larry Paulson</A> (lp15 at cam ac uk)
 | 
|  |     92 | <li> <A HREF="http://nicta.com.au/people/norrishm" target="_top">Michael Norrish</A>
 | 
|  |     93 |      (Michael.Norrish at nicta com au)
 | 
|  |     94 | </ul>
 | 
|  |     95 | 
 | 
|  |     96 | There is also the following mailing list that is subscribed by all developers
 | 
|  |     97 | and open for help, suggestions etc. about this project.
 | 
|  |     98 | <p>
 | 
|  |     99 | <A HREF="https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev">
 | 
|  |    100 | isabelle-dev@mailbroy.informatik.tu-muenchen.de</A>
 | 
|  |    101 | <BR>
 | 
|  |    102 | <p>
 | 
|  |    103 | 
 | 
|  |    104 | <H3>Repository</H3>
 | 
|  |    105 | 
 | 
|  |    106 | A preliminary 
 | 
|  |    107 | <A HREF="http://www4.in.tum.de/~urbanc/cgi-bin/repos.cgi/isabelle-cookbook" target="_top">repository</A>
 | 
|  |    108 | is available and you are very welcome to contribute to it. The current draft of the tutorial is <A HREF="http://www4.in.tum.de/~urbanc/cgi-bin/repos.cgi/isabelle-cookbook/raw-file/tip/progtutorial.pdf" target="_top" onclick="pageTracker._trackPageview('tutorial');">here</A>. 
 | 
|  |    109 | 
 | 
|  |    110 | <H3>Stable Version</H3>
 | 
|  |    111 | 
 | 
|  |    112 | There is no real stable version of the Programming Tutorial yet. If you need a version 
 | 
|  |    113 | that is guaranteed to work with Isabelle 2009, then please get in touch with me 
 | 
|  |    114 | (urbanc at in tum de).
 | 
|  |    115 | 
 | 
|  |    116 | 
 | 
|  |    117 | <H3><A NAME="readers"></A>What early readers said:</H3>
 | 
|  |    118 | 
 | 
|  |    119 | <i>
 | 
|  |    120 | The tutorial really is quite nice. (Jeremy Avigad, CMU, 2011)
 | 
|  |    121 | </i>
 | 
|  |    122 | 
 | 
|  |    123 | <p>
 | 
|  |    124 | <i>
 | 
|  |    125 | By the way, thanks for the Isabelle Cookbook, it's really helpful to 
 | 
|  |    126 | start with Isabelle/ML. (Mathieu Giorgino, 2011)
 | 
|  |    127 | </i>
 | 
|  |    128 | 
 | 
|  |    129 | <p>
 | 
|  |    130 | <i>
 | 
|  |    131 | Great!  This seems to have a lot of the missing pieces I couldn't find  
 | 
|  |    132 | in the tutorial and reference manual. (Kevin Van Horn, 2011)
 | 
|  |    133 | </i>
 | 
|  |    134 | 
 | 
|  |    135 | <p>
 | 
|  |    136 | <i>
 | 
|  |    137 | I've been fighting for hours trying to derive some theorems automatically, 
 | 
|  |    138 | until Florian told me I should try using conversions and then I read the Cookbook 
 | 
|  |    139 | section and it solved my problem. The example with abs_conv in particular was 
 | 
|  |    140 | particularly illuminating. Thanks! (Jasmin Blanchette, TU Munich, 2010)
 | 
|  |    141 | </i>
 | 
|  |    142 | 
 | 
|  |    143 | <p>
 | 
|  |    144 | <i> The cook book seems really helpful, if not even exactly what I need. 
 | 
|  |    145 | (Nils Jähnig, FU Berlin, 2010)</i>
 | 
|  |    146 | 
 | 
|  |    147 | <p>
 | 
|  |    148 | <i>The Programming Tutorial has helped me tremendously to get familiar with
 | 
|  |    149 | Isabelle, which I used in my bachelor thesis about the type-inference algorithm 
 | 
|  |    150 | in Isabelle. (Dmitriy Traytel, TU Munich, 2010)</i>
 | 
|  |    151 | 
 | 
|  |    152 | <p>
 | 
|  |    153 | <i>I've already pointed a couple of PhD students at the programming tutorial, and
 | 
|  |    154 | they've already found it to be a great place to start with Isabelle
 | 
|  |    155 | programming. (Lucas Dixon, University of Edinburgh, 2009)</i> 
 | 
|  |    156 | 
 | 
|  |    157 | <p>
 | 
|  |    158 | <i>The Isabelle Programming Tutorial is great! I finally learned how to add 
 | 
|  |    159 | new keywords and how to parse outer syntax! (Amine Chaieb, University of Cambridge)</i>
 | 
|  |    160 | 
 | 
|  |    161 | <p>
 | 
|  |    162 | <i>I felt the programming tutorial was very clear and comprehensible. I'm
 | 
|  |    163 | toying with actually getting back to Isabelle again. Thanks to 
 | 
|  |    164 | everyone involved in the documentation project. I really think it
 | 
|  |    165 | is worthwhile. (Tom Ridge, University of Cambridge, 2009)</i>
 | 
|  |    166 | 
 | 
|  |    167 | <p>
 | 
|  |    168 | <i>I learned from the tutorial how to deal with fresh variables and also which function to use
 | 
|  |    169 | for applying substitutions that are generated by unification.
 | 
|  |    170 | (Lukas Bulwahn, TU Munich, 2009)</i>
 | 
|  |    171 | 
 | 
|  |    172 | <p>
 | 
|  |    173 | <i> What a great resource! I wish I'd had this when I wrote my first
 | 
|  |    174 | parser in December 2008. 
 | 
|  |    175 | (Timothy Bourke, UNSW Sydney, 2009)</i>
 | 
|  |    176 | 
 | 
|  |    177 | </td>
 | 
|  |    178 | </tr>
 | 
|  |    179 | </tbody>
 | 
|  |    180 | </table>
 | 
|  |    181 | </div>     
 | 
|  |    182 | 
 | 
|  |    183 | 
 | 
|  |    184 | <HR>
 | 
|  |    185 | <a href="http://www4.clustrmaps.com/counter/maps.php?url=http://www.inf.kcl.ac.uk/staff/urbanc/activities/idp/" id="clustrMapsLink"><img src="http://www4.clustrmaps.com/counter/index2.php?url=http://isabelle.in.tum.de/nominal/activities/idp/" style="border:0px;" alt="Locations of visitors to this page" title="Locations of visitors to this page" id="clustrMapsImg" onError="this.onError=null; this.src='http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://www2.clustrmaps.com'" />
 | 
|  |    186 | </a>
 | 
|  |    187 | <p>
 | 
|  |    188 | <P>
 | 
|  |    189 | <a href="http://validator.w3.org/check/referer" target="_top">[Validate this page.]</a>
 | 
|  |    190 | <!-- hhmts start -->
 | 
|  |    191 | Last modified: Mon Aug  1 09:09:07 BST 2011
 | 
|  |    192 | <!-- hhmts end -->
 | 
|  |    193 | 
 | 
|  |    194 | <!--script type="text/javascript">
 | 
|  |    195 | var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
 | 
|  |    196 | document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
 | 
|  |    197 | </script>
 | 
|  |    198 | <script type="text/javascript">
 | 
|  |    199 | try {
 | 
|  |    200 | var pageTracker = _gat._getTracker("UA-4143458-3");
 | 
|  |    201 | pageTracker._trackPageview();
 | 
|  |    202 | } catch(err) {}</script -->
 | 
|  |    203 | </body>
 | 
|  |    204 | </html> |