1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: DFinsupp.comapDomain'_smul
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: ext
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
κ : Type u_1
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
h : κ → ι
h' : ι → κ
hh' : Function.LeftInverse h' h
r : γ
f : Π₀ (i : ι), β i
⊢ comapDomain' h hh' (r • f) = r • comapDomain' h hh' f
state_after: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
κ : Type u_1
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
h : κ → ι
h' : ι → κ
hh' : Function.LeftInverse h' h
r : γ
f : Π₀ (i : ι), β i
i✝ : κ
⊢ (comapDomain' h hh' (r • f)) i✝ = (r • comapDomain' h hh' f) i✝

tactic: rw [smul_apply, comapDomain'_apply, smul_apply, comapDomain'_apply]
state_before: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
κ : Type u_1
inst✝² : Monoid γ
inst✝¹ : (i : ι) → AddMonoid (β i)
inst✝ : (i : ι) → DistribMulAction γ (β i)
h : κ → ι
h' : ι → κ
hh' : Function.LeftInverse h' h
r : γ
f : Π₀ (i : ι), β i
i✝ : κ
⊢ (comapDomain' h hh' (r • f)) i✝ = (r • comapDomain' h hh' f) i✝
state_after: no goals
Theorem: Seminorm.smul_closedBall_subset
File: Mathlib/Analysis/Seminorm.lean

tactic: rintro x ⟨y, hy, h⟩
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
⊢ k • p.closedBall 0 r ⊆ p.closedBall 0 (‖k‖ * r)
state_after: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : y ∈ p.closedBall 0 r
h : (fun x => k • x) y = x
⊢ x ∈ p.closedBall 0 (‖k‖ * r)

tactic: rw [Seminorm.mem_closedBall_zero, ← h, map_smul_eq_mul]
state_before: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : y ∈ p.closedBall 0 r
h : (fun x => k • x) y = x
⊢ x ∈ p.closedBall 0 (‖k‖ * r)
state_after: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : y ∈ p.closedBall 0 r
h : (fun x => k • x) y = x
⊢ ‖k‖ * p y ≤ ‖k‖ * r

tactic: rw [Seminorm.mem_closedBall_zero] at hy
state_before: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : y ∈ p.closedBall 0 r
h : (fun x => k • x) y = x
⊢ ‖k‖ * p y ≤ ‖k‖ * r
state_after: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : p y ≤ r
h : (fun x => k • x) y = x
⊢ ‖k‖ * p y ≤ ‖k‖ * r

tactic: gcongr
state_before: case intro.intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ : Seminorm 𝕜 E
A B : Set E
a : 𝕜
r✝ : ℝ
x✝ : E
p : Seminorm 𝕜 E
k : 𝕜
r : ℝ
x y : E
hy : p y ≤ r
h : (fun x => k • x) y = x
⊢ ‖k‖ * p y ≤ ‖k‖ * r
state_after: no goals
Theorem: Polynomial.natCast_inj
File: Mathlib/Algebra/Polynomial/Coeff.lean

tactic: constructor
state_before: R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑n ↔ m = n
state_after: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑n → m = n

case mpr
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ m = n → ↑m = ↑n

tactic: intro h
state_before: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑n → m = n
state_after: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
h : ↑m = ↑n
⊢ m = n

tactic: apply_fun fun p => p.coeff 0 at h
state_before: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
h : ↑m = ↑n
⊢ m = n
state_after: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
h : (↑m).coeff 0 = (↑n).coeff 0
⊢ m = n

tactic: simpa using h
state_before: case mp
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
h : (↑m).coeff 0 = (↑n).coeff 0
⊢ m = n
state_after: no goals

tactic: rintro rfl
state_before: case mpr
R✝ : Type u
S : Type v
a b : R✝
n✝ m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m n : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ m = n → ↑m = ↑n
state_after: case mpr
R✝ : Type u
S : Type v
a b : R✝
n m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑m

tactic: rfl
state_before: case mpr
R✝ : Type u
S : Type v
a b : R✝
n m✝ : ℕ
inst✝² : Semiring R✝
p q r : R✝[X]
m : ℕ
R : Type u_1
inst✝¹ : Semiring R
inst✝ : CharZero R
⊢ ↑m = ↑m
state_after: no goals
Theorem: ENNReal.inv_ne_top
File: Mathlib/Data/ENNReal/Inv.lean

tactic: simp
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ a⁻¹ ≠ ⊤ ↔ a ≠ 0
state_after: no goals
Theorem: DirichletCharacter.convolution_twist_vonMangoldt
File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

tactic: rw [← convolution_vonMangoldt_const_one, ← χ.mul_convolution_distrib, mul_one]
state_before: N : ℕ
χ : DirichletCharacter ℂ N
⊢ (((fun n => χ ↑n) * fun n => ↑(Λ n)) ⍟ fun n => χ ↑n) = (fun n => χ ↑n) * fun n => Complex.log ↑n
state_after: no goals
Theorem: Polynomial.revAt_add
File: Mathlib/Algebra/Polynomial/Reverse.lean

tactic: rcases Nat.le.dest hn with ⟨n', rfl⟩
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
N O n o : ℕ
hn : n ≤ N
ho : o ≤ O
⊢ (revAt (N + O)) (n + o) = (revAt N) n + (revAt O) o
state_after: case intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
O n o : ℕ
ho : o ≤ O
n' : ℕ
hn : n ≤ n + n'
⊢ (revAt (n + n' + O)) (n + o) = (revAt (n + n')) n + (revAt O) o

tactic: rcases Nat.le.dest ho with ⟨o', rfl⟩
state_before: case intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
O n o : ℕ
ho : o ≤ O
n' : ℕ
hn : n ≤ n + n'
⊢ (revAt (n + n' + O)) (n + o) = (revAt (n + n')) n + (revAt O) o
state_after: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ (revAt (n + n' + (o + o'))) (n + o) = (revAt (n + n')) n + (revAt (o + o')) o

tactic: repeat' rw [revAt_le (le_add_right rfl.le)]
state_before: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ (revAt (n + n' + (o + o'))) (n + o) = (revAt (n + n')) n + (revAt (o + o')) o
state_after: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ (revAt (n + n' + (o + o'))) (n + o) = n + n' - n + (o + o' - o)

tactic: rw [add_assoc, add_left_comm n' o, ← add_assoc, revAt_le (le_add_right rfl.le)]
state_before: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ (revAt (n + n' + (o + o'))) (n + o) = n + n' - n + (o + o' - o)
state_after: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ n + o + (n' + o') - (n + o) = n + n' - n + (o + o' - o)

tactic: repeat' rw [add_tsub_cancel_left]
state_before: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ n + o + (n' + o') - (n + o) = n + n' - n + (o + o' - o)
state_after: no goals

tactic: rw [revAt_le (le_add_right rfl.le)]
state_before: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ (revAt (n + n' + (o + o'))) (n + o) = n + n' - n + (revAt (o + o')) o
state_after: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ (revAt (n + n' + (o + o'))) (n + o) = n + n' - n + (o + o' - o)

tactic: rw [add_tsub_cancel_left]
state_before: case intro.intro
R : Type u_1
inst✝ : Semiring R
f : R[X]
n o n' : ℕ
hn : n ≤ n + n'
o' : ℕ
ho : o ≤ o + o'
⊢ n' + o' = n' + (o + o' - o)
state_after: no goals
Theorem: EuclideanDomain.eq_div_of_mul_eq_right
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: rw [← h, mul_div_cancel_left₀ _ ha]
state_before: R : Type u
inst✝ : EuclideanDomain R
a b c : R
ha : a ≠ 0
h : a * b = c
⊢ b = c / a
state_after: no goals
Theorem: Submodule.Quotient.nontrivial_of_lt_top
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: obtain ⟨x, _, not_mem_s⟩ := SetLike.exists_of_lt h
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
h : p < ⊤
⊢ Nontrivial (M ⧸ p)
state_after: case intro.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
h : p < ⊤
x : M
left✝ : x ∈ ⊤
not_mem_s : x ∉ p
⊢ Nontrivial (M ⧸ p)

tactic: refine ⟨⟨mk x, 0, ?_⟩⟩
state_before: case intro.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
h : p < ⊤
x : M
left✝ : x ∈ ⊤
not_mem_s : x ∉ p
⊢ Nontrivial (M ⧸ p)
state_after: case intro.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
h : p < ⊤
x : M
left✝ : x ∈ ⊤
not_mem_s : x ∉ p
⊢ mk x ≠ 0

tactic: simpa using not_mem_s
state_before: case intro.intro
R : Type u_1
M : Type u_2
r : R
x✝ y : M
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
h : p < ⊤
x : M
left✝ : x ∈ ⊤
not_mem_s : x ∉ p
⊢ mk x ≠ 0
state_after: no goals
Theorem: FirstOrder.Language.Term.realize_quotient_mk'
File: Mathlib/ModelTheory/Quotients.lean

tactic: induction' t with _ _ _ _ ih
state_before: L : Language
M : Type u_1
s : Setoid M
ps : L.Prestructure s
β : Type u_2
t : L.Term β
x : β → M
⊢ realize (fun i => ⟦x i⟧) t = ⟦realize x t⟧
state_after: case var
L : Language
M : Type u_1
s : Setoid M
ps : L.Prestructure s
β : Type u_2
x : β → M
a✝ : β
⊢ realize (fun i => ⟦x i⟧) (var a✝) = ⟦realize x (var a✝)⟧

case func
L : Language
M : Type u_1
s : Setoid M
ps : L.Prestructure s
β : Type u_2
x : β → M
l✝ : ℕ
_f✝ : L.Functions l✝
_ts✝ : Fin l✝ → L.Term β
ih : ∀ (a : Fin l✝), realize (fun i => ⟦x i⟧) (_ts✝ a) = ⟦realize x (_ts✝ a)⟧
⊢ realize (fun i => ⟦x i⟧) (func _f✝ _ts✝) = ⟦realize x (func _f✝ _ts✝)⟧

tactic: rfl
state_before: case var
L : Language
M : Type u_1
s : Setoid M
ps : L.Prestructure s
β : Type u_2
x : β → M
a✝ : β
⊢ realize (fun i => ⟦x i⟧) (var a✝) = ⟦realize x (var a✝)⟧
state_after: no goals

tactic: simp only [ih, funMap_quotient_mk', Term.realize]
state_before: case func
L : Language
M : Type u_1
s : Setoid M
ps : L.Prestructure s
β : Type u_2
x : β → M
l✝ : ℕ
_f✝ : L.Functions l✝
_ts✝ : Fin l✝ → L.Term β
ih : ∀ (a : Fin l✝), realize (fun i => ⟦x i⟧) (_ts✝ a) = ⟦realize x (_ts✝ a)⟧
⊢ realize (fun i => ⟦x i⟧) (func _f✝ _ts✝) = ⟦realize x (func _f✝ _ts✝)⟧
state_after: no goals
Theorem: mem_leftCoset_iff
File: Mathlib/GroupTheory/Coset.lean

tactic: simp [Eq.symm, hb]
state_before: α : Type u_1
inst✝ : Group α
s : Set α
x a : α
x✝ : x ∈ a • s
b : α
hb : b ∈ s
Eq : (fun x => a • x) b = x
⊢ a⁻¹ * x ∈ s
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝ : Group α
s : Set α
x a : α
h : a⁻¹ * x ∈ s
⊢ (fun x => a • x) (a⁻¹ * x) = x
state_after: no goals
Theorem: Int.natAbs_add_of_nonpos
File: Mathlib/Data/Int/Defs.lean

tactic: omega
state_before: a✝ b✝ c d m n a b : ℤ
ha : a ≤ 0
hb : b ≤ 0
⊢ (a + b).natAbs = a.natAbs + b.natAbs
state_after: no goals
Theorem: Set.image_const_add_Ioi
File: Mathlib/Algebra/Order/Interval/Set/Monoid.lean

tactic: simp only [add_comm a, image_add_const_Ioi]
state_before: M : Type u_1
inst✝¹ : OrderedCancelAddCommMonoid M
inst✝ : ExistsAddOfLE M
a b c d : M
⊢ (fun x => a + x) '' Ioi b = Ioi (a + b)
state_after: no goals
Theorem: SimpleGraph.adj_iff_exists_edge_coe
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: simp only [mem_edgeSet, exists_prop, SetCoe.exists, exists_eq_right, Subtype.coe_mk]
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
G₁ G₂ : SimpleGraph V
⊢ G.Adj a b ↔ ∃ e, ↑e = s(a, b)
state_after: no goals
Theorem: finSuccEquiv'_last_apply
File: Mathlib/Logic/Equiv/Fin.lean

tactic: rcases Fin.exists_castSucc_eq.2 h with ⟨i, rfl⟩
state_before: m n : ℕ
i : Fin (n + 1)
h : i ≠ Fin.last n
⊢ (finSuccEquiv' (Fin.last n)) i = some (i.castLT ⋯)
state_after: case intro
m n : ℕ
i : Fin n
h : i.castSucc ≠ Fin.last n
⊢ (finSuccEquiv' (Fin.last n)) i.castSucc = some (i.castSucc.castLT ⋯)

tactic: rw [finSuccEquiv'_last_apply_castSucc]
state_before: case intro
m n : ℕ
i : Fin n
h : i.castSucc ≠ Fin.last n
⊢ (finSuccEquiv' (Fin.last n)) i.castSucc = some (i.castSucc.castLT ⋯)
state_after: case intro
m n : ℕ
i : Fin n
h : i.castSucc ≠ Fin.last n
⊢ some i = some (i.castSucc.castLT ⋯)

tactic: rfl
state_before: case intro
m n : ℕ
i : Fin n
h : i.castSucc ≠ Fin.last n
⊢ some i = some (i.castSucc.castLT ⋯)
state_after: no goals
Theorem: Finset.Ici_erase
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: ext
state_before: ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrderTop α
inst✝ : DecidableEq α
a : α
⊢ (Ici a).erase a = Ioi a
state_after: case a
ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrderTop α
inst✝ : DecidableEq α
a a✝ : α
⊢ a✝ ∈ (Ici a).erase a ↔ a✝ ∈ Ioi a

tactic: simp_rw [Finset.mem_erase, mem_Ici, mem_Ioi, lt_iff_le_and_ne, and_comm, ne_comm]
state_before: case a
ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrderTop α
inst✝ : DecidableEq α
a a✝ : α
⊢ a✝ ∈ (Ici a).erase a ↔ a✝ ∈ Ioi a
state_after: no goals
Theorem: Ideal.Filtration.pow_smul_le
File: Mathlib/RingTheory/Filtration.lean

tactic: induction' i with _ ih
state_before: R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
i j : ℕ
⊢ I ^ i • F.N j ≤ F.N (i + j)
state_after: case zero
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
j : ℕ
⊢ I ^ 0 • F.N j ≤ F.N (0 + j)

case succ
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
j n✝ : ℕ
ih : I ^ n✝ • F.N j ≤ F.N (n✝ + j)
⊢ I ^ (n✝ + 1) • F.N j ≤ F.N (n✝ + 1 + j)

tactic: simp
state_before: case zero
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
j : ℕ
⊢ I ^ 0 • F.N j ≤ F.N (0 + j)
state_after: no goals

tactic: rw [pow_succ', mul_smul, add_assoc, add_comm 1, ← add_assoc]
state_before: case succ
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
j n✝ : ℕ
ih : I ^ n✝ • F.N j ≤ F.N (n✝ + j)
⊢ I ^ (n✝ + 1) • F.N j ≤ F.N (n✝ + 1 + j)
state_after: case succ
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
j n✝ : ℕ
ih : I ^ n✝ • F.N j ≤ F.N (n✝ + j)
⊢ I • I ^ n✝ • F.N j ≤ F.N (n✝ + j + 1)

tactic: exact (smul_mono_right _ ih).trans (F.smul_le _)
state_before: case succ
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
j n✝ : ℕ
ih : I ^ n✝ • F.N j ≤ F.N (n✝ + j)
⊢ I • I ^ n✝ • F.N j ≤ F.N (n✝ + j + 1)
state_after: no goals
Theorem: Nat.Primrec'.prim_iff₁
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: f : ℕ → ℕ
h : Primrec fun v => f v.head
v : ℕ
⊢ f (ofFn fun i => id v).head = f v
state_after: no goals
Theorem: CategoryTheory.ShortComplex.f'_cyclesMap'
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

tactic: simp only [← cancel_mono h₂.i, assoc, φ.comm₁₂, cyclesMap'_i,
  LeftHomologyData.f'_i_assoc, LeftHomologyData.f'_i]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ h₁.f' ≫ cyclesMap' φ h₁ h₂ = φ.τ₁ ≫ h₂.f'
state_after: no goals
Theorem: ProbabilityTheory.kernel.fst_map_prod
File: Mathlib/Probability/Kernel/Composition.lean

tactic: ext x s hs
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
⊢ fst (map κ (fun x => (f x, g x)) ⋯) = map κ f hf
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set γ
hs : MeasurableSet s
⊢ ((fst (map κ (fun x => (f x, g x)) ⋯)) x) s = ((map κ f hf) x) s

tactic: rw [fst_apply' _ _ hs, map_apply', map_apply' _ _ _ hs]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set γ
hs : MeasurableSet s
⊢ ((fst (map κ (fun x => (f x, g x)) ⋯)) x) s = ((map κ f hf) x) s
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set γ
hs : MeasurableSet s
⊢ (κ x) ((fun x => (f x, g x)) ⁻¹' {p | p.1 ∈ s}) = (κ x) (f ⁻¹' s)

case h.h.hs
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet {p | p.1 ∈ s}

tactic: rfl
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set γ
hs : MeasurableSet s
⊢ (κ x) ((fun x => (f x, g x)) ⁻¹' {p | p.1 ∈ s}) = (κ x) (f ⁻¹' s)
state_after: no goals

tactic: exact measurable_fst hs
state_before: case h.h.hs
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : ↥(kernel α β)
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set γ
hs : MeasurableSet s
⊢ MeasurableSet {p | p.1 ∈ s}
state_after: no goals
Theorem: AddMonoidAlgebra.supDegree_withBot_some_comp
File: Mathlib/Algebra/MonoidAlgebra/Degree.lean

tactic: unfold AddMonoidAlgebra.supDegree
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Ring R'
inst✝⁵ : AddZeroClass A
inst✝⁴ : SemilatticeSup B
inst✝³ : Add B
inst✝² : OrderBot B
D : A → B
p q : R[A]
hadd : ∀ (a1 a2 : A), D (a1 + a2) = D a1 + D a2
inst✝¹ : CovariantClass B B (fun x x_1 => x + x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass B B (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1
s : R[A]
hs : s.support.Nonempty
⊢ supDegree (WithBot.some ∘ D) s = ↑(supDegree D s)
state_after: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Ring R'
inst✝⁵ : AddZeroClass A
inst✝⁴ : SemilatticeSup B
inst✝³ : Add B
inst✝² : OrderBot B
D : A → B
p q : R[A]
hadd : ∀ (a1 a2 : A), D (a1 + a2) = D a1 + D a2
inst✝¹ : CovariantClass B B (fun x x_1 => x + x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass B B (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1
s : R[A]
hs : s.support.Nonempty
⊢ s.support.sup (WithBot.some ∘ D) = ↑(s.support.sup D)

tactic: rw [← Finset.coe_sup' hs, Finset.sup'_eq_sup]
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Ring R'
inst✝⁵ : AddZeroClass A
inst✝⁴ : SemilatticeSup B
inst✝³ : Add B
inst✝² : OrderBot B
D : A → B
p q : R[A]
hadd : ∀ (a1 a2 : A), D (a1 + a2) = D a1 + D a2
inst✝¹ : CovariantClass B B (fun x x_1 => x + x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass B B (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1
s : R[A]
hs : s.support.Nonempty
⊢ s.support.sup (WithBot.some ∘ D) = ↑(s.support.sup D)
state_after: no goals
Theorem: Equiv.Perm.toList_ne_singleton
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: intro H
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x y : α
⊢ p.toList x ≠ [y]
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x y : α
H : p.toList x = [y]
⊢ False

tactic: simpa [card_support_ne_one] using congr_arg length H
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x y : α
H : p.toList x = [y]
⊢ False
state_after: no goals
Theorem: Set.one_le_encard_iff_nonempty
File: Mathlib/Data/Set/Card.lean

tactic: rw [nonempty_iff_ne_empty, Ne, ← encard_eq_zero, ENat.one_le_iff_ne_zero]
state_before: α : Type u_1
β : Type u_2
s t : Set α
⊢ 1 ≤ s.encard ↔ s.Nonempty
state_after: no goals