1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Equiv.Perm.subtypeCongrHom_injective
File: Mathlib/GroupTheory/Perm/Basic.lean

tactic: rintro ⟨⟩ ⟨⟩ h
state_before: α : Type u
β : Type v
p : α → Prop
inst✝ : DecidablePred p
⊢ Function.Injective ⇑(subtypeCongrHom p)
state_after: case mk.mk
α : Type u
β : Type v
p : α → Prop
inst✝ : DecidablePred p
fst✝¹ : Perm { a // p a }
snd✝¹ : Perm { a // ¬p a }
fst✝ : Perm { a // p a }
snd✝ : Perm { a // ¬p a }
h : (subtypeCongrHom p) (fst✝¹, snd✝¹) = (subtypeCongrHom p) (fst✝, snd✝)
⊢ (fst✝¹, snd✝¹) = (fst✝, snd✝)

tactic: rw [Prod.mk.inj_iff]
state_before: case mk.mk
α : Type u
β : Type v
p : α → Prop
inst✝ : DecidablePred p
fst✝¹ : Perm { a // p a }
snd✝¹ : Perm { a // ¬p a }
fst✝ : Perm { a // p a }
snd✝ : Perm { a // ¬p a }
h : (subtypeCongrHom p) (fst✝¹, snd✝¹) = (subtypeCongrHom p) (fst✝, snd✝)
⊢ (fst✝¹, snd✝¹) = (fst✝, snd✝)
state_after: case mk.mk
α : Type u
β : Type v
p : α → Prop
inst✝ : DecidablePred p
fst✝¹ : Perm { a // p a }
snd✝¹ : Perm { a // ¬p a }
fst✝ : Perm { a // p a }
snd✝ : Perm { a // ¬p a }
h : (subtypeCongrHom p) (fst✝¹, snd✝¹) = (subtypeCongrHom p) (fst✝, snd✝)
⊢ fst✝¹ = fst✝ ∧ snd✝¹ = snd✝

tactic: constructor <;> ext i <;> simpa using Equiv.congr_fun h i
state_before: case mk.mk
α : Type u
β : Type v
p : α → Prop
inst✝ : DecidablePred p
fst✝¹ : Perm { a // p a }
snd✝¹ : Perm { a // ¬p a }
fst✝ : Perm { a // p a }
snd✝ : Perm { a // ¬p a }
h : (subtypeCongrHom p) (fst✝¹, snd✝¹) = (subtypeCongrHom p) (fst✝, snd✝)
⊢ fst✝¹ = fst✝ ∧ snd✝¹ = snd✝
state_after: no goals
Theorem: MeasureTheory.L1.SimpleFunc.integrable
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: rw [← memℒp_one_iff_integrable]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
f : ↥(Lp.simpleFunc E 1 μ)
⊢ Integrable (↑(Lp.simpleFunc.toSimpleFunc f)) μ
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
f : ↥(Lp.simpleFunc E 1 μ)
⊢ Memℒp (↑(Lp.simpleFunc.toSimpleFunc f)) 1 μ

tactic: exact Lp.simpleFunc.memℒp f
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
f : ↥(Lp.simpleFunc E 1 μ)
⊢ Memℒp (↑(Lp.simpleFunc.toSimpleFunc f)) 1 μ
state_after: no goals
Theorem: MeasureTheory.tendsto_lintegral_thickenedIndicator_of_isClosed
File: Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean

tactic: apply measure_of_cont_bdd_of_tendsto_indicator μ F_closed.measurableSet
  (fun n ↦ thickenedIndicator (δs_pos n) F) fun n ω ↦ thickenedIndicator_le_one (δs_pos n) F ω
state_before: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ Tendsto (fun n => ∫⁻ (ω : Ω), ↑((thickenedIndicator ⋯ F) ω) ∂μ) atTop (𝓝 (μ F))
state_after: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))

tactic: have key := thickenedIndicator_tendsto_indicator_closure δs_pos δs_lim F
state_before: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))
state_after: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key : Tendsto (fun n => ⇑(thickenedIndicator ⋯ F)) atTop (𝓝 ((closure F).indicator fun x => 1))
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))

tactic: rwa [F_closed.closure_eq] at key
state_before: Ω✝ : Type u_1
inst✝⁶ : TopologicalSpace Ω✝
inst✝⁵ : MeasurableSpace Ω✝
inst✝⁴ : OpensMeasurableSpace Ω✝
Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : PseudoEMetricSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
F : Set Ω
F_closed : IsClosed F
δs : ℕ → ℝ
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key : Tendsto (fun n => ⇑(thickenedIndicator ⋯ F)) atTop (𝓝 ((closure F).indicator fun x => 1))
⊢ Tendsto (fun n ω => (thickenedIndicator ⋯ F) ω) atTop (𝓝 (F.indicator fun x => 1))
state_after: no goals
Theorem: TopologicalSpace.OpenNhds.op_map_id_obj
File: Mathlib/Topology/Category/TopCat/OpenNhds.lean

tactic: simp
state_before: X Y : TopCat
f : X ⟶ Y
x : ↑X
U : (OpenNhds x)ᵒᵖ
⊢ (map (𝟙 X) x).op.obj U = U
state_after: no goals
Theorem: Nat.smoothNumbers_compl
File: Mathlib/NumberTheory/SmoothNumbers.lean

tactic: simpa only [smoothNumbers_eq_factoredNumbers]
  using factoredNumbers_compl <| Finset.filter_subset _ (Finset.range N)
state_before: N : ℕ
⊢ N.smoothNumbersᶜ \ {0} ⊆ {n | N ≤ n}
state_after: no goals
Theorem: hammingDist_triangle_right
File: Mathlib/InformationTheory/Hamming.lean

tactic: rw [hammingDist_comm y]
state_before: α : Type u_1
ι : Type u_2
β : ι → Type u_3
inst✝² : Fintype ι
inst✝¹ : (i : ι) → DecidableEq (β i)
γ : ι → Type u_4
inst✝ : (i : ι) → DecidableEq (γ i)
x y z : (i : ι) → β i
⊢ hammingDist x y ≤ hammingDist x z + hammingDist y z
state_after: α : Type u_1
ι : Type u_2
β : ι → Type u_3
inst✝² : Fintype ι
inst✝¹ : (i : ι) → DecidableEq (β i)
γ : ι → Type u_4
inst✝ : (i : ι) → DecidableEq (γ i)
x y z : (i : ι) → β i
⊢ hammingDist x y ≤ hammingDist x z + hammingDist z y

tactic: exact hammingDist_triangle _ _ _
state_before: α : Type u_1
ι : Type u_2
β : ι → Type u_3
inst✝² : Fintype ι
inst✝¹ : (i : ι) → DecidableEq (β i)
γ : ι → Type u_4
inst✝ : (i : ι) → DecidableEq (γ i)
x y z : (i : ι) → β i
⊢ hammingDist x y ≤ hammingDist x z + hammingDist z y
state_after: no goals
Theorem: notBelow_isOpen
File: Mathlib/Topology/OmegaCompletePartialOrder.lean

tactic: have h : Monotone (notBelow y) := fun x z hle ↦ mt hle.trans
state_before: α : Type u_1
inst✝ : OmegaCompletePartialOrder α
y : Scott α
⊢ IsOpen (notBelow y)
state_after: α : Type u_1
inst✝ : OmegaCompletePartialOrder α
y : Scott α
h : Monotone (notBelow y)
⊢ IsOpen (notBelow y)

tactic: refine ⟨h, fun c ↦ eq_of_forall_ge_iff fun z ↦ ?_⟩
state_before: α : Type u_1
inst✝ : OmegaCompletePartialOrder α
y : Scott α
h : Monotone (notBelow y)
⊢ IsOpen (notBelow y)
state_after: α : Type u_1
inst✝ : OmegaCompletePartialOrder α
y : Scott α
h : Monotone (notBelow y)
c : Chain α
z : Prop
⊢ { toFun := fun x => x ∈ notBelow y, monotone' := h } (ωSup c) ≤ z ↔
    ωSup (c.map { toFun := fun x => x ∈ notBelow y, monotone' := h }) ≤ z

tactic: simp only [ωSup_le_iff, notBelow, mem_setOf_eq, le_Prop_eq, OrderHom.coe_mk, Chain.map_coe,
  Function.comp_apply, exists_imp, not_forall]
state_before: α : Type u_1
inst✝ : OmegaCompletePartialOrder α
y : Scott α
h : Monotone (notBelow y)
c : Chain α
z : Prop
⊢ { toFun := fun x => x ∈ notBelow y, monotone' := h } (ωSup c) ≤ z ↔
    ωSup (c.map { toFun := fun x => x ∈ notBelow y, monotone' := h }) ≤ z
state_after: no goals
Theorem: WithBot.unbot_le_iff
File: Mathlib/Order/WithBot.lean

tactic: match a, h with
| some _, _ => simp only [unbot_coe, coe_le_coe]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a✝ b✝ : α
inst✝ : LE α
a : WithBot α
h : a ≠ ⊥
b : α
⊢ a.unbot h ≤ b ↔ a ≤ ↑b
state_after: no goals

tactic: simp only [unbot_coe, coe_le_coe]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
a✝ b✝ : α
inst✝ : LE α
a : WithBot α
h : a ≠ ⊥
b val✝ : α
x✝ : ↑val✝ ≠ ⊥
⊢ (↑val✝).unbot x✝ ≤ b ↔ ↑val✝ ≤ ↑b
state_after: no goals
Theorem: Submodule.map_id
File: Mathlib/Algebra/Module/Submodule/Map.lean

tactic: simp
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p p' : Submodule R M
q q' : Submodule R₂ M₂
x : M
inst✝² : RingHomSurjective σ₁₂
F : Type u_9
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
a : M
⊢ a ∈ map LinearMap.id p ↔ a ∈ p
state_after: no goals
Theorem: MvPolynomial.eq_C_of_isEmpty
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: obtain ⟨x, rfl⟩ := C_surjective σ p
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q : MvPolynomial σ R
inst✝ : IsEmpty σ
p : MvPolynomial σ R
⊢ p = C (coeff 0 p)
state_after: case intro
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p q : MvPolynomial σ R
inst✝ : IsEmpty σ
x : R
⊢ C x = C (coeff 0 (C x))

tactic: simp
state_before: case intro
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p q : MvPolynomial σ R
inst✝ : IsEmpty σ
x : R
⊢ C x = C (coeff 0 (C x))
state_after: no goals
Theorem: Polynomial.coeff_expand_mul
File: Mathlib/Algebra/Polynomial/Expand.lean

tactic: rw [coeff_expand hp, if_pos (dvd_mul_left _ _), Nat.mul_div_cancel _ hp]
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q p : ℕ
hp : 0 < p
f : R[X]
n : ℕ
⊢ ((expand R p) f).coeff (n * p) = f.coeff n
state_after: no goals
Theorem: Set.exists_ne_of_one_lt_encard
File: Mathlib/Data/Set/Card.lean

tactic: by_contra! h'
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
⊢ ∃ b ∈ s, b ≠ a
state_after: α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
⊢ False

tactic: obtain ⟨b, b', hb, hb', hne⟩ := one_lt_encard_iff.1 h
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
⊢ False
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ False

tactic: apply hne
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ False
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ b = b'

tactic: rw [h' b hb, h' b' hb']
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ b = b'
state_after: no goals
Theorem: CategoryTheory.CosimplicialObject.δ_comp_σ_of_gt'
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

tactic: simp only [Fin.not_lt_zero, hi] at H
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : j.succ < i
hi : i = 0
⊢ False
state_after: no goals

tactic: dsimp [δ, σ]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : j.succ < i
⊢ X.δ i ≫ X.σ j = X.σ (j.castLT ⋯) ≫ X.δ (i.pred ⋯)
state_after: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : j.succ < i
⊢ X.map (SimplexCategory.δ i) ≫ X.map (SimplexCategory.σ j) =
    X.map (SimplexCategory.σ (j.castLT ⋯)) ≫ X.map (SimplexCategory.δ (i.pred ⋯))

tactic: simp only [← X.map_comp, ← op_comp, SimplexCategory.δ_comp_σ_of_gt' H]
state_before: C : Type u
inst✝ : Category.{v, u} C
X : CosimplicialObject C
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : j.succ < i
⊢ X.map (SimplexCategory.δ i) ≫ X.map (SimplexCategory.σ j) =
    X.map (SimplexCategory.σ (j.castLT ⋯)) ≫ X.map (SimplexCategory.δ (i.pred ⋯))
state_after: no goals
Theorem: Part.get_eq_iff_eq_some
File: Mathlib/Data/Part.lean

tactic: simp [h.symm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a : Part α
ha : a.Dom
b : α
h : a.get ha = b
⊢ a = some b
state_after: no goals

tactic: simp [h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a : Part α
ha : a.Dom
b : α
h : a = some b
⊢ a.get ha = b
state_after: no goals
Theorem: Nat.log_le_clog
File: Mathlib/Data/Nat/Log.lean

tactic: obtain hb | hb := le_or_lt b 1
state_before: b n : ℕ
⊢ log b n ≤ clog b n
state_after: case inl
b n : ℕ
hb : b ≤ 1
⊢ log b n ≤ clog b n

case inr
b n : ℕ
hb : 1 < b
⊢ log b n ≤ clog b n

tactic: cases n with
| zero =>
  rw [log_zero_right]
  exact zero_le _
| succ n =>
  exact (Nat.pow_le_pow_iff_right hb).1
    ((pow_log_le_self b n.succ_ne_zero).trans <| le_pow_clog hb _)
state_before: case inr
b n : ℕ
hb : 1 < b
⊢ log b n ≤ clog b n
state_after: no goals

tactic: rw [log_of_left_le_one hb]
state_before: case inl
b n : ℕ
hb : b ≤ 1
⊢ log b n ≤ clog b n
state_after: case inl
b n : ℕ
hb : b ≤ 1
⊢ 0 ≤ clog b n

tactic: exact zero_le _
state_before: case inl
b n : ℕ
hb : b ≤ 1
⊢ 0 ≤ clog b n
state_after: no goals

tactic: rw [log_zero_right]
state_before: case inr.zero
b : ℕ
hb : 1 < b
⊢ log b 0 ≤ clog b 0
state_after: case inr.zero
b : ℕ
hb : 1 < b
⊢ 0 ≤ clog b 0

tactic: exact zero_le _
state_before: case inr.zero
b : ℕ
hb : 1 < b
⊢ 0 ≤ clog b 0
state_after: no goals

tactic: exact (Nat.pow_le_pow_iff_right hb).1
  ((pow_log_le_self b n.succ_ne_zero).trans <| le_pow_clog hb _)
state_before: case inr.succ
b : ℕ
hb : 1 < b
n : ℕ
⊢ log b (n + 1) ≤ clog b (n + 1)
state_after: no goals
Theorem: Module.surjective_piEquiv_apply_iff
File: Mathlib/LinearAlgebra/StdBasis.lean

tactic: rw [← LinearMap.range_eq_top, range_piEquiv]
state_before: ι : Type u_1
R : Type u_2
M : Type u_3
N : Type u_4
inst✝⁵ : Finite ι
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid N
inst✝¹ : Module R M
inst✝ : Module R N
v : ι → M
⊢ Surjective ⇑((piEquiv ι R M) v) ↔ span R (range v) = ⊤
state_after: no goals
Theorem: LieSubmodule.disjoint_iff_coe_toSubmodule
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [disjoint_iff, disjoint_iff, ← coe_toSubmodule_eq_iff, inf_coe_toSubmodule, bot_coeSubmodule,
  ← disjoint_iff]
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
⊢ Disjoint N N' ↔ Disjoint ↑N ↑N'
state_after: no goals
Theorem: BialgHom.ext_of_ring
File: Mathlib/RingTheory/Bialgebra/Hom.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A
inst✝¹⁰ : Algebra R A
inst✝⁹ : Semiring B
inst✝⁸ : Algebra R B
inst✝⁷ : Semiring C
inst✝⁶ : Algebra R C
inst✝⁵ : Semiring D
inst✝⁴ : Algebra R D
inst✝³ : CoalgebraStruct R A
inst✝² : CoalgebraStruct R B
inst✝¹ : CoalgebraStruct R C
inst✝ : CoalgebraStruct R D
φ : A →ₐc[R] B
f g : R →ₐc[R] A
h : f 1 = g 1
⊢ (fun x => ↑x) f = (fun x => ↑x) g
state_after: case h
R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A
inst✝¹⁰ : Algebra R A
inst✝⁹ : Semiring B
inst✝⁸ : Algebra R B
inst✝⁷ : Semiring C
inst✝⁶ : Algebra R C
inst✝⁵ : Semiring D
inst✝⁴ : Algebra R D
inst✝³ : CoalgebraStruct R A
inst✝² : CoalgebraStruct R B
inst✝¹ : CoalgebraStruct R C
inst✝ : CoalgebraStruct R D
φ : A →ₐc[R] B
f g : R →ₐc[R] A
h : f 1 = g 1
⊢ ((fun x => ↑x) f) 1 = ((fun x => ↑x) g) 1

tactic: assumption
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
D : Type u_5
inst✝¹² : CommSemiring R
inst✝¹¹ : Semiring A
inst✝¹⁰ : Algebra R A
inst✝⁹ : Semiring B
inst✝⁸ : Algebra R B
inst✝⁷ : Semiring C
inst✝⁶ : Algebra R C
inst✝⁵ : Semiring D
inst✝⁴ : Algebra R D
inst✝³ : CoalgebraStruct R A
inst✝² : CoalgebraStruct R B
inst✝¹ : CoalgebraStruct R C
inst✝ : CoalgebraStruct R D
φ : A →ₐc[R] B
f g : R →ₐc[R] A
h : f 1 = g 1
⊢ ((fun x => ↑x) f) 1 = ((fun x => ↑x) g) 1
state_after: no goals
Theorem: Wbtw.sameRay_vsub_right
File: Mathlib/Analysis/Convex/Between.lean

tactic: rcases h with ⟨t, ⟨_, ht1⟩, rfl⟩
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : StrictOrderedCommRing R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ SameRay R (z -ᵥ x) (z -ᵥ y)
state_after: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : StrictOrderedCommRing R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x z : P
t : R
left✝ : 0 ≤ t
ht1 : t ≤ 1
⊢ SameRay R (z -ᵥ x) (z -ᵥ (lineMap x z) t)

tactic: simpa [lineMap_apply, vsub_vadd_eq_vsub_sub, sub_smul] using
  SameRay.sameRay_nonneg_smul_right (z -ᵥ x) (sub_nonneg.2 ht1)
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : StrictOrderedCommRing R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x z : P
t : R
left✝ : 0 ≤ t
ht1 : t ≤ 1
⊢ SameRay R (z -ᵥ x) (z -ᵥ (lineMap x z) t)
state_after: no goals
Theorem: Matrix.Represents.smul
File: Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean

tactic: delta Matrix.Represents at h ⊢
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
A : Matrix ι ι R
f : Module.End R M
h : Represents b A f
r : R
⊢ Represents b (r • A) (r • f)
state_after: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
A : Matrix ι ι R
f : Module.End R M
h : (PiToModule.fromMatrix R b) A = (PiToModule.fromEnd R b) f
r : R
⊢ (PiToModule.fromMatrix R b) (r • A) = (PiToModule.fromEnd R b) (r • f)

tactic: rw [_root_.map_smul, _root_.map_smul, h]
state_before: ι : Type u_1
inst✝⁴ : Fintype ι
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
b : ι → M
hb : Submodule.span R (Set.range b) = ⊤
inst✝ : DecidableEq ι
A : Matrix ι ι R
f : Module.End R M
h : (PiToModule.fromMatrix R b) A = (PiToModule.fromEnd R b) f
r : R
⊢ (PiToModule.fromMatrix R b) (r • A) = (PiToModule.fromEnd R b) (r • f)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.RightHomologyMapData.homologyMap_comm
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: simp only [γ.homologyMap_eq, assoc, Iso.inv_hom_id, comp_id]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁✝ : S₁.HomologyData
h₂✝ : S₂.HomologyData
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
⊢ homologyMap φ ≫ h₂.homologyIso.hom = h₁.homologyIso.hom ≫ γ.φH
state_after: no goals
Theorem: List.erase_cons_subperm_cons_erase
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: if h : a = b then
  rw [h, erase_cons_head]; apply subperm_cons_erase
else
  have : ¬(a == b) = true := by simp only [beq_false_of_ne h, not_false_eq_true]
  rw [erase_cons_tail _ this]
state_before: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
⊢ (a :: l).erase b <+~ a :: l.erase b
state_after: no goals

tactic: rw [h, erase_cons_head]
state_before: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : a = b
⊢ (a :: l).erase b <+~ a :: l.erase b
state_after: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : a = b
⊢ l <+~ b :: l.erase b

tactic: apply subperm_cons_erase
state_before: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : a = b
⊢ l <+~ b :: l.erase b
state_after: no goals

tactic: have : ¬(a == b) = true := by simp only [beq_false_of_ne h, not_false_eq_true]
state_before: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : ¬a = b
⊢ (a :: l).erase b <+~ a :: l.erase b
state_after: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : ¬a = b
this : ¬(a == b) = true
⊢ (a :: l).erase b <+~ a :: l.erase b

tactic: rw [erase_cons_tail _ this]
state_before: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : ¬a = b
this : ¬(a == b) = true
⊢ (a :: l).erase b <+~ a :: l.erase b
state_after: no goals

tactic: simp only [beq_false_of_ne h, not_false_eq_true]
state_before: α : Type u_1
inst✝ : DecidableEq α
a b : α
l : List α
h : ¬a = b
⊢ ¬(a == b) = true
state_after: no goals
Theorem: Real.floor_real_sqrt_eq_nat_sqrt
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [Int.floor_eq_iff]
state_before: x✝ y✝ x y : ℝ
a : ℕ
⊢ ⌊√↑a⌋ = ↑a.sqrt
state_after: x✝ y✝ x y : ℝ
a : ℕ
⊢ ↑↑a.sqrt ≤ √↑a ∧ √↑a < ↑↑a.sqrt + 1

tactic: exact ⟨nat_sqrt_le_real_sqrt, real_sqrt_lt_nat_sqrt_succ⟩
state_before: x✝ y✝ x y : ℝ
a : ℕ
⊢ ↑↑a.sqrt ≤ √↑a ∧ √↑a < ↑↑a.sqrt + 1
state_after: no goals
Theorem: Finset.dvd_sum
File: Mathlib/Algebra/BigOperators/Ring.lean

tactic: rcases Multiset.mem_map.1 hy with ⟨x, hx, rfl⟩
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s s₁ s₂ : Finset ι
i : ι
a : α
f g : ι → α
inst✝ : NonUnitalSemiring α
h : ∀ i ∈ s, a ∣ f i
y : α
hy : y ∈ Multiset.map (fun i => f i) s.val
⊢ a ∣ y
state_after: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s s₁ s₂ : Finset ι
i : ι
a : α
f g : ι → α
inst✝ : NonUnitalSemiring α
h : ∀ i ∈ s, a ∣ f i
x : ι
hx : x ∈ s.val
hy : f x ∈ Multiset.map (fun i => f i) s.val
⊢ a ∣ f x

tactic: exact h x hx
state_before: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s s₁ s₂ : Finset ι
i : ι
a : α
f g : ι → α
inst✝ : NonUnitalSemiring α
h : ∀ i ∈ s, a ∣ f i
x : ι
hx : x ∈ s.val
hy : f x ∈ Multiset.map (fun i => f i) s.val
⊢ a ∣ f x
state_after: no goals
Theorem: Quiver.cast_eq_of_cons_eq_cons
File: Mathlib/Combinatorics/Quiver/Cast.lean

tactic: rw [Path.cast_eq_iff_heq]
state_before: U : Type u_1
inst✝ : Quiver U
u v v' w : U
p : Path u v
p' : Path u v'
e : v ⟶ w
e' : v' ⟶ w
h : p.cons e = p'.cons e'
⊢ Path.cast ⋯ ⋯ p = p'
state_after: U : Type u_1
inst✝ : Quiver U
u v v' w : U
p : Path u v
p' : Path u v'
e : v ⟶ w
e' : v' ⟶ w
h : p.cons e = p'.cons e'
⊢ HEq p p'

tactic: exact heq_of_cons_eq_cons h
state_before: U : Type u_1
inst✝ : Quiver U
u v v' w : U
p : Path u v
p' : Path u v'
e : v ⟶ w
e' : v' ⟶ w
h : p.cons e = p'.cons e'
⊢ HEq p p'
state_after: no goals