[isabelle-dev] NEWS: 'interpret' vs. literal facts and locale performance
Makarius
makarius at sketis.net
Sun Feb 25 13:32:28 CET 2018
*** Isar ***
* Command 'interpret' no longer exposes resulting theorems as literal
facts, notably for the \<open>prop\<close> notation or the "fact" proof
method. This
improves modularity of proofs and scalability of locale interpretation.
Rare INCOMPATIBILITY, need to refer to explicitly named facts instead
(e.g. use 'find_theorems' or 'try' to figure this out).
This refers to Isabelle/2d9918f5b33c, it is merely the visible tip of
various performance improvements of the locale infrastructure leading up
to that changeset (e.g. performance tuning for instantiate_free
operations and lazy entries in the facts environment).
This impacts sessions that use a lot of locales and locale
interpretation, but type classes are also a special case of this. Here
is a notable timing example:
ISABELLE_BUILD_OPTIONS="threads=8"
ML_PLATFORM="x86_64-linux"
ML_HOME="/home/isabelle/contrib/polyml-5.7.1-5/x86_64-linux"
ML_SYSTEM="polyml-5.7.1"
ML_OPTIONS="--minheap 4G --maxheap 32G"
Isabelle/67e5deb9e290 + AFP/e9f2114df805
Finished JinjaThreads (0:34:14 elapsed time, 2:43:34 cpu time, factor
4.78)
Isabelle/e9f2114df805 + AFP/e9f2114df805
Finished JinjaThreads (0:27:03 elapsed time, 2:20:17 cpu time, factor
5.19)
The incompatibility mentioned above is really rare -- here are the
minimal changes for Isabelle + AFP:
http://isabelle.in.tum.de/repos/isabelle/rev/00c436488398
https://bitbucket.org/isa-afp/afp-devel/commits/53b27c2020f8eacb20a97ba5fb38baa1b19b3fbf
For significant applications we could provide "interpret (open)", but I
think it is better to reduce the number of special features in the
system -- we have too many of them already.
Makarius
More information about the isabelle-dev
mailing list