src/HOL/Tools/primrec_package.ML
changeset 14768 68496ae66405
parent 14258 9bd184c007f0
child 14981 e73f8140af78
equal deleted inserted replaced
14767:d2b071e65e4c 14768:68496ae66405
   134 
   134 
   135     (* translate rec equations into function arguments suitable for rec comb *)
   135     (* translate rec equations into function arguments suitable for rec comb *)
   136 
   136 
   137     fun trans eqns ((cname, cargs), (fnames', fnss', fns)) =
   137     fun trans eqns ((cname, cargs), (fnames', fnss', fns)) =
   138       (case assoc (eqns, cname) of
   138       (case assoc (eqns, cname) of
   139           None => (warning ("no equation for constructor " ^ quote cname ^
   139           None => (warning ("No equation for constructor " ^ quote cname ^
   140             "\nin definition of function " ^ quote fname);
   140             "\nin definition of function " ^ quote fname);
   141               (fnames', fnss', (Const ("arbitrary", dummyT))::fns))
   141               (fnames', fnss', (Const ("arbitrary", dummyT))::fns))
   142         | Some (ls, cargs', rs, rhs, eq) =>
   142         | Some (ls, cargs', rs, rhs, eq) =>
   143             let
   143             let
   144               val recs = filter (is_rec_type o snd) (cargs' ~~ cargs);
   144               val recs = filter (is_rec_type o snd) (cargs' ~~ cargs);