src/HOL/Tools/Qelim/cooper.ML
changeset 24298 229fdfc1ddd9
parent 24075 366d4d234814
child 24584 01e83ffa6c54
equal deleted inserted replaced
24297:a50cdc42798d 24298:229fdfc1ddd9
   510  in h end;
   510  in h end;
   511 
   511 
   512 fun integer_nnf_conv ctxt env =
   512 fun integer_nnf_conv ctxt env =
   513  nnf_conv then_conv literals_conv [HOLogic.conj, HOLogic.disj] [] env (linearize_conv ctxt);
   513  nnf_conv then_conv literals_conv [HOLogic.conj, HOLogic.disj] [] env (linearize_conv ctxt);
   514 
   514 
   515 (* val my_term = ref (@{cterm "NotaHING"}); *)
       
   516 local
   515 local
   517  val pcv = Simplifier.rewrite 
   516  val pcv = Simplifier.rewrite 
   518      (HOL_basic_ss addsimps (simp_thms @ (List.take(ex_simps,4)) 
   517      (HOL_basic_ss addsimps (simp_thms @ (List.take(ex_simps,4)) 
   519                       @ [not_all,all_not_ex, ex_disj_distrib]))
   518                       @ [not_all,all_not_ex, ex_disj_distrib]))
   520  val postcv = Simplifier.rewrite presburger_ss
   519  val postcv = Simplifier.rewrite presburger_ss
   521  fun conv ctxt p = 
   520  fun conv ctxt p = 
   522   let val _ = () (* my_term := p *)
   521   let val _ = ()
   523   in
   522   in
   524    Qelim.gen_qelim_conv pcv postcv pcv (cons o term_of) 
   523    Qelim.gen_qelim_conv pcv postcv pcv (cons o term_of) 
   525       (term_frees (term_of p)) (linearize_conv ctxt) (integer_nnf_conv ctxt) 
   524       (term_frees (term_of p)) (linearize_conv ctxt) (integer_nnf_conv ctxt) 
   526       (cooperex_conv ctxt) p 
   525       (cooperex_conv ctxt) p 
   527   end
   526   end