1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: measurable_tProd_mk
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: induction' l with i l ih
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
π : δ → Type u_6
inst✝ : (x : δ) → MeasurableSpace (π x)
l : List δ
⊢ Measurable (TProd.mk l)
state_after: case nil
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
π : δ → Type u_6
inst✝ : (x : δ) → MeasurableSpace (π x)
⊢ Measurable (TProd.mk [])

case cons
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
π : δ → Type u_6
inst✝ : (x : δ) → MeasurableSpace (π x)
i : δ
l : List δ
ih : Measurable (TProd.mk l)
⊢ Measurable (TProd.mk (i :: l))

tactic: exact measurable_const
state_before: case nil
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
π : δ → Type u_6
inst✝ : (x : δ) → MeasurableSpace (π x)
⊢ Measurable (TProd.mk [])
state_after: no goals

tactic: exact (measurable_pi_apply i).prod_mk ih
state_before: case cons
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
π : δ → Type u_6
inst✝ : (x : δ) → MeasurableSpace (π x)
i : δ
l : List δ
ih : Measurable (TProd.mk l)
⊢ Measurable (TProd.mk (i :: l))
state_after: no goals
Theorem: Finset.uIcc_comm
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: rw [uIcc, uIcc, inf_comm, sup_comm]
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : Lattice α
inst✝ : LocallyFiniteOrder α
a✝ a₁ a₂ b✝ b₁ b₂ c x a b : α
⊢ [[a, b]] = [[b, a]]
state_after: no goals
Theorem: CategoryTheory.ShortComplex.LeftHomologyData.lift_K_comp_cyclesIso_inv
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

tactic: rw [← h.liftCycles_comp_cyclesIso_hom, assoc, Iso.hom_inv_id, comp_id]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
k : A ⟶ S.X₂
hk : k ≫ S.g = 0
inst✝ : S.HasLeftHomology
⊢ h.liftK k hk ≫ h.cyclesIso.inv = S.liftCycles k hk
state_after: no goals
Theorem: ZMod.inv_zero
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [val_zero]
state_before: n : ℕ
⊢ ↑((val 0).gcdA (n + 1)) = 0
state_after: n : ℕ
⊢ ↑(Nat.gcdA 0 (n + 1)) = 0

tactic: unfold Nat.gcdA Nat.xgcd Nat.xgcdAux
state_before: n : ℕ
⊢ ↑(Nat.gcdA 0 (n + 1)) = 0
state_after: n : ℕ
⊢ ↑(n + 1, 0, 1).2.1 = 0

tactic: rfl
state_before: n : ℕ
⊢ ↑(n + 1, 0, 1).2.1 = 0
state_after: no goals
Theorem: MeasureTheory.snorm_trim
File: Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean

tactic: by_cases h0 : p = 0
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ snorm f p (μ.trim hm) = snorm f p μ
state_after: case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : p = 0
⊢ snorm f p (μ.trim hm) = snorm f p μ

case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
⊢ snorm f p (μ.trim hm) = snorm f p μ

tactic: by_cases h_top : p = ∞
state_before: case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
⊢ snorm f p (μ.trim hm) = snorm f p μ
state_after: case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm f p (μ.trim hm) = snorm f p μ

case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm f p (μ.trim hm) = snorm f p μ

tactic: simpa only [snorm_eq_snorm' h0 h_top] using snorm'_trim hm hf
state_before: case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm f p (μ.trim hm) = snorm f p μ
state_after: no goals

tactic: simp [h0]
state_before: case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : p = 0
⊢ snorm f p (μ.trim hm) = snorm f p μ
state_after: no goals

tactic: simpa only [h_top, snorm_exponent_top] using snormEssSup_trim hm hf
state_before: case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ : Measure α
inst✝ : NormedAddCommGroup E
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm f p (μ.trim hm) = snorm f p μ
state_after: no goals
Theorem: AddGrp.epi_iff_surjective
File: Mathlib/Algebra/Category/Grp/EpiMono.lean

tactic: have i1 : Epi f ↔ Epi (groupAddGroupEquivalence.inverse.map f) := by
  refine ⟨?_, groupAddGroupEquivalence.inverse.epi_of_epi_map⟩
  intro e'
  apply groupAddGroupEquivalence.inverse.map_epi
state_before: A B : AddGrp
f : A ⟶ B
⊢ Epi f ↔ Function.Surjective ⇑f
state_after: A B : AddGrp
f : A ⟶ B
i1 : Epi f ↔ Epi (groupAddGroupEquivalence.inverse.map f)
⊢ Epi f ↔ Function.Surjective ⇑f

tactic: rwa [Grp.epi_iff_surjective] at i1
state_before: A B : AddGrp
f : A ⟶ B
i1 : Epi f ↔ Epi (groupAddGroupEquivalence.inverse.map f)
⊢ Epi f ↔ Function.Surjective ⇑f
state_after: no goals

tactic: refine ⟨?_, groupAddGroupEquivalence.inverse.epi_of_epi_map⟩
state_before: A B : AddGrp
f : A ⟶ B
⊢ Epi f ↔ Epi (groupAddGroupEquivalence.inverse.map f)
state_after: A B : AddGrp
f : A ⟶ B
⊢ Epi f → Epi (groupAddGroupEquivalence.inverse.map f)

tactic: intro e'
state_before: A B : AddGrp
f : A ⟶ B
⊢ Epi f → Epi (groupAddGroupEquivalence.inverse.map f)
state_after: A B : AddGrp
f : A ⟶ B
e' : Epi f
⊢ Epi (groupAddGroupEquivalence.inverse.map f)

tactic: apply groupAddGroupEquivalence.inverse.map_epi
state_before: A B : AddGrp
f : A ⟶ B
e' : Epi f
⊢ Epi (groupAddGroupEquivalence.inverse.map f)
state_after: no goals
Theorem: list_reverse'
File: Mathlib/Computability/Primrec.lean

tactic: induction l <;> simp [*, List.reverseAux]
state_before: α : Type u_1
β : Type u_2
σ : Type u_3
inst✝² : Primcodable α
inst✝¹ : Primcodable β
inst✝ : Primcodable σ
H : Nat.Primrec fun n => encode (decode n)
this : Primcodable (List β) := prim H
l : List β
⊢ ∀ (r : List β), List.foldl (fun s b => b :: s) r l = l.reverseAux r
state_after: no goals
Theorem: SimpleGraph.turanGraph_zero
File: Mathlib/Combinatorics/SimpleGraph/Turan.lean

tactic: ext a b
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
H : SimpleGraph V
⊢ turanGraph n 0 = ⊤
state_after: case Adj.h.h.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
H : SimpleGraph V
a b : Fin n
⊢ (turanGraph n 0).Adj a b ↔ ⊤.Adj a b

tactic: simp_rw [turanGraph, top_adj, Nat.mod_zero, not_iff_not, Fin.val_inj]
state_before: case Adj.h.h.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
H : SimpleGraph V
a b : Fin n
⊢ (turanGraph n 0).Adj a b ↔ ⊤.Adj a b
state_after: no goals
Theorem: SetTheory.PGame.birthday_add_one
File: Mathlib/SetTheory/Game/Birthday.lean

tactic: simp
state_before: a b x : PGame
⊢ (a + 1).birthday = Order.succ a.birthday
state_after: no goals
Theorem: real_inner_self_eq_norm_sq
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [pow_two, real_inner_self_eq_norm_mul_norm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x : F
⊢ ⟪x, x⟫_ℝ = ‖x‖ ^ 2
state_after: no goals
Theorem: Batteries.AssocList.length_mapVal
File: .lake/packages/batteries/Batteries/Data/AssocList.lean

tactic: induction l <;> simp_all
state_before: α✝ : Type u_1
β✝¹ : Type u_2
β✝ : Type u_3
f : α✝ → β✝¹ → β✝
l : AssocList α✝ β✝¹
⊢ (mapVal f l).length = l.length
state_after: no goals
Theorem: FirstOrder.Language.BoundedFormula.realize_castLE_of_eq
File: Mathlib/ModelTheory/Semantics.lean

tactic: subst h
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n✝ l : ℕ
φ✝ ψ : L.BoundedFormula α l
θ : L.BoundedFormula α l.succ
v✝ : α → M
xs✝ : Fin l → M
m n : ℕ
h : m = n
h' : m ≤ n
φ : L.BoundedFormula α m
v : α → M
xs : Fin n → M
⊢ (castLE h' φ).Realize v xs ↔ φ.Realize v (xs ∘ Fin.cast h)
state_after: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n l : ℕ
φ✝ ψ : L.BoundedFormula α l
θ : L.BoundedFormula α l.succ
v✝ : α → M
xs✝ : Fin l → M
m : ℕ
φ : L.BoundedFormula α m
v : α → M
h' : m ≤ m
xs : Fin m → M
⊢ (castLE h' φ).Realize v xs ↔ φ.Realize v (xs ∘ Fin.cast ⋯)

tactic: simp only [castLE_rfl, cast_refl, OrderIso.coe_refl, Function.comp_id]
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n l : ℕ
φ✝ ψ : L.BoundedFormula α l
θ : L.BoundedFormula α l.succ
v✝ : α → M
xs✝ : Fin l → M
m : ℕ
φ : L.BoundedFormula α m
v : α → M
h' : m ≤ m
xs : Fin m → M
⊢ (castLE h' φ).Realize v xs ↔ φ.Realize v (xs ∘ Fin.cast ⋯)
state_after: no goals
Theorem: geom_series_mul_shift
File: Mathlib/Analysis/SpecificLimits/Normed.lean

tactic: simp_rw [← (NormedRing.summable_geometric_of_norm_lt_one _ h).tsum_mul_left, ← _root_.pow_succ']
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
R : Type u_4
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ x * ∑' (i : ℕ), x ^ i = ∑' (i : ℕ), x ^ (i + 1)
state_after: no goals
Theorem: MonoidHom.map_finprod_plift
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [finprod_eq_prod_plift_of_mulSupport_subset h.coe_toFinset.ge,
  finprod_eq_prod_plift_of_mulSupport_subset, map_prod]
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
g : α → M
h : (mulSupport (g ∘ PLift.down)).Finite
⊢ f (∏ᶠ (x : α), g x) = ∏ᶠ (x : α), f (g x)
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
g : α → M
h : (mulSupport (g ∘ PLift.down)).Finite
⊢ mulSupport ((fun x => f (g x)) ∘ PLift.down) ⊆ ↑h.toFinset

tactic: rw [h.coe_toFinset]
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
g : α → M
h : (mulSupport (g ∘ PLift.down)).Finite
⊢ mulSupport ((fun x => f (g x)) ∘ PLift.down) ⊆ ↑h.toFinset
state_after: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
g : α → M
h : (mulSupport (g ∘ PLift.down)).Finite
⊢ mulSupport ((fun x => f (g x)) ∘ PLift.down) ⊆ mulSupport (g ∘ PLift.down)

tactic: exact mulSupport_comp_subset f.map_one (g ∘ PLift.down)
state_before: G : Type u_1
M : Type u_2
N : Type u_3
α : Sort u_4
β : Sort u_5
ι : Sort u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f : M →* N
g : α → M
h : (mulSupport (g ∘ PLift.down)).Finite
⊢ mulSupport ((fun x => f (g x)) ∘ PLift.down) ⊆ mulSupport (g ∘ PLift.down)
state_after: no goals
Theorem: Real.rpow_add'
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rcases hx.eq_or_lt with (rfl | pos)
state_before: x✝ y✝ z✝ w x y z : ℝ
hx : 0 ≤ x
h : y + z ≠ 0
⊢ x ^ (y + z) = x ^ y * x ^ z
state_after: case inl
x y✝ z✝ w y z : ℝ
h : y + z ≠ 0
hx : 0 ≤ 0
⊢ 0 ^ (y + z) = 0 ^ y * 0 ^ z

case inr
x✝ y✝ z✝ w x y z : ℝ
hx : 0 ≤ x
h : y + z ≠ 0
pos : 0 < x
⊢ x ^ (y + z) = x ^ y * x ^ z

tactic: rw [zero_rpow h, zero_eq_mul]
state_before: case inl
x y✝ z✝ w y z : ℝ
h : y + z ≠ 0
hx : 0 ≤ 0
⊢ 0 ^ (y + z) = 0 ^ y * 0 ^ z
state_after: case inl
x y✝ z✝ w y z : ℝ
h : y + z ≠ 0
hx : 0 ≤ 0
⊢ 0 ^ y = 0 ∨ 0 ^ z = 0

tactic: have : y ≠ 0 ∨ z ≠ 0 := not_and_or.1 fun ⟨hy, hz⟩ => h <| hy.symm ▸ hz.symm ▸ zero_add 0
state_before: case inl
x y✝ z✝ w y z : ℝ
h : y + z ≠ 0
hx : 0 ≤ 0
⊢ 0 ^ y = 0 ∨ 0 ^ z = 0
state_after: case inl
x y✝ z✝ w y z : ℝ
h : y + z ≠ 0
hx : 0 ≤ 0
this : y ≠ 0 ∨ z ≠ 0
⊢ 0 ^ y = 0 ∨ 0 ^ z = 0

tactic: exact this.imp zero_rpow zero_rpow
state_before: case inl
x y✝ z✝ w y z : ℝ
h : y + z ≠ 0
hx : 0 ≤ 0
this : y ≠ 0 ∨ z ≠ 0
⊢ 0 ^ y = 0 ∨ 0 ^ z = 0
state_after: no goals

tactic: exact rpow_add pos _ _
state_before: case inr
x✝ y✝ z✝ w x y z : ℝ
hx : 0 ≤ x
h : y + z ≠ 0
pos : 0 < x
⊢ x ^ (y + z) = x ^ y * x ^ z
state_after: no goals
Theorem: Filter.EventuallyEq.gradient_eq
File: Mathlib/Analysis/Calculus/Gradient/Basic.lean

tactic: unfold gradient
state_before: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
f₀ f₁ : F → 𝕜
f₀' f₁' x₀ x₁ : F
s₀ s₁ t : Set F
L₀ L₁ : Filter F
hL : f₁ =ᶠ[𝓝 x] f
⊢ ∇ f₁ x = ∇ f x
state_after: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
f₀ f₁ : F → 𝕜
f₀' f₁' x₀ x₁ : F
s₀ s₁ t : Set F
L₀ L₁ : Filter F
hL : f₁ =ᶠ[𝓝 x] f
⊢ (toDual 𝕜 F).symm (fderiv 𝕜 f₁ x) = (toDual 𝕜 F).symm (fderiv 𝕜 f x)

tactic: rwa [Filter.EventuallyEq.fderiv_eq]
state_before: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
f₀ f₁ : F → 𝕜
f₀' f₁' x₀ x₁ : F
s₀ s₁ t : Set F
L₀ L₁ : Filter F
hL : f₁ =ᶠ[𝓝 x] f
⊢ (toDual 𝕜 F).symm (fderiv 𝕜 f₁ x) = (toDual 𝕜 F).symm (fderiv 𝕜 f x)
state_after: no goals
Theorem: CategoryTheory.Limits.Concrete.small_sections_of_hasLimit
File: Mathlib/CategoryTheory/Limits/ConcreteCategory.lean

tactic: rw [← Types.hasLimit_iff_small_sections]
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
inst✝² : (forget C).Corepresentable
J : Type w
inst✝¹ : Category.{t, w} J
G : J ⥤ C
inst✝ : HasLimit G
⊢ Small.{v, max v w} ↑(G ⋙ forget C).sections
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
inst✝² : (forget C).Corepresentable
J : Type w
inst✝¹ : Category.{t, w} J
G : J ⥤ C
inst✝ : HasLimit G
⊢ HasLimit (G ⋙ forget C)

tactic: infer_instance
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : ConcreteCategory C
inst✝² : (forget C).Corepresentable
J : Type w
inst✝¹ : Category.{t, w} J
G : J ⥤ C
inst✝ : HasLimit G
⊢ HasLimit (G ⋙ forget C)
state_after: no goals
Theorem: Mathlib.Tactic.RingNF.rat_rawCast_pos
File: Mathlib/Tactic/Ring/RingNF.lean

tactic: simp
state_before: R✝ : Type ?u.20749
inst✝¹ : CommSemiring R✝
n d : ℕ
R : Type u_1
inst✝ : DivisionRing R
⊢ Rat.rawCast (Int.ofNat n) d = n.rawCast / d.rawCast
state_after: no goals
Theorem: Matrix.IsHermitian.mulVec_eigenvectorBasis
File: Mathlib/LinearAlgebra/Matrix/Spectrum.lean

tactic: simpa only [eigenvectorBasis, OrthonormalBasis.reindex_apply, toEuclideanLin_apply,
  RCLike.real_smul_eq_coe_smul (K := 𝕜)] using
    congr(⇑$((isHermitian_iff_isSymmetric.1 hA).apply_eigenvectorBasis
      finrank_euclideanSpace ((Fintype.equivOfCardEq (Fintype.card_fin _)).symm j)))
state_before: 𝕜 : Type u_1
inst✝² : RCLike 𝕜
n : Type u_2
inst✝¹ : Fintype n
A : Matrix n n 𝕜
inst✝ : DecidableEq n
hA : A.IsHermitian
j : n
⊢ A *ᵥ (WithLp.equiv 2 ((i : n) → (fun x => 𝕜) i)) (hA.eigenvectorBasis j) =
    hA.eigenvalues j • (WithLp.equiv 2 ((i : n) → (fun x => 𝕜) i)) (hA.eigenvectorBasis j)
state_after: no goals
Theorem: Dilation.nndist_eq
File: Mathlib/Topology/MetricSpace/Dilation.lean

tactic: simp only [← ENNReal.coe_inj, ← edist_nndist, ENNReal.coe_mul, edist_eq]
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
F✝ : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α✝
inst✝⁵ : PseudoEMetricSpace β✝
inst✝⁴ : FunLike F✝ α✝ β✝
α : Type u_6
β : Type u_7
F : Type u_8
inst✝³ : PseudoMetricSpace α
inst✝² : PseudoMetricSpace β
inst✝¹ : FunLike F α β
inst✝ : DilationClass F α β
f : F
x y : α
⊢ nndist (f x) (f y) = ratio f * nndist x y
state_after: no goals
Theorem: SeminormFamily.withSeminorms_iff_topologicalSpace_eq_iInf
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: rw [p.withSeminorms_iff_nhds_eq_iInf,
  TopologicalAddGroup.ext_iff inferInstance (topologicalAddGroup_iInf fun i => inferInstance),
  nhds_iInf]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
⊢ WithSeminorms p ↔ t = ⨅ i, UniformSpace.toTopologicalSpace
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
⊢ 𝓝 0 = ⨅ i, comap (⇑(p i)) (𝓝 0) ↔ 𝓝 0 = ⨅ i, 𝓝 0

tactic: congrm _ = ⨅ i, ?_
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
⊢ 𝓝 0 = ⨅ i, comap (⇑(p i)) (𝓝 0) ↔ 𝓝 0 = ⨅ i, 𝓝 0
state_after: case a
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
i : ι
⊢ comap (⇑(p i)) (𝓝 0) = 𝓝 0

tactic: exact @comap_norm_nhds_zero _ (p i).toSeminormedAddGroup
state_before: case a
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
i : ι
⊢ comap (⇑(p i)) (𝓝 0) = 𝓝 0
state_after: no goals
Theorem: Monoid.exponent_eq_zero_iff_range_orderOf_infinite
File: Mathlib/GroupTheory/Exponent.lean

tactic: have := exponent_ne_zero_iff_range_orderOf_finite h
state_before: G : Type u
inst✝ : Monoid G
h : ∀ (g : G), 0 < orderOf g
⊢ exponent G = 0 ↔ (Set.range orderOf).Infinite
state_after: G : Type u
inst✝ : Monoid G
h : ∀ (g : G), 0 < orderOf g
this : exponent G ≠ 0 ↔ (Set.range orderOf).Finite
⊢ exponent G = 0 ↔ (Set.range orderOf).Infinite

tactic: rwa [Ne, not_iff_comm, Iff.comm] at this
state_before: G : Type u
inst✝ : Monoid G
h : ∀ (g : G), 0 < orderOf g
this : exponent G ≠ 0 ↔ (Set.range orderOf).Finite
⊢ exponent G = 0 ↔ (Set.range orderOf).Infinite
state_after: no goals
Theorem: Real.rpow_le_rpow_of_exponent_ge'
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rcases eq_or_lt_of_le hx0 with (rfl | hx0')
state_before: x y z : ℝ
n : ℕ
hx0 : 0 ≤ x
hx1 : x ≤ 1
hz : 0 ≤ z
hyz : z ≤ y
⊢ x ^ y ≤ x ^ z
state_after: case inl
y z : ℝ
n : ℕ
hz : 0 ≤ z
hyz : z ≤ y
hx0 : 0 ≤ 0
hx1 : 0 ≤ 1
⊢ 0 ^ y ≤ 0 ^ z

case inr
x y z : ℝ
n : ℕ
hx0 : 0 ≤ x
hx1 : x ≤ 1
hz : 0 ≤ z
hyz : z ≤ y
hx0' : 0 < x
⊢ x ^ y ≤ x ^ z

tactic: rcases eq_or_lt_of_le hz with (rfl | hz')
state_before: case inl
y z : ℝ
n : ℕ
hz : 0 ≤ z
hyz : z ≤ y
hx0 : 0 ≤ 0
hx1 : 0 ≤ 1
⊢ 0 ^ y ≤ 0 ^ z
state_after: case inl.inl
y : ℝ
n : ℕ
hx0 : 0 ≤ 0
hx1 : 0 ≤ 1
hz : 0 ≤ 0
hyz : 0 ≤ y
⊢ 0 ^ y ≤ 0 ^ 0

case inl.inr
y z : ℝ
n : ℕ
hz : 0 ≤ z
hyz : z ≤ y
hx0 : 0 ≤ 0
hx1 : 0 ≤ 1
hz' : 0 < z
⊢ 0 ^ y ≤ 0 ^ z

tactic: rw [zero_rpow, zero_rpow] <;> linarith
state_before: case inl.inr
y z : ℝ
n : ℕ
hz : 0 ≤ z
hyz : z ≤ y
hx0 : 0 ≤ 0
hx1 : 0 ≤ 1
hz' : 0 < z
⊢ 0 ^ y ≤ 0 ^ z
state_after: no goals

tactic: exact (rpow_zero 0).symm ▸ rpow_le_one hx0 hx1 hyz
state_before: case inl.inl
y : ℝ
n : ℕ
hx0 : 0 ≤ 0
hx1 : 0 ≤ 1
hz : 0 ≤ 0
hyz : 0 ≤ y
⊢ 0 ^ y ≤ 0 ^ 0
state_after: no goals

tactic: exact rpow_le_rpow_of_exponent_ge hx0' hx1 hyz
state_before: case inr
x y z : ℝ
n : ℕ
hx0 : 0 ≤ x
hx1 : x ≤ 1
hz : 0 ≤ z
hyz : z ≤ y
hx0' : 0 < x
⊢ x ^ y ≤ x ^ z
state_after: no goals
Theorem: contMDiffWithinAt_finset_prod
File: Mathlib/Geometry/Manifold/Algebra/Monoid.lean

tactic: simp only [← Finset.prod_apply]
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
h : ∀ i ∈ t, ContMDiffWithinAt I' I n (f i) s x
⊢ ContMDiffWithinAt I' I n (fun x => ∏ i ∈ t, f i x) s x
state_after: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
h : ∀ i ∈ t, ContMDiffWithinAt I' I n (f i) s x
⊢ ContMDiffWithinAt I' I n (fun x => (∏ c ∈ t, f c) x) s x

tactic: exact contMDiffWithinAt_finset_prod' h
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
h : ∀ i ∈ t, ContMDiffWithinAt I' I n (f i) s x
⊢ ContMDiffWithinAt I' I n (fun x => (∏ c ∈ t, f c) x) s x
state_after: no goals
Theorem: rank_fin_fun
File: Mathlib/LinearAlgebra/Dimension/Constructions.lean

tactic: simp [rank_fun']
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝¹³ : Ring R
inst✝¹² : CommRing S
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : AddCommGroup M'
inst✝⁹ : AddCommGroup M₁
inst✝⁸ : Module R M
inst✝⁷ : Module R M'
inst✝⁶ : Module R M₁
inst✝⁵ : StrongRankCondition R
inst✝⁴ : Module.Free R M
inst✝³ : (i : η) → AddCommGroup (φ i)
inst✝² : (i : η) → Module R (φ i)
inst✝¹ : ∀ (i : η), Module.Free R (φ i)
inst✝ : Fintype η
n : ℕ
⊢ Module.rank R (Fin n → R) = ↑n
state_after: no goals