tasksource/leandojo huggingface dataset:
Theorem: Fin.dist_insertNth_insertNth
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simp only [dist_nndist, Fin.nndist_insertNth_insertNth, NNReal.coe_max]
state_before: α✝ : Type u
β : Type v
X : Type ?u.421600
ι : Type ?u.421603
inst✝³ : PseudoMetricSpace α✝
π : β → Type ?u.421611
inst✝² : Fintype β
inst✝¹ : (b : β) → PseudoMetricSpace (π b)
n : ℕ
α : Fin (n + 1) → Type u_1
inst✝ : (i : Fin (n + 1)) → PseudoMetricSpace (α i)
i : Fin (n + 1)
x y : α i
f g : (j : Fin n) → α (↑(succAbove i) j)
⊢ dist (insertNth i x f) (insertNth i y g) = max (dist x y) (dist f g)
Theorem: HomogeneousLocalization.eq_num_div_den
File: Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean

tactic: have := Quotient.out_eq' f
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : HomogeneousLocalization 𝒜 x
⊢ val f = Localization.mk (num f) { val := den f, property := (_ : den f ∈ x) }

tactic: apply_fun HomogeneousLocalization.val at this
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : HomogeneousLocalization 𝒜 x
this : Quotient.mk'' (Quotient.out' f) = f
⊢ val f = Localization.mk (num f) { val := den f, property := (_ : den f ∈ x) }

tactic: rw [← this]
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : HomogeneousLocalization 𝒜 x
this : val (Quotient.mk'' (Quotient.out' f)) = val f
⊢ val f = Localization.mk (num f) { val := den f, property := (_ : den f ∈ x) }

tactic: simp only [Quotient.liftOn'_mk'']
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : HomogeneousLocalization 𝒜 x
this : val (Quotient.mk'' (Quotient.out' f)) = val f
⊢ val (Quotient.mk'' (Quotient.out' f)) = Localization.mk (num f) { val := den f, property := (_ : den f ∈ x) }

tactic: rfl
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
f : HomogeneousLocalization 𝒜 x
this : val (Quotient.mk'' (Quotient.out' f)) = val f
⊢ val (Quotient.mk'' (Quotient.out' f)) = Localization.mk (num f) { val := den f, property := (_ : den f ∈ x) }
Theorem: SemidirectProduct.rightHom_inr
File: Mathlib/GroupTheory/SemidirectProduct.lean

tactic: simp [rightHom]
state_before: N : Type u_2
G : Type u_1
H : Type ?u.117474
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
g : G
⊢ ↑rightHom (↑inr g) = g
Theorem: ENNReal.lt_iff_exists_rat_btwn
File: Mathlib/Data/Real/ENNReal.lean

tactic: rcases lt_iff_exists_coe.1 h with ⟨p, rfl, _⟩
state_before: α : Type ?u.125408
β : Type ?u.125411
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a < b
⊢ ∃ q, 0 ≤ q ∧ a < ↑(Real.toNNReal ↑q) ∧ ↑(Real.toNNReal ↑q) < b

tactic: rcases exists_between h with ⟨c, pc, cb⟩
state_before: case intro.intro
α : Type ?u.125408
β : Type ?u.125411
b c d : ℝ≥0∞
r p✝ q p : ℝ≥0
right✝ h : ↑p < b
⊢ ∃ q, 0 ≤ q ∧ ↑p < ↑(Real.toNNReal ↑q) ∧ ↑(Real.toNNReal ↑q) < b

tactic: rcases lt_iff_exists_coe.1 cb with ⟨r, rfl, _⟩
state_before: case intro.intro.intro.intro
α : Type ?u.125408
β : Type ?u.125411
b c✝ d : ℝ≥0∞
r p✝ q p : ℝ≥0
right✝ h : ↑p < b
c : ℝ≥0∞
pc : ↑p < c
cb : c < b
⊢ ∃ q, 0 ≤ q ∧ ↑p < ↑(Real.toNNReal ↑q) ∧ ↑(Real.toNNReal ↑q) < b

tactic: rcases (NNReal.lt_iff_exists_rat_btwn _ _).1 (coe_lt_coe.1 pc) with ⟨q, hq0, pq, qr⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type ?u.125408
β : Type ?u.125411
b c d : ℝ≥0∞
r✝ p✝ q p : ℝ≥0
right✝¹ h : ↑p < b
r : ℝ≥0
right✝ : ↑r < b
pc : ↑p < ↑r
cb : ↑r < b
⊢ ∃ q, 0 ≤ q ∧ ↑p < ↑(Real.toNNReal ↑q) ∧ ↑(Real.toNNReal ↑q) < b

tactic: exact ⟨q, hq0, coe_lt_coe.2 pq, lt_trans (coe_lt_coe.2 qr) cb⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro
α : Type ?u.125408
β : Type ?u.125411
b c d : ℝ≥0∞
r✝ p✝ q✝ p : ℝ≥0
right✝¹ h : ↑p < b
r : ℝ≥0
right✝ : ↑r < b
pc : ↑p < ↑r
cb : ↑r < b
q : ℚ
hq0 : 0 ≤ q
pq : p < Real.toNNReal ↑q
qr : Real.toNNReal ↑q < r
⊢ ∃ q, 0 ≤ q ∧ ↑p < ↑(Real.toNNReal ↑q) ∧ ↑(Real.toNNReal ↑q) < b
Theorem: Filter.frequently_iSup
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [Filter.Frequently, eventually_iSup, not_forall]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.174182
ι : Sort x
p : α → Prop
fs : β → Filter α
⊢ (∃ᶠ (x : α) in ⨆ (b : β), fs b, p x) ↔ ∃ b, ∃ᶠ (x : α) in fs b, p x
Theorem: eqRec_heq'
File: Mathlib/Logic/Basic.lean

tactic: subst t
state_before: α : Sort u_1
a' : α
motive : (a : α) → a' = a → Sort u
p : motive a' (_ : a' = a')
a : α
t : a' = a
⊢ HEq (t ▸ p) p

tactic: rfl
state_before: α : Sort u_1
a' : α
motive : (a : α) → a' = a → Sort u
p : motive a' (_ : a' = a')
⊢ HEq ((_ : a' = a') ▸ p) p
Theorem: Finset.filter_eq_empty_iff
File: Mathlib/Data/Finset/Basic.lean

tactic: refine' ⟨_, filter_false_of_mem⟩
state_before: α : Type u_1
β : Type ?u.323706
γ : Type ?u.323709
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
s : Finset α
⊢ filter p s = ∅ ↔ ∀ (x : α), x ∈ s → ¬p x

tactic: intro hs
state_before: α : Type u_1
β : Type ?u.323706
γ : Type ?u.323709
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
s : Finset α
⊢ filter p s = ∅ → ∀ (x : α), x ∈ s → ¬p x

tactic: injection hs with hs'
state_before: α : Type u_1
β : Type ?u.323706
γ : Type ?u.323709
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
s : Finset α
hs : filter p s = ∅
⊢ ∀ (x : α), x ∈ s → ¬p x

tactic: rwa [filter_eq_nil] at hs'
state_before: α : Type u_1
β : Type ?u.323706
γ : Type ?u.323709
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
s : Finset α
hs' : Multiset.filter p s.val = 0
⊢ ∀ (x : α), x ∈ s → ¬p x
Theorem: Compactum.str_hom_commute
File: Mathlib/Topology/Category/Compactum.lean

tactic: change (X.a ≫ f.f) _ = _
state_before: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ Monad.Algebra.Hom.f f (str X xs) = str Y (Ultrafilter.map f.f xs)

tactic: rw [← f.h]
state_before: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ (X.a ≫ f.f) xs = str Y (Ultrafilter.map f.f xs)

tactic: rfl
state_before: X Y : Compactum
f : X ⟶ Y
xs : Ultrafilter X.A
⊢ (β.toFunctor.map f.f ≫ Y.a) xs = str Y (Ultrafilter.map f.f xs)
Theorem: OrderRingHom.cancel_left
File: Mathlib/Algebra/Order/Hom/Ring.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: F : Type ?u.49422
α : Type u_3
β : Type u_1
γ : Type u_2
δ : Type ?u.49434
inst✝⁷ : NonAssocSemiring α
inst✝⁶ : Preorder α
inst✝⁵ : NonAssocSemiring β
inst✝⁴ : Preorder β
inst✝³ : NonAssocSemiring γ
inst✝² : Preorder γ
inst✝¹ : NonAssocSemiring δ
inst✝ : Preorder δ
f : β →+*o γ
g₁ g₂ : α →+*o β
hf : Injective ↑f
h : OrderRingHom.comp f g₁ = OrderRingHom.comp f g₂
a : α
⊢ ↑f (↑g₁ a) = ↑f (↑g₂ a)
Theorem: TopologicalSpace.NoetherianSpace.exists_finset_irreducible
File: Mathlib/Topology/NoetherianSpace.lean

tactic: simpa [Set.exists_finite_iff_finset, Finset.sup_id_eq_sSup]
  using NoetherianSpace.exists_finite_set_closeds_irreducible s
state_before: α : Type u_1
β : Type ?u.17376
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
⊢ ∃ S, (∀ (k : { x // x ∈ S }), IsIrreducible ↑↑k) ∧ s = Finset.sup S id
Theorem: one_le_div'
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_le_mul_iff_right b, one_mul, div_eq_mul_inv, inv_mul_cancel_right]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ 1 ≤ a / b ↔ b ≤ a
Theorem: Polynomial.taylor_eval
File: Mathlib/Data/Polynomial/Taylor.lean

tactic: simp only [taylor_apply, eval_comp, eval_C, eval_X, eval_add]
state_before: R✝ : Type ?u.222958
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_1
inst✝ : CommSemiring R
r : R
f : R[X]
s : R
⊢ eval s (↑(taylor r) f) = eval (s + r) f
Theorem: MeasureTheory.measure_biUnion_eq_iSup
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: haveI := ht.toEncodable
state_before: α : Type u_1
β : Type ?u.52533
γ : Type ?u.52536
δ : Type ?u.52539
ι : Type u_2
R : Type ?u.52545
R' : Type ?u.52548
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
hd : DirectedOn ((fun x x_1 => x ⊆ x_1) on s) t
⊢ ↑↑μ (⋃ (i : ι) (_ : i ∈ t), s i) = ⨆ (i : ι) (_ : i ∈ t), ↑↑μ (s i)

tactic: rw [biUnion_eq_iUnion, measure_iUnion_eq_iSup hd.directed_val, ← iSup_subtype'']
state_before: α : Type u_1
β : Type ?u.52533
γ : Type ?u.52536
δ : Type ?u.52539
ι : Type u_2
R : Type ?u.52545
R' : Type ?u.52548
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ι → Set α
t : Set ι
ht : Set.Countable t
hd : DirectedOn ((fun x x_1 => x ⊆ x_1) on s) t
this : Encodable ↑t
⊢ ↑↑μ (⋃ (i : ι) (_ : i ∈ t), s i) = ⨆ (i : ι) (_ : i ∈ t), ↑↑μ (s i)
Theorem: IsPrincipalIdealRing.of_finite_primes
File: Mathlib/RingTheory/DedekindDomain/PID.lean

tactic: obtain rfl | hI := eq_or_ne I ⊥
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
h : Set.Finite {I | IsPrime I}
I : Ideal R
⊢ Submodule.IsPrincipal I

tactic: apply Ideal.IsPrincipal.of_finite_maximals_of_isUnit
state_before: case inr
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
h : Set.Finite {I | IsPrime I}
I : Ideal R
hI : I ≠ ⊥
⊢ Submodule.IsPrincipal I

tactic: exact bot_isPrincipal
state_before: case inl
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
h : Set.Finite {I | IsPrime I}
⊢ Submodule.IsPrincipal ⊥

tactic: apply h.subset
state_before: case inr.hf
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
h : Set.Finite {I | IsPrime I}
I : Ideal R
hI : I ≠ ⊥
⊢ Set.Finite {I | IsMaximal I}

tactic: exact @Ideal.IsMaximal.isPrime _ _
state_before: case inr.hf
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
h : Set.Finite {I | IsPrime I}
I : Ideal R
hI : I ≠ ⊥
⊢ {I | IsMaximal I} ⊆ {I | IsPrime I}

tactic: exact isUnit_of_mul_eq_one _ _ (FractionalIdeal.coe_ideal_mul_inv I hI)
state_before: case inr.hI
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
h : Set.Finite {I | IsPrime I}
I : Ideal R
hI : I ≠ ⊥
⊢ IsUnit ↑I
Theorem: MvPolynomial.C_mul_monomial
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: show AddMonoidAlgebra.single _ _ * AddMonoidAlgebra.single _ _ = AddMonoidAlgebra.single _ _
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
⊢ ↑C a * ↑(monomial s) a' = ↑(monomial s) (a * a')

tactic: simp [C_apply, single_mul_single]
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
⊢ AddMonoidAlgebra.single 0 a * AddMonoidAlgebra.single s a' = AddMonoidAlgebra.single s (a * a')
Theorem: spectrum.units_smul_resolvent_self
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: simpa only [Units.smul_def, Algebra.id.smul_eq_mul, Units.inv_mul] using
  @units_smul_resolvent _ _ _ _ _ r r a
state_before: R : Type u
A : Type v
inst✝² : CommSemiring R
inst✝¹ : Ring A
inst✝ : Algebra R A
r : Rˣ
a : A
⊢ r • resolvent a ↑r = resolvent (r⁻¹ • a) 1
Theorem: hnot_symmDiff_self
File: Mathlib/Order/SymmDiff.lean

tactic: rw [eq_top_iff, symmDiff, hnot_sdiff, sup_sdiff_self]
state_before: ι : Type ?u.55295
α : Type u_1
β : Type ?u.55301
π : ι → Type ?u.55306
inst✝ : CoheytingAlgebra α
a : α
⊢ (￢a) ∆ a = ⊤

tactic: exact Codisjoint.top_le codisjoint_hnot_left
state_before: ι : Type ?u.55295
α : Type u_1
β : Type ?u.55301
π : ι → Type ?u.55306
inst✝ : CoheytingAlgebra α
a : α
⊢ ⊤ ≤ ￢a ⊔ a
Theorem: EReal.eq_top_iff_forall_lt
File: Mathlib/Data/Real/EReal.lean

tactic: constructor
state_before: x : EReal
⊢ x = ⊤ ↔ ∀ (y : ℝ), ↑y < x

tactic: rintro rfl
state_before: case mp
x : EReal
⊢ x = ⊤ → ∀ (y : ℝ), ↑y < x

tactic: exact EReal.coe_lt_top
state_before: case mp

⊢ ∀ (y : ℝ), ↑y < ⊤

tactic: contrapose!
state_before: case mpr
x : EReal
⊢ (∀ (y : ℝ), ↑y < x) → x = ⊤

tactic: intro h
state_before: case mpr
x : EReal
⊢ x ≠ ⊤ → ∃ y, x ≤ ↑y

tactic: exact ⟨x.toReal, le_coe_toReal h⟩
state_before: case mpr
x : EReal
h : x ≠ ⊤
⊢ ∃ y, x ≤ ↑y
Theorem: IsROrC.isCauSeq_re
File: Mathlib/Data/IsROrC/Basic.lean

tactic: simpa only [map_sub] using abs_re_le_norm (f j - f i)
state_before: K : Type u_1
E : Type ?u.7199108
inst✝ : IsROrC K
f : CauSeq K norm
ε : ℝ
ε0 : ε > 0
i : ℕ
H : ∀ (j : ℕ), j ≥ i → ‖↑f j - ↑f i‖ < ε
j : ℕ
ij : j ≥ i
⊢ abs ((fun n => ↑re (↑f n)) j - (fun n => ↑re (↑f n)) i) ≤ ‖↑f j - ↑f i‖
Theorem: subset_closure_inter_of_isPreirreducible_of_isOpen
File: Mathlib/Topology/SubsetProperties.lean

tactic: by_contra h'
state_before: α : Type u
β : Type v
ι : Type ?u.204087
π : ι → Type ?u.204092
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t S U : Set α
hS : IsPreirreducible S
hU : IsOpen U
h : Set.Nonempty (S ∩ U)
⊢ S ⊆ closure (S ∩ U)

tactic: obtain ⟨x, h₁, h₂, h₃⟩ :=
  hS _ (closure (S ∩ U)ᶜ) hU isClosed_closure.isOpen_compl h (inter_compl_nonempty_iff.mpr h')
state_before: α : Type u
β : Type v
ι : Type ?u.204087
π : ι → Type ?u.204092
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t S U : Set α
hS : IsPreirreducible S
hU : IsOpen U
h : Set.Nonempty (S ∩ U)
h' : ¬S ⊆ closure (S ∩ U)
⊢ False

tactic: exact h₃ (subset_closure ⟨h₁, h₂⟩)
state_before: case intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.204087
π : ι → Type ?u.204092
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t S U : Set α
hS : IsPreirreducible S
hU : IsOpen U
h : Set.Nonempty (S ∩ U)
h' : ¬S ⊆ closure (S ∩ U)
x : α
h₁ : x ∈ S
h₂ : x ∈ U
h₃ : x ∈ closure (S ∩ U)ᶜ
⊢ False
Theorem: DirectSum.IsInternal.collectedOrthonormalBasis_mem
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp [DirectSum.IsInternal.collectedOrthonormalBasis]
state_before: ι : Type u_1
ι' : Type ?u.1598118
𝕜 : Type u_3
inst✝¹¹ : IsROrC 𝕜
E : Type u_2
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : InnerProductSpace 𝕜 E
E' : Type ?u.1598147
inst✝⁸ : NormedAddCommGroup E'
inst✝⁷ : InnerProductSpace 𝕜 E'
F : Type ?u.1598165
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : InnerProductSpace ℝ F
F' : Type ?u.1598185
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : InnerProductSpace ℝ F'
inst✝² : Fintype ι
v✝ : Set E
A : ι → Submodule 𝕜 E
inst✝¹ : DecidableEq ι
h : IsInternal A
α : ι → Type u_4
inst✝ : (i : ι) → Fintype (α i)
hV : OrthogonalFamily 𝕜 (fun i => { x // x ∈ A i }) fun i => subtypeₗᵢ (A i)
v : (i : ι) → OrthonormalBasis (α i) 𝕜 { x // x ∈ A i }
a : (i : ι) × α i
⊢ ↑(collectedOrthonormalBasis hV h v) a ∈ A a.fst
Theorem: Equiv.Perm.isCycle_iff_sameCycle
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [← zpow_apply_eq_self_of_apply_eq_self hy i, (f ^ i).injective.eq_iff] at hi
state_before: ι : Type ?u.347151
α : Type u_1
β : Type ?u.347157
f g : Perm α
x y✝ : α
hx : ↑f x ≠ x
hf : IsCycle f
y : α
x✝ : SameCycle f x y
hy : ↑f y = y
i : ℤ
hi : ↑(f ^ i) x = y
⊢ ↑f x = x

tactic: rw [hi, hy]
state_before: ι : Type ?u.347151
α : Type u_1
β : Type ?u.347157
f g : Perm α
x y✝ : α
hx : ↑f x ≠ x
hf : IsCycle f
y : α
x✝ : SameCycle f x y
hy : ↑f y = y
i : ℤ
hi : x = y
⊢ ↑f x = x
Theorem: FreeCommRing.map_subtype_val_restriction
File: Mathlib/RingTheory/FreeCommRing.lean

tactic: refine' Subring.InClosure.recOn hxs _ _ _ _
state_before: α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ↑(map Subtype.val) (↑(restriction s) x) = x

tactic: rw [RingHom.map_one]
state_before: case refine'_1
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ↑(map Subtype.val) (↑(restriction s) 1) = 1

tactic: rfl
state_before: case refine'_1
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ↑(map Subtype.val) 1 = 1

tactic: rw [map_neg, map_one]
state_before: case refine'_2
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ↑(map Subtype.val) (↑(restriction s) (-1)) = -1

tactic: rfl
state_before: case refine'_2
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ↑(map Subtype.val) (-1) = -1

tactic: rintro _ ⟨p, hps, rfl⟩ n ih
state_before: case refine'_3
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ∀ (z : FreeCommRing α),
    z ∈ of '' s →
      ∀ (n : FreeCommRing α),
        ↑(map Subtype.val) (↑(restriction s) n) = n → ↑(map Subtype.val) (↑(restriction s) (z * n)) = z * n

tactic: rw [RingHom.map_mul, restriction_of, dif_pos hps, RingHom.map_mul, map_of, ih]
state_before: case refine'_3.intro.intro
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
p : α
hps : p ∈ s
n : FreeCommRing α
ih : ↑(map Subtype.val) (↑(restriction s) n) = n
⊢ ↑(map Subtype.val) (↑(restriction s) (of p * n)) = of p * n

tactic: intro x y ihx ihy
state_before: case refine'_4
α : Type u
β : Type v
f : α → β
x : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x s
⊢ ∀ {x y : FreeCommRing α},
    ↑(map Subtype.val) (↑(restriction s) x) = x →
      ↑(map Subtype.val) (↑(restriction s) y) = y → ↑(map Subtype.val) (↑(restriction s) (x + y)) = x + y

tactic: rw [RingHom.map_add, RingHom.map_add, ihx, ihy]
state_before: case refine'_4
α : Type u
β : Type v
f : α → β
x✝ : FreeCommRing α
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
hxs : IsSupported x✝ s
x y : FreeCommRing α
ihx : ↑(map Subtype.val) (↑(restriction s) x) = x
ihy : ↑(map Subtype.val) (↑(restriction s) y) = y
⊢ ↑(map Subtype.val) (↑(restriction s) (x + y)) = x + y
Theorem: Cubic.degree_of_d_ne_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: rw [of_c_eq_zero ha hb hc, degree_C hd]
state_before: R : Type u_1
S : Type ?u.584827
F : Type ?u.584830
K : Type ?u.584833
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 0
hc : P.c = 0
hd : P.d ≠ 0
⊢ degree (toPoly P) = 0
Theorem: tendsto_floor_left_pure_ceil_sub_one
File: Mathlib/Topology/Algebra/Order/Floor.lean

tactic: rw [cast_sub, cast_one, sub_lt_iff_lt_add]
state_before: α : Type u_1
β : Type ?u.8173
γ : Type ?u.8176
inst✝³ : LinearOrderedRing α
inst✝² : FloorRing α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
x : α
⊢ ↑(⌈x⌉ - 1) < x

tactic: exact ceil_lt_add_one _
state_before: α : Type u_1
β : Type ?u.8173
γ : Type ?u.8176
inst✝³ : LinearOrderedRing α
inst✝² : FloorRing α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
x : α
⊢ ↑⌈x⌉ < x + 1

tactic: rw [cast_sub, cast_one, sub_add_cancel]
state_before: α : Type u_1
β : Type ?u.8173
γ : Type ?u.8176
inst✝³ : LinearOrderedRing α
inst✝² : FloorRing α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
x : α
h₁ : ↑(⌈x⌉ - 1) < x
⊢ x ≤ ↑(⌈x⌉ - 1) + 1

tactic: exact le_ceil _
state_before: α : Type u_1
β : Type ?u.8173
γ : Type ?u.8176
inst✝³ : LinearOrderedRing α
inst✝² : FloorRing α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
x : α
h₁ : ↑(⌈x⌉ - 1) < x
⊢ x ≤ ↑⌈x⌉
Theorem: MeasureTheory.SimpleFunc.lintegral_map'
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: simp only [preimage, eq]
state_before: α : Type u_2
β✝ : Type ?u.902392
γ : Type ?u.902395
δ : Type ?u.902398
m : MeasurableSpace α
μ ν : Measure α
β : Type u_1
inst✝ : MeasurableSpace β
μ' : Measure β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
m' : α → β
eq : ∀ (a : α), ↑f a = ↑g (m' a)
h : ∀ (s : Set β), MeasurableSet s → ↑↑μ' s = ↑↑μ (m' ⁻¹' s)
y : ℝ≥0∞
⊢ ↑↑μ (↑f ⁻¹' {y}) = ↑↑μ' (↑g ⁻¹' {y})

tactic: exact (h (g ⁻¹' {y}) (g.measurableSet_preimage _)).symm
state_before: α : Type u_2
β✝ : Type ?u.902392
γ : Type ?u.902395
δ : Type ?u.902398
m : MeasurableSpace α
μ ν : Measure α
β : Type u_1
inst✝ : MeasurableSpace β
μ' : Measure β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
m' : α → β
eq : ∀ (a : α), ↑f a = ↑g (m' a)
h : ∀ (s : Set β), MeasurableSet s → ↑↑μ' s = ↑↑μ (m' ⁻¹' s)
y : ℝ≥0∞
⊢ ↑↑μ {x | ↑g (m' x) ∈ {y}} = ↑↑μ' {x | ↑g x ∈ {y}}
Theorem: tsub_le_iff_tsub_le
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [tsub_le_iff_left, tsub_le_iff_right]
state_before: α : Type u_1
β : Type ?u.3403
inst✝³ : Preorder α
inst✝² : AddCommSemigroup α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
⊢ a - b ≤ c ↔ a - c ≤ b
Theorem: Polynomial.Chebyshev.one_sub_X_sq_mul_derivative_T_eq_poly_in_T
File: Mathlib/RingTheory/Polynomial/Chebyshev.lean

tactic: rw [T_derivative_eq_U]
state_before: R : Type u_1
S : Type ?u.69485
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (1 - X ^ 2) * ↑derivative (T R (n + 1)) = (1 - X ^ 2) * ((↑n + 1) * U R n)

tactic: ring
state_before: R : Type u_1
S : Type ?u.69485
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (1 - X ^ 2) * ((↑n + 1) * U R n) = (↑n + 1) * ((1 - X ^ 2) * U R n)

tactic: rw [one_sub_X_sq_mul_U_eq_pol_in_T, T_add_two]
state_before: R : Type u_1
S : Type ?u.69485
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (↑n + 1) * ((1 - X ^ 2) * U R n) = (↑n + 1) * (X * T R (n + 1) - (2 * X * T R (n + 1) - T R n))

tactic: ring
state_before: R : Type u_1
S : Type ?u.69485
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℕ
⊢ (↑n + 1) * (X * T R (n + 1) - (2 * X * T R (n + 1) - T R n)) = (↑n + 1) * (T R n - X * T R (n + 1))
Theorem: Polynomial.iterate_derivative_X_sub_pow
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: rw [sub_eq_add_neg, ← C_neg, iterate_derivative_X_add_pow]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝ : ℕ
inst✝ : CommRing R
n k : ℕ
c : R
⊢ (↑derivative^[k]) ((X - ↑C c) ^ n) = ↑(∏ i in range k, (n - i)) * (X - ↑C c) ^ (n - k)
Theorem: ContinuousLinearMap.comp_add
File: Mathlib/Topology/Algebra/Module/Basic.lean

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

tactic: simp
state_before: case h
R₁ : Type u_5
R₂ : Type u_3
R₃ : Type u_4
inst✝¹⁹ : Semiring R₁
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_6
inst✝¹⁶ : TopologicalSpace M₁
inst✝¹⁵ : AddCommMonoid M₁
M'₁ : Type ?u.519412
inst✝¹⁴ : TopologicalSpace M'₁
inst✝¹³ : AddCommMonoid M'₁
M₂ : Type u_1
inst✝¹² : TopologicalSpace M₂
inst✝¹¹ : AddCommMonoid M₂
M₃ : Type u_2
inst✝¹⁰ : TopologicalSpace M₃
inst✝⁹ : AddCommMonoid M₃
M₄ : Type ?u.519439
inst✝⁸ : TopologicalSpace M₄
inst✝⁷ : AddCommMonoid M₄
inst✝⁶ : Module R₁ M₁
inst✝⁵ : Module R₁ M'₁
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : ContinuousAdd M₂
inst✝ : ContinuousAdd M₃
g : M₂ →SL[σ₂₃] M₃
f₁ f₂ : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(comp g (f₁ + f₂)) x✝ = ↑(comp g f₁ + comp g f₂) x✝
Theorem: lt_mul_of_lt_one_left
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: simpa only [one_mul] using mul_lt_mul_of_neg_right h hb
state_before: α : Type u
β : Type ?u.87400
inst✝ : StrictOrderedRing α
a b c : α
hb : b < 0
h : a < 1
⊢ b < a * b