tasksource/leandojo huggingface dataset:
Theorem: HasSum.hasSum_compl_iff
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: refine' ⟨fun h => hf.add_compl h, fun h => _⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.424010
δ : Type ?u.424013
inst✝² : AddCommGroup α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
s : Set β
hf : HasSum (f ∘ Subtype.val) a₁
⊢ HasSum (f ∘ Subtype.val) a₂ ↔ HasSum f (a₁ + a₂)

tactic: rw [hasSum_subtype_iff_indicator] at hf⊢
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.424010
δ : Type ?u.424013
inst✝² : AddCommGroup α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
s : Set β
hf : HasSum (f ∘ Subtype.val) a₁
h : HasSum f (a₁ + a₂)
⊢ HasSum (f ∘ Subtype.val) a₂

tactic: rw [Set.indicator_compl]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.424010
δ : Type ?u.424013
inst✝² : AddCommGroup α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
s : Set β
hf : HasSum (Set.indicator s f) a₁
h : HasSum f (a₁ + a₂)
⊢ HasSum (Set.indicator (sᶜ) f) a₂

tactic: simpa only [add_sub_cancel'] using h.sub hf
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.424010
δ : Type ?u.424013
inst✝² : AddCommGroup α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
s : Set β
hf : HasSum (Set.indicator s f) a₁
h : HasSum f (a₁ + a₂)
⊢ HasSum (f - Set.indicator s f) a₂
Theorem: Filter.Tendsto.neg_mul_atBot
File: Mathlib/Topology/Algebra/Order/Field.lean

tactic: simpa only [mul_comm] using hg.atBot_mul_neg hC hf
state_before: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
C : 𝕜
hC : C < 0
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atBot
⊢ Tendsto (fun x => f x * g x) l atTop
Theorem: EMetric.tendstoUniformlyOn_iff
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: refine' ⟨fun H ε hε => H _ (edist_mem_uniformity hε), fun H u hu => _⟩
state_before: α : Type u
β : Type v
X : Type ?u.30728
inst✝ : PseudoEMetricSpace α
ι : Type u_1
F : ι → β → α
f : β → α
p : Filter ι
s : Set β
⊢ TendstoUniformlyOn F f p s ↔ ∀ (ε : ℝ≥0∞), ε > 0 → ∀ᶠ (n : ι) in p, ∀ (x : β), x ∈ s → edist (f x) (F n x) < ε

tactic: rcases mem_uniformity_edist.1 hu with ⟨ε, εpos, hε⟩
state_before: α : Type u
β : Type v
X : Type ?u.30728
inst✝ : PseudoEMetricSpace α
ι : Type u_1
F : ι → β → α
f : β → α
p : Filter ι
s : Set β
H : ∀ (ε : ℝ≥0∞), ε > 0 → ∀ᶠ (n : ι) in p, ∀ (x : β), x ∈ s → edist (f x) (F n x) < ε
u : Set (α × α)
hu : u ∈ 𝓤 α
⊢ ∀ᶠ (n : ι) in p, ∀ (x : β), x ∈ s → (f x, F n x) ∈ u

tactic: exact (H ε εpos).mono fun n hs x hx => hε (hs x hx)
state_before: case intro.intro
α : Type u
β : Type v
X : Type ?u.30728
inst✝ : PseudoEMetricSpace α
ι : Type u_1
F : ι → β → α
f : β → α
p : Filter ι
s : Set β
H : ∀ (ε : ℝ≥0∞), ε > 0 → ∀ᶠ (n : ι) in p, ∀ (x : β), x ∈ s → edist (f x) (F n x) < ε
u : Set (α × α)
hu : u ∈ 𝓤 α
ε : ℝ≥0∞
εpos : ε > 0
hε : ∀ {a b : α}, edist a b < ε → (a, b) ∈ u
⊢ ∀ᶠ (n : ι) in p, ∀ (x : β), x ∈ s → (f x, F n x) ∈ u
Theorem: Int.ceil_one
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← cast_one, ceil_intCast]
state_before: F : Type ?u.221196
α : Type u_1
β : Type ?u.221202
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
⊢ ⌈1⌉ = 1
Theorem: complementedLattice_iff_isAtomistic
File: Mathlib/Order/CompactlyGenerated.lean

tactic: constructor <;> intros
state_before: ι : Sort ?u.132411
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : IsModularLattice α
inst✝ : IsCompactlyGenerated α
⊢ ComplementedLattice α ↔ IsAtomistic α

tactic: exact isAtomistic_of_complementedLattice
state_before: case mp
ι : Sort ?u.132411
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : IsModularLattice α
inst✝ : IsCompactlyGenerated α
a✝ : ComplementedLattice α
⊢ IsAtomistic α

tactic: exact complementedLattice_of_isAtomistic
state_before: case mpr
ι : Sort ?u.132411
α : Type u_1
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : IsModularLattice α
inst✝ : IsCompactlyGenerated α
a✝ : IsAtomistic α
⊢ ComplementedLattice α
Theorem: OrderIso.mulLeft_symm
File: Mathlib/Algebra/Order/Group/OrderIso.lean

tactic: ext x
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a : α
⊢ symm (mulLeft a) = mulLeft a⁻¹

tactic: rfl
state_before: case h.h
α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a x : α
⊢ ↑(symm (mulLeft a)) x = ↑(mulLeft a⁻¹) x
Theorem: List.nodup_iff_get?_ne_get?
File: Mathlib/Data/List/Nodup.lean

tactic: rw [Nodup, pairwise_iff_get]
state_before: α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ Nodup l ↔ ∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j

tactic: constructor
state_before: α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ (∀ (i j : Fin (length l)), i < j → get l i ≠ get l j) ↔ ∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j

tactic: . intro h i j hij hj
  rw [get?_eq_get (lt_trans hij hj), get?_eq_get hj, Ne.def, Option.some_inj]
  exact h _ _ hij
state_before: case mp
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ (∀ (i j : Fin (length l)), i < j → get l i ≠ get l j) → ∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j

case mpr
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ (∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j) → ∀ (i j : Fin (length l)), i < j → get l i ≠ get l j

tactic: . intro h i j hij
  rw [Ne.def, ← Option.some_inj, ← get?_eq_get, ← get?_eq_get]
  exact h i j hij j.2
state_before: case mpr
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ (∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j) → ∀ (i j : Fin (length l)), i < j → get l i ≠ get l j

tactic: intro h i j hij hj
state_before: case mp
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ (∀ (i j : Fin (length l)), i < j → get l i ≠ get l j) → ∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j

tactic: rw [get?_eq_get (lt_trans hij hj), get?_eq_get hj, Ne.def, Option.some_inj]
state_before: case mp
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
h : ∀ (i j : Fin (length l)), i < j → get l i ≠ get l j
i j : ℕ
hij : i < j
hj : j < length l
⊢ get? l i ≠ get? l j

tactic: exact h _ _ hij
state_before: case mp
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
h : ∀ (i j : Fin (length l)), i < j → get l i ≠ get l j
i j : ℕ
hij : i < j
hj : j < length l
⊢ ¬get l { val := i, isLt := (_ : i < length l) } = get l { val := j, isLt := hj }

tactic: intro h i j hij
state_before: case mpr
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ (∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j) → ∀ (i j : Fin (length l)), i < j → get l i ≠ get l j

tactic: rw [Ne.def, ← Option.some_inj, ← get?_eq_get, ← get?_eq_get]
state_before: case mpr
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
h : ∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j
i j : Fin (length l)
hij : i < j
⊢ get l i ≠ get l j

tactic: exact h i j hij j.2
state_before: case mpr
α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
h : ∀ (i j : ℕ), i < j → j < length l → get? l i ≠ get? l j
i j : Fin (length l)
hij : i < j
⊢ ¬get? l ↑i = get? l ↑j
Theorem: hasSum_geometric_two'
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: convert HasSum.mul_left (a / 2)
    (hasSum_geometric_of_lt_1 (le_of_lt one_half_pos) one_half_lt_one) using 1
state_before: α : Type ?u.240216
β : Type ?u.240219
ι : Type ?u.240222
a : ℝ
⊢ HasSum (fun n => a / 2 / 2 ^ n) a

tactic: funext n
state_before: case h.e'_5
α : Type ?u.240216
β : Type ?u.240219
ι : Type ?u.240222
a : ℝ
⊢ (fun n => a / 2 / 2 ^ n) = fun i => a / 2 * (1 / 2) ^ i

tactic: simp
state_before: case h.e'_5.h
α : Type ?u.240216
β : Type ?u.240219
ι : Type ?u.240222
a : ℝ
n : ℕ
⊢ a / 2 / 2 ^ n = a / 2 * (1 / 2) ^ n

tactic: rfl
state_before: case h.e'_5.h
α : Type ?u.240216
β : Type ?u.240219
ι : Type ?u.240222
a : ℝ
n : ℕ
⊢ a / 2 / 2 ^ n = a / 2 * (2 ^ n)⁻¹

tactic: norm_num
state_before: case h.e'_6
α : Type ?u.240216
β : Type ?u.240219
ι : Type ?u.240222
a : ℝ
⊢ a = a / 2 * (1 - 1 / 2)⁻¹
Theorem: isOpen_analyticAt
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: rw [isOpen_iff_mem_nhds]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.2366921
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r : ℝ≥0∞
⊢ IsOpen {x | AnalyticAt 𝕜 f x}

tactic: rintro x ⟨p, r, hr⟩
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.2366921
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p : FormalMultilinearSeries 𝕜 E F
x y : E
r : ℝ≥0∞
⊢ ∀ (a : E), a ∈ {x | AnalyticAt 𝕜 f x} → {x | AnalyticAt 𝕜 f x} ∈ 𝓝 a

tactic: exact mem_of_superset (EMetric.ball_mem_nhds _ hr.r_pos) fun y hy => hr.analyticAt_of_mem hy
state_before: case intro.intro
𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.2366921
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace F
f : E → F
p✝ : FormalMultilinearSeries 𝕜 E F
x✝ y : E
r✝ : ℝ≥0∞
x : E
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
hr : HasFPowerSeriesOnBall f p x r
⊢ {x | AnalyticAt 𝕜 f x} ∈ 𝓝 x
Theorem: ae_restrict_iff_subtype
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [← map_comap_subtype_coe hs, (MeasurableEmbedding.subtype_coe hs).ae_map_iff]
state_before: α : Type u_1
β : Type ?u.1534048
γ : Type ?u.1534051
δ : Type ?u.1534054
ι : Type ?u.1534057
R : Type ?u.1534060
R' : Type ?u.1534063
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
s : Set α
hs : MeasurableSet s
p : α → Prop
⊢ (∀ᵐ (x : α) ∂Measure.restrict μ s, p x) ↔ ∀ᵐ (x : ↑s) ∂Measure.comap Subtype.val μ, p ↑x
Theorem: Ideal.mem_quotient_iff_mem_sup
File: Mathlib/RingTheory/Ideal/QuotientOperations.lean

tactic: rw [← mem_comap, comap_map_of_surjective (Quotient.mk I) Quotient.mk_surjective, ←
  RingHom.ker_eq_comap_bot, mk_ker]
state_before: R : Type u
S : Type v
F : Type w
inst✝¹ : CommRing R
inst✝ : CommRing S
I J : Ideal R
x : R
⊢ ↑(Quotient.mk I) x ∈ map (Quotient.mk I) J ↔ x ∈ J ⊔ I
Theorem: WittVector.v2_coeff
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: fin_cases i <;> simp
state_before: p : ℕ
R : Type ?u.284123
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
p' : ℕ
R' : Type u_1
x y : WittVector p' R'
i : Fin 2
⊢ (Matrix.vecCons x ![y] i).coeff = Matrix.vecCons x.coeff ![y.coeff] i
Theorem: Function.IsPeriodicPt.sub
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: cases' le_total n m with h h
state_before: α : Type u_1
β : Type ?u.1528
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
⊢ IsPeriodicPt f (m - n) x

tactic: refine' left_of_add _ hn
state_before: case inl
α : Type u_1
β : Type ?u.1528
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
h : n ≤ m
⊢ IsPeriodicPt f (m - n) x

tactic: rwa [tsub_add_cancel_of_le h]
state_before: case inl
α : Type u_1
β : Type ?u.1528
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
h : n ≤ m
⊢ IsPeriodicPt f (m - n + n) x

tactic: rw [tsub_eq_zero_iff_le.mpr h]
state_before: case inr
α : Type u_1
β : Type ?u.1528
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
h : m ≤ n
⊢ IsPeriodicPt f (m - n) x

tactic: apply isPeriodicPt_zero
state_before: case inr
α : Type u_1
β : Type ?u.1528
f fa : α → α
fb : β → β
x y : α
m n : ℕ
hm : IsPeriodicPt f m x
hn : IsPeriodicPt f n x
h : m ≤ n
⊢ IsPeriodicPt f 0 x
Theorem: UniqueFactorizationMonoid.normalizedFactors_irreducible
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: obtain ⟨p, a_assoc, hp⟩ :=
  prime_factors_irreducible ha ⟨prime_of_normalized_factor, normalizedFactors_prod ha.ne_zero⟩
state_before: α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : DecidableEq α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a : α
ha : Irreducible a
⊢ normalizedFactors a = {↑normalize a}

tactic: have p_mem : p ∈ normalizedFactors a := by
  rw [hp]
  exact Multiset.mem_singleton_self _
state_before: case intro.intro
α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : DecidableEq α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a : α
ha : Irreducible a
p : α
a_assoc : a ~ᵤ p
hp : normalizedFactors a = {p}
⊢ normalizedFactors a = {↑normalize a}

tactic: convert hp
state_before: case intro.intro
α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : DecidableEq α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a : α
ha : Irreducible a
p : α
a_assoc : a ~ᵤ p
hp : normalizedFactors a = {p}
p_mem : p ∈ normalizedFactors a
⊢ normalizedFactors a = {↑normalize a}

tactic: rwa [← normalize_normalized_factor p p_mem, normalize_eq_normalize_iff, dvd_dvd_iff_associated]
state_before: case h.e'_3.h.e'_4
α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : DecidableEq α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a : α
ha : Irreducible a
p : α
a_assoc : a ~ᵤ p
hp : normalizedFactors a = {p}
p_mem : p ∈ normalizedFactors a
⊢ ↑normalize a = p

tactic: rw [hp]
state_before: α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : DecidableEq α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a : α
ha : Irreducible a
p : α
a_assoc : a ~ᵤ p
hp : normalizedFactors a = {p}
⊢ p ∈ normalizedFactors a

tactic: exact Multiset.mem_singleton_self _
state_before: α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : DecidableEq α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a : α
ha : Irreducible a
p : α
a_assoc : a ~ᵤ p
hp : normalizedFactors a = {p}
⊢ p ∈ {p}
Theorem: Int.fract_natCast
File: Mathlib/Algebra/Order/Floor.lean

tactic: simp [fract]
state_before: F : Type ?u.160206
α : Type u_1
β : Type ?u.160212
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
n : ℕ
⊢ fract ↑n = 0
Theorem: CharTwo.bit1_apply_eq_one
File: Mathlib/Algebra/CharP/Two.lean

tactic: simp
state_before: R : Type u_1
ι : Type ?u.5425
inst✝¹ : Semiring R
inst✝ : CharP R 2
x : R
⊢ bit1 x = 1
Theorem: Option.join_join
File: Std/Data/Option/Lemmas.lean

tactic: cases x <;> simp
state_before: α : Type u_1
x : Option (Option (Option α))
⊢ join (join x) = join (Option.map join x)
Theorem: Zspan.repr_fract_apply
File: Mathlib/Algebra/Module/Zlattice.lean

tactic: rw [fract, LinearEquiv.map_sub, Finsupp.coe_sub, Pi.sub_apply, repr_floor_apply, Int.fract]
state_before: E : Type u_3
ι : Type u_2
K : Type u_1
inst✝⁴ : NormedLinearOrderedField K
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace K E
b : Basis ι K E
inst✝¹ : FloorRing K
inst✝ : Fintype ι
m : E
i : ι
⊢ ↑(↑b.repr (fract b m)) i = Int.fract (↑(↑b.repr m) i)
Theorem: PiLp.nnnorm_eq_of_L2
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: push_cast
state_before: p : ℝ≥0∞
𝕜 : Type ?u.283751
𝕜' : Type ?u.283754
ι : Type u_2
α : ι → Type ?u.283762
β✝ : ι → Type ?u.283767
inst✝² : Fintype ι
inst✝¹ : Fact (1 ≤ p)
β : ι → Type u_1
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x : PiLp 2 β
⊢ ↑‖x‖₊ = ↑(↑NNReal.sqrt (∑ i : ι, ‖x i‖₊ ^ 2))

tactic: exact norm_eq_of_L2 x
state_before: p : ℝ≥0∞
𝕜 : Type ?u.283751
𝕜' : Type ?u.283754
ι : Type u_2
α : ι → Type ?u.283762
β✝ : ι → Type ?u.283767
inst✝² : Fintype ι
inst✝¹ : Fact (1 ≤ p)
β : ι → Type u_1
inst✝ : (i : ι) → SeminormedAddCommGroup (β i)
x : PiLp 2 β
⊢ ‖x‖ = Real.sqrt (∑ x_1 : ι, ‖x x_1‖ ^ 2)
Theorem: Ordinal.derivFamily_fp
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: induction' o using limitRecOn with o _  o l IH
state_before: ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
o : Ordinal
⊢ f i (derivFamily f o) = derivFamily f o

tactic: rw [derivFamily_zero]
state_before: case H₁
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
⊢ f i (derivFamily f 0) = derivFamily f 0

tactic: exact nfpFamily_fp H 0
state_before: case H₁
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
⊢ f i (nfpFamily f 0) = nfpFamily f 0

tactic: rw [derivFamily_succ]
state_before: case H₂
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
o : Ordinal
a✝ : f i (derivFamily f o) = derivFamily f o
⊢ f i (derivFamily f (succ o)) = derivFamily f (succ o)

tactic: exact nfpFamily_fp H _
state_before: case H₂
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
o : Ordinal
a✝ : f i (derivFamily f o) = derivFamily f o
⊢ f i (nfpFamily f (succ (derivFamily f o))) = nfpFamily f (succ (derivFamily f o))

tactic: rw [derivFamily_limit _ l,
  IsNormal.bsup.{max u v, u, max u v} H (fun a _ => derivFamily f a) l.1]
state_before: case H₃
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
o : Ordinal
l : IsLimit o
IH : ∀ (o' : Ordinal), o' < o → f i (derivFamily f o') = derivFamily f o'
⊢ f i (derivFamily f o) = derivFamily f o

tactic: refine' eq_of_forall_ge_iff fun c => _
state_before: case H₃
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
o : Ordinal
l : IsLimit o
IH : ∀ (o' : Ordinal), o' < o → f i (derivFamily f o') = derivFamily f o'
⊢ (bsup o fun a h => f i (derivFamily f a)) = bsup o fun a x => derivFamily f a

tactic: simp (config := { contextual := true }) only [bsup_le_iff, IH]
state_before: case H₃
ι : Type u
f : ι → Ordinal → Ordinal
i : ι
H : IsNormal (f i)
o : Ordinal
l : IsLimit o
IH : ∀ (o' : Ordinal), o' < o → f i (derivFamily f o') = derivFamily f o'
c : Ordinal
⊢ (bsup o fun a h => f i (derivFamily f a)) ≤ c ↔ (bsup o fun a x => derivFamily f a) ≤ c
Theorem: Sigma.lt_def
File: Mathlib/Data/Sigma/Order.lean

tactic: constructor
state_before: ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ a < b ↔ ∃ h, h ▸ a.snd < b.snd

tactic: rintro ⟨i, a, b, h⟩
state_before: case mp
ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ a < b → ∃ h, h ▸ a.snd < b.snd

tactic: exact ⟨rfl, h⟩
state_before: case mp.fiber
ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
i : ι
a b : α i
h : a < b
⊢ ∃ h, h ▸ { fst := i, snd := a }.snd < { fst := i, snd := b }.snd

tactic: obtain ⟨i, a⟩ := a
state_before: case mpr
ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ (∃ h, h ▸ a.snd < b.snd) → a < b

tactic: obtain ⟨j, b⟩ := b
state_before: case mpr.mk
ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
b : (i : ι) × α i
i : ι
a : α i
⊢ (∃ h, h ▸ { fst := i, snd := a }.snd < b.snd) → { fst := i, snd := a } < b

tactic: rintro ⟨rfl : i = j, h⟩
state_before: case mpr.mk.mk
ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
i : ι
a : α i
j : ι
b : α j
⊢ (∃ h, h ▸ { fst := i, snd := a }.snd < { fst := j, snd := b }.snd) → { fst := i, snd := a } < { fst := j, snd := b }

tactic: exact lt.fiber _ _ _ h
state_before: case mpr.mk.mk.intro
ι : Type u_2
α : ι → Type u_1
inst✝ : (i : ι) → LT (α i)
i : ι
a b : α i
h : (_ : i = i) ▸ { fst := i, snd := a }.snd < { fst := i, snd := b }.snd
⊢ { fst := i, snd := a } < { fst := i, snd := b }
Theorem: CategoryTheory.rightDistributor_assoc
File: Mathlib/CategoryTheory/Monoidal/Preadditive.lean

tactic: ext
state_before: C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
inst✝³ : MonoidalCategory C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
X Y : C
f : J → C
⊢ ((rightDistributor X f ⊗ asIso (𝟙 Y)) ≪≫ rightDistributor Y fun j => f j ⊗ X) =
    α_ (⨁ f) X Y ≪≫ rightDistributor (X ⊗ Y) f ≪≫ biproduct.mapIso fun j => (α_ (f j) X Y).symm

tactic: simp only [Category.comp_id, Category.assoc, eqToHom_refl, Iso.symm_hom, Iso.trans_hom,
  asIso_hom, comp_zero, comp_dite, Preadditive.sum_comp, Preadditive.comp_sum, sum_tensor,
  comp_tensor_id, tensorIso_hom, rightDistributor_hom, biproduct.mapIso_hom, biproduct.ι_map,
  biproduct.ι_π, Finset.sum_dite_irrel, Finset.sum_dite_eq', Finset.sum_const_zero,
  Finset.mem_univ, if_true]
state_before: case w.w
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
inst✝³ : MonoidalCategory C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
X Y : C
f : J → C
j✝ : J
⊢ ((rightDistributor X f ⊗ asIso (𝟙 Y)) ≪≫ rightDistributor Y fun j => f j ⊗ X).hom ≫
      biproduct.π (fun j => (f j ⊗ X) ⊗ Y) j✝ =
    (α_ (⨁ f) X Y ≪≫ rightDistributor (X ⊗ Y) f ≪≫ biproduct.mapIso fun j => (α_ (f j) X Y).symm).hom ≫
      biproduct.π (fun j => (f j ⊗ X) ⊗ Y) j✝

tactic: simp only [← comp_tensor_id, biproduct.ι_π, dite_tensor, comp_dite]
state_before: case w.w
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
inst✝³ : MonoidalCategory C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
X Y : C
f : J → C
j✝ : J
⊢ ∑ x : J,
      ((biproduct.π f x ⊗ 𝟙 X) ⊗ 𝟙 Y) ≫
        (biproduct.ι (fun j => f j ⊗ X) x ⊗ 𝟙 Y) ≫ (biproduct.π (fun j => f j ⊗ X) j✝ ⊗ 𝟙 Y) =
    (α_ (⨁ f) X Y).hom ≫ (biproduct.π f j✝ ⊗ 𝟙 (X ⊗ Y)) ≫ (α_ (f j✝) X Y).inv

tactic: simp only [Category.comp_id, comp_tensor_id, eqToHom_refl, tensor_id, comp_zero,
  MonoidalPreadditive.zero_tensor, if_true, dif_ctx_congr, Finset.mem_univ, Finset.sum_congr,
  Finset.sum_dite_eq']
state_before: case w.w
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
inst✝³ : MonoidalCategory C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
X Y : C
f : J → C
j✝ : J
⊢ (∑ x : J,
      if h : x = j✝ then (biproduct.π f x ⊗ 𝟙 X) ≫ eqToHom (_ : f x ⊗ X = f j✝ ⊗ X) ⊗ 𝟙 Y
      else (biproduct.π f x ⊗ 𝟙 X) ≫ 0 ⊗ 𝟙 Y) =
    (α_ (⨁ f) X Y).hom ≫ (biproduct.π f j✝ ⊗ 𝟙 (X ⊗ Y)) ≫ (α_ (f j✝) X Y).inv

tactic: simp only [← tensor_id, associator_inv_naturality, Iso.hom_inv_id_assoc]
state_before: case w.w
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
inst✝³ : MonoidalCategory C
inst✝² : MonoidalPreadditive C
inst✝¹ : HasFiniteBiproducts C
J : Type
inst✝ : Fintype J
X Y : C
f : J → C
j✝ : J
⊢ (biproduct.π f j✝ ⊗ 𝟙 X) ⊗ 𝟙 Y = (α_ (⨁ f) X Y).hom ≫ (biproduct.π f j✝ ⊗ 𝟙 (X ⊗ Y)) ≫ (α_ (f j✝) X Y).inv
Theorem: Seminorm.ball_smul
File: Mathlib/Analysis/Seminorm.lean

tactic: ext
state_before: R : Type ?u.840053
R' : Type ?u.840056
𝕜 : Type u_1
𝕜₂ : Type ?u.840062
𝕜₃ : Type ?u.840065
𝕝 : Type ?u.840068
E : Type u_2
E₂ : Type ?u.840074
E₃ : Type ?u.840077
F : Type ?u.840080
G : Type ?u.840083
ι : Type ?u.840086
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x✝ y : E
r✝ : ℝ
p : Seminorm 𝕜 E
c : ℝ≥0
hc : 0 < c
r : ℝ
x : E
⊢ ball (c • p) x r = ball p x (r / ↑c)

tactic: rw [mem_ball, mem_ball, smul_apply, NNReal.smul_def, smul_eq_mul, mul_comm,
  lt_div_iff (NNReal.coe_pos.mpr hc)]
state_before: case h
R : Type ?u.840053
R' : Type ?u.840056
𝕜 : Type u_1
𝕜₂ : Type ?u.840062
𝕜₃ : Type ?u.840065
𝕝 : Type ?u.840068
E : Type u_2
E₂ : Type ?u.840074
E₃ : Type ?u.840077
F : Type ?u.840080
G : Type ?u.840083
ι : Type ?u.840086
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x✝¹ y : E
r✝ : ℝ
p : Seminorm 𝕜 E
c : ℝ≥0
hc : 0 < c
r : ℝ
x x✝ : E
⊢ x✝ ∈ ball (c • p) x r ↔ x✝ ∈ ball p x (r / ↑c)
Theorem: CharP.ringChar_ne_one
File: Mathlib/Algebra/CharP/Basic.lean

tactic: intro h
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
⊢ ringChar R ≠ 1

tactic: apply zero_ne_one' R
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
h : ringChar R = 1
⊢ False

tactic: symm
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
h : ringChar R = 1
⊢ 0 = 1

tactic: rw [← Nat.cast_one, ringChar.spec, h]
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : Nontrivial R
h : ringChar R = 1
⊢ 1 = 0