equal
deleted
inserted
replaced
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; |