diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index 0bf9402bb1..f46d7d8dea 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -86,15 +86,19 @@ open import metric-spaces.metric-space-of-short-functions-metric-spaces public open import metric-spaces.metric-spaces public open import metric-spaces.metric-structures public open import metric-spaces.monotonic-premetric-structures public +open import metric-spaces.monotonic-rational-neighborhoods public open import metric-spaces.ordering-premetric-structures public open import metric-spaces.precategory-of-metric-spaces-and-functions public open import metric-spaces.precategory-of-metric-spaces-and-isometries public open import metric-spaces.precategory-of-metric-spaces-and-short-functions public open import metric-spaces.premetric-spaces public +open import metric-spaces.premetric-spaces-WIP public open import metric-spaces.premetric-structures public open import metric-spaces.pseudometric-spaces public open import metric-spaces.pseudometric-structures public +open import metric-spaces.rational-neighborhoods public open import metric-spaces.reflexive-premetric-structures public +open import metric-spaces.reflexive-rational-neighborhoods public open import metric-spaces.saturated-complete-metric-spaces public open import metric-spaces.saturated-metric-spaces public open import metric-spaces.sequences-metric-spaces public @@ -102,9 +106,12 @@ open import metric-spaces.sequences-premetric-spaces public open import metric-spaces.sequences-pseudometric-spaces public open import metric-spaces.short-functions-metric-spaces public open import metric-spaces.short-functions-premetric-spaces public +open import metric-spaces.similarity-of-elements-premetric-spaces public open import metric-spaces.subspaces-metric-spaces public open import metric-spaces.symmetric-premetric-structures public +open import metric-spaces.symmetric-rational-neighborhoods public open import metric-spaces.triangular-premetric-structures public +open import metric-spaces.triangular-rational-neighborhoods public open import metric-spaces.uniformly-continuous-functions-metric-spaces public open import metric-spaces.uniformly-continuous-functions-premetric-spaces public ``` diff --git a/src/metric-spaces/monotonic-rational-neighborhoods.lagda.md b/src/metric-spaces/monotonic-rational-neighborhoods.lagda.md new file mode 100644 index 0000000000..e1f53e6439 --- /dev/null +++ b/src/metric-spaces/monotonic-rational-neighborhoods.lagda.md @@ -0,0 +1,62 @@ +# Monotonic rational neighborhoods on types + +```agda +module metric-spaces.monotonic-rational-neighborhoods where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.propositions +open import foundation.universe-levels + +open import metric-spaces.rational-neighborhoods +``` + +
+ +## Idea + +A [rational neighborhood relation](metric-spaces.rational-neighborhoods.md) is +{{#concept "monotonic" Disambiguation="premetric" Agda=is-monotonic-Rational-Neighborhood-Relation}} +if any `d₁`-neighborhoods are `d₂`-neighborhoods for `d₁ < d₂`. + +## Definitions + +### The property of being a monotonic premetric structure + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (B : Rational-Neighborhood-Relation l2 A) + where + + is-monotonic-prop-Rational-Neighborhood-Relation : Prop (l1 ⊔ l2) + is-monotonic-prop-Rational-Neighborhood-Relation = + Π-Prop + ( A) + ( λ x → + ( Π-Prop + ( A) + ( λ y → + ( Π-Prop + ( ℚ⁺) + ( λ d₁ → + ( Π-Prop + ( ℚ⁺) + ( λ d₂ → + ( Π-Prop + ( le-ℚ⁺ d₁ d₂) + ( λ H → + hom-Prop (B d₁ x y) (B d₂ x y)))))))))) + + is-monotonic-Rational-Neighborhood-Relation : UU (l1 ⊔ l2) + is-monotonic-Rational-Neighborhood-Relation = + type-Prop is-monotonic-prop-Rational-Neighborhood-Relation + + is-prop-is-monotonic-Rational-Neighborhood-Relation : + is-prop is-monotonic-Rational-Neighborhood-Relation + is-prop-is-monotonic-Rational-Neighborhood-Relation = + is-prop-type-Prop is-monotonic-prop-Rational-Neighborhood-Relation +``` diff --git a/src/metric-spaces/premetric-spaces-WIP.lagda.md b/src/metric-spaces/premetric-spaces-WIP.lagda.md new file mode 100644 index 0000000000..c13c35f20b --- /dev/null +++ b/src/metric-spaces/premetric-spaces-WIP.lagda.md @@ -0,0 +1,184 @@ +# Premetric spaces (WIP) + +```agda +module metric-spaces.premetric-spaces-WIP where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.cartesian-product-types +open import foundation.dependent-pair-types +open import foundation.empty-types +open import foundation.equivalences +open import foundation.existential-quantification +open import foundation.function-extensionality +open import foundation.function-types +open import foundation.fundamental-theorem-of-identity-types +open import foundation.identity-types +open import foundation.logical-equivalences +open import foundation.negation +open import foundation.propositional-extensionality +open import foundation.propositions +open import foundation.sets +open import foundation.subtypes +open import foundation.torsorial-type-families +open import foundation.transport-along-identifications +open import foundation.univalence +open import foundation.universe-levels + +open import metric-spaces.monotonic-rational-neighborhoods +open import metric-spaces.rational-neighborhoods +open import metric-spaces.reflexive-rational-neighborhoods +open import metric-spaces.symmetric-rational-neighborhoods +open import metric-spaces.triangular-rational-neighborhoods +``` + +
+ +## Idea + +A {{#concept "premetric space" Agda=Premetric-Space-WIP}} is a type equipped +with [reflexive](metric-spaces.reflexive-rational-neighborhoods.md), +[symmetric](metric-spaces.symmetric-rational-neighborhoods.md) and +[triangular](metric-spaces.triangular-rational-neighborhoods.md) +[rational neighborhood relation](metric-spaces.rational-neighborhoods.md) + +Given a premetric `B` on `A` and some positive rational number `d : ℚ⁺` such +that `B d x y` holds for some pair of points `x y : A`, we interpret `d` as an +{{#concept "upper bound" Disambiguation="on distance with respect to a premetric structure"}} +on the distance between `x` and `y` with respect to the premetric. + +## Definitions + +### The property of being a premetric structure + +```agda +module _ + {l1 : Level} (A : UU l1) {l2 : Level} + (B : Rational-Neighborhood-Relation l2 A) + where + + is-premetric-prop-Rational-Neighborhood-Relation : Prop (l1 ⊔ l2) + is-premetric-prop-Rational-Neighborhood-Relation = + product-Prop + ( is-reflexive-prop-Rational-Neighborhood-Relation B) + ( product-Prop + ( is-symmetric-prop-Rational-Neighborhood-Relation B) + ( is-triangular-prop-Rational-Neighborhood-Relation B)) + + is-premetric-Rational-Neighborhood-Relation : UU (l1 ⊔ l2) + is-premetric-Rational-Neighborhood-Relation = + type-Prop is-premetric-prop-Rational-Neighborhood-Relation + + is-prop-is-premetric-Rational-Neighborhood-Relation : + is-prop is-premetric-Rational-Neighborhood-Relation + is-prop-is-premetric-Rational-Neighborhood-Relation = + is-prop-type-Prop (is-premetric-prop-Rational-Neighborhood-Relation) + +Premetric-Structure : + {l1 : Level} (l2 : Level) (A : UU l1) → UU (l1 ⊔ lsuc l2) +Premetric-Structure l2 A = + type-subtype (is-premetric-prop-Rational-Neighborhood-Relation A {l2}) +``` + +### Premetric spaces + +```agda +Premetric-Space-WIP : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2) +Premetric-Space-WIP l1 l2 = Σ (UU l1) (Premetric-Structure l2) + +module _ + {l1 l2 : Level} (A : Premetric-Space-WIP l1 l2) + where + + type-Premetric-Space-WIP : UU l1 + type-Premetric-Space-WIP = pr1 A + + structure-Premetric-Space-WIP : + Premetric-Structure l2 type-Premetric-Space-WIP + structure-Premetric-Space-WIP = pr2 A + + neighborhood-prop-Premetric-Space-WIP : + Rational-Neighborhood-Relation l2 type-Premetric-Space-WIP + neighborhood-prop-Premetric-Space-WIP = + pr1 structure-Premetric-Space-WIP + + neighborhood-Premetric-Space-WIP : + ℚ⁺ → Relation l2 type-Premetric-Space-WIP + neighborhood-Premetric-Space-WIP = + neighborhood-Rational-Neighborhood-Relation + neighborhood-prop-Premetric-Space-WIP + + is-prop-neighborhood-Premetric-Space-WIP : + (d : ℚ⁺) (x y : type-Premetric-Space-WIP) → + is-prop (neighborhood-Premetric-Space-WIP d x y) + is-prop-neighborhood-Premetric-Space-WIP = + is-prop-neighborhood-Rational-Neighborhood-Relation + neighborhood-prop-Premetric-Space-WIP + + is-upper-bound-dist-prop-Premetric-Space-WIP : + (x y : type-Premetric-Space-WIP) → ℚ⁺ → Prop l2 + is-upper-bound-dist-prop-Premetric-Space-WIP x y d = + neighborhood-prop-Premetric-Space-WIP d x y + + is-upper-bound-dist-Premetric-Space-WIP : + (x y : type-Premetric-Space-WIP) → ℚ⁺ → UU l2 + is-upper-bound-dist-Premetric-Space-WIP x y d = + neighborhood-Premetric-Space-WIP d x y + + is-prop-is-upper-bound-dist-Premetric-Space-WIP : + (x y : type-Premetric-Space-WIP) (d : ℚ⁺) → + is-prop (is-upper-bound-dist-Premetric-Space-WIP x y d) + is-prop-is-upper-bound-dist-Premetric-Space-WIP x y d = + is-prop-neighborhood-Premetric-Space-WIP d x y + + is-premetric-neighborhood-Premetric-Space-WIP : + is-premetric-Rational-Neighborhood-Relation + type-Premetric-Space-WIP + neighborhood-prop-Premetric-Space-WIP + is-premetric-neighborhood-Premetric-Space-WIP = + pr2 structure-Premetric-Space-WIP + + refl-neighborhood-Premetric-Space-WIP : + (d : ℚ⁺) (x : type-Premetric-Space-WIP) → + neighborhood-Premetric-Space-WIP d x x + refl-neighborhood-Premetric-Space-WIP = + pr1 is-premetric-neighborhood-Premetric-Space-WIP + + symmetric-neighborhood-Premetric-Space-WIP : + (d : ℚ⁺) (x y : type-Premetric-Space-WIP) → + neighborhood-Premetric-Space-WIP d x y → + neighborhood-Premetric-Space-WIP d y x + symmetric-neighborhood-Premetric-Space-WIP = + pr1 (pr2 is-premetric-neighborhood-Premetric-Space-WIP) + + inv-neighborhood-Premetric-Space-WIP : + {d : ℚ⁺} {x y : type-Premetric-Space-WIP} → + neighborhood-Premetric-Space-WIP d x y → + neighborhood-Premetric-Space-WIP d y x + inv-neighborhood-Premetric-Space-WIP {d} {x} {y} = + symmetric-neighborhood-Premetric-Space-WIP d x y + + triangular-neighborhood-Premetric-Space-WIP : + (x y z : type-Premetric-Space-WIP) (d₁ d₂ : ℚ⁺) → + neighborhood-Premetric-Space-WIP d₂ y z → + neighborhood-Premetric-Space-WIP d₁ x y → + neighborhood-Premetric-Space-WIP (d₁ +ℚ⁺ d₂) x z + triangular-neighborhood-Premetric-Space-WIP = + pr2 (pr2 is-premetric-neighborhood-Premetric-Space-WIP) + + monotonic-neighborhood-Premetric-Space-WIP : + (x y : type-Premetric-Space-WIP) (d₁ d₂ : ℚ⁺) → + le-ℚ⁺ d₁ d₂ → + neighborhood-Premetric-Space-WIP d₁ x y → + neighborhood-Premetric-Space-WIP d₂ x y + monotonic-neighborhood-Premetric-Space-WIP = + is-monotonic-is-reflexive-triangular-Rational-Neighborhood-Relation + neighborhood-prop-Premetric-Space-WIP + refl-neighborhood-Premetric-Space-WIP + triangular-neighborhood-Premetric-Space-WIP +``` diff --git a/src/metric-spaces/rational-neighborhoods.lagda.md b/src/metric-spaces/rational-neighborhoods.lagda.md new file mode 100644 index 0000000000..f3f7c1dff9 --- /dev/null +++ b/src/metric-spaces/rational-neighborhoods.lagda.md @@ -0,0 +1,54 @@ +# Rational neighborhood relations on types + +```agda +module metric-spaces.rational-neighborhoods where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.propositions +open import foundation.universe-levels +``` + +
+ +## Idea + +A +{{#concept "rational neighborhood relation" Agda=Rational-Neighborhood-Relation}} +is a type family of +[proposition-valued binary relations](foundation.binary-relations.md) indexed by +the +[positive rational numbers](elementary-number-theory.positive-rational-numbers.md). + +## Definitions + +### Rational neighborhood relation on a type + +```agda +module _ + {l1 : Level} (l2 : Level) (A : UU l1) + where + + Rational-Neighborhood-Relation : UU (l1 ⊔ lsuc l2) + Rational-Neighborhood-Relation = ℚ⁺ → Relation-Prop l2 A + +module _ + {l1 l2 : Level} {A : UU l1} (B : Rational-Neighborhood-Relation l2 A) + where + + neighborhood-Rational-Neighborhood-Relation : + ℚ⁺ → Relation l2 A + neighborhood-Rational-Neighborhood-Relation d x y = + type-Prop (B d x y) + + is-prop-neighborhood-Rational-Neighborhood-Relation : + (d : ℚ⁺) (x y : A) → + is-prop (neighborhood-Rational-Neighborhood-Relation d x y) + is-prop-neighborhood-Rational-Neighborhood-Relation d x y = + is-prop-type-Prop (B d x y) +``` diff --git a/src/metric-spaces/reflexive-rational-neighborhoods.lagda.md b/src/metric-spaces/reflexive-rational-neighborhoods.lagda.md new file mode 100644 index 0000000000..a9858ba7aa --- /dev/null +++ b/src/metric-spaces/reflexive-rational-neighborhoods.lagda.md @@ -0,0 +1,49 @@ +# Reflexive rational neighborhoods on types + +```agda +module metric-spaces.reflexive-rational-neighborhoods where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.function-types +open import foundation.propositions +open import foundation.universe-levels + +open import metric-spaces.rational-neighborhoods +``` + +
+ +## Idea + +A [rational neighborhood](metric-spaces.rational-neighborhoods.md) is +{{#concept "reflexive" Disambiguation="premetric" Agda=is-reflexive-Rational-Neighborhood-Relation}} +if any element is in all neighborhoods of itself. + +## Definitions + +### The property of being a reflexive rational neighborhood relation + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (B : Rational-Neighborhood-Relation l2 A) + where + + is-reflexive-prop-Rational-Neighborhood-Relation : Prop (l1 ⊔ l2) + is-reflexive-prop-Rational-Neighborhood-Relation = + Π-Prop ℚ⁺ (is-reflexive-prop-Relation-Prop ∘ B) + + is-reflexive-Rational-Neighborhood-Relation : UU (l1 ⊔ l2) + is-reflexive-Rational-Neighborhood-Relation = + type-Prop is-reflexive-prop-Rational-Neighborhood-Relation + + is-prop-is-reflexive-Rational-Neighborhood-Relation : + is-prop is-reflexive-Rational-Neighborhood-Relation + is-prop-is-reflexive-Rational-Neighborhood-Relation = + is-prop-type-Prop is-reflexive-prop-Rational-Neighborhood-Relation +``` diff --git a/src/metric-spaces/similarity-of-elements-premetric-spaces.lagda.md b/src/metric-spaces/similarity-of-elements-premetric-spaces.lagda.md new file mode 100644 index 0000000000..a65ce14c61 --- /dev/null +++ b/src/metric-spaces/similarity-of-elements-premetric-spaces.lagda.md @@ -0,0 +1,136 @@ +# Similarity of elements in premetric spaces + +```agda +module metric-spaces.similarity-of-elements-premetric-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.dependent-pair-types +open import foundation.equivalence-relations +open import foundation.identity-types +open import foundation.propositions +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import metric-spaces.premetric-spaces-WIP +``` + +
+ +## Idea + +Two elements `x y` of a [premetric space](metric-spaces.premetric-spaces-WIP.md) +are +{{#concept "similar" Disambiguation="elements of a premetric space" Agda=sim-Premetric-Space}} +if they share all neighborhoods. Similarity in premetric spaces is an +[equivalence relation](foundation.equivalence-relations.md). + +## Definitions + +### Neighborhood similarity relation in premetric spaces + +```agda +module _ + {l1 l2 : Level} (A : Premetric-Space-WIP l1 l2) + where + + sim-prop-Premetric-Space-WIP : + Relation-Prop l2 (type-Premetric-Space-WIP A) + sim-prop-Premetric-Space-WIP x y = + Π-Prop ℚ⁺ (is-upper-bound-dist-prop-Premetric-Space-WIP A x y) + + sim-Premetric-Space-WIP : + Relation l2 (type-Premetric-Space-WIP A) + sim-Premetric-Space-WIP = + type-Relation-Prop sim-prop-Premetric-Space-WIP + + is-prop-sim-Premetric-Space-WIP : + (x y : type-Premetric-Space-WIP A) → + is-prop (sim-Premetric-Space-WIP x y) + is-prop-sim-Premetric-Space-WIP = + is-prop-type-Relation-Prop sim-prop-Premetric-Space-WIP +``` + +## Properties + +### Similarity in premetric spaces is reflexive + +```agda +module _ + {l1 l2 : Level} (A : Premetric-Space-WIP l1 l2) + where + + refl-sim-Premetric-Space-WIP : + (x : type-Premetric-Space-WIP A) → + sim-Premetric-Space-WIP A x x + refl-sim-Premetric-Space-WIP x d = + refl-neighborhood-Premetric-Space-WIP A d x +``` + +### Similarity in premetric spaces is symmetric + +```agda +module _ + {l1 l2 : Level} (A : Premetric-Space-WIP l1 l2) + where + + symmetric-sim-Premetric-Space-WIP : + (x y : type-Premetric-Space-WIP A) → + sim-Premetric-Space-WIP A x y → + sim-Premetric-Space-WIP A y x + symmetric-sim-Premetric-Space-WIP x y Nxy d = + symmetric-neighborhood-Premetric-Space-WIP A d x y (Nxy d) +``` + +### Similarity in premetric spaces is transitive + +```agda +module _ + {l1 l2 : Level} (A : Premetric-Space-WIP l1 l2) + where + + transitive-sim-Premetric-Space-WIP : + (x y z : type-Premetric-Space-WIP A) → + sim-Premetric-Space-WIP A y z → + sim-Premetric-Space-WIP A x y → + sim-Premetric-Space-WIP A x z + transitive-sim-Premetric-Space-WIP x y z Nyz Nxy d = + tr + ( is-upper-bound-dist-Premetric-Space-WIP A x z) + ( eq-add-split-ℚ⁺ d) + ( triangular-neighborhood-Premetric-Space-WIP + ( A) + ( x) + ( y) + ( z) + ( left-summand-split-ℚ⁺ d) + ( right-summand-split-ℚ⁺ d) + ( Nyz (right-summand-split-ℚ⁺ d)) + ( Nxy (left-summand-split-ℚ⁺ d))) +``` + +### Similarity in premetric spaces is an equivalence relation + +```agda +module _ + {l1 l2 : Level} (A : Premetric-Space-WIP l1 l2) + where + + is-equivalence-relation-sim-Premetric-Space : + is-equivalence-relation (sim-prop-Premetric-Space-WIP A) + is-equivalence-relation-sim-Premetric-Space = + ( refl-sim-Premetric-Space-WIP A) , + ( symmetric-sim-Premetric-Space-WIP A) , + ( transitive-sim-Premetric-Space-WIP A) + + equivalence-sim-Premetric-Space : + equivalence-relation l2 (type-Premetric-Space-WIP A) + equivalence-sim-Premetric-Space = + ( sim-prop-Premetric-Space-WIP A) , + ( is-equivalence-relation-sim-Premetric-Space) +``` diff --git a/src/metric-spaces/symmetric-rational-neighborhoods.lagda.md b/src/metric-spaces/symmetric-rational-neighborhoods.lagda.md new file mode 100644 index 0000000000..3ba14632e6 --- /dev/null +++ b/src/metric-spaces/symmetric-rational-neighborhoods.lagda.md @@ -0,0 +1,49 @@ +# Symmetric rational neighborhoods on types + +```agda +module metric-spaces.symmetric-rational-neighborhoods where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.function-types +open import foundation.propositions +open import foundation.universe-levels + +open import metric-spaces.rational-neighborhoods +``` + +
+ +## Idea + +A [rational neighborhood](metric-spaces.rational-neighborhoods.md) is +{{#concept "symmetric" Disambiguation="premetric" Agda=is-symmetric-Rational-Neighborhood-Relation}} +if all neighborhoods are symmetric. + +## Definitions + +### The property of being a symmetric rational neighborhood relation + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (B : Rational-Neighborhood-Relation l2 A) + where + + is-symmetric-prop-Rational-Neighborhood-Relation : Prop (l1 ⊔ l2) + is-symmetric-prop-Rational-Neighborhood-Relation = + Π-Prop ℚ⁺ (is-symmetric-prop-Relation-Prop ∘ B) + + is-symmetric-Rational-Neighborhood-Relation : UU (l1 ⊔ l2) + is-symmetric-Rational-Neighborhood-Relation = + type-Prop is-symmetric-prop-Rational-Neighborhood-Relation + + is-prop-is-symmetric-Rational-Neighborhood-Relation : + is-prop is-symmetric-Rational-Neighborhood-Relation + is-prop-is-symmetric-Rational-Neighborhood-Relation = + is-prop-type-Prop is-symmetric-prop-Rational-Neighborhood-Relation +``` diff --git a/src/metric-spaces/triangular-rational-neighborhoods.lagda.md b/src/metric-spaces/triangular-rational-neighborhoods.lagda.md new file mode 100644 index 0000000000..b9c04c4d0e --- /dev/null +++ b/src/metric-spaces/triangular-rational-neighborhoods.lagda.md @@ -0,0 +1,94 @@ +# Triangular rational neighborhood relations on types + +```agda +module metric-spaces.triangular-rational-neighborhoods where +``` + +
Imports + +```agda +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.function-types +open import foundation.identity-types +open import foundation.propositions +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import metric-spaces.monotonic-rational-neighborhoods +open import metric-spaces.rational-neighborhoods +open import metric-spaces.reflexive-rational-neighborhoods +``` + +
+ +## Idea + +A [rational neighborhood relation](metric-spaces.premetric-structures.md) is +{{#concept "triangular" Disambiguation="rational neighborhood relation" agda=is-triangular-Rational-Neighborhood-Relation}} +if it is additively transitive, i.e., if any `d₂`-neighbor of a `d₁`-neighbor of +an element is its `d₁ + d₂`-neighbor. + +## Definitions + +### The property of being a triangular rational neighborhood relation + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (B : Rational-Neighborhood-Relation l2 A) + where + + is-triangular-prop-Rational-Neighborhood-Relation : Prop (l1 ⊔ l2) + is-triangular-prop-Rational-Neighborhood-Relation = + Π-Prop + ( A) + ( λ x → + ( Π-Prop + ( A) + ( λ y → + ( Π-Prop + ( A) + ( λ z → + Π-Prop + ( ℚ⁺) + ( λ d₁ → + ( Π-Prop + ( ℚ⁺) + ( λ d₂ → + hom-Prop + ( B d₂ y z) + ( hom-Prop + ( B d₁ x y) + ( B (d₁ +ℚ⁺ d₂) x z)))))))))) + + is-triangular-Rational-Neighborhood-Relation : UU (l1 ⊔ l2) + is-triangular-Rational-Neighborhood-Relation = + type-Prop is-triangular-prop-Rational-Neighborhood-Relation + + is-prop-is-triangular-Rational-Neighborhood-Relation : + is-prop is-triangular-Rational-Neighborhood-Relation + is-prop-is-triangular-Rational-Neighborhood-Relation = + is-prop-type-Prop is-triangular-prop-Rational-Neighborhood-Relation +``` + +## Properties + +### Any triangular reflexive premetric is monotonic + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (B : Rational-Neighborhood-Relation l2 A) + (R : is-reflexive-Rational-Neighborhood-Relation B) + (T : is-triangular-Rational-Neighborhood-Relation B) + where + + is-monotonic-is-reflexive-triangular-Rational-Neighborhood-Relation : + is-monotonic-Rational-Neighborhood-Relation B + is-monotonic-is-reflexive-triangular-Rational-Neighborhood-Relation + x y d₁ d₂ I H₁ = + tr + ( λ d → neighborhood-Rational-Neighborhood-Relation B d x y) + ( right-diff-law-add-ℚ⁺ d₁ d₂ I) + ( T x y y d₁ (le-diff-ℚ⁺ d₁ d₂ I) (R (le-diff-ℚ⁺ d₁ d₂ I) y) H₁) +```