Skip to content

Commit 76d8316

Browse files
authored
Dependent products of real vector spaces (#1943)
Broken out of #1940 .
1 parent ba8b3d2 commit 76d8316

6 files changed

Lines changed: 217 additions & 0 deletions

src/linear-algebra.lagda.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ open import linear-algebra.constant-matrices public
1919
open import linear-algebra.constant-tuples public
2020
open import linear-algebra.dependent-products-left-modules-commutative-rings public
2121
open import linear-algebra.dependent-products-left-modules-rings public
22+
open import linear-algebra.dependent-products-real-vector-spaces public
23+
open import linear-algebra.dependent-products-vector-spaces public
2224
open import linear-algebra.diagonal-matrices-on-rings public
2325
open import linear-algebra.difference-linear-maps-left-modules-commutative-rings public
2426
open import linear-algebra.difference-linear-maps-left-modules-rings public
@@ -35,6 +37,9 @@ open import linear-algebra.finite-sequences-in-monoids public
3537
open import linear-algebra.finite-sequences-in-rings public
3638
open import linear-algebra.finite-sequences-in-semigroups public
3739
open import linear-algebra.finite-sequences-in-semirings public
40+
open import linear-algebra.function-left-modules-rings public
41+
open import linear-algebra.function-real-vector-spaces public
42+
open import linear-algebra.function-vector-spaces public
3843
open import linear-algebra.functoriality-matrices public
3944
open import linear-algebra.kernels-linear-maps-left-modules-commutative-rings public
4045
open import linear-algebra.kernels-linear-maps-left-modules-rings public
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Dependent products of real vector spaces
2+
3+
```agda
4+
module linear-algebra.dependent-products-real-vector-spaces where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import foundation.universe-levels
11+
12+
open import linear-algebra.dependent-products-vector-spaces
13+
open import linear-algebra.real-vector-spaces
14+
15+
open import real-numbers.field-of-real-numbers
16+
```
17+
18+
</details>
19+
20+
## Idea
21+
22+
Given a family of [real vector spaces](linear-algebra.real-vector-spaces.md)
23+
`Vᵢ` indexed by `i : I`, the dependent product `Πᵢ Vᵢ` is a real vector space.
24+
25+
## Definition
26+
27+
```agda
28+
Π-ℝ-Vector-Space :
29+
{l1 l2 l3 : Level} (I : UU l1) (V : I → ℝ-Vector-Space l2 l3) →
30+
ℝ-Vector-Space l2 (l1 ⊔ l3)
31+
Π-ℝ-Vector-Space {l2 = l2} =
32+
Π-Vector-Space (heyting-field-ℝ l2)
33+
```
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Dependent products of vector spaces
2+
3+
```agda
4+
module linear-algebra.dependent-products-vector-spaces where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import commutative-algebra.heyting-fields
11+
12+
open import foundation.universe-levels
13+
14+
open import linear-algebra.dependent-products-left-modules-rings
15+
open import linear-algebra.vector-spaces
16+
```
17+
18+
</details>
19+
20+
## Idea
21+
22+
Given a [Heyting field](commutative-algebra.heyting-fields.md) `K` and a family
23+
of [vector spaces](linear-algebra.vector-spaces.md) `Vᵢ` over `K` indexed by
24+
`i : I`, the dependent product `Πᵢ Vᵢ` is a vector space over `K`.
25+
26+
## Definition
27+
28+
```agda
29+
module _
30+
{l1 l2 l3 : Level}
31+
(K : Heyting-Field l1)
32+
(I : UU l2)
33+
(V : I → Vector-Space l3 K)
34+
where
35+
36+
Π-Vector-Space : Vector-Space (l2 ⊔ l3) K
37+
Π-Vector-Space = Π-left-module-Ring (ring-Heyting-Field K) I V
38+
```
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Function left modules on rings
2+
3+
```agda
4+
module linear-algebra.function-left-modules-rings where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import foundation.universe-levels
11+
12+
open import linear-algebra.dependent-products-left-modules-rings
13+
open import linear-algebra.left-modules-rings
14+
15+
open import ring-theory.rings
16+
```
17+
18+
</details>
19+
20+
## Idea
21+
22+
Given a type `X` and a [left module](linear-algebra.left-modules-rings.md) `M`
23+
over a [ring](ring-theory.rings.md) `R`, the functions `X → M` form a left
24+
module over `R`.
25+
26+
## Definition
27+
28+
```agda
29+
module _
30+
{l1 l2 l3 : Level}
31+
(R : Ring l1)
32+
(M : left-module-Ring l2 R)
33+
(X : UU l3)
34+
where
35+
36+
function-left-module-Ring : left-module-Ring (l2 ⊔ l3) R
37+
function-left-module-Ring = Π-left-module-Ring R X (λ _ → M)
38+
```
39+
40+
## Properties
41+
42+
### The functions `X → R` form a left module over `R`
43+
44+
```agda
45+
function-left-module-ring-Ring :
46+
{l1 l2 : Level} (R : Ring l1) → UU l2 → left-module-Ring (l1 ⊔ l2) R
47+
function-left-module-ring-Ring R =
48+
function-left-module-Ring R (left-module-ring-Ring R)
49+
```
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Function real vector spaces
2+
3+
```agda
4+
module linear-algebra.function-real-vector-spaces where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import foundation.universe-levels
11+
12+
open import linear-algebra.function-vector-spaces
13+
open import linear-algebra.real-vector-spaces
14+
15+
open import real-numbers.field-of-real-numbers
16+
```
17+
18+
</details>
19+
20+
## Idea
21+
22+
Given a type `X` and a [real vector space](linear-algebra.real-vector-spaces.md)
23+
`V`, the functions `X → V` form a real vector space.
24+
25+
## Definition
26+
27+
```agda
28+
function-ℝ-Vector-Space :
29+
{l1 l2 l3 : Level} (V : ℝ-Vector-Space l1 l2) → UU l3 →
30+
ℝ-Vector-Space l1 (l2 ⊔ l3)
31+
function-ℝ-Vector-Space {l1 = l1} = function-Vector-Space (heyting-field-ℝ l1)
32+
```
33+
34+
## Properties
35+
36+
### The functions `X → ℝ` form a real vector space
37+
38+
```agda
39+
vector-space-function-ℝ :
40+
{l1 : Level} (l2 : Level) → UU l1 → ℝ-Vector-Space l2 (l1 ⊔ lsuc l2)
41+
vector-space-function-ℝ l2 =
42+
function-vector-space-Heyting-Field (heyting-field-ℝ l2)
43+
```
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Function vector spaces
2+
3+
```agda
4+
module linear-algebra.function-vector-spaces where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import commutative-algebra.heyting-fields
11+
12+
open import foundation.universe-levels
13+
14+
open import linear-algebra.function-left-modules-rings
15+
open import linear-algebra.vector-spaces
16+
```
17+
18+
</details>
19+
20+
## Idea
21+
22+
Given a type `X` and a [vector space](linear-algebra.vector-spaces.md) `V` over
23+
a [Heyting field](commutative-algebra.heyting-fields.md) `K`, the functions
24+
`X → V` form a vector space over `K`.
25+
26+
## Definition
27+
28+
```agda
29+
module _
30+
{l1 l2 l3 : Level}
31+
(K : Heyting-Field l1)
32+
(V : Vector-Space l2 K)
33+
(X : UU l3)
34+
where
35+
36+
function-Vector-Space : Vector-Space (l2 ⊔ l3) K
37+
function-Vector-Space = function-left-module-Ring (ring-Heyting-Field K) V X
38+
```
39+
40+
## Properties
41+
42+
### The functions `X → K` form a vector space over `K`
43+
44+
```agda
45+
function-vector-space-Heyting-Field :
46+
{l1 l2 : Level} (K : Heyting-Field l1) → UU l2 → Vector-Space (l1 ⊔ l2) K
47+
function-vector-space-Heyting-Field K =
48+
function-left-module-ring-Ring (ring-Heyting-Field K)
49+
```

0 commit comments

Comments
 (0)