equal
deleted
inserted
replaced
254 in (mtch Vartab.empty args; true) handle MATCH => false end; |
254 in (mtch Vartab.empty args; true) handle MATCH => false end; |
255 end (* local *) |
255 end (* local *) |
256 |
256 |
257 (* (string * (Term.typ * Term.term * Thm.thm * Term.typ * int) list) list -> Context.theory -> Term.typ list -> Term.term -> |
257 (* (string * (Term.typ * Term.term * Thm.thm * Term.typ * int) list) list -> Context.theory -> Term.typ list -> Term.term -> |
258 (Thm.thm * (Term.typ * Term.typ * int list) list * int list * Term.typ * Term.term) list *) |
258 (Thm.thm * (Term.typ * Term.typ * int list) list * int list * Term.typ * Term.term) list *) |
259 fun split_posns cmap sg Ts t = |
259 fun split_posns (cmap : (string * (typ * term * thm * typ * int) list) list) sg Ts t = |
260 let |
260 let |
261 val T' = fastype_of1 (Ts, t); |
261 val T' = fastype_of1 (Ts, t); |
262 fun posns Ts pos apsns (Abs (_, T, t)) = |
262 fun posns Ts pos apsns (Abs (_, T, t)) = |
263 let val U = fastype_of1 (T::Ts,t) |
263 let val U = fastype_of1 (T::Ts,t) |
264 in posns (T::Ts) (0::pos) ((T, U, pos)::apsns) t end |
264 in posns (T::Ts) (0::pos) ((T, U, pos)::apsns) t end |