On Thu, 11 Jul 2013, Christian Sternagel wrote:

Dear list,

what is the proper way of obtaining a type from a term, in case I want to give it as argument to Sign.typ_unify (of Sign.typ_match for that matter)?

My question arises as follows. In adhoc_overloading.ML previously Sign.the_const_type was used to obtain the type of a constant. The result is a type with schematic type variables. Now that I want to use terms instead of constants (as strings) I replaced Sign.the_const_type by fastype_of, but this yields a type with fixed type variables and thus unification may fail. So once again: What is the proper way of getting a "schematic" type from a term?

This perfectly normal Isabelle/ML user question is covered to some extent in the "implementation" manual, concerning Variable.polymorphic.

The reference in isabelle-dev style is
http://isabelle.in.tum.de/repos/isabelle/annotate/cb6634eb8926/doc-src/IsarImplementation/Thy/Proof.thy#l162 "The following example shows how to work with fixed term and type parameters and with type-inference."


Furthermore, to oral tradition of short Isabelle sayings has this entry about it:

  "A local context is characterized by a mixture of free and schematic
  variables.  Flipping coins via varify / unvarify only works in a global
  context."


        Makarius
_______________________________________________
isabelle-dev mailing list
[email protected]
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

Reply via email to