lib/ProofGeneral/pgip_isar.xml
author blanchet
Fri Apr 26 12:09:51 2013 +0200 (2013-04-26)
changeset 51790 22517d04d20b
parent 33686 8e33ca8832b1
permissions -rw-r--r--
more intuitive syntax for equality-style discriminators of nullary constructors
     1 <!-- Title:      Pure/pgip_isar.xml
     2      Author:     David Aspinall, University of Edinburgh
     3      Author:     Christoph Lüth, University of Bremen
     4 
     5 This file contains the configuration messages which configure 
     6 PGIP interfaces for Isabelle/Isar, in particular, explaining
     7 internal types of objects and operations available on them.
     8 
     9 See http://proofgeneral.inf.ed.ac.uk/kit for more details.
    10 
    11 This file is a contributed part of the Isabelle Distribution.
    12 
    13 STATUS: incomplete and experimental.
    14 -->
    15 
    16 <displayconfig>
    17 
    18   <welcomemsg>Welcome to Isabelle/Isar 2007.</welcomemsg>
    19 
    20   <!-- Icon for Isabelle interface -->
    21   <icon>
    22     iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAHG0lEQVRIx7VW
    23     WY9cRxU+p6ru0tvtnp7NmRl7PBqPPU5sB8l2FgS2EwVkeEFEQYp4gggJeIEn
    24     JB4RfwQeeEFikTAIBHFMYiFsBi9x7FnaM+Oe1bP29HZv33ur6hwe2pqMLGOk
    25     oJzHKlV95/vqnPMVMjN8niHgcw71/O00TfFAAMBBxkKI7uJnBNBaR1FkrQUA
    26     KaUQAgCsNWmaErHjOEEQOI7zzLP7wP+DQRSuLyz8Oo5rAoVyPACUIn4w89Aa
    27     U+4dv3DhR4cOnXg+CfV8faKwtblxt9FYIiLf99NUB0FuqbrKzEnCcdz57I/M
    28     zMyMQgLbI0cOM+mxscNad4hSZsvMlgyRfaoID77W8xgwc5qmQgilXEuir6/P
    29     dR1jALgLDIDARPu3P0elZwAQUavVImIphVRKSn9rawuRNzbWmckSAAAypLrT
    30     6bS11lLKg+k/VVpPAxhjWq22tRYRARjRQxAry9WLb7z1cG4OpWAmBCDgOG4t
    31     LlbqddnTU/R9Rynf97O+72ezWdd19zHwoIha6zAMrSVEZKY0TZeq8w/nflav
    32     L/m+SmKNQgTF3PTMLhEYA9c/hImRnuFR38lASrZYzL766ndeeeWdfD6/T0sd
    33     VAYAlHIqlZXp6eWHlUeVyuLq2jrZei6T6etNSqWO72E2oLm5xN1j2lAvaVts
    34     bTsVkTuetyfae3tZZlBK/VeJpJQAfO2D6Q+uzrZb2tqccke++Nouw2Od1pst
    35     aoZkt1LXQW9ElF+WQcHV9200bcia1HAu3zcyMul5HiJ20xVCqP30u0sAQMz1
    36     ersTpwgYuI2jo3NKCqnyjisQpTGkDdVqnTA0UWLi1Cpg6RpjOJspBEFZCGGt
    37     SVNNZKVUan+qhGHIzEQ2m3UvXDjfU/K3d5rLyw/IUq4YuK6/vbUJiEIKY1Vt
    38     LwUAJm4nrAznJAODMZZZWGvTNO1WFxGpg/VjjCEiRIqidrW6niYaEMkCEzmO
    39     ywAIwPZJ+TMxALCFpuFBydZSrbY1f/8TBzLSy0glHUcJgZ9KpJQCAK1TBKhU
    40     lodeGDg5OTo7d8cyWquHRw5HUbO2V38yUJlRAFm2hi1zbHFn3uDS1p/++fOP
    41     yr1+Pj84Nj557vyJt76uAMBa28398fru1NTMR9fvbW3vbWzu3r47I6U9f5aN
    42     tY1mvafUF7bDVJsnLfykn9Vmamb/uvuT44MiwNS04412DLC0WGk2mhNvXlYA
    43     UKs1pqYqV9+/dffuQr3eabVb1hCikCrjsmcItBFRmFQfzQtgRGRiZgYEJqhG
    44     YGTxdBnHz79cHh2++ds/H5sY3V1Y+nsj6s/lVVeWf91c/OUvbiyv1DodTBIj
    45     MHB8BczaRJ24Uauxo/TO9hZZJIESusMIyHJzhV5MsBSECPLK1ZtHRwaPTo4P
    46     nzy2WqmykMX+AcdxFAAQG2P1iYnhO3dng8IIM6Q6MiYSQgmhrvzxUiG/PTzc
    47     GBrWQ4NhJies5bU1c3hZHW25BtkCOIiBI9bWNocnJ27+7i8JEQiRKQTMrIi4
    48     UMi0Wq2+3j5LOk6aREZKx/dLAhWx1To0ZrhapdnZ3URXfe8TKcPdR/qnx/o9
    49     T7gCETE0tBh2Qku3qmteJ807jpfLB/39RCQAuFDwlRLZTDYIAmYrUDLZUy8e
    50     Hh/vMzrK+KU42Ys628Sk5EhPM2dW7KmCZ5gjY+upaWqz2kkiSyjEb6Zm10hi
    51     vnjqja+cufgmAChEzOf8wcHy9Mz06JGh+w8qDNzXW0o1HRrom56eT9OQyOy3
    52     y+sjA5dPT8ZJuvKwmiap5zppnFhmAvT87A/ee69Xx/353Jlvf9f1PGZWAFAs
    53     5cbHX1hYeFzI+8wkpVco5IOC/3hzi5gEEzMxm679NZqtf99cyfne6PGxQiF7
    54     /NyZv/3q93Z9GxGk533tG2+XBga6rsDM1loFAOVy8M63zhVLYqna6unJh6Eu
    55     FfOfPJg9fWqSmRio21yIjGiFlIAijNOZe7Oe64RRbFKtGQiEdD0/n0MUiE8c
    56     N5vNKkSUUk5MjIyNHdrcrF19f/DatdmB/qDe7F1d3UZEZkYUUopCITs0VDp7
    57     YggWb+tGPWk1kji5f2faRSQUTiZ76Xs/dP3M/tcJEX3fxy4Ra4kZrLVaJ41G
    58     dONG5cofpqrVnXaYMCkh4qGh4EtfPvnuu5d6e4tJu7V2786jf3y4/eDjaGdb
    59     Wb2O7sXv//gLX73c/T51vTOTybiui8xMRNZaRGGMYSYhJJFtNNq3bs1fvz67
    60     slwfGMh88+3Xz549JqXsmkn3SGt7a+3j2+3lR+Wzrx156bQQQimllJJSfmrU
    61     +5bJzMYYIkZEIRAAtDZa09raThBkyuWgK5cQAoABGBEBkIiIGACIrFLScZz9
    62     q5/hyftIB1wImAkREMW+SRERInSHd/eFmJmZlHKkFAfTlVJho9HI5XJPwf6f
    63     EUWdOO4gimIx+A/pRoFAWyKheQAAAABJRU5ErkJggg==
    64   </icon>
    65 
    66   <helpdoc name="Isabelle/HOL Tutorial" 
    67 	   descr="A gentle introduction to Isabelle/HOL"
    68            url="http://isabelle.in.tum.de/dist/Isabelle/doc/tutorial.pdf"
    69   >tutorial</helpdoc>
    70   <helpdoc name="Isabelle HOL Logic Reference" 
    71 	   descr="The Isabelle HOL Logic in detail"
    72            url="http://isabelle.in.tum.de/dist/Isabelle/doc/logics-HOL.pdf"
    73   >logics-HOL</helpdoc>
    74   <helpdoc name="Isar Tutorial" 
    75 	   descr="An Introduction to the Isar proof language"
    76            url="http://isabelle.in.tum.de/dist/Isabelle/doc/isar-overview.pdf"
    77   >isar-overview</helpdoc>
    78   <helpdoc name="Isabelle/Isar Reference" 
    79 	   descr="Reference Manual for Isabelle/Isar"
    80            url="http://isabelle.in.tum.de/dist/Isabelle/doc/isar-ref.pdf"
    81   >isar-ref</helpdoc>
    82   <helpdoc name="Isabelle Reference manual"
    83 	   descr="Reference Manual for Isabelle"
    84            url="http://isabelle.in.tum.de/dist/Isabelle/doc/ref.pdf"
    85   >ref</helpdoc>
    86   <helpdoc 
    87            name="Isabelle System manual"
    88            descr="System Manual: interfaces, output, building logics."
    89            url="http://isabelle.in.tum.de/dist/Isabelle/doc/system.pdf"
    90   >system</helpdoc>
    91 
    92   <!-- Example lexicalstructure element.  This is incomplete and the
    93    keywords need to be filled dynamically -->
    94   <lexicalstructure>
    95     <keyword word="begin"><shorthelp>Begin theory or proof</shorthelp></keyword>
    96     <keyword word="end"><shorthelp>End theory or proof</shorthelp></keyword>
    97     <stringdelimiter>"</stringdelimiter>
    98     <commentdelimiter start="(*" end="*)"/>
    99     <commentdelimiter start="--"/>
   100     <identifiersyntax initialchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
   101 		      allowedchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345689_'"/>
   102   </lexicalstructure>
   103  
   104 
   105   <!-- objtypes -->
   106 
   107   <objtype name="toplevel" descr="top-level context (PGIP internal)">
   108     <contains objtype="theory"/>
   109   </objtype>
   110 
   111   <objtype name="theory" descr="Isabelle theory">
   112     <contains objtype="theorem"/>
   113     <contains objtype="theory"/>
   114   </objtype>
   115 
   116   <objtype name="theorem" descr="Isabelle theorem">
   117     <contains objtype="theorem-proof"/>
   118     <hasprefs prefcategory="Theorem attributes">
   119       <haspref name="thm-kind" descr="Theorem kind">
   120 	<pgipchoice>
   121 	  <pgipconst name="theorem" descr="Theorem"/>
   122 	  <pgipconst name="lemma" descr="Lemma"/>
   123 	  <pgipconst name="corollary" descr="Corollary"/>
   124 	</pgipchoice>
   125       </haspref>
   126       <haspref name="thm-simp" descr="Include in simplifier set">
   127 	<pgipbool/>
   128       </haspref>
   129       <haspref name="thm-intro" descr="Flag as introduction rule">
   130 	<pgipbool/>
   131       </haspref>
   132       <haspref name="thm-elim" descr="Flag as elimination rule">
   133 	<pgipbool/>
   134       </haspref>
   135       <haspref name="thm-dest" descr="Flag as destruction rule">
   136 	<pgipbool/>
   137       </haspref>
   138     </hasprefs>
   139   </objtype>
   140   <objtype name="theorem-proof" descr="Isabelle proof">
   141   </objtype>
   142   <objtype name="term"      descr="Isabelle term">
   143     <icon>
   144       R0lGODlhJgAgAIQAAP////r6+uDg4Nra2tnZ2fn5+WFhYUJCQkFBQWBgYMnO
   145       91xq6K208wsg3XiD7OTm+0FR5CY54Pb29t3d3dfX119fX/T09NbW1tjY2AAA
   146       AAAAAAAAAAAAAAAAAAAAAAAAACH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh
   147       +QQBCgAfACwAAAAAJgAgAAAFnCAgjmRpnqgYCAPhvnAsz7BQAIJxIHzv/8Cg
   148       LyHA6YTI5I8IWLVo0Gjtlqpar9istqRYLBTbMIDRaDDEW7IZrVWf2VYGw1F2
   149       yBkP+KnM77/1Jm6AcWV/gyeChyiJioGFjYiPkCWMkyKVlpiTmpBqEJYlEWUR
   150       XgugDBCjDnmgrZMSExQUUrQ0NgADFUq7SUy5vMBATBYDFxi1yFMAIQA7
   151     </icon>
   152   </objtype>
   153   <objtype name="type"      descr="Isabelle type">
   154     <icon>
   155       R0lGODlhJgAgAIQAAP////r6+uDg4Nra2tnZ2fn5+WFhYUJCQkFBQWBgYOTm
   156       +62080FR5Asg3SY54Fxq6MnO95Kc73iD7Pb29t3d3dfX119fX/T09NbW1tjY
   157       2AAAAAAAAAAAAAAAAAAAAAAAACH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh
   158       +QQBCgAfACwAAAAAJgAgAAAFsyAgjmRpnqgYCAPhvnAsz7BQAIJxIHzv/8Cg
   159       LyHA6YTI5I8IWLVo0Gjtlqpar9istqRYeL9exbaqYDTOaPRijFI40vDGmm16
   160       NB74NwOPh9C5DWIidn9VERIkb4UpEYIiZ4tZkJFWEA0MlFYLd5lVmw+dKZ8k
   161       fqEim4GnoKYAlndiDIisAG9ppawSaauzALkNsrzBwsPEIxMUFRVSyzQ2AAMW
   162       StJJTNDT10BMFwMYGczfUwAhADs=
   163     </icon>
   164   </objtype>
   165   <objtype name="thmset"    descr="Set of Isabelle theorems">
   166     <contains objtype="theorem"/>
   167   </objtype>
   168 <!-- possible objtypes not yet supported:
   169   <objtype name="method"    descr="Isar method or proof step"></objtype>
   170 -->
   171 
   172   <!-- object operations -->
   173 
   174   <opn name="theory" descr="make a theory">
   175     <opsrc name="name">identifier</opsrc>
   176     <opsrc name="imports" listwithsep=" ">theory</opsrc>
   177     <optrg>theory</optrg>
   178     <opcmd>theory %name imports %imports begin
   179 
   180 end</opcmd>
   181   </opn>
   182 
   183   <opn name="open lemma">
   184     <inputform>
   185       <field name="name"><pgipstring/><prompt>Input a name:</prompt></field>
   186       <field name="term"><pgipstring/><prompt>Input a term:</prompt></field>
   187       <field name="attributes">
   188 	<pgipchoice>
   189 	<pgipconst name="" descr="none"></pgipconst>
   190 	<pgipconst name="[simp]" descr="use in global simplifier context"></pgipconst>
   191 	</pgipchoice>
   192 	<prompt>Attributes:</prompt></field>
   193     </inputform>
   194     <opsrc></opsrc>
   195     <opcmd>lemma %attributes %name : "%term"
   196 sorry
   197 </opcmd>
   198   </opn>
   199 
   200 
   201   <opn name="add to simpset">
   202     <opsrc>theorem</opsrc>
   203     <optrg></optrg>
   204     <opcmd>declare %1 [simp]</opcmd>
   205   </opn>
   206 
   207   <opn name="remove from simpset">
   208     <opsrc>theorem</opsrc>
   209     <optrg></optrg>
   210     <opcmd>declare %1 [simp del]</opcmd>
   211   </opn>
   212 
   213   <opn name="instantiate" descr="instantiate variable in theorem">
   214     <opsrc>theorem</opsrc>
   215     <opsrc>term</opsrc>
   216     <optrg>theorem</optrg>
   217     <opcmd>%1 [OF %2]</opcmd>
   218   </opn>
   219 
   220   <!-- interactive operations -->
   221   <!-- da: this isn't really a good example.  
   222        Isar doesn't have cterms, the "term" command just checks & prints
   223        a term in the current context. -->
   224   <opn name="checkterm">
   225     <inputform>
   226       <field name="term"><pgipstring/><prompt>Input a term:</prompt></field>
   227     </inputform>
   228     <opsrc></opsrc>
   229     <optrg>term</optrg>
   230     <opcmd>term %term</opcmd>
   231   </opn>
   232 
   233   <!-- proof operations -->
   234   <opn name="applyrule">
   235     <opsrc>ruleset</opsrc>
   236     <opcmd>apply (rule %1)</opcmd>
   237   </opn>
   238   <opn name="applyerule">
   239     <opsrc>ruleset</opsrc>
   240     <opcmd>apply (erule %1)</opcmd>
   241   </opn>
   242   <opn name="applydrule">
   243     <opsrc>ruleset</opsrc>
   244     <opcmd>apply (drule %1)</opcmd>
   245   </opn>
   246 
   247   <!-- introduce new goal -->
   248   <!-- [FIXME: ideally need to generalise substitution for options? in pgipchoice] -->
   249 
   250 
   251 </displayconfig>
   252