1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AList.insert_lookupFinsupp
File: Mathlib/Data/Finsupp/AList.lean

tactic: ext b
state_before: α : Type u_1
M : Type u_2
inst✝¹ : Zero M
inst✝ : DecidableEq α
l : AList fun _x => M
a : α
m : M
⊢ (insert a m l).lookupFinsupp = l.lookupFinsupp.update a m
state_after: case h
α : Type u_1
M : Type u_2
inst✝¹ : Zero M
inst✝ : DecidableEq α
l : AList fun _x => M
a : α
m : M
b : α
⊢ (insert a m l).lookupFinsupp b = (l.lookupFinsupp.update a m) b

tactic: by_cases h : b = a <;> simp [h]
state_before: case h
α : Type u_1
M : Type u_2
inst✝¹ : Zero M
inst✝ : DecidableEq α
l : AList fun _x => M
a : α
m : M
b : α
⊢ (insert a m l).lookupFinsupp b = (l.lookupFinsupp.update a m) b
state_after: no goals
Theorem: strictMono_iff_forall_covBy
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: refine ⟨fun hf _ _ h ↦ hf h.lt, fun h a b hab ↦ ?_⟩
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
⊢ StrictMono f ↔ ∀ (a b : α), a ⋖ b → f a < f b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
h : ∀ (a b : α), a ⋖ b → f a < f b
a b : α
hab : a < b
⊢ f a < f b

tactic: have := Relation.TransGen.lift f h (a := a) (b := b)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
h : ∀ (a b : α), a ⋖ b → f a < f b
a b : α
hab : a < b
⊢ f a < f b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
h : ∀ (a b : α), a ⋖ b → f a < f b
a b : α
hab : a < b
this : TransGen CovBy a b → TransGen LT.lt (f a) (f b)
⊢ f a < f b

tactic: rw [← lt_iff_transGen_covBy, transGen_eq_self (@lt_trans β _)] at this
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
h : ∀ (a b : α), a ⋖ b → f a < f b
a b : α
hab : a < b
this : TransGen CovBy a b → TransGen LT.lt (f a) (f b)
⊢ f a < f b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
h : ∀ (a b : α), a ⋖ b → f a < f b
a b : α
hab : a < b
this : a < b → f a < f b
⊢ f a < f b

tactic: exact this hab
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
inst✝ : Preorder β
f : α → β
h : ∀ (a b : α), a ⋖ b → f a < f b
a b : α
hab : a < b
this : a < b → f a < f b
⊢ f a < f b
state_after: no goals
Theorem: QuasispectrumRestricts.compactSpace
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: rw [← isCompact_iff_compactSpace] at h_cpct ⊢
state_before: 𝕜 : Type u_1
A✝ : Type u_2
R : Type u_3
S : Type u_4
A : Type u_5
inst✝¹⁰ : Semifield R
inst✝⁹ : Field S
inst✝⁸ : NonUnitalRing A
inst✝⁷ : Algebra R S
inst✝⁶ : Module R A
inst✝⁵ : Module S A
inst✝⁴ : IsScalarTower S A A
inst✝³ : SMulCommClass S A A
inst✝² : IsScalarTower R S A
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSpace S
a : A
f : C(S, R)
h : QuasispectrumRestricts a ⇑f
h_cpct : CompactSpace ↑(σₙ S a)
⊢ CompactSpace ↑(σₙ R a)
state_after: 𝕜 : Type u_1
A✝ : Type u_2
R : Type u_3
S : Type u_4
A : Type u_5
inst✝¹⁰ : Semifield R
inst✝⁹ : Field S
inst✝⁸ : NonUnitalRing A
inst✝⁷ : Algebra R S
inst✝⁶ : Module R A
inst✝⁵ : Module S A
inst✝⁴ : IsScalarTower S A A
inst✝³ : SMulCommClass S A A
inst✝² : IsScalarTower R S A
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSpace S
a : A
f : C(S, R)
h : QuasispectrumRestricts a ⇑f
h_cpct : IsCompact (σₙ S a)
⊢ IsCompact (σₙ R a)

tactic: exact h.image ▸ h_cpct.image (map_continuous f)
state_before: 𝕜 : Type u_1
A✝ : Type u_2
R : Type u_3
S : Type u_4
A : Type u_5
inst✝¹⁰ : Semifield R
inst✝⁹ : Field S
inst✝⁸ : NonUnitalRing A
inst✝⁷ : Algebra R S
inst✝⁶ : Module R A
inst✝⁵ : Module S A
inst✝⁴ : IsScalarTower S A A
inst✝³ : SMulCommClass S A A
inst✝² : IsScalarTower R S A
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSpace S
a : A
f : C(S, R)
h : QuasispectrumRestricts a ⇑f
h_cpct : IsCompact (σₙ S a)
⊢ IsCompact (σₙ R a)
state_after: no goals
Theorem: SzemerediRegularity.card_le_m_add_one_of_mem_chunk_parts
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean

tactic: simp [i]
state_before: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
P : Finpartition univ
hP : P.IsEquipartition
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : ℝ
U : Finset α
hU : U ∈ P.parts
V : Finset α
𝒜 : Finset (Finset α)
s : Finset α
hs : s ∈ (chunk hP G ε hU).parts
i : s.card = m
⊢ s.card ≤ m + 1
state_after: no goals
Theorem: Fin.prod_univ_seven
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: rw [prod_univ_castSucc, prod_univ_six]
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 7 → β
⊢ ∏ i : Fin 7, f i = f 0 * f 1 * f 2 * f 3 * f 4 * f 5 * f 6
state_after: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 7 → β
⊢ f (castSucc 0) * f (castSucc 1) * f (castSucc 2) * f (castSucc 3) * f (castSucc 4) * f (castSucc 5) * f (last 6) =
    f 0 * f 1 * f 2 * f 3 * f 4 * f 5 * f 6

tactic: rfl
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
f : Fin 7 → β
⊢ f (castSucc 0) * f (castSucc 1) * f (castSucc 2) * f (castSucc 3) * f (castSucc 4) * f (castSucc 5) * f (last 6) =
    f 0 * f 1 * f 2 * f 3 * f 4 * f 5 * f 6
state_after: no goals
Theorem: Submonoid.fromLeftInv_eq_iff
File: Mathlib/GroupTheory/Submonoid/Inverses.lean

tactic: rw [← IsUnit.mul_right_inj (leftInv_le_isUnit _ a.prop), S.mul_fromLeftInv, eq_comm]
state_before: M : Type u_1
inst✝ : CommMonoid M
S : Submonoid M
a : ↥S.leftInv
b : M
⊢ ↑(S.fromLeftInv a) = b ↔ ↑a * b = 1
state_after: no goals
Theorem: Setoid.eqv_classes_of_disjoint_union
File: Mathlib/Data/Setoid/Partition.lean

tactic: rw [hu]
state_before: α : Type u_1
c : Set (Set α)
hu : ⋃₀ c = Set.univ
H : c.PairwiseDisjoint id
a : α
⊢ a ∈ ⋃₀ c
state_after: α : Type u_1
c : Set (Set α)
hu : ⋃₀ c = Set.univ
H : c.PairwiseDisjoint id
a : α
⊢ a ∈ Set.univ

tactic: exact Set.mem_univ a
state_before: α : Type u_1
c : Set (Set α)
hu : ⋃₀ c = Set.univ
H : c.PairwiseDisjoint id
a : α
⊢ a ∈ Set.univ
state_after: no goals
Theorem: spectrum.map_pow
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: simpa only [aeval_X_pow, eval_pow, eval_X] using map_polynomial_aeval a (X ^ n)
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝³ : NormedRing A
inst✝² : NormedAlgebra ℂ A
inst✝¹ : CompleteSpace A
inst✝ : Nontrivial A
a : A
n : ℕ
⊢ spectrum ℂ (a ^ n) = (fun x => x ^ n) '' spectrum ℂ a
state_after: no goals
Theorem: PadicInt.lift_self
File: Mathlib/NumberTheory/Padics/RingHoms.lean

tactic: show _ = RingHom.id _ z
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
⊢ (lift ⋯) z = z
state_after: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
⊢ (lift ⋯) z = (RingHom.id ℤ_[p]) z

tactic: rw [@lift_unique p _ ℤ_[p] _ _ zmod_cast_comp_toZModPow (RingHom.id ℤ_[p])]
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
⊢ (lift ⋯) z = (RingHom.id ℤ_[p]) z
state_after: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
⊢ ∀ (n : ℕ), (toZModPow n).comp (RingHom.id ℤ_[p]) = toZModPow n

tactic: intro
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
⊢ ∀ (n : ℕ), (toZModPow n).comp (RingHom.id ℤ_[p]) = toZModPow n
state_after: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
n✝ : ℕ
⊢ (toZModPow n✝).comp (RingHom.id ℤ_[p]) = toZModPow n✝

tactic: rw [RingHom.comp_id]
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), (ZMod.castHom ⋯ (ZMod (p ^ k1))).comp (f k2) = f k1
z : ℤ_[p]
n✝ : ℕ
⊢ (toZModPow n✝).comp (RingHom.id ℤ_[p]) = toZModPow n✝
state_after: no goals
Theorem: Real.arsinh_nonpos_iff
File: Mathlib/Analysis/SpecialFunctions/Arsinh.lean

tactic: rw [← sinh_le_sinh, sinh_zero, sinh_arsinh]
state_before: x y : ℝ
⊢ arsinh x ≤ 0 ↔ x ≤ 0
state_after: no goals
Theorem: List.prod_eq_zero
File: Mathlib/Algebra/BigOperators/Ring/List.lean

tactic: rw [prod_cons]
state_before: ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
⊢ (a :: l).prod = 0
state_after: ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
⊢ a * l.prod = 0

tactic: cases' mem_cons.1 h with ha hl
state_before: ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
⊢ a * l.prod = 0
state_after: case inl
ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
ha : 0 = a
⊢ a * l.prod = 0

case inr
ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
hl : 0 ∈ l
⊢ a * l.prod = 0

tactic: exacts [mul_eq_zero_of_left ha.symm _, mul_eq_zero_of_right _ (prod_eq_zero hl)]
state_before: case inl
ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
ha : 0 = a
⊢ a * l.prod = 0

case inr
ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MonoidWithZero M₀
l✝ : List M₀
a : M₀
l : List M₀
h : 0 ∈ a :: l
hl : 0 ∈ l
⊢ a * l.prod = 0
state_after: no goals
Theorem: associated_zero_iff_eq_zero
File: Mathlib/Algebra/Associated.lean

tactic: let ⟨u, h⟩ := h.symm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MonoidWithZero α
a : α
h : a ~ᵤ 0
⊢ a = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MonoidWithZero α
a : α
h✝ : a ~ᵤ 0
u : αˣ
h : 0 * ↑u = a
⊢ a = 0

tactic: simpa using h.symm
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MonoidWithZero α
a : α
h✝ : a ~ᵤ 0
u : αˣ
h : 0 * ↑u = a
⊢ a = 0
state_after: no goals
Theorem: Submodule.one_mul
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: conv_lhs => rw [one_eq_span, ← span_eq M]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
⊢ 1 * M = M
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
⊢ span R {1} * span R ↑M = M

tactic: erw [span_mul_span, one_mul, span_eq]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n : A
⊢ span R {1} * span R ↑M = M
state_after: no goals
Theorem: Continuous.min
File: Mathlib/Topology/Order/OrderClosed.lean

tactic: simp only [min_def]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ Continuous fun b => min (f b) (g b)
state_after: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ Continuous fun b => if f b ≤ g b then f b else g b

tactic: exact hf.if_le hg hf hg fun x => id
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ Continuous fun b => if f b ≤ g b then f b else g b
state_after: no goals
Theorem: CategoryTheory.Limits.prod.diag_map_fst_snd
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

tactic: simp
state_before: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ X Y : C
inst✝¹ : HasBinaryProduct X Y
inst✝ : HasBinaryProduct (X ⨯ Y) (X ⨯ Y)
⊢ diag (X ⨯ Y) ≫ map fst snd = 𝟙 (X ⨯ Y)
state_after: no goals
Theorem: Equiv.Perm.toList_formPerm_nil
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x✝ x : α
⊢ [].formPerm.toList x = []
state_after: no goals
Theorem: inv_le_inv_of_neg
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [← one_div, div_le_iff_of_neg ha, ← div_eq_inv_mul, div_le_iff_of_neg hb, one_mul]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : a < 0
hb : b < 0
⊢ a⁻¹ ≤ b⁻¹ ↔ b ≤ a
state_after: no goals
Theorem: Filter.Tendsto.neg_mul_atTop
File: Mathlib/Topology/Algebra/Order/Field.lean

tactic: simpa only [mul_comm] using hg.atTop_mul_neg hC hf
state_before: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
C : 𝕜
hC : C < 0
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
⊢ Tendsto (fun x => f x * g x) l atBot
state_after: no goals
Theorem: Finpartition.energy_le_one
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean

tactic: rw [offDiag_card, one_mul]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ ↑P.parts.offDiag.card ≤ 1 * ↑P.parts.card ^ 2
state_after: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ ↑(P.parts.card * P.parts.card - P.parts.card) ≤ ↑P.parts.card ^ 2

tactic: norm_cast
state_before: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ ↑(P.parts.card * P.parts.card - P.parts.card) ≤ ↑P.parts.card ^ 2
state_after: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ P.parts.card * P.parts.card - P.parts.card ≤ P.parts.card ^ 2

tactic: rw [sq]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ P.parts.card * P.parts.card - P.parts.card ≤ P.parts.card ^ 2
state_after: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ P.parts.card * P.parts.card - P.parts.card ≤ P.parts.card * P.parts.card

tactic: exact tsub_le_self
state_before: α : Type u_1
inst✝¹ : DecidableEq α
s : Finset α
P : Finpartition s
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
⊢ P.parts.card * P.parts.card - P.parts.card ≤ P.parts.card * P.parts.card
state_after: no goals
Theorem: Polynomial.nnqsmul_eq_C_mul
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [← NNRat.smul_one_eq_cast, ← Polynomial.smul_C, C_1, smul_one_mul]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : DivisionSemiring R
q : ℚ≥0
f : R[X]
⊢ q • f = C ↑q * f
state_after: no goals
Theorem: Nat.norm_cast_le
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
⊢ ‖↑0‖ ≤ ↑0 * ‖1‖
state_after: no goals

tactic: rw [n.cast_succ, n.cast_succ, add_mul, one_mul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑(n + 1)‖ ≤ ↑(n + 1) * ‖1‖
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑n + 1‖ ≤ ↑n * ‖1‖ + ‖1‖

tactic: exact norm_add_le_of_le (Nat.norm_cast_le n) le_rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑n + 1‖ ≤ ↑n * ‖1‖ + ‖1‖
state_after: no goals
Theorem: RootPairing.coroot_eq_coreflection_of_root_eq
File: Mathlib/LinearAlgebra/RootSystem/Defs.lean

tactic: rw [← P.root_reflection_perm, EmbeddingLike.apply_eq_iff_eq] at hk
state_before: ι : Type u_1
R : Type u_2
M : Type u_3
N : Type u_4
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
P : RootPairing ι R M N
i✝ j✝ i j k : ι
hk : P.root k = (P.reflection i) (P.root j)
⊢ P.coroot k = (P.coreflection i) (P.coroot j)
state_after: ι : Type u_1
R : Type u_2
M : Type u_3
N : Type u_4
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
P : RootPairing ι R M N
i✝ j✝ i j k : ι
hk : k = (P.reflection_perm i) j
⊢ P.coroot k = (P.coreflection i) (P.coroot j)

tactic: rw [← P.coroot_reflection_perm, hk]
state_before: ι : Type u_1
R : Type u_2
M : Type u_3
N : Type u_4
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
P : RootPairing ι R M N
i✝ j✝ i j k : ι
hk : k = (P.reflection_perm i) j
⊢ P.coroot k = (P.coreflection i) (P.coroot j)
state_after: no goals
Theorem: CategoryTheory.Limits.comp_factorThruImage_eq_zero
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: simp [h]
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroMorphisms C
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : HasImage g
h : f ≫ g = 0
⊢ (f ≫ factorThruImage g) ≫ image.ι g = 0
state_after: no goals
Theorem: SimplexCategory.δ_comp_σ_succ'
File: Mathlib/AlgebraicTopology/SimplexCategory.lean

tactic: subst H
state_before: n : ℕ
j : Fin (n + 2)
i : Fin (n + 1)
H : j = i.succ
⊢ δ j ≫ σ i = 𝟙 [n]
state_after: n : ℕ
i : Fin (n + 1)
⊢ δ i.succ ≫ σ i = 𝟙 [n]

tactic: rw [δ_comp_σ_succ]
state_before: n : ℕ
i : Fin (n + 1)
⊢ δ i.succ ≫ σ i = 𝟙 [n]
state_after: no goals
Theorem: PNat.Coprime.factor_eq_gcd_right_right
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [gcd_comm]
state_before: a b m n : ℕ+
cop : m.Coprime n
am : a ∣ m
bn : b ∣ n
⊢ a = m.gcd (b * a)
state_after: a b m n : ℕ+
cop : m.Coprime n
am : a ∣ m
bn : b ∣ n
⊢ a = (b * a).gcd m

tactic: apply Coprime.factor_eq_gcd_right cop am bn
state_before: a b m n : ℕ+
cop : m.Coprime n
am : a ∣ m
bn : b ∣ n
⊢ a = (b * a).gcd m
state_after: no goals
Theorem: Function.periodicOrbit_eq_nil_iff_not_periodic_pt
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: simp only [periodicOrbit.eq_1, Cycle.coe_eq_nil, List.map_eq_nil, List.range_eq_nil]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ periodicOrbit f x = Cycle.nil ↔ x ∉ periodicPts f
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ minimalPeriod f x = 0 ↔ x ∉ periodicPts f

tactic: exact minimalPeriod_eq_zero_iff_nmem_periodicPts
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ minimalPeriod f x = 0 ↔ x ∉ periodicPts f
state_after: no goals
Theorem: intervalIntegral.integral_cases
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegral_eq_integral_uIoc]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b✝ : ℝ
f✝ g : ℝ → E
μ : Measure ℝ
f : ℝ → E
a b : ℝ
⊢ ∫ (x : ℝ) in a..b, f x ∂μ ∈ {∫ (x : ℝ) in Ι a b, f x ∂μ, -∫ (x : ℝ) in Ι a b, f x ∂μ}
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b✝ : ℝ
f✝ g : ℝ → E
μ : Measure ℝ
f : ℝ → E
a b : ℝ
⊢ (if a ≤ b then 1 else -1) • ∫ (x : ℝ) in Ι a b, f x ∂μ ∈ {∫ (x : ℝ) in Ι a b, f x ∂μ, -∫ (x : ℝ) in Ι a b, f x ∂μ}

tactic: split_ifs <;> simp
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a✝ b✝ : ℝ
f✝ g : ℝ → E
μ : Measure ℝ
f : ℝ → E
a b : ℝ
⊢ (if a ≤ b then 1 else -1) • ∫ (x : ℝ) in Ι a b, f x ∂μ ∈ {∫ (x : ℝ) in Ι a b, f x ∂μ, -∫ (x : ℝ) in Ι a b, f x ∂μ}
state_after: no goals
Theorem: Matrix.linearIndependent_cols_iff_isUnit
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: rw [← transpose_transpose A, isUnit_transpose, linearIndependent_rows_iff_isUnit,
  transpose_transpose]
state_before: l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝⁴ : DecidableEq m
inst✝³ : DecidableEq n
R : Type u_2
K : Type u_3
inst✝² : CommRing R
inst✝¹ : Field K
inst✝ : Fintype m
A : Matrix m m K
⊢ (LinearIndependent K fun i => Aᵀ i) ↔ IsUnit A
state_after: no goals
Theorem: PEquiv.isSome_symm_get
File: Mathlib/Data/PEquiv.lean

tactic: rw [f.eq_some_iff, some_get]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
a : α
h : (f a).isSome = true
⊢ f.symm ((f a).get h) = some a
state_after: no goals
Theorem: Multiset.map_add_right_Ico
File: Mathlib/Algebra/Order/Interval/Multiset.lean

tactic: simp_rw [add_comm _ c]
state_before: α : Type u_1
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
a b c : α
⊢ map (fun x => x + c) (Ico a b) = Ico (a + c) (b + c)
state_after: α : Type u_1
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
a b c : α
⊢ map (fun x => c + x) (Ico a b) = Ico (c + a) (c + b)

tactic: exact map_add_left_Ico _ _ _
state_before: α : Type u_1
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
a b c : α
⊢ map (fun x => c + x) (Ico a b) = Ico (c + a) (c + b)
state_after: no goals
Theorem: CategoryTheory.Limits.parallelPair_functor_obj
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: cases j <;> rfl
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
F : WalkingParallelPair ⥤ C
j : WalkingParallelPair
⊢ (parallelPair (F.map left) (F.map right)).obj j = F.obj j
state_after: no goals
Theorem: discreteTopology_of_isOpen_singleton_one
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [← singletons_open_iff_discrete]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
⊢ DiscreteTopology G
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
⊢ ∀ (a : G), IsOpen {a}

tactic: intro g
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
⊢ ∀ (a : G), IsOpen {a}
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
g : G
⊢ IsOpen {g}

tactic: simp only [mul_one, Set.preimage_mul_left_singleton, eq_self_iff_true, inv_inv,
  Set.singleton_eq_singleton_iff]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
g : G
⊢ {g} = (fun x => g⁻¹ * x) ⁻¹' {1}
state_after: no goals

tactic: rw [this]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
g : G
this : {g} = (fun x => g⁻¹ * x) ⁻¹' {1}
⊢ IsOpen {g}
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
g : G
this : {g} = (fun x => g⁻¹ * x) ⁻¹' {1}
⊢ IsOpen ((fun x => g⁻¹ * x) ⁻¹' {1})

tactic: exact (continuous_mul_left g⁻¹).isOpen_preimage _ h
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : ContinuousMul G
h : IsOpen {1}
g : G
this : {g} = (fun x => g⁻¹ * x) ⁻¹' {1}
⊢ IsOpen ((fun x => g⁻¹ * x) ⁻¹' {1})
state_after: no goals