Admin/website/faq.html
changeset 17661 994d010c0abd
parent 17563 abb280dd3431
equal deleted inserted replaced
17660:94bbe14c088e 17661:994d010c0abd
    35           "http://isabelle.in.tum.de/dist/library/">theory library</a>.</dd>
    35           "http://isabelle.in.tum.de/dist/library/">theory library</a>.</dd>
    36     
    36     
    37       <dt>Is it available for download?</dt>
    37       <dt>Is it available for download?</dt>
    38     
    38     
    39       <dd>Yes, it is available from several mirror sites, e.&nbsp;g. from
    39       <dd>Yes, it is available from several mirror sites, e.&nbsp;g. from
    40           <a href="http://isabelle.in.tum.de">Munich</a>. It should run
    40           <a href="http://isabelle.in.tum.de">Munich</a>. It runs on common
    41           on most recent Unix systems (Solaris, Linux, MacOS&nbsp;X, etc.).</dd>
    41           Unix systems (Linux, MacOS&nbsp;X, Solaris, etc.).</dd>
    42     
    42     
    43 </dl>
    43 </dl>
    44       <h2>Syntax</h2>
    44       <h2>Syntax</h2>
    45 
    45 
    46     <dl class="faq">
    46     <dl class="faq">
    47     
    47     
    48       <dt>There are lots of arrows in Isabelle. What's the difference between
    48       <dt>There are lots of arrows in Isabelle/HOL. What's the difference between
    49           <tt>-&gt;</tt>, <tt>=&gt;</tt>, <tt>--&gt;</tt>, and <tt>==&gt;</tt>
    49           <tt>-&gt;</tt>, <tt>=&gt;</tt>, <tt>--&gt;</tt>, and <tt>==&gt;</tt>
    50           ?</dt>
    50           ?</dt>
    51     
    51     
    52       <dd>Isabelle uses the <tt>=&gt;</tt> arrow for the function type
    52       <dd>Isabelle uses the <tt>=&gt;</tt> arrow for the function type
    53           (contrary to most functional languages which use <tt>-&gt;</tt>). So
    53           (contrary to most functional languages which use <tt>-&gt;</tt>). So
    79       <dd>You get this message if you use a case construct on a datatype and
    79       <dd>You get this message if you use a case construct on a datatype and
    80           have a typo in the names of the constructor patterns or if the order of
    80           have a typo in the names of the constructor patterns or if the order of
    81           the constructors in the case pattern is different from the order in which
    81           the constructors in the case pattern is different from the order in which
    82           they where defined (in the datatype definition).</dd>
    82           they where defined (in the datatype definition).</dd>
    83     
    83     
    84       <dt>Why doesn't Isabelle understand my equation?</dt>
    84       <dt>Why doesn't Isabelle/HOL understand my equation?</dt>
    85     
    85     
    86       <dd>Isabelle's equality <tt>=</tt> binds relatively strongly, so an
    86       <dd>Isabelle's equality <tt>=</tt> binds relatively strongly, so an
    87           equation like <tt>a = b &amp; c</tt> might not be what you intend.
    87           equation like <tt>a = b &amp; c</tt> might not be what you intend.
    88           Isabelle parses it as <tt>(a = b) &amp; c</tt>. If you want it the other
    88           Isabelle parses it as <tt>(a = b) &amp; c</tt>. If you want it the other
    89           way around, you must set explicit parentheses as in <tt>a = (b &amp;
    89           way around, you must set explicit parentheses as in <tt>a = (b &amp;
    92     
    92     
    93       <dt>What does it mean "not a proper equation"?</dt>
    93       <dt>What does it mean "not a proper equation"?</dt>
    94     
    94     
    95       <dd>Most commonly this is an instance of the question above. The
    95       <dd>Most commonly this is an instance of the question above. The
    96           <tt>primrec</tt> command (and others) expect equations as input, and
    96           <tt>primrec</tt> command (and others) expect equations as input, and
    97           since equality binds strongly in Isabelle, something like <tt>f x = b
    97           since equality binds strongly in Isabelle/HOL, something like <tt>f x = b
    98           &amp; c</tt> is not what you might expect it to be: Isabelle parses it as
    98           &amp; c</tt> is not what you might expect it to be: Isabelle parses it as
    99           <tt>(f x = b) &amp; c</tt> (which is indeed not a proper equation). To
    99           <tt>(f x = b) &amp; c</tt> (which is indeed not a proper equation). To
   100           turn it into an equation you must set explicit parentheses: <tt>f x = (b
   100           turn it into an equation you must set explicit parentheses: <tt>f x = (b
   101           &amp; c)</tt>.</dd>
   101           &amp; c)</tt>.</dd>
   102     
   102     
   139           the proof that lost important information. It is of course also possible
   139           the proof that lost important information. It is of course also possible
   140           that the goal was never provable in the first place.</dd>
   140           that the goal was never provable in the first place.</dd>
   141     
   141     
   142       <dt>Why does <tt>lemma "1+1=2"</tt> fail?</dt>
   142       <dt>Why does <tt>lemma "1+1=2"</tt> fail?</dt>
   143     
   143     
   144       <dd>Because it is not necessarily true. Isabelle does not assume that 1
   144       <dd>Because it is not necessarily true. Isabelle/HOL does not assume that 1
   145           and 2 are natural numbers. Try <tt>"(1::nat)+1=2"</tt> instead.</dd>
   145           and 2 are natural numbers. Try <tt>"(1::nat)+1=2"</tt> instead.</dd>
   146     
   146     
   147       <dt>Can Isabelle find counterexamples?</dt>
   147       <dt>Can Isabelle/HOL find counterexamples?</dt>
   148     
   148     
   149       <dd>
   149       <dd>
   150             <p>For arithmetic goals, <code>arith</code> finds counterexamples. For
   150             <p>For arithmetic goals, <code>arith</code> finds counterexamples. For
   151             executable goals, <code>quickcheck</code> tries to find a
   151             executable goals, <code>quickcheck</code> tries to find a
   152             counterexample. For goals of a more logical nature (including
   152             counterexample. For goals of a more logical nature (including
   166 </dl>
   166 </dl>
   167       <h2>Interface</h2>
   167       <h2>Interface</h2>
   168 
   168 
   169     <dl class="faq">
   169     <dl class="faq">
   170     
   170     
   171       <dt>ProofGeneral appears to hang when Isabelle is started.</dt>
       
   172       <dd><p>This may be because of UTF-8 issues e.g. in Red Hat 8.0/9.0, Suse
       
   173       9.0/9.1</p>
       
   174       <p>RedHat 8 and later has glibc 2.2 and UTF8 encoded output may be turned on
       
   175       in default locale. Unfortunately Proof General relies on 8-bit characters
       
   176       which are UTF8 prefixes in the output of proof assistants (inc Coq,
       
   177       Isabelle). These prefix characters are not flushed to stdout individually. As
       
   178       a workaround we must find a way to disable interpretation of UTF8 in the C
       
   179       libraries that Coq and friends use.</p>
       
   180     
       
   181       <p>Doing this inside PG/Emacs seems tricky; locale settings are set/inherited
       
   182       in strange ways. One solution is to run the Emacs process itself with an
       
   183       altered locale setting, for example, starting XEmacs by typing:</p>
       
   184     
       
   185       <ul class="shellcmd">
       
   186         <li>LC_CTYPE=en_GB Isabelle &amp;</li>
       
   187       </ul>
       
   188     
       
   189       <p>The supplied proofgeneral script makes this setting if it sees the string
       
   190       UTF in the current value of <tt class="shellcmd">LC_CTYPE</tt>.
       
   191       Depending on your distribution, this
       
   192       variable might also be called <tt class="shellcmd">LANG</tt>.</p>
       
   193     
       
   194       <p>Alternatively you can set <tt class="shellcmd">LC_CTYPE</tt> or
       
   195       <tt class="shellcmd">LANG</tt> inside a file <tt class="shellcmd">~/.i18n</tt>, which
       
   196       will be read by the shell. This will affect all applications, though.</p>
       
   197       
       
   198       <p>Suggestions for a better workaround inside Emacs would be welcomed;</p>
       
   199     
       
   200       <p>A related issue is warnings from x-symbol: "Emacs language environment
       
   201       and system locale specify different encoding, I'll assume `iso-8859-1'". This
       
   202       warning appears to be mainly harmless. Notice that the variable
       
   203       `buffer-file-coding-system' may determine the format that files are saved
       
   204       in.</p></dd>
       
   205     
       
   206       <dt>X-Symbol doesn't seem to work. What can I do?</dt>
   171       <dt>X-Symbol doesn't seem to work. What can I do?</dt>
   207     
   172     
   208       <dd>The most common reason why X-Symbol doesn't work is: it's not
   173       <dd>The most common reason why X-Symbol doesn't work is: it's not
   209           switched on yet. Assuming you are using ProofGeneral and have installed
   174           switched on yet. Assuming you are using ProofGeneral and have installed
   210           the X-Symbol package, you still need to turn X-Symbol on in ProofGeneral:
   175           the X-Symbol package, you still need to turn X-Symbol on in ProofGeneral:
   211           select the menu items <tt>Proof-General -&gt; Options -&gt; X-Symbol</tt>
   176           select the menu items <tt>Proof-General -&gt; Options -&gt; X-Symbol</tt>
   212           and (if you want to save the setting for future sessions) select
   177           and (if you want to save the setting for future sessions) select
   213           <tt>Options -&gt; Save Options</tt> in XEmacs.</dd>
   178           <tt>Options -&gt; Save Options</tt> in XEmacs.</dd>
   214     
   179 
   215       <dt>How do I input those X-Symbols anyway?</dt>
   180       <dt>How do I input those X-Symbols anyway?</dt>
   216     
   181     
   217       <dd>There are lots of ways to input x-symbols. The one that always works
   182       <dd>There are lots of ways to input x-symbols. The one that always works
   218           is writing it out in plain text (e.g. for the 'and' symbol type
   183           is writing it out in plain text (e.g. for the 'and' symbol type
   219           <tt>\&lt;and&gt;</tt>). For common symbols you can try to "paint them in
   184           <tt>\&lt;and&gt;</tt>). For common symbols you can try to "paint them in
   256           with a <tt class="shellcmd">ROOT.ML</tt> file (as for generating a document) and use the
   221           with a <tt class="shellcmd">ROOT.ML</tt> file (as for generating a document) and use the
   257           command <tt class="shellcmd">isatool usedir -b HOL MyImage</tt> in that directory to
   222           command <tt class="shellcmd">isatool usedir -b HOL MyImage</tt> in that directory to
   258           create an image <tt class="shellcmd">MyImage</tt> using the parent logic <tt class="shellcmd">HOL</tt>. You
   223           create an image <tt class="shellcmd">MyImage</tt> using the parent logic <tt class="shellcmd">HOL</tt>. You
   259           should then be able to invoke Isabelle with <tt class="shellcmd">Isabelle -l MyImage</tt>
   224           should then be able to invoke Isabelle with <tt class="shellcmd">Isabelle -l MyImage</tt>
   260           and have everything that is loaded in ROOT.ML instantly available.</dd>
   225           and have everything that is loaded in ROOT.ML instantly available.</dd>
       
   226 
       
   227       <dt>Can I run Isabelle on Windows?</dt>
       
   228 
       
   229       <dd>Not really.  The Cygwin environment provides a Unixoid
       
   230       look-and-feel that is sufficient for very basic Isabelle
       
   231       functionality.  See also <a
       
   232       href="installation_notes_cygwin.html">Installation notes for
       
   233       Cygwin/Windows.</a>
       
   234 
       
   235       To try out Isabelle it might be much easier to use a Linux boot
       
   236       CD, such as <a href="http://www.knoppix.org/">Knoppix</a>.</dd>
   261     
   237     
   262     </dl>
   238     </dl>
   263 
   239 
   264     </div>
   240     </div>
   265     <div class="hr"><hr/></div>
   241     <div class="hr"><hr/></div>