1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: RatFunc.liftOn_mk
File: Mathlib/FieldTheory/RatFunc/Defs.lean

tactic: by_cases hq : q = 0
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p q : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
⊢ (RatFunc.mk p q).liftOn f H = f p q
state_after: case pos
K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p q : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
hq : q = 0
⊢ (RatFunc.mk p q).liftOn f H = f p q

case neg
K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p q : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
hq : ¬q = 0
⊢ (RatFunc.mk p q).liftOn f H = f p q

tactic: subst hq
state_before: case pos
K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p q : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
hq : q = 0
⊢ (RatFunc.mk p q).liftOn f H = f p q
state_after: case pos
K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
⊢ (RatFunc.mk p 0).liftOn f H = f p 0

tactic: simp only [mk_zero, f0, ← Localization.mk_zero 1, Localization.liftOn_mk,
  liftOn_ofFractionRing_mk, Submonoid.coe_one]
state_before: case pos
K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
⊢ (RatFunc.mk p 0).liftOn f H = f p 0
state_after: no goals

tactic: simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, liftOn_ofFractionRing_mk]
state_before: case neg
K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : Sort v
p q : K[X]
f : K[X] → K[X] → P
f0 : ∀ (p : K[X]), f p 0 = f 0 1
H' : ∀ {p q p' q' : K[X]}, q ≠ 0 → q' ≠ 0 → q' * p = q * p' → f p q = f p' q'
H : optParam (∀ {p q p' q' : K[X]}, q ∈ K[X]⁰ → q' ∈ K[X]⁰ → q' * p = q * p' → f p q = f p' q') ⋯
hq : ¬q = 0
⊢ (RatFunc.mk p q).liftOn f H = f p q
state_after: no goals
Theorem: AEMeasurable.nnreal_tsum
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean

tactic: simp_rw [NNReal.tsum_eq_toNNReal_tsum]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u : Set α✝
inst✝² : MeasurableSpace α✝
α : Type u_5
inst✝¹ : MeasurableSpace α
ι : Type u_6
inst✝ : Countable ι
f : ι → α → ℝ≥0
μ : Measure α
h : ∀ (i : ι), AEMeasurable (f i) μ
⊢ AEMeasurable (fun x => ∑' (i : ι), f i x) μ
state_after: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u : Set α✝
inst✝² : MeasurableSpace α✝
α : Type u_5
inst✝¹ : MeasurableSpace α
ι : Type u_6
inst✝ : Countable ι
f : ι → α → ℝ≥0
μ : Measure α
h : ∀ (i : ι), AEMeasurable (f i) μ
⊢ AEMeasurable (fun x => (∑' (b : ι), ↑(f b x)).toNNReal) μ

tactic: exact (AEMeasurable.ennreal_tsum fun i => (h i).coe_nnreal_ennreal).ennreal_toNNReal
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u : Set α✝
inst✝² : MeasurableSpace α✝
α : Type u_5
inst✝¹ : MeasurableSpace α
ι : Type u_6
inst✝ : Countable ι
f : ι → α → ℝ≥0
μ : Measure α
h : ∀ (i : ι), AEMeasurable (f i) μ
⊢ AEMeasurable (fun x => (∑' (b : ι), ↑(f b x)).toNNReal) μ
state_after: no goals
Theorem: Finset.card_pair
File: Mathlib/Data/Finset/Card.lean

tactic: rw [card_insert_of_not_mem (not_mem_singleton.2 h), card_singleton]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s t : Finset α
a b : α
inst✝ : DecidableEq α
h : a ≠ b
⊢ {a, b}.card = 2
state_after: no goals
Theorem: Matrix.toLin_finTwoProd_apply
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: simp [Matrix.toLin_apply, Matrix.mulVec, Matrix.dotProduct]
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁸ : Fintype n
inst✝⁷ : Fintype m
inst✝⁶ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₁
inst✝² : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
M₃ : Type u_7
inst✝¹ : AddCommMonoid M₃
inst✝ : Module R M₃
v₃ : Basis l R M₃
a b c d : R
x : R × R
⊢ ((toLin (Basis.finTwoProd R) (Basis.finTwoProd R)) (of ![![a, b], ![c, d]])) x =
    (a * x.1 + b * x.2, c * x.1 + d * x.2)
state_after: no goals
Theorem: QuotientAddGroup.norm_lift_apply_le
File: Mathlib/Analysis/Normed/Group/Quotient.lean

tactic: cases (norm_nonneg f).eq_or_gt with
| inl h =>
  rcases mk_surjective x with ⟨x, rfl⟩
  simpa [h] using le_opNorm f x
| inr h =>
  rw [← not_lt, ← _root_.lt_div_iff' h, norm_lt_iff]
  rintro ⟨x, rfl, hx⟩
  exact ((lt_div_iff' h).1 hx).not_le (le_opNorm f x)
state_before: M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
x : M ⧸ S
⊢ ‖(lift S f.toAddMonoidHom hf) x‖ ≤ ‖f‖ * ‖x‖
state_after: no goals

tactic: rcases mk_surjective x with ⟨x, rfl⟩
state_before: case inl
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
x : M ⧸ S
h : ‖f‖ = 0
⊢ ‖(lift S f.toAddMonoidHom hf) x‖ ≤ ‖f‖ * ‖x‖
state_after: case inl.intro
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
h : ‖f‖ = 0
x : M
⊢ ‖(lift S f.toAddMonoidHom hf) ↑x‖ ≤ ‖f‖ * ‖↑x‖

tactic: simpa [h] using le_opNorm f x
state_before: case inl.intro
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
h : ‖f‖ = 0
x : M
⊢ ‖(lift S f.toAddMonoidHom hf) ↑x‖ ≤ ‖f‖ * ‖↑x‖
state_after: no goals

tactic: rw [← not_lt, ← _root_.lt_div_iff' h, norm_lt_iff]
state_before: case inr
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
x : M ⧸ S
h : 0 < ‖f‖
⊢ ‖(lift S f.toAddMonoidHom hf) x‖ ≤ ‖f‖ * ‖x‖
state_after: case inr
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
x : M ⧸ S
h : 0 < ‖f‖
⊢ ¬∃ m, ↑m = x ∧ ‖m‖ < ‖(lift S f.toAddMonoidHom hf) x‖ / ‖f‖

tactic: rintro ⟨x, rfl, hx⟩
state_before: case inr
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
x : M ⧸ S
h : 0 < ‖f‖
⊢ ¬∃ m, ↑m = x ∧ ‖m‖ < ‖(lift S f.toAddMonoidHom hf) x‖ / ‖f‖
state_after: case inr.intro.intro
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
h : 0 < ‖f‖
x : M
hx : ‖x‖ < ‖(lift S f.toAddMonoidHom hf) ↑x‖ / ‖f‖
⊢ False

tactic: exact ((lt_div_iff' h).1 hx).not_le (le_opNorm f x)
state_before: case inr.intro.intro
M : Type u_1
N : Type u_2
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
f : NormedAddGroupHom M N
hf : ∀ x ∈ S, f x = 0
h : 0 < ‖f‖
x : M
hx : ‖x‖ < ‖(lift S f.toAddMonoidHom hf) ↑x‖ / ‖f‖
⊢ False
state_after: no goals
Theorem: Multiset.lcm_dedup
File: Mathlib/Algebra/GCDMonoid/Multiset.lean

tactic: simp
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s : Multiset α
⊢ (dedup 0).lcm = lcm 0
state_after: no goals

tactic: by_cases h : a ∈ s <;> simp [IH, h]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
⊢ (a ::ₘ s).dedup.lcm = (a ::ₘ s).lcm
state_after: case pos
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
h : a ∈ s
⊢ s.lcm = GCDMonoid.lcm a s.lcm

tactic: unfold lcm
state_before: case pos
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
h : a ∈ s
⊢ s.lcm = GCDMonoid.lcm a s.lcm
state_after: case pos
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
h : a ∈ s
⊢ fold GCDMonoid.lcm 1 s = GCDMonoid.lcm a (fold GCDMonoid.lcm 1 s)

tactic: rw [← cons_erase h, fold_cons_left, ← lcm_assoc, lcm_same]
state_before: case pos
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
h : a ∈ s
⊢ fold GCDMonoid.lcm 1 s = GCDMonoid.lcm a (fold GCDMonoid.lcm 1 s)
state_after: case pos
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
h : a ∈ s
⊢ GCDMonoid.lcm a (fold GCDMonoid.lcm 1 (s.erase a)) = GCDMonoid.lcm (normalize a) (fold GCDMonoid.lcm 1 (s.erase a))

tactic: apply lcm_eq_of_associated_left (associated_normalize _)
state_before: case pos
α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizedGCDMonoid α
inst✝ : DecidableEq α
s✝ : Multiset α
a : α
s : Multiset α
IH : s.dedup.lcm = s.lcm
h : a ∈ s
⊢ GCDMonoid.lcm a (fold GCDMonoid.lcm 1 (s.erase a)) = GCDMonoid.lcm (normalize a) (fold GCDMonoid.lcm 1 (s.erase a))
state_after: no goals
Theorem: Set.Iic.codisjoint_iff
File: Mathlib/Order/LatticeIntervals.lean

tactic: simpa only [_root_.codisjoint_iff] using Iic.eq_top_iff
state_before: α : Type u_1
a : α
inst✝ : SemilatticeSup α
x y : ↑(Iic a)
⊢ Codisjoint x y ↔ ↑x ⊔ ↑y = a
state_after: no goals
Theorem: Fin.card_Iio
File: Mathlib/Order/Interval/Finset/Fin.lean

tactic: rw [← Nat.card_Iio b, ← map_valEmbedding_Iio, card_map]
state_before: n : ℕ
a b : Fin n
⊢ (Iio b).card = ↑b
state_after: no goals
Theorem: NormedAddGroupHom.range_comp_incl_top
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: simp [comp_range, incl_range, ← AddMonoidHom.range_eq_map]
state_before: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ (f.comp (incl ⊤)).range = f.range
state_after: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ f.toAddMonoidHom.range = f.range

tactic: rfl
state_before: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ f.toAddMonoidHom.range = f.range
state_after: no goals
Theorem: innerDualCone_iUnion
File: Mathlib/Analysis/Convex/Cone/InnerDual.lean

tactic: refine le_antisymm (le_iInf fun i x hx y hy => hx _ <| mem_iUnion_of_mem _ hy) ?_
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
⊢ (⋃ i, f i).innerDualCone = ⨅ i, (f i).innerDualCone
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
⊢ ⨅ i, (f i).innerDualCone ≤ (⋃ i, f i).innerDualCone

tactic: intro x hx y hy
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
⊢ ⨅ i, (f i).innerDualCone ≤ (⋃ i, f i).innerDualCone
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
x : H
hx : x ∈ ⨅ i, (f i).innerDualCone
y : H
hy : y ∈ ⋃ i, f i
⊢ 0 ≤ ⟪y, x⟫_ℝ

tactic: rw [ConvexCone.mem_iInf] at hx
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
x : H
hx : x ∈ ⨅ i, (f i).innerDualCone
y : H
hy : y ∈ ⋃ i, f i
⊢ 0 ≤ ⟪y, x⟫_ℝ
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
x : H
hx : ∀ (i : ι), x ∈ (f i).innerDualCone
y : H
hy : y ∈ ⋃ i, f i
⊢ 0 ≤ ⟪y, x⟫_ℝ

tactic: obtain ⟨j, hj⟩ := mem_iUnion.mp hy
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
x : H
hx : ∀ (i : ι), x ∈ (f i).innerDualCone
y : H
hy : y ∈ ⋃ i, f i
⊢ 0 ≤ ⟪y, x⟫_ℝ
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
x : H
hx : ∀ (i : ι), x ∈ (f i).innerDualCone
y : H
hy : y ∈ ⋃ i, f i
j : ι
hj : y ∈ f j
⊢ 0 ≤ ⟪y, x⟫_ℝ

tactic: exact hx _ _ hj
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s t : Set H
ι : Sort u_6
f : ι → Set H
x : H
hx : ∀ (i : ι), x ∈ (f i).innerDualCone
y : H
hy : y ∈ ⋃ i, f i
j : ι
hj : y ∈ f j
⊢ 0 ≤ ⟪y, x⟫_ℝ
state_after: no goals
Theorem: skewAdjointLieSubalgebraEquiv_symm_apply
File: Mathlib/Algebra/Lie/SkewAdjoint.lean

tactic: simp [skewAdjointLieSubalgebraEquiv]
state_before: R : Type u
M : Type v
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
B : BilinForm R M
N : Type w
inst✝¹ : AddCommGroup N
inst✝ : Module R N
e : N ≃ₗ[R] M
f : ↥(skewAdjointLieSubalgebra B)
⊢ ↑((skewAdjointLieSubalgebraEquiv B e).symm f) = e.symm.lieConj ↑f
state_after: no goals
Theorem: Representation.smul_one_tprod_asModule
File: Mathlib/RepresentationTheory/Basic.lean

tactic: show asAlgebraHom (1 ⊗ ρW) _ _ = _ ⊗ₜ asAlgebraHom ρW _ _
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ let y' := y;
  let z := x ⊗ₜ[k] y;
  r • z = x ⊗ₜ[k] (r • y')
state_after: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ ((1 ⊗ ρW).asAlgebraHom r) (x ⊗ₜ[k] y) = x ⊗ₜ[k] (ρW.asAlgebraHom r) y

tactic: simp only [asAlgebraHom_def, MonoidAlgebra.lift_apply, tprod_apply, MonoidHom.one_apply,
  LinearMap.finsupp_sum_apply, LinearMap.smul_apply, TensorProduct.map_tmul, LinearMap.one_apply]
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ ((1 ⊗ ρW).asAlgebraHom r) (x ⊗ₜ[k] y) = x ⊗ₜ[k] (ρW.asAlgebraHom r) y
state_after: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ (Finsupp.sum r fun i d => d • x ⊗ₜ[k] (ρW i) y) = x ⊗ₜ[k] Finsupp.sum r fun i d => d • (ρW i) y

tactic: simp only [Finsupp.sum, TensorProduct.tmul_sum, TensorProduct.tmul_smul]
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ (Finsupp.sum r fun i d => d • x ⊗ₜ[k] (ρW i) y) = x ⊗ₜ[k] Finsupp.sum r fun i d => d • (ρW i) y
state_after: no goals
Theorem: MeasureTheory.integral_div
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simpa only [← div_eq_mul_inv] using integral_mul_right r⁻¹ f
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
G : Type u_5
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
L : Type u_6
inst✝ : RCLike L
r : L
f : α → L
⊢ ∫ (a : α), f a / r ∂μ = (∫ (a : α), f a ∂μ) / r
state_after: no goals
Theorem: Continuous.range_subset_closure_image_dense
File: Mathlib/Topology/Basic.lean

tactic: rw [← image_univ, ← hs.closure_eq]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f✝² : X → Y
s✝ : Set X
x : X
y : Y
α : Type u_4
ι : Type u_5
f✝¹ : α → X
g : X → Y
f✝ : α → X
s : Set X
f : X → Y
hf : Continuous f
hs : Dense s
⊢ range f ⊆ closure (f '' s)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f✝² : X → Y
s✝ : Set X
x : X
y : Y
α : Type u_4
ι : Type u_5
f✝¹ : α → X
g : X → Y
f✝ : α → X
s : Set X
f : X → Y
hf : Continuous f
hs : Dense s
⊢ f '' closure s ⊆ closure (f '' s)

tactic: exact image_closure_subset_closure_image hf
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f✝² : X → Y
s✝ : Set X
x : X
y : Y
α : Type u_4
ι : Type u_5
f✝¹ : α → X
g : X → Y
f✝ : α → X
s : Set X
f : X → Y
hf : Continuous f
hs : Dense s
⊢ f '' closure s ⊆ closure (f '' s)
state_after: no goals
Theorem: Part.toOption_eq_some_iff
File: Mathlib/Data/Part.lean

tactic: rw [← Option.mem_def, mem_toOption]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
o : Part α
inst✝ : Decidable o.Dom
a : α
⊢ o.toOption = Option.some a ↔ a ∈ o
state_after: no goals
Theorem: hasProd_lt
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: have : update f i 1 ≤ update g i 1 := update_le_update_iff.mpr ⟨rfl.le, fun i _ ↦ h i⟩
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : OrderedCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
inst✝ : OrderClosedTopology α
f g : ι → α
a₁ a₂ : α
i : ι
h : f ≤ g
hi : f i < g i
hf : HasProd f a₁
hg : HasProd g a₂
⊢ a₁ < a₂
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : OrderedCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
inst✝ : OrderClosedTopology α
f g : ι → α
a₁ a₂ : α
i : ι
h : f ≤ g
hi : f i < g i
hf : HasProd f a₁
hg : HasProd g a₂
this : update f i 1 ≤ update g i 1
⊢ a₁ < a₂

tactic: have : 1 / f i * a₁ ≤ 1 / g i * a₂ := hasProd_le this (hf.update i 1) (hg.update i 1)
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : OrderedCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
inst✝ : OrderClosedTopology α
f g : ι → α
a₁ a₂ : α
i : ι
h : f ≤ g
hi : f i < g i
hf : HasProd f a₁
hg : HasProd g a₂
this : update f i 1 ≤ update g i 1
⊢ a₁ < a₂
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : OrderedCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
inst✝ : OrderClosedTopology α
f g : ι → α
a₁ a₂ : α
i : ι
h : f ≤ g
hi : f i < g i
hf : HasProd f a₁
hg : HasProd g a₂
this✝ : update f i 1 ≤ update g i 1
this : 1 / f i * a₁ ≤ 1 / g i * a₂
⊢ a₁ < a₂

tactic: simpa only [one_div, mul_inv_cancel_left] using mul_lt_mul_of_lt_of_le hi this
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝³ : OrderedCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
inst✝ : OrderClosedTopology α
f g : ι → α
a₁ a₂ : α
i : ι
h : f ≤ g
hi : f i < g i
hf : HasProd f a₁
hg : HasProd g a₂
this✝ : update f i 1 ≤ update g i 1
this : 1 / f i * a₁ ≤ 1 / g i * a₂
⊢ a₁ < a₂
state_after: no goals
Theorem: Nat.add_descFactorial_eq_ascFactorial'
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rw [ascFactorial_zero, descFactorial_zero]
state_before: n : ℕ
⊢ (n + 0 - 1).descFactorial 0 = n.ascFactorial 0
state_after: no goals

tactic: rw [descFactorial_succ, ascFactorial_succ, ← succ_add_eq_add_succ,
  add_descFactorial_eq_ascFactorial' _ k, ← succ_ascFactorial, succ_add_sub_one,
  Nat.add_sub_cancel]
state_before: n k : ℕ
⊢ (n + k.succ - 1).descFactorial k.succ = n.ascFactorial k.succ
state_after: no goals
Theorem: inv_eq_of_mul
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: rw [← inv_mul_cancel_left₀ (left_ne_zero_of_mul_eq_one h) b, h, mul_one]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : GroupWithZero G₀
a b c g h✝ x : G₀
h : a * b = 1
⊢ a⁻¹ = b
state_after: no goals
Theorem: image_smul_setₛₗ
File: Mathlib/GroupTheory/GroupAction/Pointwise.lean

tactic: simp only [← image_smul, image_image, map_smulₛₗ h]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
M₁ : Type u_4
M₂ : Type u_5
N : Type u_6
inst✝⁷ : Monoid R
inst✝⁶ : Monoid S
σ : R → S
inst✝⁵ : MulAction R M
inst✝⁴ : MulAction S N
inst✝³ : MulAction R M₁
inst✝² : MulAction R M₂
F : Type u_7
h : F
inst✝¹ : FunLike F M N
inst✝ : MulActionSemiHomClass F σ M N
c : R
s : Set M
t : Set N
⊢ ⇑h '' (c • s) = σ c • ⇑h '' s
state_after: no goals
Theorem: WeierstrassCurve.Projective.nonsingular_zero'
File: Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean

tactic: simpa
state_before: R : Type u
inst✝¹ : CommRing R
W : Projective R
inst✝ : NoZeroDivisors R
Y : R
hy : Y ≠ 0
⊢ W.a₁ * ![0, Y, 0] 1 * ![0, Y, 0] 2 ≠
      3 * ![0, Y, 0] 0 ^ 2 + 2 * W.a₂ * ![0, Y, 0] 0 * ![0, Y, 0] 2 + W.a₄ * ![0, Y, 0] 2 ^ 2 ∨
    ![0, Y, 0] 1 * ![0, Y, 0] 2 ≠
        -![0, Y, 0] 1 * ![0, Y, 0] 2 - W.a₁ * ![0, Y, 0] 0 * ![0, Y, 0] 2 - W.a₃ * ![0, Y, 0] 2 ^ 2 ∨
      ![0, Y, 0] 1 ^ 2 + W.a₁ * ![0, Y, 0] 0 * ![0, Y, 0] 1 + 2 * W.a₃ * ![0, Y, 0] 1 * ![0, Y, 0] 2 ≠
        W.a₂ * ![0, Y, 0] 0 ^ 2 + 2 * W.a₄ * ![0, Y, 0] 0 * ![0, Y, 0] 2 + 3 * W.a₆ * ![0, Y, 0] 2 ^ 2
state_after: no goals
Theorem: congr_heq
File: Mathlib/Logic/Basic.lean

tactic: cases h₂
state_before: α✝ : Sort u_1
α β : Sort u_2
γ : Sort u_3
f : α → γ
g : β → γ
x : α
y : β
h₁ : HEq f g
h₂ : HEq x y
⊢ f x = g y
state_after: case refl
α✝ : Sort u_1
α : Sort u_2
γ : Sort u_3
f : α → γ
x : α
g : α → γ
h₁ : HEq f g
⊢ f x = g x

tactic: cases h₁
state_before: case refl
α✝ : Sort u_1
α : Sort u_2
γ : Sort u_3
f : α → γ
x : α
g : α → γ
h₁ : HEq f g
⊢ f x = g x
state_after: case refl.refl
α✝ : Sort u_1
α : Sort u_2
γ : Sort u_3
f : α → γ
x : α
⊢ f x = f x

tactic: rfl
state_before: case refl.refl
α✝ : Sort u_1
α : Sort u_2
γ : Sort u_3
f : α → γ
x : α
⊢ f x = f x
state_after: no goals