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