tasksource/leandojo huggingface dataset:
Theorem: exists_lt_of_directed_ge
File: Mathlib/Order/Directed.lean

tactic: rcases exists_pair_ne β with ⟨a, b, hne⟩
state_before: α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
⊢ ∃ a b, a < b

tactic: rcases isBot_or_exists_lt a with (ha | ⟨c, hc⟩)
state_before: case intro.intro
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
⊢ ∃ a b, a < b

tactic: exacts [⟨a, b, (ha b).lt_of_ne hne⟩, ⟨_, _, hc⟩]
state_before: case intro.intro.inl
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
ha : IsBot a
⊢ ∃ a b, a < b

case intro.intro.inr.intro
α : Type u
β : Type v
ι : Sort w
r r' s : α → α → Prop
inst✝³ : Preorder α
a✝ : α
inst✝² : PartialOrder β
inst✝¹ : IsDirected β fun x x_1 => x ≥ x_1
inst✝ : Nontrivial β
a b : β
hne : a ≠ b
c : β
hc : c < a
⊢ ∃ a b, a < b
Theorem: MeasureTheory.Measure.add_prod
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: refine' prod_eq fun s t _ _ => _
state_before: α : Type u_1
α' : Type ?u.4497375
β : Type u_2
β' : Type ?u.4497381
γ : Type ?u.4497384
E : Type ?u.4497387
inst✝⁸ : MeasurableSpace α
inst✝⁷ : MeasurableSpace α'
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace β'
inst✝⁴ : MeasurableSpace γ
μ μ'✝ : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝³ : NormedAddCommGroup E
inst✝² : SigmaFinite ν
inst✝¹ : SigmaFinite μ
μ' : Measure α
inst✝ : SigmaFinite μ'
⊢ Measure.prod (μ + μ') ν = Measure.prod μ ν + Measure.prod μ' ν

tactic: simp_rw [add_apply, prod_prod, right_distrib]
state_before: α : Type u_1
α' : Type ?u.4497375
β : Type u_2
β' : Type ?u.4497381
γ : Type ?u.4497384
E : Type ?u.4497387
inst✝⁸ : MeasurableSpace α
inst✝⁷ : MeasurableSpace α'
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace β'
inst✝⁴ : MeasurableSpace γ
μ μ'✝ : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝³ : NormedAddCommGroup E
inst✝² : SigmaFinite ν
inst✝¹ : SigmaFinite μ
μ' : Measure α
inst✝ : SigmaFinite μ'
s : Set α
t : Set β
x✝¹ : MeasurableSet s
x✝ : MeasurableSet t
⊢ ↑↑(Measure.prod μ ν + Measure.prod μ' ν) (s ×ˢ t) = ↑↑(μ + μ') s * ↑↑ν t
Theorem: Hyperreal.IsSt.map₂
File: Mathlib/Data/Real/Hyperreal.lean

tactic: rcases ofSeq_surjective x with ⟨x, rfl⟩
state_before: x y : ℝ*
r s : ℝ
hxr : IsSt x r
hys : IsSt y s
f : ℝ → ℝ → ℝ
hf : ContinuousAt (Function.uncurry f) (r, s)
⊢ IsSt (Germ.map₂ f x y) (f r s)

tactic: rcases ofSeq_surjective y with ⟨y, rfl⟩
state_before: case intro
y : ℝ*
r s : ℝ
hys : IsSt y s
f : ℝ → ℝ → ℝ
hf : ContinuousAt (Function.uncurry f) (r, s)
x : ℕ → ℝ
hxr : IsSt (ofSeq x) r
⊢ IsSt (Germ.map₂ f (ofSeq x) y) (f r s)

tactic: rw [isSt_ofSeq_iff_tendsto] at hxr hys
state_before: case intro.intro
r s : ℝ
f : ℝ → ℝ → ℝ
hf : ContinuousAt (Function.uncurry f) (r, s)
x : ℕ → ℝ
hxr : IsSt (ofSeq x) r
y : ℕ → ℝ
hys : IsSt (ofSeq y) s
⊢ IsSt (Germ.map₂ f (ofSeq x) (ofSeq y)) (f r s)

tactic: exact isSt_ofSeq_iff_tendsto.2 <| hf.tendsto.comp (hxr.prod_mk_nhds hys)
state_before: case intro.intro
r s : ℝ
f : ℝ → ℝ → ℝ
hf : ContinuousAt (Function.uncurry f) (r, s)
x : ℕ → ℝ
hxr : Tendsto x (↑(hyperfilter ℕ)) (𝓝 r)
y : ℕ → ℝ
hys : Tendsto y (↑(hyperfilter ℕ)) (𝓝 s)
⊢ IsSt (Germ.map₂ f (ofSeq x) (ofSeq y)) (f r s)
Theorem: FormalMultilinearSeries.order_eq_zero_iff'
File: Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean

tactic: simpa [order, Nat.sInf_eq_zero, FormalMultilinearSeries.ext_iff, eq_empty_iff_forall_not_mem]
  using or_comm
state_before: 𝕜 : Type u
𝕜' : Type u'
E : Type v
F : Type w
G : Type x
inst✝¹⁰ : CommRing 𝕜
n : ℕ
inst✝⁹ : AddCommGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : TopologicalSpace E
inst✝⁶ : TopologicalAddGroup E
inst✝⁵ : ContinuousConstSMul 𝕜 E
inst✝⁴ : AddCommGroup F
inst✝³ : Module 𝕜 F
inst✝² : TopologicalSpace F
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousConstSMul 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
⊢ order p = 0 ↔ p = 0 ∨ p 0 ≠ 0
Theorem: CategoryTheory.Limits.HasBiproduct.of_hasCoproduct
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: cases nonempty_fintype J
state_before: C : Type u
inst✝⁴ : Category C
inst✝³ : Preadditive C
J✝ : Type
inst✝² : Fintype J✝
J : Type
inst✝¹ : Finite J
f : J → C
inst✝ : HasCoproduct f
⊢ HasBiproduct f

tactic: exact
  HasBiproduct.mk
    { bicone := _
      isBilimit := biconeIsBilimitOfColimitCoconeOfIsColimit (colimit.isColimit _) }
state_before: case intro
C : Type u
inst✝⁴ : Category C
inst✝³ : Preadditive C
J✝ : Type
inst✝² : Fintype J✝
J : Type
inst✝¹ : Finite J
f : J → C
inst✝ : HasCoproduct f
val✝ : Fintype J
⊢ HasBiproduct f
Theorem: norm_iteratedFDeriv_eq_norm_iteratedDeriv
File: Mathlib/Analysis/Calculus/IteratedDeriv.lean

tactic: rw [iteratedDeriv_eq_equiv_comp, Function.comp_apply, LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_1
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.109858
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ ‖iteratedFDeriv 𝕜 n f x‖ = ‖iteratedDeriv n f x‖
Theorem: Asymptotics.isBigOWith_const_one
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp [isBigOWith_iff]
state_before: α : Type u_1
β : Type ?u.290943
E : Type u_2
F : Type u_3
G : Type ?u.290952
E' : Type ?u.290955
F' : Type ?u.290958
G' : Type ?u.290961
E'' : Type ?u.290964
F'' : Type ?u.290967
G'' : Type ?u.290970
R : Type ?u.290973
R' : Type ?u.290976
𝕜 : Type ?u.290979
𝕜' : Type ?u.290982
inst✝¹⁴ : Norm E
inst✝¹³ : Norm F
inst✝¹² : Norm G
inst✝¹¹ : SeminormedAddCommGroup E'
inst✝¹⁰ : SeminormedAddCommGroup F'
inst✝⁹ : SeminormedAddCommGroup G'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F''
inst✝⁶ : NormedAddCommGroup G''
inst✝⁵ : SeminormedRing R
inst✝⁴ : SeminormedRing R'
inst✝³ : NormedField 𝕜
inst✝² : NormedField 𝕜'
c✝ c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l✝ l' : Filter α
inst✝¹ : One F
inst✝ : NormOneClass F
c : E
l : Filter α
⊢ IsBigOWith ‖c‖ l (fun _x => c) fun _x => 1
Theorem: Nat.Upto.wf
File: Mathlib/Data/Nat/Upto.lean

tactic: suffices Upto.GT p = Measure fun y : Nat.Upto p => x - y.val by
  rw [this]
  exact (measure _).wf
state_before: p : ℕ → Prop
x : ℕ
h : p x
⊢ WellFounded (Upto.GT p)

tactic: ext (⟨a, ha⟩⟨b, _⟩)
state_before: p : ℕ → Prop
x : ℕ
h : p x
⊢ Upto.GT p = Measure fun y => x - ↑y

tactic: dsimp [Measure, InvImage, Upto.GT]
state_before: case h.mk.h.mk.a
p : ℕ → Prop
x : ℕ
h : p x
a : ℕ
ha : ∀ (j : ℕ), j < a → ¬p j
b : ℕ
property✝ : ∀ (j : ℕ), j < b → ¬p j
⊢ Upto.GT p { val := a, property := ha } { val := b, property := property✝ } ↔
    Measure (fun y => x - ↑y) { val := a, property := ha } { val := b, property := property✝ }

tactic: rw [tsub_lt_tsub_iff_left_of_le (le_of_not_lt fun h' => ha _ h' h)]
state_before: case h.mk.h.mk.a
p : ℕ → Prop
x : ℕ
h : p x
a : ℕ
ha : ∀ (j : ℕ), j < a → ¬p j
b : ℕ
property✝ : ∀ (j : ℕ), j < b → ¬p j
⊢ a > b ↔ x - a < x - b

tactic: rw [this]
state_before: p : ℕ → Prop
x : ℕ
h : p x
this : Upto.GT p = Measure fun y => x - ↑y
⊢ WellFounded (Upto.GT p)

tactic: exact (measure _).wf
state_before: p : ℕ → Prop
x : ℕ
h : p x
this : Upto.GT p = Measure fun y => x - ↑y
⊢ WellFounded (Measure fun y => x - ↑y)
Theorem: PrimeSpectrum.mem_compl_zeroLocus_iff_not_mem
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [Set.mem_compl_iff, mem_zeroLocus, Set.singleton_subset_iff]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R
I : PrimeSpectrum R
⊢ I ∈ zeroLocus {f}ᶜ ↔ ¬f ∈ I.asIdeal

tactic: rfl
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R
I : PrimeSpectrum R
⊢ ¬f ∈ ↑I.asIdeal ↔ ¬f ∈ I.asIdeal
Theorem: Ergodic.ae_empty_or_univ_of_preimage_ae_le'
File: Mathlib/Dynamics/Ergodic/Ergodic.lean

tactic: refine' hf.quasiErgodic.ae_empty_or_univ' hs _
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s : Set α
μ : MeasureTheory.Measure α
hf : Ergodic f
hs : MeasurableSet s
hs' : f ⁻¹' s ≤ᶠ[ae μ] s
h_fin : ↑↑μ s ≠ ⊤
⊢ s =ᶠ[ae μ] ∅ ∨ s =ᶠ[ae μ] univ

tactic: refine' ae_eq_of_ae_subset_of_measure_ge hs' (hf.measure_preimage hs).symm.le _ h_fin
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s : Set α
μ : MeasureTheory.Measure α
hf : Ergodic f
hs : MeasurableSet s
hs' : f ⁻¹' s ≤ᶠ[ae μ] s
h_fin : ↑↑μ s ≠ ⊤
⊢ f ⁻¹' s =ᶠ[ae μ] s

tactic: exact measurableSet_preimage hf.measurable hs
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s : Set α
μ : MeasureTheory.Measure α
hf : Ergodic f
hs : MeasurableSet s
hs' : f ⁻¹' s ≤ᶠ[ae μ] s
h_fin : ↑↑μ s ≠ ⊤
⊢ MeasurableSet (f ⁻¹' s)
Theorem: ZNum.abs_to_nat
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [p.to_nat_to_int, Int.natAbs_neg]
state_before: α : Type ?u.659055
p : PosNum
⊢ natAbs ↑↑p = natAbs (-↑p)
Theorem: UniformContinuousOn.tendstoUniformly
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: simpa only [tendstoUniformlyOn_univ, nhdsWithin_eq_nhds.2 hU]
  using hF.tendstoUniformlyOn (mem_of_mem_nhds hU)
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : UniformSpace β
F✝ : ι → α → β
f : α → β
s s' : Set α
x✝ : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝¹ : UniformSpace α
inst✝ : UniformSpace γ
x : α
U : Set α
hU : U ∈ 𝓝 x
F : α → β → γ
hF : UniformContinuousOn (↿F) (U ×ˢ univ)
⊢ TendstoUniformly F (F x) (𝓝 x)
Theorem: PowerSeries.monomial_zero_eq_C
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [monomial, Finsupp.single_zero, MvPowerSeries.monomial_zero_eq_C, C]
state_before: R : Type u_1
inst✝ : Semiring R
⊢ ↑(monomial R 0) = ↑(C R)
Theorem: Inducing.isCompact_iff
File: Mathlib/Topology/SubsetProperties.lean

tactic: refine ⟨fun hs F F_ne_bot F_le => ?_, fun hs => hs.image hf.continuous⟩
state_before: α : Type u
β : Type v
ι : Type ?u.93052
π : ι → Type ?u.93057
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t : Set α
f : α → β
hf : Inducing f
s : Set α
⊢ IsCompact (f '' s) ↔ IsCompact s

tactic: obtain ⟨_, ⟨x, x_in : x ∈ s, rfl⟩, hx : ClusterPt (f x) (map f F)⟩ :=
  hs ((map_mono F_le).trans_eq map_principal)
state_before: α : Type u
β : Type v
ι : Type ?u.93052
π : ι → Type ?u.93057
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t : Set α
f : α → β
hf : Inducing f
s : Set α
hs : IsCompact (f '' s)
F : Filter α
F_ne_bot : NeBot F
F_le : F ≤ 𝓟 s
⊢ ∃ a, a ∈ s ∧ ClusterPt a F

tactic: exact ⟨x, x_in, hf.mapClusterPt_iff.1 hx⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.93052
π : ι → Type ?u.93057
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t : Set α
f : α → β
hf : Inducing f
s : Set α
hs : IsCompact (f '' s)
F : Filter α
F_ne_bot : NeBot F
F_le : F ≤ 𝓟 s
x : α
x_in : x ∈ s
hx : ClusterPt (f x) (map f F)
⊢ ∃ a, a ∈ s ∧ ClusterPt a F
Theorem: Lagrange.nodal_empty
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rfl
state_before: F : Type u_1
inst✝ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x : F
⊢ nodal ∅ v = 1
Theorem: Hyperreal.infinitePos_of_tendsto_top
File: Mathlib/Data/Real/Hyperreal.lean

tactic: simp only [Set.compl_setOf, not_lt]
state_before: f : ℕ → ℝ
hf : Tendsto f atTop atTop
r : ℝ
hf' : ∀ (b : ℝ), ∃ i, ∀ (a : ℕ), i ≤ a → b ≤ f a
i : ℕ
hi : ∀ (a : ℕ), i ≤ a → r + 1 ≤ f a
hi' : ∀ (a : ℕ), f a < r + 1 → a < i
⊢ {a | r < f a}ᶜ ⊆ {a | a ≤ i}

tactic: exact fun a har => le_of_lt (hi' a (lt_of_le_of_lt har (lt_add_one _)))
state_before: f : ℕ → ℝ
hf : Tendsto f atTop atTop
r : ℝ
hf' : ∀ (b : ℝ), ∃ i, ∀ (a : ℕ), i ≤ a → b ≤ f a
i : ℕ
hi : ∀ (a : ℕ), i ≤ a → r + 1 ≤ f a
hi' : ∀ (a : ℕ), f a < r + 1 → a < i
⊢ {a | f a ≤ r} ⊆ {a | a ≤ i}
Theorem: List.foldlIdxM_eq_foldlM_enum
File: Mathlib/Data/List/Indexes.lean

tactic: rw [foldlIdxM, foldlM_eq_foldl, foldlIdx_eq_foldl_enum]
state_before: α✝ : Type u
β✝ : Type v
m : Type u → Type v
inst✝¹ : Monad m
inst✝ : LawfulMonad m
α : Type u_1
β : Type u
f : ℕ → β → α → m β
b : β
as : List α
⊢ foldlIdxM f b as = List.foldlM (fun b p => f p.fst b p.snd) b (enum as)
Theorem: FirstOrder.Language.Theory.SemanticallyEquivalent.trans
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: have h1' := h1 M v xs
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ θ : BoundedFormula L α n
h1 : SemanticallyEquivalent T φ ψ
h2 : SemanticallyEquivalent T ψ θ
M : ModelType T
v : α → ↑M
xs : Fin n → ↑M
⊢ BoundedFormula.Realize (φ ⇔ θ) v xs

tactic: have h2' := h2 M v xs
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ θ : BoundedFormula L α n
h1 : SemanticallyEquivalent T φ ψ
h2 : SemanticallyEquivalent T ψ θ
M : ModelType T
v : α → ↑M
xs : Fin n → ↑M
h1' : BoundedFormula.Realize (φ ⇔ ψ) v xs
⊢ BoundedFormula.Realize (φ ⇔ θ) v xs

tactic: rw [BoundedFormula.realize_iff] at *
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ θ : BoundedFormula L α n
h1 : SemanticallyEquivalent T φ ψ
h2 : SemanticallyEquivalent T ψ θ
M : ModelType T
v : α → ↑M
xs : Fin n → ↑M
h1' : BoundedFormula.Realize (φ ⇔ ψ) v xs
h2' : BoundedFormula.Realize (ψ ⇔ θ) v xs
⊢ BoundedFormula.Realize (φ ⇔ θ) v xs

tactic: exact ⟨h2'.1 ∘ h1'.1, h1'.2 ∘ h2'.2⟩
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ θ : BoundedFormula L α n
h1 : SemanticallyEquivalent T φ ψ
h2 : SemanticallyEquivalent T ψ θ
M : ModelType T
v : α → ↑M
xs : Fin n → ↑M
h1' : BoundedFormula.Realize φ v xs ↔ BoundedFormula.Realize ψ v xs
h2' : BoundedFormula.Realize ψ v xs ↔ BoundedFormula.Realize θ v xs
⊢ BoundedFormula.Realize φ v xs ↔ BoundedFormula.Realize θ v xs
Theorem: inv_mul_lt_iff_lt_mul'
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [inv_mul_lt_iff_lt_mul, mul_comm]
state_before: α : Type u
inst✝² : CommGroup α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c d : α
⊢ c⁻¹ * a < b ↔ a < b * c
Theorem: LinearEquiv.neg_apply
File: Mathlib/LinearAlgebra/Basic.lean

tactic: simp
state_before: R : Type u_2
R₁ : Type ?u.2123585
R₂ : Type ?u.2123588
R₃ : Type ?u.2123591
R₄ : Type ?u.2123594
S : Type ?u.2123597
K : Type ?u.2123600
K₂ : Type ?u.2123603
M : Type u_1
M' : Type ?u.2123609
M₁ : Type ?u.2123612
M₂ : Type ?u.2123615
M₃ : Type ?u.2123618
M₄ : Type ?u.2123621
N : Type ?u.2123624
N₂ : Type ?u.2123627
ι : Type ?u.2123630
V : Type ?u.2123633
V₂ : Type ?u.2123636
inst✝² : Semiring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x : M
⊢ ↑(neg R) x = -x
Theorem: continuous_algebraMap_iff_smul
File: Mathlib/Topology/Algebra/Algebra.lean

tactic: refine' ⟨fun h => _, fun h => _⟩
state_before: R : Type u_1
A : Type u
inst✝⁵ : CommSemiring R
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalSpace A
inst✝ : TopologicalSemiring A
⊢ Continuous ↑(algebraMap R A) ↔ Continuous fun p => p.fst • p.snd

tactic: simp only [Algebra.smul_def]
state_before: case refine'_1
R : Type u_1
A : Type u
inst✝⁵ : CommSemiring R
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalSpace A
inst✝ : TopologicalSemiring A
h : Continuous ↑(algebraMap R A)
⊢ Continuous fun p => p.fst • p.snd

tactic: exact (h.comp continuous_fst).mul continuous_snd
state_before: case refine'_1
R : Type u_1
A : Type u
inst✝⁵ : CommSemiring R
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalSpace A
inst✝ : TopologicalSemiring A
h : Continuous ↑(algebraMap R A)
⊢ Continuous fun p => ↑(algebraMap R A) p.fst * p.snd

tactic: rw [algebraMap_eq_smul_one']
state_before: case refine'_2
R : Type u_1
A : Type u
inst✝⁵ : CommSemiring R
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalSpace A
inst✝ : TopologicalSemiring A
h : Continuous fun p => p.fst • p.snd
⊢ Continuous ↑(algebraMap R A)

tactic: exact h.comp (continuous_id.prod_mk continuous_const)
state_before: case refine'_2
R : Type u_1
A : Type u
inst✝⁵ : CommSemiring R
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalSpace A
inst✝ : TopologicalSemiring A
h : Continuous fun p => p.fst • p.snd
⊢ Continuous fun r => r • 1
Theorem: Function.comp_iterate_pred_of_pos
File: Mathlib/Logic/Function/Iterate.lean

tactic: rw [← iterate_succ', Nat.succ_pred_eq_of_pos hn]
state_before: α : Type u
β : Type v
f : α → α
n : ℕ
hn : 0 < n
⊢ f ∘ f^[Nat.pred n] = f^[n]
Theorem: Stream'.WSeq.bind_congr
File: Mathlib/Data/Seq/WSeq.lean

tactic: rw [h]
state_before: α : Type u
β : Type v
γ : Type w
s1 s2 : WSeq α
f1 f2 : α → WSeq β
h1 : s1 ~ʷ s2
h2 : ∀ (a : α), f1 a ~ʷ f2 a
a b : α
h : a = b
⊢ LiftRel (fun x x_1 => x = x_1) (f1 a) (f2 b)

tactic: apply h2
state_before: α : Type u
β : Type v
γ : Type w
s1 s2 : WSeq α
f1 f2 : α → WSeq β
h1 : s1 ~ʷ s2
h2 : ∀ (a : α), f1 a ~ʷ f2 a
a b : α
h : a = b
⊢ LiftRel (fun x x_1 => x = x_1) (f1 b) (f2 b)
Theorem: Int.mul_lt_mul_of_pos_left
File: Std/Data/Int/Lemmas.lean

tactic: have : 0 < c * (b - a) := Int.mul_pos h₂ (Int.sub_pos_of_lt h₁)
state_before: a b c : Int
h₁ : a < b
h₂ : 0 < c
⊢ c * a < c * b

tactic: rw [Int.mul_sub] at this
state_before: a b c : Int
h₁ : a < b
h₂ : 0 < c
this : 0 < c * (b - a)
⊢ c * a < c * b

tactic: exact Int.lt_of_sub_pos this
state_before: a b c : Int
h₁ : a < b
h₂ : 0 < c
this : 0 < c * b - c * a
⊢ c * a < c * b
Theorem: Complex.tan_zero
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [tan]
state_before: x y : ℂ
⊢ tan 0 = 0
Theorem: Multiset.Ico_eq_zero_iff
File: Mathlib/Data/Multiset/LocallyFinite.lean

tactic: rw [Ico, Finset.val_eq_zero, Finset.Ico_eq_empty_iff]
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a b c : α
⊢ Ico a b = 0 ↔ ¬a < b
Theorem: IsLocalization.algEquiv_symm_mk'
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: simp
state_before: R : Type u_1
inst✝⁷ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁶ : CommSemiring S
inst✝⁵ : Algebra R S
P : Type ?u.2555066
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S
g : R →+* P
hg : ∀ (y : { x // x ∈ M }), IsUnit (↑g ↑y)
Q : Type u_3
inst✝² : CommSemiring Q
inst✝¹ : Algebra R Q
inst✝ : IsLocalization M Q
x : R
y : { x // x ∈ M }
⊢ ↑(AlgEquiv.symm (algEquiv M S Q)) (mk' Q x y) = mk' S x y
Theorem: StructureGroupoid.LocalInvariantProp.congr_iff_nhdsWithin
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: simp_rw [hG.is_local_nhds h1]
state_before: H : Type u_1
M : Type ?u.2794
H' : Type u_2
M' : Type ?u.2800
X : Type ?u.2803
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f g : H → H'
h1 : f =ᶠ[𝓝[s] x] g
h2 : f x = g x
⊢ P f s x ↔ P g s x

tactic: exact ⟨hG.congr_of_forall (fun y hy ↦ hy.2) h2, hG.congr_of_forall (fun y hy ↦ hy.2.symm) h2.symm⟩
state_before: H : Type u_1
M : Type ?u.2794
H' : Type u_2
M' : Type ?u.2800
X : Type ?u.2803
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
P : (H → H') → Set H → H → Prop
s✝ t u : Set H
x✝ : H
hG : LocalInvariantProp G G' P
s : Set H
x : H
f g : H → H'
h1 : f =ᶠ[𝓝[s] x] g
h2 : f x = g x
⊢ P f (s ∩ {x | f x = g x}) x ↔ P g (s ∩ {x | f x = g x}) x
Theorem: Real.volume_emetric_closedBall
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: rcases eq_or_ne r ∞ with (rfl | hr)
state_before: ι : Type ?u.132364
inst✝ : Fintype ι
a : ℝ
r : ℝ≥0∞
⊢ ↑↑volume (EMetric.closedBall a r) = 2 * r

tactic: rw [EMetric.closedBall_top, volume_univ, two_mul, _root_.top_add]
state_before: case inl
ι : Type ?u.132364
inst✝ : Fintype ι
a : ℝ
⊢ ↑↑volume (EMetric.closedBall a ⊤) = 2 * ⊤

tactic: lift r to ℝ≥0 using hr
state_before: case inr
ι : Type ?u.132364
inst✝ : Fintype ι
a : ℝ
r : ℝ≥0∞
hr : r ≠ ⊤
⊢ ↑↑volume (EMetric.closedBall a r) = 2 * r

tactic: rw [Metric.emetric_closedBall_nnreal, volume_closedBall, two_mul, ← NNReal.coe_add,
  ENNReal.ofReal_coe_nnreal, ENNReal.coe_add, two_mul]
state_before: case inr.intro
ι : Type ?u.132364
inst✝ : Fintype ι
a : ℝ
r : ℝ≥0
⊢ ↑↑volume (EMetric.closedBall a ↑r) = 2 * ↑r
Theorem: List.get_length_sub_one
File: Mathlib/Data/List/Basic.lean

tactic: rintro rfl
state_before: ι : Type ?u.88829
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ l : List α
h : length l - 1 < length l
⊢ l ≠ []

tactic: exact Nat.lt_irrefl 0 h
state_before: ι : Type ?u.88829
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
h : length [] - 1 < length []
⊢ False
Theorem: List.length_sigma
File: Mathlib/Data/List/ProdSigma.lean

tactic: induction' l₁ with x l₁ IH
state_before: α : Type u_1
β : Type ?u.16166
σ : α → Type u_2
l₁ : List α
l₂ : (a : α) → List (σ a)
⊢ length (List.sigma l₁ l₂) = sum (map (fun a => length (l₂ a)) l₁)

tactic: rfl
state_before: case nil
α : Type u_1
β : Type ?u.16166
σ : α → Type u_2
l₂ : (a : α) → List (σ a)
⊢ length (List.sigma [] l₂) = sum (map (fun a => length (l₂ a)) [])

tactic: simp only [map, sigma_cons, length_append, length_map, IH, sum_cons]
state_before: case cons
α : Type u_1
β : Type ?u.16166
σ : α → Type u_2
l₂ : (a : α) → List (σ a)
x : α
l₁ : List α
IH : length (List.sigma l₁ l₂) = sum (map (fun a => length (l₂ a)) l₁)
⊢ length (List.sigma (x :: l₁) l₂) = sum (map (fun a => length (l₂ a)) (x :: l₁))
Theorem: Path.refl_trans_refl
File: Mathlib/Topology/PathConnected.lean

tactic: ext
state_before: X✝ : Type ?u.252121
Y : Type ?u.252124
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.252139
γ : Path x y
X : Type u_1
inst✝ : TopologicalSpace X
a : X
⊢ trans (refl a) (refl a) = refl a

tactic: simp only [Path.trans, ite_self, one_div, Path.refl_extend]
state_before: case a.h
X✝ : Type ?u.252121
Y : Type ?u.252124
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.252139
γ : Path x y
X : Type u_1
inst✝ : TopologicalSpace X
a : X
x✝ : ↑I
⊢ ↑(trans (refl a) (refl a)) x✝ = ↑(refl a) x✝

tactic: rfl
state_before: case a.h
X✝ : Type ?u.252121
Y : Type ?u.252124
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.252139
γ : Path x y
X : Type u_1
inst✝ : TopologicalSpace X
a : X
x✝ : ↑I
⊢ ↑{ toContinuousMap := ContinuousMap.mk ((fun t => a) ∘ Subtype.val),
          source' := (_ : ContinuousMap.toFun (ContinuousMap.mk ((fun t => a) ∘ Subtype.val)) 0 = a),
          target' := (_ : ContinuousMap.toFun (ContinuousMap.mk ((fun t => a) ∘ Subtype.val)) 1 = a) }
      x✝ =
    ↑(refl a) x✝
Theorem: Polynomial.two_mul_C_half_eq_one
File: Mathlib/RingTheory/Polynomial/Dickson.lean

tactic: rw [two_mul, ← C_add, invOf_two_add_invOf_two, C_1]
state_before: R : Type u_1
S : Type ?u.128222
inst✝² : CommRing R
inst✝¹ : CommRing S
k : ℕ
a : R
inst✝ : Invertible 2
⊢ 2 * ↑C ⅟2 = 1