1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ProbabilityTheory.gaussianReal_absolutelyContinuous'
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: rw [gaussianReal_of_var_ne_zero _ hv]
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ℙ ≪ gaussianReal μ v
state_after: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ℙ ≪ ℙ.withDensity (gaussianPDF μ v)

tactic: refine withDensity_absolutelyContinuous' ?_ ?_
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ℙ ≪ ℙ.withDensity (gaussianPDF μ v)
state_after: case refine_1
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ AEMeasurable (gaussianPDF μ v) ℙ

case refine_2
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ∀ᵐ (x : ℝ), gaussianPDF μ v x ≠ 0

tactic: exact (measurable_gaussianPDF _ _).aemeasurable
state_before: case refine_1
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ AEMeasurable (gaussianPDF μ v) ℙ
state_after: no goals

tactic: exact ae_of_all _ (fun _ ↦ (gaussianPDF_pos _ hv _).ne')
state_before: case refine_2
μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ∀ᵐ (x : ℝ), gaussianPDF μ v x ≠ 0
state_after: no goals
Theorem: differentiable_const_sub_iff
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: simp [sub_eq_add_neg]
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
c : F
⊢ (Differentiable 𝕜 fun y => c - f y) ↔ Differentiable 𝕜 f
state_after: no goals
Theorem: Set.univ_pi_update
File: Mathlib/Data/Set/Prod.lean

tactic: rw [compl_eq_univ_diff, ← pi_update_of_mem (mem_univ _)]
state_before: ι : Type u_1
α : ι → Type u_2
β✝ : ι → Type u_3
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i✝ : ι
inst✝ : DecidableEq ι
β : ι → Type u_4
i : ι
f : (j : ι) → α j
a : α i
t : (j : ι) → α j → Set (β j)
⊢ (univ.pi fun j => t j (update f i a j)) = {x | x i ∈ t i a} ∩ {i}ᶜ.pi fun j => t j (f j)
state_after: no goals
Theorem: Filter.cofinite.bliminf_set_eq
File: Mathlib/Order/LiminfLimsup.lean

tactic: rw [← compl_inj_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ bliminf s cofinite p = {x | {n | p n ∧ x ∉ s n}.Finite}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ (bliminf s cofinite p)ᶜ = {x | {n | p n ∧ x ∉ s n}.Finite}ᶜ

tactic: simp only [bliminf_eq_iSup_biInf, compl_iInf, compl_iSup, ← blimsup_eq_iInf_biSup,
  cofinite.blimsup_set_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ (bliminf s cofinite p)ᶜ = {x | {n | p n ∧ x ∉ s n}.Finite}ᶜ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ {x | {n | p n ∧ x ∈ (s n)ᶜ}.Infinite} = {x | {n | p n ∧ x ∉ s n}.Finite}ᶜ

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ {x | {n | p n ∧ x ∈ (s n)ᶜ}.Infinite} = {x | {n | p n ∧ x ∉ s n}.Finite}ᶜ
state_after: no goals
Theorem: Int.isCompl_even_odd
File: Mathlib/Algebra/Order/Ring/Int.lean

tactic: simp [← Set.compl_setOf, isCompl_compl]
state_before: ⊢ IsCompl {n | Even n} {n | Odd n}
state_after: no goals
Theorem: Matrix.transpose_col
File: Mathlib/Data/Matrix/RowCol.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
v : m → α
⊢ (col ι v)ᵀ = row ι v
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
v : m → α
i✝ : ι
j✝ : m
⊢ (col ι v)ᵀ i✝ j✝ = row ι v i✝ j✝

tactic: rfl
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
v : m → α
i✝ : ι
j✝ : m
⊢ (col ι v)ᵀ i✝ j✝ = row ι v i✝ j✝
state_after: no goals
Theorem: Algebra.ringChar_eq
File: Mathlib/Algebra/CharP/Algebra.lean

tactic: rw [ringChar.eq_iff, Algebra.charP_iff K L]
state_before: K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : CommSemiring L
inst✝¹ : Nontrivial L
inst✝ : Algebra K L
⊢ ringChar K = ringChar L
state_after: K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : CommSemiring L
inst✝¹ : Nontrivial L
inst✝ : Algebra K L
⊢ CharP L (ringChar L)

tactic: apply ringChar.charP
state_before: K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : CommSemiring L
inst✝¹ : Nontrivial L
inst✝ : Algebra K L
⊢ CharP L (ringChar L)
state_after: no goals
Theorem: Complex.integral_exp_neg_rpow
File: Mathlib/MeasureTheory/Integral/Gamma.lean

tactic: convert (integral_rpow_mul_exp_neg_rpow hp (by linarith : (-2:ℝ) < 0)) using 1
state_before: p : ℝ
hp : 1 ≤ p
⊢ ∫ (x : ℂ), rexp (-‖x‖ ^ p) = π * Real.Gamma (2 / p + 1)
state_after: case h.e'_2
p : ℝ
hp : 1 ≤ p
⊢ ∫ (x : ℂ), rexp (-‖x‖ ^ p) = ∫ (x : ℂ), ‖x‖ ^ 0 * rexp (-‖x‖ ^ p)

case h.e'_3
p : ℝ
hp : 1 ≤ p
⊢ π * Real.Gamma (2 / p + 1) = 2 * π / p * Real.Gamma ((0 + 2) / p)

tactic: linarith
state_before: p : ℝ
hp : 1 ≤ p
⊢ -2 < 0
state_after: no goals

tactic: simp_rw [norm_eq_abs, rpow_zero, one_mul]
state_before: case h.e'_2
p : ℝ
hp : 1 ≤ p
⊢ ∫ (x : ℂ), rexp (-‖x‖ ^ p) = ∫ (x : ℂ), ‖x‖ ^ 0 * rexp (-‖x‖ ^ p)
state_after: no goals

tactic: rw [zero_add, Real.Gamma_add_one (div_ne_zero two_ne_zero (by linarith))]
state_before: case h.e'_3
p : ℝ
hp : 1 ≤ p
⊢ π * Real.Gamma (2 / p + 1) = 2 * π / p * Real.Gamma ((0 + 2) / p)
state_after: case h.e'_3
p : ℝ
hp : 1 ≤ p
⊢ π * (2 / p * Real.Gamma (2 / p)) = 2 * π / p * Real.Gamma (2 / p)

tactic: ring
state_before: case h.e'_3
p : ℝ
hp : 1 ≤ p
⊢ π * (2 / p * Real.Gamma (2 / p)) = 2 * π / p * Real.Gamma (2 / p)
state_after: no goals

tactic: linarith
state_before: p : ℝ
hp : 1 ≤ p
⊢ p ≠ 0
state_after: no goals
Theorem: List.rdrop_add
File: Mathlib/Data/List/DropRight.lean

tactic: simp_rw [rdrop_eq_reverse_drop_reverse, reverse_reverse, drop_drop, Nat.add_comm]
state_before: α : Type u_1
p : α → Bool
l : List α
n i j : ℕ
⊢ (l.rdrop i).rdrop j = l.rdrop (i + j)
state_after: no goals
Theorem: Mathlib.Meta.NormNum.isNat_ratCast
File: Mathlib/Tactic/NormNum/Inv.lean

tactic: simp
state_before: R : Type u_1
inst✝ : DivisionRing R
n✝ : ℕ
⊢ ↑↑n✝ = ↑n✝
state_after: no goals
Theorem: Subgroup.set_mul_normal_comm
File: Mathlib/Algebra/Group/Subgroup/Pointwise.lean

tactic: rw [← iUnion_mul_left_image, ← iUnion_mul_right_image]
state_before: α : Type u_1
G : Type u_2
A : Type u_3
S : Type u_4
inst✝¹ : Group G
inst✝ : AddGroup A
s✝ s : Set G
N : Subgroup G
hN : N.Normal
⊢ s * ↑N = ↑N * s
state_after: α : Type u_1
G : Type u_2
A : Type u_3
S : Type u_4
inst✝¹ : Group G
inst✝ : AddGroup A
s✝ s : Set G
N : Subgroup G
hN : N.Normal
⊢ ⋃ a ∈ s, (fun x => a * x) '' ↑N = ⋃ a ∈ s, (fun x => x * a) '' ↑N

tactic: simp only [image_mul_left, image_mul_right, Set.preimage, SetLike.mem_coe, hN.mem_comm_iff]
state_before: α : Type u_1
G : Type u_2
A : Type u_3
S : Type u_4
inst✝¹ : Group G
inst✝ : AddGroup A
s✝ s : Set G
N : Subgroup G
hN : N.Normal
⊢ ⋃ a ∈ s, (fun x => a * x) '' ↑N = ⋃ a ∈ s, (fun x => x * a) '' ↑N
state_after: no goals
Theorem: CategoryTheory.Endofunctor.Algebra.iso_of_iso
File: Mathlib/CategoryTheory/Endofunctor/Algebra.lean

tactic: rw [IsIso.eq_comp_inv f.1, Category.assoc, ← f.h]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ C
A A₀ A₁ A₂ : Algebra F
f✝ : A₀ ⟶ A₁
g : A₁ ⟶ A₂
f : A₀ ⟶ A₁
inst✝ : IsIso f.f
⊢ F.map (inv f.f) ≫ A₀.str = A₁.str ≫ inv f.f
state_after: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ C
A A₀ A₁ A₂ : Algebra F
f✝ : A₀ ⟶ A₁
g : A₁ ⟶ A₂
f : A₀ ⟶ A₁
inst✝ : IsIso f.f
⊢ F.map (inv f.f) ≫ F.map f.f ≫ A₁.str = A₁.str

tactic: simp
state_before: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ C
A A₀ A₁ A₂ : Algebra F
f✝ : A₀ ⟶ A₁
g : A₁ ⟶ A₂
f : A₀ ⟶ A₁
inst✝ : IsIso f.f
⊢ F.map (inv f.f) ≫ F.map f.f ≫ A₁.str = A₁.str
state_after: no goals

tactic: aesop_cat
state_before: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ C
A A₀ A₁ A₂ : Algebra F
f✝ : A₀ ⟶ A₁
g : A₁ ⟶ A₂
f : A₀ ⟶ A₁
inst✝ : IsIso f.f
⊢ f ≫ { f := inv f.f, h := ⋯ } = 𝟙 A₀
state_after: no goals

tactic: aesop_cat
state_before: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ C
A A₀ A₁ A₂ : Algebra F
f✝ : A₀ ⟶ A₁
g : A₁ ⟶ A₂
f : A₀ ⟶ A₁
inst✝ : IsIso f.f
⊢ { f := inv f.f, h := ⋯ } ≫ f = 𝟙 A₁
state_after: no goals
Theorem: hasDerivAt_of_hasDerivAt_of_ne'
File: Mathlib/Analysis/Calculus/FDeriv/Extend.lean

tactic: rcases eq_or_ne y x with (rfl | hne)
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f g : ℝ → E
x : ℝ
f_diff : ∀ (y : ℝ), y ≠ x → HasDerivAt f (g y) y
hf : ContinuousAt f x
hg : ContinuousAt g x
y : ℝ
⊢ HasDerivAt f (g y) y
state_after: case inl
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f g : ℝ → E
y : ℝ
f_diff : ∀ (y_1 : ℝ), y_1 ≠ y → HasDerivAt f (g y_1) y_1
hf : ContinuousAt f y
hg : ContinuousAt g y
⊢ HasDerivAt f (g y) y

case inr
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f g : ℝ → E
x : ℝ
f_diff : ∀ (y : ℝ), y ≠ x → HasDerivAt f (g y) y
hf : ContinuousAt f x
hg : ContinuousAt g x
y : ℝ
hne : y ≠ x
⊢ HasDerivAt f (g y) y

tactic: exact hasDerivAt_of_hasDerivAt_of_ne f_diff hf hg
state_before: case inl
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f g : ℝ → E
y : ℝ
f_diff : ∀ (y_1 : ℝ), y_1 ≠ y → HasDerivAt f (g y_1) y_1
hf : ContinuousAt f y
hg : ContinuousAt g y
⊢ HasDerivAt f (g y) y
state_after: no goals

tactic: exact f_diff y hne
state_before: case inr
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f g : ℝ → E
x : ℝ
f_diff : ∀ (y : ℝ), y ≠ x → HasDerivAt f (g y) y
hf : ContinuousAt f x
hg : ContinuousAt g x
y : ℝ
hne : y ≠ x
⊢ HasDerivAt f (g y) y
state_after: no goals
Theorem: padicValNat.prime_pow
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: rw [padicValNat.pow _ (@Fact.out p.Prime).ne_zero, padicValNat_self, mul_one]
state_before: p a b : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
⊢ padicValNat p (p ^ n) = n
state_after: no goals
Theorem: Set.projIic_coe
File: Mathlib/Order/Interval/Set/ProjIcc.lean

tactic: cases x
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x✝ : α
x : ↑(Iic b)
⊢ projIic b ↑x = x
state_after: case mk
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x val✝ : α
property✝ : val✝ ∈ Iic b
⊢ projIic b ↑⟨val✝, property✝⟩ = ⟨val✝, property✝⟩

tactic: apply projIic_of_mem
state_before: case mk
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x val✝ : α
property✝ : val✝ ∈ Iic b
⊢ projIic b ↑⟨val✝, property✝⟩ = ⟨val✝, property✝⟩
state_after: no goals
Theorem: Submodule.one_le_one_div
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: constructor
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ 1 ≤ 1 / I ↔ I ≤ 1
state_after: case mp
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ 1 ≤ 1 / I → I ≤ 1

case mpr
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ I ≤ 1 → 1 ≤ 1 / I

tactic: all_goals intro hI
state_before: case mp
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ 1 ≤ 1 / I → I ≤ 1

case mpr
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ I ≤ 1 → 1 ≤ 1 / I
state_after: case mp
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : 1 ≤ 1 / I
⊢ I ≤ 1

case mpr
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : I ≤ 1
⊢ 1 ≤ 1 / I

tactic: intro hI
state_before: case mpr
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ I ≤ 1 → 1 ≤ 1 / I
state_after: case mpr
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : I ≤ 1
⊢ 1 ≤ 1 / I

tactic: rwa [le_div_iff_mul_le, one_mul] at hI
state_before: case mp
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : 1 ≤ 1 / I
⊢ I ≤ 1
state_after: no goals

tactic: rwa [le_div_iff_mul_le, one_mul]
state_before: case mpr
ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : I ≤ 1
⊢ 1 ≤ 1 / I
state_after: no goals
Theorem: inv_mul_lt_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [inv_eq_one_div, mul_comm, ← div_eq_mul_one_div]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : 0 < b
⊢ b⁻¹ * a < c ↔ a < b * c
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : 0 < b
⊢ a / b < c ↔ a < b * c

tactic: exact div_lt_iff' h
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : 0 < b
⊢ a / b < c ↔ a < b * c
state_after: no goals
Theorem: Real.rpow_logb
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [rpow_logb_eq_abs b_pos b_ne_one hx.ne']
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
hx : 0 < x
⊢ b ^ logb b x = x
state_after: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
hx : 0 < x
⊢ |x| = x

tactic: exact abs_of_pos hx
state_before: b x y : ℝ
b_pos : 0 < b
b_ne_one : b ≠ 1
hx : 0 < x
⊢ |x| = x
state_after: no goals
Theorem: CategoryTheory.Limits.diagonal_pullback_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean

tactic: ext <;> dsimp <;> simp
state_before: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
X✝ Y✝ Z✝ : C
inst✝⁴ : HasPullbacks C
S T : C
f✝ : X✝ ⟶ T
g✝ : Y✝ ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f✝ g✝
inst✝¹ : HasPullback (f✝ ≫ i) (g✝ ≫ i)
inst✝ : HasPullback (diagonal i) (map (f✝ ≫ i) (g✝ ≫ i) i i f✝ g✝ (𝟙 S) ⋯ ⋯)
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
⊢ diagonal fst =
    (pullbackSymmetry f (Over.mk g).hom).hom ≫
      ((Over.baseChange f).map (Over.homMk (diagonal g) ⋯)).left ≫ (diagonalObjPullbackFstIso f g).inv
state_after: no goals
Theorem: Directed.finite_set_le
File: Mathlib/Data/Fintype/Order.lean

tactic: convert D.finset_le hs.toFinset
state_before: α : Type u_1
r : α → α → Prop
inst✝² : IsTrans α r
β : Type u_2
γ : Type u_3
inst✝¹ : Nonempty γ
f : γ → α
inst✝ : Finite β
D : Directed r f
s : Set γ
hs : s.Finite
⊢ ∃ z, ∀ i ∈ s, r (f i) (f z)
state_after: case h.e'_2.h.h.h.a
α : Type u_1
r : α → α → Prop
inst✝² : IsTrans α r
β : Type u_2
γ : Type u_3
inst✝¹ : Nonempty γ
f : γ → α
inst✝ : Finite β
D : Directed r f
s : Set γ
hs : s.Finite
x✝ a✝ : γ
⊢ a✝ ∈ s ↔ a✝ ∈ hs.toFinset

tactic: rw [Set.Finite.mem_toFinset]
state_before: case h.e'_2.h.h.h.a
α : Type u_1
r : α → α → Prop
inst✝² : IsTrans α r
β : Type u_2
γ : Type u_3
inst✝¹ : Nonempty γ
f : γ → α
inst✝ : Finite β
D : Directed r f
s : Set γ
hs : s.Finite
x✝ a✝ : γ
⊢ a✝ ∈ s ↔ a✝ ∈ hs.toFinset
state_after: no goals
Theorem: uniqueMDiffOn_iff_uniqueDiffOn
File: Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean

tactic: simp [UniqueMDiffOn, UniqueDiffOn, uniqueMDiffWithinAt_iff_uniqueDiffWithinAt]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹ : NormedAddCommGroup E'
inst✝ : NormedSpace 𝕜 E'
f : E → E'
s : Set E
x : E
⊢ UniqueMDiffOn 𝓘(𝕜, E) s ↔ UniqueDiffOn 𝕜 s
state_after: no goals
Theorem: Composition.ones_sizeUpTo
File: Mathlib/Combinatorics/Enumerative/Composition.lean

tactic: simp [sizeUpTo, ones_blocks, take_replicate]
state_before: n✝ : ℕ
c : Composition n✝
n i : ℕ
⊢ (ones n).sizeUpTo i = min i n
state_after: no goals
Theorem: CategoryTheory.PreGaloisCategory.evaluation_injective_of_isConnected
File: Mathlib/CategoryTheory/Galois/Basic.lean

tactic: intro f g (h : F.map f a = F.map g a)
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
⊢ Function.Injective fun f => F.map f a
state_after: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
⊢ f = g

tactic: haveI : IsIso (equalizer.ι f g) := by
  apply IsConnected.noTrivialComponent _ (equalizer.ι f g)
  exact not_initial_of_inhabited F ((fiberEqualizerEquiv F f g).symm ⟨a, h⟩)
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
⊢ f = g
state_after: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
this : IsIso (equalizer.ι f g)
⊢ f = g

tactic: exact eq_of_epi_equalizer
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
this : IsIso (equalizer.ι f g)
⊢ f = g
state_after: no goals

tactic: apply IsConnected.noTrivialComponent _ (equalizer.ι f g)
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
⊢ IsIso (equalizer.ι f g)
state_after: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
⊢ IsInitial (equalizer f g) → False

tactic: exact not_initial_of_inhabited F ((fiberEqualizerEquiv F f g).symm ⟨a, h⟩)
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : PreGaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
A X : C
inst✝ : IsConnected A
a : ↑(F.obj A)
f g : A ⟶ X
h : F.map f a = F.map g a
⊢ IsInitial (equalizer f g) → False
state_after: no goals
Theorem: stdSimplex_of_isEmpty_index
File: Mathlib/Analysis/Convex/Basic.lean

tactic: rintro f ⟨-, hf⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝³ : OrderedSemiring 𝕜
inst✝² : Fintype ι
inst✝¹ : IsEmpty ι
inst✝ : Nontrivial 𝕜
⊢ ∀ (x : ι → 𝕜), x ∉ stdSimplex 𝕜 ι
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝³ : OrderedSemiring 𝕜
inst✝² : Fintype ι
inst✝¹ : IsEmpty ι
inst✝ : Nontrivial 𝕜
f : ι → 𝕜
hf : ∑ x : ι, f x = 1
⊢ False

tactic: simp at hf
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝³ : OrderedSemiring 𝕜
inst✝² : Fintype ι
inst✝¹ : IsEmpty ι
inst✝ : Nontrivial 𝕜
f : ι → 𝕜
hf : ∑ x : ι, f x = 1
⊢ False
state_after: no goals
Theorem: Complex.continuousOn_one_add_mul_inv
File: Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean

tactic: fun_prop
state_before: z : ℂ
hz : 1 + z ∈ slitPlane
⊢ ContinuousOn (fun t => 1 + t • z) (Set.Icc 0 1)
state_after: no goals
Theorem: ENNReal.toReal_eq_toReal
File: Mathlib/Data/ENNReal/Real.lean

tactic: lift a to ℝ≥0 using ha
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ ⊤
⊢ a.toReal = b.toReal ↔ a = b
state_after: case intro
b c d : ℝ≥0∞
r p q : ℝ≥0
hb : b ≠ ⊤
a : ℝ≥0
⊢ (↑a).toReal = b.toReal ↔ ↑a = b

tactic: lift b to ℝ≥0 using hb
state_before: case intro
b c d : ℝ≥0∞
r p q : ℝ≥0
hb : b ≠ ⊤
a : ℝ≥0
⊢ (↑a).toReal = b.toReal ↔ ↑a = b
state_after: case intro.intro
c d : ℝ≥0∞
r p q a b : ℝ≥0
⊢ (↑a).toReal = (↑b).toReal ↔ ↑a = ↑b

tactic: simp only [coe_inj, NNReal.coe_inj, coe_toReal]
state_before: case intro.intro
c d : ℝ≥0∞
r p q a b : ℝ≥0
⊢ (↑a).toReal = (↑b).toReal ↔ ↑a = ↑b
state_after: no goals
Theorem: Basis.ext_multilinear
File: Mathlib/LinearAlgebra/Multilinear/Basis.lean

tactic: cases nonempty_fintype ι
state_before: R : Type u_1
ι : Type u_2
n : ℕ
M : Fin n → Type u_3
M₂ : Type u_4
M₃ : Type u_5
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : AddCommMonoid M₃
inst✝⁴ : (i : Fin n) → AddCommMonoid (M i)
inst✝³ : (i : Fin n) → Module R (M i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Finite ι
f g : MultilinearMap R (fun x => M₂) M₃
ι₁ : Type u_6
e : Basis ι₁ R M₂
h : ∀ (v : ι → ι₁), (f fun i => e (v i)) = g fun i => e (v i)
⊢ f = g
state_after: case intro
R : Type u_1
ι : Type u_2
n : ℕ
M : Fin n → Type u_3
M₂ : Type u_4
M₃ : Type u_5
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : AddCommMonoid M₃
inst✝⁴ : (i : Fin n) → AddCommMonoid (M i)
inst✝³ : (i : Fin n) → Module R (M i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Finite ι
f g : MultilinearMap R (fun x => M₂) M₃
ι₁ : Type u_6
e : Basis ι₁ R M₂
h : ∀ (v : ι → ι₁), (f fun i => e (v i)) = g fun i => e (v i)
val✝ : Fintype ι
⊢ f = g

tactic: exact
  (domDomCongr_eq_iff (Fintype.equivFin ι) f g).mp
    (Basis.ext_multilinear_fin (fun _ => e) fun i => h (i ∘ _))
state_before: case intro
R : Type u_1
ι : Type u_2
n : ℕ
M : Fin n → Type u_3
M₂ : Type u_4
M₃ : Type u_5
inst✝⁷ : CommSemiring R
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : AddCommMonoid M₃
inst✝⁴ : (i : Fin n) → AddCommMonoid (M i)
inst✝³ : (i : Fin n) → Module R (M i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Finite ι
f g : MultilinearMap R (fun x => M₂) M₃
ι₁ : Type u_6
e : Basis ι₁ R M₂
h : ∀ (v : ι → ι₁), (f fun i => e (v i)) = g fun i => e (v i)
val✝ : Fintype ι
⊢ f = g
state_after: no goals
Theorem: ProbabilityTheory.IsRatCondKernelCDF.tendsto_atTop_one
File: Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean

tactic: filter_upwards [hf.isRatStieltjesPoint_ae a] with b hb using hb.tendsto_atTop_one
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → ℚ → ℝ
hf : IsRatCondKernelCDF f κ ν
a : α
⊢ ∀ᵐ (b : β) ∂ν a, Tendsto (f (a, b)) atTop (𝓝 1)
state_after: no goals