diff --git a/src/metric-spaces/dense-subsets-metric-spaces.lagda.md b/src/metric-spaces/dense-subsets-metric-spaces.lagda.md
index 307f182990..02ba31f63f 100644
--- a/src/metric-spaces/dense-subsets-metric-spaces.lagda.md
+++ b/src/metric-spaces/dense-subsets-metric-spaces.lagda.md
@@ -46,6 +46,24 @@ module _
is-dense-subset-Metric-Space : UU (l1 ⊔ l2 ⊔ l3)
is-dense-subset-Metric-Space = type-Prop is-dense-prop-subset-Metric-Space
+
+dense-subset-Metric-Space :
+ {l1 l2 : Level} (l3 : Level) (X : Metric-Space l1 l2) → UU (l1 ⊔ l2 ⊔ lsuc l3)
+dense-subset-Metric-Space l3 X =
+ type-subtype (is-dense-prop-subset-Metric-Space {l3 = l3} X)
+
+module _
+ {l1 l2 l3 : Level}
+ (X : Metric-Space l1 l2)
+ (S : dense-subset-Metric-Space l3 X)
+ where
+
+ subset-dense-subset-Metric-Space : subset-Metric-Space l3 X
+ subset-dense-subset-Metric-Space = pr1 S
+
+ is-dense-subset-dense-subset-Metric-Space :
+ is-dense-subset-Metric-Space X subset-dense-subset-Metric-Space
+ is-dense-subset-dense-subset-Metric-Space = pr2 S
```
## Properties
diff --git a/src/real-numbers.lagda.md b/src/real-numbers.lagda.md
index 8210a60b2e..bf267d7031 100644
--- a/src/real-numbers.lagda.md
+++ b/src/real-numbers.lagda.md
@@ -24,6 +24,7 @@ open import real-numbers.cauchy-completeness-dedekind-real-numbers public
open import real-numbers.cauchy-sequences-real-numbers public
open import real-numbers.closed-intervals-real-numbers public
open import real-numbers.dedekind-real-numbers public
+open import real-numbers.dense-subsets-real-numbers public
open import real-numbers.difference-real-numbers public
open import real-numbers.distance-real-numbers public
open import real-numbers.enclosing-closed-rational-intervals-real-numbers public
@@ -87,6 +88,7 @@ open import real-numbers.positive-real-numbers public
open import real-numbers.powers-real-numbers public
open import real-numbers.proper-closed-intervals-real-numbers public
open import real-numbers.raising-universe-levels-real-numbers public
+open import real-numbers.rational-approximates-of-real-numbers public
open import real-numbers.rational-lower-dedekind-real-numbers public
open import real-numbers.rational-real-numbers public
open import real-numbers.rational-upper-dedekind-real-numbers public
diff --git a/src/real-numbers/dense-subsets-real-numbers.lagda.md b/src/real-numbers/dense-subsets-real-numbers.lagda.md
new file mode 100644
index 0000000000..8245529a68
--- /dev/null
+++ b/src/real-numbers/dense-subsets-real-numbers.lagda.md
@@ -0,0 +1,416 @@
+# Dense subsets of the real numbers
+
+```agda
+module real-numbers.dense-subsets-real-numbers where
+```
+
+Imports
+
+```agda
+open import elementary-number-theory.addition-positive-rational-numbers
+open import elementary-number-theory.minimum-positive-rational-numbers
+open import elementary-number-theory.positive-rational-numbers
+open import elementary-number-theory.strict-inequality-rational-numbers
+
+open import foundation.action-on-identifications-functions
+open import foundation.binary-transport
+open import foundation.cartesian-product-types
+open import foundation.conjunction
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.identity-types
+open import foundation.intersections-subtypes
+open import foundation.propositional-truncations
+open import foundation.subtypes
+open import foundation.transport-along-identifications
+open import foundation.universe-levels
+
+open import logic.functoriality-existential-quantification
+
+open import metric-spaces.dense-subsets-metric-spaces
+
+open import order-theory.large-posets
+
+open import real-numbers.addition-positive-real-numbers
+open import real-numbers.addition-real-numbers
+open import real-numbers.dedekind-real-numbers
+open import real-numbers.difference-real-numbers
+open import real-numbers.inequalities-addition-and-subtraction-real-numbers
+open import real-numbers.inequality-real-numbers
+open import real-numbers.metric-space-of-real-numbers
+open import real-numbers.negation-real-numbers
+open import real-numbers.positive-real-numbers
+open import real-numbers.raising-universe-levels-real-numbers
+open import real-numbers.rational-approximates-of-real-numbers
+open import real-numbers.rational-real-numbers
+open import real-numbers.similarity-real-numbers
+open import real-numbers.strict-inequalities-addition-and-subtraction-real-numbers
+open import real-numbers.strict-inequality-real-numbers
+open import real-numbers.subsets-real-numbers
+```
+
+
+
+## Idea
+
+A {{#concept "dense subset" Disambiguation="of ℝ" Agda=dense-subset-ℝ}} of the
+[real numbers](real-numbers.dedekind-real-numbers.md) `ℝ` is a
+[dense subset](metric-spaces.dense-subsets-metric-spaces.md) of the
+[metric space of real numbers](real-numbers.metric-space-of-real-numbers.md),
+which means that it is a [subset](real-numbers.subsets-real-numbers.md) `S ⊆ ℝ`
+such that for any `x : ℝ` and any
+[positive rational](elementary-number-theory.positive-rational-numbers.md) `ε`,
+there is a `y` in an `ε`-neighborhood of `X` that is also in `S`.
+
+## Definition
+
+```agda
+is-dense-subset-ℝ : {l1 l2 : Level} → subset-ℝ l1 l2 → UU (l1 ⊔ lsuc l2)
+is-dense-subset-ℝ = is-dense-subset-Metric-Space (metric-space-ℝ _)
+
+dense-subset-ℝ : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
+dense-subset-ℝ l1 l2 = dense-subset-Metric-Space l1 (metric-space-ℝ l2)
+
+subset-dense-subset-ℝ : {l1 l2 : Level} → dense-subset-ℝ l1 l2 → subset-ℝ l1 l2
+subset-dense-subset-ℝ = pr1
+
+is-dense-subset-dense-subset-ℝ :
+ {l1 l2 : Level} (S : dense-subset-ℝ l1 l2) (x : ℝ l2) (ε : ℚ⁺) →
+ intersect-subtype (neighborhood-prop-ℝ l2 ε x) (subset-dense-subset-ℝ S)
+is-dense-subset-dense-subset-ℝ = pr2
+
+type-dense-subset-ℝ : {l1 l2 : Level} → dense-subset-ℝ l1 l2 → UU (l1 ⊔ lsuc l2)
+type-dense-subset-ℝ S = type-subtype (subset-dense-subset-ℝ S)
+
+inclusion-dense-subset-ℝ :
+ {l1 l2 : Level} (S : dense-subset-ℝ l1 l2) →
+ type-dense-subset-ℝ S → ℝ l2
+inclusion-dense-subset-ℝ S = inclusion-subtype (subset-dense-subset-ℝ S)
+
+is-in-dense-subset-ℝ : {l1 l2 : Level} → dense-subset-ℝ l1 l2 → ℝ l2 → UU l1
+is-in-dense-subset-ℝ S =
+ is-in-subtype (subset-dense-subset-ℝ S)
+```
+
+## Properties
+
+### The rational reals are dense in `ℝ`
+
+```agda
+abstract
+ is-dense-rational-real-ℝ :
+ (l : Level) → is-dense-subset-ℝ (subtype-rational-real {l})
+ is-dense-rational-real-ℝ l x ε =
+ map-exists
+ ( _)
+ ( raise-real-ℚ l)
+ ( λ q Nεxq → (Nεxq , q , is-rational-raise-real-ℚ l q))
+ ( exists-rational-approximate-ℝ x ε)
+
+dense-subset-rational-real-ℝ :
+ (l : Level) → dense-subset-ℝ l l
+dense-subset-rational-real-ℝ l =
+ ( subtype-rational-real , is-dense-rational-real-ℝ l)
+```
+
+### Given a dense subset `S ⊆ R`, two reals `x < y`, and positive rationals `δx`, `δy`, there are `x' < y'` with `x' ∈ S`, `y' ∈ S`, `x'` in a `δx`-neighborhood of `x` and correspondingly for `y`
+
+```agda
+module _
+ {l1 l2 : Level}
+ (S : dense-subset-ℝ l1 l2)
+ where
+
+ abstract
+ exist-close-le-elements-dense-subset-ℝ :
+ {x y : ℝ l2} (δx δy : ℚ⁺) → le-ℝ x y →
+ exists
+ ( type-dense-subset-ℝ S × type-dense-subset-ℝ S)
+ ( λ ((x' , x'∈S) , (y' , y'∈S)) →
+ ( le-prop-ℝ x' y') ∧
+ ( neighborhood-prop-ℝ l2 δx x x') ∧
+ ( neighborhood-prop-ℝ l2 δy y y'))
+ exist-close-le-elements-dense-subset-ℝ {x} {y} δx δy xImports
+
+```agda
+open import elementary-number-theory.addition-positive-rational-numbers
+open import elementary-number-theory.addition-rational-numbers
+open import elementary-number-theory.positive-rational-numbers
+open import elementary-number-theory.rational-numbers
+open import elementary-number-theory.strict-inequality-rational-numbers
+
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.propositional-truncations
+open import foundation.raising-universe-levels
+open import foundation.universe-levels
+
+open import metric-spaces.dense-subsets-metric-spaces
+
+open import real-numbers.arithmetically-located-dedekind-cuts
+open import real-numbers.dedekind-real-numbers
+open import real-numbers.metric-space-of-real-numbers
+open import real-numbers.rational-real-numbers
+```
+
+
+
+## Idea
+
+A
+{{#concept "rational approximate" Disambiguation="of a real number" Agda=rational-approximate-ℝ}}
+of a [real number](real-numbers.dedekind-real-numbers.md) `x` to some
+[positive rational](elementary-number-theory.positive-rational-numbers.md) `ε`
+is a [rational number](elementary-number-theory.rational-numbers.md) whose
+[canonical embedding](real-numbers.rational-real-numbers.md) in the real numbers
+is within an `ε`-neighborhood of `x` in the
+[metric space of real numbers](real-numbers.metric-space-of-real-numbers.md).
+
+## Definition
+
+```agda
+rational-approximate-ℝ : {l : Level} → ℝ l → ℚ⁺ → UU l
+rational-approximate-ℝ {l} x ε =
+ Σ ℚ (λ q → neighborhood-ℝ l ε x (raise-real-ℚ l q))
+```
+
+## Properties
+
+### Any real number can be approximated to any positive rational `ε`
+
+```agda
+abstract opaque
+ unfolding neighborhood-ℝ real-ℚ
+
+ exists-rational-approximate-ℝ :
+ {l : Level} (x : ℝ l) (ε : ℚ⁺) →
+ exists ℚ (λ q → neighborhood-prop-ℝ l ε x (raise-real-ℚ l q))
+ exists-rational-approximate-ℝ {l} x ε⁺@(ε , _) =
+ let
+ open
+ do-syntax-trunc-Prop
+ ( ∃ ℚ (λ q → neighborhood-prop-ℝ l ε⁺ x (raise-real-ℚ l q)))
+ in do
+ ((p , q) , q