src/HOL/Tools/type_lifting.ML
changeset 41298 aad679ca38d2
parent 40968 a6fcd305f7dc
child 41371 35d2241c169c
equal deleted inserted replaced
41257:a47133170dd0 41298:aad679ca38d2
    78   let
    78   let
    79     fun invents n k nctxt =
    79     fun invents n k nctxt =
    80       let
    80       let
    81         val names = Name.invents nctxt n k;
    81         val names = Name.invents nctxt n k;
    82       in (names, fold Name.declare names nctxt) end;
    82       in (names, fold Name.declare names nctxt) end;
    83     val (((vs1, vs2), vs3), _) = Name.context
    83     val (((vs3, vs2), vs1), _) = Name.context
    84       |> invents Name.aT (length variances)
    84       |> invents Name.aT (length variances)
    85       ||>> invents Name.aT (length variances)
    85       ||>> invents Name.aT (length variances)
    86       ||>> invents Name.aT (length variances);
    86       ||>> invents Name.aT (length variances);
    87     fun mk_Ts vs = map2 (fn v => fn (sort, _) => TFree (v, sort))
    87     fun mk_Ts vs = map2 (fn v => fn (sort, _) => TFree (v, sort))
    88       vs variances;
    88       vs variances;