tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Limits.biproduct.ι_matrix
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: ext
state_before: J : Type
inst✝⁴ : Fintype J
K : Type
inst✝³ : Fintype K
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : (j : J) → (k : K) → f j ⟶ g k
j : J
⊢ ι f j ≫ matrix m = lift fun k => m j k

tactic: simp [biproduct.matrix]
state_before: case w
J : Type
inst✝⁴ : Fintype J
K : Type
inst✝³ : Fintype K
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : (j : J) → (k : K) → f j ⟶ g k
j : J
j✝ : K
⊢ (ι f j ≫ matrix m) ≫ π (fun k => g k) j✝ = (lift fun k => m j k) ≫ π (fun k => g k) j✝
Theorem: IsCompact.uniformContinuousOn_of_continuous
File: Mathlib/Topology/UniformSpace/Compact.lean

tactic: rw [uniformContinuousOn_iff_restrict]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.42243
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
⊢ UniformContinuousOn f s

tactic: rw [isCompact_iff_compactSpace] at hs
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.42243
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
⊢ UniformContinuous (restrict s f)

tactic: rw [continuousOn_iff_continuous_restrict] at hf
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.42243
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : CompactSpace ↑s
hf : ContinuousOn f s
⊢ UniformContinuous (restrict s f)

tactic: exact CompactSpace.uniformContinuous_of_continuous hf
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.42243
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : CompactSpace ↑s
hf : Continuous (restrict s f)
⊢ UniformContinuous (restrict s f)
Theorem: Module.End.eigenspace_zero
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: simp [eigenspace]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
⊢ eigenspace f 0 = LinearMap.ker f
Theorem: Cardinal.mk_ordinal_out
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rw [Ordinal.type_lt]
state_before: α : Type ?u.219951
β : Type ?u.219954
γ : Type ?u.219957
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
⊢ card (type (?m.220055 o)) = card o
Theorem: Bool.or_not_self
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ (x : Bool), (x || !x) = true
Theorem: Finsupp.mem_frange
File: Mathlib/Data/Finsupp/Basic.lean

tactic: rw [frange, @Finset.mem_image _ _ (Classical.decEq _) _ f.support]
state_before: α : Type u_1
β : Type ?u.481748
γ : Type ?u.481751
ι : Type ?u.481754
M : Type u_2
M' : Type ?u.481760
N : Type ?u.481763
P : Type ?u.481766
G : Type ?u.481769
H : Type ?u.481772
R : Type ?u.481775
S : Type ?u.481778
inst✝ : Zero M
f : α →₀ M
y : M
⊢ y ∈ frange f ↔ y ≠ 0 ∧ ∃ x, ↑f x = y

tactic: exact ⟨fun ⟨x, hx1, hx2⟩ => ⟨hx2 ▸ mem_support_iff.1 hx1, x, hx2⟩, fun ⟨hy, x, hx⟩ =>
  ⟨x, mem_support_iff.2 (hx.symm ▸ hy), hx⟩⟩
state_before: α : Type u_1
β : Type ?u.481748
γ : Type ?u.481751
ι : Type ?u.481754
M : Type u_2
M' : Type ?u.481760
N : Type ?u.481763
P : Type ?u.481766
G : Type ?u.481769
H : Type ?u.481772
R : Type ?u.481775
S : Type ?u.481778
inst✝ : Zero M
f : α →₀ M
y : M
⊢ (∃ a, a ∈ f.support ∧ ↑f a = y) ↔ y ≠ 0 ∧ ∃ x, ↑f x = y
Theorem: QuadraticForm.associated_eq_self_apply
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: rw [associated_apply, map_add_self, ← three_add_one_eq_four, ← two_add_one_eq_three,
  add_mul, add_mul, one_mul, add_sub_cancel, add_sub_cancel, invOf_mul_self_assoc]
state_before: S : Type u_3
R : Type u_1
R₁ : Type ?u.429167
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : CommRing R₁
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : Module R₁ M
inst✝² : CommSemiring S
inst✝¹ : Algebra S R
inst✝ : Invertible 2
B₁ : BilinForm R M
Q : QuadraticForm R M
x : M
⊢ bilin (↑(associatedHom S) Q) x x = ↑Q x
Theorem: List.forall₂_comp_perm_eq_perm_comp_forall₂
File: Mathlib/Data/List/Perm.lean

tactic: funext l₁ l₃
state_before: α : Type uu
β : Type vv
l₁ l₂ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
⊢ Forall₂ r ∘r Perm = Perm ∘r Forall₂ r

tactic: apply propext
state_before: case h.h
α : Type uu
β : Type vv
l₁✝ l₂ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ : List β
⊢ (Forall₂ r ∘r Perm) l₁ l₃ = (Perm ∘r Forall₂ r) l₁ l₃

tactic: constructor
state_before: case h.h.a
α : Type uu
β : Type vv
l₁✝ l₂ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ : List β
⊢ (Forall₂ r ∘r Perm) l₁ l₃ ↔ (Perm ∘r Forall₂ r) l₁ l₃

tactic: intro h
state_before: case h.h.a.mp
α : Type uu
β : Type vv
l₁✝ l₂ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ : List β
⊢ (Forall₂ r ∘r Perm) l₁ l₃ → (Perm ∘r Forall₂ r) l₁ l₃

tactic: rcases h with ⟨l₂, h₁₂, h₂₃⟩
state_before: case h.h.a.mp
α : Type uu
β : Type vv
l₁✝ l₂ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ : List β
h : (Forall₂ r ∘r Perm) l₁ l₃
⊢ (Perm ∘r Forall₂ r) l₁ l₃

tactic: have : Forall₂ (flip r) l₂ l₁ := h₁₂.flip
state_before: case h.h.a.mp.intro.intro
α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ l₂ : List β
h₁₂ : Forall₂ r l₁ l₂
h₂₃ : l₂ ~ l₃
⊢ (Perm ∘r Forall₂ r) l₁ l₃

tactic: rcases perm_comp_forall₂ h₂₃.symm this with ⟨l', h₁, h₂⟩
state_before: case h.h.a.mp.intro.intro
α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ l₂ : List β
h₁₂ : Forall₂ r l₁ l₂
h₂₃ : l₂ ~ l₃
this : Forall₂ (flip r) l₂ l₁
⊢ (Perm ∘r Forall₂ r) l₁ l₃

tactic: exact ⟨l', h₂.symm, h₁.flip⟩
state_before: case h.h.a.mp.intro.intro.intro.intro
α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ l₂ : List β
h₁₂ : Forall₂ r l₁ l₂
h₂₃ : l₂ ~ l₃
this : Forall₂ (flip r) l₂ l₁
l' : List α
h₁ : Forall₂ (flip r) l₃ l'
h₂ : l' ~ l₁
⊢ (Perm ∘r Forall₂ r) l₁ l₃

tactic: exact fun ⟨l₂, h₁₂, h₂₃⟩ => perm_comp_forall₂ h₁₂ h₂₃
state_before: case h.h.a.mpr
α : Type uu
β : Type vv
l₁✝ l₂ : List α
γ : Type ?u.38852
δ : Type ?u.38855
r : α → β → Prop
p : γ → δ → Prop
l₁ : List α
l₃ : List β
⊢ (Perm ∘r Forall₂ r) l₁ l₃ → (Forall₂ r ∘r Perm) l₁ l₃
Theorem: re_inner_eq_norm_add_mul_self_sub_norm_mul_self_sub_norm_mul_self_div_two
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [@norm_add_mul_self 𝕜]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.2519860
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x y : E
⊢ ↑re (inner x y) = (‖x + y‖ * ‖x + y‖ - ‖x‖ * ‖x‖ - ‖y‖ * ‖y‖) / 2

tactic: ring
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.2519860
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x y : E
⊢ ↑re (inner x y) = (‖x‖ * ‖x‖ + 2 * ↑re (inner x y) + ‖y‖ * ‖y‖ - ‖x‖ * ‖x‖ - ‖y‖ * ‖y‖) / 2
Theorem: MeasureTheory.lintegral_sub_le'
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [tsub_le_iff_right]
state_before: α : Type u_1
β : Type ?u.981881
γ : Type ?u.981884
δ : Type ?u.981887
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
⊢ ((∫⁻ (x : α), g x ∂μ) - ∫⁻ (x : α), f x ∂μ) ≤ ∫⁻ (x : α), g x - f x ∂μ

tactic: by_cases hfi : (∫⁻ x, f x ∂μ) = ∞
state_before: α : Type u_1
β : Type ?u.981881
γ : Type ?u.981884
δ : Type ?u.981887
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
⊢ (∫⁻ (x : α), g x ∂μ) ≤ (∫⁻ (x : α), g x - f x ∂μ) + ∫⁻ (x : α), f x ∂μ

tactic: rw [hfi, add_top]
state_before: case pos
α : Type u_1
β : Type ?u.981881
γ : Type ?u.981884
δ : Type ?u.981887
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hfi : (∫⁻ (x : α), f x ∂μ) = ⊤
⊢ (∫⁻ (x : α), g x ∂μ) ≤ (∫⁻ (x : α), g x - f x ∂μ) + ∫⁻ (x : α), f x ∂μ

tactic: exact le_top
state_before: case pos
α : Type u_1
β : Type ?u.981881
γ : Type ?u.981884
δ : Type ?u.981887
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hfi : (∫⁻ (x : α), f x ∂μ) = ⊤
⊢ (∫⁻ (x : α), g x ∂μ) ≤ ⊤

tactic: rw [← lintegral_add_right' _ hf]
state_before: case neg
α : Type u_1
β : Type ?u.981881
γ : Type ?u.981884
δ : Type ?u.981887
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hfi : ¬(∫⁻ (x : α), f x ∂μ) = ⊤
⊢ (∫⁻ (x : α), g x ∂μ) ≤ (∫⁻ (x : α), g x - f x ∂μ) + ∫⁻ (x : α), f x ∂μ

tactic: exact lintegral_mono fun x => le_tsub_add
state_before: case neg
α : Type u_1
β : Type ?u.981881
γ : Type ?u.981884
δ : Type ?u.981887
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hfi : ¬(∫⁻ (x : α), f x ∂μ) = ⊤
⊢ (∫⁻ (x : α), g x ∂μ) ≤ ∫⁻ (a : α), g a - f a + f a ∂μ
Theorem: if_false_left_eq_and
File: Mathlib/Init/IteSimp.lean

tactic: by_cases p <;> simp [h]
state_before: p : Prop
h : Decidable p
q : Prop
⊢ (if p then False else q) = (¬p ∧ q)
Theorem: Int.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul
File: Mathlib/Data/Int/NatPrime.lean

tactic: rw [← Int.natAbs_mul]
state_before: p : ℕ
p_prime : Nat.Prime p
m n : ℤ
k l : ℕ
hpm : ↑(p ^ k) ∣ m
hpn : ↑(p ^ l) ∣ n
hpmn : ↑(p ^ (k + l + 1)) ∣ m * n
hpm' : p ^ k ∣ natAbs m
hpn' : p ^ l ∣ natAbs n
⊢ p ^ (k + l + 1) ∣ natAbs m * natAbs n

tactic: apply Int.coe_nat_dvd.1 <| Int.dvd_natAbs.2 hpmn
state_before: p : ℕ
p_prime : Nat.Prime p
m n : ℤ
k l : ℕ
hpm : ↑(p ^ k) ∣ m
hpn : ↑(p ^ l) ∣ n
hpmn : ↑(p ^ (k + l + 1)) ∣ m * n
hpm' : p ^ k ∣ natAbs m
hpn' : p ^ l ∣ natAbs n
⊢ p ^ (k + l + 1) ∣ natAbs (m * n)

tactic: apply Int.dvd_natAbs.1
state_before: p : ℕ
p_prime : Nat.Prime p
m n : ℤ
k l : ℕ
hpm : ↑(p ^ k) ∣ m
hpn : ↑(p ^ l) ∣ n
hpmn : ↑(p ^ (k + l + 1)) ∣ m * n
hpm' : p ^ k ∣ natAbs m
hpn' : p ^ l ∣ natAbs n
hpmn' : p ^ (k + l + 1) ∣ natAbs m * natAbs n
hsd : p ^ (k + 1) ∣ natAbs m ∨ p ^ (l + 1) ∣ natAbs n :=
  Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul p_prime hpm' hpn' hpmn'
hsd1 : p ^ (k + 1) ∣ natAbs m
⊢ ↑(p ^ (k + 1)) ∣ m

tactic: apply Int.coe_nat_dvd.2 hsd1
state_before: p : ℕ
p_prime : Nat.Prime p
m n : ℤ
k l : ℕ
hpm : ↑(p ^ k) ∣ m
hpn : ↑(p ^ l) ∣ n
hpmn : ↑(p ^ (k + l + 1)) ∣ m * n
hpm' : p ^ k ∣ natAbs m
hpn' : p ^ l ∣ natAbs n
hpmn' : p ^ (k + l + 1) ∣ natAbs m * natAbs n
hsd : p ^ (k + 1) ∣ natAbs m ∨ p ^ (l + 1) ∣ natAbs n :=
  Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul p_prime hpm' hpn' hpmn'
hsd1 : p ^ (k + 1) ∣ natAbs m
⊢ ↑(p ^ (k + 1)) ∣ ↑(natAbs m)

tactic: apply Int.dvd_natAbs.1
state_before: p : ℕ
p_prime : Nat.Prime p
m n : ℤ
k l : ℕ
hpm : ↑(p ^ k) ∣ m
hpn : ↑(p ^ l) ∣ n
hpmn : ↑(p ^ (k + l + 1)) ∣ m * n
hpm' : p ^ k ∣ natAbs m
hpn' : p ^ l ∣ natAbs n
hpmn' : p ^ (k + l + 1) ∣ natAbs m * natAbs n
hsd : p ^ (k + 1) ∣ natAbs m ∨ p ^ (l + 1) ∣ natAbs n :=
  Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul p_prime hpm' hpn' hpmn'
hsd2 : p ^ (l + 1) ∣ natAbs n
⊢ ↑(p ^ (l + 1)) ∣ n

tactic: apply Int.coe_nat_dvd.2 hsd2
state_before: p : ℕ
p_prime : Nat.Prime p
m n : ℤ
k l : ℕ
hpm : ↑(p ^ k) ∣ m
hpn : ↑(p ^ l) ∣ n
hpmn : ↑(p ^ (k + l + 1)) ∣ m * n
hpm' : p ^ k ∣ natAbs m
hpn' : p ^ l ∣ natAbs n
hpmn' : p ^ (k + l + 1) ∣ natAbs m * natAbs n
hsd : p ^ (k + 1) ∣ natAbs m ∨ p ^ (l + 1) ∣ natAbs n :=
  Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul p_prime hpm' hpn' hpmn'
hsd2 : p ^ (l + 1) ∣ natAbs n
⊢ ↑(p ^ (l + 1)) ∣ ↑(natAbs n)
Theorem: LipschitzWith.mk_one
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simpa only [NNReal.coe_one, one_mul] using h
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : PseudoMetricSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
K : ℝ≥0
f : α → β
x y : α
r : ℝ
h : ∀ (x y : α), dist (f x) (f y) ≤ dist x y
⊢ ∀ (x y : α), dist (f x) (f y) ≤ ↑1 * dist x y
Theorem: Rel.card_interedges_add_card_interedges_compl
File: Mathlib/Combinatorics/SimpleGraph/Density.lean

tactic: classical
rw [← card_product, interedges, interedges, ← card_union_eq, filter_union_filter_neg_eq]
exact disjoint_filter.2 fun _ _ ↦ Classical.not_not.2
state_before: 𝕜 : Type ?u.3694
ι : Type ?u.3697
κ : Type ?u.3700
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t : Finset β
⊢ card (interedges r s t) + card (interedges (fun x y => ¬r x y) s t) = card s * card t

tactic: rw [← card_product, interedges, interedges, ← card_union_eq, filter_union_filter_neg_eq]
state_before: 𝕜 : Type ?u.3694
ι : Type ?u.3697
κ : Type ?u.3700
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t : Finset β
⊢ card (interedges r s t) + card (interedges (fun x y => ¬r x y) s t) = card s * card t

tactic: exact disjoint_filter.2 fun _ _ ↦ Classical.not_not.2
state_before: 𝕜 : Type ?u.3694
ι : Type ?u.3697
κ : Type ?u.3700
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝ : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
s : Finset α
t : Finset β
⊢ Disjoint (filter (fun e => r e.fst e.snd) (s ×ˢ t)) (filter (fun e => ¬r e.fst e.snd) (s ×ˢ t))
Theorem: CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₁₂
File: Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean

tactic: obtain ⟨c, hc⟩ :=
  complete_distinguished_triangle_morphism _ _ (contractible_distinguished T.obj₁) H (𝟙 T.obj₁)
    T.mor₁ rfl
state_before: C : Type u
inst✝⁹ : Category C
inst✝⁸ : HasZeroObject C
inst✝⁷ : HasShift C ℤ
inst✝⁶ : Preadditive C
inst✝⁵ : ∀ (n : ℤ), Functor.Additive (shiftFunctor C n)
D : Type u₂
inst✝⁴ : Category D
inst✝³ : HasZeroObject D
inst✝² : HasShift D ℤ
inst✝¹ : Preadditive D
inst✝ : ∀ (n : ℤ), Functor.Additive (shiftFunctor D n)
hC : Pretriangulated C
T : Triangle C
H : T ∈ distinguishedTriangles
⊢ T.mor₁ ≫ T.mor₂ = 0

tactic: simpa only [contractibleTriangle_mor₂, zero_comp] using hc.left.symm
state_before: case intro
C : Type u
inst✝⁹ : Category C
inst✝⁸ : HasZeroObject C
inst✝⁷ : HasShift C ℤ
inst✝⁶ : Preadditive C
inst✝⁵ : ∀ (n : ℤ), Functor.Additive (shiftFunctor C n)
D : Type u₂
inst✝⁴ : Category D
inst✝³ : HasZeroObject D
inst✝² : HasShift D ℤ
inst✝¹ : Preadditive D
inst✝ : ∀ (n : ℤ), Functor.Additive (shiftFunctor D n)
hC : Pretriangulated C
T : Triangle C
H : T ∈ distinguishedTriangles
c : (contractibleTriangle T.obj₁).obj₃ ⟶ T.obj₃
hc :
  (contractibleTriangle T.obj₁).mor₂ ≫ c = T.mor₁ ≫ T.mor₂ ∧
    (contractibleTriangle T.obj₁).mor₃ ≫ (shiftFunctor C 1).map (𝟙 T.obj₁) = c ≫ T.mor₃
⊢ T.mor₁ ≫ T.mor₂ = 0
Theorem: Uniform.continuousOn_iff'_left
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: simp [ContinuousOn, continuousWithinAt_iff'_left]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.202052
inst✝¹ : UniformSpace α
inst✝ : TopologicalSpace β
f : β → α
s : Set β
⊢ ContinuousOn f s ↔ ∀ (b : β), b ∈ s → Tendsto (fun x => (f x, f b)) (𝓝[s] b) (𝓤 α)
Theorem: Submodule.mem_smul_top_iff
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: change _ ↔ N.subtype x ∈ I • N
state_before: R : Type u
M : Type v
F : Type ?u.157879
G : Type ?u.157882
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N✝ P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
N : Submodule R M
x : { x // x ∈ N }
⊢ x ∈ I • ⊤ ↔ ↑x ∈ I • N

tactic: have : Submodule.map N.subtype (I • ⊤) = I • N := by
  rw [Submodule.map_smul'', Submodule.map_top, Submodule.range_subtype]
state_before: R : Type u
M : Type v
F : Type ?u.157879
G : Type ?u.157882
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N✝ P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
N : Submodule R M
x : { x // x ∈ N }
⊢ x ∈ I • ⊤ ↔ ↑(Submodule.subtype N) x ∈ I • N

tactic: rw [← this]
state_before: R : Type u
M : Type v
F : Type ?u.157879
G : Type ?u.157882
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N✝ P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
N : Submodule R M
x : { x // x ∈ N }
this : map (Submodule.subtype N) (I • ⊤) = I • N
⊢ x ∈ I • ⊤ ↔ ↑(Submodule.subtype N) x ∈ I • N

tactic: exact (Function.Injective.mem_set_image N.injective_subtype).symm
state_before: R : Type u
M : Type v
F : Type ?u.157879
G : Type ?u.157882
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N✝ P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
N : Submodule R M
x : { x // x ∈ N }
this : map (Submodule.subtype N) (I • ⊤) = I • N
⊢ x ∈ I • ⊤ ↔ ↑(Submodule.subtype N) x ∈ map (Submodule.subtype N) (I • ⊤)

tactic: rw [Submodule.map_smul'', Submodule.map_top, Submodule.range_subtype]
state_before: R : Type u
M : Type v
F : Type ?u.157879
G : Type ?u.157882
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N✝ P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
N : Submodule R M
x : { x // x ∈ N }
⊢ map (Submodule.subtype N) (I • ⊤) = I • N
Theorem: cauchySeq_of_edist_le_of_summable
File: Mathlib/Topology/Algebra/InfiniteSum/Real.lean

tactic: refine EMetric.cauchySeq_iff_NNReal.2 fun ε εpos => ?_
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
hd : Summable d
⊢ CauchySeq f

tactic: replace hd : CauchySeq fun n : ℕ => ∑ x in range n, d x :=
  let ⟨_, H⟩ := hd
  H.tendsto_sum_nat.cauchySeq
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
hd : Summable d
ε : ℝ≥0
εpos : 0 < ε
⊢ ∃ N, ∀ (n : ℕ), N ≤ n → edist (f n) (f N) < ↑ε

tactic: refine (Metric.cauchySeq_iff'.1 hd ε (NNReal.coe_pos.2 εpos)).imp fun N hN n hn => ?_
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
ε : ℝ≥0
εpos : 0 < ε
hd : CauchySeq fun n => ∑ x in range n, d x
⊢ ∃ N, ∀ (n : ℕ), N ≤ n → edist (f n) (f N) < ↑ε

tactic: specialize hN n hn
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
ε : ℝ≥0
εpos : 0 < ε
hd : CauchySeq fun n => ∑ x in range n, d x
N : ℕ
hN : ∀ (n : ℕ), n ≥ N → dist (∑ x in range n, d x) (∑ x in range N, d x) < ↑ε
n : ℕ
hn : N ≤ n
⊢ edist (f n) (f N) < ↑ε

tactic: rw [dist_nndist, NNReal.nndist_eq, ← sum_range_add_sum_Ico _ hn, add_tsub_cancel_left,
  NNReal.coe_lt_coe, max_lt_iff] at hN
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
ε : ℝ≥0
εpos : 0 < ε
hd : CauchySeq fun n => ∑ x in range n, d x
N n : ℕ
hn : N ≤ n
hN : dist (∑ x in range n, d x) (∑ x in range N, d x) < ↑ε
⊢ edist (f n) (f N) < ↑ε

tactic: rw [edist_comm]
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
ε : ℝ≥0
εpos : 0 < ε
hd : CauchySeq fun n => ∑ x in range n, d x
N n : ℕ
hn : N ≤ n
hN : ∑ k in Ico N n, d k < ε ∧ ∑ x in range N, d x - (∑ k in range N, d k + ∑ k in Ico N n, d k) < ε
⊢ edist (f n) (f N) < ↑ε

tactic: refine lt_of_le_of_lt (edist_le_Ico_sum_of_edist_le hn fun _ _ => hf _) ?_
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
ε : ℝ≥0
εpos : 0 < ε
hd : CauchySeq fun n => ∑ x in range n, d x
N n : ℕ
hn : N ≤ n
hN : ∑ k in Ico N n, d k < ε ∧ ∑ x in range N, d x - (∑ k in range N, d k + ∑ k in Ico N n, d k) < ε
⊢ edist (f N) (f n) < ↑ε

tactic: exact_mod_cast hN.1
state_before: α : Type u_1
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ ↑(d n)
ε : ℝ≥0
εpos : 0 < ε
hd : CauchySeq fun n => ∑ x in range n, d x
N n : ℕ
hn : N ≤ n
hN : ∑ k in Ico N n, d k < ε ∧ ∑ x in range N, d x - (∑ k in range N, d k + ∑ k in Ico N n, d k) < ε
⊢ ∑ i in Ico N n, ↑(d i) < ↑ε
Theorem: Std.AssocList.isEmpty_eq
File: Std/Data/AssocList.lean

tactic: cases l <;> simp [*, isEmpty, List.isEmpty]
state_before: α : Type u_1
β : Type u_2
l : AssocList α β
⊢ isEmpty l = List.isEmpty (toList l)
Theorem: MonoidHom.mker_inr
File: Mathlib/GroupTheory/Submonoid/Operations.lean

tactic: ext x
state_before: M : Type u_2
N : Type u_1
P : Type ?u.144954
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type ?u.144975
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type ?u.144999
mc : MonoidHomClass F M N
⊢ mker (inr M N) = ⊥

tactic: simp [mem_mker]
state_before: case h
M : Type u_2
N : Type u_1
P : Type ?u.144954
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type ?u.144975
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type ?u.144999
mc : MonoidHomClass F M N
x : N
⊢ x ∈ mker (inr M N) ↔ x ∈ ⊥
Theorem: MeasureTheory.Lp.simpleFunc.toSimpleFunc_eq_toFun
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: convert (AEEqFun.coeFn_mk (toSimpleFunc f)
      (toSimpleFunc f).aestronglyMeasurable).symm using 2
state_before: α : Type u_1
β : Type ?u.1531711
ι : Type ?u.1531714
E : Type u_2
F : Type ?u.1531720
𝕜 : Type ?u.1531723
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : { x // x ∈ simpleFunc E p μ }
⊢ ↑(toSimpleFunc f) =ᵐ[μ] ↑↑↑f

tactic: exact (Classical.choose_spec f.2).symm
state_before: case h.e'_5.h.e'_6
α : Type u_1
β : Type ?u.1531711
ι : Type ?u.1531714
E : Type u_2
F : Type ?u.1531720
𝕜 : Type ?u.1531723
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : { x // x ∈ simpleFunc E p μ }
⊢ ↑↑f = AEEqFun.mk ↑(toSimpleFunc f) (_ : AEStronglyMeasurable (↑(toSimpleFunc f)) μ)