Hi Larry,

> Andreas’s message reminds me that axioms of type classes are still not
picked up:
>
> class dist_norm = dist + norm + minus +
>   assumes dist_norm: "dist x y = norm (x - y)”
>
> This item has the status of a theorem. However, the query
>
>       dist "norm(_-_)”
>
> doesn’t find it. Surely it should?

my mail from this summer still applies:

> There is nothing wrong with type classes here:
> 
> class involutory =
>   fixes f :: "'a ⇒ 'a"
>   assumes involutory: "f (f x) = x"
> begin
> 
> lemma involutory3:
>   "f (f (f x)) = f x"
>   by (fact involutory)
> 
> end
> 
> find_theorems "f"
> 
> It seems to be a constraint issue:
> 
> find_theorems "_ = norm (_ - _)"
>       ~> 'a::real_normed_vector is inferred
> find_theorems "_ = norm ((_::'a::dist_norm) - _)"
>       ~> typing error
> 
> Maybe some naughty tweaking of sort constraints or an unforseen
> behaviour of coercions, but these are mere guesses.  I do not understand
> these parts of the type class hierarchy.

I do not know why and how the default constraints of »dist« are changed,
but this is the basic cause for the behaviour you experience.

Cheers,
        Florian

-- 

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

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to