src/HOL/Tools/Old_Datatype/old_primrec.ML
changeset 59859 f9d1442c70f3
parent 59498 50b60f501b05
child 60003 ba8fa0c38d66
equal deleted inserted replaced
59858:890b68e1e8b6 59859:f9d1442c70f3
   199       if Binding.name_of b = fname then SOME ((b, mx), T) else NONE) fixes;
   199       if Binding.name_of b = fname then SOME ((b, mx), T) else NONE) fixes;
   200     val def_name = Thm.def_name (Long_Name.base_name fname);
   200     val def_name = Thm.def_name (Long_Name.base_name fname);
   201     val raw_rhs = fold_rev (fn T => fn t => Abs ("", T, t)) (map snd ls @ [dummyT])
   201     val raw_rhs = fold_rev (fn T => fn t => Abs ("", T, t)) (map snd ls @ [dummyT])
   202       (list_comb (Const (rec_name, dummyT), fs @ map Bound (0 :: (length ls downto 1))))
   202       (list_comb (Const (rec_name, dummyT), fs @ map Bound (0 :: (length ls downto 1))))
   203     val rhs = singleton (Syntax.check_terms ctxt) (Type.constraint varT raw_rhs);
   203     val rhs = singleton (Syntax.check_terms ctxt) (Type.constraint varT raw_rhs);
   204   in (var, ((Binding.conceal (Binding.name def_name), []), rhs)) end;
   204   in (var, ((Binding.concealed (Binding.name def_name), []), rhs)) end;
   205 
   205 
   206 
   206 
   207 (* find datatypes which contain all datatypes in tnames' *)
   207 (* find datatypes which contain all datatypes in tnames' *)
   208 
   208 
   209 fun find_dts _ _ [] = []
   209 fun find_dts _ _ [] = []