@@ -1197,10 +1197,10 @@ begin
1197
1197
{ intros h x hx i hi, refine h i hi ⟨_, hx, rfl⟩, }
1198
1198
end
1199
1199
1200
- @[simp]
1201
- lemma single_mem_pi [decidable_eq η] {I : set η} {H : Π i, subgroup (f i)}
1200
+ @[simp, to_additive ]
1201
+ lemma mul_single_mem_pi [decidable_eq η] {I : set η} {H : Π i, subgroup (f i)}
1202
1202
(i : η) (x : f i) :
1203
- monoid_hom.single f i x ∈ pi I H ↔ (i ∈ I → x ∈ H i) :=
1203
+ pi.mul_single i x ∈ pi I H ↔ (i ∈ I → x ∈ H i) :=
1204
1204
begin
1205
1205
split,
1206
1206
{ intros h hi, simpa using h i hi, },
@@ -1210,7 +1210,8 @@ begin
1210
1210
{ simp [heq, one_mem], }, }
1211
1211
end
1212
1212
1213
- lemma pi_mem_of_single_mem_aux [decidable_eq η] (I : finset η) {H : subgroup (Π i, f i) }
1213
+ @[to_additive]
1214
+ lemma pi_mem_of_mul_single_mem_aux [decidable_eq η] (I : finset η) {H : subgroup (Π i, f i) }
1214
1215
(x : Π i, f i) (h1 : ∀ i, i ∉ I → x i = 1 ) (h2 : ∀ i, i ∈ I → pi.mul_single i (x i) ∈ H ) :
1215
1216
x ∈ H :=
1216
1217
begin
@@ -1237,19 +1238,23 @@ begin
1237
1238
{ apply h2, simp, } }
1238
1239
end
1239
1240
1240
- lemma pi_mem_of_single_mem [fintype η] [decidable_eq η] {H : subgroup (Π i, f i) } (x : Π i, f i)
1241
- (h : ∀ i, pi.mul_single i (x i) ∈ H) : x ∈ H :=
1242
- pi_mem_of_single_mem_aux finset.univ x (by simp) (λ i _, h i)
1241
+ @[to_additive]
1242
+ lemma pi_mem_of_mul_single_mem [fintype η] [decidable_eq η] {H : subgroup (Π i, f i)}
1243
+ (x : Π i, f i) (h : ∀ i, pi.mul_single i (x i) ∈ H) : x ∈ H :=
1244
+ pi_mem_of_mul_single_mem_aux finset.univ x (by simp) (λ i _, h i)
1243
1245
1244
1246
/-- For finite index types, the `subgroup.pi` is generated by the embeddings of the groups. -/
1247
+ @[to_additive " For finite index types, the `subgroup.pi` is generated by the embeddings of the
1248
+ additive groups." ]
1245
1249
lemma pi_le_iff [decidable_eq η] [fintype η] {H : Π i, subgroup (f i)} {J : subgroup (Π i, f i)} :
1246
1250
pi univ H ≤ J ↔ (∀ i : η, map (monoid_hom.single f i) (H i) ≤ J) :=
1247
1251
begin
1248
1252
split,
1249
1253
{ rintros h i _ ⟨x, hx, rfl⟩, apply h, simpa using hx },
1250
- { exact λ h x hx, pi_mem_of_single_mem x (λ i, h i (mem_map_of_mem _ (hx i trivial))), }
1254
+ { exact λ h x hx, pi_mem_of_mul_single_mem x (λ i, h i (mem_map_of_mem _ (hx i trivial))), }
1251
1255
end
1252
1256
1257
+ @[to_additive]
1253
1258
lemma pi_eq_bot_iff (H : Π i, subgroup (f i)) :
1254
1259
pi set.univ H = ⊥ ↔ ∀ i, H i = ⊥ :=
1255
1260
begin
@@ -1258,7 +1263,7 @@ begin
1258
1263
split,
1259
1264
{ intros h i x hx,
1260
1265
have : monoid_hom.single f i x = 1 :=
1261
- h (monoid_hom.single f i x) ((single_mem_pi i x).mpr (λ _, hx)),
1266
+ h (monoid_hom.single f i x) ((mul_single_mem_pi i x).mpr (λ _, hx)),
1262
1267
simpa using congr_fun this i, },
1263
1268
{ exact λ h x hx, funext (λ i, h _ _ (hx i trivial)), },
1264
1269
end
0 commit comments