[isabelle-dev] typedef

Makarius makarius at sketis.net
Fri Aug 26 23:12:18 CEST 2011


On Fri, 26 Aug 2011, Andreas Schropp wrote:

> Most importantly you are missing (indirectly) overloaded constants in
> representing sets of typedefs. E.g.
>  typedef 'a matrix = {f . finite (nonzero_positions f) }
> depends on nonzero_positions, which depends on the
> overloaded constant zero['a].
> If we try to transform this to HOL4-style typedef without (indirectly) 
> overloaded
> constants, we have to abstract out a dictionary for zero['a], which would 
> give rise to
> dependent typedefs. A solution is to eliminate such typedefs completely,
> replacing them by their representing sets, regarded as soft-types.
> This is an extremely non-trivial global theory-transformation.

I also remember this part of the discussion from some years ago.  IIRC it 
was only HOL-Matrix and HOLCF that where using this further genuine 
extension of typedef wrt. overloading.  My gut feelings say it is somehow 
right, but one would need proper proofs (preferably formal ones) for it. 
In a pitch one could also refrain from using that form in main 
Isabelle/HOL.


 	Makarius



More information about the isabelle-dev mailing list