tasksource/leandojo huggingface dataset:
Theorem: HahnSeries.embDomain_single
File: Mathlib/RingTheory/HahnSeries.lean

tactic: ext g'
state_before: Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
⊢ embDomain f (↑(single g) r) = ↑(single (↑f g)) r

tactic: by_cases h : g' = f g
state_before: case coeff.h
Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
g' : Γ'
⊢ coeff (embDomain f (↑(single g) r)) g' = coeff (↑(single (↑f g)) r) g'

tactic: rw [embDomain_notin_image_support, single_coeff_of_ne h]
state_before: case neg
Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
g' : Γ'
h : ¬g' = ↑f g
⊢ coeff (embDomain f (↑(single g) r)) g' = coeff (↑(single (↑f g)) r) g'

tactic: by_cases hr : r = 0
state_before: case neg
Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
g' : Γ'
h : ¬g' = ↑f g
⊢ ¬g' ∈ ↑f '' support (↑(single g) r)

tactic: rwa [support_single_of_ne hr, Set.image_singleton, Set.mem_singleton_iff]
state_before: case neg
Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
g' : Γ'
h : ¬g' = ↑f g
hr : ¬r = 0
⊢ ¬g' ∈ ↑f '' support (↑(single g) r)

tactic: simp [h]
state_before: case pos
Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
g' : Γ'
h : g' = ↑f g
⊢ coeff (embDomain f (↑(single g) r)) g' = coeff (↑(single (↑f g)) r) g'

tactic: simp [hr]
state_before: case pos
Γ : Type u_1
R : Type u_3
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r✝ : R
Γ' : Type u_2
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
g : Γ
r : R
g' : Γ'
h : ¬g' = ↑f g
hr : r = 0
⊢ ¬g' ∈ ↑f '' support (↑(single g) r)
Theorem: Subgroup.prod_top
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: simp [mem_prod, MonoidHom.coe_fst]
state_before: G : Type u_1
G' : Type ?u.297763
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.297772
inst✝² : AddGroup A
H K✝ : Subgroup G
k : Set G
N : Type u_2
inst✝¹ : Group N
P : Type ?u.297799
inst✝ : Group P
K : Subgroup G
x : G × N
⊢ x ∈ prod K ⊤ ↔ x ∈ comap (MonoidHom.fst G N) K
Theorem: LinearMap.coprod_inl_inr
File: Mathlib/LinearAlgebra/Prod.lean

tactic: ext <;>
  simp only [Prod.mk_add_mk, add_zero, id_apply, coprod_apply, inl_apply, inr_apply, zero_add]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type ?u.73472
M₆ : Type ?u.73475
S : Type ?u.73478
inst✝¹³ : Semiring R
inst✝¹² : Semiring S
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : AddCommMonoid M₅
inst✝⁶ : AddCommMonoid M₆
inst✝⁵ : Module R M
inst✝⁴ : Module R M₂
inst✝³ : Module R M₃
inst✝² : Module R M₄
inst✝¹ : Module R M₅
inst✝ : Module R M₆
f : M →ₗ[R] M₂
⊢ coprod (inl R M M₂) (inr R M M₂) = id
Theorem: HilbertBasis.hasSum_orthogonalProjection
File: Mathlib/Analysis/InnerProductSpace/l2Space.lean

tactic: simpa only [b.repr_apply_apply, inner_orthogonalProjection_eq_of_mem_left] using
  b.hasSum_repr (orthogonalProjection U x)
state_before: ι : Type u_3
𝕜 : Type u_1
inst✝⁵ : IsROrC 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type ?u.879353
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
U : Submodule 𝕜 E
inst✝ : CompleteSpace { x // x ∈ U }
b : HilbertBasis ι 𝕜 { x // x ∈ U }
x : E
⊢ HasSum
    (fun i =>
      inner (↑((fun i => ↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 i 1)) i)) x •
        (fun i => ↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 i 1)) i)
    (↑(orthogonalProjection U) x)
Theorem: Real.sqrt_sq
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [sq, sqrt_mul_self h]
state_before: x y : ℝ
h : 0 ≤ x
⊢ sqrt (x ^ 2) = x
Theorem: MeasureTheory.FiniteMeasure.tendsto_testAgainstNN_filter_of_le_const
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: apply
  (ENNReal.tendsto_toNNReal
      (lintegral_lt_top_of_boundedContinuous_to_nnreal (μ : Measure Ω) f).ne).comp
state_before: Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝ : IsCountablyGenerated L
μ : FiniteMeasure Ω
fs : ι → Ω →ᵇ ℝ≥0
c : ℝ≥0
fs_le_const : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂↑μ, ↑(fs i) ω ≤ c
f : Ω →ᵇ ℝ≥0
fs_lim : ∀ᵐ (ω : Ω) ∂↑μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (↑f ω))
⊢ Tendsto (fun i => testAgainstNN μ (fs i)) L (𝓝 (testAgainstNN μ f))

tactic: exact tendsto_lintegral_nn_filter_of_le_const μ fs_le_const fs_lim
state_before: Ω : Type u_2
inst✝³ : MeasurableSpace Ω
inst✝² : TopologicalSpace Ω
inst✝¹ : OpensMeasurableSpace Ω
ι : Type u_1
L : Filter ι
inst✝ : IsCountablyGenerated L
μ : FiniteMeasure Ω
fs : ι → Ω →ᵇ ℝ≥0
c : ℝ≥0
fs_le_const : ∀ᶠ (i : ι) in L, ∀ᵐ (ω : Ω) ∂↑μ, ↑(fs i) ω ≤ c
f : Ω →ᵇ ℝ≥0
fs_lim : ∀ᵐ (ω : Ω) ∂↑μ, Tendsto (fun i => ↑(fs i) ω) L (𝓝 (↑f ω))
⊢ Tendsto (fun i => ∫⁻ (ω : Ω), ↑(↑(fs i) ω) ∂↑μ) L (𝓝 (∫⁻ (ω : Ω), ↑(↑f ω) ∂↑μ))
Theorem: Finset.disjSups_comm
File: Mathlib/Data/Finset/Sups.lean

tactic: ext
state_before: α : Type u_1
inst✝³ : DecidableEq α
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c : α
⊢ s ○ t = t ○ s

tactic: rw [mem_disjSups, mem_disjSups]
state_before: case a
α : Type u_1
inst✝³ : DecidableEq α
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c a✝ : α
⊢ a✝ ∈ s ○ t ↔ a✝ ∈ t ○ s

tactic: rintro ⟨a, ha, b, hb, hd, hs⟩
state_before: case a.mpr
α : Type u_1
inst✝³ : DecidableEq α
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a b c a✝ : α
⊢ (∃ a, a ∈ t ∧ ∃ b, b ∈ s ∧ Disjoint a b ∧ a ⊔ b = a✝) → ∃ a, a ∈ s ∧ ∃ b, b ∈ t ∧ Disjoint a b ∧ a ⊔ b = a✝

tactic: rw [disjoint_comm] at hd
state_before: case a.mpr.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : DecidableEq α
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a✝¹ b✝ c a✝ a : α
ha : a ∈ t
b : α
hb : b ∈ s
hd : Disjoint a b
hs : a ⊔ b = a✝
⊢ ∃ a, a ∈ s ∧ ∃ b, b ∈ t ∧ Disjoint a b ∧ a ⊔ b = a✝

tactic: rw [sup_comm] at hs
state_before: case a.mpr.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : DecidableEq α
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a✝¹ b✝ c a✝ a : α
ha : a ∈ t
b : α
hb : b ∈ s
hd : Disjoint b a
hs : a ⊔ b = a✝
⊢ ∃ a, a ∈ s ∧ ∃ b, b ∈ t ∧ Disjoint a b ∧ a ⊔ b = a✝

tactic: exact ⟨b, hb, a, ha, hd, hs⟩
state_before: case a.mpr.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : DecidableEq α
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s s₁ s₂ t t₁ t₂ u : Finset α
a✝¹ b✝ c a✝ a : α
ha : a ∈ t
b : α
hb : b ∈ s
hd : Disjoint b a
hs : b ⊔ a = a✝
⊢ ∃ a, a ∈ s ∧ ∃ b, b ∈ t ∧ Disjoint a b ∧ a ⊔ b = a✝
Theorem: NNReal.rpow_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: have rpow_pos_of_nonneg : ∀ {p : ℝ}, 0 < p → 0 < x ^ p := by
  intro p hp_pos
  rw [← zero_rpow hp_pos.ne']
  exact rpow_lt_rpow hx_pos hp_pos
state_before: p : ℝ
x : ℝ≥0
hx_pos : 0 < x
⊢ 0 < x ^ p

tactic: rcases lt_trichotomy (0 : ℝ) p with (hp_pos | rfl | hp_neg)
state_before: p : ℝ
x : ℝ≥0
hx_pos : 0 < x
rpow_pos_of_nonneg : ∀ {p : ℝ}, 0 < p → 0 < x ^ p
⊢ 0 < x ^ p

tactic: intro p hp_pos
state_before: p : ℝ
x : ℝ≥0
hx_pos : 0 < x
⊢ ∀ {p : ℝ}, 0 < p → 0 < x ^ p

tactic: rw [← zero_rpow hp_pos.ne']
state_before: p✝ : ℝ
x : ℝ≥0
hx_pos : 0 < x
p : ℝ
hp_pos : 0 < p
⊢ 0 < x ^ p

tactic: exact rpow_lt_rpow hx_pos hp_pos
state_before: p✝ : ℝ
x : ℝ≥0
hx_pos : 0 < x
p : ℝ
hp_pos : 0 < p
⊢ 0 ^ p < x ^ p

tactic: exact rpow_pos_of_nonneg hp_pos
state_before: case inl
p : ℝ
x : ℝ≥0
hx_pos : 0 < x
rpow_pos_of_nonneg : ∀ {p : ℝ}, 0 < p → 0 < x ^ p
hp_pos : 0 < p
⊢ 0 < x ^ p

tactic: simp only [zero_lt_one, rpow_zero]
state_before: case inr.inl
x : ℝ≥0
hx_pos : 0 < x
rpow_pos_of_nonneg : ∀ {p : ℝ}, 0 < p → 0 < x ^ p
⊢ 0 < x ^ 0

tactic: rw [← neg_neg p, rpow_neg, inv_pos]
state_before: case inr.inr
p : ℝ
x : ℝ≥0
hx_pos : 0 < x
rpow_pos_of_nonneg : ∀ {p : ℝ}, 0 < p → 0 < x ^ p
hp_neg : p < 0
⊢ 0 < x ^ p

tactic: exact rpow_pos_of_nonneg (neg_pos.mpr hp_neg)
state_before: case inr.inr
p : ℝ
x : ℝ≥0
hx_pos : 0 < x
rpow_pos_of_nonneg : ∀ {p : ℝ}, 0 < p → 0 < x ^ p
hp_neg : p < 0
⊢ 0 < x ^ (-p)
Theorem: PNat.le_of_dvd
File: Mathlib/Data/PNat/Basic.lean

tactic: rw [dvd_iff']
state_before: m n : ℕ+
⊢ m ∣ n → m ≤ n

tactic: intro h
state_before: m n : ℕ+
⊢ mod n m = m → m ≤ n

tactic: rw [← h]
state_before: m n : ℕ+
h : mod n m = m
⊢ m ≤ n

tactic: apply (mod_le n m).left
state_before: m n : ℕ+
h : mod n m = m
⊢ mod n m ≤ n
Theorem: Ordinal.mk_initialSeg
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [lift_card, ← type_subrel_lt, card_type]
state_before: α : Type ?u.106108
β : Type ?u.106111
γ : Type ?u.106114
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
⊢ (#↑{o' | o' < o}) = Cardinal.lift (card o)
Theorem: Finsupp.single_apply
File: Mathlib/Data/Finsupp/Defs.lean

tactic: classical
simp_rw [@eq_comm _ a a']
convert Pi.single_apply a b a'
state_before: α : Type u_1
β : Type ?u.31212
γ : Type ?u.31215
ι : Type ?u.31218
M : Type u_2
M' : Type ?u.31224
N : Type ?u.31227
P : Type ?u.31230
G : Type ?u.31233
H : Type ?u.31236
R : Type ?u.31239
S : Type ?u.31242
inst✝¹ : Zero M
a a' : α
b : M
inst✝ : Decidable (a = a')
⊢ ↑(single a b) a' = if a = a' then b else 0

tactic: simp_rw [@eq_comm _ a a']
state_before: α : Type u_1
β : Type ?u.31212
γ : Type ?u.31215
ι : Type ?u.31218
M : Type u_2
M' : Type ?u.31224
N : Type ?u.31227
P : Type ?u.31230
G : Type ?u.31233
H : Type ?u.31236
R : Type ?u.31239
S : Type ?u.31242
inst✝¹ : Zero M
a a' : α
b : M
inst✝ : Decidable (a = a')
⊢ ↑(single a b) a' = if a = a' then b else 0

tactic: convert Pi.single_apply a b a'
state_before: α : Type u_1
β : Type ?u.31212
γ : Type ?u.31215
ι : Type ?u.31218
M : Type u_2
M' : Type ?u.31224
N : Type ?u.31227
P : Type ?u.31230
G : Type ?u.31233
H : Type ?u.31236
R : Type ?u.31239
S : Type ?u.31242
inst✝¹ : Zero M
a a' : α
b : M
inst✝ : Decidable (a = a')
⊢ ↑(single a b) a' = if a' = a then b else 0
Theorem: Polynomial.coeff_monomial_succ
File: Mathlib/Data/Polynomial/Basic.lean

tactic: simp [coeff_monomial]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ coeff (↑(monomial (n + 1)) a) 0 = 0
Theorem: Set.exists_isOpen_lt_of_lt
File: Mathlib/MeasureTheory/Measure/Regular.lean

tactic: rcases OuterRegular.outerRegular (measurableSet_toMeasurable μ A) r
    (by rwa [measure_toMeasurable]) with
  ⟨U, hAU, hUo, hU⟩
state_before: α : Type u_1
β : Type ?u.8664
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : OuterRegular μ
A : Set α
r : ℝ≥0∞
hr : ↑↑μ A < r
⊢ ∃ U, U ⊇ A ∧ IsOpen U ∧ ↑↑μ U < r

tactic: exact ⟨U, (subset_toMeasurable _ _).trans hAU, hUo, hU⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.8664
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : OuterRegular μ
A : Set α
r : ℝ≥0∞
hr : ↑↑μ A < r
U : Set α
hAU : U ⊇ toMeasurable μ A
hUo : IsOpen U
hU : ↑↑?m.8932 U < r
⊢ ∃ U, U ⊇ A ∧ IsOpen U ∧ ↑↑μ U < r

tactic: rwa [measure_toMeasurable]
state_before: α : Type u_1
β : Type ?u.8664
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : OuterRegular μ
A : Set α
r : ℝ≥0∞
hr : ↑↑μ A < r
⊢ r > ↑↑μ (toMeasurable μ A)
Theorem: Sylow.subsingleton_of_normal
File: Mathlib/GroupTheory/Sylow.lean

tactic: apply Subsingleton.intro
state_before: G : Type u
α : Type v
β : Type w
inst✝² : Group G
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
P : Sylow p G
h : Normal ↑P
⊢ Subsingleton (Sylow p G)

tactic: intro Q R
state_before: case allEq
G : Type u
α : Type v
β : Type w
inst✝² : Group G
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
P : Sylow p G
h : Normal ↑P
⊢ ∀ (a b : Sylow p G), a = b

tactic: obtain ⟨x, h1⟩ := exists_smul_eq G P Q
state_before: case allEq
G : Type u
α : Type v
β : Type w
inst✝² : Group G
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
P : Sylow p G
h : Normal ↑P
Q R : Sylow p G
⊢ Q = R

tactic: obtain ⟨x, h2⟩ := exists_smul_eq G P R
state_before: case allEq.intro
G : Type u
α : Type v
β : Type w
inst✝² : Group G
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
P : Sylow p G
h : Normal ↑P
Q R : Sylow p G
x : G
h1 : x • P = Q
⊢ Q = R

tactic: rw [Sylow.smul_eq_of_normal] at h1 h2
state_before: case allEq.intro.intro
G : Type u
α : Type v
β : Type w
inst✝² : Group G
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
P : Sylow p G
h : Normal ↑P
Q R : Sylow p G
x✝ : G
h1 : x✝ • P = Q
x : G
h2 : x • P = R
⊢ Q = R

tactic: rw [← h1, ← h2]
state_before: case allEq.intro.intro
G : Type u
α : Type v
β : Type w
inst✝² : Group G
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
P : Sylow p G
h : Normal ↑P
Q R : Sylow p G
x✝ : G
h1 : P = Q
x : G
h2 : P = R
⊢ Q = R
Theorem: PiNat.res_length
File: Mathlib/Topology/MetricSpace/PiNat.lean

tactic: induction n <;> simp [*]
state_before: E : ℕ → Type ?u.20551
α : Type u_1
x : ℕ → α
n : ℕ
⊢ length (res x n) = n
Theorem: integralClosure_map_algEquiv
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: ext y
state_before: R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
⊢ Subalgebra.map (↑f) (integralClosure R A) = integralClosure R B

tactic: rw [Subalgebra.mem_map]
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
y : B
⊢ y ∈ Subalgebra.map (↑f) (integralClosure R A) ↔ y ∈ integralClosure R B

tactic: constructor
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
y : B
⊢ (∃ x, x ∈ integralClosure R A ∧ ↑↑f x = y) ↔ y ∈ integralClosure R B

tactic: rintro ⟨x, hx, rfl⟩
state_before: case h.mp
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
y : B
⊢ (∃ x, x ∈ integralClosure R A ∧ ↑↑f x = y) → y ∈ integralClosure R B

tactic: exact map_isIntegral f hx
state_before: case h.mp.intro.intro
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
x : A
hx : x ∈ integralClosure R A
⊢ ↑↑f x ∈ integralClosure R B

tactic: intro hy
state_before: case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
y : B
⊢ y ∈ integralClosure R B → ∃ x, x ∈ integralClosure R A ∧ ↑↑f x = y

tactic: use f.symm y, map_isIntegral (f.symm : B →ₐ[R] A) hy
state_before: case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
y : B
hy : y ∈ integralClosure R B
⊢ ∃ x, x ∈ integralClosure R A ∧ ↑↑f x = y

tactic: simp
state_before: case h.mpr
R : Type u_1
A : Type u_2
B : Type u_3
S : Type ?u.725847
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝ : R →+* S
f : A ≃ₐ[R] B
y : B
hy : y ∈ integralClosure R B
⊢ ↑↑f (↑(AlgEquiv.symm f) y) = y
Theorem: Polynomial.mul_coeff_zero
File: Mathlib/Data/Polynomial/Coeff.lean

tactic: simp [coeff_mul]
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p✝ q✝ r p q : R[X]
⊢ coeff (p * q) 0 = coeff p 0 * coeff q 0
Theorem: Nat.ArithmeticFunction.vonMangoldt_ne_zero_iff
File: Mathlib/NumberTheory/VonMangoldt.lean

tactic: rcases eq_or_ne n 1 with (rfl | hn)
state_before: n : ℕ
⊢ ↑Λ n ≠ 0 ↔ IsPrimePow n

tactic: exact (Real.log_pos (one_lt_cast.2 (minFac_prime hn).one_lt)).ne'.ite_ne_right_iff
state_before: case inr
n : ℕ
hn : n ≠ 1
⊢ ↑Λ n ≠ 0 ↔ IsPrimePow n

tactic: simp [not_isPrimePow_one]
state_before: case inl

⊢ ↑Λ 1 ≠ 0 ↔ IsPrimePow 1
Theorem: continuousOn_iff_lower_upperSemicontinuousOn
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp only [ContinuousOn, continuousWithinAt_iff_lower_upperSemicontinuousWithinAt]
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type ?u.227746
inst✝³ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
γ : Type u_2
inst✝² : LinearOrder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f : α → γ
⊢ ContinuousOn f s ↔ LowerSemicontinuousOn f s ∧ UpperSemicontinuousOn f s

tactic: exact
  ⟨fun H => ⟨fun x hx => (H x hx).1, fun x hx => (H x hx).2⟩, fun H x hx => ⟨H.1 x hx, H.2 x hx⟩⟩
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type ?u.227746
inst✝³ : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
γ : Type u_2
inst✝² : LinearOrder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f : α → γ
⊢ (∀ (x : α), x ∈ s → LowerSemicontinuousWithinAt f s x ∧ UpperSemicontinuousWithinAt f s x) ↔
    LowerSemicontinuousOn f s ∧ UpperSemicontinuousOn f s
Theorem: Prod.mk.inj_left
File: Mathlib/Data/Prod/Basic.lean

tactic: intro b₁ b₂ h
state_before: α✝ : Type ?u.2199
β✝ : Type ?u.2202
γ : Type ?u.2205
δ : Type ?u.2208
α : Type u_1
β : Type u_2
a : α
⊢ Function.Injective (mk a)

tactic: simpa only [true_and, Prod.mk.inj_iff, eq_self_iff_true] using h
state_before: α✝ : Type ?u.2199
β✝ : Type ?u.2202
γ : Type ?u.2205
δ : Type ?u.2208
α : Type u_1
β : Type u_2
a : α
b₁ b₂ : β
h : (a, b₁) = (a, b₂)
⊢ b₁ = b₂
Theorem: LinearMap.toLinearMap₂'Aux_toMatrix₂Aux
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: refine' ext_basis (Pi.basisFun R₁ n) (Pi.basisFun R₂ m) fun i j => _
state_before: R : Type u_2
R₁ : Type u_1
R₂ : Type u_4
M : Type ?u.119507
M₁ : Type ?u.119510
M₂ : Type ?u.119513
M₁' : Type ?u.119516
M₂' : Type ?u.119519
n : Type u_3
m : Type u_5
n' : Type ?u.119528
m' : Type ?u.119531
ι : Type ?u.119534
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing R₁
inst✝⁸ : CommRing R₂
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R₁ M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R₂ M₂
inst✝³ : Fintype n
inst✝² : Fintype m
inst✝¹ : DecidableEq n
inst✝ : DecidableEq m
σ₁ : R₁ →+* R
σ₂ : R₂ →+* R
f : (n → R₁) →ₛₗ[σ₁] (m → R₂) →ₛₗ[σ₂] R
⊢ toLinearMap₂'Aux σ₁ σ₂
      (↑(toMatrix₂Aux (fun i => ↑(stdBasis R₁ (fun x => R₁) i) 1) fun j => ↑(stdBasis R₂ (fun x => R₂) j) 1) f) =
    f

tactic: simp_rw [Pi.basisFun_apply, Matrix.toLinearMap₂'Aux_stdBasis, LinearMap.toMatrix₂Aux_apply]
state_before: R : Type u_2
R₁ : Type u_1
R₂ : Type u_4
M : Type ?u.119507
M₁ : Type ?u.119510
M₂ : Type ?u.119513
M₁' : Type ?u.119516
M₂' : Type ?u.119519
n : Type u_3
m : Type u_5
n' : Type ?u.119528
m' : Type ?u.119531
ι : Type ?u.119534
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing R₁
inst✝⁸ : CommRing R₂
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R₁ M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R₂ M₂
inst✝³ : Fintype n
inst✝² : Fintype m
inst✝¹ : DecidableEq n
inst✝ : DecidableEq m
σ₁ : R₁ →+* R
σ₂ : R₂ →+* R
f : (n → R₁) →ₛₗ[σ₁] (m → R₂) →ₛₗ[σ₂] R
i : n
j : m
⊢ ↑(↑(toLinearMap₂'Aux σ₁ σ₂
              (↑(toMatrix₂Aux (fun i => ↑(stdBasis R₁ (fun x => R₁) i) 1) fun j => ↑(stdBasis R₂ (fun x => R₂) j) 1) f))
          (↑(Pi.basisFun R₁ n) i))
      (↑(Pi.basisFun R₂ m) j) =
    ↑(↑f (↑(Pi.basisFun R₁ n) i)) (↑(Pi.basisFun R₂ m) j)
Theorem: TensorProduct.induction_on
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: rw [AddCon.coe_add]
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.79966
inst✝¹³ : Monoid R'
R'' : Type ?u.79972
inst✝¹² : Semiring R''
M : Type u_2
N : Type u_3
P : Type ?u.79984
Q : Type ?u.79987
S : Type ?u.79990
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid N
inst✝⁹ : AddCommMonoid P
inst✝⁸ : AddCommMonoid Q
inst✝⁷ : AddCommMonoid S
inst✝⁶ : Module R M
inst✝⁵ : Module R N
inst✝⁴ : Module R P
inst✝³ : Module R Q
inst✝² : Module R S
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
C : M ⊗[R] N → Prop
z : M ⊗[R] N
C0 : C 0
C1 : ∀ (x : M) (y : N), C (x ⊗ₜ[R] y)
Cp : ∀ (x y : M ⊗[R] N), C x → C y → C (x + y)
x : FreeAddMonoid (M × N)
x✝ : M × N
y : FreeAddMonoid (M × N)
ih : C ↑y
m : M
n : N
⊢ C ↑(FreeAddMonoid.of (m, n) + y)

tactic: exact Cp _ _ (C1 ..) ih
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.79966
inst✝¹³ : Monoid R'
R'' : Type ?u.79972
inst✝¹² : Semiring R''
M : Type u_2
N : Type u_3
P : Type ?u.79984
Q : Type ?u.79987
S : Type ?u.79990
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid N
inst✝⁹ : AddCommMonoid P
inst✝⁸ : AddCommMonoid Q
inst✝⁷ : AddCommMonoid S
inst✝⁶ : Module R M
inst✝⁵ : Module R N
inst✝⁴ : Module R P
inst✝³ : Module R Q
inst✝² : Module R S
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
C : M ⊗[R] N → Prop
z : M ⊗[R] N
C0 : C 0
C1 : ∀ (x : M) (y : N), C (x ⊗ₜ[R] y)
Cp : ∀ (x y : M ⊗[R] N), C x → C y → C (x + y)
x : FreeAddMonoid (M × N)
x✝ : M × N
y : FreeAddMonoid (M × N)
ih : C ↑y
m : M
n : N
⊢ C (↑(FreeAddMonoid.of (m, n)) + ↑y)
Theorem: div_pos_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simp only [division_def, mul_pos_iff, inv_pos, inv_lt_zero]
state_before: ι : Type ?u.133631
α : Type u_1
β : Type ?u.133637
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
⊢ 0 < a / b ↔ 0 < a ∧ 0 < b ∨ a < 0 ∧ b < 0
Theorem: Filter.EventuallyEq.indicator_zero
File: Mathlib/Order/Filter/IndicatorFunction.lean

tactic: refine' hf.indicator.trans _
state_before: α : Type u_2
β : Type u_1
M : Type ?u.7467
E : Type ?u.7470
inst✝ : Zero β
l : Filter α
f : α → β
s : Set α
hf : f =ᶠ[l] 0
⊢ Set.indicator s f =ᶠ[l] 0

tactic: rw [indicator_zero']
state_before: α : Type u_2
β : Type u_1
M : Type ?u.7467
E : Type ?u.7470
inst✝ : Zero β
l : Filter α
f : α → β
s : Set α
hf : f =ᶠ[l] 0
⊢ Set.indicator s 0 =ᶠ[l] 0
Theorem: Nat.succ_sub_sub_succ
File: Std/Data/Nat/Lemmas.lean

tactic: rw [Nat.sub_sub, Nat.sub_sub, add_succ, succ_sub_succ]
state_before: n m k : Nat
⊢ succ n - m - succ k = n - m - k
Theorem: CompositionSeries.length_toList
File: Mathlib/Order/JordanHolder.lean

tactic: rw [toList, List.length_ofFn]
state_before: X : Type u
inst✝¹ : Lattice X
inst✝ : JordanHolderLattice X
s : CompositionSeries X
⊢ List.length (toList s) = s.length + 1
Theorem: AffineSubspace.mem_direction_iff_eq_vsub
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [← SetLike.mem_coe, coe_direction_eq_vsub_set h]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
h : Set.Nonempty ↑s
v : V
⊢ v ∈ direction s ↔ ∃ p1, p1 ∈ s ∧ ∃ p2, p2 ∈ s ∧ v = p1 -ᵥ p2

tactic: exact
  ⟨fun ⟨p1, p2, hp1, hp2, hv⟩ => ⟨p1, hp1, p2, hp2, hv.symm⟩, fun ⟨p1, hp1, p2, hp2, hv⟩ =>
    ⟨p1, p2, hp1, hp2, hv.symm⟩⟩
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
h : Set.Nonempty ↑s
v : V
⊢ v ∈ ↑s -ᵥ ↑s ↔ ∃ p1, p1 ∈ s ∧ ∃ p2, p2 ∈ s ∧ v = p1 -ᵥ p2
Theorem: Hyperreal.isSt_symm_real
File: Mathlib/Data/Real/Hyperreal.lean

tactic: rw [isSt_real_iff_eq, isSt_real_iff_eq, eq_comm]
state_before: r s : ℝ
⊢ IsSt (↑r) s ↔ IsSt (↑s) r