src/Pure/Proof/extraction.ML
changeset 33317 b4534348b8fd
parent 33245 65232054ffd0
child 33337 9c3b9bf81e8b
equal deleted inserted replaced
33316:6a72af4e84b8 33317:b4534348b8fd
   649                       corr (d + 1) defs' vs' [] [] [] prf' prf' (SOME t);
   649                       corr (d + 1) defs' vs' [] [] [] prf' prf' (SOME t);
   650 
   650 
   651                     val nt = Envir.beta_norm t;
   651                     val nt = Envir.beta_norm t;
   652                     val args = filter_out (fn v => member (op =) rtypes
   652                     val args = filter_out (fn v => member (op =) rtypes
   653                       (tname_of (body_type (fastype_of v)))) (vfs_of prop);
   653                       (tname_of (body_type (fastype_of v)))) (vfs_of prop);
   654                     val args' = List.filter (fn v => Logic.occs (v, nt)) args;
   654                     val args' = filter (fn v => Logic.occs (v, nt)) args;
   655                     val t' = mkabs nt args';
   655                     val t' = mkabs nt args';
   656                     val T = fastype_of t';
   656                     val T = fastype_of t';
   657                     val cname = extr_name s vs';
   657                     val cname = extr_name s vs';
   658                     val c = Const (cname, T);
   658                     val c = Const (cname, T);
   659                     val u = mkabs (list_comb (c, args')) args;
   659                     val u = mkabs (list_comb (c, args')) args;