@@ -152,6 +152,21 @@ theorem LinearIndepOn.id_image (hs : LinearIndepOn R v s) : LinearIndepOn R id (
152
152
@[deprecated (since := "2025-02-14")] alias
153
153
LinearIndependent.image := LinearIndepOn.id_image
154
154
155
+ theorem LinearIndepOn_iff_linearIndepOn_image_injOn [Nontrivial R] :
156
+ LinearIndepOn R v s ↔ LinearIndepOn R id (v '' s) ∧ InjOn v s :=
157
+ ⟨fun h ↦ ⟨h.id_image, h.injOn⟩, fun h ↦ (linearIndepOn_iff_image h.2 ).2 h.1 ⟩
158
+
159
+ theorem linearIndepOn_congr {w : ι → M} (h : EqOn v w s) :
160
+ LinearIndepOn R v s ↔ LinearIndepOn R w s := by
161
+ rw [LinearIndepOn, LinearIndepOn]
162
+ convert Iff.rfl using 2
163
+ ext x
164
+ exact h.symm x.2
165
+
166
+ theorem LinearIndepOn.congr {w : ι → M} (hli : LinearIndepOn R v s) (h : EqOn v w s) :
167
+ LinearIndepOn R w s :=
168
+ (linearIndepOn_congr h).1 hli
169
+
155
170
theorem LinearIndependent.group_smul {G : Type *} [hG : Group G] [DistribMulAction G R]
156
171
[DistribMulAction G M] [IsScalarTower G R M] [SMulCommClass G R M] {v : ι → M}
157
172
(hv : LinearIndependent R v) (w : ι → G) : LinearIndependent R (w • v) := by
@@ -453,14 +468,35 @@ theorem LinearIndependent.sum_type {v' : ι' → M} (hv : LinearIndependent R v)
453
468
LinearIndependent R (Sum.elim v v') :=
454
469
linearIndependent_sum.2 ⟨hv, hv', h⟩
455
470
456
- -- TODO - generalize this to non-identity functions
457
- theorem LinearIndepOn.id_union {s t : Set M} (hs : LinearIndepOn R id s)
458
- (ht : LinearIndepOn R id t) (hst : Disjoint (span R s) (span R t)) :
459
- LinearIndepOn R id (s ∪ t) := by
460
- have h := hs.linearIndependent.sum_type ht.linearIndependent (by simpa)
461
- simpa [id_eq] using h.linearIndepOn_id
462
-
463
- @[deprecated (since := "2025-02-14")] alias LinearIndependent.union := LinearIndepOn.id_union
471
+ theorem LinearIndepOn.union {t : Set ι} (hs : LinearIndepOn R v s) (ht : LinearIndepOn R v t)
472
+ (hdj : Disjoint (span R (v '' s)) (span R (v '' t))) : LinearIndepOn R v (s ∪ t) := by
473
+ nontriviality R
474
+ classical
475
+ have hli := LinearIndependent.sum_type hs ht (by rwa [← image_eq_range, ← image_eq_range])
476
+ have hdj := (hdj.of_span₀ hs.zero_not_mem_image).of_image
477
+ rw [LinearIndepOn]
478
+ convert (hli.comp _ (Equiv.Set.union hdj).injective) with ⟨x, hx | hx⟩
479
+ · rw [comp_apply, Equiv.Set.union_apply_left _ hx, Sum.elim_inl]
480
+ rw [comp_apply, Equiv.Set.union_apply_right _ hx, Sum.elim_inr]
481
+
482
+ theorem LinearIndepOn.id_union {s t : Set M} (hs : LinearIndepOn R id s) (ht : LinearIndepOn R id t)
483
+ (hdj : Disjoint (span R s) (span R t)) : LinearIndepOn R id (s ∪ t) :=
484
+ hs.union ht (by simpa)
485
+
486
+ theorem linearIndepOn_union_iff {t : Set ι} (hdj : Disjoint s t) :
487
+ LinearIndepOn R v (s ∪ t) ↔
488
+ LinearIndepOn R v s ∧ LinearIndepOn R v t ∧ Disjoint (span R (v '' s)) (span R (v '' t)) := by
489
+ refine ⟨fun h ↦ ⟨h.mono subset_union_left, h.mono subset_union_right, ?_⟩,
490
+ fun h ↦ h.1 .union h.2 .1 h.2 .2 ⟩
491
+ convert h.disjoint_span_image (s := (↑) ⁻¹' s) (t := (↑) ⁻¹' t) (hdj.preimage _) <;>
492
+ aesop
493
+
494
+ theorem linearIndepOn_id_union_iff {s t : Set M} (hdj : Disjoint s t) :
495
+ LinearIndepOn R id (s ∪ t) ↔
496
+ LinearIndepOn R id s ∧ LinearIndepOn R id t ∧ Disjoint (span R s) (span R t) := by
497
+ rw [linearIndepOn_union_iff hdj, image_id, image_id]
498
+
499
+ @[deprecated (since := "2025-02-14")] alias LinearIndependent.union := LinearIndepOn.union
464
500
465
501
open LinearMap
466
502
@@ -583,8 +619,12 @@ theorem linearIndependent_unique_iff (v : ι → M) [Unique ι] :
583
619
584
620
alias ⟨_, linearIndependent_unique⟩ := linearIndependent_unique_iff
585
621
586
- theorem LinearIndepOn.singleton {v : ι → M} {i : ι} (hi : v i ≠ 0 ) : LinearIndepOn R v {i} :=
587
- linearIndependent_unique _ hi
622
+ variable (R) in
623
+ @[simp]
624
+ theorem linearIndepOn_singleton_iff {i : ι} {v : ι → M} : LinearIndepOn R v {i} ↔ v i ≠ 0 :=
625
+ ⟨fun h ↦ h.ne_zero rfl, fun h ↦ linearIndependent_unique _ h⟩
626
+
627
+ alias ⟨_, LinearIndepOn.singleton⟩ := linearIndepOn_singleton_iff
588
628
589
629
variable (R) in
590
630
theorem LinearIndepOn.id_singleton {x : M} (hx : x ≠ 0 ) : LinearIndepOn R id {x} :=
0 commit comments