[isabelle-dev] comparison of bindings

Alexander Krauss krauss at in.tum.de
Sun Jun 26 21:08:25 CEST 2011


Hi,

> Given to bindings (i.e., instances of Binding.binding), how are they
> supposed to be compared?
>
> Here is a more concrete example.  Assume there is a declaration such
> as:
>
>    declare_foo name = ...
>
> which declares "name" as some new foo-entity.  For later reference,
> the declared foo-entities are best stored in a table internally,
> associated with the declaration data (the omitted right-hand side
> above).  Indexing this table with the binding produced from "name" is
> not possible, as bindings cannot be compared with each other.

As I understand it, it is not the purpose of a binding to identify an 
object during its whole lifetime, but only as a recipe for producing a 
namespace entry (possibly after applying some modifications via 
morphisms etc.).

So I would expect that at some point you actually produce an actual name 
before you store the foo in the table. Depending on the application, you 
could either just use the base name or qualified name 
(Binding.(qualified_)name_of) or use a full-blown namespace (with 
optional qualifiers, concealed entries etc.). I never did the latter, 
though.

Alex



More information about the isabelle-dev mailing list