@@ -124,10 +124,10 @@ end has_inv
124
124
open_locale pointwise
125
125
126
126
section has_involutive_inv
127
- variables [decidable_eq α] [has_involutive_inv α] {s t : finset α}
127
+ variables [decidable_eq α] [has_involutive_inv α] (s : finset α)
128
128
129
129
@[simp, norm_cast, to_additive]
130
- lemma coe_inv (s : finset α) : ↑(s⁻¹) = (s : set α)⁻¹ := coe_image.trans set.image_inv
130
+ lemma coe_inv : ↑(s⁻¹) = (s : set α)⁻¹ := coe_image.trans set.image_inv
131
131
132
132
@[simp, to_additive] lemma card_inv : s⁻¹.card = s.card := card_image_of_injective _ inv_injective
133
133
@@ -178,9 +178,8 @@ image₂_nonempty_iff
178
178
@[to_additive] lemma nonempty.of_mul_left : (s * t).nonempty → s.nonempty := nonempty.of_image₂_left
179
179
@[to_additive] lemma nonempty.of_mul_right : (s * t).nonempty → t.nonempty :=
180
180
nonempty.of_image₂_right
181
- @[simp, to_additive] lemma mul_singleton (a : α) : s * {a} = s.image (* a) := image₂_singleton_right
182
- @[simp, to_additive] lemma singleton_mul (a : α) : {a} * s = s.image ((*) a) :=
183
- image₂_singleton_left
181
+ @[to_additive] lemma mul_singleton (a : α) : s * {a} = s.image (* a) := image₂_singleton_right
182
+ @[to_additive] lemma singleton_mul (a : α) : {a} * s = s.image ((*) a) := image₂_singleton_left
184
183
@[simp, to_additive] lemma singleton_mul_singleton (a b : α) : ({a} : finset α) * {b} = {a * b} :=
185
184
image₂_singleton
186
185
@@ -643,9 +642,9 @@ image₂_nonempty_iff
643
642
nonempty.of_image₂_left
644
643
@[to_additive] lemma nonempty.of_smul_right : (s • t).nonempty → t.nonempty :=
645
644
nonempty.of_image₂_right
646
- @[simp, to_additive] lemma smul_singleton (b : β) : s • ({b} : finset β) = s.image (• b) :=
645
+ @[to_additive] lemma smul_singleton (b : β) : s • ({b} : finset β) = s.image (• b) :=
647
646
image₂_singleton_right
648
- @[simp, to_additive] lemma singleton_smul (a : α) : ({a} : finset α) • t = t.image ((•) a) :=
647
+ @[to_additive] lemma singleton_smul (a : α) : ({a} : finset α) • t = t.image ((•) a) :=
649
648
image₂_singleton_left
650
649
@[simp, to_additive] lemma singleton_smul_singleton (a : α) (b : β) :
651
650
({a} : finset α) • ({b} : finset β) = {a • b} :=
@@ -709,8 +708,7 @@ lemma nonempty.of_vsub_left : (s -ᵥ t : finset α).nonempty → s.nonempty :=
709
708
lemma nonempty.of_vsub_right : (s -ᵥ t : finset α).nonempty → t.nonempty := nonempty.of_image₂_right
710
709
@[simp] lemma vsub_singleton (b : β) : s -ᵥ ({b} : finset β) = s.image (-ᵥ b) :=
711
710
image₂_singleton_right
712
- @[simp] lemma singleton_vsub (a : β) : ({a} : finset β) -ᵥ t = t.image ((-ᵥ) a) :=
713
- image₂_singleton_left
711
+ lemma singleton_vsub (a : β) : ({a} : finset β) -ᵥ t = t.image ((-ᵥ) a) := image₂_singleton_left
714
712
@[simp] lemma singleton_vsub_singleton (a b : β) : ({a} : finset β) -ᵥ {b} = {a -ᵥ b} :=
715
713
image₂_singleton
716
714
@@ -888,11 +886,40 @@ coe_injective.no_zero_smul_divisors _ coe_zero coe_smul_finset
888
886
889
887
end instances
890
888
891
- @[to_additive] lemma pairwise_disjoint_smul_iff [decidable_eq α] [left_cancel_semigroup α]
892
- {s : set α} {t : finset α} :
889
+ section left_cancel_semigroup
890
+ variables [left_cancel_semigroup α] [decidable_eq α] (s t : finset α) (a : α)
891
+
892
+ @[to_additive] lemma pairwise_disjoint_smul_iff {s : set α} {t : finset α} :
893
893
s.pairwise_disjoint (• t) ↔ ((s : set α) ×ˢ (t : set α) : set (α × α)).inj_on (λ p, p.1 * p.2 ) :=
894
894
by simp_rw [←pairwise_disjoint_coe, coe_smul_finset, set.pairwise_disjoint_smul_iff]
895
895
896
+ @[simp, to_additive] lemma card_singleton_mul : ({a} * t).card = t.card :=
897
+ card_image₂_singleton_left _ $ mul_right_injective _
898
+
899
+ @[to_additive] lemma singleton_mul_inter : {a} * (s ∩ t) = ({a} * s) ∩ ({a} * t) :=
900
+ image₂_singleton_inter _ _ $ mul_right_injective _
901
+
902
+ @[to_additive] lemma card_le_card_mul_left {s : finset α} (hs : s.nonempty) :
903
+ t.card ≤ (s * t).card :=
904
+ card_le_card_image₂_left _ hs mul_right_injective
905
+
906
+ end left_cancel_semigroup
907
+
908
+ section
909
+ variables [right_cancel_semigroup α] [decidable_eq α] (s t : finset α) (a : α)
910
+
911
+ @[simp, to_additive] lemma card_mul_singleton : (s * {a}).card = s.card :=
912
+ card_image₂_singleton_right _ $ mul_left_injective _
913
+
914
+ @[to_additive] lemma inter_mul_singleton : (s ∩ t) * {a} = (s * {a}) ∩ (t * {a}) :=
915
+ image₂_inter_singleton _ _ $ mul_left_injective _
916
+
917
+ @[to_additive] lemma card_le_card_mul_right {t : finset α} (ht : t.nonempty) :
918
+ s.card ≤ (s * t).card :=
919
+ card_le_card_image₂_right _ ht mul_left_injective
920
+
921
+ end
922
+
896
923
open_locale pointwise
897
924
898
925
section group
0 commit comments