I wondered when somebody would ask this. What's going on here is a hack, and I'm not very happy about it.

If you follow up the imported theory, you will find some code that provides a clone of the interpretation command (under the same name!) with some added functionality (definitions). This clone is used in some theories about operational semantics throughout HOL. I have not fully understood what the clone does, but the code is outdated, and I believe it can be gotten rid of easily. I don't see any added value in a command that makes both definitions and an interpretation. Its purpose might have been to make the interpretation notationally simpler. But that's no longer required, since 'where' clauses in interpretation now anticipate the syntax of the interpreted context, which makes writing left hand sides of the equations in the 'where' clauses easier. (I hope what I write makes sense to anybody at all.) For example, one may write

  interpretation power: lattice "Pow X" "op \<subseteq>"
where "power.meet = (\<lambda>A \<in> Pow X. \<lambda>B \<in> Pow X. A \<inter> B)" and "power.dual.meet = (\<lambda>A \<in> Pow X. \<lambda>B \<in> Pow X. A \<union> B)"

where the locale 'lattice' has the (pseudo-)constants 'meet' and 'dual.meet'. If you look at a similar example in src/HOL/ex/LocaleTest2.thy (interpretation in line 490) you will see that this used to be a lot clumsier, involving the foundational constants.

Clemens


Quoting Alexander Krauss <kra...@in.tum.de>:

Hi all,

while backporting HOL/Library/Set_Algebras to use type classes again (a remaining point of the 'a set transition), I noticed that there is now a clone of that file in HOL/ex. The changelog says:

changeset:   41581:c34415351b6d
user:        haftmann
date:        Sat Jan 15 20:05:29 2011 +0100
summary: experimental variant of interpretation with simultaneous definitions, plus example

Unfortunately, nothing in the file itself states what it should demonstrate. Instead, the original comments remain, so there is plenty of opportunity for getting totally confused.

What should we do with the clone? Are there maybe other examples that can demonstrate interpretations with simultaneous definitions, so that we can simply remove it?

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



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

Reply via email to