Skip to content

Commit 207e7ec

Browse files
committed
Add linear independence and left modules with an ordered basis
Signed-off-by: Šimon Brandner <[email protected]>
1 parent 04645dd commit 207e7ec

File tree

6 files changed

+164
-0
lines changed

6 files changed

+164
-0
lines changed

src/linear-algebra.lagda.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ open import linear-algebra.finite-sequences-in-semirings public
2424
open import linear-algebra.functoriality-matrices public
2525
open import linear-algebra.left-modules-commutative-rings public
2626
open import linear-algebra.left-modules-rings public
27+
open import linear-algebra.left-modules-with-ordered-bases-rings public
2728
open import linear-algebra.left-submodules-rings public
2829
open import linear-algebra.linear-combinations-tuples-of-vectors-left-modules-rings public
30+
open import linear-algebra.linear-independence-left-modules-rings public
2931
open import linear-algebra.linear-maps-left-modules-rings public
3032
open import linear-algebra.linear-spans-left-modules-rings public
3133
open import linear-algebra.matrices public

src/linear-algebra/left-modules-rings.lagda.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module linear-algebra.left-modules-rings where
77
<details><summary>Imports</summary>
88

99
```agda
10+
open import elementary-number-theory.natural-numbers
1011
open import elementary-number-theory.ring-of-integers
1112
1213
open import foundation.action-on-identifications-functions
@@ -26,6 +27,8 @@ open import group-theory.endomorphism-rings-abelian-groups
2627
open import group-theory.homomorphisms-abelian-groups
2728
open import group-theory.homomorphisms-semigroups
2829
30+
open import lists.tuples
31+
2932
open import ring-theory.homomorphisms-rings
3033
open import ring-theory.opposite-rings
3134
open import ring-theory.rings
@@ -120,6 +123,11 @@ module _
120123
( endomorphism-ring-Ab ab-left-module-Ring)
121124
( mul-hom-left-module-Ring)
122125
( x))
126+
127+
trivial-tuple-left-module-Ring : (n : ℕ) → tuple (type-Ring R) n
128+
trivial-tuple-left-module-Ring zero-ℕ = empty-tuple
129+
trivial-tuple-left-module-Ring (succ-ℕ n) =
130+
zero-Ring R ∷ trivial-tuple-left-module-Ring n
123131
```
124132

125133
## Properties
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Left modules over rings with ordered basis
2+
3+
```agda
4+
module linear-algebra.left-modules-with-ordered-bases-rings where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import elementary-number-theory.natural-numbers
11+
12+
open import foundation.dependent-pair-types
13+
open import foundation.universe-levels
14+
15+
open import foundation-core.cartesian-product-types
16+
17+
open import linear-algebra.left-modules-rings
18+
open import linear-algebra.linear-independence-left-modules-rings
19+
open import linear-algebra.linear-spans-left-modules-rings
20+
open import linear-algebra.subsets-left-modules-rings
21+
22+
open import lists.tuples
23+
24+
open import ring-theory.rings
25+
```
26+
27+
</details>
28+
29+
## Idea
30+
31+
A
32+
{{#concept "left module over a ring with an ordered basis" Agda=left-module-with-ordered-basis-Ring}}
33+
is a [left module](linear-algebra.left-modules-rings.md) `M` over a
34+
[ring](ring-theory.rings.md) `R` with a linearly independent tuple whose linear
35+
span is the whole of `M`.
36+
37+
## Definitions
38+
39+
### Left modules over rings with ordered bases
40+
41+
```agda
42+
left-module-with-ordered-basis-Ring :
43+
{l1 : Level} (n : ℕ) (l : Level) (R : Ring l1) → UU (l1 ⊔ lsuc l)
44+
left-module-with-ordered-basis-Ring {l1} n l R =
45+
Σ
46+
( Σ ( left-module-Ring l R)
47+
( λ M → linearly-independent-tuple-left-module-Ring n R M))
48+
( λ (M , b) → is-linear-span-subset-left-module-Ring R M
49+
( whole-subset-left-module-Ring R M)
50+
( subset-tuple (tuple-linearly-independent-tuple R M b)))
51+
```
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Linear independence
2+
3+
```agda
4+
module linear-algebra.linear-independence-left-modules-rings where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import elementary-number-theory.natural-numbers
11+
12+
open import foundation.dependent-pair-types
13+
open import foundation.identity-types
14+
open import foundation.propositions
15+
open import foundation.universe-levels
16+
17+
open import foundation-core.sets
18+
19+
open import linear-algebra.left-modules-rings
20+
open import linear-algebra.linear-combinations-tuples-of-vectors-left-modules-rings
21+
22+
open import lists.tuples
23+
24+
open import ring-theory.rings
25+
```
26+
27+
</details>
28+
29+
## Idea
30+
31+
Let `M` be a [left module](linear-algebra.left-modules-rings.md) over a
32+
[ring](ring-theory.rings.md) `R`. A tuple `x_1, ..., x_n` of elements of `M` is
33+
{{#concept "linearly independent" Agda=is-linearly-independent-tuple-prop Agda=linearly-independent-tuple}},
34+
if `r_1 * x_1 + ... + r_n * x_n = 0` implies `r_1 = ... = r_n = 0`.
35+
36+
## Definitions
37+
38+
### The condition of a tuple being linearly independent
39+
40+
```agda
41+
module _
42+
{l1 l2 : Level}
43+
{n : ℕ}
44+
(R : Ring l1)
45+
(M : left-module-Ring l2 R)
46+
(vectors : tuple (type-left-module-Ring R M) n)
47+
where
48+
49+
is-linearly-independent-tuple-left-module-Ring-prop : Prop (l1 ⊔ l2)
50+
is-linearly-independent-tuple-left-module-Ring-prop =
51+
Π-Prop
52+
( tuple (type-Ring R) n)
53+
λ scalars →
54+
hom-Prop
55+
( Id-Prop
56+
( set-left-module-Ring R M)
57+
( linear-combination-tuple-left-module-Ring R M scalars vectors)
58+
( zero-left-module-Ring R M))
59+
( Id-Prop
60+
( tuple-Set (set-Ring R) n)
61+
( scalars)
62+
( trivial-tuple-left-module-Ring R M n))
63+
64+
is-linearly-independent-tuple-left-module-Ring : UU (l1 ⊔ l2)
65+
is-linearly-independent-tuple-left-module-Ring =
66+
type-Prop is-linearly-independent-tuple-left-module-Ring-prop
67+
```
68+
69+
### Linearly independent tuple in a left-module over ring
70+
71+
```agda
72+
linearly-independent-tuple-left-module-Ring :
73+
{l1 l2 : Level}
74+
(n : ℕ) (R : Ring l1) (M : left-module-Ring l2 R) → UU (l1 ⊔ l2)
75+
linearly-independent-tuple-left-module-Ring n R M =
76+
Σ
77+
( tuple (type-left-module-Ring R M) n)
78+
( λ v → is-linearly-independent-tuple-left-module-Ring R M v)
79+
80+
module _
81+
{l1 l2 : Level}
82+
{n : ℕ}
83+
(R : Ring l1)
84+
(M : left-module-Ring l2 R)
85+
(v : linearly-independent-tuple-left-module-Ring n R M)
86+
where
87+
88+
tuple-linearly-independent-tuple : tuple (type-left-module-Ring R M) n
89+
tuple-linearly-independent-tuple = pr1 v
90+
```

src/linear-algebra/subsets-left-modules-rings.lagda.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ open import foundation.conjunction
1111
open import foundation.dependent-pair-types
1212
open import foundation.propositions
1313
open import foundation.subtypes
14+
open import foundation.unit-type
1415
open import foundation.universe-levels
1516
1617
open import linear-algebra.left-modules-rings
@@ -51,6 +52,11 @@ module _
5152
inclusion-subset-left-module-Ring :
5253
type-subset-left-module-Ring → type-left-module-Ring R M
5354
inclusion-subset-left-module-Ring = pr1
55+
56+
whole-subset-left-module-Ring :
57+
{l1 l2 l3 : Level}
58+
(R : Ring l1) (M : left-module-Ring l2 R) → subset-left-module-Ring l3 R M
59+
whole-subset-left-module-Ring R M _ = raise-unit-Prop _
5460
```
5561

5662
### The condition that a subset is closed under addition

src/lists/tuples.lagda.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,19 @@ open import foundation.equality-dependent-pair-types
1818
open import foundation.equivalences
1919
open import foundation.homotopies
2020
open import foundation.identity-types
21+
open import foundation.propositional-truncations
2122
open import foundation.raising-universe-levels
2223
open import foundation.sets
24+
open import foundation.subtypes
2325
open import foundation.transport-along-identifications
2426
open import foundation.truncated-types
2527
open import foundation.truncation-levels
2628
open import foundation.unit-type
2729
open import foundation.universe-levels
2830
open import foundation.whiskering-higher-homotopies-composition
2931
32+
open import foundation-core.empty-types
33+
3034
open import univalent-combinatorics.standard-finite-types
3135
```
3236

@@ -96,6 +100,9 @@ module _
96100
eq-component-tuple-index-in-tuple
97101
(succ-ℕ n) a (x ∷ v) (is-in-tail .a .x .v I) =
98102
eq-component-tuple-index-in-tuple n a v I
103+
104+
subset-tuple : {n : ℕ} (v : tuple A n) → subtype l A
105+
subset-tuple v a = trunc-Prop (a ∈-tuple v)
99106
```
100107

101108
## Properties

0 commit comments

Comments
 (0)