equal
deleted
inserted
replaced
1003 SOME mapf => mapf |
1003 SOME mapf => mapf |
1004 | NONE => the (find_first (fn f => domain_type (fastype_of f) = T) fs)); |
1004 | NONE => the (find_first (fn f => domain_type (fastype_of f) = T) fs)); |
1005 |
1005 |
1006 val simple_Ts = map fst simple_T_mapfs; |
1006 val simple_Ts = map fst simple_T_mapfs; |
1007 |
1007 |
1008 val t_map = build_map ctxt simple_Ts build_simple (apply2 (range_type o fastype_of) (t, u)); |
1008 val t_map = build_map ctxt simple_Ts [] build_simple (apply2 (range_type o fastype_of) (t, u)); |
1009 val u_map = build_map ctxt simple_Ts build_simple (apply2 (domain_type o fastype_of) (t, u)); |
1009 val u_map = build_map ctxt simple_Ts [] build_simple (apply2 (domain_type o fastype_of) (t, u)); |
1010 in |
1010 in |
1011 mk_Trueprop_eq (HOLogic.mk_comp (u, u_map), HOLogic.mk_comp (t_map, t)) |
1011 mk_Trueprop_eq (HOLogic.mk_comp (u, u_map), HOLogic.mk_comp (t_map, t)) |
1012 end; |
1012 end; |
1013 |
1013 |
1014 fun derive_natural_by_unfolding ctxt live_AsBs preT pre_map fs f const map_thms = |
1014 fun derive_natural_by_unfolding ctxt live_AsBs preT pre_map fs f const map_thms = |