tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.lintegral_const_mul''
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: have A : (∫⁻ a, f a ∂μ) = ∫⁻ a, hf.mk f a ∂μ := lintegral_congr_ae hf.ae_eq_mk
state_before: α : Type u_1
β : Type ?u.935279
γ : Type ?u.935282
δ : Type ?u.935285
m : MeasurableSpace α
μ ν : Measure α
r : ℝ≥0∞
f : α → ℝ≥0∞
hf : AEMeasurable f
⊢ (∫⁻ (a : α), r * f a ∂μ) = r * ∫⁻ (a : α), f a ∂μ

tactic: have B : (∫⁻ a, r * f a ∂μ) = ∫⁻ a, r * hf.mk f a ∂μ :=
  lintegral_congr_ae (EventuallyEq.fun_comp hf.ae_eq_mk _)
state_before: α : Type u_1
β : Type ?u.935279
γ : Type ?u.935282
δ : Type ?u.935285
m : MeasurableSpace α
μ ν : Measure α
r : ℝ≥0∞
f : α → ℝ≥0∞
hf : AEMeasurable f
A : (∫⁻ (a : α), f a ∂μ) = ∫⁻ (a : α), AEMeasurable.mk f hf a ∂μ
⊢ (∫⁻ (a : α), r * f a ∂μ) = r * ∫⁻ (a : α), f a ∂μ

tactic: rw [A, B, lintegral_const_mul _ hf.measurable_mk]
state_before: α : Type u_1
β : Type ?u.935279
γ : Type ?u.935282
δ : Type ?u.935285
m : MeasurableSpace α
μ ν : Measure α
r : ℝ≥0∞
f : α → ℝ≥0∞
hf : AEMeasurable f
A : (∫⁻ (a : α), f a ∂μ) = ∫⁻ (a : α), AEMeasurable.mk f hf a ∂μ
B : (∫⁻ (a : α), r * f a ∂μ) = ∫⁻ (a : α), r * AEMeasurable.mk f hf a ∂μ
⊢ (∫⁻ (a : α), r * f a ∂μ) = r * ∫⁻ (a : α), f a ∂μ
Theorem: TopologicalSpace.Opens.mem_iSup
File: Mathlib/Topology/Sets/Opens.lean

tactic: rw [← SetLike.mem_coe]
state_before: ι✝ : Type ?u.22254
α : Type u_2
β : Type ?u.22260
γ : Type ?u.22263
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Sort u_1
x : α
s : ι → Opens α
⊢ x ∈ iSup s ↔ ∃ i, x ∈ s i

tactic: simp
state_before: ι✝ : Type ?u.22254
α : Type u_2
β : Type ?u.22260
γ : Type ?u.22263
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Sort u_1
x : α
s : ι → Opens α
⊢ x ∈ ↑(iSup s) ↔ ∃ i, x ∈ s i
Theorem: Associates.factors_one
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: apply eq_of_prod_eq_prod
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
inst✝ : Nontrivial α
⊢ factors 1 = 0

tactic: rw [Associates.factors_prod]
state_before: case h
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
inst✝ : Nontrivial α
⊢ FactorSet.prod (factors 1) = FactorSet.prod 0

tactic: exact Multiset.prod_zero
state_before: case h
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝¹ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
inst✝ : Nontrivial α
⊢ 1 = FactorSet.prod 0
Theorem: Ideal.span_zero
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: rw [← Set.singleton_zero, span_singleton_eq_bot]
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a b : α
⊢ span 0 = ⊥
Theorem: Turing.TM1to1.trTape_mk'
File: Mathlib/Computability/TuringMachine.lean

tactic: simp only [trTape, Tape.mk'_left, Tape.mk'_right₀]
state_before: Γ : Type u_1
inst✝² : Inhabited Γ
Λ : Type ?u.363898
inst✝¹ : Inhabited Λ
σ : Type ?u.363904
inst✝ : Inhabited σ
n : ℕ
enc : Γ → Vector Bool n
dec : Vector Bool n → Γ
enc0 : enc default = Vector.replicate n false
L R : ListBlank Γ
⊢ trTape enc0 (Tape.mk' L R) = trTape' enc0 L R
Theorem: Ordinal.cof_le_card
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rw [cof_eq_sInf_lsub]
state_before: α : Type ?u.21105
r : α → α → Prop
o : Ordinal
⊢ cof o ≤ card o

tactic: exact csInf_le' card_mem_cof
state_before: α : Type ?u.21105
r : α → α → Prop
o : Ordinal
⊢ sInf {a | ∃ ι f, lsub f = o ∧ (#ι) = a} ≤ card o
Theorem: OmegaCompletePartialOrder.ContinuousHom.forall_forall_merge'
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: rw [forall_swap, forall_forall_merge]
state_before: α : Type u
α' : Type ?u.68385
β : Type v
β' : Type ?u.68390
γ : Type ?u.68393
φ : Type ?u.68396
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
⊢ (∀ (j i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ j) ≤ z) ↔ ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
Theorem: Matrix.det_comm
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: rw [det_mul, det_mul, mul_comm]
state_before: R : Type ?u.18410
inst✝¹⁰ : CommRing R
M✝ : Type ?u.18416
inst✝⁹ : AddCommGroup M✝
inst✝⁸ : Module R M✝
M' : Type ?u.19001
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.19543
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M✝
A : Type u_2
inst✝³ : CommRing A
m : Type ?u.20027
n : Type u_1
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M N : Matrix n n A
⊢ det (M ⬝ N) = det (N ⬝ M)
Theorem: CategoryTheory.Iso.cancel_iso_hom_left
File: Mathlib/CategoryTheory/Iso.lean

tactic: simp only [cancel_epi]
state_before: C : Type u
inst✝ : Category C
X✝ Y✝ Z✝ X Y Z : C
f : X ≅ Y
g g' : Y ⟶ Z
⊢ f.hom ≫ g = f.hom ≫ g' ↔ g = g'
Theorem: MvPolynomial.smul_eval
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: rw [smul_eq_C_mul, (eval x).map_mul, eval_C]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f x : σ → R
p : MvPolynomial σ R
s : R
⊢ ↑(eval x) (s • p) = s * ↑(eval x) p
Theorem: ConvexOn.set_average_mem_epigraph
File: Mathlib/Analysis/Convex/Integral.lean

tactic: haveI : Fact (μ t < ∞) := ⟨ht.lt_top⟩
state_before: α : Type u_2
E : Type u_1
F : Type ?u.1095696
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
hg : ConvexOn ℝ s g
hgc : ContinuousOn g s
hsc : IsClosed s
h0 : ↑↑μ t ≠ 0
ht : ↑↑μ t ≠ ⊤
hfs : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ s
hfi : IntegrableOn f t
hgi : IntegrableOn (g ∘ f) t
⊢ (⨍ (x : α) in t, f x ∂μ, ⨍ (x : α) in t, g (f x) ∂μ) ∈ {p | p.fst ∈ s ∧ g p.fst ≤ p.snd}

tactic: refine' hg.average_mem_epigraph hgc hsc _ hfs hfi hgi
state_before: α : Type u_2
E : Type u_1
F : Type ?u.1095696
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
hg : ConvexOn ℝ s g
hgc : ContinuousOn g s
hsc : IsClosed s
h0 : ↑↑μ t ≠ 0
ht : ↑↑μ t ≠ ⊤
hfs : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ s
hfi : IntegrableOn f t
hgi : IntegrableOn (g ∘ f) t
this : Fact (↑↑μ t < ⊤)
⊢ (⨍ (x : α) in t, f x ∂μ, ⨍ (x : α) in t, g (f x) ∂μ) ∈ {p | p.fst ∈ s ∧ g p.fst ≤ p.snd}

tactic: rwa [Ne.def, restrict_eq_zero]
state_before: α : Type u_2
E : Type u_1
F : Type ?u.1095696
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
hg : ConvexOn ℝ s g
hgc : ContinuousOn g s
hsc : IsClosed s
h0 : ↑↑μ t ≠ 0
ht : ↑↑μ t ≠ ⊤
hfs : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ s
hfi : IntegrableOn f t
hgi : IntegrableOn (g ∘ f) t
this : Fact (↑↑μ t < ⊤)
⊢ Measure.restrict μ t ≠ 0
Theorem: HasFDerivWithinAt.cpow
File: Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean

tactic: convert
  (@Complex.hasFDerivAt_cpow ((fun x => (f x, g x)) x) h0).comp_hasFDerivWithinAt x (hf.prod hg)
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : E → ℂ
f' g' : E →L[ℂ] ℂ
x : E
s : Set E
c : ℂ
hf : HasFDerivWithinAt f f' s x
hg : HasFDerivWithinAt g g' s x
h0 : 0 < (f x).re ∨ (f x).im ≠ 0
⊢ HasFDerivWithinAt (fun x => f x ^ g x) ((g x * f x ^ (g x - 1)) • f' + (f x ^ g x * Complex.log (f x)) • g') s x
Theorem: Set.antitoneOn_iff_antitone
File: Mathlib/Data/Set/Basic.lean

tactic: simp [Antitone, AntitoneOn]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
inst✝¹ : Preorder α
inst✝ : Preorder β
f : α → β
⊢ AntitoneOn f s ↔ Antitone fun a => f ↑a
Theorem: UniformFun.postcomp_uniformInducing
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: constructor
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.40608
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : UniformInducing f
⊢ UniformInducing (↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun)

tactic: replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
state_before: case comap_uniformity
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.40608
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : UniformInducing f
⊢ comap (fun x => ((↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun) x.fst, (↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun) x.snd))
      (𝓤 (α →ᵤ β)) =
    𝓤 (α →ᵤ γ)

tactic: rw [← uniformity_comap] at hf⊢
state_before: case comap_uniformity
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.40608
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : comap (Prod.map f f) (𝓤 β) = 𝓤 γ
⊢ comap (Prod.map (↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun) (↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun)) (𝓤 (α →ᵤ β)) = 𝓤 (α →ᵤ γ)

tactic: congr
state_before: case comap_uniformity
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.40608
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : 𝓤 γ = 𝓤 γ
⊢ 𝓤 (α →ᵤ γ) = 𝓤 (α →ᵤ γ)

tactic: rw [← uniformSpace_eq hf, UniformFun.comap_eq]
state_before: case comap_uniformity.h.e_2.h
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.40608
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : 𝓤 γ = 𝓤 γ
⊢ UniformSpace.comap (↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun) (uniformSpace α β) = uniformSpace α γ

tactic: rfl
state_before: case comap_uniformity.h.e_2.h
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Type ?u.40608
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : γ → β
hf : 𝓤 γ = 𝓤 γ
⊢ UniformSpace.comap (↑ofFun ∘ (fun x => f ∘ x) ∘ ↑toFun) (uniformSpace α β) =
    UniformSpace.comap (fun x => f ∘ x) (uniformSpace α β)
Theorem: Hyperreal.infinitePos_add_not_infiniteNeg
File: Mathlib/Data/Real/Hyperreal.lean

tactic: intro hip hnin r
state_before: x y : ℝ*
⊢ InfinitePos x → ¬InfiniteNeg y → InfinitePos (x + y)

tactic: cases' not_forall.mp hnin with r₂ hr₂
state_before: x y : ℝ*
hip : InfinitePos x
hnin : ¬InfiniteNeg y
r : ℝ
⊢ ↑r < x + y

tactic: convert add_lt_add_of_lt_of_le (hip (r + -r₂)) (not_lt.mp hr₂) using 1
state_before: case intro
x y : ℝ*
hip : InfinitePos x
hnin : ¬InfiniteNeg y
r r₂ : ℝ
hr₂ : ¬y < ↑r₂
⊢ ↑r < x + y

tactic: simp
state_before: case h.e'_3
x y : ℝ*
hip : InfinitePos x
hnin : ¬InfiniteNeg y
r r₂ : ℝ
hr₂ : ¬y < ↑r₂
⊢ ↑r = ↑(r + -r₂) + ↑r₂
Theorem: Dfinsupp.mapRange.linearMap_comp
File: Mathlib/LinearAlgebra/Dfinsupp.lean

tactic: simp
state_before: ι : Type u_5
R : Type u_1
S : Type ?u.148536
M : ι → Type ?u.148541
N : Type ?u.148544
dec_ι : DecidableEq ι
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : ι) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → Module R (M i)
inst✝⁷ : AddCommMonoid N
inst✝⁶ : Module R N
β : ι → Type u_4
β₁ : ι → Type u_2
β₂ : ι → Type u_3
inst✝⁵ : (i : ι) → AddCommMonoid (β i)
inst✝⁴ : (i : ι) → AddCommMonoid (β₁ i)
inst✝³ : (i : ι) → AddCommMonoid (β₂ i)
inst✝² : (i : ι) → Module R (β i)
inst✝¹ : (i : ι) → Module R (β₁ i)
inst✝ : (i : ι) → Module R (β₂ i)
f : (i : ι) → β₁ i →ₗ[R] β₂ i
f₂ : (i : ι) → β i →ₗ[R] β₁ i
⊢ ∀ (i : ι), ((fun i x => ↑(f i) x) i ∘ (fun i x => ↑(f₂ i) x) i) 0 = 0
Theorem: Finset.Nat.mem_antidiagonal
File: Mathlib/Data/Finset/NatAntidiagonal.lean

tactic: rw [antidiagonal, mem_def, Multiset.Nat.mem_antidiagonal]
state_before: n : ℕ
x : ℕ × ℕ
⊢ x ∈ antidiagonal n ↔ x.fst + x.snd = n
Theorem: PowerSeries.coeff_X_pow
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [X_pow_eq, coeff_monomial]
state_before: R : Type u_1
inst✝ : Semiring R
m n : ℕ
⊢ ↑(coeff R m) (X ^ n) = if m = n then 1 else 0
Theorem: Rat.cast_commute
File: Mathlib/Data/Rat/Cast.lean

tactic: simpa only [cast_def] using (r.1.cast_commute a).div_left (r.2.cast_commute a)
state_before: F : Type ?u.2807
ι : Type ?u.2810
α : Type u_1
β : Type ?u.2816
inst✝ : DivisionRing α
r : ℚ
a : α
⊢ Commute (↑r) a
Theorem: List.foldr_reverse
File: Std/Data/List/Init/Lemmas.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
l : List α
f : α → β → β
b : β
⊢ foldl (fun y x => f x y) b (reverse (reverse l)) = foldl (fun x y => f y x) b l
Theorem: Quiver.Path.reverse_comp
File: Mathlib/Combinatorics/Quiver/Symmetric.lean

tactic: induction' q with _ _ _ _ h
state_before: U : Type ?u.5751
V : Type u_1
W : Type ?u.5757
inst✝³ : Quiver U
inst✝² : Quiver V
inst✝¹ : Quiver W
inst✝ : HasReverse V
a b c : V
p : Path a b
q : Path b c
⊢ reverse (comp p q) = comp (reverse q) (reverse p)

tactic: simp
state_before: case nil
U : Type ?u.5751
V : Type u_1
W : Type ?u.5757
inst✝³ : Quiver U
inst✝² : Quiver V
inst✝¹ : Quiver W
inst✝ : HasReverse V
a b c : V
p : Path a b
⊢ reverse (comp p nil) = comp (reverse nil) (reverse p)

tactic: simp [h]
state_before: case cons
U : Type ?u.5751
V : Type u_1
W : Type ?u.5757
inst✝³ : Quiver U
inst✝² : Quiver V
inst✝¹ : Quiver W
inst✝ : HasReverse V
a b c : V
p : Path a b
b✝ c✝ : V
a✝¹ : Path b b✝
a✝ : b✝ ⟶ c✝
h : reverse (comp p a✝¹) = comp (reverse a✝¹) (reverse p)
⊢ reverse (comp p (cons a✝¹ a✝)) = comp (reverse (cons a✝¹ a✝)) (reverse p)
Theorem: Filter.tendsto_const_mul_atTop_iff_neg
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp [tendsto_const_mul_atTop_iff, h, h.not_tendsto disjoint_atBot_atTop]
state_before: ι : Type ?u.239844
ι' : Type ?u.239847
α : Type u_2
β : Type u_1
γ : Type ?u.239856
inst✝¹ : LinearOrderedField α
l : Filter β
f : β → α
r : α
inst✝ : NeBot l
h : Tendsto f l atBot
⊢ Tendsto (fun x => r * f x) l atTop ↔ r < 0
Theorem: Finset.mem_range_iff_mem_finset_range_of_mod_eq
File: Mathlib/Data/Finset/Image.lean

tactic: simpa [h]
state_before: α : Type u_1
β : Type ?u.102484
γ : Type ?u.102487
inst✝¹ : DecidableEq β
f✝ g : α → β
s : Finset α
t : Finset β
a✝ : α
b c : β
inst✝ : DecidableEq α
f : ℤ → α
a : α
n : ℕ
hn : 0 < n
h : ∀ (i : ℤ), f (i % ↑n) = f i
this : (∃ i, f (i % ↑n) = a) ↔ ∃ i, i < n ∧ f ↑i = a
⊢ a ∈ Set.range f ↔ a ∈ image (fun i => f ↑i) (range n)

tactic: rw [← Int.ofNat_lt, Int.toNat_of_nonneg this]
state_before: α : Type u_1
β : Type ?u.102484
γ : Type ?u.102487
inst✝¹ : DecidableEq β
f✝ g : α → β
s : Finset α
t : Finset β
a✝ : α
b c : β
inst✝ : DecidableEq α
f : ℤ → α
a : α
n : ℕ
hn : 0 < n
h : ∀ (i : ℤ), f (i % ↑n) = f i
hn' : 0 < ↑n
x✝ : ∃ i, f (i % ↑n) = a
i : ℤ
hi : f (i % ↑n) = a
this : 0 ≤ i % ↑n
⊢ Int.toNat (i % ↑n) < n ∧ f ↑(Int.toNat (i % ↑n)) = a

tactic: exact ⟨Int.emod_lt_of_pos i hn', hi⟩
state_before: α : Type u_1
β : Type ?u.102484
γ : Type ?u.102487
inst✝¹ : DecidableEq β
f✝ g : α → β
s : Finset α
t : Finset β
a✝ : α
b c : β
inst✝ : DecidableEq α
f : ℤ → α
a : α
n : ℕ
hn : 0 < n
h : ∀ (i : ℤ), f (i % ↑n) = f i
hn' : 0 < ↑n
x✝ : ∃ i, f (i % ↑n) = a
i : ℤ
hi : f (i % ↑n) = a
this : 0 ≤ i % ↑n
⊢ i % ↑n < ↑n ∧ f (i % ↑n) = a

tactic: rw [Int.emod_eq_of_lt (Int.ofNat_zero_le _) (Int.ofNat_lt_ofNat_of_lt hi), ha]
state_before: α : Type u_1
β : Type ?u.102484
γ : Type ?u.102487
inst✝¹ : DecidableEq β
f✝ g : α → β
s : Finset α
t : Finset β
a✝ : α
b c : β
inst✝ : DecidableEq α
f : ℤ → α
a : α
n : ℕ
hn : 0 < n
h : ∀ (i : ℤ), f (i % ↑n) = f i
hn' : 0 < ↑n
x✝ : ∃ i, i < n ∧ f ↑i = a
i : ℕ
hi : i < n
ha : f ↑i = a
⊢ f (↑i % ↑n) = a
Theorem: PiLp.edist_eq_of_L2
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: simp [PiLp.edist_eq_sum]
state_before: p : ℝ≥0∞
𝕜 : Type ?u.293461
𝕜' : Type ?u.293464
ι : Type u_2
α : ι → Type ?u.293472
β✝ : ι → Type ?u.293477
inst✝² : Fintype ι
inst✝¹ : Fact (1 ≤ p)
β : ι → Type u_1
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x y : PiLp 2 β
⊢ edist x y = (∑ i : ι, edist (x i) (y i) ^ 2) ^ (1 / 2)
Theorem: CategoryTheory.Limits.CompleteLattice.pullback_eq_inf
File: Mathlib/CategoryTheory/Limits/Lattice.lean

tactic: rw [finite_limit_eq_finset_univ_inf]
state_before: α : Type u
J : Type w
inst✝³ : SmallCategory J
inst✝² : FinCategory J
inst✝¹ : SemilatticeInf α
inst✝ : OrderTop α
x y z : α
f : x ⟶ z
g : y ⟶ z
⊢ limit (cospan f g) = Finset.inf Finset.univ (cospan f g).toPrefunctor.obj

tactic: rw [inf_top_eq]
state_before: α : Type u
J : Type w
inst✝³ : SmallCategory J
inst✝² : FinCategory J
inst✝¹ : SemilatticeInf α
inst✝ : OrderTop α
x y z : α
f : x ⟶ z
g : y ⟶ z
⊢ z ⊓ (x ⊓ (y ⊓ ⊤)) = z ⊓ (x ⊓ y)
Theorem: MeasureTheory.Measure.count_apply_finite
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [← count_apply_finset, Finite.coe_toFinset]
state_before: α : Type u_1
β : Type ?u.373940
γ : Type ?u.373943
δ : Type ?u.373946
ι : Type ?u.373949
R : Type ?u.373952
R' : Type ?u.373955
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSingletonClass α
s : Set α
hs : Set.Finite s
⊢ ↑↑count s = ↑(Finset.card (Finite.toFinset hs))
Theorem: PosNum.cast_le
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← not_lt]
state_before: α : Type u_1
inst✝ : LinearOrderedSemiring α
m n : PosNum
⊢ ↑m ≤ ↑n ↔ m ≤ n

tactic: exact not_congr cast_lt
state_before: α : Type u_1
inst✝ : LinearOrderedSemiring α
m n : PosNum
⊢ ¬↑n < ↑m ↔ m ≤ n
Theorem: isInvariant_iff_image
File: Mathlib/Dynamics/Flow.lean

tactic: simp_rw [IsInvariant, mapsTo']
state_before: τ : Type u_1
α : Type u_2
ϕ : τ → α → α
s : Set α
⊢ IsInvariant ϕ s ↔ ∀ (t : τ), ϕ t '' s ⊆ s
Theorem: LiouvilleWith.nat_add_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rw [add_comm, add_nat_iff]
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
⊢ LiouvilleWith p (↑n + x) ↔ LiouvilleWith p x
Theorem: Polynomial.sum_smul_index
File: Mathlib/Data/Polynomial/Basic.lean

tactic: rcases p with ⟨⟩
state_before: R : Type u
a b✝ : R
m n : ℕ
inst✝¹ : Semiring R
p✝ q : R[X]
S : Type u_1
inst✝ : AddCommMonoid S
p : R[X]
b : R
f : ℕ → R → S
hf : ∀ (i : ℕ), f i 0 = 0
⊢ sum (b • p) f = sum p fun n a => f n (b * a)

tactic: simpa [sum, support, coeff] using Finsupp.sum_smul_index hf
state_before: case ofFinsupp
R : Type u
a b✝ : R
m n : ℕ
inst✝¹ : Semiring R
p q : R[X]
S : Type u_1
inst✝ : AddCommMonoid S
b : R
f : ℕ → R → S
hf : ∀ (i : ℕ), f i 0 = 0
toFinsupp✝ : AddMonoidAlgebra R ℕ
⊢ sum (b • { toFinsupp := toFinsupp✝ }) f = sum { toFinsupp := toFinsupp✝ } fun n a => f n (b * a)
Theorem: BoxIntegral.Prepartition.iUnion_eq_empty
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: simp [← injective_boxes.eq_iff, Finset.ext_iff, Prepartition.iUnion, imp_false]
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
⊢ Prepartition.iUnion π₁ = ∅ ↔ π₁ = ⊥
Theorem: Finset.smul_finset_neg
File: Mathlib/Data/Finset/Pointwise.lean

tactic: simp only [← image_smul, ← image_neg, Function.comp, image_image, smul_neg]
state_before: F : Type ?u.937268
α : Type u_2
β : Type u_1
γ : Type ?u.937277
inst✝³ : Monoid α
inst✝² : AddGroup β
inst✝¹ : DistribMulAction α β
inst✝ : DecidableEq β
a : α
s : Finset α
t : Finset β
⊢ a • -t = -(a • t)
Theorem: Basis.toMatrix_reindex'
File: Mathlib/LinearAlgebra/Matrix/Basis.lean

tactic: ext
state_before: ι : Type u_1
ι' : Type u_2
κ : Type ?u.604344
κ' : Type ?u.604347
R : Type u_3
M : Type u_4
inst✝¹³ : CommSemiring R
inst✝¹² : AddCommMonoid M
inst✝¹¹ : Module R M
R₂ : Type ?u.604540
M₂ : Type ?u.604543
inst✝¹⁰ : CommRing R₂
inst✝⁹ : AddCommGroup M₂
inst✝⁸ : Module R₂ M₂
e✝ : Basis ι R M
v✝ : ι' → M
i : ι
j : ι'
N : Type ?u.605288
inst✝⁷ : AddCommMonoid N
inst✝⁶ : Module R N
b✝ : Basis ι R M
b' : Basis ι' R M
c : Basis κ R N
c' : Basis κ' R N
f : M →ₗ[R] N
inst✝⁵ : Fintype ι'
inst✝⁴ : Fintype κ
inst✝³ : Fintype κ'
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : DecidableEq ι'
b : Basis ι R M
v : ι' → M
e : ι ≃ ι'
⊢ toMatrix (reindex b e) v = ↑(reindexAlgEquiv R e) (toMatrix b (v ∘ ↑e))

tactic: simp only [Basis.toMatrix_apply, Basis.repr_reindex, Matrix.reindexAlgEquiv_apply,
  Matrix.reindex_apply, Matrix.submatrix_apply, Function.comp_apply, e.apply_symm_apply,
  Finsupp.mapDomain_equiv_apply]
state_before: case a.h
ι : Type u_1
ι' : Type u_2
κ : Type ?u.604344
κ' : Type ?u.604347
R : Type u_3
M : Type u_4
inst✝¹³ : CommSemiring R
inst✝¹² : AddCommMonoid M
inst✝¹¹ : Module R M
R₂ : Type ?u.604540
M₂ : Type ?u.604543
inst✝¹⁰ : CommRing R₂
inst✝⁹ : AddCommGroup M₂
inst✝⁸ : Module R₂ M₂
e✝ : Basis ι R M
v✝ : ι' → M
i : ι
j : ι'
N : Type ?u.605288
inst✝⁷ : AddCommMonoid N
inst✝⁶ : Module R N
b✝ : Basis ι R M
b' : Basis ι' R M
c : Basis κ R N
c' : Basis κ' R N
f : M →ₗ[R] N
inst✝⁵ : Fintype ι'
inst✝⁴ : Fintype κ
inst✝³ : Fintype κ'
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : DecidableEq ι'
b : Basis ι R M
v : ι' → M
e : ι ≃ ι'
i✝ x✝ : ι'
⊢ toMatrix (reindex b e) v i✝ x✝ = ↑(reindexAlgEquiv R e) (toMatrix b (v ∘ ↑e)) i✝ x✝
Theorem: ContinuousLinearMap.comp_smulₛₗ
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: ext x
state_before: R : Type u_5
R₂ : Type u_1
R₃ : Type u_3
S : Type ?u.1057088
S₃ : Type ?u.1057091
inst✝³⁶ : Semiring R
inst✝³⁵ : Semiring R₂
inst✝³⁴ : Semiring R₃
inst✝³³ : Monoid S
inst✝³² : Monoid S₃
M : Type u_6
inst✝³¹ : TopologicalSpace M
inst✝³⁰ : AddCommMonoid M
inst✝²⁹ : Module R M
M₂ : Type u_2
inst✝²⁸ : TopologicalSpace M₂
inst✝²⁷ : AddCommMonoid M₂
inst✝²⁶ : Module R₂ M₂
M₃ : Type u_4
inst✝²⁵ : TopologicalSpace M₃
inst✝²⁴ : AddCommMonoid M₃
inst✝²³ : Module R₃ M₃
N₂ : Type ?u.1057214
inst✝²² : TopologicalSpace N₂
inst✝²¹ : AddCommMonoid N₂
inst✝²⁰ : Module R N₂
N₃ : Type ?u.1057247
inst✝¹⁹ : TopologicalSpace N₃
inst✝¹⁸ : AddCommMonoid N₃
inst✝¹⁷ : Module R N₃
inst✝¹⁶ : DistribMulAction S₃ M₃
inst✝¹⁵ : SMulCommClass R₃ S₃ M₃
inst✝¹⁴ : ContinuousConstSMul S₃ M₃
inst✝¹³ : DistribMulAction S N₃
inst✝¹² : SMulCommClass R S N₃
inst✝¹¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹⁰ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁹ : DistribMulAction S₃ M₂
inst✝⁸ : ContinuousConstSMul S₃ M₂
inst✝⁷ : SMulCommClass R₂ S₃ M₂
inst✝⁶ : DistribMulAction S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : SMulCommClass R₂ R₂ M₂
inst✝² : SMulCommClass R₃ R₃ M₃
inst✝¹ : ContinuousConstSMul R₂ M₂
inst✝ : ContinuousConstSMul R₃ M₃
h : M₂ →SL[σ₂₃] M₃
c : R₂
f : M →SL[σ₁₂] M₂
⊢ comp h (c • f) = ↑σ₂₃ c • comp h f

tactic: simp only [coe_smul', coe_comp', Function.comp_apply, Pi.smul_apply,
  ContinuousLinearMap.map_smulₛₗ]
state_before: case h
R : Type u_5
R₂ : Type u_1
R₃ : Type u_3
S : Type ?u.1057088
S₃ : Type ?u.1057091
inst✝³⁶ : Semiring R
inst✝³⁵ : Semiring R₂
inst✝³⁴ : Semiring R₃
inst✝³³ : Monoid S
inst✝³² : Monoid S₃
M : Type u_6
inst✝³¹ : TopologicalSpace M
inst✝³⁰ : AddCommMonoid M
inst✝²⁹ : Module R M
M₂ : Type u_2
inst✝²⁸ : TopologicalSpace M₂
inst✝²⁷ : AddCommMonoid M₂
inst✝²⁶ : Module R₂ M₂
M₃ : Type u_4
inst✝²⁵ : TopologicalSpace M₃
inst✝²⁴ : AddCommMonoid M₃
inst✝²³ : Module R₃ M₃
N₂ : Type ?u.1057214
inst✝²² : TopologicalSpace N₂
inst✝²¹ : AddCommMonoid N₂
inst✝²⁰ : Module R N₂
N₃ : Type ?u.1057247
inst✝¹⁹ : TopologicalSpace N₃
inst✝¹⁸ : AddCommMonoid N₃
inst✝¹⁷ : Module R N₃
inst✝¹⁶ : DistribMulAction S₃ M₃
inst✝¹⁵ : SMulCommClass R₃ S₃ M₃
inst✝¹⁴ : ContinuousConstSMul S₃ M₃
inst✝¹³ : DistribMulAction S N₃
inst✝¹² : SMulCommClass R S N₃
inst✝¹¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹⁰ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁹ : DistribMulAction S₃ M₂
inst✝⁸ : ContinuousConstSMul S₃ M₂
inst✝⁷ : SMulCommClass R₂ S₃ M₂
inst✝⁶ : DistribMulAction S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : SMulCommClass R₂ R₂ M₂
inst✝² : SMulCommClass R₃ R₃ M₃
inst✝¹ : ContinuousConstSMul R₂ M₂
inst✝ : ContinuousConstSMul R₃ M₃
h : M₂ →SL[σ₂₃] M₃
c : R₂
f : M →SL[σ₁₂] M₂
x : M
⊢ ↑(comp h (c • f)) x = ↑(↑σ₂₃ c • comp h f) x