lib/ProofGeneral/pgip_isar.xml
changeset 23434 b2e7d4c29614
parent 17740 fc385ce6187d
child 33686 8e33ca8832b1
equal deleted inserted replaced
23433:c2c10abd2a1e 23434:b2e7d4c29614
       
     1 
     1 <!-- Title:      Pure/pgip_isar.xml
     2 <!-- Title:      Pure/pgip_isar.xml
     2      ID:         $Id$
     3      ID:         $Id$
     3      Author:     David Aspinall, University of Edinburgh
     4      Author:     David Aspinall, University of Edinburgh
     4 		 Christoph Lüth, University of Bremen
     5 		 Christoph Lüth, University of Bremen
     5 
     6 
    14 STATUS: incomplete and experimental.
    15 STATUS: incomplete and experimental.
    15 -->
    16 -->
    16 
    17 
    17 <displayconfig>
    18 <displayconfig>
    18 
    19 
    19   <welcomemsg>Welcome to Isabelle/Isar 2005.</welcomemsg>
    20   <welcomemsg>Welcome to Isabelle/Isar 2007.</welcomemsg>
    20 
    21 
    21   <!-- Icon for Isabelle interface -->
    22   <!-- Icon for Isabelle interface -->
    22   <icon>
    23   <icon>
    23     iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAHG0lEQVRIx7VW
    24     iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAHG0lEQVRIx7VW
    24     WY9cRxU+p6ru0tvtnp7NmRl7PBqPPU5sB8l2FgS2EwVkeEFEQYp4gggJeIEn
    25     WY9cRxU+p6ru0tvtnp7NmRl7PBqPPU5sB8l2FgS2EwVkeEFEQYp4gggJeIEn
    82   >isar-ref</helpdoc>
    83   >isar-ref</helpdoc>
    83   <helpdoc name="Isabelle Reference manual"
    84   <helpdoc name="Isabelle Reference manual"
    84 	   descr="Reference Manual for Isabelle"
    85 	   descr="Reference Manual for Isabelle"
    85            url="http://isabelle.in.tum.de/dist/Isabelle/doc/ref.pdf"
    86            url="http://isabelle.in.tum.de/dist/Isabelle/doc/ref.pdf"
    86   >ref</helpdoc>
    87   >ref</helpdoc>
    87   <helpdoc name="Isabelle System manual"
    88   <helpdoc 
    88 	   descr="System Manual: interfaces, output, building logics."
    89            name="Isabelle System manual"
       
    90            descr="System Manual: interfaces, output, building logics."
    89            url="http://isabelle.in.tum.de/dist/Isabelle/doc/system.pdf"
    91            url="http://isabelle.in.tum.de/dist/Isabelle/doc/system.pdf"
    90   >system</helpdoc>
    92   >system</helpdoc>
    91   
    93 
       
    94   <!-- Example lexicalstructure element.  This is incomplete and the
       
    95    keywords need to be filled dynamically -->
       
    96   <lexicalstructure>
       
    97     <keyword word="begin"><shorthelp>Begin theory or proof</shorthelp></keyword>
       
    98     <keyword word="end"><shorthelp>End theory or proof</shorthelp></keyword>
       
    99     <stringdelimiter>"</stringdelimiter>
       
   100     <commentdelimiter start="(*" end="*)"/>
       
   101     <commentdelimiter start="--"/>
       
   102     <identifiersyntax initialchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
       
   103 		      allowedchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345689_'"/>
       
   104   </lexicalstructure>
    92  
   105  
       
   106 
    93   <!-- objtypes -->
   107   <!-- objtypes -->
       
   108 
    94   <objtype name="toplevel" descr="top-level context (PGIP internal)">
   109   <objtype name="toplevel" descr="top-level context (PGIP internal)">
    95   <contains objtype="theory"/>
   110     <contains objtype="theory"/>
    96   </objtype>
   111   </objtype>
       
   112 
    97   <objtype name="theory" descr="Isabelle theory">
   113   <objtype name="theory" descr="Isabelle theory">
    98   <contains objtype="theorem"/>
   114     <contains objtype="theorem"/>
    99   <contains objtype="theory"/>
   115     <contains objtype="theory"/>
   100   </objtype>
   116   </objtype>
       
   117 
   101   <objtype name="theorem" descr="Isabelle theorem">
   118   <objtype name="theorem" descr="Isabelle theorem">
       
   119     <contains objtype="theorem-proof"/>
   102     <hasprefs prefcategory="Theorem attributes">
   120     <hasprefs prefcategory="Theorem attributes">
   103       <haspref name="thm-kind" descr="Theorem kind">
   121       <haspref name="thm-kind" descr="Theorem kind">
   104 	<pgipchoice>
   122 	<pgipchoice>
   105 	  <pgipconst name="Theorem">theorem</pgipconst>
   123 	  <pgipconst name="theorem" descr="Theorem"/>
   106 	  <pgipconst name="Lemma">lemma</pgipconst>
   124 	  <pgipconst name="lemma" descr="Lemma"/>
   107 	  <pgipconst name="Corollary">corollary</pgipconst>
   125 	  <pgipconst name="corollary" descr="Corollary"/>
   108 	</pgipchoice>
   126 	</pgipchoice>
   109       </haspref>
   127       </haspref>
   110       <haspref name="thm-simp" descr="Include in simplifier set">
   128       <haspref name="thm-simp" descr="Include in simplifier set">
   111 	<pgipbool/>
   129 	<pgipbool/>
   112       </haspref>
   130       </haspref>
   118       </haspref>
   136       </haspref>
   119       <haspref name="thm-dest" descr="Flag as destruction rule">
   137       <haspref name="thm-dest" descr="Flag as destruction rule">
   120 	<pgipbool/>
   138 	<pgipbool/>
   121       </haspref>
   139       </haspref>
   122     </hasprefs>
   140     </hasprefs>
       
   141   </objtype>
       
   142   <objtype name="theorem-proof" descr="Isabelle proof">
   123   </objtype>
   143   </objtype>
   124   <objtype name="term"      descr="Isabelle term">
   144   <objtype name="term"      descr="Isabelle term">
   125     <icon>
   145     <icon>
   126       R0lGODlhJgAgAIQAAP////r6+uDg4Nra2tnZ2fn5+WFhYUJCQkFBQWBgYMnO
   146       R0lGODlhJgAgAIQAAP////r6+uDg4Nra2tnZ2fn5+WFhYUJCQkFBQWBgYMnO
   127       91xq6K208wsg3XiD7OTm+0FR5CY54Pb29t3d3dfX119fX/T09NbW1tjY2AAA
   147       91xq6K208wsg3XiD7OTm+0FR5CY54Pb29t3d3dfX119fX/T09NbW1tjY2AAA
   146   </objtype>
   166   </objtype>
   147   <objtype name="thmset"    descr="Set of Isabelle theorems">
   167   <objtype name="thmset"    descr="Set of Isabelle theorems">
   148     <contains objtype="theorem"/>
   168     <contains objtype="theorem"/>
   149   </objtype>
   169   </objtype>
   150 <!-- possible objtypes not yet supported:
   170 <!-- possible objtypes not yet supported:
   151   <objtype name="oopsgoal"  descr="Abandoned proof"></objtype>
       
   152   <objtype name="sorrygoal" descr="Postponed proof"></objtype>
       
   153   <objtype name="proof"	    descr="Completed proof"></objtype>
       
   154   <objtype name="method"    descr="Isar method or proof step"></objtype>
   171   <objtype name="method"    descr="Isar method or proof step"></objtype>
   155 -->
   172 -->
   156 
   173 
   157   <!-- object operations -->
   174   <!-- object operations -->
       
   175 
       
   176   <opn name="theory" descr="make a theory">
       
   177     <opsrc name="name">identifier</opsrc>
       
   178     <opsrc name="imports" listwithsep=" ">theory</opsrc>
       
   179     <optrg>theory</optrg>
       
   180     <opcmd>theory %name imports %imports begin
       
   181 
       
   182 end</opcmd>
       
   183   </opn>
       
   184 
       
   185   <opn name="open lemma">
       
   186     <inputform>
       
   187       <field name="name"><pgipstring/><prompt>Input a name:</prompt></field>
       
   188       <field name="term"><pgipstring/><prompt>Input a term:</prompt></field>
       
   189       <field name="attributes">
       
   190 	<pgipchoice>
       
   191 	<pgipconst name="" descr="none"></pgipconst>
       
   192 	<pgipconst name="[simp]" descr="use in global simplifier context"></pgipconst>
       
   193 	</pgipchoice>
       
   194 	<prompt>Attributes:</prompt></field>
       
   195     </inputform>
       
   196     <opsrc></opsrc>
       
   197     <opcmd>lemma %attributes %name : "%term"
       
   198 sorry
       
   199 </opcmd>
       
   200   </opn>
       
   201 
   158 
   202 
   159   <opn name="add to simpset">
   203   <opn name="add to simpset">
   160     <opsrc>theorem</opsrc>
   204     <opsrc>theorem</opsrc>
   161     <optrg></optrg>
   205     <optrg></optrg>
   162     <opcmd>declare %1 [simp]</opcmd>
   206     <opcmd>declare %1 [simp]</opcmd>
   166     <opsrc>theorem</opsrc>
   210     <opsrc>theorem</opsrc>
   167     <optrg></optrg>
   211     <optrg></optrg>
   168     <opcmd>declare %1 [simp del]</opcmd>
   212     <opcmd>declare %1 [simp del]</opcmd>
   169   </opn>
   213   </opn>
   170 
   214 
   171   <opn name="instantiatevar">
   215   <opn name="instantiate" descr="instantiate variable in theorem">
   172     <opsrc>theorem term</opsrc>
   216     <opsrc>theorem</opsrc>
       
   217     <opsrc>term</opsrc>
   173     <optrg>theorem</optrg>
   218     <optrg>theorem</optrg>
   174     <opcmd>%1 [OF %2]</opcmd>
   219     <opcmd>%1 [OF %2]</opcmd>
   175   </opn>
   220   </opn>
   176 
   221 
   177   <!-- interactive operations -->
   222   <!-- interactive operations -->
   201     <opcmd>apply (drule %1)</opcmd>
   246     <opcmd>apply (drule %1)</opcmd>
   202   </opn>
   247   </opn>
   203 
   248 
   204   <!-- introduce new goal -->
   249   <!-- introduce new goal -->
   205   <!-- [FIXME: ideally need to generalise substitution for options? in pgipchoice] -->
   250   <!-- [FIXME: ideally need to generalise substitution for options? in pgipchoice] -->
   206   <opn name="openlemma">
   251 
   207     <inputform>
       
   208       <field name="name"><pgipstring/><prompt>Input a name:</prompt></field>
       
   209       <field name="term"><pgipstring/><prompt>Input a term:</prompt></field>
       
   210       <field name="attributes">
       
   211 	<pgipchoice>
       
   212 	<pgipconst name="none"></pgipconst>
       
   213 	<pgipconst name="use in global simplifier context">[simp]</pgipconst>
       
   214 	</pgipchoice>
       
   215 	<prompt>Attributes:</prompt></field>
       
   216     </inputform>
       
   217     <opsrc></opsrc>
       
   218     <opcmd>lemma %attributes %name : "%term"</opcmd>
       
   219   </opn>
       
   220 
   252 
   221 </displayconfig>
   253 </displayconfig>
   222 
   254