tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.locallySmall_congr
File: Mathlib/CategoryTheory/EssentiallySmall.lean

tactic: fconstructor
state_before: C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
⊢ LocallySmall C ↔ LocallySmall D

tactic: rintro ⟨L⟩
state_before: case mp
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
⊢ LocallySmall C → LocallySmall D

tactic: fconstructor
state_before: case mp.mk
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
L : ∀ (X Y : C), Small (X ⟶ Y)
⊢ LocallySmall D

tactic: intro X Y
state_before: case mp.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
L : ∀ (X Y : C), Small (X ⟶ Y)
⊢ autoParam (∀ (X Y : D), Small (X ⟶ Y)) _auto✝

tactic: specialize L (e.inverse.obj X) (e.inverse.obj Y)
state_before: case mp.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
L : ∀ (X Y : C), Small (X ⟶ Y)
X Y : D
⊢ Small (X ⟶ Y)

tactic: refine' (small_congr _).mpr L
state_before: case mp.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
X Y : D
L : Small (e.inverse.obj X ⟶ e.inverse.obj Y)
⊢ Small (X ⟶ Y)

tactic: exact equivOfFullyFaithful e.inverse
state_before: case mp.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
X Y : D
L : Small (e.inverse.obj X ⟶ e.inverse.obj Y)
⊢ (X ⟶ Y) ≃ (e.inverse.obj X ⟶ e.inverse.obj Y)

tactic: rintro ⟨L⟩
state_before: case mpr
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
⊢ LocallySmall D → LocallySmall C

tactic: fconstructor
state_before: case mpr.mk
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
L : ∀ (X Y : D), Small (X ⟶ Y)
⊢ LocallySmall C

tactic: intro X Y
state_before: case mpr.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
L : ∀ (X Y : D), Small (X ⟶ Y)
⊢ autoParam (∀ (X Y : C), Small (X ⟶ Y)) _auto✝

tactic: specialize L (e.functor.obj X) (e.functor.obj Y)
state_before: case mpr.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
L : ∀ (X Y : D), Small (X ⟶ Y)
X Y : C
⊢ Small (X ⟶ Y)

tactic: refine' (small_congr _).mpr L
state_before: case mpr.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
X Y : C
L : Small (e.functor.obj X ⟶ e.functor.obj Y)
⊢ Small (X ⟶ Y)

tactic: exact equivOfFullyFaithful e.functor
state_before: case mpr.mk.hom_small
C✝ : Type u
inst✝² : Category C✝
C : Type u
inst✝¹ : Category C
D : Type u'
inst✝ : Category D
e : C ≌ D
X Y : C
L : Small (e.functor.obj X ⟶ e.functor.obj Y)
⊢ (X ⟶ Y) ≃ (e.functor.obj X ⟶ e.functor.obj Y)
Theorem: Stream'.tail_even
File: Mathlib/Data/Stream/Init.lean

tactic: unfold even
state_before: α : Type u
β : Type v
δ : Type w
s : Stream' α
⊢ tail (even s) = even (tail (tail s))

tactic: rw [corec_eq]
state_before: α : Type u
β : Type v
δ : Type w
s : Stream' α
⊢ tail (corec (fun s => head s) (fun s => tail (tail s)) s) =
    corec (fun s => head s) (fun s => tail (tail s)) (tail (tail s))

tactic: rfl
state_before: α : Type u
β : Type v
δ : Type w
s : Stream' α
⊢ tail (head s :: corec (fun s => head s) (fun s => tail (tail s)) (tail (tail s))) =
    corec (fun s => head s) (fun s => tail (tail s)) (tail (tail s))
Theorem: Monoid.exp_eq_one_of_subsingleton
File: Mathlib/GroupTheory/Exponent.lean

tactic: apply le_antisymm
state_before: G : Type u
inst✝¹ : Monoid G
inst✝ : Subsingleton G
⊢ exponent G = 1

tactic: apply exponent_min' _ Nat.one_pos
state_before: case a
G : Type u
inst✝¹ : Monoid G
inst✝ : Subsingleton G
⊢ exponent G ≤ 1

tactic: simp
state_before: case a
G : Type u
inst✝¹ : Monoid G
inst✝ : Subsingleton G
⊢ ∀ (g : G), g ^ 1 = 1

tactic: apply Nat.succ_le_of_lt
state_before: case a
G : Type u
inst✝¹ : Monoid G
inst✝ : Subsingleton G
⊢ 1 ≤ exponent G

tactic: apply exponent_pos_of_exists 1 Nat.one_pos
state_before: case a.h
G : Type u
inst✝¹ : Monoid G
inst✝ : Subsingleton G
⊢ 0 < exponent G

tactic: simp
state_before: case a.h
G : Type u
inst✝¹ : Monoid G
inst✝ : Subsingleton G
⊢ ∀ (g : G), g ^ 1 = 1
Theorem: MvPolynomial.weightedTotalDegree'_zero
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: simp only [weightedTotalDegree', support_zero, Finset.sup_empty]
state_before: R : Type u_2
M : Type u_1
inst✝² : CommSemiring R
σ : Type u_3
inst✝¹ : AddCommMonoid M
inst✝ : SemilatticeSup M
w : σ → M
⊢ weightedTotalDegree' w 0 = ⊥
Theorem: differentiableAt_const_add_iff
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: simpa using h.const_add (-c)
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.265379
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.265474
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
c : F
h : DifferentiableAt 𝕜 (fun y => c + f y) x
⊢ DifferentiableAt 𝕜 f x
Theorem: Cardinal.succ_zero
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: norm_cast
state_before: α β : Type u
⊢ succ 0 = 1
Theorem: Real.geom_mean_weighted_of_constant
File: Mathlib/Analysis/MeanInequalities.lean

tactic: refine' prod_congr rfl fun i hi => _
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
⊢ ∏ i in s, z i ^ w i = ∏ i in s, x ^ w i

tactic: cases' eq_or_ne (w i) 0 with h₀ h₀
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
i : ι
hi : i ∈ s
⊢ z i ^ w i = x ^ w i

tactic: rw [h₀, rpow_zero, rpow_zero]
state_before: case inl
ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
i : ι
hi : i ∈ s
h₀ : w i = 0
⊢ z i ^ w i = x ^ w i

tactic: rw [hx i hi h₀]
state_before: case inr
ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
i : ι
hi : i ∈ s
h₀ : w i ≠ 0
⊢ z i ^ w i = x ^ w i

tactic: rw [← rpow_sum_of_nonneg _ hw, hw', rpow_one]
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
⊢ ∏ i in s, x ^ w i = x

tactic: have : (∑ i in s, w i) ≠ 0 := by
  rw [hw']
  exact one_ne_zero
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
⊢ 0 ≤ x

tactic: obtain ⟨i, his, hi⟩ := exists_ne_zero_of_sum_ne_zero this
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
this : ∑ i in s, w i ≠ 0
⊢ 0 ≤ x

tactic: rw [← hx i his hi]
state_before: case intro.intro
ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
this : ∑ i in s, w i ≠ 0
i : ι
his : i ∈ s
hi : w i ≠ 0
⊢ 0 ≤ x

tactic: exact hz i his
state_before: case intro.intro
ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
this : ∑ i in s, w i ≠ 0
i : ι
his : i ∈ s
hi : w i ≠ 0
⊢ 0 ≤ z i

tactic: rw [hw']
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
⊢ ∑ i in s, w i ≠ 0

tactic: exact one_ne_zero
state_before: ι : Type u
s : Finset ι
w z : ι → ℝ
x : ℝ
hw : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw' : ∑ i in s, w i = 1
hz : ∀ (i : ι), i ∈ s → 0 ≤ z i
hx : ∀ (i : ι), i ∈ s → w i ≠ 0 → z i = x
⊢ 1 ≠ 0
Theorem: LinearMap.exists_antilipschitzWith
File: Mathlib/Analysis/NormedSpace/FiniteDimension.lean

tactic: cases subsingleton_or_nontrivial E
state_before: 𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
⊢ ∃ K, K > 0 ∧ AntilipschitzWith K ↑f

tactic: exact ⟨1, zero_lt_one, AntilipschitzWith.of_subsingleton⟩
state_before: case inl
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
h✝ : Subsingleton E
⊢ ∃ K, K > 0 ∧ AntilipschitzWith K ↑f

tactic: rw [LinearMap.ker_eq_bot] at hf
state_before: case inr
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
h✝ : Nontrivial E
⊢ ∃ K, K > 0 ∧ AntilipschitzWith K ↑f

tactic: let e : E ≃L[𝕜] LinearMap.range f := (LinearEquiv.ofInjective f hf).toContinuousLinearEquiv
state_before: case inr
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : Function.Injective ↑f
h✝ : Nontrivial E
⊢ ∃ K, K > 0 ∧ AntilipschitzWith K ↑f

tactic: exact ⟨_, e.nnnorm_symm_pos, e.antilipschitz⟩
state_before: case inr
𝕜 : Type u
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type w
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
F' : Type x
inst✝⁶ : AddCommGroup F'
inst✝⁵ : Module 𝕜 F'
inst✝⁴ : TopologicalSpace F'
inst✝³ : TopologicalAddGroup F'
inst✝² : ContinuousSMul 𝕜 F'
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : Function.Injective ↑f
h✝ : Nontrivial E
e : E ≃L[𝕜] { x // x ∈ range f } := LinearEquiv.toContinuousLinearEquiv (LinearEquiv.ofInjective f hf)
⊢ ∃ K, K > 0 ∧ AntilipschitzWith K ↑f
Theorem: MeasureTheory.ComplexMeasure.integrable_rnDeriv
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: rw [← memℒp_one_iff_integrable, ← memℒp_re_im_iff]
state_before: α : Type u_1
β : Type ?u.660001
m : MeasurableSpace α
μ✝ ν : Measure α
c✝ c : ComplexMeasure α
μ : Measure α
⊢ Integrable (rnDeriv c μ)

tactic: exact
  ⟨memℒp_one_iff_integrable.2 (SignedMeasure.integrable_rnDeriv _ _),
    memℒp_one_iff_integrable.2 (SignedMeasure.integrable_rnDeriv _ _)⟩
state_before: α : Type u_1
β : Type ?u.660001
m : MeasurableSpace α
μ✝ ν : Measure α
c✝ c : ComplexMeasure α
μ : Measure α
⊢ Memℒp (fun x => ↑IsROrC.re (rnDeriv c μ x)) 1 ∧ Memℒp (fun x => ↑IsROrC.im (rnDeriv c μ x)) 1
Theorem: Bool.toNat_le_toNat
File: Mathlib/Data/Bool/Basic.lean

tactic: cases h with
| inl h => subst h; exact Nat.zero_le _
| inr h => subst h; cases b₀ <;> simp;
state_before: b₀ b₁ : Bool
h : b₀ ≤ b₁
⊢ toNat b₀ ≤ toNat b₁

tactic: subst h
state_before: case inl
b₀ b₁ : Bool
h : b₀ = false
⊢ toNat b₀ ≤ toNat b₁

tactic: exact Nat.zero_le _
state_before: case inl
b₁ : Bool
⊢ toNat false ≤ toNat b₁

tactic: subst h
state_before: case inr
b₀ b₁ : Bool
h : b₁ = true
⊢ toNat b₀ ≤ toNat b₁

tactic: cases b₀ <;> simp
state_before: case inr
b₀ : Bool
⊢ toNat b₀ ≤ toNat true
Theorem: Computation.mem_unique
File: Mathlib/Data/Seq/Computation.lean

tactic: injection
  (le_stable s (le_max_left m n) ha.symm).symm.trans (le_stable s (le_max_right m n) hb.symm)
state_before: α : Type u
β : Type v
γ : Type w
s : Computation α
a b : α
m : ℕ
ha : (fun b => some a = b) (Stream'.nth (↑s) m)
n : ℕ
hb : (fun b_1 => some b = b_1) (Stream'.nth (↑s) n)
⊢ a = b
Theorem: nhdsWithin_iUnion
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [← sUnion_range, nhdsWithin_sUnion (finite_range s), iSup_range]
state_before: α : Type u_2
β : Type ?u.16749
γ : Type ?u.16752
δ : Type ?u.16755
inst✝¹ : TopologicalSpace α
ι : Sort u_1
inst✝ : Finite ι
s : ι → Set α
a : α
⊢ 𝓝[⋃ (i : ι), s i] a = ⨆ (i : ι), 𝓝[s i] a
Theorem: FirstOrder.Language.Substructure.lift_card_closure_le_card_term
File: Mathlib/ModelTheory/Substructures.lean

tactic: rw [← SetLike.coe_sort_coe, coe_closure_eq_range_term_realize]
state_before: L : Language
M : Type w
N : Type ?u.34066
P : Type ?u.34069
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
s : Set M
⊢ lift (#{ x // x ∈ LowerAdjoint.toFun (closure L) s }) ≤ (#Term L ↑s)

tactic: rw [← Cardinal.lift_id'.{w, max u w} (#L.Term s)]
state_before: L : Language
M : Type w
N : Type ?u.34066
P : Type ?u.34069
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
s : Set M
⊢ lift (#↑(range (Term.realize Subtype.val))) ≤ (#Term L ↑s)

tactic: exact Cardinal.mk_range_le_lift
state_before: L : Language
M : Type w
N : Type ?u.34066
P : Type ?u.34069
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
s : Set M
⊢ lift (#↑(range (Term.realize Subtype.val))) ≤ lift (#Term L ↑s)
Theorem: Set.mulIndicator_rel_mulIndicator
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: simp only [mulIndicator]
state_before: α : Type u_2
β : Type ?u.42764
ι : Type ?u.42767
M : Type u_1
N : Type ?u.42773
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
r : M → M → Prop
h1 : r 1 1
ha : a ∈ s → r (f a) (g a)
⊢ r (mulIndicator s f a) (mulIndicator s g a)

tactic: split_ifs with has
state_before: α : Type u_2
β : Type ?u.42764
ι : Type ?u.42767
M : Type u_1
N : Type ?u.42773
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
r : M → M → Prop
h1 : r 1 1
ha : a ∈ s → r (f a) (g a)
⊢ r (if a ∈ s then f a else 1) (if a ∈ s then g a else 1)

tactic: exacts [ha has, h1]
state_before: case inl
α : Type u_2
β : Type ?u.42764
ι : Type ?u.42767
M : Type u_1
N : Type ?u.42773
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
r : M → M → Prop
h1 : r 1 1
ha : a ∈ s → r (f a) (g a)
has : a ∈ s
⊢ r (f a) (g a)

case inr
α : Type u_2
β : Type ?u.42764
ι : Type ?u.42767
M : Type u_1
N : Type ?u.42773
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
r : M → M → Prop
h1 : r 1 1
ha : a ∈ s → r (f a) (g a)
has : ¬a ∈ s
⊢ r 1 1
Theorem: List.tendsto_cons_iff
File: Mathlib/Topology/List.lean

tactic: rw [this, Filter.tendsto_map'_iff]
state_before: α : Type u_2
β✝ : Type ?u.5720
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β✝
β : Type u_1
f : List α → β
b : Filter β
a : α
l : List α
this : 𝓝 (a :: l) = Filter.map (fun p => p.fst :: p.snd) (𝓝 a ×ˢ 𝓝 l)
⊢ Tendsto f (𝓝 (a :: l)) b ↔ Tendsto (fun p => f (p.fst :: p.snd)) (𝓝 a ×ˢ 𝓝 l) b

tactic: dsimp
state_before: α : Type u_2
β✝ : Type ?u.5720
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β✝
β : Type u_1
f : List α → β
b : Filter β
a : α
l : List α
this : 𝓝 (a :: l) = Filter.map (fun p => p.fst :: p.snd) (𝓝 a ×ˢ 𝓝 l)
⊢ Tendsto (f ∘ fun p => p.fst :: p.snd) (𝓝 a ×ˢ 𝓝 l) b ↔ Tendsto (fun p => f (p.fst :: p.snd)) (𝓝 a ×ˢ 𝓝 l) b

tactic: rfl
state_before: α : Type u_2
β✝ : Type ?u.5720
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β✝
β : Type u_1
f : List α → β
b : Filter β
a : α
l : List α
this : 𝓝 (a :: l) = Filter.map (fun p => p.fst :: p.snd) (𝓝 a ×ˢ 𝓝 l)
⊢ Tendsto (f ∘ fun p => p.fst :: p.snd) (𝓝 a ×ˢ 𝓝 l) b ↔ Tendsto (fun p => f (p.fst :: p.snd)) (𝓝 a ×ˢ 𝓝 l) b

tactic: simp only [nhds_cons, Filter.prod_eq, (Filter.map_def _ _).symm,
  (Filter.seq_eq_filter_seq _ _).symm]
state_before: α : Type u_2
β✝ : Type ?u.5720
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β✝
β : Type u_1
f : List α → β
b : Filter β
a : α
l : List α
⊢ 𝓝 (a :: l) = Filter.map (fun p => p.fst :: p.snd) (𝓝 a ×ˢ 𝓝 l)
Theorem: Submodule.restrictScalars_span
File: Mathlib/Algebra/Algebra/Tower.lean

tactic: refine' ((span_le_restrictScalars R A X).antisymm fun m hm => _).symm
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module A M
inst✝ : IsScalarTower R A M
hsur : Function.Surjective ↑(algebraMap R A)
X : Set M
⊢ restrictScalars R (span A X) = span R X

tactic: refine' span_induction hm subset_span (zero_mem _) (fun _ _ => add_mem) fun a m hm => _
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module A M
inst✝ : IsScalarTower R A M
hsur : Function.Surjective ↑(algebraMap R A)
X : Set M
m : M
hm : m ∈ restrictScalars R (span A X)
⊢ m ∈ span R X

tactic: obtain ⟨r, rfl⟩ := hsur a
state_before: R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module A M
inst✝ : IsScalarTower R A M
hsur : Function.Surjective ↑(algebraMap R A)
X : Set M
m✝ : M
hm✝ : m✝ ∈ restrictScalars R (span A X)
a : A
m : M
hm : m ∈ span R X
⊢ a • m ∈ span R X

tactic: simpa [algebraMap_smul] using smul_mem _ r hm
state_before: case intro
R : Type u
S : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module A M
inst✝ : IsScalarTower R A M
hsur : Function.Surjective ↑(algebraMap R A)
X : Set M
m✝ : M
hm✝ : m✝ ∈ restrictScalars R (span A X)
m : M
hm : m ∈ span R X
r : R
⊢ ↑(algebraMap R A) r • m ∈ span R X
Theorem: sup_lt_of_lt_sdiff_left
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [← sup_sdiff_cancel_right hxz]
state_before: α : Type u
β : Type ?u.43077
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y < z \ x
hxz : x ≤ z
⊢ x ⊔ y < z

tactic: refine' (sup_le_sup_left h.le _).lt_of_not_le fun h' => h.not_le _
state_before: α : Type u
β : Type ?u.43077
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y < z \ x
hxz : x ≤ z
⊢ x ⊔ y < x ⊔ z \ x

tactic: rw [← sdiff_idem]
state_before: α : Type u
β : Type ?u.43077
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y < z \ x
hxz : x ≤ z
h' : x ⊔ z \ x ≤ x ⊔ y
⊢ z \ x ≤ y

tactic: exact (sdiff_le_sdiff_of_sup_le_sup_left h').trans sdiff_le
state_before: α : Type u
β : Type ?u.43077
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y < z \ x
hxz : x ≤ z
h' : x ⊔ z \ x ≤ x ⊔ y
⊢ (z \ x) \ x ≤ y
Theorem: MvPolynomial.finSuccEquiv_eq
File: Mathlib/Data/MvPolynomial/Equiv.lean

tactic: ext i : 2
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.833445
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
⊢ ↑(finSuccEquiv R n) =
    eval₂Hom (RingHom.comp Polynomial.C C) fun i => Fin.cases Polynomial.X (fun k => ↑Polynomial.C (X k)) i

tactic: simp only [finSuccEquiv, optionEquivLeft_apply, aeval_C, AlgEquiv.coe_trans, RingHom.coe_coe,
  coe_eval₂Hom, comp_apply, renameEquiv_apply, eval₂_C, RingHom.coe_comp, rename_C]
state_before: case hC.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.833445
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
i : R
⊢ ↑(RingHom.comp (↑(finSuccEquiv R n)) C) i =
    ↑(RingHom.comp
          (eval₂Hom (RingHom.comp Polynomial.C C) fun i => Fin.cases Polynomial.X (fun k => ↑Polynomial.C (X k)) i) C)
      i

tactic: rfl
state_before: case hC.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.833445
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
i : R
⊢ ↑(algebraMap R (MvPolynomial (Fin n) R)[X]) i = ↑Polynomial.C (↑C i)

tactic: refine' Fin.cases _ _ i <;> simp [finSuccEquiv]
state_before: case hX.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.833445
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
i : Fin (n + 1)
n✝ : ℕ
⊢ Polynomial.coeff (↑↑(finSuccEquiv R n) (X i)) n✝ =
    Polynomial.coeff
      (↑(eval₂Hom (RingHom.comp Polynomial.C C) fun i => Fin.cases Polynomial.X (fun k => ↑Polynomial.C (X k)) i) (X i))
      n✝
Theorem: zpow_negSucc
File: Mathlib/Algebra/Group/Defs.lean

tactic: rw [← zpow_ofNat]
state_before: G : Type u_1
inst✝ : DivInvMonoid G
a✝ b a : G
n : ℕ
⊢ a ^ Int.negSucc n = (a ^ (n + 1))⁻¹

tactic: exact DivInvMonoid.zpow_neg' n a
state_before: G : Type u_1
inst✝ : DivInvMonoid G
a✝ b a : G
n : ℕ
⊢ a ^ Int.negSucc n = (a ^ ↑(n + 1))⁻¹
Theorem: Set.WellFoundedOn.mono
File: Mathlib/Order/WellFoundedSet.lean

tactic: rw [wellFoundedOn_iff] at *
state_before: ι : Type ?u.5056
α : Type u_1
β : Type ?u.5062
r r' : α → α → Prop
s t : Set α
x y : α
h : WellFoundedOn t r'
hle : r ≤ r'
hst : s ⊆ t
⊢ WellFoundedOn s r

tactic: exact Subrelation.wf (fun xy => ⟨hle _ _ xy.1, hst xy.2.1, hst xy.2.2⟩) h
state_before: ι : Type ?u.5056
α : Type u_1
β : Type ?u.5062
r r' : α → α → Prop
s t : Set α
x y : α
h : WellFounded fun a b => r' a b ∧ a ∈ t ∧ b ∈ t
hle : r ≤ r'
hst : s ⊆ t
⊢ WellFounded fun a b => r a b ∧ a ∈ s ∧ b ∈ s
Theorem: ZMod.neg_eq_self_mod_two
File: Mathlib/Data/ZMod/Basic.lean

tactic: fin_cases a <;> apply Fin.ext <;> simp [Fin.coe_neg, Int.natMod]
state_before: a : ZMod 2
⊢ -a = a
Theorem: Finset.iSup_insert_update
File: Mathlib/Data/Finset/Lattice.lean

tactic: simp only [Finset.iSup_insert, update_same]
state_before: F : Type ?u.452327
α : Type u_1
β : Type u_2
γ : Type ?u.452336
ι : Type ?u.452339
κ : Type ?u.452342
inst✝¹ : CompleteLattice β
inst✝ : DecidableEq α
x : α
t : Finset α
f : α → β
s : β
hx : ¬x ∈ t
⊢ (⨆ (i : α) (_ : i ∈ insert x t), update f x s i) = s ⊔ ⨆ (i : α) (_ : i ∈ t), f i

tactic: rcongr (i hi)
state_before: F : Type ?u.452327
α : Type u_1
β : Type u_2
γ : Type ?u.452336
ι : Type ?u.452339
κ : Type ?u.452342
inst✝¹ : CompleteLattice β
inst✝ : DecidableEq α
x : α
t : Finset α
f : α → β
s : β
hx : ¬x ∈ t
⊢ (s ⊔ ⨆ (x_1 : α) (_ : x_1 ∈ t), update f x s x_1) = s ⊔ ⨆ (i : α) (_ : i ∈ t), f i

tactic: apply update_noteq
state_before: case e_a.e_s.h.e_s.h
F : Type ?u.452327
α : Type u_1
β : Type u_2
γ : Type ?u.452336
ι : Type ?u.452339
κ : Type ?u.452342
inst✝¹ : CompleteLattice β
inst✝ : DecidableEq α
x : α
t : Finset α
f : α → β
s : β
hx : ¬x ∈ t
i : α
hi : i ∈ t
⊢ update f x s i = f i

tactic: rintro rfl
state_before: case e_a.e_s.h.e_s.h.h
F : Type ?u.452327
α : Type u_1
β : Type u_2
γ : Type ?u.452336
ι : Type ?u.452339
κ : Type ?u.452342
inst✝¹ : CompleteLattice β
inst✝ : DecidableEq α
x : α
t : Finset α
f : α → β
s : β
hx : ¬x ∈ t
i : α
hi : i ∈ t
⊢ i ≠ x

tactic: exact hx hi
state_before: case e_a.e_s.h.e_s.h.h
F : Type ?u.452327
α : Type u_1
β : Type u_2
γ : Type ?u.452336
ι : Type ?u.452339
κ : Type ?u.452342
inst✝¹ : CompleteLattice β
inst✝ : DecidableEq α
t : Finset α
f : α → β
s : β
i : α
hi : i ∈ t
hx : ¬i ∈ t
⊢ False