[isabelle-dev] Inventing names (Re: Bug: Possible generalization error in 'Tactic.rule_by_tactic')
Alexander Krauss
krauss at in.tum.de
Sat Apr 10 11:38:31 CEST 2010
Hi Brian,
Brian Huffman wrote:
> I'm sure that many of the internal proofs performed by fixrec and the
> domain package use free variable names like "P" or "x". Without
> locales or local theories, this was never a problem: The global
> context might mention Const "P", but never Free "P". However, local
> theory contexts *can* refer to free variables, and tools need to be
> aware of this.
Yes. Whenever you invent names, you must do this relative to a context.
Also, if you call other tools, you must make sure that the names you
invented are again known to the context. This corresponds to a "fix"
command in Isar.
> My question is this: With local theory contexts, what is the right way
> to obtain free variable names that are safe to use in local proofs?
I think the easiest way is to use Variable.variant_fixes.
Alex
More information about the isabelle-dev
mailing list