tasksource/leandojo huggingface dataset:
Theorem: DiffContOnCl.continuousOn_ball
File: Mathlib/Analysis/Calculus/DiffContOnCl.lean

tactic: rcases eq_or_ne r 0 with (rfl | hr)
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.8350
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
s t : Set E
x✝ : E
inst✝ : NormedSpace ℝ E
x : E
r : ℝ
h : DiffContOnCl 𝕜 f (ball x r)
⊢ ContinuousOn f (closedBall x r)

tactic: rw [closedBall_zero]
state_before: case inl
𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.8350
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
s t : Set E
x✝ : E
inst✝ : NormedSpace ℝ E
x : E
h : DiffContOnCl 𝕜 f (ball x 0)
⊢ ContinuousOn f (closedBall x 0)

tactic: exact continuousOn_singleton f x
state_before: case inl
𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.8350
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
s t : Set E
x✝ : E
inst✝ : NormedSpace ℝ E
x : E
h : DiffContOnCl 𝕜 f (ball x 0)
⊢ ContinuousOn f {x}

tactic: rw [← closure_ball x hr]
state_before: case inr
𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.8350
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
s t : Set E
x✝ : E
inst✝ : NormedSpace ℝ E
x : E
r : ℝ
h : DiffContOnCl 𝕜 f (ball x r)
hr : r ≠ 0
⊢ ContinuousOn f (closedBall x r)

tactic: exact h.continuousOn
state_before: case inr
𝕜 : Type u_2
E : Type u_1
F : Type u_3
G : Type ?u.8350
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace 𝕜 F
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f g : E → F
s t : Set E
x✝ : E
inst✝ : NormedSpace ℝ E
x : E
r : ℝ
h : DiffContOnCl 𝕜 f (ball x r)
hr : r ≠ 0
⊢ ContinuousOn f (closure (ball x r))
Theorem: Int.preimage_Iio
File: Mathlib/Algebra/Order/Floor.lean

tactic: ext
state_before: F : Type ?u.246936
α : Type u_1
β : Type ?u.246942
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
⊢ Int.cast ⁻¹' Iio a = Iio ⌈a⌉

tactic: simp [lt_ceil]
state_before: case h
F : Type ?u.246936
α : Type u_1
β : Type ?u.246942
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Iio a ↔ x✝ ∈ Iio ⌈a⌉
Theorem: CategoryTheory.MorphismProperty.bijective_stableUnderComposition
File: Mathlib/CategoryTheory/MorphismProperty.lean

tactic: delta MorphismProperty.bijective
state_before: C : Type u
inst✝² : Category C
D : Type ?u.90042
inst✝¹ : Category D
inst✝ : ConcreteCategory C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.bijective C f
hg : MorphismProperty.bijective C g
⊢ MorphismProperty.bijective C (f ≫ g)

tactic: rw [coe_comp]
state_before: C : Type u
inst✝² : Category C
D : Type ?u.90042
inst✝¹ : Category D
inst✝ : ConcreteCategory C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.bijective C f
hg : MorphismProperty.bijective C g
⊢ Bijective ((forget C).map (f ≫ g))

tactic: exact hg.comp hf
state_before: C : Type u
inst✝² : Category C
D : Type ?u.90042
inst✝¹ : Category D
inst✝ : ConcreteCategory C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.bijective C f
hg : MorphismProperty.bijective C g
⊢ Bijective ((forget C).map g ∘ (forget C).map f)
Theorem: List.disjoint_cons_left
File: Std/Data/List/Lemmas.lean

tactic: simp [singleton_disjoint]
state_before: α✝ : Type u_1
a : α✝
l₁ l₂ : List α✝
⊢ Disjoint [a] l₂ ∧ Disjoint l₁ l₂ ↔ ¬a ∈ l₂ ∧ Disjoint l₁ l₂
Theorem: inner_neg_neg
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.1738883
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x y : E
⊢ inner (-x) (-y) = inner x y
Theorem: MvPolynomial.bind₂_map
File: Mathlib/Data/MvPolynomial/Monad.lean

tactic: simp [bind₂]
state_before: σ : Type u_3
τ : Type ?u.691562
R : Type u_4
S : Type u_1
T : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : CommSemiring T
f✝ : σ → MvPolynomial τ R
f : S →+* MvPolynomial σ T
g : R →+* S
φ : MvPolynomial σ R
⊢ ↑(bind₂ f) (↑(map g) φ) = ↑(bind₂ (RingHom.comp f g)) φ
Theorem: AddSubgroup.cyclic_of_isolated_zero
File: Mathlib/GroupTheory/Archimedean.lean

tactic: rcases eq_or_ne H ⊥ with rfl | hbot
state_before: G : Type u_1
inst✝¹ : LinearOrderedAddCommGroup G
inst✝ : Archimedean G
H : AddSubgroup G
a : G
h₀ : 0 < a
hd : Disjoint (↑H) (Ioo 0 a)
⊢ ∃ b, H = closure {b}

tactic: exact ⟨0, closure_singleton_zero.symm⟩
state_before: case inl
G : Type u_1
inst✝¹ : LinearOrderedAddCommGroup G
inst✝ : Archimedean G
a : G
h₀ : 0 < a
hd : Disjoint (↑⊥) (Ioo 0 a)
⊢ ∃ b, ⊥ = closure {b}

tactic: exact (exists_isLeast_pos hbot h₀ hd).imp fun _ => cyclic_of_min
state_before: case inr
G : Type u_1
inst✝¹ : LinearOrderedAddCommGroup G
inst✝ : Archimedean G
H : AddSubgroup G
a : G
h₀ : 0 < a
hd : Disjoint (↑H) (Ioo 0 a)
hbot : H ≠ ⊥
⊢ ∃ b, H = closure {b}
Theorem: Stream'.cycle_singleton
File: Mathlib/Data/Stream/Init.lean

tactic: simp
state_before: α : Type u
β : Type v
δ : Type w
a : α
⊢ [a] ≠ []

tactic: rwa [cycle_eq, const_eq]
state_before: α : Type u
β✝ : Type v
δ : Type w
a : α
β : Type u
fr : Stream' α → β
ch : fr (cycle [a] (_ : ¬[a] = [])) = fr (const a)
⊢ fr (tail (cycle [a] (_ : ¬[a] = []))) = fr (tail (const a))
Theorem: Summable.tendsto_atTop_zero
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: rw [← Nat.cofinite_eq_atTop]
state_before: α : Type ?u.777110
β : Type ?u.777113
γ : Type ?u.777116
δ : Type ?u.777119
G : Type u_1
inst✝² : TopologicalSpace G
inst✝¹ : AddCommGroup G
inst✝ : TopologicalAddGroup G
f✝ : α → G
f : ℕ → G
hf : Summable f
⊢ Tendsto f atTop (𝓝 0)

tactic: exact hf.tendsto_cofinite_zero
state_before: α : Type ?u.777110
β : Type ?u.777113
γ : Type ?u.777116
δ : Type ?u.777119
G : Type u_1
inst✝² : TopologicalSpace G
inst✝¹ : AddCommGroup G
inst✝ : TopologicalAddGroup G
f✝ : α → G
f : ℕ → G
hf : Summable f
⊢ Tendsto f cofinite (𝓝 0)
Theorem: div_two_sub_self
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: suffices a / 2 - (a / 2 + a / 2) = -(a / 2) by rwa [add_halves] at this
state_before: ι : Type ?u.184413
α : Type u_1
β : Type ?u.184419
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
⊢ a / 2 - a = -(a / 2)

tactic: rw [sub_add_eq_sub_sub, sub_self, zero_sub]
state_before: ι : Type ?u.184413
α : Type u_1
β : Type ?u.184419
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
⊢ a / 2 - (a / 2 + a / 2) = -(a / 2)

tactic: rwa [add_halves] at this
state_before: ι : Type ?u.184413
α : Type u_1
β : Type ?u.184419
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
this : a / 2 - (a / 2 + a / 2) = -(a / 2)
⊢ a / 2 - a = -(a / 2)
Theorem: List.replicate_right_inj'
File: Mathlib/Data/List/Basic.lean

tactic: simp
state_before: ι : Type ?u.20220
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a b : α
⊢ replicate 0 a = replicate 0 b ↔ 0 = 0 ∨ a = b

tactic: simp only [n.succ_ne_zero, false_or]
state_before: ι : Type ?u.20220
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
a b : α
n : ℕ
⊢ a = b ↔ n + 1 = 0 ∨ a = b
Theorem: Matrix.StdBasisMatrix.mul_right_apply_same
File: Mathlib/Data/Matrix/Basis.lean

tactic: simp [mul_apply, stdBasisMatrix, mul_comm]
state_before: l : Type ?u.34238
m : Type ?u.34241
n : Type u_1
R : Type ?u.34247
α : Type u_2
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
a : n
M : Matrix n n α
⊢ (M ⬝ stdBasisMatrix i j c) a j = M a i * c
Theorem: List.chain_split
File: Mathlib/Data/List/Chain.lean

tactic: induction' l₁ with x l₁ IH generalizing a <;>
  simp only [*, nil_append, cons_append, Chain.nil, chain_cons, and_true_iff, and_assoc]
state_before: α : Type u
β : Type v
R r : α → α → Prop
l l₁✝ l₂✝ : List α
a✝ b✝ a b : α
l₁ l₂ : List α
⊢ Chain R a (l₁ ++ b :: l₂) ↔ Chain R a (l₁ ++ [b]) ∧ Chain R b l₂
Theorem: MeasureTheory.SimpleFunc.setToSimpleFunc_const'
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: simp only [setToSimpleFunc, range_const, Set.mem_singleton, preimage_const_of_mem,
  sum_singleton, ← Function.const_def, coe_const]
state_before: α : Type u_1
E : Type ?u.454926
F : Type u_2
F' : Type u_3
G : Type ?u.454935
𝕜 : Type ?u.454938
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✝ : Nonempty α
T : Set α → F →L[ℝ] F'
x : F
m : MeasurableSpace α
⊢ setToSimpleFunc T (const α x) = ↑(T Set.univ) x
Theorem: div_le_div_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [le_div_iff d0, div_mul_eq_mul_div, div_le_iff b0]
state_before: ι : Type ?u.68484
α : Type u_1
β : Type ?u.68490
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
b0 : 0 < b
d0 : 0 < d
⊢ a / b ≤ c / d ↔ a * d ≤ c * b
Theorem: Submodule.fg_pi
File: Mathlib/RingTheory/Finiteness.lean

tactic: classical
  simp_rw [fg_def] at hsb⊢
  choose t htf hts using hsb
  refine
    ⟨⋃ i, (LinearMap.single i : _ →ₗ[R] _) '' t i, Set.finite_iUnion fun i => (htf i).image _, ?_⟩
  simp_rw [span_iUnion, span_image, hts, Submodule.iSup_map_single]
state_before: R : Type u_3
M✝ : Type ?u.206566
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : Module R M✝
P : Type ?u.206602
inst✝⁴ : AddCommMonoid P
inst✝³ : Module R P
f : M✝ →ₗ[R] P
ι : Type u_1
M : ι → Type u_2
inst✝² : Finite ι
inst✝¹ : (i : ι) → AddCommMonoid (M i)
inst✝ : (i : ι) → Module R (M i)
p : (i : ι) → Submodule R (M i)
hsb : ∀ (i : ι), FG (p i)
⊢ FG (pi univ p)

tactic: simp_rw [fg_def] at hsb⊢
state_before: R : Type u_3
M✝ : Type ?u.206566
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : Module R M✝
P : Type ?u.206602
inst✝⁴ : AddCommMonoid P
inst✝³ : Module R P
f : M✝ →ₗ[R] P
ι : Type u_1
M : ι → Type u_2
inst✝² : Finite ι
inst✝¹ : (i : ι) → AddCommMonoid (M i)
inst✝ : (i : ι) → Module R (M i)
p : (i : ι) → Submodule R (M i)
hsb : ∀ (i : ι), FG (p i)
⊢ FG (pi univ p)

tactic: choose t htf hts using hsb
state_before: R : Type u_3
M✝ : Type ?u.206566
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : Module R M✝
P : Type ?u.206602
inst✝⁴ : AddCommMonoid P
inst✝³ : Module R P
f : M✝ →ₗ[R] P
ι : Type u_1
M : ι → Type u_2
inst✝² : Finite ι
inst✝¹ : (i : ι) → AddCommMonoid (M i)
inst✝ : (i : ι) → Module R (M i)
p : (i : ι) → Submodule R (M i)
hsb : ∀ (i : ι), ∃ S, Set.Finite S ∧ span R S = p i
⊢ ∃ S, Set.Finite S ∧ span R S = pi univ p

tactic: refine
  ⟨⋃ i, (LinearMap.single i : _ →ₗ[R] _) '' t i, Set.finite_iUnion fun i => (htf i).image _, ?_⟩
state_before: R : Type u_3
M✝ : Type ?u.206566
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : Module R M✝
P : Type ?u.206602
inst✝⁴ : AddCommMonoid P
inst✝³ : Module R P
f : M✝ →ₗ[R] P
ι : Type u_1
M : ι → Type u_2
inst✝² : Finite ι
inst✝¹ : (i : ι) → AddCommMonoid (M i)
inst✝ : (i : ι) → Module R (M i)
p : (i : ι) → Submodule R (M i)
t : (i : ι) → Set (M i)
htf : ∀ (i : ι), Set.Finite (t i)
hts : ∀ (i : ι), span R (t i) = p i
⊢ ∃ S, Set.Finite S ∧ span R S = pi univ p

tactic: simp_rw [span_iUnion, span_image, hts, Submodule.iSup_map_single]
state_before: R : Type u_3
M✝ : Type ?u.206566
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : Module R M✝
P : Type ?u.206602
inst✝⁴ : AddCommMonoid P
inst✝³ : Module R P
f : M✝ →ₗ[R] P
ι : Type u_1
M : ι → Type u_2
inst✝² : Finite ι
inst✝¹ : (i : ι) → AddCommMonoid (M i)
inst✝ : (i : ι) → Module R (M i)
p : (i : ι) → Submodule R (M i)
t : (i : ι) → Set (M i)
htf : ∀ (i : ι), Set.Finite (t i)
hts : ∀ (i : ι), span R (t i) = p i
⊢ span R (⋃ (i : ι), ↑(LinearMap.single i) '' t i) = pi univ p
Theorem: SemidirectProduct.range_inl_eq_ker_rightHom
File: Mathlib/GroupTheory/SemidirectProduct.lean

tactic: simp (config := { contextual := true }) [MonoidHom.mem_ker, eq_comm]
state_before: N : Type u_1
G : Type u_2
H : Type ?u.123220
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
x✝ : N ⋊[φ] G
⊢ x✝ ∈ MonoidHom.range inl → x✝ ∈ MonoidHom.ker rightHom

tactic: ext <;> simp_all [MonoidHom.mem_ker]
state_before: N : Type u_1
G : Type u_2
H : Type ?u.123220
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
x : N ⋊[φ] G
hx : x ∈ MonoidHom.ker rightHom
⊢ ↑inl x.left = x
Theorem: LinearMap.stdBasis_apply'
File: Mathlib/LinearAlgebra/StdBasis.lean

tactic: rw [LinearMap.stdBasis_apply, Function.update_apply, Pi.zero_apply]
state_before: R : Type u_1
ι : Type u_2
inst✝³ : Semiring R
φ : ι → Type ?u.2779
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
inst✝ : DecidableEq ι
i i' : ι
⊢ ↑(stdBasis R (fun _x => R) i) 1 i' = if i = i' then 1 else 0

tactic: congr 1
state_before: R : Type u_1
ι : Type u_2
inst✝³ : Semiring R
φ : ι → Type ?u.2779
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
inst✝ : DecidableEq ι
i i' : ι
⊢ (if i' = i then 1 else 0) = if i = i' then 1 else 0

tactic: rw [eq_iff_iff, eq_comm]
state_before: case e_c
R : Type u_1
ι : Type u_2
inst✝³ : Semiring R
φ : ι → Type ?u.2779
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
inst✝ : DecidableEq ι
i i' : ι
⊢ (i' = i) = (i = i')
Theorem: Set.image_image2_distrib_right
File: Mathlib/Data/Set/NAry.lean

tactic: rw [image_id']
state_before: α : Type u_3
α' : Type ?u.45286
β : Type u_4
β' : Type u_5
γ : Type u_2
γ' : Type ?u.45298
δ : Type u_1
δ' : Type ?u.45304
ε : Type ?u.45307
ε' : Type ?u.45310
ζ : Type ?u.45313
ζ' : Type ?u.45316
ν : Type ?u.45319
f f'✝ : α → β → γ
g✝ g'✝ : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
g : γ → δ
f' : α → β' → δ
g' : β → β'
h_distrib : ∀ (a : α) (b : β), g (f a b) = f' a (g' b)
⊢ image2 f' ((fun a => a) '' s) ((fun b => g' b) '' t) = image2 f' s (g' '' t)
Theorem: Int.add_mul_emod_self
File: Std/Data/Int/DivMod.lean

tactic: rw [cz, Int.mul_zero, Int.add_zero]
state_before: a b c : Int
cz : c = 0
⊢ (a + b * c) % c = a % c

tactic: rw [Int.emod_def, Int.emod_def, Int.add_mul_ediv_right _ _ cz, Int.add_comm _ b,
  Int.mul_add, Int.mul_comm, ← Int.sub_sub, Int.add_sub_cancel]
state_before: a b c : Int
cz : ¬c = 0
⊢ (a + b * c) % c = a % c
Theorem: ENNReal.iInf_mul
File: Mathlib/Data/Real/ENNReal.lean

tactic: by_cases h0 : x = 0
state_before: α : Type ?u.866567
β : Type ?u.866570
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι✝ : Sort ?u.866587
f✝ g : ι✝ → ℝ≥0∞
ι : Sort u_1
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
⊢ iInf f * x = ⨅ (i : ι), f i * x

tactic: simp only [h0, mul_zero, iInf_const]
state_before: case pos
α : Type ?u.866567
β : Type ?u.866570
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι✝ : Sort ?u.866587
f✝ g : ι✝ → ℝ≥0∞
ι : Sort u_1
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
h0 : x = 0
⊢ iInf f * x = ⨅ (i : ι), f i * x

tactic: exact iInf_mul_of_ne h0 h
state_before: case neg
α : Type ?u.866567
β : Type ?u.866570
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι✝ : Sort ?u.866587
f✝ g : ι✝ → ℝ≥0∞
ι : Sort u_1
inst✝ : Nonempty ι
f : ι → ℝ≥0∞
x : ℝ≥0∞
h : x ≠ ⊤
h0 : ¬x = 0
⊢ iInf f * x = ⨅ (i : ι), f i * x
Theorem: CategoryTheory.Discrete.mk_as
File: Mathlib/CategoryTheory/DiscreteCategory.lean

tactic: ext
state_before: α : Type u₁
X : Discrete α
⊢ { as := X.as } = X

tactic: rfl
state_before: case as
α : Type u₁
X : Discrete α
⊢ { as := X.as }.as = X.as
Theorem: MeasureTheory.Lp.nnnorm_eq_zero_iff
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: refine' ⟨fun hf => _, fun hf => by simp [hf]⟩
state_before: α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
⊢ ‖f‖₊ = 0 ↔ f = 0

tactic: rw [nnnorm_def, ENNReal.toNNReal_eq_zero_iff] at hf
state_before: α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
hf : ‖f‖₊ = 0
⊢ f = 0

tactic: cases hf with
| inl hf =>
  rw [snorm_eq_zero_iff (Lp.aestronglyMeasurable f) hp.ne.symm] at hf
  exact Subtype.eq (AEEqFun.ext (hf.trans AEEqFun.coeFn_zero.symm))
| inr hf =>
  exact absurd hf (snorm_ne_top f)
state_before: α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
hf : snorm (↑↑f) p μ = 0 ∨ snorm (↑↑f) p μ = ⊤
⊢ f = 0

tactic: simp [hf]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
hf : f = 0
⊢ ‖f‖₊ = 0

tactic: rw [snorm_eq_zero_iff (Lp.aestronglyMeasurable f) hp.ne.symm] at hf
state_before: case inl
α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
hf : snorm (↑↑f) p μ = 0
⊢ f = 0

tactic: exact Subtype.eq (AEEqFun.ext (hf.trans AEEqFun.coeFn_zero.symm))
state_before: case inl
α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
hf : ↑↑f =ᵐ[μ] 0
⊢ f = 0

tactic: exact absurd hf (snorm_ne_top f)
state_before: case inr
α : Type u_1
E : Type u_2
F : Type ?u.410940
G : Type ?u.410943
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : { x // x ∈ Lp E p }
hp : 0 < p
hf : snorm (↑↑f) p μ = ⊤
⊢ f = 0
Theorem: Polynomial.C_eq_int_cast
File: Mathlib/Data/Polynomial/Basic.lean

tactic: simp
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Ring R
n : ℤ
⊢ ↑C ↑n = ↑n
Theorem: Disjoint.image
File: Mathlib/Data/Set/Function.lean

tactic: rw [disjoint_iff_inter_eq_empty] at h ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.37999
ι : Sort ?u.38002
π : α → Type ?u.38007
s✝ s₁ s₂ : Set α
t✝ t₁ t₂ : Set β
p : Set γ
f✝ f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
s t u : Set α
f : α → β
h : Disjoint s t
hf : InjOn f u
hs : s ⊆ u
ht : t ⊆ u
⊢ Disjoint (f '' s) (f '' t)

tactic: rw [← hf.image_inter hs ht, h, image_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.37999
ι : Sort ?u.38002
π : α → Type ?u.38007
s✝ s₁ s₂ : Set α
t✝ t₁ t₂ : Set β
p : Set γ
f✝ f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
s t u : Set α
f : α → β
h : s ∩ t = ∅
hf : InjOn f u
hs : s ⊆ u
ht : t ⊆ u
⊢ f '' s ∩ f '' t = ∅
Theorem: Option.pmap_bind
File: Mathlib/Data/Option/Basic.lean

tactic: cases x <;> simp only [pmap, bind_eq_bind, none_bind, some_bind]
state_before: α✝ : Type ?u.8960
β✝ : Type ?u.8963
γ✝ : Type ?u.8966
δ : Type ?u.8969
p✝ : α✝ → Prop
f✝ : (a : α✝) → p✝ a → β✝
x✝ : Option α✝
α β γ : Type u_1
x : Option α
g : α → Option β
p : β → Prop
f : (b : β) → p b → γ
H : ∀ (a : β), a ∈ x >>= g → p a
H' : ∀ (a : α) (b : β), b ∈ g a → b ∈ x >>= g
⊢ pmap f (x >>= g) H = do
    let a ← x
    pmap f (g a) (_ : ∀ (b : β), b ∈ g a → p b)
Theorem: inner_orthogonalProjection_eq_of_mem_right
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: rw [orthogonalProjection_inner_eq_zero _ _ (Submodule.coe_mem _), add_zero]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.973385
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ K }
u : { x // x ∈ K }
v : E
⊢ inner ↑(↑(orthogonalProjection K) v) ↑u =
    inner ↑(↑(orthogonalProjection K) v) ↑u + inner (v - ↑(↑(orthogonalProjection K) v)) ↑u

tactic: rw [← inner_add_left, add_sub_cancel'_right]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.973385
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ K }
u : { x // x ∈ K }
v : E
⊢ inner ↑(↑(orthogonalProjection K) v) ↑u + inner (v - ↑(↑(orthogonalProjection K) v)) ↑u = inner v ↑u
Theorem: and_right_comm
File: Std/Logic.lean

tactic: simp only [and_left_comm, and_comm]
state_before: a b c : Prop
⊢ (a ∧ b) ∧ c ↔ (a ∧ c) ∧ b
Theorem: MeasureTheory.mem_fundamentalInterior
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: simp [fundamentalInterior]
state_before: G : Type u_2
H : Type ?u.475255
α : Type u_1
β : Type ?u.475261
E : Type ?u.475264
inst✝¹ : Group G
inst✝ : MulAction G α
s : Set α
x : α
⊢ x ∈ fundamentalInterior G s ↔ x ∈ s ∧ ∀ (g : G), g ≠ 1 → ¬x ∈ g • s
Theorem: Homotopy.nullHomotopicMap_f_eq_zero
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: dsimp [nullHomotopicMap, dNext, prevD]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₀ : ι
hk₀ : ∀ (l : ι), ¬ComplexShape.Rel c k₀ l
hk₀' : ∀ (l : ι), ¬ComplexShape.Rel c l k₀
hom : (i j : ι) → X C i ⟶ X D j
⊢ Hom.f (nullHomotopicMap hom) k₀ = 0

tactic: rw [C.shape, D.shape, zero_comp, comp_zero, add_zero] <;> apply_assumption
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i k₀ : ι
hk₀ : ∀ (l : ι), ¬ComplexShape.Rel c k₀ l
hk₀' : ∀ (l : ι), ¬ComplexShape.Rel c l k₀
hom : (i j : ι) → X C i ⟶ X D j
⊢ d C k₀ (ComplexShape.next c k₀) ≫ hom (ComplexShape.next c k₀) k₀ +
      hom k₀ (ComplexShape.prev c k₀) ≫ d D (ComplexShape.prev c k₀) k₀ =
    0
Theorem: Nat.bitwise'_zero_left
File: Mathlib/Init/Data/Nat/Bitwise.lean

tactic: unfold bitwise'
state_before: f : Bool → Bool → Bool
n : ℕ
⊢ bitwise' f 0 n = bif f false true then n else 0

tactic: rw [binaryRec_zero]
state_before: f : Bool → Bool → Bool
n : ℕ
⊢ binaryRec (fun n => bif f false true then n else 0)
      (fun a m Ia => binaryRec (bif f true false then bit a m else 0) fun b n x => bit (f a b) (Ia n)) 0 n =
    bif f false true then n else 0
Theorem: Finset.union_inter_cancel_left
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [← coe_inj, coe_inter, coe_union, Set.union_inter_cancel_left]
state_before: α : Type u_1
β : Type ?u.180294
γ : Type ?u.180297
inst✝ : DecidableEq α
s✝ s₁ s₂ t✝ t₁ t₂ u v : Finset α
a b : α
s t : Finset α
⊢ (s ∪ t) ∩ s = s
Theorem: IsCompl.bihimp_eq_bot
File: Mathlib/Order/SymmDiff.lean

tactic: rw [h.eq_compl, compl_bihimp_self]
state_before: ι : Type ?u.59002
α : Type u_1
β : Type ?u.59008
π : ι → Type ?u.59013
inst✝ : HeytingAlgebra α
a✝ a b : α
h : IsCompl a b
⊢ a ⇔ b = ⊥