1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsLindelof.compl_mem_sets_of_nhdsWithin
File: Mathlib/Topology/Compactness/Lindelof.lean

tactic: refine hs.compl_mem_sets fun x hx ↦ ?_
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
f : Filter X
inst✝ : CountableInterFilter f
hf : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, tᶜ ∈ f
⊢ sᶜ ∈ f
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
f : Filter X
inst✝ : CountableInterFilter f
hf : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, tᶜ ∈ f
x : X
hx : x ∈ s
⊢ sᶜ ∈ 𝓝 x ⊓ f

tactic: rw [← disjoint_principal_right, disjoint_right_comm, (basis_sets _).disjoint_iff_left]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
f : Filter X
inst✝ : CountableInterFilter f
hf : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, tᶜ ∈ f
x : X
hx : x ∈ s
⊢ sᶜ ∈ 𝓝 x ⊓ f
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
f : Filter X
inst✝ : CountableInterFilter f
hf : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, tᶜ ∈ f
x : X
hx : x ∈ s
⊢ ∃ i ∈ 𝓝 x ⊓ 𝓟 s, (id i)ᶜ ∈ f

tactic: exact hf x hx
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
f : Filter X
inst✝ : CountableInterFilter f
hf : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, tᶜ ∈ f
x : X
hx : x ∈ s
⊢ ∃ i ∈ 𝓝 x ⊓ 𝓟 s, (id i)ᶜ ∈ f
state_after: no goals
Theorem: Option.mem_pmem
File: Mathlib/Data/Option/Basic.lean

tactic: rw [mem_def] at ha ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
p : α → Prop
f : (a : α) → p a → β
x : Option α
a : α
h : ∀ (a : α), a ∈ x → p a
ha : a ∈ x
⊢ f a ⋯ ∈ pmap f x h
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
p : α → Prop
f : (a : α) → p a → β
x : Option α
a : α
h : ∀ (a : α), a ∈ x → p a
ha✝ : a ∈ x
ha : x = some a
⊢ pmap f x h = some (f a ⋯)

tactic: subst ha
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
p : α → Prop
f : (a : α) → p a → β
x : Option α
a : α
h : ∀ (a : α), a ∈ x → p a
ha✝ : a ∈ x
ha : x = some a
⊢ pmap f x h = some (f a ⋯)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
p : α → Prop
f : (a : α) → p a → β
a : α
h : ∀ (a_1 : α), a_1 ∈ some a → p a_1
ha : a ∈ some a
⊢ pmap f (some a) h = some (f a ⋯)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
p : α → Prop
f : (a : α) → p a → β
a : α
h : ∀ (a_1 : α), a_1 ∈ some a → p a_1
ha : a ∈ some a
⊢ pmap f (some a) h = some (f a ⋯)
state_after: no goals
Theorem: Nat.cast_choose_two
File: Mathlib/Data/Nat/Choose/Cast.lean

tactic: rw [← cast_descFactorial_two, descFactorial_eq_factorial_mul_choose, factorial_two, mul_comm,
  cast_mul, cast_two, eq_div_iff_mul_eq (two_ne_zero : (2 : K) ≠ 0)]
state_before: K : Type u_1
inst✝¹ : DivisionRing K
inst✝ : CharZero K
a : ℕ
⊢ ↑(a.choose 2) = ↑a * (↑a - 1) / 2
state_after: no goals
Theorem: Pi.basisFun_det
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: ext M
state_before: R : Type u_1
inst✝⁸ : CommRing R
M : Type u_2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M' : Type u_3
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M'
ι : Type u_4
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
e : Basis ι R M
A : Type u_5
inst✝¹ : CommRing A
inst✝ : Module A M
⊢ (basisFun R ι).det = detRowAlternating
state_after: case H
R : Type u_1
inst✝⁸ : CommRing R
M✝ : Type u_2
inst✝⁷ : AddCommGroup M✝
inst✝⁶ : Module R M✝
M' : Type u_3
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M'
ι : Type u_4
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
e : Basis ι R M✝
A : Type u_5
inst✝¹ : CommRing A
inst✝ : Module A M✝
M : ι → ι → R
⊢ (basisFun R ι).det M = detRowAlternating M

tactic: rw [Basis.det_apply, Basis.coePiBasisFun.toMatrix_eq_transpose, det_transpose]
state_before: case H
R : Type u_1
inst✝⁸ : CommRing R
M✝ : Type u_2
inst✝⁷ : AddCommGroup M✝
inst✝⁶ : Module R M✝
M' : Type u_3
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M'
ι : Type u_4
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
e : Basis ι R M✝
A : Type u_5
inst✝¹ : CommRing A
inst✝ : Module A M✝
M : ι → ι → R
⊢ (basisFun R ι).det M = detRowAlternating M
state_after: no goals
Theorem: ENNReal.exists_nat_pos_inv_mul_lt
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rcases exists_nat_pos_mul_gt hb ha with ⟨n, npos, hn⟩
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
⊢ ∃ n > 0, (↑n)⁻¹ * a < b
state_after: case intro.intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : n > 0
hn : a < ↑n * b
⊢ ∃ n > 0, (↑n)⁻¹ * a < b

tactic: use n, npos
state_before: case intro.intro
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : n > 0
hn : a < ↑n * b
⊢ ∃ n > 0, (↑n)⁻¹ * a < b
state_after: case right
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : n > 0
hn : a < ↑n * b
⊢ (↑n)⁻¹ * a < b

tactic: rw [← ENNReal.div_eq_inv_mul]
state_before: case right
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : n > 0
hn : a < ↑n * b
⊢ (↑n)⁻¹ * a < b
state_after: case right
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : n > 0
hn : a < ↑n * b
⊢ a / ↑n < b

tactic: exact div_lt_of_lt_mul' hn
state_before: case right
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ 0
n : ℕ
npos : n > 0
hn : a < ↑n * b
⊢ a / ↑n < b
state_after: no goals
Theorem: Fin.prod_univ_three
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: rw [prod_univ_castSucc, prod_univ_two]
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 3 → β
⊢ ∏ i : Fin 3, f i = f 0 * f 1 * f 2
state_after: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 3 → β
⊢ f (castSucc 0) * f (castSucc 1) * f (last 2) = f 0 * f 1 * f 2

tactic: rfl
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 3 → β
⊢ f (castSucc 0) * f (castSucc 1) * f (last 2) = f 0 * f 1 * f 2
state_after: no goals
Theorem: LieIdeal.derivedSeries_map_le
File: Mathlib/Algebra/Lie/Solvable.lean

tactic: induction' k with k ih
state_before: R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
k : ℕ
⊢ map f (derivedSeries R L' k) ≤ derivedSeries R L k
state_after: case zero
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
⊢ map f (derivedSeries R L' 0) ≤ derivedSeries R L 0

case succ
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
k : ℕ
ih : map f (derivedSeries R L' k) ≤ derivedSeries R L k
⊢ map f (derivedSeries R L' (k + 1)) ≤ derivedSeries R L (k + 1)

tactic: simp only [Nat.zero_eq, derivedSeries_def, derivedSeriesOfIdeal_zero, le_top]
state_before: case zero
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
⊢ map f (derivedSeries R L' 0) ≤ derivedSeries R L 0
state_after: no goals

tactic: simp only [derivedSeries_def, derivedSeriesOfIdeal_succ] at ih ⊢
state_before: case succ
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
k : ℕ
ih : map f (derivedSeries R L' k) ≤ derivedSeries R L k
⊢ map f (derivedSeries R L' (k + 1)) ≤ derivedSeries R L (k + 1)
state_after: case succ
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
k : ℕ
ih : map f (derivedSeriesOfIdeal R L' k ⊤) ≤ derivedSeriesOfIdeal R L k ⊤
⊢ map f ⁅derivedSeriesOfIdeal R L' k ⊤, derivedSeriesOfIdeal R L' k ⊤⁆ ≤
    ⁅derivedSeriesOfIdeal R L k ⊤, derivedSeriesOfIdeal R L k ⊤⁆

tactic: exact le_trans (map_bracket_le f) (LieSubmodule.mono_lie _ _ _ _ ih ih)
state_before: case succ
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
k : ℕ
ih : map f (derivedSeriesOfIdeal R L' k ⊤) ≤ derivedSeriesOfIdeal R L k ⊤
⊢ map f ⁅derivedSeriesOfIdeal R L' k ⊤, derivedSeriesOfIdeal R L' k ⊤⁆ ≤
    ⁅derivedSeriesOfIdeal R L k ⊤, derivedSeriesOfIdeal R L k ⊤⁆
state_after: no goals
Theorem: Cardinal.isSuccLimit_aleph0
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rcases lt_aleph0.1 ha with ⟨n, rfl⟩
state_before: α β : Type u
a : Cardinal.{u_1}
ha : a < ℵ₀
⊢ succ a < ℵ₀
state_after: case intro
α β : Type u
n : ℕ
ha : ↑n < ℵ₀
⊢ succ ↑n < ℵ₀

tactic: rw [← nat_succ]
state_before: case intro
α β : Type u
n : ℕ
ha : ↑n < ℵ₀
⊢ succ ↑n < ℵ₀
state_after: case intro
α β : Type u
n : ℕ
ha : ↑n < ℵ₀
⊢ ↑n.succ < ℵ₀

tactic: apply nat_lt_aleph0
state_before: case intro
α β : Type u
n : ℕ
ha : ↑n < ℵ₀
⊢ ↑n.succ < ℵ₀
state_after: no goals
Theorem: Polynomial.smeval_C_mul
File: Mathlib/Algebra/Polynomial/Smeval.lean

tactic: induction p using Polynomial.induction_on' with
| h_add p q ph qh =>
  simp only [mul_add, smeval_add, ph, qh, smul_add]
| h_monomial n b =>
  simp only [C_mul_monomial, smeval_monomial, mul_smul]
state_before: R : Type u_1
inst✝⁶ : Semiring R
p✝ : R[X]
r : R
p q : R[X]
S : Type u_2
inst✝⁵ : NonAssocSemiring S
inst✝⁴ : Module R S
inst✝³ : IsScalarTower R S S
inst✝² : SMulCommClass R S S
inst✝¹ : Pow S ℕ
inst✝ : NatPowAssoc S
x : S
⊢ (C r * p).smeval x = r • p.smeval x
state_after: no goals

tactic: simp only [mul_add, smeval_add, ph, qh, smul_add]
state_before: case h_add
R : Type u_1
inst✝⁶ : Semiring R
p✝¹ : R[X]
r : R
p✝ q✝ : R[X]
S : Type u_2
inst✝⁵ : NonAssocSemiring S
inst✝⁴ : Module R S
inst✝³ : IsScalarTower R S S
inst✝² : SMulCommClass R S S
inst✝¹ : Pow S ℕ
inst✝ : NatPowAssoc S
x : S
p q : R[X]
ph : (C r * p).smeval x = r • p.smeval x
qh : (C r * q).smeval x = r • q.smeval x
⊢ (C r * (p + q)).smeval x = r • (p + q).smeval x
state_after: no goals

tactic: simp only [C_mul_monomial, smeval_monomial, mul_smul]
state_before: case h_monomial
R : Type u_1
inst✝⁶ : Semiring R
p✝ : R[X]
r : R
p q : R[X]
S : Type u_2
inst✝⁵ : NonAssocSemiring S
inst✝⁴ : Module R S
inst✝³ : IsScalarTower R S S
inst✝² : SMulCommClass R S S
inst✝¹ : Pow S ℕ
inst✝ : NatPowAssoc S
x : S
n : ℕ
b : R
⊢ (C r * (monomial n) b).smeval x = r • ((monomial n) b).smeval x
state_after: no goals
Theorem: WittVector.neg_coeff
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: simp [Neg.neg, eval, Matrix.cons_fin_one, coeff_mk]
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
x : 𝕎 R
n : ℕ
⊢ (-x).coeff n = peval (wittNeg p n) ![x.coeff]
state_after: no goals
Theorem: Matrix.toLin'_mul_apply
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: rw [Matrix.toLin'_mul, LinearMap.comp_apply]
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
k : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
inst✝³ : DecidableEq n
inst✝² : Fintype n
inst✝¹ : Fintype m
inst✝ : DecidableEq m
M : Matrix l m R
N : Matrix m n R
x : n → R
⊢ (toLin' (M * N)) x = (toLin' M) ((toLin' N) x)
state_after: no goals
Theorem: BddAbove.bddBelow_image2_of_bddAbove
File: Mathlib/Order/Bounds/Basic.lean

tactic: rintro ⟨a, ha⟩ ⟨b, hb⟩
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β → γ
s : Set α
t : Set β
a : α
b : β
h₀ : ∀ (b : β), Antitone (swap f b)
h₁ : ∀ (a : α), Monotone (f a)
⊢ BddAbove s → BddBelow t → BddBelow (image2 f s t)
state_after: case intro.intro
α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β → γ
s : Set α
t : Set β
a✝ : α
b✝ : β
h₀ : ∀ (b : β), Antitone (swap f b)
h₁ : ∀ (a : α), Monotone (f a)
a : α
ha : a ∈ upperBounds s
b : β
hb : b ∈ lowerBounds t
⊢ BddBelow (image2 f s t)

tactic: exact ⟨f a b, mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_lowerBounds h₀ h₁ ha hb⟩
state_before: case intro.intro
α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α → β → γ
s : Set α
t : Set β
a✝ : α
b✝ : β
h₀ : ∀ (b : β), Antitone (swap f b)
h₁ : ∀ (a : α), Monotone (f a)
a : α
ha : a ∈ upperBounds s
b : β
hb : b ∈ lowerBounds t
⊢ BddBelow (image2 f s t)
state_after: no goals
Theorem: NumberField.mixedEmbedding.convexBodySumFun_eq_zero_iff
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: rw [← normAtPlace_eq_zero, convexBodySumFun, Finset.sum_eq_zero_iff_of_nonneg fun _ _ =>
  mul_nonneg (Nat.cast_pos.mpr mult_pos).le (normAtPlace_nonneg _ _)]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ convexBodySumFun x = 0 ↔ x = 0
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (∀ i ∈ Finset.univ, ↑i.mult * (normAtPlace i) x = 0) ↔ ∀ (w : InfinitePlace K), (normAtPlace w) x = 0

tactic: conv =>
  enter [1, w, hw]
  rw [mul_left_mem_nonZeroDivisors_eq_zero_iff
    (mem_nonZeroDivisors_iff_ne_zero.mpr <| Nat.cast_ne_zero.mpr mult_ne_zero)]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (∀ i ∈ Finset.univ, ↑i.mult * (normAtPlace i) x = 0) ↔ ∀ (w : InfinitePlace K), (normAtPlace w) x = 0
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (∀ w ∈ Finset.univ, (normAtPlace w) x = 0) ↔ ∀ (w : InfinitePlace K), (normAtPlace w) x = 0

tactic: simp_rw [Finset.mem_univ, true_implies]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (∀ w ∈ Finset.univ, (normAtPlace w) x = 0) ↔ ∀ (w : InfinitePlace K), (normAtPlace w) x = 0
state_after: no goals
Theorem: Submodule.finrank_le_one_iff_isPrincipal
File: Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean

tactic: rw [← W.rank_le_one_iff_isPrincipal, ← finrank_eq_rank, ← natCast_le, Nat.cast_one]
state_before: K : Type u
V : Type v
inst✝⁵ : Ring K
inst✝⁴ : StrongRankCondition K
inst✝³ : AddCommGroup V
inst✝² : Module K V
W : Submodule K V
inst✝¹ : Module.Free K ↥W
inst✝ : Module.Finite K ↥W
⊢ finrank K ↥W ≤ 1 ↔ W.IsPrincipal
state_after: no goals
Theorem: Set.image_subtype_val_Ixx_Iix
File: Mathlib/Order/Interval/Set/Image.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
f : α → β
inst✝ : Preorder α
p✝ : α → Prop
p q r : α → α → Prop
a b : α
c : { x // p a x ∧ q x b }
h : ∀ {x : α}, r x ↑c → q x b
⊢ {x | p a x ∧ q x b} ∩ {y | r y ↑c} = {y | p a y ∧ r y ↑c}
state_after: case h
α : Type u_1
β : Type u_2
f : α → β
inst✝ : Preorder α
p✝ : α → Prop
p q r : α → α → Prop
a b : α
c : { x // p a x ∧ q x b }
h : ∀ {x : α}, r x ↑c → q x b
x✝ : α
⊢ x✝ ∈ {x | p a x ∧ q x b} ∩ {y | r y ↑c} ↔ x✝ ∈ {y | p a y ∧ r y ↑c}

tactic: simp (config := { contextual := true}) [h]
state_before: case h
α : Type u_1
β : Type u_2
f : α → β
inst✝ : Preorder α
p✝ : α → Prop
p q r : α → α → Prop
a b : α
c : { x // p a x ∧ q x b }
h : ∀ {x : α}, r x ↑c → q x b
x✝ : α
⊢ x✝ ∈ {x | p a x ∧ q x b} ∩ {y | r y ↑c} ↔ x✝ ∈ {y | p a y ∧ r y ↑c}
state_after: no goals
Theorem: StieltjesFunction.borel_le_measurable
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

tactic: rw [borel_eq_generateFrom_Ioi]
state_before: f : StieltjesFunction
⊢ borel ℝ ≤ f.outer.caratheodory
state_after: f : StieltjesFunction
⊢ MeasurableSpace.generateFrom (range Ioi) ≤ f.outer.caratheodory

tactic: refine MeasurableSpace.generateFrom_le ?_
state_before: f : StieltjesFunction
⊢ MeasurableSpace.generateFrom (range Ioi) ≤ f.outer.caratheodory
state_after: f : StieltjesFunction
⊢ ∀ t ∈ range Ioi, MeasurableSet t

tactic: simp (config := { contextual := true }) [f.measurableSet_Ioi]
state_before: f : StieltjesFunction
⊢ ∀ t ∈ range Ioi, MeasurableSet t
state_after: no goals
Theorem: CategoryTheory.Sheaf.mono_of_isLocallyInjective
File: Mathlib/CategoryTheory/Sites/LocallyInjective.lean

tactic: apply mono_of_injective
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₂ : Sheaf J D
φ : F₁ ⟶ F₂
inst✝¹ : J.HasSheafCompose (forget D)
inst✝ : IsLocallyInjective φ
⊢ Mono φ
state_after: case hφ
C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
inst✝² : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ : Sheaf J D
φ : F₁ ⟶ F₂
inst✝¹ : J.HasSheafCompose (forget D)
inst✝ : IsLocallyInjective φ
⊢ ∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.val.app X)

tactic: rw [← isLocallyInjective_iff_injective]
state_before: case hφ
C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
inst✝² : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ : Sheaf J D
φ : F₁ ⟶ F₂
inst✝¹ : J.HasSheafCompose (forget D)
inst✝ : IsLocallyInjective φ
⊢ ∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.val.app X)
state_after: case hφ
C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
inst✝² : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ : Sheaf J D
φ : F₁ ⟶ F₂
inst✝¹ : J.HasSheafCompose (forget D)
inst✝ : IsLocallyInjective φ
⊢ IsLocallyInjective φ

tactic: infer_instance
state_before: case hφ
C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
inst✝² : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ : Sheaf J D
φ : F₁ ⟶ F₂
inst✝¹ : J.HasSheafCompose (forget D)
inst✝ : IsLocallyInjective φ
⊢ IsLocallyInjective φ
state_after: no goals
Theorem: Fintype.IsSimpleOrder.univ
File: Mathlib/Order/Atoms/Finite.lean

tactic: change Finset.map _ (Finset.univ : Finset Bool) = _
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ Finset.univ = {⊤, ⊥}
state_after: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ Finset.map { toFun := ⇑IsSimpleOrder.equivBool.symm, inj' := ⋯ } Finset.univ = {⊤, ⊥}

tactic: rw [Fintype.univ_bool]
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ Finset.map { toFun := ⇑IsSimpleOrder.equivBool.symm, inj' := ⋯ } Finset.univ = {⊤, ⊥}
state_after: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ Finset.map { toFun := ⇑IsSimpleOrder.equivBool.symm, inj' := ⋯ } {true, false} = {⊤, ⊥}

tactic: simp only [Finset.map_insert, Function.Embedding.coeFn_mk, Finset.map_singleton]
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ Finset.map { toFun := ⇑IsSimpleOrder.equivBool.symm, inj' := ⋯ } {true, false} = {⊤, ⊥}
state_after: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ {IsSimpleOrder.equivBool.symm true, IsSimpleOrder.equivBool.symm false} = {⊤, ⊥}

tactic: rfl
state_before: α : Type u_1
β : Type u_2
inst✝³ : PartialOrder α
inst✝² : BoundedOrder α
inst✝¹ : IsSimpleOrder α
inst✝ : DecidableEq α
⊢ {IsSimpleOrder.equivBool.symm true, IsSimpleOrder.equivBool.symm false} = {⊤, ⊥}
state_after: no goals
Theorem: Ioo_smul_sphere_zero
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: ext x
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y z : E
δ ε a b r : ℝ
ha : 0 ≤ a
hr : 0 < r
this : EqOn (fun x => ‖x‖) id (Ioo a b)
⊢ (fun x => ‖x‖) ⁻¹' Ioo (a * r) (b * r) = ball 0 (b * r) \ closedBall 0 (a * r)
state_after: case h
𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε a b r : ℝ
ha : 0 ≤ a
hr : 0 < r
this : EqOn (fun x => ‖x‖) id (Ioo a b)
x : E
⊢ x ∈ (fun x => ‖x‖) ⁻¹' Ioo (a * r) (b * r) ↔ x ∈ ball 0 (b * r) \ closedBall 0 (a * r)

tactic: simp [and_comm]
state_before: case h
𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε a b r : ℝ
ha : 0 ≤ a
hr : 0 < r
this : EqOn (fun x => ‖x‖) id (Ioo a b)
x : E
⊢ x ∈ (fun x => ‖x‖) ⁻¹' Ioo (a * r) (b * r) ↔ x ∈ ball 0 (b * r) \ closedBall 0 (a * r)
state_after: no goals

tactic: simp [ha.not_lt]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y z : E
δ ε a b r : ℝ
ha : 0 ≤ a
hr : 0 < r
this : EqOn (fun x => ‖x‖) id (Ioo a b)
⊢ 0 ∉ Ioo a b
state_after: no goals
Theorem: dite_prop_iff_or
File: Mathlib/Logic/Basic.lean

tactic: by_cases h : P <;> simp [h, exists_prop_of_false, exists_prop_of_true]
state_before: α : Sort u_1
σ : α → Sort u_2
P Q✝ R✝ : Prop
inst✝² : Decidable P
inst✝¹ : Decidable Q✝
a b c : α
A : P → α
B : ¬P → α
Q : P → Prop
R : ¬P → Prop
inst✝ : Decidable P
⊢ dite P Q R ↔ (∃ p, Q p) ∨ ∃ p, R p
state_after: no goals
Theorem: Polynomial.divX_mul_X_add
File: Mathlib/Algebra/Polynomial/Inductions.lean

tactic: rintro ⟨_ | _⟩ <;> simp [coeff_C, Nat.succ_ne_zero, coeff_mul_X]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
⊢ ∀ (n : ℕ), (p.divX * X + C (p.coeff 0)).coeff n = p.coeff n
state_after: no goals
Theorem: Set.diff_union_inter
File: Mathlib/Data/Set/Basic.lean

tactic: rw [union_comm]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u s t : Set α
⊢ s \ t ∪ s ∩ t = s
state_after: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u s t : Set α
⊢ s ∩ t ∪ s \ t = s

tactic: exact sup_inf_sdiff _ _
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u s t : Set α
⊢ s ∩ t ∪ s \ t = s
state_after: no goals
Theorem: Subgroup.nontrivial_iff_exists_ne_one
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [Subtype.nontrivial_iff_exists_ne (fun x => x ∈ H) (1 : H)]
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
H✝ K H : Subgroup G
⊢ Nontrivial ↥H ↔ ∃ x ∈ H, x ≠ 1
state_after: 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
H✝ K H : Subgroup G
⊢ (∃ y, ∃ (_ : y ∈ H), y ≠ ↑1) ↔ ∃ x ∈ H, x ≠ 1

tactic: simp
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
H✝ K H : Subgroup G
⊢ (∃ y, ∃ (_ : y ∈ H), y ≠ ↑1) ↔ ∃ x ∈ H, x ≠ 1
state_after: no goals
Theorem: Substring.Valid.nextn_stop
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [h.bsize, h.nextn_stop]
state_before: x✝ : Substring
h✝ : x✝.Valid
n : Nat
l m r : List Char
h : ValidFor l m r x✝
⊢ x✝.nextn n { byteIdx := x✝.bsize } = { byteIdx := x✝.bsize }
state_after: no goals
Theorem: FermatLastTheoremForThreeGen.Solution'.two_le_multiplicity
File: Mathlib/NumberTheory/FLT/Three.lean

tactic: simpa [← PartENat.coe_le_coe, Solution'.multiplicity] using
  multiplicity.le_multiplicity_of_pow_dvd (lambda_sq_dvd_c S')
state_before: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ 2 ≤ S'.multiplicity
state_after: no goals