Cookbook/main.html~
changeset 415 f1be8028a4a9
child 432 87c1ad539fc9
equal deleted inserted replaced
414:05e5d68c9627 415:f1be8028a4a9
       
     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>Isabelle Programming Tutorial</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. 
       
    23 At its centre we describe the 
       
    24 implementation of a simple prototypical Isabelle package (we describe
       
    25 a simplified version of the inductive package). We hope by 
       
    26 documenting every aspect of this package that in the future you will 
       
    27 be able to modify, extend and adapt this package for your own purposes, 
       
    28 see how developers code in Isabelle and understand better Isabelle's 
       
    29 idiosyncrasies. As a result you will be able to quickly produce code 
       
    30 for your own needs and will be able to participate in keeping Isabelle 
       
    31 alive in the long run. 
       
    32 
       
    33 <p>
       
    34 Specific topics of the tutorial we have not yet covered: 
       
    35 
       
    36 <P>
       
    37 <ul>
       
    38 <li> First Steps
       
    39 <ul> 
       
    40 <li>theories, contexts and local theories
       
    41 <li>morphisms
       
    42 <li>name spaces
       
    43 </ul>
       
    44 <li>Parsing
       
    45 <ul>
       
    46 <li>context-, argument- and attribute parsers
       
    47 <li>parsing and printing translations
       
    48 <li>methods
       
    49 </ul>
       
    50 <li>Tactical Reasoning
       
    51 <ul>
       
    52 <li>declarations
       
    53 <li>structured proofs
       
    54 </ul>
       
    55 <li>Advanced Stuff
       
    56 <ul> 
       
    57 <li>user-space type-systems
       
    58 <li>typing algorithms
       
    59 <li>external applications
       
    60 </ul>
       
    61 </ul>
       
    62 <P>
       
    63 
       
    64 Please help us to expand on this list. 
       
    65 
       
    66 <H3>We need You</H3>
       
    67 
       
    68 We need help for accomplishing this tutorial. If you are familiar with the 
       
    69 ML-level of Isabelle, please get in contact with us (see addresses below). If you 
       
    70 are not familiar, but like to know more about the bits and pieces that make
       
    71 up the Isabelle code, then let us know what you are interested in or what
       
    72 project you like to implement. Above all we like to help future users and 
       
    73 developers of Isabelle; we do not want to end up with some "artificial documentation" 
       
    74 that is of nobody's help. Also proofreading and feedback would be most
       
    75 appreciated.
       
    76 
       
    77 <H3>People to contact</H3>
       
    78 
       
    79 The project is managed by
       
    80 
       
    81 <ul>
       
    82 <li> <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/" target="_top">Christian Urban</A> (christian.urban at kcl ac uk)
       
    83 <li> <A HREF="http://www.cl.cam.ac.uk/~lp15/" target="_top">Larry Paulson</A> (lp15 at cam ac uk)
       
    84 <li> <A HREF="http://nicta.com.au/people/norrishm" target="_top">Michael Norrish</A>
       
    85      (Michael.Norrish at nicta com au)
       
    86 </ul>
       
    87 
       
    88 There is also the following mailing list that is subscribed by all developers
       
    89 and open for help, suggestions etc. about this project.
       
    90 <p>
       
    91 <A HREF="https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev">
       
    92 isabelle-dev@mailbroy.informatik.tu-muenchen.de</A>
       
    93 <BR>
       
    94 <p>
       
    95 
       
    96 <H3>Repository</H3>
       
    97 
       
    98 A preliminary 
       
    99 <A HREF="http://www4.in.tum.de/~urbanc/cgi-bin/repos.cgi/isabelle-cookbook" target="_top">repository</A>
       
   100 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>. 
       
   101 
       
   102 <H3>Stable Version</H3>
       
   103 
       
   104 There is no real stable version of the Programming Tutorial yet. If you need a version 
       
   105 that is guaranteed to work with Isabelle 2011-1, then please get in touch with me 
       
   106 (christian.urban at kcl ac uk).
       
   107 
       
   108 
       
   109 <H3><A NAME="readers"></A>What early readers said:</H3>
       
   110 
       
   111 <p>
       
   112 <i>
       
   113 My path towards HOL was from HOL Light, to HOL4, to Isabelle/HOL and
       
   114 the Cookbook was essential for the last step (Piotr Trojanek, University of Bristol, 2014)
       
   115 </i>
       
   116 
       
   117 <p>
       
   118 <i>
       
   119 ...and the Isabelle/ML Cookbook are valuable resources (Lars Hupel, 2014)
       
   120 </i>
       
   121 
       
   122 <p>
       
   123 <i>
       
   124 GREAT!!! That's exactly what I was looking for! (Thomas Genet, ISTIC/IRISA, 2012)
       
   125 </i>
       
   126 
       
   127 <p>
       
   128 <i>
       
   129 The tutorial really is quite nice. (Jeremy Avigad, CMU, 2011)
       
   130 </i>
       
   131 
       
   132 <p>
       
   133 <i>
       
   134 By the way, thanks for the Isabelle Cookbook, it's really helpful to 
       
   135 start with Isabelle/ML. (Mathieu Giorgino, 2011)
       
   136 </i>
       
   137 
       
   138 <p>
       
   139 <i>
       
   140 Great!  This seems to have a lot of the missing pieces I couldn't find  
       
   141 in the tutorial and reference manual. (Kevin Van Horn, 2011)
       
   142 </i>
       
   143 
       
   144 <p>
       
   145 <i>
       
   146 I've been fighting for hours trying to derive some theorems automatically, 
       
   147 until Florian told me I should try using conversions and then I read the Cookbook 
       
   148 section and it solved my problem. The example with abs_conv in particular was 
       
   149 particularly illuminating. Thanks! (Jasmin Blanchette, TU Munich, 2010)
       
   150 </i>
       
   151 
       
   152 <p>
       
   153 <i> The cook book seems really helpful, if not even exactly what I need. 
       
   154 (Nils J&auml;hnig, FU Berlin, 2010)</i>
       
   155 
       
   156 <p>
       
   157 <i>The Programming Tutorial has helped me tremendously to get familiar with
       
   158 Isabelle, which I used in my bachelor thesis about the type-inference algorithm 
       
   159 in Isabelle. (Dmitriy Traytel, TU Munich, 2010)</i>
       
   160 
       
   161 <p>
       
   162 <i>I've already pointed a couple of PhD students at the programming tutorial, and
       
   163 they've already found it to be a great place to start with Isabelle
       
   164 programming. (Lucas Dixon, University of Edinburgh, 2009)</i> 
       
   165 
       
   166 <p>
       
   167 <i>The Isabelle Programming Tutorial is great! I finally learned how to add 
       
   168 new keywords and how to parse outer syntax! (Amine Chaieb, University of Cambridge)</i>
       
   169 
       
   170 <p>
       
   171 <i>I felt the programming tutorial was very clear and comprehensible. I'm
       
   172 toying with actually getting back to Isabelle again. Thanks to 
       
   173 everyone involved in the documentation project. I really think it
       
   174 is worthwhile. (Tom Ridge, University of Cambridge, 2009)</i>
       
   175 
       
   176 <p>
       
   177 <i>I learned from the tutorial how to deal with fresh variables and also which function to use
       
   178 for applying substitutions that are generated by unification.
       
   179 (Lukas Bulwahn, TU Munich, 2009)</i>
       
   180 
       
   181 <p>
       
   182 <i> What a great resource! I wish I'd had this when I wrote my first
       
   183 parser in December 2008. 
       
   184 (Timothy Bourke, UNSW Sydney, 2009)</i>
       
   185 
       
   186 </td>
       
   187 </tr>
       
   188 </tbody>
       
   189 </table>
       
   190 </div>     
       
   191 
       
   192 
       
   193 <HR>
       
   194 <div id="clustrmaps-widget"></div><script type="text/javascript">var _clustrmaps = {'url' : 'http://www.inf.kcl.ac.uk/staff/urbanc/Cookbook/index.html', 'user' : 948346, 'server' : '4', 'id' : 'clustrmaps-widget', 'version' : 1, 'date' : '2011-10-30', 'lang' : 'en', 'corners' : 'square' };(function (){ var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'http://www4.clustrmaps.com/counter/map.js'; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);})();</script><noscript><a href="http://www4.clustrmaps.com/user/123e787a"><img src="http://www4.clustrmaps.com/stats/maps-no_clusters/www.inf.kcl.ac.uk-staff-urbanc-Cookbook-index.html-thumb.jpg" alt="Locations of visitors to this page" /></a></noscript>
       
   195 </a>
       
   196 <p>
       
   197 <P>
       
   198 <a href="http://validator.w3.org/check/referer" target="_top">[Validate this page.]</a>
       
   199 <!-- hhmts start --> Last modified: Mon Oct 20 00:42:10 BST 2014 <!-- hhmts end -->
       
   200 
       
   201 </body>
       
   202 </html>