cleaner fact freshening, which also works in corner cases, e.g. if two backquoted facts have the same name (but have different variable indices)
(* Author: Alexander Krauss, TU Muenchen
Author: Christian Sternagel, University of Innsbruck
*)
header {* Ad-hoc overloading of constants based on their types *}
theory Adhoc_Overloading
imports Pure
uses "adhoc_overloading.ML"
begin
setup Adhoc_Overloading.setup
end