Skip to content

Commit 3043227

Browse files
committed
The product rule
1 parent 9632519 commit 3043227

9 files changed

+722
-5
lines changed

references.bib

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ @misc{BH25
158158
primaryclass = {math.LO},
159159
}
160160

161+
@book{BishopFoundations,
162+
title = {Foundations of constructive analysis},
163+
author = {Bishop, Errett},
164+
year = 2012,
165+
publisher = {Ishi Press International},
166+
address = {New York ; Tokyo},
167+
isbn = 9784871877145,
168+
language = {eng},
169+
}
170+
161171
@phdthesis{Booij20PhD,
162172
title = {Analysis in univalent type theory},
163173
author = {Booij, Auke Bart},

src/analysis.lagda.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ open import analysis.differentiability-identity-function-on-proper-closed-interv
1414
open import analysis.differentiable-real-functions-on-proper-closed-intervals-real-numbers public
1515
open import analysis.metric-abelian-groups public
1616
open import analysis.metric-abelian-groups-normed-real-vector-spaces public
17+
open import analysis.multiplication-differentiable-real-functions-on-proper-closed-intervals-real-numbers public
1718
open import analysis.nonnegative-series-real-numbers public
1819
open import analysis.scalar-multiplication-differentiable-functions-on-proper-closed-intervals-real-numbers public
1920
open import analysis.series-complete-metric-abelian-groups public

src/analysis/multiplication-differentiable-real-functions-on-proper-closed-intervals-real-numbers.lagda.md

Lines changed: 556 additions & 0 deletions
Large diffs are not rendered by default.

src/elementary-number-theory/multiplication-positive-rational-numbers.lagda.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,3 +360,20 @@ abstract
360360
( λ p=1 → leq-eq-ℚ (ap-mul-ℚ p=1 refl ∙ left-unit-law-mul-ℚ q))
361361
( λ 1<p → ex-falso (not-leq-le-ℚ one-ℚ p 1<p p≤1))
362362
```
363+
364+
### Swapping laws for multiplication of positive rational numbers
365+
366+
```agda
367+
abstract
368+
right-swap-mul-ℚ⁺ :
369+
(a b c : ℚ⁺) → (a *ℚ⁺ b) *ℚ⁺ c = (a *ℚ⁺ c) *ℚ⁺ b
370+
right-swap-mul-ℚ⁺ a b c =
371+
equational-reasoning
372+
(a *ℚ⁺ b) *ℚ⁺ c
373+
= a *ℚ⁺ (b *ℚ⁺ c)
374+
by associative-mul-ℚ⁺ a b c
375+
= a *ℚ⁺ (c *ℚ⁺ b)
376+
by ap-mul-ℚ⁺ refl (commutative-mul-ℚ⁺ b c)
377+
= (a *ℚ⁺ c) *ℚ⁺ b
378+
by inv (associative-mul-ℚ⁺ a c b)
379+
```

src/elementary-number-theory/nonzero-natural-numbers.lagda.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ pr1 two-ℕ⁺ = 2
8585
pr2 two-ℕ⁺ ()
8686
```
8787

88+
### The nonzero natural number `3`
89+
90+
```agda
91+
three-ℕ⁺ : ℕ⁺
92+
pr1 three-ℕ⁺ = 3
93+
pr2 three-ℕ⁺ ()
94+
```
95+
8896
### The successor function on the nonzero natural numbers
8997

9098
```agda

src/metric-spaces/cartesian-products-metric-spaces.lagda.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module metric-spaces.cartesian-products-metric-spaces where
1010
open import foundation.cartesian-product-types
1111
open import foundation.conjunction
1212
open import foundation.dependent-pair-types
13+
open import foundation.diagonal-maps-cartesian-products-of-types
1314
open import foundation.equality-cartesian-product-types
1415
open import foundation.evaluation-functions
1516
open import foundation.function-extensionality
@@ -20,6 +21,7 @@ open import foundation.sets
2021
open import foundation.universe-levels
2122
2223
open import metric-spaces.extensionality-pseudometric-spaces
24+
open import metric-spaces.isometries-metric-spaces
2325
open import metric-spaces.metric-spaces
2426
open import metric-spaces.monotonic-rational-neighborhood-relations
2527
open import metric-spaces.pseudometric-spaces
@@ -144,3 +146,18 @@ module _
144146
( pr2)
145147
is-short-pr2-product-Metric-Space _ _ _ = pr2
146148
```
149+
150+
### The diagonal isometry from `X` to `X × X`
151+
152+
```agda
153+
module _
154+
{l1 l2 : Level}
155+
(X : Metric-Space l1 l2)
156+
where
157+
158+
diagonal-product-isometry-Metric-Space :
159+
isometry-Metric-Space X (product-Metric-Space X X)
160+
diagonal-product-isometry-Metric-Space =
161+
( diagonal-product (type-Metric-Space X) ,
162+
( λ _ _ _ → ((λ N → (N , N)) , pr1)))
163+
```

src/metric-spaces/images-uniformly-continuous-functions-metric-spaces.lagda.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,19 @@ module _
7979
(f : uniformly-continuous-function-Metric-Space X Y)
8080
where
8181
82-
is-uniformly-continuous-map-unit-im-uniformly-continuous-function-Metric-Space :
82+
is-uniformly-continuous-map-unit-im-Metric-Space :
8383
is-uniformly-continuous-function-Metric-Space
8484
( X)
8585
( im-uniformly-continuous-function-Metric-Space X Y f)
8686
( map-unit-im-uniformly-continuous-function-Metric-Space X Y f)
87-
is-uniformly-continuous-map-unit-im-uniformly-continuous-function-Metric-Space =
87+
is-uniformly-continuous-map-unit-im-Metric-Space =
8888
is-uniformly-continuous-map-uniformly-continuous-function-Metric-Space X Y f
8989
90-
uniformly-continuous-map-unit-im-uniformly-continuous-function-Metric-Space :
90+
uniformly-continuous-map-unit-im-Metric-Space :
9191
uniformly-continuous-function-Metric-Space
9292
( X)
9393
( im-uniformly-continuous-function-Metric-Space X Y f)
94-
uniformly-continuous-map-unit-im-uniformly-continuous-function-Metric-Space =
94+
uniformly-continuous-map-unit-im-Metric-Space =
9595
( map-unit-im-uniformly-continuous-function-Metric-Space X Y f ,
96-
is-uniformly-continuous-map-unit-im-uniformly-continuous-function-Metric-Space)
96+
is-uniformly-continuous-map-unit-im-Metric-Space)
9797
```

src/real-numbers.lagda.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ open import real-numbers.multiplication-nonzero-real-numbers public
7676
open import real-numbers.multiplication-positive-and-negative-real-numbers public
7777
open import real-numbers.multiplication-positive-real-numbers public
7878
open import real-numbers.multiplication-real-numbers public
79+
open import real-numbers.multiplication-uniformly-continuous-functions-proper-closed-intervals-real-numbers public
7980
open import real-numbers.multiplicative-inverses-negative-real-numbers public
8081
open import real-numbers.multiplicative-inverses-nonzero-real-numbers public
8182
open import real-numbers.multiplicative-inverses-positive-real-numbers public
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Multiplication of uniformly continuous functions on proper closed intervals in the real numbers
2+
3+
```agda
4+
{-# OPTIONS --lossy-unification #-}
5+
6+
module real-numbers.multiplication-uniformly-continuous-functions-proper-closed-intervals-real-numbers where
7+
```
8+
9+
<details><summary>Imports</summary>
10+
11+
```agda
12+
open import foundation.dependent-pair-types
13+
open import foundation.universe-levels
14+
15+
open import metric-spaces.cartesian-products-metric-spaces
16+
open import metric-spaces.images-uniformly-continuous-functions-metric-spaces
17+
open import metric-spaces.lipschitz-functions-metric-spaces
18+
open import metric-spaces.uniformly-continuous-functions-metric-spaces
19+
20+
open import real-numbers.dedekind-real-numbers
21+
open import real-numbers.lipschitz-continuity-multiplication-real-numbers
22+
open import real-numbers.metric-space-of-real-numbers
23+
open import real-numbers.multiplication-real-numbers
24+
open import real-numbers.proper-closed-intervals-real-numbers
25+
open import real-numbers.uniformly-continuous-functions-proper-closed-intervals-real-numbers
26+
```
27+
28+
</details>
29+
30+
## Idea
31+
32+
Given two
33+
[uniformly continuous maps](real-numbers.uniformly-continuous-functions-proper-closed-intervals-real-numbers.md)
34+
`f` and `g` on the
35+
[proper closed interval](real-numbers.proper-closed-intervals-real-numbers.md)
36+
of [real numbers](real-numbers.dedekind-real-numbers.md) `[a, b]`, the map
37+
`x ↦ f x * g x` is uniformly continuous.
38+
39+
## Definition
40+
41+
```agda
42+
module _
43+
{l1 l2 l3 : Level}
44+
([a,b] : proper-closed-interval-ℝ l1 l1)
45+
(f : ucont-map-proper-closed-interval-ℝ l1 l2 [a,b])
46+
(g : ucont-map-proper-closed-interval-ℝ l1 l3 [a,b])
47+
where
48+
49+
map-mul-ucont-map-proper-closed-interval-ℝ :
50+
type-proper-closed-interval-ℝ l1 [a,b] → ℝ (l2 ⊔ l3)
51+
map-mul-ucont-map-proper-closed-interval-ℝ x =
52+
pr1 f x *ℝ pr1 g x
53+
54+
abstract
55+
is-ucont-map-mul-ucont-map-proper-closed-interval-ℝ :
56+
is-ucont-map-proper-closed-interval-ℝ
57+
( [a,b])
58+
( map-mul-ucont-map-proper-closed-interval-ℝ)
59+
is-ucont-map-mul-ucont-map-proper-closed-interval-ℝ =
60+
is-uniformly-continuous-comp-function-Metric-Space
61+
( metric-space-proper-closed-interval-ℝ l1 [a,b])
62+
( product-Metric-Space
63+
( subspace-im-ucont-map-proper-closed-interval-ℝ
64+
( [a,b])
65+
( f))
66+
( subspace-im-ucont-map-proper-closed-interval-ℝ
67+
( [a,b])
68+
( g)))
69+
( metric-space-ℝ (l2 ⊔ l3))
70+
( _)
71+
( _)
72+
( is-uniformly-continuous-is-lipschitz-function-Metric-Space
73+
( product-Metric-Space
74+
( subspace-im-ucont-map-proper-closed-interval-ℝ
75+
( [a,b])
76+
( f))
77+
( subspace-im-ucont-map-proper-closed-interval-ℝ
78+
( [a,b])
79+
( g)))
80+
( metric-space-ℝ (l2 ⊔ l3))
81+
( _)
82+
( is-lipschitz-mul-inhabited-totally-bounded-subset-ℝ
83+
( inhabited-totally-bounded-subset-im-ucont-map-proper-closed-interval-ℝ
84+
( [a,b])
85+
( f))
86+
( inhabited-totally-bounded-subset-im-ucont-map-proper-closed-interval-ℝ
87+
( [a,b])
88+
( g))))
89+
( is-uniformly-continuous-map-uniformly-continuous-function-Metric-Space
90+
( _)
91+
( _)
92+
( comp-uniformly-continuous-function-Metric-Space _ _ _
93+
( product-uniformly-continuous-function-Metric-Space _ _ _ _
94+
( uniformly-continuous-map-unit-im-Metric-Space _ _ f)
95+
( uniformly-continuous-map-unit-im-Metric-Space _ _ g))
96+
( uniformly-continuous-isometry-Metric-Space
97+
( _)
98+
( _)
99+
( diagonal-product-isometry-Metric-Space
100+
( metric-space-proper-closed-interval-ℝ l1 [a,b])))))
101+
102+
mul-ucont-map-proper-closed-interval-ℝ :
103+
ucont-map-proper-closed-interval-ℝ l1 (l2 ⊔ l3) [a,b]
104+
mul-ucont-map-proper-closed-interval-ℝ =
105+
( map-mul-ucont-map-proper-closed-interval-ℝ ,
106+
is-ucont-map-mul-ucont-map-proper-closed-interval-ℝ)
107+
```

0 commit comments

Comments
 (0)