equal
deleted
inserted
replaced
1627 ML_file "Tools/lin_arith.ML" |
1627 ML_file "Tools/lin_arith.ML" |
1628 setup {* Lin_Arith.global_setup *} |
1628 setup {* Lin_Arith.global_setup *} |
1629 declaration {* K Lin_Arith.setup *} |
1629 declaration {* K Lin_Arith.setup *} |
1630 |
1630 |
1631 simproc_setup fast_arith_nat ("(m::nat) < n" | "(m::nat) <= n" | "(m::nat) = n") = |
1631 simproc_setup fast_arith_nat ("(m::nat) < n" | "(m::nat) <= n" | "(m::nat) = n") = |
1632 {* fn _ => fn ss => fn ct => Lin_Arith.simproc ss (term_of ct) *} |
1632 {* fn _ => fn ss => fn ct => Lin_Arith.simproc ss (Thm.term_of ct) *} |
1633 (* Because of this simproc, the arithmetic solver is really only |
1633 (* Because of this simproc, the arithmetic solver is really only |
1634 useful to detect inconsistencies among the premises for subgoals which are |
1634 useful to detect inconsistencies among the premises for subgoals which are |
1635 *not* themselves (in)equalities, because the latter activate |
1635 *not* themselves (in)equalities, because the latter activate |
1636 fast_nat_arith_simproc anyway. However, it seems cheaper to activate the |
1636 fast_nat_arith_simproc anyway. However, it seems cheaper to activate the |
1637 solver all the time rather than add the additional check. *) |
1637 solver all the time rather than add the additional check. *) |