src/HOL/Tools/res_axioms.ML
changeset 15531 08c8dad8e399
parent 15499 419dc5ffe8bc
child 15579 32bee18c675f
equal deleted inserted replaced
15530:6f43714517ee 15531:08c8dad8e399
   290     in
   290     in
   291 	(sk_term,(t,sk_term)::epss)
   291 	(sk_term,(t,sk_term)::epss)
   292     end;
   292     end;
   293 
   293 
   294 
   294 
   295 fun sk_lookup [] t = None
   295 fun sk_lookup [] t = NONE
   296   | sk_lookup ((tm,sk_tm)::tms) t = if (t = tm) then Some (sk_tm) else (sk_lookup tms t);
   296   | sk_lookup ((tm,sk_tm)::tms) t = if (t = tm) then SOME (sk_tm) else (sk_lookup tms t);
   297 
   297 
   298 
   298 
   299 
   299 
   300 (* get the proper skolem term to replace epsilon term *)
   300 (* get the proper skolem term to replace epsilon term *)
   301 fun get_skolem epss t = 
   301 fun get_skolem epss t = 
   302     let val sk_fun = sk_lookup epss t
   302     let val sk_fun = sk_lookup epss t
   303     in
   303     in
   304 	case sk_fun of None => get_new_skolem epss t
   304 	case sk_fun of NONE => get_new_skolem epss t
   305 		     | Some sk => (sk,epss)
   305 		     | SOME sk => (sk,epss)
   306     end;
   306     end;
   307 
   307 
   308 
   308 
   309 fun rm_Eps_cls_aux epss (t as (Const ("Hilbert_Choice.Eps",_) $ Abs(_,_,_))) = get_skolem epss t
   309 fun rm_Eps_cls_aux epss (t as (Const ("Hilbert_Choice.Eps",_) $ Abs(_,_,_))) = get_skolem epss t
   310   | rm_Eps_cls_aux epss (P $ Q) =
   310   | rm_Eps_cls_aux epss (P $ Q) =