HOL icon indicating copy to clipboard operation
HOL copied to clipboard

`Statement` quotation filter syntax

Open hrutvik opened this issue 2 years ago • 0 comments

It is not uncommon to have a theory file which proves a single, relatively clean theorem - but the purpose of the file is cluttered by various intermediate definition and lemmas. One possible solution is to declare top-level definitions and theorem statements at the top of a file so that they are easily identified.

Currently there is no clean way of doing this - something like the following is an approximation:

<definitions required for theorem statement>

val thm_statement = ``<desired theorem>``;

<all the intermediate definitions/lemmas>

Theorem thm:
  ^thm_statement
Proof
 ...
QED

I propose a quotation filter syntax:

<definitions required for theorem statement>

Statement thm_statement:
  <desired theorem>
End

<all the intermediate definitions/lemmas>

Proof of thm_statement[attributes]:
  ...
QED

Care would be needed to ensure that theorem statement bindings do not get overwritten, and that interaction is relatively straightforward.

As discussed on Slack and in PureCake meeting.

hrutvik avatar Apr 05 '22 13:04 hrutvik