1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.not_isFiniteMeasure_iff
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: refine ⟨fun h => ?_, fun h => fun h' => h'.measure_univ_lt_top.ne h⟩
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
⊢ ¬IsFiniteMeasure μ ↔ μ univ = ⊤
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
h : ¬IsFiniteMeasure μ
⊢ μ univ = ⊤

tactic: by_contra h'
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
h : ¬IsFiniteMeasure μ
⊢ μ univ = ⊤
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
h : ¬IsFiniteMeasure μ
h' : ¬μ univ = ⊤
⊢ False

tactic: exact h ⟨lt_top_iff_ne_top.mpr h'⟩
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
h : ¬IsFiniteMeasure μ
h' : ¬μ univ = ⊤
⊢ False
state_after: no goals
Theorem: MeasureTheory.L1.dist_eq_integral_dist
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simp only [dist_eq_norm, L1.norm_eq_integral_norm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g✝ : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
H : Type u_7
inst✝ : NormedAddCommGroup H
f g : ↥(Lp H 1 μ)
⊢ dist f g = ∫ (a : α), dist (↑↑f a) (↑↑g a) ∂μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g✝ : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
H : Type u_7
inst✝ : NormedAddCommGroup H
f g : ↥(Lp H 1 μ)
⊢ ∫ (a : α), ‖↑↑(f - g) a‖ ∂μ = ∫ (a : α), ‖↑↑f a - ↑↑g a‖ ∂μ

tactic: exact integral_congr_ae <| (Lp.coeFn_sub _ _).fun_comp norm
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g✝ : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
H : Type u_7
inst✝ : NormedAddCommGroup H
f g : ↥(Lp H 1 μ)
⊢ ∫ (a : α), ‖↑↑(f - g) a‖ ∂μ = ∫ (a : α), ‖↑↑f a - ↑↑g a‖ ∂μ
state_after: no goals
Theorem: Polynomial.degree_pos_of_ne_zero_of_nonunit
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: rw [eq_C_of_degree_le_zero h] at hp0 hp
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : DivisionRing R
p q : R[X]
hp0 : p ≠ 0
hp : ¬IsUnit p
h : 0 ≥ p.degree
⊢ False
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : DivisionRing R
p q : R[X]
hp0 : C (p.coeff 0) ≠ 0
hp : ¬IsUnit (C (p.coeff 0))
h : 0 ≥ p.degree
⊢ False

tactic: exact hp (IsUnit.map C (IsUnit.mk0 (coeff p 0) (mt C_inj.2 (by simpa using hp0))))
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : DivisionRing R
p q : R[X]
hp0 : C (p.coeff 0) ≠ 0
hp : ¬IsUnit (C (p.coeff 0))
h : 0 ≥ p.degree
⊢ False
state_after: no goals

tactic: simpa using hp0
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : DivisionRing R
p q : R[X]
hp0 : C (p.coeff 0) ≠ 0
hp : ¬IsUnit (C (p.coeff 0))
h : 0 ≥ p.degree
⊢ ¬C (p.coeff 0) = C 0
state_after: no goals
Theorem: PNat.one_gcd
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [← gcd_eq_left_iff_dvd]
state_before: n : ℕ+
⊢ gcd 1 n = 1
state_after: n : ℕ+
⊢ 1 ∣ n

tactic: apply one_dvd
state_before: n : ℕ+
⊢ 1 ∣ n
state_after: no goals
Theorem: MeasureTheory.L2.snorm_rpow_two_norm_lt_top
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: have h_two : ENNReal.ofReal (2 : ℝ) = 2 := by simp [zero_le_one]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f : ↥(Lp F 2 μ)
⊢ snorm (fun x => ‖↑↑f x‖ ^ 2) 1 μ < ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f : ↥(Lp F 2 μ)
h_two : ENNReal.ofReal 2 = 2
⊢ snorm (fun x => ‖↑↑f x‖ ^ 2) 1 μ < ⊤

tactic: rw [snorm_norm_rpow f zero_lt_two, one_mul, h_two]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f : ↥(Lp F 2 μ)
h_two : ENNReal.ofReal 2 = 2
⊢ snorm (fun x => ‖↑↑f x‖ ^ 2) 1 μ < ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f : ↥(Lp F 2 μ)
h_two : ENNReal.ofReal 2 = 2
⊢ snorm (↑↑f) 2 μ ^ 2 < ⊤

tactic: exact ENNReal.rpow_lt_top_of_nonneg zero_le_two (Lp.snorm_ne_top f)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f : ↥(Lp F 2 μ)
h_two : ENNReal.ofReal 2 = 2
⊢ snorm (↑↑f) 2 μ ^ 2 < ⊤
state_after: no goals

tactic: simp [zero_le_one]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f : ↥(Lp F 2 μ)
⊢ ENNReal.ofReal 2 = 2
state_after: no goals
Theorem: PowerSeries.derivativeFun_coe
File: Mathlib/RingTheory/PowerSeries/Derivative.lean

tactic: ext
state_before: R : Type u_1
inst✝ : CommSemiring R
f : R[X]
⊢ (↑f).derivativeFun = ↑(derivative f)
state_after: case h
R : Type u_1
inst✝ : CommSemiring R
f : R[X]
n✝ : ℕ
⊢ (coeff R n✝) (↑f).derivativeFun = (coeff R n✝) ↑(derivative f)

tactic: rw [coeff_derivativeFun, coeff_coe, coeff_coe, coeff_derivative]
state_before: case h
R : Type u_1
inst✝ : CommSemiring R
f : R[X]
n✝ : ℕ
⊢ (coeff R n✝) (↑f).derivativeFun = (coeff R n✝) ↑(derivative f)
state_after: no goals
Theorem: GroupTopology.toTopologicalSpace_injective
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: cases f
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝ : Group α
f g : GroupTopology α
h : f.toTopologicalSpace = g.toTopologicalSpace
⊢ f = g
state_after: case mk
G : Type w
H : Type x
α : Type u
β : Type v
inst✝ : Group α
g : GroupTopology α
toTopologicalSpace✝ : TopologicalSpace α
toTopologicalGroup✝ : TopologicalGroup α
h :
  { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ }.toTopologicalSpace =
    g.toTopologicalSpace
⊢ { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ } = g

tactic: cases g
state_before: case mk
G : Type w
H : Type x
α : Type u
β : Type v
inst✝ : Group α
g : GroupTopology α
toTopologicalSpace✝ : TopologicalSpace α
toTopologicalGroup✝ : TopologicalGroup α
h :
  { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ }.toTopologicalSpace =
    g.toTopologicalSpace
⊢ { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ } = g
state_after: case mk.mk
G : Type w
H : Type x
α : Type u
β : Type v
inst✝ : Group α
toTopologicalSpace✝¹ : TopologicalSpace α
toTopologicalGroup✝¹ : TopologicalGroup α
toTopologicalSpace✝ : TopologicalSpace α
toTopologicalGroup✝ : TopologicalGroup α
h :
  { toTopologicalSpace := toTopologicalSpace✝¹, toTopologicalGroup := toTopologicalGroup✝¹ }.toTopologicalSpace =
    { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ }.toTopologicalSpace
⊢ { toTopologicalSpace := toTopologicalSpace✝¹, toTopologicalGroup := toTopologicalGroup✝¹ } =
    { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ }

tactic: congr
state_before: case mk.mk
G : Type w
H : Type x
α : Type u
β : Type v
inst✝ : Group α
toTopologicalSpace✝¹ : TopologicalSpace α
toTopologicalGroup✝¹ : TopologicalGroup α
toTopologicalSpace✝ : TopologicalSpace α
toTopologicalGroup✝ : TopologicalGroup α
h :
  { toTopologicalSpace := toTopologicalSpace✝¹, toTopologicalGroup := toTopologicalGroup✝¹ }.toTopologicalSpace =
    { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ }.toTopologicalSpace
⊢ { toTopologicalSpace := toTopologicalSpace✝¹, toTopologicalGroup := toTopologicalGroup✝¹ } =
    { toTopologicalSpace := toTopologicalSpace✝, toTopologicalGroup := toTopologicalGroup✝ }
state_after: no goals
Theorem: ENNReal.fun_eq_funMulInvSnorm_mul_snorm
File: Mathlib/MeasureTheory/Integral/MeanInequalities.lean

tactic: simp [funMulInvSnorm, mul_assoc, ENNReal.inv_mul_cancel, hf_nonzero, hf_top]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
a : α
⊢ f a = funMulInvSnorm f p μ a * (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
state_after: no goals
Theorem: List.length_split_lt
File: Mathlib/Data/List/Sort.lean

tactic: cases' e : split l with l₁' l₂'
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁ l₂ : List α
h : (a :: b :: l).split = (l₁, l₂)
⊢ l₁.length < (a :: b :: l).length ∧ l₂.length < (a :: b :: l).length
state_after: case mk
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁ l₂ : List α
h : (a :: b :: l).split = (l₁, l₂)
l₁' l₂' : List α
e : l.split = (l₁', l₂')
⊢ l₁.length < (a :: b :: l).length ∧ l₂.length < (a :: b :: l).length

tactic: injection (split_cons_of_eq _ (split_cons_of_eq _ e)).symm.trans h
state_before: case mk
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁ l₂ : List α
h : (a :: b :: l).split = (l₁, l₂)
l₁' l₂' : List α
e : l.split = (l₁', l₂')
⊢ l₁.length < (a :: b :: l).length ∧ l₂.length < (a :: b :: l).length
state_after: case mk
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁ l₂ : List α
h : (a :: b :: l).split = (l₁, l₂)
l₁' l₂' : List α
e : l.split = (l₁', l₂')
fst_eq✝ : a :: l₁' = l₁
snd_eq✝ : b :: l₂' = l₂
⊢ l₁.length < (a :: b :: l).length ∧ l₂.length < (a :: b :: l).length

tactic: substs l₁ l₂
state_before: case mk
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁ l₂ : List α
h : (a :: b :: l).split = (l₁, l₂)
l₁' l₂' : List α
e : l.split = (l₁', l₂')
fst_eq✝ : a :: l₁' = l₁
snd_eq✝ : b :: l₂' = l₂
⊢ l₁.length < (a :: b :: l).length ∧ l₂.length < (a :: b :: l).length
state_after: case mk
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁' l₂' : List α
e : l.split = (l₁', l₂')
h : (a :: b :: l).split = (a :: l₁', b :: l₂')
⊢ (a :: l₁').length < (a :: b :: l).length ∧ (b :: l₂').length < (a :: b :: l).length

tactic: cases' length_split_le e with h₁ h₂
state_before: case mk
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁' l₂' : List α
e : l.split = (l₁', l₂')
h : (a :: b :: l).split = (a :: l₁', b :: l₂')
⊢ (a :: l₁').length < (a :: b :: l).length ∧ (b :: l₂').length < (a :: b :: l).length
state_after: case mk.intro
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁' l₂' : List α
e : l.split = (l₁', l₂')
h : (a :: b :: l).split = (a :: l₁', b :: l₂')
h₁ : l₁'.length ≤ l.length
h₂ : l₂'.length ≤ l.length
⊢ (a :: l₁').length < (a :: b :: l).length ∧ (b :: l₂').length < (a :: b :: l).length

tactic: exact ⟨Nat.succ_le_succ (Nat.succ_le_succ h₁), Nat.succ_le_succ (Nat.succ_le_succ h₂)⟩
state_before: case mk.intro
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l l₁' l₂' : List α
e : l.split = (l₁', l₂')
h : (a :: b :: l).split = (a :: l₁', b :: l₂')
h₁ : l₁'.length ≤ l.length
h₂ : l₂'.length ≤ l.length
⊢ (a :: l₁').length < (a :: b :: l).length ∧ (b :: l₂').length < (a :: b :: l).length
state_after: no goals
Theorem: pow_unbounded_of_one_lt
File: Mathlib/Algebra/Order/Archimedean.lean

tactic: obtain ⟨z, hz, rfl⟩ := exists_pos_add_of_lt' hy1
state_before: α : Type u_1
M : Type u_2
inst✝² : StrictOrderedSemiring α
inst✝¹ : Archimedean α
y : α
inst✝ : ExistsAddOfLE α
x : α
hy1 : 1 < y
⊢ ∃ n, x < y ^ n
state_after: case intro.intro
α : Type u_1
M : Type u_2
inst✝² : StrictOrderedSemiring α
inst✝¹ : Archimedean α
inst✝ : ExistsAddOfLE α
x z : α
hz : 0 < z
hy1 : 1 < 1 + z
⊢ ∃ n, x < (1 + z) ^ n

tactic: rw [add_comm]
state_before: case intro.intro
α : Type u_1
M : Type u_2
inst✝² : StrictOrderedSemiring α
inst✝¹ : Archimedean α
inst✝ : ExistsAddOfLE α
x z : α
hz : 0 < z
hy1 : 1 < 1 + z
⊢ ∃ n, x < (1 + z) ^ n
state_after: case intro.intro
α : Type u_1
M : Type u_2
inst✝² : StrictOrderedSemiring α
inst✝¹ : Archimedean α
inst✝ : ExistsAddOfLE α
x z : α
hz : 0 < z
hy1 : 1 < 1 + z
⊢ ∃ n, x < (z + 1) ^ n

tactic: exact add_one_pow_unbounded_of_pos _ hz
state_before: case intro.intro
α : Type u_1
M : Type u_2
inst✝² : StrictOrderedSemiring α
inst✝¹ : Archimedean α
inst✝ : ExistsAddOfLE α
x z : α
hz : 0 < z
hy1 : 1 < 1 + z
⊢ ∃ n, x < (z + 1) ^ n
state_after: no goals
Theorem: Algebra.adjoin_eq_range
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: rw [← Algebra.adjoin_range_eq_range_aeval, Subtype.range_coe]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝³ : CommSemiring R
inst✝² : CommSemiring S₁
p q : MvPolynomial σ R
inst✝¹ : Algebra R S₁
inst✝ : CommSemiring S₂
f : σ → S₁
s : Set S₁
⊢ Algebra.adjoin R s = (aeval Subtype.val).range
state_after: no goals
Theorem: Finset.eq_prod_range_div
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [prod_range_div, mul_div_cancel]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
M : Type u_6
inst✝ : CommGroup M
f : ℕ → M
n : ℕ
⊢ f n = f 0 * ∏ i ∈ range n, f (i + 1) / f i
state_after: no goals
Theorem: Primrec.list_ofFn
File: Mathlib/Computability/Primrec.lean

tactic: simp [List.ofFn_succ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : Fin (n + 1) → α → σ
hf : ∀ (i : Fin (n + 1)), Primrec (f i)
⊢ Primrec fun a => List.ofFn fun i => f i a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : Fin (n + 1) → α → σ
hf : ∀ (i : Fin (n + 1)), Primrec (f i)
⊢ Primrec fun a => f 0 a :: List.ofFn fun i => f i.succ a

tactic: exact list_cons.comp (hf 0) (list_ofFn fun i => hf i.succ)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : Fin (n + 1) → α → σ
hf : ∀ (i : Fin (n + 1)), Primrec (f i)
⊢ Primrec fun a => f 0 a :: List.ofFn fun i => f i.succ a
state_after: no goals
Theorem: Matrix.row_vecMul
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
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : m → α
⊢ row ι (v ᵥ* M) = row ι v * M
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
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : m → α
i✝ : ι
j✝ : n
⊢ row ι (v ᵥ* M) i✝ j✝ = (row ι v * M) 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
inst✝¹ : Fintype m
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : m → α
i✝ : ι
j✝ : n
⊢ row ι (v ᵥ* M) i✝ j✝ = (row ι v * M) i✝ j✝
state_after: no goals
Theorem: lt_mul_iff_one_lt_left'
File: Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean

tactic: rw [one_mul]
state_before: α : Type u_1
β : Type u_2
inst✝³ : MulOneClass α
inst✝² : LT α
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b : α
⊢ a < b * a ↔ 1 * a < b * a
state_after: no goals
Theorem: LinearMap.detAux_def'
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: rw [detAux]
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
κ : Type u_6
inst✝ : Fintype κ
b : Basis ι A M
f : M →ₗ[A] M
⊢ (detAux (Trunc.mk b)) f = ((toMatrix b b) f).det
state_after: 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
κ : Type u_6
inst✝ : Fintype κ
b : Basis ι A M
f : M →ₗ[A] M
⊢ (Trunc.lift (fun b => detMonoidHom.comp ↑(toMatrixAlgEquiv b)) ⋯ (Trunc.mk b)) f = ((toMatrix b b) f).det

tactic: rfl
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
κ : Type u_6
inst✝ : Fintype κ
b : Basis ι A M
f : M →ₗ[A] M
⊢ (Trunc.lift (fun b => detMonoidHom.comp ↑(toMatrixAlgEquiv b)) ⋯ (Trunc.mk b)) f = ((toMatrix b b) f).det
state_after: no goals
Theorem: Nat.nat_repr_len_aux
File: Mathlib/Data/Nat/Digits.lean

tactic: simp only [Nat.pow_succ]
state_before: n✝ n b e : ℕ
h_b_pos : 0 < b
⊢ n < b ^ e.succ → n / b < b ^ e
state_after: n✝ n b e : ℕ
h_b_pos : 0 < b
⊢ n < b ^ e * b → n / b < b ^ e

tactic: exact (@Nat.div_lt_iff_lt_mul b n (b ^ e) h_b_pos).mpr
state_before: n✝ n b e : ℕ
h_b_pos : 0 < b
⊢ n < b ^ e * b → n / b < b ^ e
state_after: no goals
Theorem: Set.Finite.injOn_iff_bijOn_of_mapsTo
File: Mathlib/Data/Set/Finite.lean

tactic: refine ⟨fun h ↦ ⟨hm, h, ?_⟩, BijOn.injOn⟩
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
f : α → α
hs : s.Finite
hm : MapsTo f s s
⊢ InjOn f s ↔ BijOn f s s
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
f : α → α
hs : s.Finite
hm : MapsTo f s s
h : InjOn f s
⊢ SurjOn f s s

tactic: have : Finite s := finite_coe_iff.mpr hs
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
f : α → α
hs : s.Finite
hm : MapsTo f s s
h : InjOn f s
⊢ SurjOn f s s
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
f : α → α
hs : s.Finite
hm : MapsTo f s s
h : InjOn f s
this : Finite ↑s
⊢ SurjOn f s s

tactic: exact hm.restrict_surjective_iff.mp (Finite.injective_iff_surjective.mp <| hm.restrict_inj.mpr h)
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
f : α → α
hs : s.Finite
hm : MapsTo f s s
h : InjOn f s
this : Finite ↑s
⊢ SurjOn f s s
state_after: no goals
Theorem: Multiset.nsmul_singleton
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [← replicate_one, nsmul_replicate, mul_one]
state_before: α : Type u_1
β : Type v
γ : Type u_2
a : α
n : ℕ
⊢ n • {a} = replicate n a
state_after: no goals
Theorem: Real.abs_exp_sub_one_le
File: Mathlib/Data/Complex/Exponential.lean

tactic: have : |x| ≤ 1 := mod_cast hx
state_before: x : ℝ
hx : |x| ≤ 1
⊢ |rexp x - 1| ≤ 2 * |x|
state_after: x : ℝ
hx this : |x| ≤ 1
⊢ |rexp x - 1| ≤ 2 * |x|

tactic: have := Complex.abs_exp_sub_one_le (x := x) (by simpa using this)
state_before: x : ℝ
hx this : |x| ≤ 1
⊢ |rexp x - 1| ≤ 2 * |x|
state_after: x : ℝ
hx this✝ : |x| ≤ 1
this : Complex.abs (cexp ↑x - 1) ≤ 2 * Complex.abs ↑x
⊢ |rexp x - 1| ≤ 2 * |x|

tactic: rw [← ofReal_exp, ← ofReal_one, ← ofReal_sub, abs_ofReal, abs_ofReal] at this
state_before: x : ℝ
hx this✝ : |x| ≤ 1
this : Complex.abs (cexp ↑x - 1) ≤ 2 * Complex.abs ↑x
⊢ |rexp x - 1| ≤ 2 * |x|
state_after: x : ℝ
hx this✝ : |x| ≤ 1
this : |rexp x - 1| ≤ 2 * |x|
⊢ |rexp x - 1| ≤ 2 * |x|

tactic: exact this
state_before: x : ℝ
hx this✝ : |x| ≤ 1
this : |rexp x - 1| ≤ 2 * |x|
⊢ |rexp x - 1| ≤ 2 * |x|
state_after: no goals

tactic: simpa using this
state_before: x : ℝ
hx this : |x| ≤ 1
⊢ Complex.abs ↑x ≤ 1
state_after: no goals
Theorem: QuotientGroup.map_map
File: Mathlib/GroupTheory/QuotientGroup.lean

tactic: refine induction_on' x fun x => ?_
state_before: G : Type u
inst✝⁵ : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝⁴ : Group H
M✝ : Type x
inst✝³ : Monoid M✝
I : Type u_1
inst✝² : Group I
M : Subgroup H
O : Subgroup I
inst✝¹ : M.Normal
inst✝ : O.Normal
f : G →* H
g : H →* I
hf : N ≤ Subgroup.comap f M
hg : M ≤ Subgroup.comap g O
hgf : optParam (N ≤ Subgroup.comap (g.comp f) O) ⋯
x : G ⧸ N
⊢ (map M O g hg) ((map N M f hf) x) = (map N O (g.comp f) hgf) x
state_after: G : Type u
inst✝⁵ : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝⁴ : Group H
M✝ : Type x
inst✝³ : Monoid M✝
I : Type u_1
inst✝² : Group I
M : Subgroup H
O : Subgroup I
inst✝¹ : M.Normal
inst✝ : O.Normal
f : G →* H
g : H →* I
hf : N ≤ Subgroup.comap f M
hg : M ≤ Subgroup.comap g O
hgf : optParam (N ≤ Subgroup.comap (g.comp f) O) ⋯
x✝ : G ⧸ N
x : G
⊢ (map M O g hg) ((map N M f hf) ↑x) = (map N O (g.comp f) hgf) ↑x

tactic: simp only [map_mk, MonoidHom.comp_apply]
state_before: G : Type u
inst✝⁵ : Group G
N : Subgroup G
nN : N.Normal
H : Type v
inst✝⁴ : Group H
M✝ : Type x
inst✝³ : Monoid M✝
I : Type u_1
inst✝² : Group I
M : Subgroup H
O : Subgroup I
inst✝¹ : M.Normal
inst✝ : O.Normal
f : G →* H
g : H →* I
hf : N ≤ Subgroup.comap f M
hg : M ≤ Subgroup.comap g O
hgf : optParam (N ≤ Subgroup.comap (g.comp f) O) ⋯
x✝ : G ⧸ N
x : G
⊢ (map M O g hg) ((map N M f hf) ↑x) = (map N O (g.comp f) hgf) ↑x
state_after: no goals
Theorem: Quaternion.norm_exp
File: Mathlib/Analysis/NormedSpace/QuaternionExponential.lean

tactic: rw [norm_eq_sqrt_real_inner (exp ℝ q), inner_self, normSq_exp, Real.sqrt_sq_eq_abs,
  Real.norm_eq_abs]
state_before: q : ℍ
⊢ ‖exp ℝ q‖ = ‖exp ℝ q.re‖
state_after: no goals
Theorem: Complex.arg_mul_eq_add_arg_iff
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rw [← arg_coe_angle_toReal_eq_arg, arg_mul_coe_angle hx₀ hy₀, ← Real.Angle.coe_add,
    Real.Angle.toReal_coe_eq_self_iff_mem_Ioc]
state_before: a x✝ z x y : ℂ
hx₀ : x ≠ 0
hy₀ : y ≠ 0
⊢ (x * y).arg = x.arg + y.arg ↔ x.arg + y.arg ∈ Ioc (-π) π
state_after: no goals
Theorem: mem_closedBall_iff_norm'''
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [mem_closedBall', dist_eq_norm_div]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ b ∈ closedBall a r ↔ ‖a / b‖ ≤ r
state_after: no goals