tasksource/leandojo huggingface dataset:
Theorem: Matrix.det_kroneckerTMul
File: Mathlib/Data/Matrix/Kronecker.lean

tactic: refine' (det_kroneckerMapBilinear (TensorProduct.mk R α β) tmul_mul_tmul _ _).trans _
state_before: R : Type u_5
α : Type u_3
α' : Type ?u.341956
β : Type u_4
β' : Type ?u.341962
γ : Type ?u.341965
γ' : Type ?u.341968
l : Type ?u.341971
m : Type u_1
n : Type u_2
p : Type ?u.341980
q : Type ?u.341983
r : Type ?u.341986
l' : Type ?u.341989
m' : Type ?u.341992
n' : Type ?u.341995
p' : Type ?u.341998
inst✝⁸ : CommRing R
inst✝⁷ : CommRing α
inst✝⁶ : CommRing β
inst✝⁵ : Algebra R α
inst✝⁴ : Algebra R β
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
A : Matrix m m α
B : Matrix n n β
⊢ det (kroneckerMap (tmul R) A B) = (det A ^ Fintype.card n) ⊗ₜ[R] (det B ^ Fintype.card m)

tactic: simp (config := { eta := false }) only [mk_apply, ← includeLeft_apply, ← includeRight_apply]
state_before: R : Type u_5
α : Type u_3
α' : Type ?u.341956
β : Type u_4
β' : Type ?u.341962
γ : Type ?u.341965
γ' : Type ?u.341968
l : Type ?u.341971
m : Type u_1
n : Type u_2
p : Type ?u.341980
q : Type ?u.341983
r : Type ?u.341986
l' : Type ?u.341989
m' : Type ?u.341992
n' : Type ?u.341995
p' : Type ?u.341998
inst✝⁸ : CommRing R
inst✝⁷ : CommRing α
inst✝⁶ : CommRing β
inst✝⁵ : Algebra R α
inst✝⁴ : Algebra R β
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
A : Matrix m m α
B : Matrix n n β
⊢ det (map A fun a => ↑(↑(mk R α β) a) 1) ^ Fintype.card n * det (map B fun b => ↑(↑(mk R α β) 1) b) ^ Fintype.card m =
    (det A ^ Fintype.card n) ⊗ₜ[R] (det B ^ Fintype.card m)

tactic: simp only [← AlgHom.mapMatrix_apply, ← AlgHom.map_det]
state_before: R : Type u_5
α : Type u_3
α' : Type ?u.341956
β : Type u_4
β' : Type ?u.341962
γ : Type ?u.341965
γ' : Type ?u.341968
l : Type ?u.341971
m : Type u_1
n : Type u_2
p : Type ?u.341980
q : Type ?u.341983
r : Type ?u.341986
l' : Type ?u.341989
m' : Type ?u.341992
n' : Type ?u.341995
p' : Type ?u.341998
inst✝⁸ : CommRing R
inst✝⁷ : CommRing α
inst✝⁶ : CommRing β
inst✝⁵ : Algebra R α
inst✝⁴ : Algebra R β
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
A : Matrix m m α
B : Matrix n n β
⊢ det (map A fun a => ↑includeLeft a) ^ Fintype.card n * det (map B fun b => ↑includeRight b) ^ Fintype.card m =
    (det A ^ Fintype.card n) ⊗ₜ[R] (det B ^ Fintype.card m)

tactic: simp only [includeLeft_apply, includeRight_apply, tmul_pow, tmul_mul_tmul, one_pow,
  _root_.mul_one, _root_.one_mul]
state_before: R : Type u_5
α : Type u_3
α' : Type ?u.341956
β : Type u_4
β' : Type ?u.341962
γ : Type ?u.341965
γ' : Type ?u.341968
l : Type ?u.341971
m : Type u_1
n : Type u_2
p : Type ?u.341980
q : Type ?u.341983
r : Type ?u.341986
l' : Type ?u.341989
m' : Type ?u.341992
n' : Type ?u.341995
p' : Type ?u.341998
inst✝⁸ : CommRing R
inst✝⁷ : CommRing α
inst✝⁶ : CommRing β
inst✝⁵ : Algebra R α
inst✝⁴ : Algebra R β
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
A : Matrix m m α
B : Matrix n n β
⊢ ↑includeLeft (det A) ^ Fintype.card n * ↑includeRight (det B) ^ Fintype.card m =
    (det A ^ Fintype.card n) ⊗ₜ[R] (det B ^ Fintype.card m)
Theorem: Polynomial.leadingCoeff_map'
File: Mathlib/Data/Polynomial/Monic.lean

tactic: unfold leadingCoeff
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝¹ : Semiring R
inst✝ : Semiring S
f : R →+* S
hf : Injective ↑f
p : R[X]
⊢ leadingCoeff (map f p) = ↑f (leadingCoeff p)

tactic: rw [coeff_map, natDegree_map_eq_of_injective hf p]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝¹ : Semiring R
inst✝ : Semiring S
f : R →+* S
hf : Injective ↑f
p : R[X]
⊢ coeff (map f p) (natDegree (map f p)) = ↑f (coeff p (natDegree p))
Theorem: FiberBundle.continuousAt_totalSpace
File: Mathlib/Topology/FiberBundle/Basic.lean

tactic: simp_rw [← continuousWithinAt_univ]
state_before: ι : Type ?u.11181
B : Type u_1
F : Type u_4
X : Type u_3
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
E : B → Type u_2
inst✝² : TopologicalSpace (TotalSpace E)
inst✝¹ : (b : B) → TopologicalSpace (E b)
inst✝ : FiberBundle F E
f : X → TotalSpace E
x₀ : X
⊢ ContinuousAt f x₀ ↔
    ContinuousAt (fun x => TotalSpace.proj (f x)) x₀ ∧
      ContinuousAt (fun x => (↑(trivializationAt F E (TotalSpace.proj (f x₀))) (f x)).snd) x₀

tactic: exact continuousWithinAt_totalSpace F f
state_before: ι : Type ?u.11181
B : Type u_1
F : Type u_4
X : Type u_3
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace B
inst✝³ : TopologicalSpace F
E : B → Type u_2
inst✝² : TopologicalSpace (TotalSpace E)
inst✝¹ : (b : B) → TopologicalSpace (E b)
inst✝ : FiberBundle F E
f : X → TotalSpace E
x₀ : X
⊢ ContinuousWithinAt f univ x₀ ↔
    ContinuousWithinAt (fun x => TotalSpace.proj (f x)) univ x₀ ∧
      ContinuousWithinAt (fun x => (↑(trivializationAt F E (TotalSpace.proj (f x₀))) (f x)).snd) univ x₀
Theorem: Multiset.bind_hcongr
File: Mathlib/Data/Multiset/Bind.lean

tactic: subst h
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.27686
δ : Type ?u.27689
a : α
s t : Multiset α
f✝ g : α → Multiset β
β' : Type u_1
m : Multiset α
f : α → Multiset β
f' : α → Multiset β'
h : β = β'
hf : ∀ (a : α), a ∈ m → HEq (f a) (f' a)
⊢ HEq (bind m f) (bind m f')

tactic: simp only [heq_eq_eq] at hf
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.27686
δ : Type ?u.27689
a : α
s t : Multiset α
f✝ g : α → Multiset β
m : Multiset α
f f' : α → Multiset β
hf : ∀ (a : α), a ∈ m → HEq (f a) (f' a)
⊢ HEq (bind m f) (bind m f')

tactic: simp [bind_congr hf]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.27686
δ : Type ?u.27689
a : α
s t : Multiset α
f✝ g : α → Multiset β
m : Multiset α
f f' : α → Multiset β
hf : ∀ (a : α), a ∈ m → f a = f' a
⊢ HEq (bind m f) (bind m f')
Theorem: SimpleGraph.infinite_iff_in_eventualRange
File: Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean

tactic: simp only [C.infinite_iff_in_all_ranges, CategoryTheory.Functor.eventualRange, Set.mem_iInter,
  Set.mem_range, componentComplFunctor_map]
state_before: V : Type u
G : SimpleGraph V
K✝ L L' M : Set V
K : (Finset V)ᵒᵖ
C : (componentComplFunctor G).obj K
⊢ Set.Infinite (ComponentCompl.supp C) ↔ C ∈ Functor.eventualRange (componentComplFunctor G) K

tactic: exact
  ⟨fun h Lop KL => h Lop.unop (le_of_op_hom KL), fun h L KL =>
    h (Opposite.op L) (opHomOfLE KL)⟩
state_before: V : Type u
G : SimpleGraph V
K✝ L L' M : Set V
K : (Finset V)ᵒᵖ
C : (componentComplFunctor G).obj K
⊢ (∀ (L : Finset V) (h : K.unop ⊆ L), ∃ D, ComponentCompl.hom h D = C) ↔
    ∀ (i : (Finset V)ᵒᵖ) (i_1 : i ⟶ K), ∃ y, ComponentCompl.hom (_ : K.unop ≤ i.unop) y = C
Theorem: homology.π_desc
File: Mathlib/Algebra/Homology/ImageToKernel.lean

tactic: simp [homology.π, homology.desc]
state_before: ι : Type ?u.36234
V : Type u
inst✝⁴ : Category V
inst✝³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝² : HasImage f
g : B ⟶ C
inst✝¹ : HasKernel g
w : f ≫ g = 0
inst✝ : HasCokernel (imageToKernel f g w)
D : V
k : Subobject.underlying.obj (kernelSubobject g) ⟶ D
p : imageToKernel f g w ≫ k = 0
⊢ π f g w ≫ desc f g w k p = k
Theorem: List.rotate'_rotate'
File: Mathlib/Data/List/Rotate.lean

tactic: simp
state_before: α : Type u
a : α
l : List α
m : ℕ
⊢ rotate' (rotate' (a :: l) 0) m = rotate' (a :: l) (0 + m)

tactic: simp
state_before: α : Type u
n m : ℕ
⊢ rotate' (rotate' [] n) m = rotate' [] (n + m)

tactic: rw [rotate'_cons_succ, rotate'_rotate' _ n, add_right_comm, ← rotate'_cons_succ]
state_before: α : Type u
a : α
l : List α
n m : ℕ
⊢ rotate' (rotate' (a :: l) (n + 1)) m = rotate' (a :: l) (n + 1 + m)
Theorem: Std.AssocList.foldl_eq
File: Std/Data/AssocList.lean

tactic: simp [List.foldl_eq_foldlM, foldl, Id.run]
state_before: δ : Type u_1
α : Type u_2
β : Type u_3
f : δ → α → β → δ
init : δ
l : AssocList α β
⊢ foldl f init l =
    List.foldl
      (fun d x =>
        match x with
        | (a, b) => f d a b)
      init (toList l)
Theorem: Ordnode.size_balanceR
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: rw [balanceR_eq_balance' hl hr sl sr H, size_balance' sl sr]
state_before: α : Type u_1
l : Ordnode α
x : α
r : Ordnode α
hl : Balanced l
hr : Balanced r
sl : Sized l
sr : Sized r
H : (∃ l', Raised (size l) l' ∧ BalancedSz l' (size r)) ∨ ∃ r', Raised r' (size r) ∧ BalancedSz (size l) r'
⊢ size (balanceR l x r) = size l + size r + 1
Theorem: Nat.mod_add_div'
File: Mathlib/Data/Nat/Basic.lean

tactic: rw [mul_comm]
state_before: m✝ n k✝ m k : ℕ
⊢ m % k + m / k * k = m

tactic: exact mod_add_div _ _
state_before: m✝ n k✝ m k : ℕ
⊢ m % k + k * (m / k) = m
Theorem: Set.inv_mem_inv
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: simp only [mem_inv, inv_inv]
state_before: F : Type ?u.4345
α : Type u_1
β : Type ?u.4351
γ : Type ?u.4354
inst✝ : InvolutiveInv α
s t : Set α
a : α
⊢ a⁻¹ ∈ s⁻¹ ↔ a ∈ s
Theorem: mem_span_insert_exchange
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: simp [mem_span_insert]
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
⊢ x ∈ span K (insert y s) → ¬x ∈ span K s → y ∈ span K (insert x s)

tactic: rintro a z hz rfl h
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
⊢ ∀ (x_1 : K) (x_2 : V), x_2 ∈ span K s → x = x_1 • y + x_2 → ¬x ∈ span K s → ∃ a z, z ∈ span K s ∧ y = a • x + z

tactic: refine' ⟨a⁻¹, -a⁻¹ • z, smul_mem _ _ hz, _⟩
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
y z✝ : V
a : K
z : V
hz : z ∈ span K s
h : ¬a • y + z ∈ span K s
⊢ ∃ a_1 z_1, z_1 ∈ span K s ∧ y = a_1 • (a • y + z) + z_1

tactic: have a0 : a ≠ 0 := by
  rintro rfl
  simp_all
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
y z✝ : V
a : K
z : V
hz : z ∈ span K s
h : ¬a • y + z ∈ span K s
⊢ y = a⁻¹ • (a • y + z) + -a⁻¹ • z

tactic: simp [a0, smul_add, smul_smul]
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
y z✝ : V
a : K
z : V
hz : z ∈ span K s
h : ¬a • y + z ∈ span K s
a0 : a ≠ 0
⊢ y = a⁻¹ • (a • y + z) + -a⁻¹ • z

tactic: rintro rfl
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
y z✝ : V
a : K
z : V
hz : z ∈ span K s
h : ¬a • y + z ∈ span K s
⊢ a ≠ 0

tactic: simp_all
state_before: ι : Type u'
ι' : Type ?u.1192090
R : Type ?u.1192093
K : Type u_1
M : Type ?u.1192099
M' : Type ?u.1192102
M'' : Type ?u.1192105
V : Type u
V' : Type ?u.1192110
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
y z✝ z : V
hz : z ∈ span K s
h : ¬0 • y + z ∈ span K s
⊢ False
Theorem: Finite.surjective_iff_bijective
File: Mathlib/Data/Fintype/Card.lean

tactic: simp [Bijective, injective_iff_surjective]
state_before: α : Type u_1
β : Type ?u.27199
γ : Type ?u.27202
inst✝ : Finite α
f : α → α
⊢ Surjective f ↔ Bijective f
Theorem: Rat.ofScientific_false_def
File: Std/Data/Rat/Lemmas.lean

tactic: unfold Rat.ofScientific
state_before: m e : Nat
⊢ Rat.ofScientific m false e = ↑↑(m * 10 ^ e)

tactic: rfl
state_before: m e : Nat
⊢ (if false = true then normalize (↑m) (10 ^ e) else ↑↑(m * 10 ^ e)) = ↑↑(m * 10 ^ e)
Theorem: ODE_solution_unique_of_mem_set
File: Mathlib/Analysis/ODE/Gronwall.lean

tactic: have := dist_le_of_trajectories_ODE_of_mem_set hv hf hf' hfs hg hg' hgs (dist_le_zero.2 ha) t ht
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.51570
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
v : ℝ → E → E
s : ℝ → Set E
K : ℝ
hv : ∀ (t : ℝ) (x : E), x ∈ s t → ∀ (y : E), y ∈ s t → dist (v t x) (v t y) ≤ K * dist x y
f g : ℝ → E
a b : ℝ
hf : ContinuousOn f (Icc a b)
hf' : ∀ (t : ℝ), t ∈ Ico a b → HasDerivWithinAt f (v t (f t)) (Ici t) t
hfs : ∀ (t : ℝ), t ∈ Ico a b → f t ∈ s t
hg : ContinuousOn g (Icc a b)
hg' : ∀ (t : ℝ), t ∈ Ico a b → HasDerivWithinAt g (v t (g t)) (Ici t) t
hgs : ∀ (t : ℝ), t ∈ Ico a b → g t ∈ s t
ha : f a = g a
t : ℝ
ht : t ∈ Icc a b
⊢ f t = g t

tactic: rwa [MulZeroClass.zero_mul, dist_le_zero] at this
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.51570
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
v : ℝ → E → E
s : ℝ → Set E
K : ℝ
hv : ∀ (t : ℝ) (x : E), x ∈ s t → ∀ (y : E), y ∈ s t → dist (v t x) (v t y) ≤ K * dist x y
f g : ℝ → E
a b : ℝ
hf : ContinuousOn f (Icc a b)
hf' : ∀ (t : ℝ), t ∈ Ico a b → HasDerivWithinAt f (v t (f t)) (Ici t) t
hfs : ∀ (t : ℝ), t ∈ Ico a b → f t ∈ s t
hg : ContinuousOn g (Icc a b)
hg' : ∀ (t : ℝ), t ∈ Ico a b → HasDerivWithinAt g (v t (g t)) (Ici t) t
hgs : ∀ (t : ℝ), t ∈ Ico a b → g t ∈ s t
ha : f a = g a
t : ℝ
ht : t ∈ Icc a b
this : dist (f t) (g t) ≤ 0 * exp (K * (t - a))
⊢ f t = g t
Theorem: IsometryEquiv.image_sphere
File: Mathlib/Topology/MetricSpace/Isometry.lean

tactic: rw [← h.preimage_symm, h.symm.preimage_sphere, symm_symm]
state_before: ι : Type ?u.1172241
α : Type u
β : Type v
γ : Type w
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
h✝ h : α ≃ᵢ β
x : α
r : ℝ
⊢ ↑h '' Metric.sphere x r = Metric.sphere (↑h x) r
Theorem: Subgroup.Normal.map
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: rw [← normalizer_eq_top, ← top_le_iff, ← f.range_top_of_surjective hf, f.range_eq_map, ←
  normalizer_eq_top.2 h]
state_before: G : Type u_1
G' : Type ?u.553569
inst✝³ : Group G
inst✝² : Group G'
A : Type ?u.553578
inst✝¹ : AddGroup A
N : Type u_2
inst✝ : Group N
H✝ H : Subgroup G
h : Normal H
f : G →* N
hf : Surjective ↑f
⊢ Normal (Subgroup.map f H)

tactic: exact le_normalizer_map _
state_before: G : Type u_1
G' : Type ?u.553569
inst✝³ : Group G
inst✝² : Group G'
A : Type ?u.553578
inst✝¹ : AddGroup A
N : Type u_2
inst✝ : Group N
H✝ H : Subgroup G
h : Normal H
f : G →* N
hf : Surjective ↑f
⊢ Subgroup.map f (normalizer H) ≤ normalizer (Subgroup.map f H)
Theorem: proof_irrel_heq
File: Std/Logic.lean

tactic: cases propext (iff_of_true hp hq)
state_before: p q : Prop
hp : p
hq : q
⊢ HEq hp hq

tactic: rfl
state_before: case refl
p : Prop
hp hq : p
⊢ HEq hp hq
Theorem: nhds_cons
File: Mathlib/Topology/List.lean

tactic: rw [nhds_list, List.traverse_cons _, ← nhds_list]
state_before: α : Type u_1
β : Type ?u.4061
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
l : List α
⊢ 𝓝 (a :: l) = Seq.seq (List.cons <$> 𝓝 a) fun x => 𝓝 l
Theorem: Set.bounded_gt_Ici
File: Mathlib/Order/Bounded.lean

tactic: simp only [← bounded_ge_iff_bounded_gt, bounded_ge_Ici]
state_before: α : Type u_1
r : α → α → Prop
s t : Set α
inst✝¹ : Preorder α
inst✝ : NoMinOrder α
a : α
⊢ Bounded (fun x x_1 => x > x_1) (Ici a)
Theorem: MeasureTheory.measure_smul_set_average
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: haveI := Fact.mk h.lt_top
state_before: α : Type u_1
E : Type u_2
F : Type ?u.210759
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : Measure α
s✝ : Set E
f : α → E
s : Set α
h : ↑↑μ s ≠ ⊤
⊢ (ENNReal.toReal (↑↑μ s) • ⨍ (x : α) in s, f x ∂μ) = ∫ (x : α) in s, f x ∂μ

tactic: rw [← measure_smul_average, restrict_apply_univ]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.210759
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : Measure α
s✝ : Set E
f : α → E
s : Set α
h : ↑↑μ s ≠ ⊤
this : Fact (↑↑μ s < ⊤)
⊢ (ENNReal.toReal (↑↑μ s) • ⨍ (x : α) in s, f x ∂μ) = ∫ (x : α) in s, f x ∂μ
Theorem: Tactic.NormNum.nat_lcm_helper
File: Mathlib/Tactic/NormNum/GCD.lean

tactic: dsimp only
state_before: x y d m : ℕ
hd : Nat.gcd x y = d
d0 : Nat.beq d 0 = false
dm : x * y = d * m
⊢ (fun x x_1 => x * x_1) d (Nat.lcm x y) = (fun x x_1 => x * x_1) d m

tactic: rw [← dm, ← hd, Nat.gcd_mul_lcm]
state_before: x y d m : ℕ
hd : Nat.gcd x y = d
d0 : Nat.beq d 0 = false
dm : x * y = d * m
⊢ d * Nat.lcm x y = d * m
Theorem: spectrum.mem_resolventSet_of_left_right_inverse
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: rwa [← left_inv_eq_right_inv h₂ h₁]
state_before: R : Type u
A : Type v
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
r : R
a b c : A
h₁ : (↑↑ₐ r - a) * b = 1
h₂ : c * (↑↑ₐ r - a) = 1
⊢ b * (↑↑ₐ r - a) = 1
Theorem: Representation.smul_one_tprod_asModule
File: Mathlib/RepresentationTheory/Basic.lean

tactic: show asAlgebraHom (1 ⊗ ρW) _ _ = _ ⊗ₜ asAlgebraHom ρW _ _
state_before: k : Type u_1
G : Type u_2
V : Type u_4
W : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ let y' := y;
  let z := x ⊗ₜ[k] y;
  r • z = x ⊗ₜ[k] (r • y')

tactic: simp only [asAlgebraHom_def, MonoidAlgebra.lift_apply, tprod_apply, MonoidHom.one_apply,
  LinearMap.finsupp_sum_apply, LinearMap.smul_apply, TensorProduct.map_tmul, LinearMap.one_apply]
state_before: k : Type u_1
G : Type u_2
V : Type u_4
W : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ ↑(↑(asAlgebraHom (1 ⊗ ρW)) r) (x ⊗ₜ[k] y) = x ⊗ₜ[k] ↑(↑(asAlgebraHom ρW) r) y

tactic: simp only [Finsupp.sum, TensorProduct.tmul_sum, TensorProduct.tmul_smul]
state_before: k : Type u_1
G : Type u_2
V : Type u_4
W : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ (Finsupp.sum r fun i d => d • x ⊗ₜ[k] ↑(↑ρW i) y) = x ⊗ₜ[k] Finsupp.sum r fun i d => d • ↑(↑ρW i) y
Theorem: toIcoMod_add_zsmul'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp only [toIcoMod, toIcoDiv_add_zsmul', sub_smul, sub_add]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIcoMod hp (a + m • p) b = toIcoMod hp a b + m • p
Theorem: deriv.lhopital_zero_nhds_left
File: Mathlib/Analysis/Calculus/LHopital.lean

tactic: have hdg : ∀ᶠ x in 𝓝[<] a, DifferentiableAt ℝ g x :=
  hg'.mp (eventually_of_forall fun _ hg' =>
    by_contradiction fun h => hg' (deriv_zero_of_not_differentiableAt h))
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ f x
hg' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[Iio a] a) (𝓝 0)
hga : Tendsto g (𝓝[Iio a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Iio a] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[Iio a] a) l

tactic: have hdf' : ∀ᶠ x in 𝓝[<] a, HasDerivAt f (deriv f x) x :=
  hdf.mp (eventually_of_forall fun _ => DifferentiableAt.hasDerivAt)
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ f x
hg' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[Iio a] a) (𝓝 0)
hga : Tendsto g (𝓝[Iio a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Iio a] a) l
hdg : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ g x
⊢ Tendsto (fun x => f x / g x) (𝓝[Iio a] a) l

tactic: have hdg' : ∀ᶠ x in 𝓝[<] a, HasDerivAt g (deriv g x) x :=
  hdg.mp (eventually_of_forall fun _ => DifferentiableAt.hasDerivAt)
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ f x
hg' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[Iio a] a) (𝓝 0)
hga : Tendsto g (𝓝[Iio a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Iio a] a) l
hdg : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ g x
hdf' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, HasDerivAt f (deriv f x) x
⊢ Tendsto (fun x => f x / g x) (𝓝[Iio a] a) l

tactic: exact HasDerivAt.lhopital_zero_nhds_left hdf' hdg' hg' hfa hga hdiv
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ f x
hg' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[Iio a] a) (𝓝 0)
hga : Tendsto g (𝓝[Iio a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Iio a] a) l
hdg : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, DifferentiableAt ℝ g x
hdf' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, HasDerivAt f (deriv f x) x
hdg' : ∀ᶠ (x : ℝ) in 𝓝[Iio a] a, HasDerivAt g (deriv g x) x
⊢ Tendsto (fun x => f x / g x) (𝓝[Iio a] a) l
Theorem: Rack.self_distrib_inv
File: Mathlib/Algebra/Quandle.lean

tactic: rw [← left_cancel (x ◃⁻¹ y), right_inv, ← left_cancel x, right_inv, self_distrib]
state_before: R : Type u_1
inst✝ : Rack R
x y z : R
⊢ x ◃⁻¹ y ◃⁻¹ z = (x ◃⁻¹ y) ◃⁻¹ x ◃⁻¹ z

tactic: repeat' rw [right_inv]
state_before: R : Type u_1
inst✝ : Rack R
x y z : R
⊢ (x ◃ x ◃⁻¹ y) ◃ x ◃ x ◃⁻¹ y ◃⁻¹ z = z

tactic: rw [right_inv]
state_before: R : Type u_1
inst✝ : Rack R
x y z : R
⊢ y ◃ y ◃⁻¹ z = z
Theorem: Finset.sup'_lt_iff
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [← WithBot.coe_lt_coe, coe_sup', Finset.sup_lt_iff (WithBot.bot_lt_coe a)]
state_before: F : Type ?u.304015
α : Type u_1
β : Type ?u.304021
γ : Type ?u.304024
ι : Type u_2
κ : Type ?u.304030
inst✝ : LinearOrder α
s : Finset ι
H : Finset.Nonempty s
f : ι → α
a : α
⊢ sup' s H f < a ↔ ∀ (i : ι), i ∈ s → f i < a

tactic: exact ball_congr (fun _ _ => WithBot.coe_lt_coe)
state_before: F : Type ?u.304015
α : Type u_1
β : Type ?u.304021
γ : Type ?u.304024
ι : Type u_2
κ : Type ?u.304030
inst✝ : LinearOrder α
s : Finset ι
H : Finset.Nonempty s
f : ι → α
a : α
⊢ (∀ (b : ι), b ∈ s → (WithBot.some ∘ f) b < ↑a) ↔ ∀ (i : ι), i ∈ s → f i < a
Theorem: Multiset.sum_map_mul_left
File: Mathlib/Algebra/BigOperators/Multiset/Basic.lean

tactic: simp
state_before: ι : Type u_2
α : Type u_1
β : Type ?u.111733
γ : Type ?u.111736
inst✝ : NonUnitalNonAssocSemiring α
a : α
s : Multiset ι
f : ι → α
⊢ sum (map (fun i => a * f i) 0) = a * sum (map f 0)

tactic: simp [ih, mul_add]
state_before: ι : Type u_2
α : Type u_1
β : Type ?u.111733
γ : Type ?u.111736
inst✝ : NonUnitalNonAssocSemiring α
a : α
s✝ : Multiset ι
f : ι → α
i : ι
s : Multiset ι
ih : sum (map (fun i => a * f i) s) = a * sum (map f s)
⊢ sum (map (fun i => a * f i) (i ::ₘ s)) = a * sum (map f (i ::ₘ s))
Theorem: not_isPrimePow_zero
File: Mathlib/Algebra/IsPrimePow.lean

tactic: simp only [isPrimePow_def, not_exists, not_and', and_imp]
state_before: R : Type u_1
inst✝¹ : CommMonoidWithZero R
n p : R
k : ℕ
inst✝ : NoZeroDivisors R
⊢ ¬IsPrimePow 0

tactic: intro x n _hn hx
state_before: R : Type u_1
inst✝¹ : CommMonoidWithZero R
n p : R
k : ℕ
inst✝ : NoZeroDivisors R
⊢ ∀ (x : R) (x_1 : ℕ), 0 < x_1 → x ^ x_1 = 0 → ¬Prime x

tactic: rw [pow_eq_zero hx]
state_before: R : Type u_1
inst✝¹ : CommMonoidWithZero R
n✝ p : R
k : ℕ
inst✝ : NoZeroDivisors R
x : R
n : ℕ
_hn : 0 < n
hx : x ^ n = 0
⊢ ¬Prime x

tactic: simp
state_before: R : Type u_1
inst✝¹ : CommMonoidWithZero R
n✝ p : R
k : ℕ
inst✝ : NoZeroDivisors R
x : R
n : ℕ
_hn : 0 < n
hx : x ^ n = 0
⊢ ¬Prime 0