Skip to content

Commit 04645dd

Browse files
Improve code quality in the linear algebra namespace (#1544)
1 parent ebc4d50 commit 04645dd

File tree

3 files changed

+108
-43
lines changed

3 files changed

+108
-43
lines changed

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

Lines changed: 43 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ is-closed-under-negation-left-submodule-Ring :
146146
( subset-left-submodule-Ring R M N)
147147
is-closed-under-negation-left-submodule-Ring R M N x x-in-subset =
148148
tr
149-
( λ x' → pr1 (subset-left-submodule-Ring R M N x'))
149+
( λ x' → type-Prop (subset-left-submodule-Ring R M N x'))
150150
( mul-neg-one-left-module-Ring R M x)
151151
( is-closed-under-multiplication-by-scalar-left-submodule-Ring R M N
152152
( neg-one-Ring R)
@@ -194,18 +194,23 @@ module _
194194
195195
neg-left-submodule-Ring :
196196
type-left-submodule-Ring R M N → type-left-submodule-Ring R M N
197-
pr1 (neg-left-submodule-Ring x) = neg-left-module-Ring R M (pr1 x)
197+
pr1 (neg-left-submodule-Ring x) =
198+
neg-left-module-Ring R M (inclusion-left-submodule-Ring R M N x)
198199
pr2 (neg-left-submodule-Ring x) =
199-
is-closed-under-negation-left-submodule-Ring R M N (pr1 x) (pr2 x)
200+
is-closed-under-negation-left-submodule-Ring R M N
201+
( inclusion-left-submodule-Ring R M N x)
202+
( pr2 x)
200203
201204
add-left-submodule-Ring :
202205
(x y : type-left-submodule-Ring R M N) → type-left-submodule-Ring R M N
203206
pr1 (add-left-submodule-Ring x y) =
204-
add-left-module-Ring R M (pr1 x) (pr1 y)
207+
add-left-module-Ring R M
208+
( inclusion-left-submodule-Ring R M N x)
209+
( inclusion-left-submodule-Ring R M N y)
205210
pr2 (add-left-submodule-Ring x y) =
206211
is-closed-under-addition-left-submodule-Ring R M N
207-
( pr1 x)
208-
( pr1 y)
212+
( inclusion-left-submodule-Ring R M N x)
213+
( inclusion-left-submodule-Ring R M N y)
209214
( pr2 x)
210215
( pr2 y)
211216
@@ -214,10 +219,10 @@ module _
214219
(x : type-left-submodule-Ring R M N) →
215220
type-left-submodule-Ring R M N
216221
pr1 (mul-left-submodule-Ring r x) =
217-
mul-left-module-Ring R M r (pr1 x)
222+
mul-left-module-Ring R M r (inclusion-left-submodule-Ring R M N x)
218223
pr2 (mul-left-submodule-Ring r x) =
219224
is-closed-under-multiplication-by-scalar-left-submodule-Ring R M N r
220-
( pr1 x)
225+
( inclusion-left-submodule-Ring R M N x)
221226
( pr2 x)
222227
223228
associative-add-left-submodule-Ring :
@@ -226,66 +231,78 @@ module _
226231
add-left-submodule-Ring x (add-left-submodule-Ring y z)
227232
associative-add-left-submodule-Ring x y z =
228233
eq-left-submodule-Ring-eq-left-module-Ring R M N
229-
( associative-add-left-module-Ring R M (pr1 x) (pr1 y) (pr1 z))
234+
( associative-add-left-module-Ring R M
235+
( inclusion-left-submodule-Ring R M N x)
236+
( inclusion-left-submodule-Ring R M N y)
237+
( inclusion-left-submodule-Ring R M N z))
230238
231239
left-unit-law-add-left-submodule-Ring :
232240
(x : type-left-submodule-Ring R M N) →
233241
add-left-submodule-Ring (unit-left-submodule-Ring R M N) x = x
234242
left-unit-law-add-left-submodule-Ring x =
235243
eq-left-submodule-Ring-eq-left-module-Ring R M N
236-
( left-unit-law-add-left-module-Ring R M (pr1 x))
244+
( left-unit-law-add-left-module-Ring R M
245+
( inclusion-left-submodule-Ring R M N x))
237246
238247
right-unit-law-add-left-submodule-Ring :
239248
(x : type-left-submodule-Ring R M N) →
240249
add-left-submodule-Ring x (unit-left-submodule-Ring R M N) = x
241250
right-unit-law-add-left-submodule-Ring x =
242251
eq-left-submodule-Ring-eq-left-module-Ring R M N
243-
( right-unit-law-add-left-module-Ring R M (pr1 x))
252+
( right-unit-law-add-left-module-Ring R M
253+
( inclusion-left-submodule-Ring R M N x))
244254
245255
left-inverse-law-add-left-submodule-Ring :
246256
(x : type-left-submodule-Ring R M N) →
247257
add-left-submodule-Ring (neg-left-submodule-Ring x) x =
248258
unit-left-submodule-Ring R M N
249259
left-inverse-law-add-left-submodule-Ring x =
250260
eq-left-submodule-Ring-eq-left-module-Ring R M N
251-
( left-inverse-law-add-left-module-Ring R M (pr1 x))
261+
( left-inverse-law-add-left-module-Ring R M
262+
( inclusion-left-submodule-Ring R M N x))
252263
253264
right-inverse-law-add-left-submodule-Ring :
254265
(x : type-left-submodule-Ring R M N) →
255266
add-left-submodule-Ring x (neg-left-submodule-Ring x) =
256267
unit-left-submodule-Ring R M N
257268
right-inverse-law-add-left-submodule-Ring x =
258269
eq-left-submodule-Ring-eq-left-module-Ring R M N
259-
( right-inverse-law-add-left-module-Ring R M (pr1 x))
270+
( right-inverse-law-add-left-module-Ring R M
271+
( inclusion-left-submodule-Ring R M N x))
260272
261273
commutative-add-left-submodule-Ring :
262274
(x y : type-left-submodule-Ring R M N) →
263275
add-left-submodule-Ring x y = add-left-submodule-Ring y x
264276
commutative-add-left-submodule-Ring x y =
265277
eq-left-submodule-Ring-eq-left-module-Ring R M N
266-
( commutative-add-left-module-Ring R M (pr1 x) (pr1 y))
278+
( commutative-add-left-module-Ring R M
279+
( inclusion-left-submodule-Ring R M N x)
280+
( inclusion-left-submodule-Ring R M N y))
267281
268-
left-distributive-law-mul-add-left-submodule-Ring :
282+
left-distributive-mul-add-left-submodule-Ring :
269283
(r : type-Ring R)
270284
(x y : type-left-submodule-Ring R M N) →
271285
mul-left-submodule-Ring r (add-left-submodule-Ring x y) =
272286
add-left-submodule-Ring
273287
( mul-left-submodule-Ring r x)
274288
( mul-left-submodule-Ring r y)
275-
left-distributive-law-mul-add-left-submodule-Ring r x y =
289+
left-distributive-mul-add-left-submodule-Ring r x y =
276290
eq-left-submodule-Ring-eq-left-module-Ring R M N
277-
( left-distributive-mul-add-left-module-Ring R M r (pr1 x) (pr1 y))
291+
( left-distributive-mul-add-left-module-Ring R M r
292+
( inclusion-left-submodule-Ring R M N x)
293+
( inclusion-left-submodule-Ring R M N y))
278294
279-
right-distributive-law-mul-add-left-submodule-Ring :
295+
right-distributive-mul-add-left-submodule-Ring :
280296
(r s : type-Ring R)
281297
(x : type-left-submodule-Ring R M N) →
282298
mul-left-submodule-Ring (add-Ring R r s) x =
283299
add-left-submodule-Ring
284300
( mul-left-submodule-Ring r x)
285301
( mul-left-submodule-Ring s x)
286-
right-distributive-law-mul-add-left-submodule-Ring r s x =
302+
right-distributive-mul-add-left-submodule-Ring r s x =
287303
eq-left-submodule-Ring-eq-left-module-Ring R M N
288-
( right-distributive-mul-add-left-module-Ring R M r s (pr1 x))
304+
( right-distributive-mul-add-left-module-Ring R M r s
305+
( inclusion-left-submodule-Ring R M N x))
289306
290307
associative-mul-left-submodule-Ring :
291308
(r s : type-Ring R)
@@ -294,14 +311,16 @@ module _
294311
mul-left-submodule-Ring r (mul-left-submodule-Ring s x)
295312
associative-mul-left-submodule-Ring r s x =
296313
eq-left-submodule-Ring-eq-left-module-Ring R M N
297-
( associative-mul-left-module-Ring R M r s (pr1 x))
314+
( associative-mul-left-module-Ring R M r s
315+
( inclusion-left-submodule-Ring R M N x))
298316
299317
left-unit-law-mul-left-submodule-Ring :
300318
(x : type-left-submodule-Ring R M N) →
301319
mul-left-submodule-Ring (one-Ring R) x = x
302320
left-unit-law-mul-left-submodule-Ring x =
303321
eq-left-submodule-Ring-eq-left-module-Ring R M N
304-
( left-unit-law-mul-left-module-Ring R M (pr1 x))
322+
( left-unit-law-mul-left-module-Ring R M
323+
( inclusion-left-submodule-Ring R M N x))
305324
306325
set-left-submodule-Ring : Set (l2 ⊔ l3)
307326
pr1 set-left-submodule-Ring = type-left-submodule-Ring R M N
@@ -340,7 +359,7 @@ module _
340359
(r : type-Ring R) → hom-Ab ab-left-submodule-Ring ab-left-submodule-Ring
341360
pr1 (map-hom-left-submodule-Ring r) = mul-left-submodule-Ring r
342361
pr2 (map-hom-left-submodule-Ring r) {x} {y} =
343-
left-distributive-law-mul-add-left-submodule-Ring r x y
362+
left-distributive-mul-add-left-submodule-Ring r x y
344363
345364
mul-hom-left-submodule-Ring :
346365
hom-Ring R endomorphism-ring-left-submodule-Ring
@@ -349,7 +368,7 @@ module _
349368
eq-htpy-hom-Ab
350369
ab-left-submodule-Ring
351370
ab-left-submodule-Ring
352-
( right-distributive-law-mul-add-left-submodule-Ring r s)
371+
( right-distributive-mul-add-left-submodule-Ring r s)
353372
pr1 (pr2 mul-hom-left-submodule-Ring) {r} {s} =
354373
eq-htpy-hom-Ab
355374
ab-left-submodule-Ring

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

Lines changed: 54 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,15 @@ module _
138138
generators-linear-span-left-module-Ring : subset-left-module-Ring l3 R M
139139
generators-linear-span-left-module-Ring = pr2 (pr1 S)
140140
141+
inclusion-generators-linear-span-left-module-Ring :
142+
type-subset-left-module-Ring R M generators-linear-span-left-module-Ring →
143+
type-left-module-Ring R M
144+
inclusion-generators-linear-span-left-module-Ring = pr1
145+
146+
is-in-linear-span-left-module-Ring : type-left-module-Ring R M → UU l3
147+
is-in-linear-span-left-module-Ring x =
148+
type-Prop (subset-linear-span-left-module-Ring x)
149+
141150
contains-all-linear-combinations-linear-span-left-module-Ring :
142151
contains-all-linear-combinations-subset-left-module-Ring R M
143152
subset-linear-span-left-module-Ring
@@ -193,50 +202,74 @@ module _
193202
contains-only-linear-combinations-linear-span-left-module-Ring R M S
194203
( y , y-in-span)
195204
tr
196-
( λ z → pr1 (subset-linear-span-left-module-Ring R M S z))
205+
( λ z → is-in-linear-span-left-module-Ring R M S z)
197206
( equational-reasoning
198207
linear-combination-tuple-left-module-Ring R M
199208
( concat-tuple x-scalars y-scalars)
200-
( map-tuple pr1 (concat-tuple x-vectors y-vectors))
209+
( map-tuple
210+
( inclusion-generators-linear-span-left-module-Ring R M S)
211+
( concat-tuple x-vectors y-vectors))
201212
= linear-combination-tuple-left-module-Ring R M
202213
( concat-tuple x-scalars y-scalars)
203214
( concat-tuple
204-
( map-tuple pr1 x-vectors)
205-
( map-tuple pr1 y-vectors))
215+
( map-tuple
216+
( inclusion-generators-linear-span-left-module-Ring R M S)
217+
( x-vectors))
218+
( map-tuple
219+
( inclusion-generators-linear-span-left-module-Ring R M S)
220+
( y-vectors)))
206221
by
207222
ap
208223
( λ z →
209224
( linear-combination-tuple-left-module-Ring R M
210225
( concat-tuple x-scalars y-scalars)
211226
( z)))
212-
( distributive-map-concat-tuple pr1 x-vectors y-vectors)
227+
( distributive-map-concat-tuple
228+
( inclusion-generators-linear-span-left-module-Ring R M S)
229+
( x-vectors)
230+
( y-vectors))
213231
= add-left-module-Ring R M
214232
( linear-combination-tuple-left-module-Ring R M
215233
( x-scalars)
216-
( map-tuple pr1 x-vectors))
234+
( map-tuple
235+
( inclusion-generators-linear-span-left-module-Ring R M S)
236+
( x-vectors)))
217237
( linear-combination-tuple-left-module-Ring R M
218238
( y-scalars)
219-
( map-tuple pr1 y-vectors))
239+
( map-tuple
240+
( inclusion-generators-linear-span-left-module-Ring R M S)
241+
( y-vectors)))
220242
by
221243
add-concat-linear-combination-tuple-left-module-Ring
222244
( R)
223245
( M)
224246
( x-scalars)
225-
( map-tuple pr1 x-vectors)
247+
( map-tuple
248+
( inclusion-generators-linear-span-left-module-Ring R M S)
249+
( x-vectors))
226250
( y-scalars)
227-
( map-tuple pr1 y-vectors)
251+
( map-tuple
252+
( inclusion-generators-linear-span-left-module-Ring R M S)
253+
( y-vectors))
228254
= add-left-module-Ring R M
229255
( x)
230256
( linear-combination-tuple-left-module-Ring R M
231257
( y-scalars)
232-
( map-tuple pr1 y-vectors))
258+
( map-tuple
259+
( inclusion-generators-linear-span-left-module-Ring R M S)
260+
( y-vectors)))
233261
by
234262
ap
235263
( λ z → add-left-module-Ring R M
236264
( z)
237265
( linear-combination-tuple-left-module-Ring R M
238266
( y-scalars)
239-
( map-tuple pr1 y-vectors)))
267+
( map-tuple
268+
( inclusion-generators-linear-span-left-module-Ring
269+
( R)
270+
( M)
271+
( S))
272+
( y-vectors))))
240273
( inv x-identity)
241274
= add-left-module-Ring R M x y
242275
by
@@ -266,24 +299,30 @@ module _
266299
( contains-only-linear-combinations-linear-span-left-module-Ring R M S
267300
( x , x-in-span))
268301
( tr
269-
( λ y → pr1 (subset-linear-span-left-module-Ring R M S y))
302+
( λ y → is-in-linear-span-left-module-Ring R M S y)
270303
( equational-reasoning
271304
linear-combination-tuple-left-module-Ring R M
272305
( map-tuple (mul-Ring R r) scalars)
273-
( map-tuple pr1 vectors)
306+
( map-tuple
307+
( inclusion-generators-linear-span-left-module-Ring R M S)
308+
( vectors))
274309
= mul-left-module-Ring R M
275310
( r)
276311
( linear-combination-tuple-left-module-Ring R M
277312
( scalars)
278-
( map-tuple pr1 vectors))
313+
( map-tuple
314+
( inclusion-generators-linear-span-left-module-Ring R M S)
315+
( vectors)))
279316
by
280317
inv
281318
( left-distributive-mul-linear-combination-tuple-left-module-Ring
282319
( R)
283320
( M)
284321
( r)
285322
( scalars)
286-
( map-tuple pr1 vectors))
323+
( map-tuple
324+
( inclusion-generators-linear-span-left-module-Ring R M S)
325+
( vectors)))
287326
= mul-left-module-Ring R M r x
288327
by
289328
ap

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module linear-algebra.subsets-left-modules-rings where
88

99
```agda
1010
open import foundation.conjunction
11+
open import foundation.dependent-pair-types
1112
open import foundation.propositions
1213
open import foundation.subtypes
1314
open import foundation.universe-levels
@@ -37,13 +38,19 @@ subset-left-module-Ring :
3738
(l : Level) (R : Ring l1) (M : left-module-Ring l2 R) → UU (l2 ⊔ lsuc l)
3839
subset-left-module-Ring l R M = subtype l (type-left-module-Ring R M)
3940
40-
type-subset-left-module-Ring :
41+
module _
4142
{l1 l2 l3 : Level}
4243
(R : Ring l1)
4344
(M : left-module-Ring l2 R)
44-
(S : subset-left-module-Ring l3 R M) →
45-
UU (l2 ⊔ l3)
46-
type-subset-left-module-Ring R M S = type-subtype S
45+
(S : subset-left-module-Ring l3 R M)
46+
where
47+
48+
type-subset-left-module-Ring : UU (l2 ⊔ l3)
49+
type-subset-left-module-Ring = type-subtype S
50+
51+
inclusion-subset-left-module-Ring :
52+
type-subset-left-module-Ring → type-left-module-Ring R M
53+
inclusion-subset-left-module-Ring = pr1
4754
```
4855

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

0 commit comments

Comments
 (0)