1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LieSubmodule.lie_inf
File: Mathlib/Algebra/Lie/IdealOperations.lean

tactic: rw [le_inf_iff]
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
⊢ ⁅I, N ⊓ N'⁆ ≤ ⁅I, N⁆ ⊓ ⁅I, N'⁆
state_after: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
⊢ ⁅I, N ⊓ N'⁆ ≤ ⁅I, N⁆ ∧ ⁅I, N ⊓ N'⁆ ≤ ⁅I, N'⁆

tactic: constructor <;>
apply mono_lie_right <;> [exact inf_le_left; exact inf_le_right]
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
⊢ ⁅I, N ⊓ N'⁆ ≤ ⁅I, N⁆ ∧ ⁅I, N ⊓ N'⁆ ≤ ⁅I, N'⁆
state_after: no goals
Theorem: GeneralizedContinuedFraction.continuants_recurrenceAux
File: Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean

tactic: simp [nth_cont_eq_succ_nth_cont_aux,
  continuantsAux_recurrence nth_s_eq nth_conts_aux_eq succ_nth_conts_aux_eq]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n : ℕ
inst✝ : DivisionRing K
gp ppred pred : Pair K
nth_s_eq : g.s.get? n = some gp
nth_conts_aux_eq : g.continuantsAux n = ppred
succ_nth_conts_aux_eq : g.continuantsAux (n + 1) = pred
⊢ g.continuants (n + 1) = { a := gp.b * pred.a + gp.a * ppred.a, b := gp.b * pred.b + gp.a * ppred.b }
state_after: no goals
Theorem: MulHom.srange_top_iff_surjective
File: Mathlib/Algebra/Group/Subsemigroup/Operations.lean

tactic: rw [coe_srange, coe_top]
state_before: M : Type u_1
N✝ : Type u_2
P : Type u_3
σ : Type u_4
inst✝³ : Mul M
inst✝² : Mul N✝
inst✝¹ : Mul P
S : Subsemigroup M
N : Type u_5
inst✝ : Mul N
f : M →ₙ* N
⊢ ↑f.srange = ↑⊤ ↔ Set.range ⇑f = Set.univ
state_after: no goals
Theorem: ENNReal.rpow_mul_intCast
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [rpow_mul, rpow_intCast]
state_before: x : ℝ≥0∞
y : ℝ
n : ℤ
⊢ x ^ (y * ↑n) = (x ^ y) ^ n
state_after: no goals
Theorem: abs_le_of_sq_le_sq
File: Mathlib/Algebra/Order/Ring/Abs.lean

tactic: rwa [← abs_of_nonneg hb, ← sq_le_sq]
state_before: α : Type u_1
inst✝ : LinearOrderedRing α
n : ℕ
a b c : α
h : a ^ 2 ≤ b ^ 2
hb : 0 ≤ b
⊢ |a| ≤ b
state_after: no goals
Theorem: Batteries.UnionFind.push_rankD
File: .lake/packages/batteries/Batteries/Data/UnionFind/Basic.lean

tactic: simp [rankD, Array.get_eq_getElem, Array.get_push]
state_before: i : Nat
arr : Array UFNode
⊢ rankD (arr.push { parent := arr.size, rank := 0 }) i = rankD arr i
state_after: i : Nat
arr : Array UFNode
⊢ (if i < arr.size + 1 then (if h : i < arr.size then arr[i] else { parent := arr.size, rank := 0 }).rank else 0) =
    if h : i < arr.size then arr[i].rank else 0

tactic: split <;> split <;> first | simp | cases ‹¬_› (Nat.lt_succ_of_lt ‹_›)
state_before: i : Nat
arr : Array UFNode
⊢ (if i < arr.size + 1 then (if h : i < arr.size then arr[i] else { parent := arr.size, rank := 0 }).rank else 0) =
    if h : i < arr.size then arr[i].rank else 0
state_after: no goals

tactic: simp
state_before: case isFalse.isFalse
i : Nat
arr : Array UFNode
h✝¹ : ¬i < arr.size + 1
h✝ : ¬i < arr.size
⊢ 0 = 0
state_after: no goals

tactic: cases ‹¬_› (Nat.lt_succ_of_lt ‹_›)
state_before: case isFalse.isTrue
i : Nat
arr : Array UFNode
h✝¹ : ¬i < arr.size + 1
h✝ : i < arr.size
⊢ 0 = arr[i].rank
state_after: no goals
Theorem: differentiableWithinAt_inter'
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [DifferentiableWithinAt, hasFDerivWithinAt_inter' ht]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
ht : t ∈ 𝓝[s] x
⊢ DifferentiableWithinAt 𝕜 f (s ∩ t) x ↔ DifferentiableWithinAt 𝕜 f s x
state_after: no goals
Theorem: ConcaveOn.min_le_of_mem_segment
File: Mathlib/Analysis/Convex/Jensen.lean

tactic: rw [← convexHull_pair] at hf hz
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
t : Finset ι
w : ι → 𝕜
p : ι → E
x y z : E
hf : ConcaveOn 𝕜 [x-[𝕜]y] f
hz : z ∈ [x-[𝕜]y]
⊢ min (f x) (f y) ≤ f z
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
t : Finset ι
w : ι → 𝕜
p : ι → E
x y z : E
hf : ConcaveOn 𝕜 ((convexHull 𝕜) {x, y}) f
hz : z ∈ (convexHull 𝕜) {x, y}
⊢ min (f x) (f y) ≤ f z

tactic: simpa using hf.exists_le_of_mem_convexHull hz
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
t : Finset ι
w : ι → 𝕜
p : ι → E
x y z : E
hf : ConcaveOn 𝕜 ((convexHull 𝕜) {x, y}) f
hz : z ∈ (convexHull 𝕜) {x, y}
⊢ min (f x) (f y) ≤ f z
state_after: no goals
Theorem: MeasureTheory.Integrable.trim
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: refine ⟨hf.aestronglyMeasurable, ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ Integrable f (μ'.trim hm)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ HasFiniteIntegral f (μ'.trim hm)

tactic: rw [HasFiniteIntegral, lintegral_trim hm _]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ HasFiniteIntegral f (μ'.trim hm)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ∂μ' < ⊤

α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ Measurable fun a => ↑‖f a‖₊

tactic: exact hf_int.2
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ∂μ' < ⊤
state_after: no goals

tactic: exact @StronglyMeasurable.ennnorm _ m _ _ f hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
H : Type u_5
inst✝ : NormedAddCommGroup H
m0 : MeasurableSpace α
μ' : Measure α
f : α → H
hm : m ≤ m0
hf_int : Integrable f μ'
hf : StronglyMeasurable f
⊢ Measurable fun a => ↑‖f a‖₊
state_after: no goals
Theorem: SimpleGraph.Walk.mem_support_nil_iff
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: simp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
⊢ u ∈ nil.support ↔ u = v
state_after: no goals
Theorem: Metric.infDist_singleton
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp [infDist, dist_edist]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ infDist x {y} = dist x y
state_after: no goals
Theorem: norm_pow_le_mul_norm
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: induction' n with n ih
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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
n : ℕ
a : E
⊢ ‖a ^ n‖ ≤ ↑n * ‖a‖
state_after: case zero
𝓕 : 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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
a : E
⊢ ‖a ^ 0‖ ≤ ↑0 * ‖a‖

case succ
𝓕 : 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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
a : E
n : ℕ
ih : ‖a ^ n‖ ≤ ↑n * ‖a‖
⊢ ‖a ^ (n + 1)‖ ≤ ↑(n + 1) * ‖a‖

tactic: simpa only [pow_succ, Nat.cast_succ, add_mul, one_mul] using norm_mul_le_of_le ih le_rfl
state_before: case succ
𝓕 : 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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
a : E
n : ℕ
ih : ‖a ^ n‖ ≤ ↑n * ‖a‖
⊢ ‖a ^ (n + 1)‖ ≤ ↑(n + 1) * ‖a‖
state_after: no goals

tactic: simp
state_before: case zero
𝓕 : 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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
a : E
⊢ ‖a ^ 0‖ ≤ ↑0 * ‖a‖
state_after: no goals
Theorem: LinearEquiv.isReflexive_of_equiv_dual_of_isReflexive
File: Mathlib/LinearAlgebra/PerfectPairing.lean

tactic: constructor
state_before: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
⊢ IsReflexive R N
state_after: case bijective_dual_eval'
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
⊢ Bijective ⇑(Dual.eval R N)

tactic: rw [← trans_dualMap_symm_flip e]
state_before: case bijective_dual_eval'
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
⊢ Bijective ⇑(Dual.eval R N)
state_after: case bijective_dual_eval'
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
⊢ Bijective ⇑↑(e ≪≫ₗ e.flip.symm.dualMap)

tactic: exact LinearEquiv.bijective _
state_before: case bijective_dual_eval'
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
⊢ Bijective ⇑↑(e ≪≫ₗ e.flip.symm.dualMap)
state_after: no goals
Theorem: Polynomial.Monic.pow
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: rw [pow_succ]
state_before: R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
⊢ (p ^ (n + 1)).Monic
state_after: R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
⊢ (p ^ n * p).Monic

tactic: exact (Monic.pow hp n).mul hp
state_before: R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
⊢ (p ^ n * p).Monic
state_after: no goals
Theorem: Finsupp.erase_same
File: Mathlib/Data/Finsupp/Defs.lean

tactic: classical simp only [erase, coe_mk, ite_true]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a : α
f : α →₀ M
⊢ (erase a f) a = 0
state_after: no goals

tactic: simp only [erase, coe_mk, ite_true]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a : α
f : α →₀ M
⊢ (erase a f) a = 0
state_after: no goals
Theorem: Set.compl_cIcc
File: Mathlib/Order/Circular.lean

tactic: ext
state_before: α : Type u_1
inst✝ : CircularOrder α
a b : α
⊢ (cIcc a b)ᶜ = cIoo b a
state_after: case h
α : Type u_1
inst✝ : CircularOrder α
a b x✝ : α
⊢ x✝ ∈ (cIcc a b)ᶜ ↔ x✝ ∈ cIoo b a

tactic: rw [Set.mem_cIoo, sbtw_iff_not_btw, cIcc, mem_compl_iff, mem_setOf]
state_before: case h
α : Type u_1
inst✝ : CircularOrder α
a b x✝ : α
⊢ x✝ ∈ (cIcc a b)ᶜ ↔ x✝ ∈ cIoo b a
state_after: no goals
Theorem: Set.countable_iff_exists_subset_range
File: Mathlib/Data/Set/Countable.lean

tactic: inhabit α
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝ : Nonempty α
s : Set α
h : s.Countable
⊢ ∃ f, s ⊆ range f
state_after: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝ : Nonempty α
s : Set α
h : s.Countable
inhabited_h : Inhabited α
⊢ ∃ f, s ⊆ range f

tactic: exact ⟨enumerateCountable h default, subset_range_enumerate _ _⟩
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝ : Nonempty α
s : Set α
h : s.Countable
inhabited_h : Inhabited α
⊢ ∃ f, s ⊆ range f
state_after: no goals
Theorem: CategoryTheory.Biprod.ofComponents_snd
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: simp [Biprod.ofComponents]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X₁ X₂ Y₁ Y₂ : C
f₁₁ : X₁ ⟶ Y₁
f₁₂ : X₁ ⟶ Y₂
f₂₁ : X₂ ⟶ Y₁
f₂₂ : X₂ ⟶ Y₂
⊢ ofComponents f₁₁ f₁₂ f₂₁ f₂₂ ≫ biprod.snd = biprod.fst ≫ f₁₂ + biprod.snd ≫ f₂₂
state_after: no goals
Theorem: CategoryTheory.Functor.postcomp_map_heq'
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: rw [Functor.hext hobj fun _ _ => hmap]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
H : D ⥤ E
hobj : ∀ (X : C), F.obj X = G.obj X
hmap : ∀ {X Y : C} (f : X ⟶ Y), HEq (F.map f) (G.map f)
⊢ HEq ((F ⋙ H).map f) ((G ⋙ H).map f)
state_after: no goals
Theorem: LinearIsometryEquiv.comp_fderiv'
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

tactic: ext x : 1
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
iso : E ≃ₗᵢ[𝕜] F
f : G → E
⊢ fderiv 𝕜 (⇑iso ∘ f) = fun x =>
    (↑{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).comp (fderiv 𝕜 f x)
state_after: case h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
iso : E ≃ₗᵢ[𝕜] F
f : G → E
x : G
⊢ fderiv 𝕜 (⇑iso ∘ f) x =
    (↑{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).comp (fderiv 𝕜 f x)

tactic: exact LinearIsometryEquiv.comp_fderiv iso
state_before: case h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
iso : E ≃ₗᵢ[𝕜] F
f : G → E
x : G
⊢ fderiv 𝕜 (⇑iso ∘ f) x =
    (↑{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).comp (fderiv 𝕜 f x)
state_after: no goals
Theorem: EuclideanGeometry.right_ne_of_oangle_sign_eq_one
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: decide
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : (∡ p₁ p₂ p₃).sign = 1
⊢ 1 ≠ 0
state_after: no goals
Theorem: Filter.tendsto_mul_const_atBot_of_pos
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simpa only [mul_comm] using tendsto_const_mul_atBot_of_pos hr
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedField α
l : Filter β
f : β → α
r : α
hr : 0 < r
⊢ Tendsto (fun x => f x * r) l atBot ↔ Tendsto f l atBot
state_after: no goals
Theorem: PEquiv.symm_symm
File: Mathlib/Data/PEquiv.lean

tactic: cases f
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
⊢ f.symm.symm = f
state_after: case mk
α : Type u
β : Type v
γ : Type w
δ : Type x
toFun✝ : α → Option β
invFun✝ : β → Option α
inv✝ : ∀ (a : α) (b : β), a ∈ invFun✝ b ↔ b ∈ toFun✝ a
⊢ { toFun := toFun✝, invFun := invFun✝, inv := inv✝ }.symm.symm = { toFun := toFun✝, invFun := invFun✝, inv := inv✝ }

tactic: rfl
state_before: case mk
α : Type u
β : Type v
γ : Type w
δ : Type x
toFun✝ : α → Option β
invFun✝ : β → Option α
inv✝ : ∀ (a : α) (b : β), a ∈ invFun✝ b ↔ b ∈ toFun✝ a
⊢ { toFun := toFun✝, invFun := invFun✝, inv := inv✝ }.symm.symm = { toFun := toFun✝, invFun := invFun✝, inv := inv✝ }
state_after: no goals
Theorem: Algebra.traceMatrix_eq_embeddingsMatrix_mul_trans
File: Mathlib/RingTheory/Trace.lean

tactic: ext (i j)
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝²³ : CommRing R
inst✝²² : CommRing S
inst✝²¹ : CommRing T
inst✝²⁰ : Algebra R S
inst✝¹⁹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁸ : Field K
inst✝¹⁷ : Field L
inst✝¹⁶ : Algebra K L
ι κ : Type w
inst✝¹⁵ : Fintype ι
F : Type u_6
inst✝¹⁴ : Field F
inst✝¹³ : Algebra R L
inst✝¹² : Algebra L F
inst✝¹¹ : Algebra R F
inst✝¹⁰ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : CommRing C
inst✝⁵ : Algebra A C
E : Type z
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Module.Finite K L
inst✝¹ : IsSeparable K L
inst✝ : IsAlgClosed E
b : κ → L
pb : PowerBasis K L
⊢ (traceMatrix K b).map ⇑(algebraMap K E) = embeddingsMatrix K E b * (embeddingsMatrix K E b)ᵀ
state_after: case a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝²³ : CommRing R
inst✝²² : CommRing S
inst✝²¹ : CommRing T
inst✝²⁰ : Algebra R S
inst✝¹⁹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁸ : Field K
inst✝¹⁷ : Field L
inst✝¹⁶ : Algebra K L
ι κ : Type w
inst✝¹⁵ : Fintype ι
F : Type u_6
inst✝¹⁴ : Field F
inst✝¹³ : Algebra R L
inst✝¹² : Algebra L F
inst✝¹¹ : Algebra R F
inst✝¹⁰ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : CommRing C
inst✝⁵ : Algebra A C
E : Type z
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Module.Finite K L
inst✝¹ : IsSeparable K L
inst✝ : IsAlgClosed E
b : κ → L
pb : PowerBasis K L
i j : κ
⊢ (traceMatrix K b).map (⇑(algebraMap K E)) i j = (embeddingsMatrix K E b * (embeddingsMatrix K E b)ᵀ) i j

tactic: simp [trace_eq_sum_embeddings, embeddingsMatrix, Matrix.mul_apply]
state_before: case a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝²³ : CommRing R
inst✝²² : CommRing S
inst✝²¹ : CommRing T
inst✝²⁰ : Algebra R S
inst✝¹⁹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁸ : Field K
inst✝¹⁷ : Field L
inst✝¹⁶ : Algebra K L
ι κ : Type w
inst✝¹⁵ : Fintype ι
F : Type u_6
inst✝¹⁴ : Field F
inst✝¹³ : Algebra R L
inst✝¹² : Algebra L F
inst✝¹¹ : Algebra R F
inst✝¹⁰ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : CommRing C
inst✝⁵ : Algebra A C
E : Type z
inst✝⁴ : Field E
inst✝³ : Algebra K E
inst✝² : Module.Finite K L
inst✝¹ : IsSeparable K L
inst✝ : IsAlgClosed E
b : κ → L
pb : PowerBasis K L
i j : κ
⊢ (traceMatrix K b).map (⇑(algebraMap K E)) i j = (embeddingsMatrix K E b * (embeddingsMatrix K E b)ᵀ) i j
state_after: no goals
Theorem: MonoidHom.ext_mnat
File: Mathlib/Data/Nat/Cast/Basic.lean

tactic: rw [f.apply_mnat, g.apply_mnat, h]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Monoid α
inst✝ : AddMonoid α
f g : Multiplicative ℕ →* α
h : f (ofAdd 1) = g (ofAdd 1)
n : Multiplicative ℕ
⊢ f n = g n
state_after: no goals
Theorem: PseudoMetricSpace.replaceTopology_eq
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: ext
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
γ : Type u_3
U : TopologicalSpace γ
m : PseudoMetricSpace γ
H : U = UniformSpace.toTopologicalSpace
⊢ m.replaceTopology H = m
state_after: case h.dist.h.h
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
γ : Type u_3
U : TopologicalSpace γ
m : PseudoMetricSpace γ
H : U = UniformSpace.toTopologicalSpace
x✝¹ x✝ : γ
⊢ dist x✝¹ x✝ = dist x✝¹ x✝

tactic: rfl
state_before: case h.dist.h.h
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
γ : Type u_3
U : TopologicalSpace γ
m : PseudoMetricSpace γ
H : U = UniformSpace.toTopologicalSpace
x✝¹ x✝ : γ
⊢ dist x✝¹ x✝ = dist x✝¹ x✝
state_after: no goals