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