Name bindings in locales should be treated uniformly regardless of the background theory the locale happens to be in, so this can be considered a defect in the implementation. My guess is that this is caused by the full internal name containing theory information. Otherwise I would expect the local theory active at the point of declaration of the second theorem to reject binding the duplicate name.

On the other hand, if theory information is not stored in the internal name, theory merges can result in invalid locales (that is, locales that cannot even be activated, leaving alone interpreted).

Clemens


Quoting Florian Haftmann <[email protected]>:

Hi all,

currently, theorem names in locales can be shadowed (given that
declarations are in different theories, otherwise the foundation level
would reject the declaration since the two foundation theorems would
have the same name).

After some pondering I would argue that this should be forbidden:
* (Complete) shadowing is a constant source of confusion.
* Global interpretations are impossible then, since they would result in
two global theorems with the same name.

Any comments?

Cheers,
        Florian

--

PGP available:
http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de




_______________________________________________
isabelle-dev mailing list
[email protected]
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

Reply via email to