Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/linear-algebra.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ open import linear-algebra.finite-sequences-in-semirings public
open import linear-algebra.functoriality-matrices public
open import linear-algebra.left-modules-commutative-rings public
open import linear-algebra.left-modules-rings public
open import linear-algebra.left-modules-with-ordered-bases-rings public
open import linear-algebra.left-submodules-rings public
open import linear-algebra.linear-combinations-tuples-of-vectors-left-modules-rings public
open import linear-algebra.linear-independence-left-modules-rings public
open import linear-algebra.linear-maps-left-modules-rings public
open import linear-algebra.linear-spans-left-modules-rings public
open import linear-algebra.matrices public
Expand Down
1 change: 1 addition & 0 deletions src/linear-algebra/left-modules-rings.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ module linear-algebra.left-modules-rings where
<details><summary>Imports</summary>

```agda
open import elementary-number-theory.natural-numbers
open import elementary-number-theory.ring-of-integers

open import foundation.action-on-identifications-functions
Expand Down
51 changes: 51 additions & 0 deletions src/linear-algebra/left-modules-with-ordered-bases-rings.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Left modules over rings with ordered basis

```agda
module linear-algebra.left-modules-with-ordered-bases-rings where
```

<details><summary>Imports</summary>

```agda
open import elementary-number-theory.natural-numbers

open import foundation.dependent-pair-types
open import foundation.universe-levels

open import foundation-core.cartesian-product-types

open import linear-algebra.left-modules-rings
open import linear-algebra.linear-independence-left-modules-rings
open import linear-algebra.linear-spans-left-modules-rings
open import linear-algebra.subsets-left-modules-rings

open import lists.tuples

open import ring-theory.rings
```

</details>

## Idea

A
{{#concept "left module over a ring with an ordered basis" Agda=left-module-with-ordered-basis-Ring}}
is a [left module](linear-algebra.left-modules-rings.md) `M` over a
[ring](ring-theory.rings.md) `R` with a linearly independent tuple whose linear
span is the whole of `M`.

## Definitions

### Left modules over rings with ordered bases

```agda
left-module-with-ordered-basis-Ring :
{l1 : Level} (n : ℕ) (l : Level) (R : Ring l1) → UU (l1 ⊔ lsuc l)
left-module-with-ordered-basis-Ring {l1} n l R =
Σ
( Σ ( left-module-Ring l R)
( λ M → linearly-independent-tuple-left-module-Ring n R M))
( λ (M , b) → is-linear-span-subset-left-module-Ring R M
( whole-subset-left-module-Ring R M)
( subset-tuple (tuple-linearly-independent-tuple R M b)))
```
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ open import elementary-number-theory.natural-numbers
open import foundation.action-on-identifications-functions
open import foundation.identity-types
open import foundation.universe-levels
open import foundation.coproduct-types

open import foundation-core.identity-types

open import univalent-combinatorics.standard-finite-types

open import linear-algebra.left-modules-rings

Expand Down Expand Up @@ -291,3 +296,143 @@ module _
( vectors-b))
by refl
```

###

```agda
module _
{l1 l2 : Level}
(R : Ring l1)
(M : left-module-Ring l2 R)
where

zero-trivial-tuple-linear-combination-tuple-left-module-Ring :
(n : ℕ) →
(vectors : tuple (type-left-module-Ring R M) n) →
linear-combination-tuple-left-module-Ring R M
( trivial-tuple-Ring R n)
( vectors) =
zero-left-module-Ring R M
zero-trivial-tuple-linear-combination-tuple-left-module-Ring n empty-tuple =
refl
zero-trivial-tuple-linear-combination-tuple-left-module-Ring
(succ-ℕ n) (x ∷ vectors) =
equational-reasoning
linear-combination-tuple-left-module-Ring R M
( zero-Ring R ∷ trivial-tuple-Ring R n)
( x ∷ vectors)
= add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( trivial-tuple-Ring R n)
( vectors))
( mul-left-module-Ring R M (zero-Ring R) x)
by refl
= add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( trivial-tuple-Ring R n)
( vectors))
( zero-left-module-Ring R M)
by
ap
( λ y → add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( trivial-tuple-Ring R n)
( vectors))
( y))
(left-zero-law-mul-left-module-Ring R M x)
= add-left-module-Ring R M
( zero-left-module-Ring R M)
( zero-left-module-Ring R M)
by
ap
( λ y → add-left-module-Ring R M y (zero-left-module-Ring R M))
( zero-trivial-tuple-linear-combination-tuple-left-module-Ring n
( vectors))
= zero-left-module-Ring R M
by left-unit-law-add-left-module-Ring R M (zero-left-module-Ring R M)
```

###

```agda
module _
{l1 l2 : Level}
(R : Ring l1)
(M : left-module-Ring l2 R)
where

component-with-value-tuple-trivial-tuple-linear-combination-tuple-left-module-Ring :
(n : ℕ) →
(r : type-Ring R)
(vectors : tuple (type-left-module-Ring R M) n) →
(i : Fin n) →
linear-combination-tuple-left-module-Ring R M
( with-value-tuple i r (trivial-tuple-Ring R n))
( vectors) =
mul-left-module-Ring R M r (component-tuple n vectors i)
component-with-value-tuple-trivial-tuple-linear-combination-tuple-left-module-Ring
(succ-ℕ n) r (x ∷ vectors) (inr _) =
equational-reasoning
linear-combination-tuple-left-module-Ring R M
( with-value-tuple (inr _) r (trivial-tuple-Ring R (succ-ℕ n)))
( x ∷ vectors)
= linear-combination-tuple-left-module-Ring R M
( r ∷ (trivial-tuple-Ring R n))
( x ∷ vectors)
by refl
= add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( trivial-tuple-Ring R n)
( vectors))
( mul-left-module-Ring R M r x)
by refl
= add-left-module-Ring R M
( zero-left-module-Ring R M)
( mul-left-module-Ring R M r x)
by
ap
( λ y → add-left-module-Ring R M y (mul-left-module-Ring R M r x))
(zero-trivial-tuple-linear-combination-tuple-left-module-Ring R M n vectors)
= mul-left-module-Ring R M r x
by left-unit-law-add-left-module-Ring R M (mul-left-module-Ring R M r x)
= mul-left-module-Ring R M r (component-tuple (succ-ℕ n) (x ∷ vectors) (inr _))
by ap (λ y → mul-left-module-Ring R M r y) refl
component-with-value-tuple-trivial-tuple-linear-combination-tuple-left-module-Ring
(succ-ℕ n) r (x ∷ vectors) (inl i) =
equational-reasoning
linear-combination-tuple-left-module-Ring R M
( with-value-tuple (inl i) r (trivial-tuple-Ring R (succ-ℕ n)))
( x ∷ vectors)
= linear-combination-tuple-left-module-Ring R M
( zero-Ring R ∷ (with-value-tuple i r (trivial-tuple-Ring R n)))
( x ∷ vectors)
by refl
= add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( with-value-tuple i r (trivial-tuple-Ring R n))
( vectors))
( mul-left-module-Ring R M (zero-Ring R) x)
by refl
= add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( with-value-tuple i r (trivial-tuple-Ring R n))
( vectors))
( zero-left-module-Ring R M)
by
ap
( λ y → add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( with-value-tuple i r (trivial-tuple-Ring R n))
( vectors))
( y))
( left-zero-law-mul-left-module-Ring R M x)
= linear-combination-tuple-left-module-Ring R M
( with-value-tuple i r (trivial-tuple-Ring R n))
( vectors)
by right-unit-law-add-left-module-Ring R M
( linear-combination-tuple-left-module-Ring R M
( with-value-tuple i r (trivial-tuple-Ring R n))
( vectors))
= mul-left-module-Ring R M r (component-tuple (succ-ℕ n) (x ∷ vectors) (inl i))
by component-with-value-tuple-trivial-tuple-linear-combination-tuple-left-module-Ring n r vectors i
```
Loading