tasksource/leandojo huggingface dataset:
Theorem: Int.mod_def
File: Std/Data/Int/DivMod.lean

tactic: rw [← Int.add_sub_cancel (mod a b), mod_add_div]
state_before: a b : Int
⊢ mod a b = a - b * div a b
Theorem: Cardinal.ord_aleph'_eq_enum_card
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [← eq_enumOrd _ ord_card_unbounded, range_eq_iff]
state_before: ⊢ ord ∘ aleph' = enumOrd {b | ord (card b) = b}

tactic: exact
  ⟨aleph'_isNormal.strictMono,
    ⟨fun a => by
      dsimp
      rw [card_ord], fun b hb => eq_aleph'_of_eq_card_ord hb⟩⟩
state_before: ⊢ StrictMono (ord ∘ aleph') ∧
    (∀ (a : Ordinal), (ord ∘ aleph') a ∈ {b | ord (card b) = b}) ∧
      ∀ (b : Ordinal), b ∈ {b | ord (card b) = b} → ∃ a, (ord ∘ aleph') a = b

tactic: dsimp
state_before: a : Ordinal
⊢ (ord ∘ aleph') a ∈ {b | ord (card b) = b}

tactic: rw [card_ord]
state_before: a : Ordinal
⊢ ord (card (ord (aleph' a))) = ord (aleph' a)
Theorem: Finset.centroid_univ
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: rw [centroid, centroid, ← s.attach_affineCombination_coe]
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type ?u.475884
s✝ : Finset ι
ι₂ : Type ?u.475890
s₂ : Finset ι₂
s : Finset P
⊢ centroid k univ Subtype.val = centroid k s id

tactic: congr
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type ?u.475884
s✝ : Finset ι
ι₂ : Type ?u.475890
s₂ : Finset ι₂
s : Finset P
⊢ ↑(affineCombination k univ Subtype.val) (centroidWeights k univ) =
    ↑(affineCombination k (attach s) Subtype.val) (centroidWeights k s ∘ Subtype.val)

tactic: ext
state_before: case h.e_6.h
k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type ?u.475884
s✝ : Finset ι
ι₂ : Type ?u.475890
s₂ : Finset ι₂
s : Finset P
⊢ centroidWeights k univ = centroidWeights k s ∘ Subtype.val

tactic: simp
state_before: case h.e_6.h.h
k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type ?u.475884
s✝ : Finset ι
ι₂ : Type ?u.475890
s₂ : Finset ι₂
s : Finset P
x✝ : { x // x ∈ s }
⊢ centroidWeights k univ x✝ = (centroidWeights k s ∘ Subtype.val) x✝
Theorem: himp_inf_distrib
File: Mathlib/Order/Heyting/Basic.lean

tactic: simp_rw [le_himp_iff, le_inf_iff, le_himp_iff]
state_before: ι : Type ?u.70589
α : Type u_1
β : Type ?u.70595
inst✝ : GeneralizedHeytingAlgebra α
a✝ b✝ c✝ d✝ a b c d : α
⊢ d ≤ a ⇨ b ⊓ c ↔ d ≤ (a ⇨ b) ⊓ (a ⇨ c)
Theorem: Submodule.comap_liftQ
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: rintro ⟨x⟩ hx
state_before: R : Type u_1
M : Type u_3
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_2
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
q : Submodule R₂ M₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
⊢ comap (liftQ p f h) q ≤ map (mkQ p) (comap f q)

tactic: exact ⟨_, hx, rfl⟩
state_before: case mk
R : Type u_1
M : Type u_3
r : R
x✝¹ y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_2
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
q : Submodule R₂ M₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
x✝ : M ⧸ p
x : M
hx : Quot.mk Setoid.r x ∈ comap (liftQ p f h) q
⊢ Quot.mk Setoid.r x ∈ map (mkQ p) (comap f q)

tactic: rw [map_le_iff_le_comap, ← comap_comp, liftQ_mkQ]
state_before: R : Type u_1
M : Type u_3
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_2
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
q : Submodule R₂ M₂
f : M →ₛₗ[τ₁₂] M₂
h : p ≤ ker f
⊢ map (mkQ p) (comap f q) ≤ comap (liftQ p f h) q
Theorem: lt_map_inv_iff
File: Mathlib/Order/Hom/Basic.lean

tactic: rw [← map_lt_map_iff f]
state_before: F : Type u_2
α : Type u_1
β : Type u_3
γ : Type ?u.32870
δ : Type ?u.32873
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : OrderIsoClass F α β
f : F
a : α
b : β
⊢ a < EquivLike.inv f b ↔ ↑f a < b

tactic: simp only [EquivLike.apply_inv_apply]
state_before: F : Type u_2
α : Type u_1
β : Type u_3
γ : Type ?u.32870
δ : Type ?u.32873
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : OrderIsoClass F α β
f : F
a : α
b : β
⊢ ↑f a < ↑f (EquivLike.inv f b) ↔ ↑f a < b
Theorem: LocalHomeomorph.isLittleO_congr
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsLittleO_def]
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : LocalHomeomorph α β
b : β
hb : b ∈ e.target
f : β → E
g : β → F
⊢ f =o[𝓝 b] g ↔ (f ∘ ↑e) =o[𝓝 (↑(LocalHomeomorph.symm e) b)] (g ∘ ↑e)

tactic: exact forall₂_congr fun c _hc => e.isBigOWith_congr hb
state_before: α : Type u_1
β : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
E : Type u_3
inst✝¹ : Norm E
F : Type u_4
inst✝ : Norm F
e : LocalHomeomorph α β
b : β
hb : b ∈ e.target
f : β → E
g : β → F
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c (𝓝 b) f g) ↔
    ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c (𝓝 (↑(LocalHomeomorph.symm e) b)) (f ∘ ↑e) (g ∘ ↑e)
Theorem: Complex.ofReal_bit0
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [bit0]
state_before: r : ℝ
⊢ (↑(bit0 r)).re = (bit0 ↑r).re ∧ (↑(bit0 r)).im = (bit0 ↑r).im
Theorem: LinearMap.baseChange_zero
File: Mathlib/RingTheory/TensorProduct.lean

tactic: ext
state_before: R : Type u_4
A : Type u_1
B : Type ?u.423418
M : Type u_2
N : Type u_3
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
r : R
f g : M →ₗ[R] N
⊢ baseChange A 0 = 0

tactic: simp [baseChange_eq_ltensor]
state_before: case a.h.h
R : Type u_4
A : Type u_1
B : Type ?u.423418
M : Type u_2
N : Type u_3
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
r : R
f g : M →ₗ[R] N
x✝ : M
⊢ ↑(↑(AlgebraTensorModule.curry (baseChange A 0)) 1) x✝ = ↑(↑(AlgebraTensorModule.curry 0) 1) x✝
Theorem: DiscreteQuotient.fiber_subset_ofLE
File: Mathlib/Topology/DiscreteQuotient.lean

tactic: rcases A.proj_surjective a with ⟨a, rfl⟩
state_before: α : Type ?u.37481
X : Type u_1
Y : Type ?u.37487
Z : Type ?u.37490
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
S A B : DiscreteQuotient X
h : A ≤ B
a : Quotient A.toSetoid
⊢ proj A ⁻¹' {a} ⊆ proj B ⁻¹' {ofLE h a}

tactic: rw [fiber_eq, ofLE_proj, fiber_eq]
state_before: case intro
α : Type ?u.37481
X : Type u_1
Y : Type ?u.37487
Z : Type ?u.37490
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
S A B : DiscreteQuotient X
h : A ≤ B
a : X
⊢ proj A ⁻¹' {proj A a} ⊆ proj B ⁻¹' {ofLE h (proj A a)}

tactic: exact fun _ h' => h h'
state_before: case intro
α : Type ?u.37481
X : Type u_1
Y : Type ?u.37487
Z : Type ?u.37490
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
S A B : DiscreteQuotient X
h : A ≤ B
a : X
⊢ setOf (Setoid.Rel A.toSetoid a) ⊆ setOf (Setoid.Rel B.toSetoid a)
Theorem: GaloisConnection.l_ciSup_set
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: haveI := hne.to_subtype
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort ?u.100664
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : Nonempty ι
l : α → β
u : β → α
gc : GaloisConnection l u
s : Set γ
f : γ → α
hf : BddAbove (f '' s)
hne : Set.Nonempty s
⊢ l (⨆ (i : ↑s), f ↑i) = ⨆ (i : ↑s), l (f ↑i)

tactic: rw [image_eq_range] at hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort ?u.100664
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : Nonempty ι
l : α → β
u : β → α
gc : GaloisConnection l u
s : Set γ
f : γ → α
hf : BddAbove (f '' s)
hne : Set.Nonempty s
this : Nonempty ↑s
⊢ l (⨆ (i : ↑s), f ↑i) = ⨆ (i : ↑s), l (f ↑i)

tactic: exact gc.l_ciSup hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort ?u.100664
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : Nonempty ι
l : α → β
u : β → α
gc : GaloisConnection l u
s : Set γ
f : γ → α
hf : BddAbove (range fun x => f ↑x)
hne : Set.Nonempty s
this : Nonempty ↑s
⊢ l (⨆ (i : ↑s), f ↑i) = ⨆ (i : ↑s), l (f ↑i)
Theorem: MeasurableSet.ite'
File: Mathlib/MeasureTheory/MeasurableSpaceDef.lean

tactic: split_ifs with h
state_before: α : Type u_1
β : Type ?u.9604
γ : Type ?u.9607
δ : Type ?u.9610
δ' : Type ?u.9613
ι : Sort ?u.9616
s✝ t✝ u : Set α
m : MeasurableSpace α
s t : Set α
p : Prop
hs : p → MeasurableSet s
ht : ¬p → MeasurableSet t
⊢ MeasurableSet (if p then s else t)

tactic: exacts [hs h, ht h]
state_before: case inl
α : Type u_1
β : Type ?u.9604
γ : Type ?u.9607
δ : Type ?u.9610
δ' : Type ?u.9613
ι : Sort ?u.9616
s✝ t✝ u : Set α
m : MeasurableSpace α
s t : Set α
p : Prop
hs : p → MeasurableSet s
ht : ¬p → MeasurableSet t
h : p
⊢ MeasurableSet s

case inr
α : Type u_1
β : Type ?u.9604
γ : Type ?u.9607
δ : Type ?u.9610
δ' : Type ?u.9613
ι : Sort ?u.9616
s✝ t✝ u : Set α
m : MeasurableSpace α
s t : Set α
p : Prop
hs : p → MeasurableSet s
ht : ¬p → MeasurableSet t
h : ¬p
⊢ MeasurableSet t
Theorem: mem_map_indicator_ae_iff_mem_map_restrict_ae_of_zero_mem
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp_rw [mem_map, mem_ae_iff]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.4498636
δ : Type ?u.4498639
ι : Type ?u.4498642
R : Type ?u.4498645
R' : Type ?u.4498648
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ t ∈ Filter.map (indicator s f) (ae μ) ↔ t ∈ Filter.map f (ae (Measure.restrict μ s))

tactic: rw [Measure.restrict_apply' hs, Set.indicator_preimage, Set.ite]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.4498636
δ : Type ?u.4498639
ι : Type ?u.4498642
R : Type ?u.4498645
R' : Type ?u.4498648
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ ((indicator s f ⁻¹' t)ᶜ) = 0 ↔ ↑↑(Measure.restrict μ s) ((f ⁻¹' t)ᶜ) = 0

tactic: simp_rw [Set.compl_union, Set.compl_inter]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.4498636
δ : Type ?u.4498639
ι : Type ?u.4498642
R : Type ?u.4498645
R' : Type ?u.4498648
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ ((f ⁻¹' t ∩ s ∪ 0 ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0

tactic: change μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun _ => (0 : β)) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∩ s) = 0
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.4498636
δ : Type ?u.4498639
ι : Type ?u.4498642
R : Type ?u.4498645
R' : Type ?u.4498648
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ (0 ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0

tactic: simp only [ht, ← Set.compl_eq_univ_diff, compl_compl, Set.compl_union, if_true,
  Set.preimage_const]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.4498636
δ : Type ?u.4498639
ι : Type ?u.4498642
R : Type ?u.4498645
R' : Type ?u.4498648
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun x => 0) ⁻¹' t \ s)ᶜ) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0

tactic: simp_rw [Set.union_inter_distrib_right, Set.compl_inter_self s, Set.union_empty]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.4498636
δ : Type ?u.4498639
ι : Type ?u.4498642
R : Type ?u.4498645
R' : Type ?u.4498648
inst✝¹ : MeasurableSpace α
μ : MeasureTheory.Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∈ t
hs : MeasurableSet s
⊢ ↑↑μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ s) = 0 ↔ ↑↑μ ((f ⁻¹' t)ᶜ ∩ s) = 0
Theorem: ContinuousLinearMap.sub_comp
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: ext
state_before: R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_6
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_4
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type ?u.870959
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : TopologicalAddGroup M₃
g₁ g₂ : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
⊢ comp (g₁ - g₂) f = comp g₁ f - comp g₂ f

tactic: simp
state_before: case h
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_6
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_4
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type ?u.870959
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : TopologicalAddGroup M₃
g₁ g₂ : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑(comp (g₁ - g₂) f) x✝ = ↑(comp g₁ f - comp g₂ f) x✝
Theorem: HasStrictDerivAt.comp
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: rw [mul_comm]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
hh₂ : HasStrictDerivAt h₂ h₂' (h x)
hh : HasStrictDerivAt h h' x
⊢ HasStrictDerivAt (h₂ ∘ h) (h₂' * h') x

tactic: exact hh₂.scomp x hh
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
hh₂ : HasStrictDerivAt h₂ h₂' (h x)
hh : HasStrictDerivAt h h' x
⊢ HasStrictDerivAt (h₂ ∘ h) (h' * h₂') x
Theorem: Finset.mulEtransformLeft.card
File: Mathlib/Combinatorics/Additive/Etransform.lean

tactic: rw [card_smul_finset, two_mul]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ Finset.card x.fst + Finset.card (op e • x.fst) = 2 * Finset.card x.fst
Theorem: Asymptotics.superpolynomialDecay_param_pow_mul_iff
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: induction' n with n hn
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
n : ℕ
⊢ SuperpolynomialDecay l k (k ^ n * f) ↔ SuperpolynomialDecay l k f

tactic: simp
state_before: case zero
α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
⊢ SuperpolynomialDecay l k (k ^ Nat.zero * f) ↔ SuperpolynomialDecay l k f

tactic: simpa [pow_succ, ← mul_comm k, mul_assoc,
  superpolynomialDecay_param_mul_iff (k ^ n * f) hk] using hn
state_before: case succ
α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
n : ℕ
hn : SuperpolynomialDecay l k (k ^ n * f) ↔ SuperpolynomialDecay l k f
⊢ SuperpolynomialDecay l k (k ^ Nat.succ n * f) ↔ SuperpolynomialDecay l k f
Theorem: modelProd_range_prod_id
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: rw [prod_range_univ_eq]
state_before: H✝ : Type u
H'✝ : Type ?u.49184
M : Type ?u.49187
M' : Type ?u.49190
M'' : Type ?u.49193
H : Type u_1
H' : Type u_2
α : Type u_3
f : H → α
⊢ (range fun p => (f p.fst, p.snd)) = range f ×ˢ univ

tactic: rfl
state_before: H✝ : Type u
H'✝ : Type ?u.49184
M : Type ?u.49187
M' : Type ?u.49190
M'' : Type ?u.49193
H : Type u_1
H' : Type u_2
α : Type u_3
f : H → α
⊢ (range fun p => (f p.fst, p.snd)) = range fun p => (f p.fst, p.snd)
Theorem: MeasureTheory.SignedMeasure.restrictNonposSeq_lt
File: Mathlib/MeasureTheory/Decomposition/SignedHahn.lean

tactic: rw [restrictNonposSeq_succ]
state_before: α : Type u_1
β : Type ?u.20255
inst✝³ : MeasurableSpace α
M : Type ?u.20261
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 1 /
      (↑(MeasureTheory.SignedMeasure.findExistsOneDivLT s
            (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)) +
        1) <
    ↑s (MeasureTheory.SignedMeasure.restrictNonposSeq s i (Nat.succ n))

tactic: apply someExistsOneDivLT_lt hn
state_before: α : Type u_1
β : Type ?u.20255
inst✝³ : MeasurableSpace α
M : Type ?u.20261
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 1 /
      (↑(MeasureTheory.SignedMeasure.findExistsOneDivLT s
            (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)) +
        1) <
    ↑s
      (MeasureTheory.SignedMeasure.someExistsOneDivLT s
        (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k))
Theorem: Multiset.fold_bind
File: Mathlib/Data/Multiset/Fold.lean

tactic: induction' s using Multiset.induction_on with a ha ih
state_before: α : Type u_2
β : Type ?u.10571
op : α → α → α
hc : IsCommutative α op
ha : IsAssociative α op
ι : Type u_1
s : Multiset ι
t : ι → Multiset α
b : ι → α
b₀ : α
⊢ fold op (fold op b₀ (map b s)) (bind s t) = fold op b₀ (map (fun i => fold op (b i) (t i)) s)

tactic: rw [zero_bind, map_zero, map_zero, fold_zero]
state_before: case empty
α : Type u_2
β : Type ?u.10571
op : α → α → α
hc : IsCommutative α op
ha : IsAssociative α op
ι : Type u_1
t : ι → Multiset α
b : ι → α
b₀ : α
⊢ fold op (fold op b₀ (map b 0)) (bind 0 t) = fold op b₀ (map (fun i => fold op (b i) (t i)) 0)

tactic: rw [cons_bind, map_cons, map_cons, fold_cons_left, fold_cons_left, fold_add, ih]
state_before: case cons
α : Type u_2
β : Type ?u.10571
op : α → α → α
hc : IsCommutative α op
ha✝ : IsAssociative α op
ι : Type u_1
t : ι → Multiset α
b : ι → α
b₀ : α
a : ι
ha : Multiset ι
ih : fold op (fold op b₀ (map b ha)) (bind ha t) = fold op b₀ (map (fun i => fold op (b i) (t i)) ha)
⊢ fold op (fold op b₀ (map b (a ::ₘ ha))) (bind (a ::ₘ ha) t) =
    fold op b₀ (map (fun i => fold op (b i) (t i)) (a ::ₘ ha))
Theorem: inv_smul_le_iff
File: Mathlib/Algebra/Order/SMul.lean

tactic: rw [← smul_le_smul_iff_of_pos h, smul_inv_smul₀ h.ne']
state_before: ι : Type ?u.105112
𝕜 : Type u_1
R : Type ?u.105118
M : Type u_2
N : Type ?u.105124
inst✝⁵ : LinearOrderedSemifield 𝕜
inst✝⁴ : OrderedAddCommMonoid M
inst✝³ : OrderedAddCommMonoid N
inst✝² : MulActionWithZero 𝕜 M
inst✝¹ : MulActionWithZero 𝕜 N
inst✝ : OrderedSMul 𝕜 M
s : Set M
a b : M
c : 𝕜
h : 0 < c
⊢ c⁻¹ • a ≤ b ↔ a ≤ c • b
Theorem: finSuccAboveEquiv_symm_apply_last
File: Mathlib/Logic/Equiv/Fin.lean

tactic: rw [← Option.some_inj]
state_before: m n : ℕ
x : { x // x ≠ Fin.last n }
⊢ ↑(OrderIso.symm (finSuccAboveEquiv (Fin.last n))) x = Fin.castLT ↑x (_ : ↑↑x < n)

tactic: simpa [finSuccAboveEquiv, OrderIso.symm] using finSuccEquiv'_last_apply x.property
state_before: m n : ℕ
x : { x // x ≠ Fin.last n }
⊢ some (↑(OrderIso.symm (finSuccAboveEquiv (Fin.last n))) x) = some (Fin.castLT ↑x (_ : ↑↑x < n))
Theorem: WittVector.ext_iff
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: rw [h]
state_before: p : ℕ
R : Type u_1
x y : 𝕎 R
h : x = y
n : ℕ
⊢ coeff x n = coeff y n
Theorem: NNReal.mul_lt_of_lt_div
File: Mathlib/Data/Real/NNReal.lean

tactic: simp [hr] at h
state_before: a b r : ℝ≥0
h : a < b / r
hr : r = 0
⊢ False
Theorem: le_tsub_add_add
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [add_comm a, add_comm (a - c)]
state_before: α : Type u_1
β : Type ?u.11136
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ a + b ≤ a - c + (b + c)

tactic: exact add_le_add_add_tsub
state_before: α : Type u_1
β : Type ?u.11136
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ b + a ≤ b + c + (a - c)
Theorem: Finset.image₂_inter_subset_right
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_3
α' : Type ?u.44339
β : Type u_1
β' : Type ?u.44345
γ : Type u_2
γ' : Type ?u.44351
δ : Type ?u.44354
δ' : Type ?u.44357
ε : Type ?u.44360
ε' : Type ?u.44363
ζ : Type ?u.44366
ζ' : Type ?u.44369
ν : Type ?u.44372
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ ↑(image₂ f s (t ∩ t')) ⊆ ↑(image₂ f s t ∩ image₂ f s t')

tactic: exact image2_inter_subset_right
state_before: α : Type u_3
α' : Type ?u.44339
β : Type u_1
β' : Type ?u.44345
γ : Type u_2
γ' : Type ?u.44351
δ : Type ?u.44354
δ' : Type ?u.44357
ε : Type ?u.44360
ε' : Type ?u.44363
ζ : Type ?u.44366
ζ' : Type ?u.44369
ν : Type ?u.44372
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ image2 f (↑s) (↑t ∩ ↑t') ⊆ image2 f ↑s ↑t ∩ image2 f ↑s ↑t'
Theorem: Finset.smul_zero_subset
File: Mathlib/Data/Finset/Pointwise.lean

tactic: simp [subset_iff, mem_smul]
state_before: F : Type ?u.904200
α : Type u_1
β : Type u_2
γ : Type ?u.904209
inst✝³ : Zero α
inst✝² : Zero β
inst✝¹ : SMulWithZero α β
inst✝ : DecidableEq β
s✝ : Finset α
t : Finset β
s : Finset α
⊢ s • 0 ⊆ 0
Theorem: Ioc_toDual
File: Mathlib/Order/LocallyFinite.lean

tactic: refine' Eq.trans _ map_refl.symm
state_before: α : Type u_1
β : Type ?u.113413
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : LocallyFiniteOrder α
a b : α
⊢ Ioc (↑toDual a) (↑toDual b) = map (Equiv.toEmbedding toDual) (Ico b a)

tactic: ext c
state_before: α : Type u_1
β : Type ?u.113413
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : LocallyFiniteOrder α
a b : α
⊢ Ioc (↑toDual a) (↑toDual b) = Ico b a

tactic: rw [mem_Ioc, mem_Ico (α := α)]
state_before: case a
α : Type u_1
β : Type ?u.113413
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : LocallyFiniteOrder α
a b : α
c : (fun x => αᵒᵈ) a
⊢ c ∈ Ioc (↑toDual a) (↑toDual b) ↔ c ∈ Ico b a

tactic: exact and_comm
state_before: case a
α : Type u_1
β : Type ?u.113413
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : LocallyFiniteOrder α
a b : α
c : (fun x => αᵒᵈ) a
⊢ ↑toDual a < c ∧ c ≤ ↑toDual b ↔ b ≤ c ∧ c < a