lemma real_int_of_real[simp]: "real_is_int x \ real_of_int (int_of_real x) = x" by (auto simp add: int_of_real_def real_is_int_def)
lemma real_is_int_add_int_of_real: "real_is_int a \ real_is_int b \ (int_of_real (a+b)) = (int_of_real a) + (int_of_real b)" by (auto simp add: int_of_real_def real_is_int_def)
lemma real_is_int_add[simp]: "real_is_int a \ real_is_int b \ real_is_int (a+b)" apply (subst real_is_int_def2) apply (simp add: real_is_int_add_int_of_real real_int_of_real) done
lemma int_of_real_sub: "real_is_int a \ real_is_int b \ (int_of_real (a-b)) = (int_of_real a) - (int_of_real b)" by (auto simp add: int_of_real_def real_is_int_def)
lemma real_is_int_sub[simp]: "real_is_int a \ real_is_int b \ real_is_int (a-b)" apply (subst real_is_int_def2) apply (simp add: int_of_real_sub real_int_of_real) done
lemma real_is_int_rep: "real_is_int x \ \!(a::int). real_of_int a = x" by (auto simp add: real_is_int_def)
lemma int_of_real_mult: assumes"real_is_int a""real_is_int b" shows"(int_of_real (a*b)) = (int_of_real a) * (int_of_real b)" using assms by (auto simp add: real_is_int_def of_int_mult[symmetric]
simp del: of_int_mult)
lemma real_is_int_mult[simp]: "real_is_int a \ real_is_int b \ real_is_int (a*b)" apply (subst real_is_int_def2) apply (simp add: int_of_real_mult) done
lemma real_is_int_0[simp]: "real_is_int (0::real)" by (simp add: real_is_int_def int_of_real_def)
lemma real_is_int_1[simp]: "real_is_int (1::real)" proof - have"real_is_int (1::real) = real_is_int(real_of_int (1::int))"by auto alsohave"\ = True" by (simp only: real_is_int_real) ultimatelyshow ?thesis by auto qed
lemma real_is_int_n1: "real_is_int (-1::real)" proof - have"real_is_int (-1::real) = real_is_int(real_of_int (-1::int))"by auto alsohave"\ = True" by (simp only: real_is_int_real) ultimatelyshow ?thesis by auto qed
lemma int_of_real_0[simp]: "int_of_real (0::real) = (0::int)" by (simp add: int_of_real_def)
lemma int_of_real_1[simp]: "int_of_real (1::real) = (1::int)" proof - have 1: "(1::real) = real_of_int (1::int)"by auto show ?thesis by (simp only: 1 int_of_real_real) qed
lemma int_of_real_numeral[simp]: "int_of_real (numeral b) = numeral b" unfolding int_of_real_def by simp
lemma int_of_real_neg_numeral[simp]: "int_of_real (- numeral b) = - numeral b" unfolding int_of_real_def by (metis int_of_real_def int_of_real_real of_int_minus of_int_of_nat_eq of_nat_numeral)
lemma int_div_zdiv: "int (a div b) = (int a) div (int b)" by (rule zdiv_int)
lemma int_mod_zmod: "int (a mod b) = (int a) mod (int b)" by (rule zmod_int)
lemma abs_div_2_less: "a \ 0 \ a \ -1 \ \(a::int) div 2\ < \a\" by arith
lemma norm_0_1: "(1::_::numeral) = Numeral1" by auto
lemma add_left_zero: "0 + a = (a::'a::comm_monoid_add)" by simp
lemma add_right_zero: "a + 0 = (a::'a::comm_monoid_add)" by simp
lemma mult_left_one: "1 * a = (a::'a::semiring_1)" by simp
lemma mult_right_one: "a * 1 = (a::'a::semiring_1)" by simp
lemma int_pow_0: "(a::int)^0 = 1" by simp
lemma int_pow_1: "(a::int)^(Numeral1) = a" by simp
lemma one_eq_Numeral1_nring: "(1::'a::numeral) = Numeral1" by simp
lemma one_eq_Numeral1_nat: "(1::nat) = Numeral1" by simp
(* for use with the compute oracle *) lemmas arith = arith_simps rel_simps diff_nat_numeral nat_0
nat_neg_numeral powerarith floatarith not_false_eq_true not_true_eq_false
ML_file \<open>float_arith.ML\<close>
end
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
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.