Skip to content

Commit ccbf874

Browse files
committed
feat(Combinatorics/Additive): more convolution lemmas (leanprover-community#38795)
From AddCombi
1 parent 774cc2a commit ccbf874

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

Mathlib/Combinatorics/Additive/Convolution.lean

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,19 @@ lemma card_inter_smul (A B : Finset G) (x : G) : #(A ∩ (x • B)) = A.convolut
5050
lemma card_smul_inter (A B : Finset G) (x : G) : #((x • A) ∩ B) = A.convolution B⁻¹ x⁻¹ := by
5151
simpa using card_smul_inter_smul _ _ x 1
5252

53+
@[to_additive]
54+
lemma card_inter_smul_inv (A B : Finset G) (x : G) : #(A ∩ (x • B⁻¹)) = A.convolution B x := by
55+
simp [card_inter_smul]
56+
57+
@[to_additive]
58+
lemma card_mul_eq (A B : Finset G) (x : G) :
59+
#{ab ∈ A ×ˢ B | ab.1 * ab.2 = x} = A.convolution B x := rfl
60+
61+
@[to_additive]
62+
lemma card_div_eq (A B : Finset G) (x : G) :
63+
#{ab ∈ A ×ˢ B | ab.1 / ab.2 = x} = A.convolution B⁻¹ x :=
64+
Finset.card_equiv ((Equiv.refl _).prodCongr (.inv _)) (by simp [div_eq_mul_inv])
65+
5366
@[to_additive card_add_neg_eq_addConvolution_neg]
5467
lemma card_mul_inv_eq_convolution_inv (A B : Finset G) (x : G) :
5568
#{ab ∈ A ×ˢ B | ab.1 * ab.2⁻¹ = x} = A.convolution B⁻¹ x :=
@@ -105,4 +118,14 @@ lemma convolution_op_smul_eq_convolution_mul_inv (A B : Finset G) (s x : G) :
105118
rw [← inv_inv (B <• s), inv_op_smul_finset_distrib, ← card_inter_smul, ← card_inter_smul,
106119
smul_smul]
107120

121+
variable [Fintype G]
122+
123+
@[to_additive (attr := simp) univ_addConvolution]
124+
lemma univ_convolution (B : Finset G) (a : G) : univ.convolution B a = #B := by
125+
simp [← card_inter_smul_inv]
126+
127+
@[to_additive (attr := simp) addConvolution_univ]
128+
lemma convolution_univ (A : Finset G) (a : G) : A.convolution univ a = #A := by
129+
simp [← card_inter_smul_inv]
130+
108131
end Finset

0 commit comments

Comments
 (0)