equal
deleted
inserted
replaced
502 lemma hypnat_of_nat_minus: |
502 lemma hypnat_of_nat_minus: |
503 "hypnat_of_nat ((j::nat) - k) = hypnat_of_nat j - hypnat_of_nat k" |
503 "hypnat_of_nat ((j::nat) - k) = hypnat_of_nat j - hypnat_of_nat k" |
504 by (simp add: hypnat_of_nat_def split: nat_diff_split hypnat_diff_split) |
504 by (simp add: hypnat_of_nat_def split: nat_diff_split hypnat_diff_split) |
505 |
505 |
506 |
506 |
507 subsection{*Existence of an Infinite Hypernatural Number*} |
507 subsection{*Existence of an infinite hypernatural number*} |
508 |
508 |
509 lemma hypnat_omega: "hypnatrel``{%n::nat. n} \<in> hypnat" |
509 lemma hypnat_omega: "hypnatrel``{%n::nat. n} \<in> hypnat" |
510 by auto |
510 by auto |
511 |
511 |
512 lemma Rep_hypnat_omega: "Rep_hypnat(whn) \<in> hypnat" |
512 lemma Rep_hypnat_omega: "Rep_hypnat(whn) \<in> hypnat" |
515 text{*Existence of infinite number not corresponding to any natural number |
515 text{*Existence of infinite number not corresponding to any natural number |
516 follows because member @{term FreeUltrafilterNat} is not finite. |
516 follows because member @{term FreeUltrafilterNat} is not finite. |
517 See @{text HyperDef.thy} for similar argument.*} |
517 See @{text HyperDef.thy} for similar argument.*} |
518 |
518 |
519 |
519 |
520 subsection{*Properties of the set @{term Nats} of Embedded Natural Numbers*} |
520 subsection{*Properties of the set of embedded natural numbers*} |
521 |
521 |
522 lemma of_nat_eq_add [rule_format]: |
522 lemma of_nat_eq_add [rule_format]: |
523 "\<forall>d::hypnat. of_nat m = of_nat n + d --> d \<in> range of_nat" |
523 "\<forall>d::hypnat. of_nat m = of_nat n + d --> d \<in> range of_nat" |
524 apply (induct n) |
524 apply (induct n) |
525 apply (auto simp add: add_assoc) |
525 apply (auto simp add: add_assoc) |
589 |
589 |
590 lemma HNatInfinite_not_Nats_iff: "(x \<in> HNatInfinite) = (x \<notin> Nats)" |
590 lemma HNatInfinite_not_Nats_iff: "(x \<in> HNatInfinite) = (x \<notin> Nats)" |
591 by (simp add: HNatInfinite_def) |
591 by (simp add: HNatInfinite_def) |
592 |
592 |
593 |
593 |
594 subsection{*Alternative Characterization of the Set of Infinite Hypernaturals: |
594 subsection{*Alternative characterization of the set of infinite hypernaturals*} |
595 @{term "HNatInfinite = {N. \<forall>n \<in> Nats. n < N}"}*} |
595 |
|
596 text{* @{term "HNatInfinite = {N. \<forall>n \<in> Nats. n < N}"}*} |
596 |
597 |
597 (*??delete? similar reasoning in hypnat_omega_gt_SHNat above*) |
598 (*??delete? similar reasoning in hypnat_omega_gt_SHNat above*) |
598 lemma HNatInfinite_FreeUltrafilterNat_lemma: |
599 lemma HNatInfinite_FreeUltrafilterNat_lemma: |
599 "\<forall>N::nat. {n. f n \<noteq> N} \<in> FreeUltrafilterNat |
600 "\<forall>N::nat. {n. f n \<noteq> N} \<in> FreeUltrafilterNat |
600 ==> {n. N < f n} \<in> FreeUltrafilterNat" |
601 ==> {n. N < f n} \<in> FreeUltrafilterNat" |