Re: [isabelle] qed and done take long for large goal states



Hi Larry,

I do care very much about abbreviations. Especially when I work inside a locales, I want the constants defined in the locale to be printed without all the arguments, i.e.,

  foo x

rather than

  l.foo p1 p2 p3 x

And if for some reason, any of the parameters p_i gets eta-expanded (e.g., due to congruence rules or unification), I still want to see "foo x".

Andreas

On 10/08/16 13:29, Lawrence Paulson wrote:
That is a major gain and certainly worth keeping.

I am not terribly bothered by the presentation of abbreviations, but nevertheless, perhaps we can get the best of both? After all, no abbreviations are printed when you type qed.

Larry Paulson


On 10 Aug 2016, at 12:18, Andreas Lochbihler <andreas.lochbihler at inf.ethz.ch> wrote:

Hi Larry,

With the plain matching, the processing times for the qed's and done's got down from about 4.5s to 0.8s on my machine (according to the Timing panel). Since there are dozens of them in that particular theory, the effect was quite noticeable.

Andreas

On 10/08/16 12:27, Lawrence Paulson wrote:
As the author of this code, which is already pretty tricky, I would be surprised if it could be fixed easily. If it were, the penalty might be much more permissive filtering, which would defeat the purpose of this code.

It would be useful to see âgot indeed a bit fasterâ quantified. Did the change make a really big improvement in some situations?

Larry

On 9 Aug 2016, at 22:40, Makarius <makarius at sketis.net> wrote:

On 03/08/16 09:34, Andreas Lochbihler wrote:

I manually changed the appropriate
line for Isabelle2016 and processing got indeed a bit faster.

Unfortunately, abbreviations are no longer contracted as they were if
eta-expanded terms are involved. For example,

abbreviation "rel R â list_all2 (rel_option R)"

term "list_all2 (rel_option undefined)"
term "list_all2 (Îx. rel_option undefined x)"

Before the change, both "term" command output "rel undefined". After the
change, the second prints "list_all2 (rel_option undefined)".

This requires more rethinking of the approach.

Net.match_term explicitly says "MUST BE BETA-ETA NORMAL", in contrast to
Net.unify_term.

I am unsure if the net operations can be refined to cope with non-normal
terms.


	Makarius








This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.