I am trying to learn the Isar language (as of Isabelle 2020), and understand the note
command. It seems to be a fundamental element of the language since a lot of the "Derived elements" are defined based on it.
I am not sure what it does in terms of the equivalents of English:
When it is necessary to
note
something? Aren't all the facts and/or assumptions known at this point of time automatically used, or do I have to explicitnote
certain facts before I can use them? If so, which ones do and do not need to benote
d?What are the things to be noted?
In the documentation Isar-ref.PDF, appendix A1.2 (pp319), under "Primitives", it says:
note a = b reconsider and declare facts
so it seems that an equality is to be noted. Then, in A 1.3 in the same page, it says:
from a ≡ note a then
...
from this ≡ then
Here note
doesn't seem to work on an equality. Also, there seems to be a endless loop.
from a = note a then = note a from this = note a note this then ...
(then
expands to from
and back to then
).
then on the same page, there is:
also ~ note calculation = this
In English, the word "also" (and to some extent "note that") is optional. This is partly why it is so confusing to me here because it seems to be required, and I am not sure what it does. (I can understand other things such as assume
as it moves some facts into the context.)
I've seen this
and that
used in a note
command (e.g. in here Why are the following trivial self-equalities needed in the Isabelle/Isar proof?). This confused me a lot.
Is there a dictionary (English dictionary) style explanation somewhere in terms of what note
does on the things (this
, that
, calculation
etc.)?
,... and why is note
required?
(The above appendix is the closest thing to a specification I could find.)