@@ -599,27 +599,71 @@ section
599
599
600
600
variables {α : Type *} {β : Type *}
601
601
602
- /-- A nonempty set in a module is scaled by zero to the singleton
603
- containing 0 in the module. -/
604
- lemma zero_smul_set [semiring α] [add_comm_monoid β] [module α β] {s : set β} (h : s.nonempty) :
602
+ /-- A nonempty set is scaled by zero to the singleton set containing 0. -/
603
+ lemma zero_smul_set [has_zero α] [has_zero β] [smul_with_zero α β] {s : set β} (h : s.nonempty) :
605
604
(0 : α) • s = (0 : set β) :=
606
605
by simp only [← image_smul, image_eta, zero_smul, h.image_const, singleton_zero]
607
606
608
- lemma mem_inv_smul_set_iff [group_with_zero α] [mul_action α β] {a : α} (ha : a ≠ 0 ) (A : set β)
609
- (x : β) : x ∈ a⁻¹ • A ↔ a • x ∈ A :=
610
- by simp only [← image_smul, mem_image, inv_smul_eq_iff' ha, exists_eq_right]
607
+ section group
608
+ variables [group α] [mul_action α β]
611
609
612
- lemma mem_smul_set_iff_inv_smul_mem [group_with_zero α] [mul_action α β] {a : α} (ha : a ≠ 0 )
613
- (A : set β) (x : β) : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
614
- by rw [← mem_inv_smul_set_iff $ inv_ne_zero ha, inv_inv']
610
+ @[simp] lemma smul_mem_smul_set_iff {a : α} {A : set β} {x : β} : a • x ∈ a • A ↔ x ∈ A :=
611
+ ⟨λ h, begin
612
+ rw [←inv_smul_smul a x, ←inv_smul_smul a A],
613
+ exact smul_mem_smul_set h,
614
+ end , smul_mem_smul_set⟩
615
615
616
- lemma preimage_smul [group α] [mul_action α β] (a : α) (t : set β) : (λ x, a • x) ⁻¹' t = a⁻¹ • t :=
616
+ lemma mem_smul_set_iff_inv_smul_mem {a : α} {A : set β} {x : β} : x ∈ a • A ↔ a⁻¹ • x ∈ A :=
617
+ show x ∈ mul_action.to_perm a '' A ↔ _, from mem_image_equiv
618
+
619
+ lemma mem_inv_smul_set_iff {a : α} {A : set β} {x : β} : x ∈ a⁻¹ • A ↔ a • x ∈ A :=
620
+ by simp only [← image_smul, mem_image, inv_smul_eq_iff, exists_eq_right]
621
+
622
+ lemma preimage_smul (a : α) (t : set β) : (λ x, a • x) ⁻¹' t = a⁻¹ • t :=
617
623
((mul_action.to_perm a).symm.image_eq_preimage _).symm
618
624
619
- lemma preimage_smul' [group_with_zero α] [mul_action α β] {a : α} (ha : a ≠ 0 ) (t : set β) :
620
- (λ x, a • x) ⁻¹' t = a⁻¹ • t :=
625
+ @[simp] lemma set_smul_subset_set_smul_iff {a : α} {A B : set β} : a • A ⊆ a • B ↔ A ⊆ B :=
626
+ image_subset_image_iff $ mul_action.injective _
627
+
628
+ lemma set_smul_subset_iff {a : α} {A B : set β} : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
629
+ (image_subset_iff).trans $ iff_of_eq $ congr_arg _ $
630
+ preimage_equiv_eq_image_symm _ $ mul_action.to_perm _
631
+
632
+ lemma subset_set_smul_iff {a : α} {A B : set β} : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
633
+ iff.symm $ (image_subset_iff).trans $ iff.symm $ iff_of_eq $ congr_arg _ $
634
+ image_equiv_eq_preimage_symm _ $ mul_action.to_perm _
635
+
636
+ end group
637
+
638
+ section group_with_zero
639
+ variables [group_with_zero α] [mul_action α β]
640
+
641
+ @[simp] lemma smul_mem_smul_set_iff' {a : α} (ha : a ≠ 0 ) (A : set β)
642
+ (x : β) : a • x ∈ a • A ↔ x ∈ A :=
643
+ show units.mk0 a ha • _ ∈ _ ↔ _, from smul_mem_smul_set_iff
644
+
645
+ lemma mem_smul_set_iff_inv_smul_mem' {a : α} (ha : a ≠ 0 ) (A : set β) (x : β) :
646
+ x ∈ a • A ↔ a⁻¹ • x ∈ A :=
647
+ show _ ∈ units.mk0 a ha • _ ↔ _, from mem_smul_set_iff_inv_smul_mem
648
+
649
+ lemma mem_inv_smul_set_iff' {a : α} (ha : a ≠ 0 ) (A : set β) (x : β) : x ∈ a⁻¹ • A ↔ a • x ∈ A :=
650
+ show _ ∈ (units.mk0 a ha)⁻¹ • _ ↔ _, from mem_inv_smul_set_iff
651
+
652
+ lemma preimage_smul' {a : α} (ha : a ≠ 0 ) (t : set β) : (λ x, a • x) ⁻¹' t = a⁻¹ • t :=
621
653
preimage_smul (units.mk0 a ha) t
622
654
655
+ @[simp] lemma set_smul_subset_set_smul_iff' {a : α} (ha : a ≠ 0 ) {A B : set β} :
656
+ a • A ⊆ a • B ↔ A ⊆ B :=
657
+ show units.mk0 a ha • _ ⊆ _ ↔ _, from set_smul_subset_set_smul_iff
658
+
659
+ lemma set_smul_subset_iff' {a : α} (ha : a ≠ 0 ) {A B : set β} : a • A ⊆ B ↔ A ⊆ a⁻¹ • B :=
660
+ show units.mk0 a ha • _ ⊆ _ ↔ _, from set_smul_subset_iff
661
+
662
+ lemma subset_set_smul_iff' {a : α} (ha : a ≠ 0 ) {A B : set β} : A ⊆ a • B ↔ a⁻¹ • A ⊆ B :=
663
+ show _ ⊆ units.mk0 a ha • _ ↔ _, from subset_set_smul_iff
664
+
665
+ end group_with_zero
666
+
623
667
end
624
668
625
669
namespace finset
0 commit comments