1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: continuousAt_of_locally_uniform_approx_of_continuousAt
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: rw [← continuousWithinAt_univ]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
L : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u
⊢ ContinuousAt f x
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
L : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u
⊢ ContinuousWithinAt f univ x

tactic: apply continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (mem_univ _) _
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
L : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u
⊢ ContinuousWithinAt f univ x
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
L : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u
⊢ ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝[univ] x, ∃ F, ContinuousWithinAt F univ x ∧ ∀ y ∈ t, (f y, F y) ∈ u

tactic: simpa only [exists_prop, nhdsWithin_univ, continuousWithinAt_univ] using L
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
L : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u
⊢ ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝[univ] x, ∃ F, ContinuousWithinAt F univ x ∧ ∀ y ∈ t, (f y, F y) ∈ u
state_after: no goals
Theorem: Field.DirectLimit.mul_inv_cancel
File: Mathlib/Algebra/DirectLimit.lean

tactic: rw [inv, dif_neg hp, Classical.choose_spec (DirectLimit.exists_inv G f hp)]
state_before: R : Type u
inst✝⁴ : Ring R
ι : Type v
inst✝³ : Preorder ι
G : ι → Type w
inst✝² : Nonempty ι
inst✝¹ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝ : (i : ι) → Field (G i)
f : (i j : ι) → i ≤ j → G i → G j
f' : (i j : ι) → i ≤ j → G i →+* G j
p : Ring.DirectLimit G f
hp : p ≠ 0
⊢ p * inv G f p = 1
state_after: no goals
Theorem: summable_partition
File: Mathlib/Topology/Algebra/InfiniteSum/Real.lean

tactic: simpa only [← (Set.sigmaEquiv s hs).summable_iff] using summable_sigma_of_nonneg (fun _ ↦ hf _)
state_before: α✝ : Type u_1
β✝ : Type u_2
inst✝ : PseudoMetricSpace α✝
f✝ : ℕ → α✝
a : α✝
α : Type u_3
β : Type u_4
f : β → ℝ
hf : 0 ≤ f
s : α → Set β
hs : ∀ (i : β), ∃! j, i ∈ s j
⊢ Summable f ↔ (∀ (j : α), Summable fun i => f ↑i) ∧ Summable fun j => ∑' (i : ↑(s j)), f ↑i
state_after: no goals
Theorem: LinearMap.lTensor_comp
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: ext m n
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P →ₗ[R] Q
f : N →ₗ[R] P
⊢ lTensor M (g ∘ₗ f) = lTensor M g ∘ₗ lTensor M f
state_after: case H.h.h
R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P →ₗ[R] Q
f : N →ₗ[R] P
m : M
n : N
⊢ (((TensorProduct.mk R M N).compr₂ (lTensor M (g ∘ₗ f))) m) n =
    (((TensorProduct.mk R M N).compr₂ (lTensor M g ∘ₗ lTensor M f)) m) n

tactic: simp only [compr₂_apply, mk_apply, comp_apply, lTensor_tmul]
state_before: case H.h.h
R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g : P →ₗ[R] Q
f : N →ₗ[R] P
m : M
n : N
⊢ (((TensorProduct.mk R M N).compr₂ (lTensor M (g ∘ₗ f))) m) n =
    (((TensorProduct.mk R M N).compr₂ (lTensor M g ∘ₗ lTensor M f)) m) n
state_after: no goals
Theorem: Finset.prod_filter
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [if_pos]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
a : α
h : a ∈ filter p s
⊢ f a = if p a then f a else 1
state_after: case hc
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
a : α
h : a ∈ filter p s
⊢ p a

tactic: simpa using (mem_filter.1 h).2
state_before: case hc
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
a : α
h : a ∈ filter p s
⊢ p a
state_after: no goals

tactic: refine prod_subset (filter_subset _ s) fun x hs h => ?_
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
⊢ (∏ a ∈ filter p s, if p a then f a else 1) = ∏ a ∈ s, if p a then f a else 1
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
x : α
hs : x ∈ s
h : x ∉ filter p s
⊢ (if p x then f x else 1) = 1

tactic: rw [mem_filter, not_and] at h
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
x : α
hs : x ∈ s
h : x ∉ filter p s
⊢ (if p x then f x else 1) = 1
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
x : α
hs : x ∈ s
h : x ∈ s → ¬p x
⊢ (if p x then f x else 1) = 1

tactic: exact if_neg (by simpa using h hs)
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
x : α
hs : x ∈ s
h : x ∈ s → ¬p x
⊢ (if p x then f x else 1) = 1
state_after: no goals

tactic: simpa using h hs
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
p : α → Prop
inst✝ : DecidablePred p
f : α → β
x : α
hs : x ∈ s
h : x ∈ s → ¬p x
⊢ ¬p x
state_after: no goals
Theorem: Nat.not_two_dvd_bit1
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [bit1, Nat.dvd_add_right, Nat.dvd_one]
state_before: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ ¬2 ∣ bit1 n
state_after: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ ¬2 = 1

a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ 2 ∣ bit0 n

tactic: decide
state_before: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ ¬2 = 1
state_after: no goals

tactic: rw [bit0, ← Nat.two_mul]
state_before: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ 2 ∣ bit0 n
state_after: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ 2 ∣ 2 * n

tactic: exact Nat.dvd_mul_right _ _
state_before: a b c d m n✝ k : ℕ
p q : ℕ → Prop
n : ℕ
⊢ 2 ∣ 2 * n
state_after: no goals
Theorem: Set.mk_preimage_prod_left_eq_if
File: Mathlib/Data/Set/Prod.lean

tactic: split_ifs with h <;> simp [h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
inst✝ : DecidablePred fun x => x ∈ t
⊢ (fun a => (a, b)) ⁻¹' s ×ˢ t = if b ∈ t then s else ∅
state_after: no goals
Theorem: Module.End.mapsTo_genEigenspace_of_comm
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: replace h : Commute ((f - μ • (1 : End R M)) ^ k) g :=
  (h.sub_left <| Algebra.commute_algebraMap_left μ g).pow_left k
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
h : Commute f g
μ : R
k : ℕ
⊢ MapsTo ⇑g ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)
state_after: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
μ : R
k : ℕ
h : Commute ((f - μ • 1) ^ k) g
⊢ MapsTo ⇑g ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)

tactic: intro x hx
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
μ : R
k : ℕ
h : Commute ((f - μ • 1) ^ k) g
⊢ MapsTo ⇑g ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)
state_after: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
μ : R
k : ℕ
h : Commute ((f - μ • 1) ^ k) g
x : M
hx : x ∈ ↑((f.genEigenspace μ) k)
⊢ g x ∈ ↑((f.genEigenspace μ) k)

tactic: simp only [SetLike.mem_coe, mem_genEigenspace] at hx ⊢
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
μ : R
k : ℕ
h : Commute ((f - μ • 1) ^ k) g
x : M
hx : x ∈ ↑((f.genEigenspace μ) k)
⊢ g x ∈ ↑((f.genEigenspace μ) k)
state_after: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
μ : R
k : ℕ
h : Commute ((f - μ • 1) ^ k) g
x : M
hx : ((f - μ • 1) ^ k) x = 0
⊢ ((f - μ • 1) ^ k) (g x) = 0

tactic: rw [← LinearMap.comp_apply, ← LinearMap.mul_eq_comp, h.eq, LinearMap.mul_eq_comp,
  LinearMap.comp_apply, hx, map_zero]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f g : End R M
μ : R
k : ℕ
h : Commute ((f - μ • 1) ^ k) g
x : M
hx : ((f - μ • 1) ^ k) x = 0
⊢ ((f - μ • 1) ^ k) (g x) = 0
state_after: no goals
Theorem: mabs_div_comm
File: Mathlib/Algebra/Order/Group/Abs.lean

tactic: rw [← mabs_inv, inv_div]
state_before: α : Type u_1
inst✝¹ : Lattice α
inst✝ : Group α
a✝ b✝ a b : α
⊢ mabs (a / b) = mabs (b / a)
state_after: no goals
Theorem: SimpleGraph.Walk.not_nil_iff
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: cases p <;> simp [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : G.Walk v w
⊢ ¬p.Nil ↔ ∃ u, ∃ (h : G.Adj v u), ∃ q, p = cons h q
state_after: no goals
Theorem: AkraBazziRecurrence.strictAnti_sumCoeffsExp
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

tactic: rw [← Finset.sum_fn]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ StrictAnti fun p => ∑ i : α, a i * b i ^ p
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ StrictAnti (∑ c : α, fun p => a c * b c ^ p)

tactic: refine Finset.sum_induction_nonempty _ _ (fun _ _ => StrictAnti.add) univ_nonempty ?terms
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ StrictAnti (∑ c : α, fun p => a c * b c ^ p)
state_after: case terms
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ x ∈ univ, StrictAnti fun p => a x * b x ^ p

tactic: refine fun i _ => StrictAnti.const_mul ?_ (R.a_pos i)
state_before: case terms
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ x ∈ univ, StrictAnti fun p => a x * b x ^ p
state_after: case terms
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
i : α
x✝ : i ∈ univ
⊢ StrictAnti (HPow.hPow (b i))

tactic: exact Real.strictAnti_rpow_of_base_lt_one (R.b_pos i) (R.b_lt_one i)
state_before: case terms
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
i : α
x✝ : i ∈ univ
⊢ StrictAnti (HPow.hPow (b i))
state_after: no goals
Theorem: List.mapIdx_eq_ofFn
File: Mathlib/Data/List/Indexes.lean

tactic: induction l generalizing f with
| nil => simp
| cons _ _ IH => simp [IH]
state_before: α : Type u
β : Type v
l : List α
f : ℕ → α → β
⊢ mapIdx f l = ofFn fun i => f (↑i) (l.get i)
state_after: no goals

tactic: simp
state_before: case nil
α : Type u
β : Type v
f : ℕ → α → β
⊢ mapIdx f [] = ofFn fun i => f (↑i) ([].get i)
state_after: no goals

tactic: simp [IH]
state_before: case cons
α : Type u
β : Type v
head✝ : α
tail✝ : List α
IH : ∀ (f : ℕ → α → β), mapIdx f tail✝ = ofFn fun i => f (↑i) (tail✝.get i)
f : ℕ → α → β
⊢ mapIdx f (head✝ :: tail✝) = ofFn fun i => f (↑i) ((head✝ :: tail✝).get i)
state_after: no goals
Theorem: Finset.card_dvd_card_image₂_left
File: Mathlib/Data/Finset/NAry.lean

tactic: rw [← image₂_swap]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
hf : ∀ b ∈ t, Injective fun a => f a b
ht : ((fun b => image (fun a => f a b) s) '' ↑t).PairwiseDisjoint id
⊢ s.card ∣ (image₂ f s t).card
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
hf : ∀ b ∈ t, Injective fun a => f a b
ht : ((fun b => image (fun a => f a b) s) '' ↑t).PairwiseDisjoint id
⊢ s.card ∣ (image₂ (fun b a => f a b) t s).card

tactic: exact card_dvd_card_image₂_right hf ht
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
hf : ∀ b ∈ t, Injective fun a => f a b
ht : ((fun b => image (fun a => f a b) s) '' ↑t).PairwiseDisjoint id
⊢ s.card ∣ (image₂ (fun b a => f a b) t s).card
state_after: no goals
Theorem: Finset.truncatedSup_union_right
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: rw [union_comm, truncatedSup_union_left ht hs]
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
inst✝ : DecidableEq α
hs : a ∉ lowerClosure ↑s
ht : a ∈ lowerClosure ↑t
⊢ (s ∪ t).truncatedSup a = t.truncatedSup a
state_after: no goals
Theorem: mapClusterPt_iff
File: Mathlib/Topology/Basic.lean

tactic: simp_rw [MapClusterPt, ClusterPt, inf_neBot_iff_frequently_left, frequently_map]
state_before: X : Type u
Y : Type v
ι✝ : Sort w
α : Type u_1
β : Type u_2
x✝ : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
ι : Type u_3
x : X
F : Filter ι
u : ι → X
⊢ MapClusterPt x F u ↔ ∀ s ∈ 𝓝 x, ∃ᶠ (a : ι) in F, u a ∈ s
state_after: X : Type u
Y : Type v
ι✝ : Sort w
α : Type u_1
β : Type u_2
x✝ : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
ι : Type u_3
x : X
F : Filter ι
u : ι → X
⊢ (∀ {p : X → Prop}, (∀ᶠ (x : X) in 𝓝 x, p x) → ∃ᶠ (a : ι) in F, p (u a)) ↔ ∀ s ∈ 𝓝 x, ∃ᶠ (a : ι) in F, u a ∈ s

tactic: rfl
state_before: X : Type u
Y : Type v
ι✝ : Sort w
α : Type u_1
β : Type u_2
x✝ : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
ι : Type u_3
x : X
F : Filter ι
u : ι → X
⊢ (∀ {p : X → Prop}, (∀ᶠ (x : X) in 𝓝 x, p x) → ∃ᶠ (a : ι) in F, p (u a)) ↔ ∀ s ∈ 𝓝 x, ∃ᶠ (a : ι) in F, u a ∈ s
state_after: no goals
Theorem: AList.union_assoc
File: Mathlib/Data/List/AList.lean

tactic: simp [not_or, or_assoc, and_or_left, and_assoc]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
s₁ s₂ s₃ : AList β
⊢ ∀ (x : α) (y : β x), y ∈ dlookup x (s₁ ∪ s₂ ∪ s₃).entries ↔ y ∈ dlookup x (s₁ ∪ (s₂ ∪ s₃)).entries
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.map_iSup
File: Mathlib/MeasureTheory/OuterMeasure/Operations.lean

tactic: simp only [map_apply, iSup_apply]
state_before: α : Type u_1
β✝ : Type u_2
m✝ : OuterMeasure α
β : Type u_3
ι : Sort u_4
f : α → β
m : ι → OuterMeasure α
s : Set β
⊢ ((map f) (⨆ i, m i)) s = (⨆ i, (map f) (m i)) s
state_after: no goals
Theorem: Subgroup.map_subtype_le_map_subtype
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: apply Subtype.coe_injective
state_before: G : Type u_1
G'✝ : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'✝
inst✝² : Group G''
A : Type u_4
inst✝¹ : AddGroup A
N : Type u_5
inst✝ : Group N
f : G →* N
G' : Subgroup G
H K : Subgroup ↥G'
⊢ Injective ⇑G'.subtype
state_after: no goals
Theorem: sbtw_vadd_const_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: rw [Sbtw, Sbtw, wbtw_vadd_const_iff, (vadd_right_injective p).ne_iff,
  (vadd_right_injective p).ne_iff]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : V
p : P
⊢ Sbtw R (x +ᵥ p) (y +ᵥ p) (z +ᵥ p) ↔ Sbtw R x y z
state_after: no goals
Theorem: MeasureTheory.measure_preimage_eq_zero_iff_of_countable
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [← biUnion_preimage_singleton, measure_biUnion_null_iff hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : Set β
f : α → β
hs : s.Countable
⊢ μ (f ⁻¹' s) = 0 ↔ ∀ x ∈ s, μ (f ⁻¹' {x}) = 0
state_after: no goals
Theorem: Associates.factors_eq_top_iff_zero
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: nontriviality α
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : Associates α
⊢ a.factors = ⊤ ↔ a = 0
state_after: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : Associates α
a✝ : Nontrivial α
⊢ a.factors = ⊤ ↔ a = 0

tactic: exact ⟨fun h ↦ by rwa [← factors_prod a, FactorSet.prod_eq_zero_iff], fun h ↦ h ▸ factors_zero⟩
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : Associates α
a✝ : Nontrivial α
⊢ a.factors = ⊤ ↔ a = 0
state_after: no goals

tactic: rwa [← factors_prod a, FactorSet.prod_eq_zero_iff]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : Associates α
a✝ : Nontrivial α
h : a.factors = ⊤
⊢ a = 0
state_after: no goals
Theorem: ENNReal.iUnion_Ico_coe_nat
File: Mathlib/Data/ENNReal/Basic.lean

tactic: simp only [← Ici_inter_Iio, ← inter_iUnion, iUnion_Iio_coe_nat, diff_eq]
state_before: α : Type u_1
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ ⋃ n, Ico a ↑n = Ici a \ {⊤}
state_after: no goals
Theorem: Ideal.smul_restrictScalars
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: simp_rw [map, Submodule.span_smul_eq, ← Submodule.coe_set_smul,
  Submodule.set_smul_eq_iSup, ← element_smul_restrictScalars, iSup_image]
state_before: R✝ : Type u
S✝ : Type v
F : Type u_1
inst✝¹⁰ : Semiring R✝
inst✝⁹ : Semiring S✝
inst✝⁸ : FunLike F R✝ S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type u_2
inst✝⁷ : FunLike G S✝ R✝
rcg : RingHomClass G S✝ R✝
ι : Sort u_3
R : Type u_4
S : Type u_5
M : Type u_6
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra R S
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
I : Ideal R
N : Submodule S M
⊢ Submodule.restrictScalars R (map (algebraMap R S) I • N) = I • Submodule.restrictScalars R N
state_after: R✝ : Type u
S✝ : Type v
F : Type u_1
inst✝¹⁰ : Semiring R✝
inst✝⁹ : Semiring S✝
inst✝⁸ : FunLike F R✝ S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type u_2
inst✝⁷ : FunLike G S✝ R✝
rcg : RingHomClass G S✝ R✝
ι : Sort u_3
R : Type u_4
S : Type u_5
M : Type u_6
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra R S
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
I : Ideal R
N : Submodule S M
⊢ Submodule.restrictScalars R (⨆ b ∈ ↑I, (algebraMap R S) b • N) =
    ⨆ a ∈ ↑I, Submodule.restrictScalars R ((algebraMap R S) a • N)

tactic: exact (_root_.map_iSup₂ (Submodule.restrictScalarsLatticeHom R S M) _)
state_before: R✝ : Type u
S✝ : Type v
F : Type u_1
inst✝¹⁰ : Semiring R✝
inst✝⁹ : Semiring S✝
inst✝⁸ : FunLike F R✝ S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type u_2
inst✝⁷ : FunLike G S✝ R✝
rcg : RingHomClass G S✝ R✝
ι : Sort u_3
R : Type u_4
S : Type u_5
M : Type u_6
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra R S
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
I : Ideal R
N : Submodule S M
⊢ Submodule.restrictScalars R (⨆ b ∈ ↑I, (algebraMap R S) b • N) =
    ⨆ a ∈ ↑I, Submodule.restrictScalars R ((algebraMap R S) a • N)
state_after: no goals
Theorem: Rat.normalize_mul_left
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: simp [normalize_eq, mk'.injEq, Int.natAbs_mul, Nat.gcd_mul_left,
  Nat.mul_div_mul_left _ _ (Nat.pos_of_ne_zero a0), Int.ofNat_mul,
  Int.mul_ediv_mul_of_pos _ _ (Int.ofNat_pos.2 <| Nat.pos_of_ne_zero a0)]
state_before: d : Nat
n : Int
a : Nat
d0 : d ≠ 0
a0 : a ≠ 0
⊢ normalize (↑a * n) (a * d) ⋯ = normalize n d d0
state_after: no goals
Theorem: hasFDerivAtFilter_id
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L✝ L₁ L₂ : Filter E
x : E
L : Filter E
⊢ ∀ (x_1 : E), 0 = _root_.id x_1 - _root_.id x - (ContinuousLinearMap.id 𝕜 E) (x_1 - x)
state_after: no goals