On Thu, 13 Feb 2014, Jasmin Blanchette wrote:

Am 13.02.2014 um 13:19 schrieb Lawrence Paulson <l...@cam.ac.uk>:

I’m not sure what the question is any more. If it is about the choice of names in Skolemization, that has been entirely redone in the past few years. I imagine it is now something like this:

           Subgoal.FOCUS (fn {context = ctxt', prems = negs, ...} =>
                     EVERY1 [skolemize_prems_tac ctxt negs,
                             Subgoal.FOCUS (cltac o mkcl o #prems) ctxt']) ctxt 
1]) i st

I was a bit confused when I wrote about "skolemization" being the culprit. The problem is that fixed variables occurring in the conjecture end up keeping their names (modulo some slight alterations). After all, such variables are for all practical purposes just like constants. By "fixed" variables, I mean among other things the "parameters" of the goal (those entites which "rename_tac" works on).

That "metis" performance is affected by the naming of constants is not surprising to anybody who knows a thing or two about automated reasoning, but it is surprising that even the goal parameter naming affects it.

The Subgoal.FOCUS combinator turns goal parameters into local fixes of the context, re-using the accidental "comment" fields in the Abs nodes, in the traditional way "as they are printed" (this is a well-known insider joke).

What I have explained before about the reasons to use Variable.next_bound in the Simplifier seems to apply here as well. So I should probably try the same in these structured proof combinators, but the formerly adhoc "bounds" of the Simplifier need a few more reforms first, to make them actual fixes.

In any case, such a change of internal names is likely to break existing proofs and proof tools, but this needs concrete empirical exploration instead of speculation.


        Makarius
_______________________________________________
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

Reply via email to