[isabelle-dev] find_theorems and type class axioms
florian.haftmann at informatik.tu-muenchen.de
Thu Nov 19 10:10:45 CET 2015
> Andreas’s message reminds me that axioms of type classes are still not
> 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"
> lemma involutory3:
> "f (f (f x)) = f x"
> by (fact involutory)
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 198 bytes
Desc: OpenPGP digital signature
More information about the isabelle-dev