PageRenderTime 37ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/plugins/ProofGeneral-4.1/doc/PG-adapting/PG-adapting_15.html

https://github.com/emish/emacs
HTML | 220 lines | 179 code | 17 blank | 24 comment | 0 complexity | 1536370c49ff5fa336f8a62847a64fae MD5 | raw file
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on October 3, 2011 by texi2html 1.82
  4. texi2html was written by:
  5. Lionel Cons <Lionel.Cons@cern.ch> (original author)
  6. Karl Berry <karl@freefriends.org>
  7. Olaf Bachmann <obachman@mathematik.uni-kl.de>
  8. and many others.
  9. Maintained by: Many creative people.
  10. Send bugs and suggestions to <texi2html-bug@nongnu.org>
  11. -->
  12. <head>
  13. <title>Adapting Proof General: A. Plans and Ideas</title>
  14. <meta name="description" content="Adapting Proof General: A. Plans and Ideas">
  15. <meta name="keywords" content="Adapting Proof General: A. Plans and Ideas">
  16. <meta name="resource-type" content="document">
  17. <meta name="distribution" content="global">
  18. <meta name="Generator" content="texi2html 1.82">
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <style type="text/css">
  21. <!--
  22. a.summary-letter {text-decoration: none}
  23. blockquote.smallquotation {font-size: smaller}
  24. pre.display {font-family: serif}
  25. pre.format {font-family: serif}
  26. pre.menu-comment {font-family: serif}
  27. pre.menu-preformatted {font-family: serif}
  28. pre.smalldisplay {font-family: serif; font-size: smaller}
  29. pre.smallexample {font-size: smaller}
  30. pre.smallformat {font-family: serif; font-size: smaller}
  31. pre.smalllisp {font-size: smaller}
  32. span.roman {font-family:serif; font-weight:normal;}
  33. span.sansserif {font-family:sans-serif; font-weight:normal;}
  34. ul.toc {list-style: none}
  35. -->
  36. </style>
  37. </head>
  38. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  39. <table cellpadding="1" cellspacing="1" border="0">
  40. <tr><td valign="middle" align="left">[<a href="PG-adapting_14.html#Internals-of-Proof-General" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  41. <td valign="middle" align="left">[<a href="PG-adapting_16.html#Demonstration-Instantiations" title="Next chapter"> &gt;&gt; </a>]</td>
  42. <td valign="middle" align="left"> &nbsp; </td>
  43. <td valign="middle" align="left"> &nbsp; </td>
  44. <td valign="middle" align="left"> &nbsp; </td>
  45. <td valign="middle" align="left"> &nbsp; </td>
  46. <td valign="middle" align="left"> &nbsp; </td>
  47. <td valign="middle" align="left">[<a href="PG-adapting.html#Top" title="Cover (top) of document">Top</a>]</td>
  48. <td valign="middle" align="left">[<a href="PG-adapting_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  49. <td valign="middle" align="left">[<a href="PG-adapting_17.html#Function-Index" title="Index">Index</a>]</td>
  50. <td valign="middle" align="left">[<a href="PG-adapting_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  51. </tr></table>
  52. <hr size="2">
  53. <a name="Plans-and-Ideas"></a>
  54. <a name="Plans-and-Ideas-1"></a>
  55. <h1 class="appendix">A. Plans and Ideas</h1>
  56. <p>This appendix contains some tentative plans and ideas for improving
  57. Proof General.
  58. </p>
  59. <p>This appendix is no longer extended: instead we keep a list of Proof
  60. General projects on the web, and forthcoming plans and ideas in the
  61. &lsquo;<tt>TODO</tt>&rsquo; and &lsquo;<tt>todo</tt>&rsquo; files included in the ordinary and
  62. developers PG distributions, respectively. Once the items mentioned
  63. below are implemented, they will be removed from here.
  64. </p>
  65. <p>Please send us contributions to our wish lists, or better still, an
  66. offer to implement something from them!
  67. </p>
  68. <table class="menu" border="0" cellspacing="0">
  69. <tr><td align="left" valign="top"><a href="#Proof-by-pointing-and-similar-features">A.1 Proof by pointing and similar features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  70. </td></tr>
  71. <tr><td align="left" valign="top"><a href="#Granularity-of-atomic-command-sequences">A.2 Granularity of atomic command sequences</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  72. </td></tr>
  73. <tr><td align="left" valign="top"><a href="#Browser-mode-for-script-files-and-theories">A.3 Browser mode for script files and theories</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  74. </td></tr>
  75. </table>
  76. <hr size="6">
  77. <a name="Proof-by-pointing-and-similar-features"></a>
  78. <a name="Proof-by-pointing-and-similar-features-1"></a>
  79. <h2 class="section">A.1 Proof by pointing and similar features</h2>
  80. <a name="index-proof-by-pointing"></a>
  81. <p>This is a note by David Aspinall about proof by pointing and similar
  82. features.
  83. </p>
  84. <p>Proof General already supports proof by pointing, and experimental
  85. support is provided in LEGO. We would like to extend this support to
  86. other proof assistants. Unfortunately, proof by pointing requires
  87. rather heavy support from the proof assistant. There are two aspects to
  88. the support:
  89. </p><ul>
  90. <li> term structure mark-up
  91. </li><li> proof by pointing command generation
  92. </li></ul>
  93. <p>Term structure mark-up is useful in itself: it allows the user to
  94. explore the structure of a term using the mouse (the smallest
  95. subexpression that the mouse is over is highlighted), and easily copy
  96. subterms from the output to a proof script.
  97. </p>
  98. <p>Command generation for proof by pointing is usually specific to a
  99. particular logic in use, if we hope to generate a good proof command
  100. unambiguously for any particular click. However, Proof General could
  101. easily be generalised to offer the user a context-sensitive choice of
  102. next commands to apply, which may be more useful in practice, and a
  103. worthy addition to Proof General.
  104. </p>
  105. <p>Implementors of new proof assistants should be encouraged to consider
  106. supporting term-structure mark up from the start. Command generation
  107. should be something that the logic-implementor can specify in some way.
  108. </p>
  109. <p>Of the supported provers, we can certainly hope for proof-by-pointing
  110. support from Coq, since the CtCoq proof-by-pointing code has been moved
  111. into the Coq kernel lately. I hope the Coq community can encourage
  112. somebody to do this.
  113. </p>
  114. <hr size="6">
  115. <a name="Granularity-of-atomic-command-sequences"></a>
  116. <a name="Granularity-of-atomic-command-sequences-1"></a>
  117. <h2 class="section">A.2 Granularity of atomic command sequences</h2>
  118. <a name="index-ACS-_0028Atomic-Command-Sequence_0029"></a>
  119. <p>This is a proposal by Thomas Kleymann for generalising the way Proof
  120. General handles sequences of proof commands (see <i>Goal-save
  121. sequences</i> in the user manual), particularly to make retraction more flexible.
  122. </p>
  123. <p>The blue region of a script buffer contains the initial segment of
  124. the proof script which has been processed successfully. It consists of
  125. atomic sequences of commands (ACS). Retraction is supported to the
  126. beginning of every ACS. By default, every command is an ACS. But the
  127. granularity of atomicity should be able to be adjusted.
  128. </p>
  129. <p>This is essential when arbitrary retraction is not supported. Usually,
  130. after a theorem has been proved, one may only retract to the start of
  131. the goal. One needs to mark the proof of the theorem as an ACS. At
  132. present, support for goal-save sequences (see <i>Goal-save sequences</i> in
  133. the user manual), has been hard wired. No other ACS are currently
  134. supported. We propose the following to overcome this deficiency:
  135. </p>
  136. <dl compact="compact">
  137. <dt> <code>proof-atomic-sequents-list</code>
  138. <a name="index-proof_002datomic_002dsequents_002dlist"></a>
  139. </dt>
  140. <dd><p>is a list of instructions for setting up ACSs. Each instruction is a
  141. list of the form <code>(<var>end</var> <var>start</var> &amp;optional
  142. <var>forget-command</var>)</code>. <var>end</var> is a regular expression to recognise
  143. the last command in an ACS. <var>start</var> is a function. Its input is the
  144. last command of an ACS. Its output is a regular expression to recognise
  145. the first command of the ACS. It is evaluated once and, starting with the
  146. command matched by <var>end</var>, the output is
  147. successively matched against previously processed commands until a match
  148. occurs (or the beginning of the current buffer is reached). The region
  149. determined by (<var>start</var>,<var>end</var>) is locked as an ACS. Optionally,
  150. the ACS is annotated with the actual command to retract the ACS. This is
  151. computed by applying <var>forget-command</var> to the first and last command
  152. of the ACS.
  153. </p>
  154. <p>For convenience one might also want to allow <var>start</var> to be the
  155. symbol &lsquo;<samp>t</samp>&rsquo; as a convenient short-hand for <code>'(lambda (str)
  156. &quot;.&quot;)</code> which always matches.
  157. </p></dd>
  158. </dl>
  159. <hr size="6">
  160. <a name="Browser-mode-for-script-files-and-theories"></a>
  161. <a name="Browser-mode-for-script-files-and-theories-1"></a>
  162. <h2 class="section">A.3 Browser mode for script files and theories</h2>
  163. <p>This is a proposal by David Aspinall for a browser window.
  164. </p>
  165. <p>A browser window should provide support for browsing script files and
  166. theories. We should be able to inspect data in varying levels of
  167. detail, perhaps using outlining mechanisms. For theories, it would be
  168. nice to query the running proof assistant. This may require support
  169. from the assistant in the form of output which has been specially
  170. marked-up with an SGML like syntax, for example.
  171. </p>
  172. <p>A browser would be useful to:
  173. </p><ul>
  174. <li> Provide impoverished proof assistants with a browser
  175. </li><li> Extend the uniform interface of Proof General to theory browsing
  176. </li><li> Interact closely with proof script writing
  177. </li></ul>
  178. <p>The last point is the most important. We should be able to integrate a
  179. search mechanism for proofs of similar theorems, theorems containing
  180. particular constants, etc.
  181. </p>
  182. <hr size="6">
  183. <table cellpadding="1" cellspacing="1" border="0">
  184. <tr><td valign="middle" align="left">[<a href="#Plans-and-Ideas" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  185. <td valign="middle" align="left">[<a href="PG-adapting_16.html#Demonstration-Instantiations" title="Next chapter"> &gt;&gt; </a>]</td>
  186. <td valign="middle" align="left"> &nbsp; </td>
  187. <td valign="middle" align="left"> &nbsp; </td>
  188. <td valign="middle" align="left"> &nbsp; </td>
  189. <td valign="middle" align="left"> &nbsp; </td>
  190. <td valign="middle" align="left"> &nbsp; </td>
  191. <td valign="middle" align="left">[<a href="PG-adapting.html#Top" title="Cover (top) of document">Top</a>]</td>
  192. <td valign="middle" align="left">[<a href="PG-adapting_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  193. <td valign="middle" align="left">[<a href="PG-adapting_17.html#Function-Index" title="Index">Index</a>]</td>
  194. <td valign="middle" align="left">[<a href="PG-adapting_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  195. </tr></table>
  196. <p>
  197. <font size="-1">
  198. This document was generated by <em>David Aspinall</em> on <em>October 3, 2011</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
  199. </font>
  200. <br>
  201. </p>
  202. </body>
  203. </html>