Construction of the hyperreal numbers as an ultraproduct of real sequences #
We define the Hyperreal numbers as quotients of sequences ℕ → ℝ by an ultrafilter. These form
a field, and we prove some of their basic properties.
Note that most of the machinery that is usually defined for the specific purpose of non-standard analysis (infinitesimal and infinite elements, standard parts) has been generalized to other non-archimedean fields. In particular:
ArchimedeanClasscan be used to measure whether an element is infinitesimal (0 < mk x) or infinite (mk x < 0).ArchimedeanClass.stdPartgeneralizes the standard part function to a general ordered field.
Todo #
Use Łoś's Theorem FirstOrder.Language.Ultraproduct.sentence_realize to formalize the transfer
principle on Hyperreal.
Hyperreal numbers on the ultrafilter extending the cofinite filter.
Instances For
The canonical map ℝ → ℝ* as an OrderRingHom.
Instances For
Basic constants #
Construct a hyperreal number from a sequence of real numbers.
Instances For
ω #
A sample infinite hyperreal ω = ⟦(0, 1, 2, 3, ⋯)⟧.
Conventions for notations in identifiers:
- The recommended spelling of
ωin identifiers isomega.
Instances For
A sample infinite hyperreal ω = ⟦(0, 1, 2, 3, ⋯)⟧.
Conventions for notations in identifiers:
- The recommended spelling of
ωin identifiers isomega.
Instances For
ε #
A sample infinitesimal hyperreal ε = ⟦(0, 1, 1/2, 1/3, ⋯)⟧.
Conventions for notations in identifiers:
- The recommended spelling of
εin identifiers isepsilon.
Instances For
A sample infinitesimal hyperreal ε = ⟦(0, 1, 1/2, 1/3, ⋯)⟧.
Conventions for notations in identifiers:
- The recommended spelling of
εin identifiers isepsilon.
Instances For
Some facts about Tendsto #
Alias of Hyperreal.epsilon_lt_of_pos.
Standard part predicate.
Do not use. This is equivalent to the conjunction of 0 ≤ ArchimedeanClass.mk x and
ArchimedeanClass.stdPart x = r.
Instances For
Standard part function: like a "round" to ℝ instead of ℤ
Instances For
A hyperreal number is infinitesimal if its standard part is 0.
Do not use. Write 0 < ArchimedeanClass.mk x instead.
Instances For
A hyperreal number is positive infinite if it is larger than all real numbers.
Do not use. Write 0 < x ∧ ArchimedeanClass.mk x < 0 instead.
Instances For
A hyperreal number is negative infinite if it is smaller than all real numbers.
Do not use. Write x < 0 ∧ ArchimedeanClass.mk x < 0 instead.
Instances For
A hyperreal number is infinite if it is infinite positive or infinite negative.
Do not use. Write ArchimedeanClass.mk x < 0 instead.