On Thu, 27 May 2010, Florian Haftmann wrote:

It is possible to enter type variables distinguished only by sort
constraint on the Isar level:

lemma
 assumes "P TYPE('a::order)" and "Q TYPE('a::group_add)"
 shows "R TYPE('a::power)"
using assms proof -

It is not clear to me whether this his always been possible that way or slipped in due to some change.

While this is OK for the low-level inference kernel, the syntax layer is supposed to prevent such inconsistent constraints (both for type and term variables).

The above is accepted even in Isabelle2005, and nobody has noticed so far. When introducing the present check/uncheck infrastructure some years ago I did notice some internal oddities concerning sort constraints that are probably responsible for this effect. Some weeks ago I actually managed to clear out some part of it (sort constraints for type specifications), but did not get to the bottom of the whole syntax stack.

After the next round of check/uncheck modernization it should work in the intended strict sense.


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

Reply via email to