equal
deleted
inserted
replaced
399 fun IT_EXISTS blist th = |
399 fun IT_EXISTS blist th = |
400 let val {sign,...} = rep_thm th |
400 let val {sign,...} = rep_thm th |
401 val tych = cterm_of sign |
401 val tych = cterm_of sign |
402 val detype = #t o rep_cterm |
402 val detype = #t o rep_cterm |
403 val blist' = map (fn (x,y) => (detype x, detype y)) blist |
403 val blist' = map (fn (x,y) => (detype x, detype y)) blist |
404 fun ?v M = cterm_of sign (S.mk_exists{Bvar=v,Body = M}) |
404 fun ?? v M = cterm_of sign (S.mk_exists{Bvar=v,Body = M}) |
405 |
405 |
406 in |
406 in |
407 fold_rev (fn (b as (r1,r2)) => fn thm => |
407 fold_rev (fn (b as (r1,r2)) => fn thm => |
408 EXISTS(?r2(subst_free[b] |
408 EXISTS(?? r2 (subst_free [b] |
409 (HOLogic.dest_Trueprop(#prop(rep_thm thm)))), tych r1) |
409 (HOLogic.dest_Trueprop(#prop(rep_thm thm)))), tych r1) |
410 thm) |
410 thm) |
411 blist' th |
411 blist' th |
412 end; |
412 end; |
413 |
413 |