A special simproc for the instantiation of the generic linear arithmetic package for int.
*)
signature INT_ARITH = sig val zero_one_idom_simproc: simproc end
structure Int_Arith : INT_ARITH = struct
(* Update parameters of arithmetic prover *)
(* reduce contradictory =/</<= to False *)
(* Evaluation of terms of the form "m R n" where R is one of "=", "<=" or "<", and m and n are ground terms over rings (roughly speaking). That is, m and n consist only of 1s combined with "+", "-" and "*".
*)
val zero_to_of_int_zero_simproc =
\<^simproc_setup>\<open>passive zero_to_of_int_zero ("0::'a::ring") =
\<open>fn _ => fn _ => fn ct => letval T = Thm.ctyp_of_cterm ct in if Thm.typ_of T = \<^Type>\<open>int\<close> then NONE else SOME \<^instantiate>\<open>'a = T in lemma "0 \ of_int 0" by simp\ end\<close>\<close>;
val one_to_of_int_one_simproc =
\<^simproc_setup>\<open>passive one_to_of_int_one ("1::'a::ring_1") =
\<open>fn _ => fn _ => fn ct => letval T = Thm.ctyp_of_cterm ct in if Thm.typ_of T = \<^Type>\<open>int\<close> then NONE else SOME \<^instantiate>\<open>'a = T in lemma "1 \ of_int 1" by simp\ end\<close>\<close>;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.