tasksource/leandojo huggingface dataset:
Theorem: Finsupp.erase_add_single
File: Mathlib/Data/Finsupp/Defs.lean

tactic: rw [← update_eq_erase_add_single, update_self]
state_before: α : Type u_1
β : Type ?u.308019
γ : Type ?u.308022
ι : Type ?u.308025
M : Type u_2
M' : Type ?u.308031
N : Type ?u.308034
P : Type ?u.308037
G : Type ?u.308040
H : Type ?u.308043
R : Type ?u.308046
S : Type ?u.308049
inst✝ : AddZeroClass M
a : α
f : α →₀ M
⊢ erase a f + single a (↑f a) = f
Theorem: Vector.zipWith_tail
File: Mathlib/Data/Vector/Zip.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
n : ℕ
f : α → β → γ
x : Vector α n
y : Vector β n
⊢ tail (zipWith f x y) = zipWith f (tail x) (tail y)

tactic: simp [get_tail]
state_before: case x
α : Type u_1
β : Type u_2
γ : Type u_3
n : ℕ
f : α → β → γ
x : Vector α n
y : Vector β n
m✝ : Fin (n - 1)
⊢ get (tail (zipWith f x y)) m✝ = get (zipWith f (tail x) (tail y)) m✝
Theorem: CategoryTheory.Presieve.isSeparatedFor_top
File: Mathlib/CategoryTheory/Sites/SheafOfTypes.lean

tactic: have q₁ := h₁ (𝟙 X) (by tauto)
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P ⊤
t₁ t₂ : P.obj X.op
h₁ : FamilyOfElements.IsAmalgamation x t₁
h₂ : FamilyOfElements.IsAmalgamation x t₂
⊢ t₁ = t₂

tactic: have q₂ := h₂ (𝟙 X) (by tauto)
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P ⊤
t₁ t₂ : P.obj X.op
h₁ : FamilyOfElements.IsAmalgamation x t₁
h₂ : FamilyOfElements.IsAmalgamation x t₂
q₁ : P.map (𝟙 X).op t₁ = x (𝟙 X) (_ : True)
⊢ t₁ = t₂

tactic: simp only [op_id, FunctorToTypes.map_id_apply] at q₁ q₂
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P ⊤
t₁ t₂ : P.obj X.op
h₁ : FamilyOfElements.IsAmalgamation x t₁
h₂ : FamilyOfElements.IsAmalgamation x t₂
q₁ : P.map (𝟙 X).op t₁ = x (𝟙 X) (_ : True)
q₂ : P.map (𝟙 X).op t₂ = x (𝟙 X) (_ : True)
⊢ t₁ = t₂

tactic: rw [q₁, q₂]
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P ⊤
t₁ t₂ : P.obj X.op
h₁ : FamilyOfElements.IsAmalgamation x t₁
h₂ : FamilyOfElements.IsAmalgamation x t₂
q₁ : t₁ = x (𝟙 X) (_ : True)
q₂ : t₂ = x (𝟙 X) (_ : True)
⊢ t₁ = t₂

tactic: tauto
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P ⊤
t₁ t₂ : P.obj X.op
h₁ : FamilyOfElements.IsAmalgamation x t₁
h₂ : FamilyOfElements.IsAmalgamation x t₂
⊢ ⊤ (𝟙 X)

tactic: tauto
state_before: C : Type u₁
inst✝ : Category C
P✝ Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
P : Cᵒᵖ ⥤ Type w
x : FamilyOfElements P ⊤
t₁ t₂ : P.obj X.op
h₁ : FamilyOfElements.IsAmalgamation x t₁
h₂ : FamilyOfElements.IsAmalgamation x t₂
q₁ : P.map (𝟙 X).op t₁ = x (𝟙 X) (_ : True)
⊢ ⊤ (𝟙 X)
Theorem: MeasureTheory.setToFun_zero_left
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: by_cases hf : Integrable f μ
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1394453
G : Type ?u.1394456
𝕜 : Type ?u.1394459
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ 0 C
⊢ setToFun μ 0 hT f = 0

tactic: rw [setToFun_eq hT hf]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1394453
G : Type ?u.1394456
𝕜 : Type ?u.1394459
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ 0 C
hf : Integrable f
⊢ setToFun μ 0 hT f = 0

tactic: exact L1.setToL1_zero_left hT _
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1394453
G : Type ?u.1394456
𝕜 : Type ?u.1394459
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ 0 C
hf : Integrable f
⊢ ↑(L1.setToL1 hT) (Integrable.toL1 f hf) = 0

tactic: exact setToFun_undef hT hf
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1394453
G : Type ?u.1394456
𝕜 : Type ?u.1394459
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ 0 C
hf : ¬Integrable f
⊢ setToFun μ 0 hT f = 0
Theorem: tendsto_pow_atTop_nhds_0_of_lt_1
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: simp [_root_.pow_succ, ← hr, tendsto_const_nhds]
state_before: α : Type ?u.27357
β : Type ?u.27360
ι : Type ?u.27363
𝕜 : Type u_1
inst✝³ : LinearOrderedField 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
r : 𝕜
h₁ : 0 ≤ r
h₂ : r < 1
hr : 0 = r
⊢ Tendsto (fun n => r ^ (n + 1)) atTop (𝓝 0)

tactic: simp
state_before: α : Type ?u.27357
β : Type ?u.27360
ι : Type ?u.27363
𝕜 : Type u_1
inst✝³ : LinearOrderedField 𝕜
inst✝² : Archimedean 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
r : 𝕜
h₁ : 0 ≤ r
h₂ : r < 1
hr : 0 < r
this : Tendsto (fun n => r⁻¹ ^ n) atTop atTop
n : ℕ
⊢ ((fun r => r⁻¹) ∘ fun n => r⁻¹ ^ n) n = r ^ n
Theorem: Polynomial.taylor_X
File: Mathlib/Data/Polynomial/Taylor.lean

tactic: simp only [taylor_apply, X_comp]
state_before: R : Type u_1
inst✝ : Semiring R
r : R
f : R[X]
⊢ ↑(taylor r) X = X + ↑C r
Theorem: Ordinal.zero_opow
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: rwa [zero_opow', Ordinal.sub_eq_zero_iff_le, one_le_iff_ne_zero]
state_before: a : Ordinal
a0 : a ≠ 0
⊢ 0 ^ a = 0
Theorem: trop_sInf_image
File: Mathlib/Algebra/Tropical/BigOperators.lean

tactic: rcases s.eq_empty_or_nonempty with (rfl | h)
state_before: R : Type u_1
S : Type u_2
inst✝ : ConditionallyCompleteLinearOrder R
s : Finset S
f : S → WithTop R
⊢ trop (sInf (f '' ↑s)) = ∑ i in s, trop (f i)

tactic: rw [← inf'_eq_csInf_image _ h, inf'_eq_inf, s.trop_inf]
state_before: case inr
R : Type u_1
S : Type u_2
inst✝ : ConditionallyCompleteLinearOrder R
s : Finset S
f : S → WithTop R
h : Finset.Nonempty s
⊢ trop (sInf (f '' ↑s)) = ∑ i in s, trop (f i)

tactic: simp only [Set.image_empty, coe_empty, sum_empty, WithTop.sInf_empty, trop_top]
state_before: case inl
R : Type u_1
S : Type u_2
inst✝ : ConditionallyCompleteLinearOrder R
f : S → WithTop R
⊢ trop (sInf (f '' ↑∅)) = ∑ i in ∅, trop (f i)
Theorem: Normal.tower_top_of_normal
File: Mathlib/FieldTheory/Normal.lean

tactic: cases' h.out x with hx hhx
state_before: F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)

tactic: rw [algebraMap_eq F K E] at hhx
state_before: case intro
F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
hx : IsIntegral F x
hhx : Splits (algebraMap F E) (minpoly F x)
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)

tactic: exact
  ⟨isIntegral_of_isScalarTower hx,
    Polynomial.splits_of_splits_of_dvd (algebraMap K E)
      (Polynomial.map_ne_zero (minpoly.ne_zero hx))
      ((Polynomial.splits_map_iff (algebraMap F K) (algebraMap K E)).mpr hhx)
      (minpoly.dvd_map_of_isScalarTower F K x)⟩
state_before: case intro
F : Type u_1
K : Type u_3
inst✝⁶ : Field F
inst✝⁵ : Field K
inst✝⁴ : Algebra F K
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : Normal F E
x : E
hx : IsIntegral F x
hhx : Splits (RingHom.comp (algebraMap K E) (algebraMap F K)) (minpoly F x)
⊢ IsIntegral K x ∧ Splits (algebraMap K E) (minpoly K x)
Theorem: MeasurableSet.iUnion
File: Mathlib/MeasureTheory/MeasurableSpaceDef.lean

tactic: cases isEmpty_or_nonempty ι
state_before: α : Type u_2
β : Type ?u.3894
γ : Type ?u.3897
δ : Type ?u.3900
δ' : Type ?u.3903
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
⊢ MeasurableSet (⋃ (b : ι), f b)

tactic: simp
state_before: case inl
α : Type u_2
β : Type ?u.3894
γ : Type ?u.3897
δ : Type ?u.3900
δ' : Type ?u.3903
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
h✝ : IsEmpty ι
⊢ MeasurableSet (⋃ (b : ι), f b)

tactic: rcases exists_surjective_nat ι with ⟨e, he⟩
state_before: case inr
α : Type u_2
β : Type ?u.3894
γ : Type ?u.3897
δ : Type ?u.3900
δ' : Type ?u.3903
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
h✝ : Nonempty ι
⊢ MeasurableSet (⋃ (b : ι), f b)

tactic: rw [← iUnion_congr_of_surjective _ he (fun _ => rfl)]
state_before: case inr.intro
α : Type u_2
β : Type ?u.3894
γ : Type ?u.3897
δ : Type ?u.3900
δ' : Type ?u.3903
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
h✝ : Nonempty ι
e : ℕ → ι
he : Surjective e
⊢ MeasurableSet (⋃ (b : ι), f b)

tactic: exact m.measurableSet_iUnion _ fun _ => h _
state_before: case inr.intro
α : Type u_2
β : Type ?u.3894
γ : Type ?u.3897
δ : Type ?u.3900
δ' : Type ?u.3903
ι : Sort u_1
s t u : Set α
m : MeasurableSpace α
inst✝ : Countable ι
f : ι → Set α
h : ∀ (b : ι), MeasurableSet (f b)
h✝ : Nonempty ι
e : ℕ → ι
he : Surjective e
⊢ MeasurableSet (⋃ (x : ℕ), f (e x))
Theorem: Subfield.mem_closure_iff
File: Mathlib/FieldTheory/Subfield.lean

tactic: change x ∈ (closure s).carrier ↔ ∃ y ∈ Subring.closure s, ∃ z ∈ Subring.closure s, y / z = x
state_before: K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
s : Set K
x : K
⊢ x ∈ closure s ↔ ∃ y, y ∈ Subring.closure s ∧ ∃ z, z ∈ Subring.closure s ∧ y / z = x

tactic: simp only [closure, exists_prop, Set.mem_setOf_eq]
state_before: K : Type u
L : Type v
M : Type w
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Field M
s : Set K
x : K
⊢ x ∈ (closure s).toSubring.toSubsemiring.toSubmonoid.toSubsemigroup.carrier ↔
    ∃ y, y ∈ Subring.closure s ∧ ∃ z, z ∈ Subring.closure s ∧ y / z = x
Theorem: Substring.Valid.any
File: Std/Data/String/Lemmas.lean

tactic: simp [h.any, h.toString]
state_before: f : Char → Bool
x✝ : Substring
h✝ : Valid x✝
w✝² w✝¹ w✝ : List Char
h : ValidFor w✝² w✝¹ w✝ x✝
⊢ Substring.any x✝ f = List.any (toString x✝).data f
Theorem: WellFounded.fixF_eq_fixFC
File: Std/WF.lean

tactic: funext α r C F x a
state_before: ⊢ @fixF = @WellFounded.fixFC

tactic: rw [fixF, Acc.rec_eq_recC, fixFC]
state_before: case h.h.h.h.h.h
α : Sort u_1
r : α → α → Prop
C : α → Sort u_2
F : (x : α) → ((y : α) → r y x → C y) → C x
x : α
a : Acc r x
⊢ fixF F x a = WellFounded.fixFC F x a
Theorem: MeasureTheory.SimpleFunc.setToSimpleFunc_zero'
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: simp_rw [setToSimpleFunc]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.131782
F' : Type u_3
G : Type ?u.131788
𝕜 : Type ?u.131791
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
h_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T s = 0
f : α →ₛ E
hf : Integrable ↑f
⊢ setToSimpleFunc T f = 0

tactic: refine' sum_eq_zero fun x _ => _
state_before: α : Type u_1
E : Type u_2
F : Type ?u.131782
F' : Type u_3
G : Type ?u.131788
𝕜 : Type ?u.131791
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
h_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T s = 0
f : α →ₛ E
hf : Integrable ↑f
⊢ ∑ x in SimpleFunc.range f, ↑(T (↑f ⁻¹' {x})) x = 0

tactic: by_cases hx0 : x = 0
state_before: α : Type u_1
E : Type u_2
F : Type ?u.131782
F' : Type u_3
G : Type ?u.131788
𝕜 : Type ?u.131791
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
h_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T s = 0
f : α →ₛ E
hf : Integrable ↑f
x : E
x✝ : x ∈ SimpleFunc.range f
⊢ ↑(T (↑f ⁻¹' {x})) x = 0

tactic: rw [h_zero (f ⁻¹' ({x} : Set E)) (measurableSet_fiber _ _)
    (measure_preimage_lt_top_of_integrable f hf hx0),
  ContinuousLinearMap.zero_apply]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.131782
F' : Type u_3
G : Type ?u.131788
𝕜 : Type ?u.131791
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
h_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T s = 0
f : α →ₛ E
hf : Integrable ↑f
x : E
x✝ : x ∈ SimpleFunc.range f
hx0 : ¬x = 0
⊢ ↑(T (↑f ⁻¹' {x})) x = 0

tactic: simp [hx0]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.131782
F' : Type u_3
G : Type ?u.131788
𝕜 : Type ?u.131791
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
h_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → T s = 0
f : α →ₛ E
hf : Integrable ↑f
x : E
x✝ : x ∈ SimpleFunc.range f
hx0 : x = 0
⊢ ↑(T (↑f ⁻¹' {x})) x = 0
Theorem: CategoryTheory.Limits.MultispanIndex.ι_fstSigmaMap
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

tactic: simp [fstSigmaMap]
state_before: C : Type u
inst✝² : Category C
I : MultispanIndex C
inst✝¹ : HasCoproduct I.left
inst✝ : HasCoproduct I.right
b : I.L
⊢ Sigma.ι I.left b ≫ fstSigmaMap I = fst I b ≫ Sigma.ι I.right (fstFrom I b)
Theorem: mem_principal_ideals_iff
File: Mathlib/RingTheory/ClassGroup.lean

tactic: simp only [MonoidHom.mem_range, toPrincipalIdeal_eq_iff]
state_before: R : Type u_2
K : Type u_1
L : Type ?u.220909
inst✝⁹ : CommRing R
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : DecidableEq L
inst✝⁵ : Algebra R K
inst✝⁴ : IsFractionRing R K
inst✝³ : Algebra K L
inst✝² : FiniteDimensional K L
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
I : (FractionalIdeal R⁰ K)ˣ
⊢ I ∈ MonoidHom.range (toPrincipalIdeal R K) ↔ ∃ x, spanSingleton R⁰ x = ↑I

tactic: constructor <;> rintro ⟨x, hx⟩
state_before: R : Type u_2
K : Type u_1
L : Type ?u.220909
inst✝⁹ : CommRing R
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : DecidableEq L
inst✝⁵ : Algebra R K
inst✝⁴ : IsFractionRing R K
inst✝³ : Algebra K L
inst✝² : FiniteDimensional K L
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
I : (FractionalIdeal R⁰ K)ˣ
⊢ (∃ x, spanSingleton R⁰ ↑x = ↑I) ↔ ∃ x, spanSingleton R⁰ x = ↑I

tactic: exact ⟨x, hx⟩
state_before: case mp.intro
R : Type u_2
K : Type u_1
L : Type ?u.220909
inst✝⁹ : CommRing R
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : DecidableEq L
inst✝⁵ : Algebra R K
inst✝⁴ : IsFractionRing R K
inst✝³ : Algebra K L
inst✝² : FiniteDimensional K L
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
I : (FractionalIdeal R⁰ K)ˣ
x : Kˣ
hx : spanSingleton R⁰ ↑x = ↑I
⊢ ∃ x, spanSingleton R⁰ x = ↑I

tactic: refine ⟨Units.mk0 x ?_, hx⟩
state_before: case mpr.intro
R : Type u_2
K : Type u_1
L : Type ?u.220909
inst✝⁹ : CommRing R
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : DecidableEq L
inst✝⁵ : Algebra R K
inst✝⁴ : IsFractionRing R K
inst✝³ : Algebra K L
inst✝² : FiniteDimensional K L
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
I : (FractionalIdeal R⁰ K)ˣ
x : K
hx : spanSingleton R⁰ x = ↑I
⊢ ∃ x, spanSingleton R⁰ ↑x = ↑I

tactic: rintro rfl
state_before: case mpr.intro
R : Type u_2
K : Type u_1
L : Type ?u.220909
inst✝⁹ : CommRing R
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : DecidableEq L
inst✝⁵ : Algebra R K
inst✝⁴ : IsFractionRing R K
inst✝³ : Algebra K L
inst✝² : FiniteDimensional K L
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
I : (FractionalIdeal R⁰ K)ˣ
x : K
hx : spanSingleton R⁰ x = ↑I
⊢ x ≠ 0

tactic: simp [I.ne_zero.symm] at hx
state_before: case mpr.intro
R : Type u_2
K : Type u_1
L : Type ?u.220909
inst✝⁹ : CommRing R
inst✝⁸ : Field K
inst✝⁷ : Field L
inst✝⁶ : DecidableEq L
inst✝⁵ : Algebra R K
inst✝⁴ : IsFractionRing R K
inst✝³ : Algebra K L
inst✝² : FiniteDimensional K L
inst✝¹ : Algebra R L
inst✝ : IsScalarTower R K L
I : (FractionalIdeal R⁰ K)ˣ
hx : spanSingleton R⁰ 0 = ↑I
⊢ False
Theorem: MeasureTheory.OuterMeasure.map_iInf
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: refine' Eq.trans _ (map_comap _ _)
state_before: α : Type u_3
ι : Sort u_1
β : Type u_2
f : α → β
hf : Injective f
m : ι → OuterMeasure α
⊢ ↑(map f) (⨅ (i : ι), m i) = ↑(restrict (range f)) (⨅ (i : ι), ↑(map f) (m i))

tactic: simp only [comap_iInf, comap_map hf]
state_before: α : Type u_3
ι : Sort u_1
β : Type u_2
f : α → β
hf : Injective f
m : ι → OuterMeasure α
⊢ ↑(map f) (⨅ (i : ι), m i) = ↑(map f) (↑(comap f) (⨅ (i : ι), ↑(map f) (m i)))
Theorem: List.formPerm_eq_one_iff
File: Mathlib/GroupTheory/Perm/List.lean

tactic: cases' l with hd tl
state_before: α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
l : List α
x : α
hl : Nodup l
⊢ formPerm l = 1 ↔ length l ≤ 1

tactic: simp
state_before: case nil
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x : α
hl : Nodup []
⊢ formPerm [] = 1 ↔ length [] ≤ 1

tactic: rw [← formPerm_apply_mem_eq_self_iff _ hl hd (mem_cons_self _ _)]
state_before: case cons
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x hd : α
tl : List α
hl : Nodup (hd :: tl)
⊢ formPerm (hd :: tl) = 1 ↔ length (hd :: tl) ≤ 1

tactic: constructor
state_before: case cons
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x hd : α
tl : List α
hl : Nodup (hd :: tl)
⊢ formPerm (hd :: tl) = 1 ↔ ↑(formPerm (hd :: tl)) hd = hd

tactic: simp (config := { contextual := true })
state_before: case cons.mp
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x hd : α
tl : List α
hl : Nodup (hd :: tl)
⊢ formPerm (hd :: tl) = 1 → ↑(formPerm (hd :: tl)) hd = hd

tactic: intro h
state_before: case cons.mpr
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x hd : α
tl : List α
hl : Nodup (hd :: tl)
⊢ ↑(formPerm (hd :: tl)) hd = hd → formPerm (hd :: tl) = 1

tactic: simp only [(hd :: tl).formPerm_apply_mem_eq_self_iff hl hd (mem_cons_self hd tl),
  add_le_iff_nonpos_left, length, nonpos_iff_eq_zero, length_eq_zero] at h
state_before: case cons.mpr
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x hd : α
tl : List α
hl : Nodup (hd :: tl)
h : ↑(formPerm (hd :: tl)) hd = hd
⊢ formPerm (hd :: tl) = 1

tactic: simp [h]
state_before: case cons.mpr
α : Type u_1
β : Type ?u.817926
inst✝ : DecidableEq α
x hd : α
tl : List α
hl : Nodup (hd :: tl)
h : tl = []
⊢ formPerm (hd :: tl) = 1
Theorem: not_summable_iff_tendsto_nat_atTop_of_nonneg
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: lift f to ℕ → ℝ≥0 using hf
state_before: α : Type ?u.343727
β : Type ?u.343730
γ : Type ?u.343733
f : ℕ → ℝ
hf : ∀ (n : ℕ), 0 ≤ f n
⊢ ¬Summable f ↔ Tendsto (fun n => ∑ i in Finset.range n, f i) atTop atTop

tactic: exact_mod_cast NNReal.not_summable_iff_tendsto_nat_atTop
state_before: case intro
α : Type ?u.343727
β : Type ?u.343730
γ : Type ?u.343733
f : ℕ → ℝ≥0
⊢ (¬Summable fun i => ↑(f i)) ↔ Tendsto (fun n => ∑ i in Finset.range n, (fun i => ↑(f i)) i) atTop atTop
Theorem: lowerSemicontinuousWithinAt_ciSup
File: Mathlib/Topology/Semicontinuous.lean

tactic: cases isEmpty_or_nonempty ι
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.113012
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Sort u_3
δ : Type ?u.113041
δ' : Type u_2
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ'
bdd : ∀ᶠ (y : α) in 𝓝[s] x, BddAbove (range fun i => f i y)
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) s x
⊢ LowerSemicontinuousWithinAt (fun x' => ⨆ (i : ι), f i x') s x

tactic: simpa only [iSup_of_empty'] using lowerSemicontinuousWithinAt_const
state_before: case inl
α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.113012
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Sort u_3
δ : Type ?u.113041
δ' : Type u_2
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ'
bdd : ∀ᶠ (y : α) in 𝓝[s] x, BddAbove (range fun i => f i y)
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) s x
h✝ : IsEmpty ι
⊢ LowerSemicontinuousWithinAt (fun x' => ⨆ (i : ι), f i x') s x

tactic: intro y hy
state_before: case inr
α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.113012
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Sort u_3
δ : Type ?u.113041
δ' : Type u_2
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ'
bdd : ∀ᶠ (y : α) in 𝓝[s] x, BddAbove (range fun i => f i y)
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) s x
h✝ : Nonempty ι
⊢ LowerSemicontinuousWithinAt (fun x' => ⨆ (i : ι), f i x') s x

tactic: rcases exists_lt_of_lt_ciSup hy with ⟨i, hi⟩
state_before: case inr
α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.113012
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y✝ z : β
ι : Sort u_3
δ : Type ?u.113041
δ' : Type u_2
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ'
bdd : ∀ᶠ (y : α) in 𝓝[s] x, BddAbove (range fun i => f i y)
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) s x
h✝ : Nonempty ι
y : δ'
hy : y < (fun x' => ⨆ (i : ι), f i x') x
⊢ ∀ᶠ (x' : α) in 𝓝[s] x, y < (fun x' => ⨆ (i : ι), f i x') x'

tactic: filter_upwards [h i y hi, bdd]with y hy hy' using hy.trans_le (le_ciSup hy' i)
state_before: case inr.intro
α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.113012
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y✝ z : β
ι : Sort u_3
δ : Type ?u.113041
δ' : Type u_2
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ'
bdd : ∀ᶠ (y : α) in 𝓝[s] x, BddAbove (range fun i => f i y)
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) s x
h✝ : Nonempty ι
y : δ'
hy : y < (fun x' => ⨆ (i : ι), f i x') x
i : ι
hi : y < f i x
⊢ ∀ᶠ (x' : α) in 𝓝[s] x, y < (fun x' => ⨆ (i : ι), f i x') x'
Theorem: Fin.card_fintypeIcc
File: Mathlib/Data/Fin/Interval.lean

tactic: rw [← card_Icc, Fintype.card_ofFinset]
state_before: n : ℕ
a b : Fin n
⊢ Fintype.card ↑(Set.Icc a b) = ↑b + 1 - ↑a
Theorem: LocalEquiv.trans_refl
File: Mathlib/Logic/Equiv/LocalEquiv.lean

tactic: simp [trans_source]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.47438
δ : Type ?u.47441
e : LocalEquiv α β
e' : LocalEquiv β γ
⊢ (LocalEquiv.trans e (LocalEquiv.refl β)).source = e.source