tasksource/leandojo huggingface dataset:
Theorem: Finset.weightedVSubOfPoint_eq_of_weights_eq
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp only [Finset.weightedVSubOfPoint_apply]
state_before: k : Type u_2
V : Type u_3
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.26193
s₂ : Finset ι₂
p : ι → P
j : ι
w₁ w₂ : ι → k
hw : ∀ (i : ι), i ≠ j → w₁ i = w₂ i
⊢ ↑(weightedVSubOfPoint s p (p j)) w₁ = ↑(weightedVSubOfPoint s p (p j)) w₂

tactic: congr
state_before: k : Type u_2
V : Type u_3
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.26193
s₂ : Finset ι₂
p : ι → P
j : ι
w₁ w₂ : ι → k
hw : ∀ (i : ι), i ≠ j → w₁ i = w₂ i
⊢ ∑ i in s, w₁ i • (p i -ᵥ p j) = ∑ i in s, w₂ i • (p i -ᵥ p j)

tactic: ext i
state_before: case e_f
k : Type u_2
V : Type u_3
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.26193
s₂ : Finset ι₂
p : ι → P
j : ι
w₁ w₂ : ι → k
hw : ∀ (i : ι), i ≠ j → w₁ i = w₂ i
⊢ (fun i => w₁ i • (p i -ᵥ p j)) = fun i => w₂ i • (p i -ᵥ p j)

tactic: cases' eq_or_ne i j with h h
state_before: case e_f.h
k : Type u_2
V : Type u_3
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.26193
s₂ : Finset ι₂
p : ι → P
j : ι
w₁ w₂ : ι → k
hw : ∀ (i : ι), i ≠ j → w₁ i = w₂ i
i : ι
⊢ w₁ i • (p i -ᵥ p j) = w₂ i • (p i -ᵥ p j)

tactic: simp [h]
state_before: case e_f.h.inl
k : Type u_2
V : Type u_3
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.26193
s₂ : Finset ι₂
p : ι → P
j : ι
w₁ w₂ : ι → k
hw : ∀ (i : ι), i ≠ j → w₁ i = w₂ i
i : ι
h : i = j
⊢ w₁ i • (p i -ᵥ p j) = w₂ i • (p i -ᵥ p j)

tactic: simp [hw i h]
state_before: case e_f.h.inr
k : Type u_2
V : Type u_3
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.26193
s₂ : Finset ι₂
p : ι → P
j : ι
w₁ w₂ : ι → k
hw : ∀ (i : ι), i ≠ j → w₁ i = w₂ i
i : ι
h : i ≠ j
⊢ w₁ i • (p i -ᵥ p j) = w₂ i • (p i -ᵥ p j)
Theorem: Submodule.smul_comap_le_comap_smul
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: refine' Submodule.smul_le.mpr fun r hr x hx => _
state_before: R : Type u
M : Type v
F : Type ?u.162652
G : Type ?u.162655
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'
f : M →ₗ[R] M'
S : Submodule R M'
I : Ideal R
⊢ I • comap f S ≤ comap f (I • S)

tactic: rw [Submodule.mem_comap] at hx⊢
state_before: R : Type u
M : Type v
F : Type ?u.162652
G : Type ?u.162655
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'
f : M →ₗ[R] M'
S : Submodule R M'
I : Ideal R
r : R
hr : r ∈ I
x : M
hx : x ∈ comap f S
⊢ r • x ∈ comap f (I • S)

tactic: rw [f.map_smul]
state_before: R : Type u
M : Type v
F : Type ?u.162652
G : Type ?u.162655
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'
f : M →ₗ[R] M'
S : Submodule R M'
I : Ideal R
r : R
hr : r ∈ I
x : M
hx : ↑f x ∈ S
⊢ ↑f (r • x) ∈ I • S

tactic: exact Submodule.smul_mem_smul hr hx
state_before: R : Type u
M : Type v
F : Type ?u.162652
G : Type ?u.162655
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'
f : M →ₗ[R] M'
S : Submodule R M'
I : Ideal R
r : R
hr : r ∈ I
x : M
hx : ↑f x ∈ S
⊢ r • ↑f x ∈ I • S
Theorem: Equiv.subset_image
File: Mathlib/Logic/Equiv/Set.lean

tactic: rw [image_subset_iff, e.image_eq_preimage]
state_before: α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : Type u_2
e : α ≃ β
s : Set α
t : Set β
⊢ ↑e.symm '' t ⊆ s ↔ t ⊆ ↑e '' s
Theorem: ENNReal.add_rpow_le_rpow_add
File: Mathlib/Analysis/MeanInequalitiesPow.lean

tactic: have hp_pos : 0 < p := by positivity
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: by_cases h_top : a + b = ⊤
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: obtain ⟨ha_top, hb_top⟩ := add_ne_top.mp h_top
state_before: case neg
ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
h_top : ¬a + b = ⊤
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: lift a to ℝ≥0 using ha_top
state_before: case neg.intro
ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
h_top : ¬a + b = ⊤
ha_top : a ≠ ⊤
hb_top : b ≠ ⊤
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: lift b to ℝ≥0 using hb_top
state_before: case neg.intro.intro
ι : Type u
s : Finset ι
p : ℝ
b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
hb_top : b ≠ ⊤
a : ℝ≥0
h_top : ¬↑a + b = ⊤
⊢ ↑a ^ p + b ^ p ≤ (↑a + b) ^ p

tactic: simpa [← ENNReal.coe_rpow_of_nonneg _ hp_pos.le] using
  ENNReal.coe_le_coe.2 (NNReal.add_rpow_le_rpow_add a b hp1)
state_before: case neg.intro.intro.intro
ι : Type u
s : Finset ι
p : ℝ
hp1 : 1 ≤ p
hp_pos : 0 < p
a b : ℝ≥0
h_top : ¬↑a + ↑b = ⊤
⊢ ↑a ^ p + ↑b ^ p ≤ (↑a + ↑b) ^ p

tactic: positivity
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ 0 < p

tactic: rw [← @ENNReal.rpow_eq_top_iff_of_pos (a + b) p hp_pos] at h_top
state_before: case pos
ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
h_top : a + b = ⊤
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: rw [h_top]
state_before: case pos
ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
h_top : (a + b) ^ p = ⊤
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: exact le_top
state_before: case pos
ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
hp_pos : 0 < p
h_top : (a + b) ^ p = ⊤
⊢ a ^ p + b ^ p ≤ ⊤
Theorem: CategoryTheory.Limits.biprod.lift_eq
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: ext <;> simp [add_comp]
state_before: C : Type u
inst✝³ : Category C
inst✝² : Preadditive C
J : Type
inst✝¹ : Fintype J
X Y : C
inst✝ : HasBinaryBiproduct X Y
T : C
f : T ⟶ X
g : T ⟶ Y
⊢ lift f g = f ≫ inl + g ≫ inr
Theorem: Set.mulIndicator_mul_eq_left
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: refine' (mulIndicator_congr fun x hx => _).trans mulIndicator_mulSupport
state_before: α : Type u_1
β : Type ?u.65680
ι : Type ?u.65683
M : Type u_2
N : Type ?u.65689
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
⊢ mulIndicator (mulSupport f) (f * g) = f

tactic: have : g x = 1 := nmem_mulSupport.1 (disjoint_left.1 h hx)
state_before: α : Type u_1
β : Type ?u.65680
ι : Type ?u.65683
M : Type u_2
N : Type ?u.65689
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
x : α
hx : x ∈ mulSupport f
⊢ (f * g) x = f x

tactic: rw [Pi.mul_apply, this, mul_one]
state_before: α : Type u_1
β : Type ?u.65680
ι : Type ?u.65683
M : Type u_2
N : Type ?u.65689
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
x : α
hx : x ∈ mulSupport f
this : g x = 1
⊢ (f * g) x = f x
Theorem: SemilatticeSup.ext_sup
File: Mathlib/Order/Lattice.lean

tactic: simp only [sup_le_iff]
state_before: α✝ : Type u
β : Type v
inst✝ : SemilatticeSup α✝
a b c✝ d : α✝
α : Type u_1
A B : SemilatticeSup α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
x y c : α
⊢ x ⊔ y ≤ c ↔ x ⊔ y ≤ c

tactic: rw [← H, @sup_le_iff α A, H, H]
state_before: α✝ : Type u
β : Type v
inst✝ : SemilatticeSup α✝
a b c✝ d : α✝
α : Type u_1
A B : SemilatticeSup α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
x y c : α
⊢ x ⊔ y ≤ c ↔ x ≤ c ∧ y ≤ c
Theorem: CategoryTheory.Functor.eqToHom_proj
File: Mathlib/CategoryTheory/Pi/Basic.lean

tactic: subst h
state_before: I : Type w₀
J : Type w₁
C : I → Type u₁
inst✝² : (i : I) → Category (C i)
D : I → Type u₁
inst✝¹ : (i : I) → Category (D i)
A : Type u₁
inst✝ : Category A
x x' : (i : I) → C i
h : x = x'
i : I
⊢ eqToHom h i = eqToHom (_ : x i = x' i)

tactic: rfl
state_before: I : Type w₀
J : Type w₁
C : I → Type u₁
inst✝² : (i : I) → Category (C i)
D : I → Type u₁
inst✝¹ : (i : I) → Category (D i)
A : Type u₁
inst✝ : Category A
x : (i : I) → C i
i : I
⊢ eqToHom (_ : x = x) i = eqToHom (_ : x i = x i)
Theorem: CategoryTheory.Bicategory.associator_naturality_left
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f f' : a ⟶ b
η : f ⟶ f'
g : b ⟶ c
h : c ⟶ d
⊢ η ▷ g ▷ h ≫ (α_ f' g h).hom = (α_ f g h).hom ≫ η ▷ (g ≫ h)
Theorem: Rel.image_univ
File: Mathlib/Data/Rel.lean

tactic: ext y
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.16693
r : Rel α β
⊢ image r Set.univ = codom r

tactic: simp [mem_image, codom]
state_before: case h
α : Type u_2
β : Type u_1
γ : Type ?u.16693
r : Rel α β
y : β
⊢ y ∈ image r Set.univ ↔ y ∈ codom r
Theorem: ModelWithCorners.left_inv
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: refine' I.left_inv' _
state_before: 𝕜 : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
H : Type u_1
inst✝ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
x : H
⊢ ↑(ModelWithCorners.symm I) (↑I x) = x

tactic: simp
state_before: 𝕜 : Type u_3
inst✝³ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
H : Type u_1
inst✝ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
x : H
⊢ x ∈ I.source
Theorem: ContinuousLinearMap.map_smul
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: simp only [RingHom.id_apply, ContinuousLinearMap.map_smulₛₗ]
state_before: R₁ : Type u_1
R₂ : Type ?u.306971
R₃ : Type ?u.306974
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_3
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type ?u.307061
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_2
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type ?u.307079
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type ?u.307088
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : Module R₁ M₂
f : M₁ →L[R₁] M₂
c : R₁
x : M₁
⊢ ↑f (c • x) = c • ↑f x
Theorem: CategoryTheory.Idempotents.Karoubi.coe_X
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

tactic: rfl
state_before: C : Type u_1
inst✝ : Category C
X : C
⊢ (mk X (𝟙 X)).X = X
Theorem: MvPowerSeries.inv_mul_cancel
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [mul_comm, φ.mul_inv_cancel h]
state_before: σ : Type u_1
R : Type ?u.1868042
k : Type u_2
inst✝ : Field k
φ : MvPowerSeries σ k
h : ↑(constantCoeff σ k) φ ≠ 0
⊢ φ⁻¹ * φ = 1
Theorem: Behrend.four_zero_nine_six_lt_exp_sixteen
File: Mathlib/Combinatorics/Additive/Behrend.lean

tactic: rw [← log_lt_iff_lt_exp (show (0 : ℝ) < 4096 by norm_num), show (4096 : ℝ) = 2 ^ 12 by norm_cast,
  log_rpow zero_lt_two]
state_before: α : Type ?u.838456
β : Type ?u.838459
n d k N : ℕ
x : Fin n → ℕ
⊢ 4096 < exp 16

tactic: have : 12 * (0.6931471808 : ℝ) < 16 := by norm_num
state_before: α : Type ?u.838456
β : Type ?u.838459
n d k N : ℕ
x : Fin n → ℕ
⊢ 12 * log 2 < 16

tactic: linarith [log_two_lt_d9]
state_before: α : Type ?u.838456
β : Type ?u.838459
n d k N : ℕ
x : Fin n → ℕ
this : 12 * 0.6931471808 < 16
⊢ 12 * log 2 < 16

tactic: norm_num
state_before: α : Type ?u.838456
β : Type ?u.838459
n d k N : ℕ
x : Fin n → ℕ
⊢ 0 < 4096

tactic: norm_cast
state_before: α : Type ?u.838456
β : Type ?u.838459
n d k N : ℕ
x : Fin n → ℕ
⊢ 4096 = 2 ^ 12

tactic: norm_num
state_before: α : Type ?u.838456
β : Type ?u.838459
n d k N : ℕ
x : Fin n → ℕ
⊢ 12 * 0.6931471808 < 16
Theorem: Equiv.Perm.set_support_zpow_subset
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: intro x
state_before: α : Type u_1
p q : Perm α
n : ℤ
⊢ {x | ↑(p ^ n) x ≠ x} ⊆ {x | ↑p x ≠ x}

tactic: simp only [Set.mem_setOf_eq, Ne.def]
state_before: α : Type u_1
p q : Perm α
n : ℤ
x : α
⊢ x ∈ {x | ↑(p ^ n) x ≠ x} → x ∈ {x | ↑p x ≠ x}

tactic: intro hx H
state_before: α : Type u_1
p q : Perm α
n : ℤ
x : α
⊢ ¬↑(p ^ n) x = x → ¬↑p x = x

tactic: simp [zpow_apply_eq_self_of_apply_eq_self H] at hx
state_before: α : Type u_1
p q : Perm α
n : ℤ
x : α
hx : ¬↑(p ^ n) x = x
H : ↑p x = x
⊢ False
Theorem: SimpleGraph.edgeSet_sdiff
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext ⟨x, y⟩
state_before: ι : Sort ?u.70847
𝕜 : Type ?u.70850
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
G₁ G₂ : SimpleGraph V
⊢ edgeSet (G₁ \ G₂) = edgeSet G₁ \ edgeSet G₂

tactic: rfl
state_before: case h.mk.mk
ι : Sort ?u.70847
𝕜 : Type ?u.70850
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
G₁ G₂ : SimpleGraph V
x✝ : Sym2 V
x y : V
⊢ Quot.mk Setoid.r (x, y) ∈ edgeSet (G₁ \ G₂) ↔ Quot.mk Setoid.r (x, y) ∈ edgeSet G₁ \ edgeSet G₂
Theorem: PEquiv.toMatrix_swap
File: Mathlib/Data/Matrix/PEquiv.lean

tactic: ext
state_before: k : Type ?u.26647
l : Type ?u.26650
m : Type ?u.26653
n : Type u_1
α : Type v
inst✝¹ : DecidableEq n
inst✝ : Ring α
i j : n
⊢ toMatrix (Equiv.toPEquiv (Equiv.swap i j)) =
    1 - toMatrix (single i i) - toMatrix (single j j) + toMatrix (single i j) + toMatrix (single j i)

tactic: dsimp [toMatrix, single, Equiv.swap_apply_def, Equiv.toPEquiv, one_apply]
state_before: case a.h
k : Type ?u.26647
l : Type ?u.26650
m : Type ?u.26653
n : Type u_1
α : Type v
inst✝¹ : DecidableEq n
inst✝ : Ring α
i j i✝ x✝ : n
⊢ toMatrix (Equiv.toPEquiv (Equiv.swap i j)) i✝ x✝ =
    (1 - toMatrix (single i i) - toMatrix (single j j) + toMatrix (single i j) + toMatrix (single j i)) i✝ x✝

tactic: split_ifs <;> simp_all
state_before: case a.h
k : Type ?u.26647
l : Type ?u.26650
m : Type ?u.26653
n : Type u_1
α : Type v
inst✝¹ : DecidableEq n
inst✝ : Ring α
i j i✝ x✝ : n
⊢ (if x✝ ∈ some (if i✝ = i then j else if i✝ = j then i else i✝) then 1 else 0) =
    ((((if i✝ = x✝ then 1 else 0) - if x✝ ∈ if i✝ = i then some i else none then 1 else 0) -
          if x✝ ∈ if i✝ = j then some j else none then 1 else 0) +
        if x✝ ∈ if i✝ = i then some j else none then 1 else 0) +
      if x✝ ∈ if i✝ = j then some i else none then 1 else 0
Theorem: LatticeOrderedCommGroup.sup_sq_eq_mul_mul_abs_div
File: Mathlib/Algebra/Order/LatticeGroup.lean

tactic: rw [← inf_mul_sup a b, ← sup_div_inf_eq_abs_div, div_eq_mul_inv, ← mul_assoc, mul_comm, mul_assoc,
  ← pow_two, inv_mul_cancel_left]
state_before: α : Type u
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ (a ⊔ b) ^ 2 = a * b * abs (b / a)
Theorem: Int.lt_of_sub_neg
File: Std/Data/Int/Lemmas.lean

tactic: have h := Int.add_lt_add_right h b
state_before: a b : Int
h : a - b < 0
⊢ a < b

tactic: rwa [Int.sub_add_cancel, Int.zero_add] at h
state_before: a b : Int
h✝ : a - b < 0
h : a - b + b < 0 + b
⊢ a < b
Theorem: MeasureTheory.AEEqFun.le_sup_right
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [← coeFn_le]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.455830
δ : Type ?u.455833
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeSup β
inst✝ : ContinuousSup β
f g : α →ₘ[μ] β
⊢ g ≤ f ⊔ g

tactic: filter_upwards [coeFn_sup f g] with _ ha
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.455830
δ : Type ?u.455833
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeSup β
inst✝ : ContinuousSup β
f g : α →ₘ[μ] β
⊢ ↑g ≤ᵐ[μ] ↑(f ⊔ g)

tactic: rw [ha]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.455830
δ : Type ?u.455833
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeSup β
inst✝ : ContinuousSup β
f g : α →ₘ[μ] β
a✝ : α
ha : ↑(f ⊔ g) a✝ = ↑f a✝ ⊔ ↑g a✝
⊢ ↑g a✝ ≤ ↑(f ⊔ g) a✝

tactic: exact le_sup_right
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.455830
δ : Type ?u.455833
inst✝⁵ : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : SemilatticeSup β
inst✝ : ContinuousSup β
f g : α →ₘ[μ] β
a✝ : α
ha : ↑(f ⊔ g) a✝ = ↑f a✝ ⊔ ↑g a✝
⊢ ↑g a✝ ≤ ↑f a✝ ⊔ ↑g a✝
Theorem: Metric.glueDist_swap
File: Mathlib/Topology/MetricSpace/Gluing.lean

tactic: simp only [glueDist, Sum.swap_inl, Sum.swap_inr, dist_comm, add_comm]
state_before: X : Type u
Y : Type v
Z : Type w
inst✝¹ : MetricSpace X
inst✝ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
Φ : Z → X
Ψ : Z → Y
ε : ℝ
val✝¹ : X
val✝ : Y
⊢ glueDist Ψ Φ ε (Sum.swap (Sum.inl val✝¹)) (Sum.swap (Sum.inr val✝)) = glueDist Φ Ψ ε (Sum.inl val✝¹) (Sum.inr val✝)

tactic: simp only [glueDist, Sum.swap_inl, Sum.swap_inr, dist_comm, add_comm]
state_before: X : Type u
Y : Type v
Z : Type w
inst✝¹ : MetricSpace X
inst✝ : MetricSpace Y
Φ✝ : Z → X
Ψ✝ : Z → Y
ε✝ : ℝ
Φ : Z → X
Ψ : Z → Y
ε : ℝ
val✝¹ : Y
val✝ : X
⊢ glueDist Ψ Φ ε (Sum.swap (Sum.inr val✝¹)) (Sum.swap (Sum.inl val✝)) = glueDist Φ Ψ ε (Sum.inr val✝¹) (Sum.inl val✝)
Theorem: Set.mem_pow
File: Mathlib/Data/Set/Pointwise/ListOfFn.lean

tactic: rw [← mem_prod_list_ofFn, List.ofFn_const, List.prod_replicate]
state_before: F : Type ?u.11956
α : Type u_1
β : Type ?u.11962
γ : Type ?u.11965
inst✝ : Monoid α
s t : Set α
a✝ : α
m n✝ : ℕ
a : α
n : ℕ
⊢ a ∈ s ^ n ↔ ∃ f, List.prod (List.ofFn fun i => ↑(f i)) = a
Theorem: MeasureTheory.Measure.sum_comm
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: ext1 s hs
state_before: α : Type u_2
β : Type ?u.340429
γ : Type ?u.340432
δ : Type ?u.340435
ι : Type u_3
R : Type ?u.340441
R' : Type ?u.340444
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι' : Type u_1
μ : ι → ι' → Measure α
⊢ (sum fun n => sum (μ n)) = sum fun m => sum fun n => μ n m

tactic: simp_rw [sum_apply _ hs]
state_before: case h
α : Type u_2
β : Type ?u.340429
γ : Type ?u.340432
δ : Type ?u.340435
ι : Type u_3
R : Type ?u.340441
R' : Type ?u.340444
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
ι' : Type u_1
μ : ι → ι' → Measure α
s : Set α
hs : MeasurableSet s
⊢ ↑↑(sum fun n => sum (μ n)) s = ↑↑(sum fun m => sum fun n => μ n m) s

tactic: rw [ENNReal.tsum_comm]
state_before: case h
α : Type u_2
β : Type ?u.340429
γ : Type ?u.340432
δ : Type ?u.340435
ι : Type u_3
R : Type ?u.340441
R' : Type ?u.340444
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
ι' : Type u_1
μ : ι → ι' → Measure α
s : Set α
hs : MeasurableSet s
⊢ (∑' (i : ι) (i_1 : ι'), ↑↑(μ i i_1) s) = ∑' (i : ι') (i_1 : ι), ↑↑(μ i_1 i) s
Theorem: inducing_const_prod
File: Mathlib/Topology/Constructions.lean

tactic: simp_rw [inducing_iff, instTopologicalSpaceProd, induced_inf, induced_compose, Function.comp,
  induced_const, top_inf_eq]
state_before: α : Type u
β : Type v
γ : Type u_1
δ : Type ?u.65761
ε : Type ?u.65764
ζ : Type ?u.65767
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
a : α
f : β → γ
⊢ (Inducing fun x => (a, f x)) ↔ Inducing f
Theorem: SimpleGraph.Subgraph.deleteEdges_deleteEdges
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext <;> simp [and_assoc, not_or]
state_before: ι : Sort ?u.242906
V : Type u
W : Type v
G : SimpleGraph V
G' : Subgraph G
s✝ s s' : Set (Sym2 V)
⊢ deleteEdges (deleteEdges G' s) s' = deleteEdges G' (s ∪ s')
Theorem: CategoryTheory.Functor.ranges_directed
File: Mathlib/CategoryTheory/Filtered.lean

tactic: let ⟨l, li, lk, e⟩ := cospan ij kj
state_before: C : Type u
inst✝¹ : Category C
inst✝ : IsCofilteredOrEmpty C
F : C ⥤ Type u_1
j : C
x✝¹ x✝ : (i : C) ×' (i ⟶ j)
i : C
ij : i ⟶ j
k : C
kj : k ⟶ j
⊢ ∃ z,
    (fun x x_1 => x ⊇ x_1) ((fun f => Set.range (F.map f.snd)) { fst := i, snd := ij })
        ((fun f => Set.range (F.map f.snd)) z) ∧
      (fun x x_1 => x ⊇ x_1) ((fun f => Set.range (F.map f.snd)) { fst := k, snd := kj })
        ((fun f => Set.range (F.map f.snd)) z)

tactic: refine' ⟨⟨l, lk ≫ kj⟩, e ▸ _, _⟩ <;> simp_rw [F.map_comp] <;> apply Set.range_comp_subset_range
state_before: C : Type u
inst✝¹ : Category C
inst✝ : IsCofilteredOrEmpty C
F : C ⥤ Type u_1
j : C
x✝¹ x✝ : (i : C) ×' (i ⟶ j)
i : C
ij : i ⟶ j
k : C
kj : k ⟶ j
l : C
li : l ⟶ i
lk : l ⟶ k
e : li ≫ ij = lk ≫ kj
⊢ ∃ z,
    (fun x x_1 => x ⊇ x_1) ((fun f => Set.range (F.map f.snd)) { fst := i, snd := ij })
        ((fun f => Set.range (F.map f.snd)) z) ∧
      (fun x x_1 => x ⊇ x_1) ((fun f => Set.range (F.map f.snd)) { fst := k, snd := kj })
        ((fun f => Set.range (F.map f.snd)) z)
Theorem: MvPolynomial.supported_empty
File: Mathlib/Data/MvPolynomial/Supported.lean

tactic: simp [supported_eq_adjoin_X]
state_before: σ : Type u_1
τ : Type ?u.127206
R : Type u
S : Type v
r : R
e : ℕ
n m : σ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s t : Set σ
⊢ supported R ∅ = ⊥
Theorem: FiniteField.trace_pow_card
File: Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean

tactic: cases isEmpty_or_nonempty n
state_before: n : Type u_2
inst✝³ : DecidableEq n
inst✝² : Fintype n
K : Type u_1
inst✝¹ : Field K
inst✝ : Fintype K
M : Matrix n n K
⊢ trace (M ^ Fintype.card K) = trace M ^ Fintype.card K

tactic: rw [Matrix.trace_eq_neg_charpoly_coeff, Matrix.trace_eq_neg_charpoly_coeff,
  FiniteField.Matrix.charpoly_pow_card, FiniteField.pow_card]
state_before: case inr
n : Type u_2
inst✝³ : DecidableEq n
inst✝² : Fintype n
K : Type u_1
inst✝¹ : Field K
inst✝ : Fintype K
M : Matrix n n K
h✝ : Nonempty n
⊢ trace (M ^ Fintype.card K) = trace M ^ Fintype.card K

tactic: simp [Matrix.trace]
state_before: case inl
n : Type u_2
inst✝³ : DecidableEq n
inst✝² : Fintype n
K : Type u_1
inst✝¹ : Field K
inst✝ : Fintype K
M : Matrix n n K
h✝ : IsEmpty n
⊢ trace (M ^ Fintype.card K) = trace M ^ Fintype.card K

tactic: rw [zero_pow Fintype.card_pos]
state_before: case inl
n : Type u_2
inst✝³ : DecidableEq n
inst✝² : Fintype n
K : Type u_1
inst✝¹ : Field K
inst✝ : Fintype K
M : Matrix n n K
h✝ : IsEmpty n
⊢ 0 = 0 ^ Fintype.card K
Theorem: List.lookmap_id'
File: Mathlib/Data/List/Basic.lean

tactic: rw [← map_id (l.lookmap f), lookmap_map_eq, map_id]
state_before: ι : Type ?u.346721
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : α → Option α
h : ∀ (a b : α), b ∈ f a → a = b
l : List α
⊢ lookmap f l = l

tactic: exact h
state_before: case h
ι : Type ?u.346721
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : α → Option α
h : ∀ (a b : α), b ∈ f a → a = b
l : List α
⊢ ∀ (a b : α), b ∈ f a → id a = id b