src/Pure/logic.ML
changeset 77869 1156aa9db7f5
parent 77730 4a174bea55e2
child 79216 58f9b0d53d97
equal deleted inserted replaced
77868:6ea0030b9ee9 77869:1156aa9db7f5
    64     constraints_map: (sort * typ) list,
    64     constraints_map: (sort * typ) list,
    65     atyp_map: typ -> typ,
    65     atyp_map: typ -> typ,
    66     map_atyps: typ -> typ,
    66     map_atyps: typ -> typ,
    67     constraints: ((typ * class) * term) list,
    67     constraints: ((typ * class) * term) list,
    68     outer_constraints: (typ * class) list};
    68     outer_constraints: (typ * class) list};
    69   val unconstrainT: Sortset.T -> term -> unconstrain_context * term
    69   val unconstrainT: sort list -> term -> unconstrain_context * term
    70   val protectC: term
    70   val protectC: term
    71   val protect: term -> term
    71   val protect: term -> term
    72   val unprotect: term -> term
    72   val unprotect: term -> term
    73   val mk_term: term -> term
    73   val mk_term: term -> term
    74   val dest_term: term -> term
    74   val dest_term: term -> term
   363   outer_constraints: (typ * class) list};
   363   outer_constraints: (typ * class) list};
   364 
   364 
   365 fun unconstrainT shyps prop =
   365 fun unconstrainT shyps prop =
   366   let
   366   let
   367     val present = rev ((fold_types o fold_atyps_sorts) (insert (eq_fst op =)) prop []);
   367     val present = rev ((fold_types o fold_atyps_sorts) (insert (eq_fst op =)) prop []);
   368     val extra = Sortset.dest (fold (Sortset.remove o #2) present shyps);
   368     val extra = fold (Sorts.remove_sort o #2) present shyps;
   369 
   369 
   370     val n = length present;
   370     val n = length present;
   371     val (names1, names2) = Name.invent Name.context Name.aT (n + length extra) |> chop n;
   371     val (names1, names2) = Name.invent Name.context Name.aT (n + length extra) |> chop n;
   372 
   372 
   373     val present_map =
   373     val present_map =