prefer name-normalizing devarify over unvarifyT whenever appropriate
authorhaftmann
Thu, 28 Nov 2013 08:34:52 +0100
changeset 5597689d5b69e5a08
parent 55975 168790252038
child 55977 1512fa5fe531
prefer name-normalizing devarify over unvarifyT whenever appropriate
src/Pure/Isar/code.ML
     1.1 --- a/src/Pure/Isar/code.ML	Wed Nov 27 15:34:07 2013 +0100
     1.2 +++ b/src/Pure/Isar/code.ML	Thu Nov 28 08:34:52 2013 +0100
     1.3 @@ -356,7 +356,7 @@
     1.4  fun analyze_constructor thy (c, ty) =
     1.5    let
     1.6      val _ = Thm.cterm_of thy (Const (c, ty));
     1.7 -    val ty_decl = Logic.unvarifyT_global (const_typ thy c);
     1.8 +    val ty_decl = devarify (const_typ thy c);
     1.9      fun last_typ c_ty ty =
    1.10        let
    1.11          val tfrees = Term.add_tfreesT ty [];
    1.12 @@ -664,7 +664,7 @@
    1.13        handle TERM _ => bad_thm "Not an abstype certificate";
    1.14      val _ = if param = rhs then () else bad_thm "Not an abstype certificate";
    1.15      val ((tyco, sorts), (abs, (vs, ty'))) =
    1.16 -      analyze_constructor thy (abs, Logic.unvarifyT_global raw_ty);
    1.17 +      analyze_constructor thy (abs, devarify raw_ty);
    1.18      val ty = domain_type ty';
    1.19      val (vs', _) = typscheme thy (abs, ty');
    1.20    in (tyco, (vs ~~ sorts, ((abs, (vs', ty)), (rep, thm)))) end;
    1.21 @@ -729,7 +729,7 @@
    1.22  
    1.23  fun empty_cert thy c = 
    1.24    let
    1.25 -    val raw_ty = Logic.unvarifyT_global (const_typ thy c);
    1.26 +    val raw_ty = devarify (const_typ thy c);
    1.27      val (vs, _) = typscheme thy (c, raw_ty);
    1.28      val sortargs = case Axclass.class_of_param thy c
    1.29       of SOME class => [[class]]
    1.30 @@ -1124,7 +1124,7 @@
    1.31      val ([x, y], ctxt) = fold_map Name.variant ["A", "A'"] Name.context;
    1.32      val (zs, _) = fold_map Name.variant (replicate (num_args - 1) "") ctxt;
    1.33      val (ws, vs) = chop pos zs;
    1.34 -    val T = Logic.unvarifyT_global (Sign.the_const_type thy case_const);
    1.35 +    val T = devarify (Sign.the_const_type thy case_const);
    1.36      val Ts = binder_types T;
    1.37      val T_cong = nth Ts pos;
    1.38      fun mk_prem z = Free (z, T_cong);