1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Limits.zero_of_comp_mono
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: rw [← zero_comp, cancel_mono] at h
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : Mono g
h : f ≫ g = 0
⊢ f = 0
state_after: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : Mono g
h✝ : f ≫ g = 0
h : f = 0
⊢ f = 0

tactic: exact h
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : Mono g
h✝ : f ≫ g = 0
h : f = 0
⊢ f = 0
state_after: no goals
Theorem: CauSeq.sup_limZero
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

tactic: let ⟨H₁, H₂⟩ := H _ ij
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
⊢ |↑(f ⊔ g) j| < ε
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : |↑f j| < ε
H₂ : |↑g j| < ε
⊢ |↑(f ⊔ g) j| < ε

tactic: rw [abs_lt] at H₁ H₂ ⊢
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : |↑f j| < ε
H₂ : |↑g j| < ε
⊢ |↑(f ⊔ g) j| < ε
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : -ε < ↑f j ∧ ↑f j < ε
H₂ : -ε < ↑g j ∧ ↑g j < ε
⊢ -ε < ↑(f ⊔ g) j ∧ ↑(f ⊔ g) j < ε

tactic: exact ⟨lt_sup_iff.mpr (Or.inl H₁.1), sup_lt_iff.mpr ⟨H₁.2, H₂.2⟩⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : -ε < ↑f j ∧ ↑f j < ε
H₂ : -ε < ↑g j ∧ ↑g j < ε
⊢ -ε < ↑(f ⊔ g) j ∧ ↑(f ⊔ g) j < ε
state_after: no goals
Theorem: Filter.mem_closure
File: Mathlib/Topology/Filter.lean

tactic: simp only [closure_eq_compl_interior_compl, Filter.mem_interior, mem_compl_iff, not_exists,
  not_forall, Classical.not_not, exists_prop, not_and, and_comm, subset_def, mem_Iic,
  le_principal_iff]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
s : Set (Filter α)
l : Filter α
⊢ l ∈ closure s ↔ ∀ t ∈ l, ∃ l' ∈ s, t ∈ l'
state_after: no goals
Theorem: IsPGroup.bot_lt_center
File: Mathlib/GroupTheory/PGroup.lean

tactic: haveI := center_nontrivial hG
state_before: p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
⊢ ⊥ < Subgroup.center G
state_after: p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
this : Nontrivial ↥(Subgroup.center G)
⊢ ⊥ < Subgroup.center G

tactic: classical exact
    bot_lt_iff_ne_bot.mpr ((Subgroup.center G).one_lt_card_iff_ne_bot.mp Finite.one_lt_card)
state_before: p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
this : Nontrivial ↥(Subgroup.center G)
⊢ ⊥ < Subgroup.center G
state_after: no goals

tactic: exact
bot_lt_iff_ne_bot.mpr ((Subgroup.center G).one_lt_card_iff_ne_bot.mp Finite.one_lt_card)
state_before: p : ℕ
G : Type u_1
inst✝⁴ : Group G
hG : IsPGroup p G
hp : Fact (Nat.Prime p)
α : Type u_2
inst✝³ : MulAction G α
inst✝² : Fintype α
inst✝¹ : Nontrivial G
inst✝ : Finite G
this : Nontrivial ↥(Subgroup.center G)
⊢ ⊥ < Subgroup.center G
state_after: no goals
Theorem: SimpleGraph.Walk.toSubgraph_le_induce_support
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: convert Subgraph.le_induce_top_verts
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 u v
⊢ p.toSubgraph ≤ ⊤.induce {v_1 | v_1 ∈ p.support}
state_after: case h.e'_4.h.e'_4
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 u v
⊢ {v_1 | v_1 ∈ p.support} = p.toSubgraph.verts

tactic: exact p.verts_toSubgraph.symm
state_before: case h.e'_4.h.e'_4
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 u v
⊢ {v_1 | v_1 ∈ p.support} = p.toSubgraph.verts
state_after: no goals
Theorem: contDiff_top_iff_fderiv
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simp only [← contDiffOn_univ, ← differentiableOn_univ, ← fderivWithin_univ]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiff 𝕜 ⊤ f ↔ Differentiable 𝕜 f ∧ ContDiff 𝕜 ⊤ fun y => fderiv 𝕜 f y
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffOn 𝕜 ⊤ f univ ↔ DifferentiableOn 𝕜 f univ ∧ ContDiffOn 𝕜 ⊤ (fun y => fderivWithin 𝕜 f univ y) univ

tactic: rw [contDiffOn_top_iff_fderivWithin uniqueDiffOn_univ]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffOn 𝕜 ⊤ f univ ↔ DifferentiableOn 𝕜 f univ ∧ ContDiffOn 𝕜 ⊤ (fun y => fderivWithin 𝕜 f univ y) univ
state_after: no goals
Theorem: PNat.mod_add_div
File: Mathlib/Data/PNat/Basic.lean

tactic: let h₀ := Nat.mod_add_div (m : ℕ) (k : ℕ)
state_before: m k : ℕ+
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m
state_after: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m

tactic: have : ¬((m : ℕ) % (k : ℕ) = 0 ∧ (m : ℕ) / (k : ℕ) = 0) := by
  rintro ⟨hr, hq⟩
  rw [hr, hq, mul_zero, zero_add] at h₀
  exact (m.ne_zero h₀.symm).elim
state_before: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m
state_after: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
this : ¬(↑m % ↑k = 0 ∧ ↑m / ↑k = 0)
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m

tactic: have := modDivAux_spec k ((m : ℕ) % (k : ℕ)) ((m : ℕ) / (k : ℕ)) this
state_before: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
this : ¬(↑m % ↑k = 0 ∧ ↑m / ↑k = 0)
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m
state_after: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
this✝ : ¬(↑m % ↑k = 0 ∧ ↑m / ↑k = 0)
this : ↑(k.modDivAux (↑m % ↑k) (↑m / ↑k)).1 + ↑k * (k.modDivAux (↑m % ↑k) (↑m / ↑k)).2 = ↑m % ↑k + ↑k * (↑m / ↑k)
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m

tactic: exact this.trans h₀
state_before: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
this✝ : ¬(↑m % ↑k = 0 ∧ ↑m / ↑k = 0)
this : ↑(k.modDivAux (↑m % ↑k) (↑m / ↑k)).1 + ↑k * (k.modDivAux (↑m % ↑k) (↑m / ↑k)).2 = ↑m % ↑k + ↑k * (↑m / ↑k)
⊢ ↑(m.mod k) + ↑k * m.div k = ↑m
state_after: no goals

tactic: rintro ⟨hr, hq⟩
state_before: m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
⊢ ¬(↑m % ↑k = 0 ∧ ↑m / ↑k = 0)
state_after: case intro
m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
hr : ↑m % ↑k = 0
hq : ↑m / ↑k = 0
⊢ False

tactic: rw [hr, hq, mul_zero, zero_add] at h₀
state_before: case intro
m k : ℕ+
h₀ : ↑m % ↑k + ↑k * (↑m / ↑k) = ↑m := Nat.mod_add_div ↑m ↑k
hr : ↑m % ↑k = 0
hq : ↑m / ↑k = 0
⊢ False
state_after: case intro
m k : ℕ+
h₀ : 0 = ↑m
hr : ↑m % ↑k = 0
hq : ↑m / ↑k = 0
⊢ False

tactic: exact (m.ne_zero h₀.symm).elim
state_before: case intro
m k : ℕ+
h₀ : 0 = ↑m
hr : ↑m % ↑k = 0
hq : ↑m / ↑k = 0
⊢ False
state_after: no goals
Theorem: finsum_smul
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rcases eq_or_ne x 0 with (rfl | hx)
state_before: G : Type u_1
M✝ : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝⁵ : CommMonoid M✝
inst✝⁴ : CommMonoid N
R : Type u_7
M : Type u_8
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
f : ι → R
x : M
⊢ (∑ᶠ (i : ι), f i) • x = ∑ᶠ (i : ι), f i • x
state_after: case inl
G : Type u_1
M✝ : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝⁵ : CommMonoid M✝
inst✝⁴ : CommMonoid N
R : Type u_7
M : Type u_8
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
f : ι → R
⊢ (∑ᶠ (i : ι), f i) • 0 = ∑ᶠ (i : ι), f i • 0

case inr
G : Type u_1
M✝ : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝⁵ : CommMonoid M✝
inst✝⁴ : CommMonoid N
R : Type u_7
M : Type u_8
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
f : ι → R
x : M
hx : x ≠ 0
⊢ (∑ᶠ (i : ι), f i) • x = ∑ᶠ (i : ι), f i • x

tactic: simp
state_before: case inl
G : Type u_1
M✝ : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝⁵ : CommMonoid M✝
inst✝⁴ : CommMonoid N
R : Type u_7
M : Type u_8
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
f : ι → R
⊢ (∑ᶠ (i : ι), f i) • 0 = ∑ᶠ (i : ι), f i • 0
state_after: no goals

tactic: exact ((smulAddHom R M).flip x).map_finsum_of_injective (smul_left_injective R hx) _
state_before: case inr
G : Type u_1
M✝ : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝⁵ : CommMonoid M✝
inst✝⁴ : CommMonoid N
R : Type u_7
M : Type u_8
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
f : ι → R
x : M
hx : x ≠ 0
⊢ (∑ᶠ (i : ι), f i) • x = ∑ᶠ (i : ι), f i • x
state_after: no goals
Theorem: omegaLimit_subset_of_tendsto
File: Mathlib/Dynamics/OmegaLimit.lean

tactic: refine iInter₂_mono' fun u hu ↦ ⟨m ⁻¹' u, tendsto_def.mp hf _ hu, ?_⟩
state_before: τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
m : τ → τ
f₁ f₂ : Filter τ
hf : Tendsto m f₁ f₂
⊢ ω f₁ (fun t x => ϕ (m t) x) s ⊆ ω f₂ ϕ s
state_after: τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
m : τ → τ
f₁ f₂ : Filter τ
hf : Tendsto m f₁ f₂
u : Set τ
hu : u ∈ f₂
⊢ closure (image2 (fun t x => ϕ (m t) x) (m ⁻¹' u) s) ⊆ closure (image2 ϕ u s)

tactic: rw [← image2_image_left]
state_before: τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
m : τ → τ
f₁ f₂ : Filter τ
hf : Tendsto m f₁ f₂
u : Set τ
hu : u ∈ f₂
⊢ closure (image2 (fun t x => ϕ (m t) x) (m ⁻¹' u) s) ⊆ closure (image2 ϕ u s)
state_after: τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
m : τ → τ
f₁ f₂ : Filter τ
hf : Tendsto m f₁ f₂
u : Set τ
hu : u ∈ f₂
⊢ closure (image2 ϕ (m '' (m ⁻¹' u)) s) ⊆ closure (image2 ϕ u s)

tactic: exact closure_mono (image2_subset (image_preimage_subset _ _) Subset.rfl)
state_before: τ : Type u_1
α : Type u_2
β : Type u_3
ι : Type u_4
inst✝ : TopologicalSpace β
f : Filter τ
ϕ : τ → α → β
s s₁ s₂ : Set α
m : τ → τ
f₁ f₂ : Filter τ
hf : Tendsto m f₁ f₂
u : Set τ
hu : u ∈ f₂
⊢ closure (image2 ϕ (m '' (m ⁻¹' u)) s) ⊆ closure (image2 ϕ u s)
state_after: no goals
Theorem: CategoryTheory.transferNatTransSelf_adjunction_id
File: Mathlib/CategoryTheory/Adjunction/Mates.lean

tactic: dsimp [transferNatTransSelf, transferNatTrans, Adjunction.id]
state_before: C : Type u₁
D : Type u₂
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Category.{v₂, u₂} D
L₁ L₂ L₃ : C ⥤ D
R₁ R₂ R₃ : D ⥤ C
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
L R : C ⥤ C
adj : L ⊣ R
f : 𝟭 C ⟶ L
X : C
⊢ ((transferNatTransSelf adj Adjunction.id) f).app X = f.app (R.obj X) ≫ adj.counit.app X
state_after: C : Type u₁
D : Type u₂
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Category.{v₂, u₂} D
L₁ L₂ L₃ : C ⥤ D
R₁ R₂ R₃ : D ⥤ C
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
L R : C ⥤ C
adj : L ⊣ R
f : 𝟭 C ⟶ L
X : C
⊢ 𝟙 (R.obj X) ≫ (𝟙 (R.obj X) ≫ (𝟙 (R.obj X) ≫ f.app (R.obj X) ≫ 𝟙 (L.obj (R.obj X))) ≫ adj.counit.app X) ≫ 𝟙 X =
    f.app (R.obj X) ≫ adj.counit.app X

tactic: simp only [comp_id, id_comp]
state_before: C : Type u₁
D : Type u₂
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Category.{v₂, u₂} D
L₁ L₂ L₃ : C ⥤ D
R₁ R₂ R₃ : D ⥤ C
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
L R : C ⥤ C
adj : L ⊣ R
f : 𝟭 C ⟶ L
X : C
⊢ 𝟙 (R.obj X) ≫ (𝟙 (R.obj X) ≫ (𝟙 (R.obj X) ≫ f.app (R.obj X) ≫ 𝟙 (L.obj (R.obj X))) ≫ adj.counit.app X) ≫ 𝟙 X =
    f.app (R.obj X) ≫ adj.counit.app X
state_after: no goals
Theorem: MeasureTheory.sum_restrict_disjointed_spanningSets
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: rw [← restrict_iUnion (disjoint_disjointed _)
    (MeasurableSet.disjointed (measurable_spanningSets _)),
  iUnion_disjointed, iUnion_spanningSets, restrict_univ]
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
⊢ (sum fun n => μ.restrict (disjointed (spanningSets μ) n)) = μ
state_after: no goals
Theorem: CategoryTheory.Presheaf.isLocallyInjective_of_isLocallyInjective_fac
File: Mathlib/CategoryTheory/Sites/LocallyInjective.lean

tactic: subst fac
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
φψ : F₁ ⟶ F₃
fac : φ ≫ ψ = φψ
inst✝ : IsLocallyInjective J φψ
⊢ IsLocallyInjective J φ
state_after: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : IsLocallyInjective J (φ ≫ ψ)
⊢ IsLocallyInjective J φ

tactic: exact isLocallyInjective_of_isLocallyInjective J φ ψ
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
inst✝ : IsLocallyInjective J (φ ≫ ψ)
⊢ IsLocallyInjective J φ
state_after: no goals
Theorem: Nat.card_of_isEmpty
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: simp [Nat.card]
state_before: α : Type u_1
β : Type u_2
inst✝ : IsEmpty α
⊢ Nat.card α = 0
state_after: no goals
Theorem: Ordinal.CNF_of_le_one
File: Mathlib/SetTheory/Ordinal/CantorNormalForm.lean

tactic: rcases le_one_iff.1 hb with (rfl | rfl)
state_before: b o : Ordinal.{u_1}
hb : b ≤ 1
ho : o ≠ 0
⊢ CNF b o = [(0, o)]
state_after: case inl
o : Ordinal.{u_1}
ho : o ≠ 0
hb : 0 ≤ 1
⊢ CNF 0 o = [(0, o)]

case inr
o : Ordinal.{u_1}
ho : o ≠ 0
hb : 1 ≤ 1
⊢ CNF 1 o = [(0, o)]

tactic: exact zero_CNF ho
state_before: case inl
o : Ordinal.{u_1}
ho : o ≠ 0
hb : 0 ≤ 1
⊢ CNF 0 o = [(0, o)]
state_after: no goals

tactic: exact one_CNF ho
state_before: case inr
o : Ordinal.{u_1}
ho : o ≠ 0
hb : 1 ≤ 1
⊢ CNF 1 o = [(0, o)]
state_after: no goals
Theorem: Set.encard_diff_add_encard_of_subset
File: Mathlib/Data/Set/Card.lean

tactic: rw [← encard_union_eq disjoint_sdiff_left, diff_union_self, union_eq_self_of_subset_right h]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : s ⊆ t
⊢ (t \ s).encard + s.encard = t.encard
state_after: no goals
Theorem: analyticOn_cexp
File: Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean

tactic: rw [analyticOn_univ_iff_differentiable]
state_before: E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z : ℂ
x : E
s : Set E
⊢ AnalyticOn ℂ cexp univ
state_after: E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z : ℂ
x : E
s : Set E
⊢ Differentiable ℂ cexp

tactic: exact differentiable_exp
state_before: E : Type
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
z : ℂ
x : E
s : Set E
⊢ Differentiable ℂ cexp
state_after: no goals
Theorem: DihedralGroup.r_one_pow_n
File: Mathlib/GroupTheory/SpecificGroups/Dihedral.lean

tactic: rw [r_one_pow, one_def]
state_before: n : ℕ
⊢ r 1 ^ n = 1
state_after: n : ℕ
⊢ r ↑n = r 0

tactic: congr 1
state_before: n : ℕ
⊢ r ↑n = r 0
state_after: case e_a
n : ℕ
⊢ ↑n = 0

tactic: exact ZMod.natCast_self _
state_before: case e_a
n : ℕ
⊢ ↑n = 0
state_after: no goals
Theorem: MeasureTheory.measure_diff'
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [add_comm, measure_add_diff hm, union_comm]
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 s : Set α
hm : MeasurableSet t
h_fin : μ t ≠ ⊤
⊢ μ (s \ t) + μ t = μ (s ∪ t)
state_after: no goals
Theorem: ChartedSpace.liftPropAt_iff
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: rw [LiftPropAt, liftPropWithinAt_iff', continuousWithinAt_univ, preimage_univ]
state_before: H : Type u_1
M : Type u_2
H' : Type u_3
M' : Type u_4
X : Type u_5
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
P : (H → H') → Set H → H → Prop
f : M → M'
x : M
⊢ LiftPropAt P f x ↔ ContinuousAt f x ∧ P (↑(chartAt H' (f x)) ∘ f ∘ ↑(chartAt H x).symm) univ (↑(chartAt H x) x)
state_after: no goals
Theorem: map_mem_maximals
File: Mathlib/Order/Minimal.lean

tactic: exact hf h₂ h₁
state_before: α : Type u_1
β : Type u_2
r✝ r₁ r₂ : α → α → Prop
s✝ t : Set α
a✝ b : α
inst✝ : PartialOrder α
f : α → β
r : α → α → Prop
s : β → β → Prop
x : Set α
hf : ∀ ⦃a a' : α⦄, a ∈ x → a' ∈ x → (r a a' ↔ s (f a) (f a'))
a : α
ha : a ∈ maximals r x
x✝¹ x✝ : α
h₁ : x✝¹ ∈ x
h₂ : x✝ ∈ x
⊢ r x✝ x✝¹ ↔ s (f x✝) (f x✝¹)
state_after: no goals
Theorem: Pretrivialization.preimage_symm_proj_inter
File: Mathlib/Topology/FiberBundle/Trivialization.lean

tactic: ext ⟨x, y⟩
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
s : Set B
⊢ ↑e.symm ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ = (s ∩ e.baseSet) ×ˢ univ
state_after: case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ (x, y) ∈ ↑e.symm ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ

tactic: suffices x ∈ e.baseSet → (proj (e.toPartialEquiv.symm (x, y)) ∈ s ↔ x ∈ s) by
  simpa only [prod_mk_mem_set_prod_eq, mem_inter_iff, and_true_iff, mem_univ, and_congr_left_iff]
state_before: case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ (x, y) ∈ ↑e.symm ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ
state_after: case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ x ∈ e.baseSet → (proj (↑e.symm (x, y)) ∈ s ↔ x ∈ s)

tactic: intro h
state_before: case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ x ∈ e.baseSet → (proj (↑e.symm (x, y)) ∈ s ↔ x ∈ s)
state_after: case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
h : x ∈ e.baseSet
⊢ proj (↑e.symm (x, y)) ∈ s ↔ x ∈ s

tactic: rw [e.proj_symm_apply' h]
state_before: case h.mk
ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
h : x ∈ e.baseSet
⊢ proj (↑e.symm (x, y)) ∈ s ↔ x ∈ s
state_after: no goals

tactic: simpa only [prod_mk_mem_set_prod_eq, mem_inter_iff, and_true_iff, mem_univ, and_congr_left_iff]
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
this : x ∈ e.baseSet → (proj (↑e.symm (x, y)) ∈ s ↔ x ∈ s)
⊢ (x, y) ∈ ↑e.symm ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ
state_after: no goals
Theorem: Computability.Encoding.encode_injective
File: Mathlib/Computability/Encoding.lean

tactic: refine fun _ _ h => Option.some_injective _ ?_
state_before: α : Type u
e : Encoding α
⊢ Function.Injective e.encode
state_after: α : Type u
e : Encoding α
x✝¹ x✝ : α
h : e.encode x✝¹ = e.encode x✝
⊢ some x✝¹ = some x✝

tactic: rw [← e.decode_encode, ← e.decode_encode, h]
state_before: α : Type u
e : Encoding α
x✝¹ x✝ : α
h : e.encode x✝¹ = e.encode x✝
⊢ some x✝¹ = some x✝
state_after: no goals
Theorem: Matrix.neg_vecMul_neg
File: Mathlib/Data/Matrix/Basic.lean

tactic: rw [vecMul_neg, neg_vecMul, neg_neg]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocRing α
inst✝ : Fintype m
v : m → α
A : Matrix m n α
⊢ -v ᵥ* -A = v ᵥ* A
state_after: no goals
Theorem: Mathlib.Meta.NormNum.minFacHelper_2
File: Mathlib/Tactic/NormNum/Prime.lean

tactic: refine minFacHelper_1 e h λ h2 ↦ ?_
state_before: n k k' : ℕ
e : k + 2 = k'
nk : ¬Nat.Prime k
h : MinFacHelper n k
⊢ MinFacHelper n k'
state_after: n k k' : ℕ
e : k + 2 = k'
nk : ¬Nat.Prime k
h : MinFacHelper n k
h2 : n.minFac = k
⊢ False

tactic: rw [← h2] at nk
state_before: n k k' : ℕ
e : k + 2 = k'
nk : ¬Nat.Prime k
h : MinFacHelper n k
h2 : n.minFac = k
⊢ False
state_after: n k k' : ℕ
e : k + 2 = k'
nk : ¬Nat.Prime n.minFac
h : MinFacHelper n k
h2 : n.minFac = k
⊢ False

tactic: exact nk <| minFac_prime h.one_lt.ne'
state_before: n k k' : ℕ
e : k + 2 = k'
nk : ¬Nat.Prime n.minFac
h : MinFacHelper n k
h2 : n.minFac = k
⊢ False
state_after: no goals
Theorem: Units.dvd_mul_right
File: Mathlib/Algebra/Divisibility/Units.lean

tactic: rw [← mul_assoc, ← Eq, Units.mul_inv_cancel_right]
state_before: α : Type u_1
inst✝ : Monoid α
a b : α
u : αˣ
x✝ : a ∣ b * ↑u
c : α
Eq : b * ↑u = a * c
⊢ b = a * (c * ↑u⁻¹)
state_after: no goals
Theorem: Unitization.norm_eq_sup
File: Mathlib/Analysis/NormedSpace/Unitization.lean

tactic: rw [norm_def, splitMul_apply, Prod.norm_def, sup_eq_max]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NonUnitalNormedRing A
inst✝³ : NormedSpace 𝕜 A
inst✝² : IsScalarTower 𝕜 A A
inst✝¹ : SMulCommClass 𝕜 A A
inst✝ : RegularNormedAlgebra 𝕜 A
x : Unitization 𝕜 A
⊢ ‖x‖ = ‖x.fst‖ ⊔ ‖(algebraMap 𝕜 (A →L[𝕜] A)) x.fst + (mul 𝕜 A) x.snd‖
state_after: no goals