equal
deleted
inserted
replaced
279 |>> flat; |
279 |>> flat; |
280 val decls' = rev (map (apsnd rev) decls); |
280 val decls' = rev (map (apsnd rev) decls); |
281 val facts' = |
281 val facts' = |
282 if eq_list (eq_fst strict_eq_thm) (decls', fact') then |
282 if eq_list (eq_fst strict_eq_thm) (decls', fact') then |
283 [((b, []), map2 (fn (th, atts1) => fn (_, atts2) => (th, atts1 @ atts2)) decls' fact')] |
283 [((b, []), map2 (fn (th, atts1) => fn (_, atts2) => (th, atts1 @ atts2)) decls' fact')] |
284 else if forall (null o snd) decls' then [((b, []), fact')] |
284 else if null decls' then [((b, []), fact')] |
285 else [(empty_binding, decls'), ((b, []), fact')]; |
285 else [(empty_binding, decls'), ((b, []), fact')]; |
286 in (facts', context') end) |
286 in (facts', context') end) |
287 |> fst |> flat |> map (apsnd (map (apfst single))); |
287 |> fst |> flat |> map (apsnd (map (apfst single))); |
288 |
288 |
289 end; |
289 end; |