TFL/rules.ML
changeset 17148 858cab621db2
parent 16853 33b886cbdc8f
child 17171 79ab8ea7b097
equal deleted inserted replaced
17147:fa9e28b23d70 17148:858cab621db2
   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