src/HOL/Tools/BNF/bnf_gfp_grec.ML
changeset 64627 8d7cb22482e3
parent 64382 2a75139b5931
child 64674 ef0a5fd30f3b
equal deleted inserted replaced
64626:f6d0578b46c9 64627:8d7cb22482e3
  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 =