lemma SComplex_hcomplex_of_complex_image: "[∃x. x ∈ P; P ≤ SComplex]==>∃Q. P = hcomplex_of_complex ` Q" by (metis Standard_def subset_imageE)
lemma SComplex_SReal_dense: "[x ∈ SComplex; y ∈ SComplex; hcmod x < hcmod y ]==>∃r ∈ Reals. hcmod x< r ∧ r < hcmod y" by (simp add: SReal_dense SReal_hcmod_SComplex)
lemma approx_hcmod_add_hcmod: "u ≈ 0 ==> hcmod(x + u) ≈ hcmod x" using Infinitesimal_hcmod_add_diff approx_def by blast
subsection‹Zero is the Only Infinitesimal Complex Number›
lemma Infinitesimal_less_SComplex: "[x ∈ SComplex; y ∈ Infinitesimal; 0 < hcmod x]==> hcmod y < hcmod x" by (auto intro: Infinitesimal_less_SReal SReal_hcmod_SComplex simp add: Infinitesimal_hcmod_iff)
lemma SComplex_Int_Infinitesimal_zero: "SComplex Int Infinitesimal = {0}" by (auto simp add: Standard_def Infinitesimal_hcmod_iff)
lemma SComplex_Infinitesimal_zero: "[x ∈ SComplex; x ∈ Infinitesimal]==> x = 0" using SComplex_iff by auto
lemma SComplex_HFinite_diff_Infinitesimal: "[x ∈ SComplex; x ≠ 0]==> x ∈ HFinite - Infinitesimal" using SComplex_iff by auto
lemma numeral_not_Infinitesimal [simp]: "numeral w ≠ (0::hcomplex) ==> (numeral w::hcomplex) ∉ Infinitesimal" by (fast dest: Standard_numeral [THEN SComplex_Infinitesimal_zero])
lemma approx_SComplex_not_zero: "[y ∈ SComplex; x ≈ y; y≠ 0]==> x ≠ 0" by (auto dest: SComplex_Infinitesimal_zero approx_sym [THEN mem_infmal_iff [THEN iffD2]])
lemma SComplex_approx_iff: "[x ∈ SComplex; y ∈ SComplex]==> (x ≈ y) = (x = y)" by (auto simp add: Standard_def)
lemma approx_unique_complex: "[r ∈ SComplex; s ∈ SComplex; r ≈ x; s ≈ x]==> r = s" by (blast intro: SComplex_approx_iff [THEN iffD1] approx_trans2)
subsection‹Properties of 🍋‹hRe›, 🍋‹hIm›and🍋‹HComplex›\<close>
lemma abs_hRe_le_hcmod: "∧x. ∣hRe x∣≤ hcmod x" by transfer (rule abs_Re_le_cmod)
lemma abs_hIm_le_hcmod: "∧x. ∣hIm x∣≤ hcmod x" by transfer (rule abs_Im_le_cmod)
lemma Infinitesimal_hRe: "x ∈ Infinitesimal ==> hRe x ∈ Infinitesimal" using Infinitesimal_hcmod_iff abs_hRe_le_hcmod hrabs_le_Infinitesimal by blast
lemma Infinitesimal_hIm: "x ∈ Infinitesimal ==> hIm x ∈ Infinitesimal" using Infinitesimal_hcmod_iff abs_hIm_le_hcmod hrabs_le_Infinitesimal by blast
lemma Infinitesimal_HComplex: assumes x: "x ∈ Infinitesimal"and y: "y ∈ Infinitesimal" shows"HComplex x y ∈ Infinitesimal" proof - have"hcmod (HComplex 0 y) ∈ Infinitesimal" by (simp add: hcmod_i y) moreoverhave"hcmod (hcomplex_of_hypreal x) ∈ Infinitesimal" using Infinitesimal_hcmod_iff Infinitesimal_of_hypreal_iff x by blast ultimatelyhave"hcmod (HComplex x y) ∈ Infinitesimal" by (metis Infinitesimal_add Infinitesimal_hcmod_iff add.right_neutral hcomplex_of_hypreal_add_HComplex) thenshow ?thesis by (simp add: Infinitesimal_hnorm_iff) qed
lemma hcomplex_Infinitesimal_iff: "(x ∈ Infinitesimal) ⟷ (hRe x ∈ Infinitesimal ∧ hIm x ∈ Infinitesimal)" using Infinitesimal_HComplex Infinitesimal_hIm Infinitesimal_hRe by fastforce
lemma hRe_diff [simp]: "∧x y. hRe (x - y) = hRe x - hRe y" by transfer simp
lemma hIm_diff [simp]: "∧x y. hIm (x - y) = hIm x - hIm y" by transfer simp
lemma approx_hRe: "x ≈ y ==> hRe x ≈ hRe y" unfolding approx_def by (drule Infinitesimal_hRe) simp
lemma approx_hIm: "x ≈ y ==> hIm x ≈ hIm y" unfolding approx_def by (drule Infinitesimal_hIm) simp
lemma approx_HComplex: "[a ≈ b; c ≈ d]==> HComplex a c ≈ HComplex b d" unfolding approx_def by (simp add: Infinitesimal_HComplex)
lemma hcomplex_approx_iff: "(x ≈ y) = (hRe x ≈ hRe y ∧ hIm x ≈ hIm y)" unfolding approx_def by (simp add: hcomplex_Infinitesimal_iff)
lemma HFinite_hRe: "x ∈ HFinite ==> hRe x ∈ HFinite" using HFinite_bounded_hcmod abs_ge_zero abs_hRe_le_hcmod by blast
lemma HFinite_hIm: "x ∈ HFinite ==> hIm x ∈ HFinite" using HFinite_bounded_hcmod abs_ge_zero abs_hIm_le_hcmod by blast
lemma HFinite_HComplex: assumes"x ∈ HFinite""y ∈ HFinite" shows"HComplex x y ∈ HFinite" proof - have"HComplex x 0 ∈ HFinite""HComplex 0 y ∈ HFinite" using HFinite_hcmod_iff assms hcmod_i by fastforce+ thenhave"HComplex x 0 + HComplex 0 y ∈ HFinite" using HFinite_add by blast thenshow ?thesis by simp qed
lemma hcomplex_HFinite_iff: "(x ∈ HFinite) = (hRe x ∈ HFinite ∧ hIm x ∈ HFinite)" using HFinite_HComplex HFinite_hIm HFinite_hRe by fastforce
lemma hcomplex_HInfinite_iff: "(x ∈ HInfinite) = (hRe x ∈ HInfinite ∨ hIm x ∈ HInfinite)" by (simp add: HInfinite_HFinite_iff hcomplex_HFinite_iff)
lemma hcomplex_of_hypreal_approx_iff [simp]: "(hcomplex_of_hypreal x ≈ hcomplex_of_hypreal z) = (x ≈ z)" by (simp add: hcomplex_approx_iff)
(* Here we go - easy proof now!! *) lemma stc_part_Ex: assumes"x ∈ HFinite" shows"∃t ∈ SComplex. x ≈ t" proof - let ?t = "HComplex (st (hRe x)) (st (hIm x))" have"?t ∈ SComplex" using HFinite_hIm HFinite_hRe Reals_eq_Standard assms st_SReal by auto moreoverhave"x ≈ ?t" by (simp add: HFinite_hIm HFinite_hRe assms hcomplex_approx_iff st_HFinite st_eq_approx) ultimatelyshow ?thesis .. qed
lemma stc_part_Ex1: "x ∈ HFinite ==>∃!t. t ∈ SComplex ∧ x ≈ t" using approx_sym approx_unique_complex stc_part_Ex by blast
subsection‹Theorems About Monads›
lemma monad_zero_hcmod_iff: "(x ∈ monad 0) = (hcmod x ∈ monad 0)" by (simp add: Infinitesimal_monad_zero_iff [symmetric] Infinitesimal_hcmod_iff)
subsection‹Theorems About Standard Part›
lemma stc_approx_self: "x ∈ HFinite ==> stc x ≈ x" unfolding stc_def by (metis (no_types, lifting) approx_reorient someI_ex stc_part_Ex1)
lemma stc_SComplex: "x ∈ HFinite ==> stc x ∈ SComplex" unfolding stc_def by (metis (no_types, lifting) SComplex_iff approx_sym someI_ex stc_part_Ex)
lemma stc_HFinite: "x ∈ HFinite ==> stc x ∈ HFinite" by (erule stc_SComplex [THEN Standard_subset_HFinite [THEN subsetD]])
lemma stc_unique: "[y ∈ SComplex; y ≈ x]==> stc x = y" by (metis SComplex_approx_iff SComplex_iff approx_monad_iff approx_star_of_HFinite stc_SComplex stc_approx_self)
lemma stc_SComplex_eq [simp]: "x ∈ SComplex ==> stc x = x" by (simp add: stc_unique)
lemma stc_eq_approx: "[x ∈ HFinite; y ∈ HFinite; stc x = stc y]==> x ≈ y" by (auto dest!: stc_approx_self elim!: approx_trans3)
lemma approx_stc_eq: "[x ∈ HFinite; y ∈ HFinite; x ≈ y]==> stc x = stc y" by (metis approx_sym approx_trans3 stc_part_Ex1 stc_unique)
lemma stc_eq_approx_iff: "[x ∈ HFinite; y ∈ HFinite]==> (x ≈ y) = (stc x = stc y)" by (blast intro: approx_stc_eq stc_eq_approx)
lemma stc_Infinitesimal_add_SComplex: "[x ∈ SComplex; e ∈ Infinitesimal]==> stc(x + e) = x" using Infinitesimal_add_approx_self stc_unique by blast
lemma stc_Infinitesimal_add_SComplex2: "[x ∈ SComplex; e ∈ Infinitesimal]==> stc(e + x) = x" using Infinitesimal_add_approx_self2 stc_unique by blast
lemma Infinitesimal_hcnj_iff [simp]: "(hcnj z ∈ Infinitesimal) ⟷ (z ∈ Infinitesimal)" by (simp add: Infinitesimal_hcmod_iff)
end
Messung V0.5 in Prozent
¤ 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.0.18Bemerkung:
(vorverarbeitet am 2026-04-26)
¤
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 und die Messung sind noch experimentell.