tasksource/leandojo huggingface dataset:
Theorem: Polynomial.degree_eq_card_roots'
File: Mathlib/Data/Polynomial/Splits.lean

tactic: simp [degree_eq_natDegree p_ne_zero, natDegree_eq_card_roots' hsplit]
state_before: F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i✝ : K →+* L
p : K[X]
i : K →+* L
p_ne_zero : map i p ≠ 0
hsplit : Splits i p
⊢ degree (map i p) = ↑(↑Multiset.card (roots (map i p)))
Theorem: lineMap_le_lineMap_iff_of_lt
File: Mathlib/LinearAlgebra/AffineSpace/Ordered.lean

tactic: simp only [lineMap_apply_module]
state_before: k : Type u_1
E : Type u_2
PE : Type ?u.86541
inst✝³ : LinearOrderedField k
inst✝² : OrderedAddCommGroup E
inst✝¹ : Module k E
inst✝ : OrderedSMul k E
a b : E
r r' : k
h : r < r'
⊢ ↑(lineMap a b) r ≤ ↑(lineMap a b) r' ↔ a ≤ b

tactic: rw [← le_sub_iff_add_le, add_sub_assoc, ← sub_le_iff_le_add', ← sub_smul, ← sub_smul,
  sub_sub_sub_cancel_left, smul_le_smul_iff_of_pos (sub_pos.2 h)]
state_before: k : Type u_1
E : Type u_2
PE : Type ?u.86541
inst✝³ : LinearOrderedField k
inst✝² : OrderedAddCommGroup E
inst✝¹ : Module k E
inst✝ : OrderedSMul k E
a b : E
r r' : k
h : r < r'
⊢ (1 - r) • a + r • b ≤ (1 - r') • a + r' • b ↔ a ≤ b
Theorem: Int.sub_right_lt_of_lt_add
File: Std/Data/Int/Lemmas.lean

tactic: have h := Int.add_lt_add_right h (-c)
state_before: a b c : Int
h : a < b + c
⊢ a - c < b

tactic: rwa [Int.add_neg_cancel_right] at h
state_before: a b c : Int
h✝ : a < b + c
h : a + -c < b + c + -c
⊢ a - c < b
Theorem: Sum.lex_acc_inl
File: Mathlib/Data/Sum/Basic.lean

tactic: induction' aca with a _ IH
state_before: α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type ?u.32006
δ : Type ?u.32009
r r₁ r₂ : α → α → Prop
s s₁ s₂ : β → β → Prop
a✝ a₁ a₂ : α
b b₁ b₂ : β
x y : α ⊕ β
a : α
aca : Acc r a
⊢ Acc (Lex r s) (inl a)

tactic: constructor
state_before: case intro
α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type ?u.32006
δ : Type ?u.32009
r r₁ r₂ : α → α → Prop
s s₁ s₂ : β → β → Prop
a✝¹ a₁ a₂ : α
b b₁ b₂ : β
x y : α ⊕ β
a✝ a : α
h✝ : ∀ (y : α), r y a → Acc r y
IH : ∀ (y : α), r y a → Acc (Lex r s) (inl y)
⊢ Acc (Lex r s) (inl a)

tactic: intro y h
state_before: case intro.h
α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type ?u.32006
δ : Type ?u.32009
r r₁ r₂ : α → α → Prop
s s₁ s₂ : β → β → Prop
a✝¹ a₁ a₂ : α
b b₁ b₂ : β
x y : α ⊕ β
a✝ a : α
h✝ : ∀ (y : α), r y a → Acc r y
IH : ∀ (y : α), r y a → Acc (Lex r s) (inl y)
⊢ ∀ (y : α ⊕ β), Lex r s y (inl a) → Acc (Lex r s) y

tactic: cases' h with a' _ h'
state_before: case intro.h
α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type ?u.32006
δ : Type ?u.32009
r r₁ r₂ : α → α → Prop
s s₁ s₂ : β → β → Prop
a✝¹ a₁ a₂ : α
b b₁ b₂ : β
x y✝ : α ⊕ β
a✝ a : α
h✝ : ∀ (y : α), r y a → Acc r y
IH : ∀ (y : α), r y a → Acc (Lex r s) (inl y)
y : α ⊕ β
h : Lex r s y (inl a)
⊢ Acc (Lex r s) y

tactic: exact IH _ h'
state_before: case intro.h.inl
α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type ?u.32006
δ : Type ?u.32009
r r₁ r₂ : α → α → Prop
s s₁ s₂ : β → β → Prop
a✝¹ a₁ a₂ : α
b b₁ b₂ : β
x y : α ⊕ β
a✝ a : α
h✝ : ∀ (y : α), r y a → Acc r y
IH : ∀ (y : α), r y a → Acc (Lex r s) (inl y)
a' : α
h' : r a' a
⊢ Acc (Lex r s) (inl a')
Theorem: coe_homeomorphUnitBall_apply_zero
File: Mathlib/Analysis/NormedSpace/Basic.lean

tactic: simp
state_before: α : Type ?u.180835
β : Type ?u.180838
γ : Type ?u.180841
ι : Type ?u.180844
inst✝⁶ : NormedField α
inst✝⁵ : SeminormedAddCommGroup β
E : Type u_1
inst✝⁴ : SeminormedAddCommGroup E
inst✝³ : NormedSpace α E
F : Type ?u.180875
inst✝² : SeminormedAddCommGroup F
inst✝¹ : NormedSpace α F
inst✝ : NormedSpace ℝ E
⊢ ↑(↑homeomorphUnitBall 0) = 0
Theorem: FiniteDimensional.fact_finiteDimensional_of_finrank_eq_succ
File: Mathlib/LinearAlgebra/FiniteDimensional.lean

tactic: convert Nat.succ_pos n
state_before: K : Type u
V : Type v
inst✝⁵ : DivisionRing K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
V₂ : Type v'
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
n : ℕ
inst✝ : Fact (finrank K V = n + 1)
⊢ 0 < finrank K V

tactic: apply Fact.out
state_before: case h.e'_4
K : Type u
V : Type v
inst✝⁵ : DivisionRing K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
V₂ : Type v'
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
n : ℕ
inst✝ : Fact (finrank K V = n + 1)
⊢ finrank K V = Nat.succ n
Theorem: Units.inv_mul_cancel_left
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [← mul_assoc, inv_mul, one_mul]
state_before: α : Type u
inst✝ : Monoid α
a✝ b✝ c u a : αˣ
b : α
⊢ ↑a⁻¹ * (↑a * b) = b
Theorem: PiLp.edist_self
File: Mathlib/Analysis/NormedSpace/PiLp.lean

tactic: rcases p.trichotomy with (rfl | rfl | h)
state_before: p : ℝ≥0∞
𝕜 : Type ?u.8431
𝕜' : Type ?u.8434
ι : Type u_1
α : ι → Type ?u.8442
β : ι → Type u_2
inst✝¹ : Fintype ι
inst✝ : (i : ι) → PseudoEMetricSpace (β i)
f : PiLp p β
⊢ edist f f = 0

tactic: simp [edist_eq_card]
state_before: case inl
𝕜 : Type ?u.8431
𝕜' : Type ?u.8434
ι : Type u_1
α : ι → Type ?u.8442
β : ι → Type u_2
inst✝¹ : Fintype ι
inst✝ : (i : ι) → PseudoEMetricSpace (β i)
f : PiLp 0 β
⊢ edist f f = 0

tactic: simp [edist_eq_iSup]
state_before: case inr.inl
𝕜 : Type ?u.8431
𝕜' : Type ?u.8434
ι : Type u_1
α : ι → Type ?u.8442
β : ι → Type u_2
inst✝¹ : Fintype ι
inst✝ : (i : ι) → PseudoEMetricSpace (β i)
f : PiLp ⊤ β
⊢ edist f f = 0

tactic: simp [edist_eq_sum h, ENNReal.zero_rpow_of_pos h, ENNReal.zero_rpow_of_pos (inv_pos.2 <| h)]
state_before: case inr.inr
p : ℝ≥0∞
𝕜 : Type ?u.8431
𝕜' : Type ?u.8434
ι : Type u_1
α : ι → Type ?u.8442
β : ι → Type u_2
inst✝¹ : Fintype ι
inst✝ : (i : ι) → PseudoEMetricSpace (β i)
f : PiLp p β
h : 0 < ENNReal.toReal p
⊢ edist f f = 0
Theorem: algebraicIndependent_comp_subtype
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: have : (aeval (x ∘ (↑) : s → A) : _ →ₐ[R] _) = (aeval x).comp (rename (↑)) := by ext; simp
state_before: ι : Type u_1
ι' : Type ?u.541666
R : Type u_2
K : Type ?u.541672
A : Type u_3
A' : Type ?u.541678
A'' : Type ?u.541681
V : Type u
V' : Type ?u.541686
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s : Set ι
⊢ AlgebraicIndependent R (x ∘ Subtype.val) ↔ ∀ (p : MvPolynomial ι R), p ∈ supported R s → ↑(aeval x) p = 0 → p = 0

tactic: have : ∀ p : MvPolynomial s R, rename ((↑) : s → ι) p = 0 ↔ p = 0 :=
  (injective_iff_map_eq_zero' (rename ((↑) : s → ι) : MvPolynomial s R →ₐ[R] _).toRingHom).1
    (rename_injective _ Subtype.val_injective)
state_before: ι : Type u_1
ι' : Type ?u.541666
R : Type u_2
K : Type ?u.541672
A : Type u_3
A' : Type ?u.541678
A'' : Type ?u.541681
V : Type u
V' : Type ?u.541686
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s : Set ι
this : aeval (x ∘ Subtype.val) = AlgHom.comp (aeval x) (rename Subtype.val)
⊢ AlgebraicIndependent R (x ∘ Subtype.val) ↔ ∀ (p : MvPolynomial ι R), p ∈ supported R s → ↑(aeval x) p = 0 → p = 0

tactic: simp [algebraicIndependent_iff, supported_eq_range_rename, *]
state_before: ι : Type u_1
ι' : Type ?u.541666
R : Type u_2
K : Type ?u.541672
A : Type u_3
A' : Type ?u.541678
A'' : Type ?u.541681
V : Type u
V' : Type ?u.541686
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s : Set ι
this✝ : aeval (x ∘ Subtype.val) = AlgHom.comp (aeval x) (rename Subtype.val)
this : ∀ (p : MvPolynomial (↑s) R), ↑(rename Subtype.val) p = 0 ↔ p = 0
⊢ AlgebraicIndependent R (x ∘ Subtype.val) ↔ ∀ (p : MvPolynomial ι R), p ∈ supported R s → ↑(aeval x) p = 0 → p = 0

tactic: ext
state_before: ι : Type u_1
ι' : Type ?u.541666
R : Type u_2
K : Type ?u.541672
A : Type u_3
A' : Type ?u.541678
A'' : Type ?u.541681
V : Type u
V' : Type ?u.541686
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s : Set ι
⊢ aeval (x ∘ Subtype.val) = AlgHom.comp (aeval x) (rename Subtype.val)

tactic: simp
state_before: case hf
ι : Type u_1
ι' : Type ?u.541666
R : Type u_2
K : Type ?u.541672
A : Type u_3
A' : Type ?u.541678
A'' : Type ?u.541681
V : Type u
V' : Type ?u.541686
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
s : Set ι
i✝ : ↑s
⊢ ↑(aeval (x ∘ Subtype.val)) (X i✝) = ↑(AlgHom.comp (aeval x) (rename Subtype.val)) (X i✝)
Theorem: TypeVec.snd_prod_mk
File: Mathlib/Data/TypeVec.lean

tactic: funext i
state_before: n : ℕ
α α' β β' : TypeVec n
f : α ⟹ β
g : α' ⟹ β'
⊢ prod.snd ⊚ (f ⊗' g) = g ⊚ prod.snd

tactic: induction i
state_before: case h
n : ℕ
α α' β β' : TypeVec n
f : α ⟹ β
g : α' ⟹ β'
i : Fin2 n
⊢ (prod.snd ⊚ (f ⊗' g)) i = (g ⊚ prod.snd) i

tactic: case fz => rfl
state_before: case h.fz
n n✝ : ℕ
α α' β β' : TypeVec (succ n✝)
f : α ⟹ β
g : α' ⟹ β'
⊢ (prod.snd ⊚ (f ⊗' g)) Fin2.fz = (g ⊚ prod.snd) Fin2.fz

case h.fs
n n✝ : ℕ
a✝ : Fin2 n✝
a_ih✝ : ∀ {α α' β β' : TypeVec n✝} (f : α ⟹ β) (g : α' ⟹ β'), (prod.snd ⊚ (f ⊗' g)) a✝ = (g ⊚ prod.snd) a✝
α α' β β' : TypeVec (succ n✝)
f : α ⟹ β
g : α' ⟹ β'
⊢ (prod.snd ⊚ (f ⊗' g)) (Fin2.fs a✝) = (g ⊚ prod.snd) (Fin2.fs a✝)

tactic: case fs _ _ i_ih => apply i_ih
state_before: case h.fs
n n✝ : ℕ
a✝ : Fin2 n✝
a_ih✝ : ∀ {α α' β β' : TypeVec n✝} (f : α ⟹ β) (g : α' ⟹ β'), (prod.snd ⊚ (f ⊗' g)) a✝ = (g ⊚ prod.snd) a✝
α α' β β' : TypeVec (succ n✝)
f : α ⟹ β
g : α' ⟹ β'
⊢ (prod.snd ⊚ (f ⊗' g)) (Fin2.fs a✝) = (g ⊚ prod.snd) (Fin2.fs a✝)

tactic: rfl
state_before: n n✝ : ℕ
α α' β β' : TypeVec (succ n✝)
f : α ⟹ β
g : α' ⟹ β'
⊢ (prod.snd ⊚ (f ⊗' g)) Fin2.fz = (g ⊚ prod.snd) Fin2.fz

tactic: apply i_ih
state_before: n n✝ : ℕ
a✝ : Fin2 n✝
i_ih : ∀ {α α' β β' : TypeVec n✝} (f : α ⟹ β) (g : α' ⟹ β'), (prod.snd ⊚ (f ⊗' g)) a✝ = (g ⊚ prod.snd) a✝
α α' β β' : TypeVec (succ n✝)
f : α ⟹ β
g : α' ⟹ β'
⊢ (prod.snd ⊚ (f ⊗' g)) (Fin2.fs a✝) = (g ⊚ prod.snd) (Fin2.fs a✝)
Theorem: List.mem_iota
File: Std/Data/List/Lemmas.lean

tactic: simp [iota_eq_reverse_range', Nat.add_comm, Nat.lt_succ]
state_before: m n : Nat
⊢ m ∈ iota n ↔ 1 ≤ m ∧ m ≤ n
Theorem: inv_mul_cancel
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: simp [inv_ne_zero h]
state_before: α : Type ?u.16217
M₀ : Type ?u.16220
G₀ : Type u_1
M₀' : Type ?u.16226
G₀' : Type ?u.16229
F : Type ?u.16232
F' : Type ?u.16235
inst✝ : GroupWithZero G₀
a b c g h✝ x : G₀
h : a ≠ 0
⊢ a⁻¹ * a = a⁻¹ * a * a⁻¹ * a⁻¹⁻¹

tactic: simp [h]
state_before: α : Type ?u.16217
M₀ : Type ?u.16220
G₀ : Type u_1
M₀' : Type ?u.16226
G₀' : Type ?u.16229
F : Type ?u.16232
F' : Type ?u.16235
inst✝ : GroupWithZero G₀
a b c g h✝ x : G₀
h : a ≠ 0
⊢ a⁻¹ * a * a⁻¹ * a⁻¹⁻¹ = a⁻¹ * a⁻¹⁻¹

tactic: simp [inv_ne_zero h]
state_before: α : Type ?u.16217
M₀ : Type ?u.16220
G₀ : Type u_1
M₀' : Type ?u.16226
G₀' : Type ?u.16229
F : Type ?u.16232
F' : Type ?u.16235
inst✝ : GroupWithZero G₀
a b c g h✝ x : G₀
h : a ≠ 0
⊢ a⁻¹ * a⁻¹⁻¹ = 1
Theorem: Filter.subseq_forall_of_frequently
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [tendsto_iff_seq_tendsto] at h_tendsto
state_before: ι✝ : Type ?u.371220
ι' : Type ?u.371223
α : Type ?u.371226
β : Type ?u.371229
γ : Type ?u.371232
ι : Type u_1
x : ℕ → ι
p : ι → Prop
l : Filter ι
h_tendsto : Tendsto x atTop l
h : ∃ᶠ (n : ℕ) in atTop, p (x n)
⊢ ∃ ns, Tendsto (fun n => x (ns n)) atTop l ∧ ∀ (n : ℕ), p (x (ns n))

tactic: choose ns hge hns using frequently_atTop.1 h
state_before: ι✝ : Type ?u.371220
ι' : Type ?u.371223
α : Type ?u.371226
β : Type ?u.371229
γ : Type ?u.371232
ι : Type u_1
x : ℕ → ι
p : ι → Prop
l : Filter ι
h_tendsto : ∀ (x_1 : ℕ → ℕ), Tendsto x_1 atTop atTop → Tendsto (x ∘ x_1) atTop l
h : ∃ᶠ (n : ℕ) in atTop, p (x n)
⊢ ∃ ns, Tendsto (fun n => x (ns n)) atTop l ∧ ∀ (n : ℕ), p (x (ns n))

tactic: exact ⟨ns, h_tendsto ns (tendsto_atTop_mono hge tendsto_id), hns⟩
state_before: ι✝ : Type ?u.371220
ι' : Type ?u.371223
α : Type ?u.371226
β : Type ?u.371229
γ : Type ?u.371232
ι : Type u_1
x : ℕ → ι
p : ι → Prop
l : Filter ι
h_tendsto : ∀ (x_1 : ℕ → ℕ), Tendsto x_1 atTop atTop → Tendsto (x ∘ x_1) atTop l
h : ∃ᶠ (n : ℕ) in atTop, p (x n)
ns : ℕ → ℕ
hge : ∀ (a : ℕ), ns a ≥ a
hns : ∀ (a : ℕ), p (x (ns a))
⊢ ∃ ns, Tendsto (fun n => x (ns n)) atTop l ∧ ∀ (n : ℕ), p (x (ns n))
Theorem: BilinForm.symmCompOfNondegenerate_left_apply
File: Mathlib/LinearAlgebra/BilinearForm.lean

tactic: conv_lhs => rw [← BilinForm.toLin_apply, comp_symmCompOfNondegenerate_apply]
state_before: R : Type ?u.1879881
M : Type ?u.1879884
inst✝¹⁷ : Semiring R
inst✝¹⁶ : AddCommMonoid M
inst✝¹⁵ : Module R M
R₁ : Type ?u.1879920
M₁ : Type ?u.1879923
inst✝¹⁴ : Ring R₁
inst✝¹³ : AddCommGroup M₁
inst✝¹² : Module R₁ M₁
R₂ : Type ?u.1880532
M₂ : Type ?u.1880535
inst✝¹¹ : CommSemiring R₂
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : Module R₂ M₂
R₃ : Type ?u.1880722
M₃ : Type ?u.1880725
inst✝⁸ : CommRing R₃
inst✝⁷ : AddCommGroup M₃
inst✝⁶ : Module R₃ M₃
V : Type u_2
K : Type u_1
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B : BilinForm R M
B₁✝ : BilinForm R₁ M₁
B₂✝ : BilinForm R₂ M₂
M₂' : Type ?u.1882530
inst✝² : AddCommMonoid M₂'
inst✝¹ : Module R₂ M₂'
inst✝ : FiniteDimensional K V
B₁ B₂ : BilinForm K V
b₂ : Nondegenerate B₂
v w : V
⊢ bilin B₂ (↑(symmCompOfNondegenerate B₁ B₂ b₂) w) v = bilin B₁ w v
Theorem: ZMod.nat_cast_comp_val
File: Mathlib/Data/ZMod/Basic.lean

tactic: cases n
state_before: n : ℕ
R : Type u_1
inst✝¹ : Ring R
inst✝ : NeZero n
⊢ Nat.cast ∘ val = cast

tactic: rfl
state_before: case succ
R : Type u_1
inst✝¹ : Ring R
n✝ : ℕ
inst✝ : NeZero (Nat.succ n✝)
⊢ Nat.cast ∘ val = cast

tactic: cases NeZero.ne 0 rfl
state_before: case zero
R : Type u_1
inst✝¹ : Ring R
inst✝ : NeZero Nat.zero
⊢ Nat.cast ∘ val = cast
Theorem: MeasureTheory.FiniteMeasure.testAgainstNN_zero
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: simpa only [MulZeroClass.zero_mul] using μ.testAgainstNN_const 0
state_before: Ω : Type u_1
inst✝⁵ : MeasurableSpace Ω
R : Type ?u.50829
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : TopologicalSpace Ω
μ : FiniteMeasure Ω
⊢ testAgainstNN μ 0 = 0
Theorem: Set.infsep_triple
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simp only [infsep, einfsep_triple hxy hyz hxz, ENNReal.toReal_inf, edist_ne_top x y,
  edist_ne_top x z, edist_ne_top y z, dist_edist, Ne.def, inf_eq_top_iff, and_self_iff,
  not_false_iff]
state_before: α : Type u_1
β : Type ?u.61301
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hxy : x ≠ y
hyz : y ≠ z
hxz : x ≠ z
⊢ infsep {x, y, z} = dist x y ⊓ dist x z ⊓ dist y z
Theorem: IsAntichain.maximals_eq
File: Mathlib/Order/Minimal.lean

tactic: obtain rfl := h.eq ha hb hab
state_before: α : Type u_1
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ : α
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : r a b
⊢ r b a

tactic: exact hab
state_before: α : Type u_1
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b : α
h : IsAntichain r s
a : α
ha hb : a ∈ s
hab : r a a
⊢ r a a
Theorem: Complex.cos_ofReal_im
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← ofReal_cos_ofReal_re, ofReal_im]
state_before: x✝ y : ℂ
x : ℝ
⊢ (cos ↑x).im = 0
Theorem: IntermediateField.toSubalgebra_injective
File: Mathlib/FieldTheory/IntermediateField.lean

tactic: ext
state_before: K : Type u_1
L : Type u_2
L' : Type ?u.229246
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S✝ S S' : IntermediateField K L
h : S.toSubalgebra = S'.toSubalgebra
⊢ S = S'

tactic: rw [← mem_toSubalgebra, ← mem_toSubalgebra, h]
state_before: case h
K : Type u_1
L : Type u_2
L' : Type ?u.229246
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field L'
inst✝¹ : Algebra K L
inst✝ : Algebra K L'
S✝ S S' : IntermediateField K L
h : S.toSubalgebra = S'.toSubalgebra
x✝ : L
⊢ x✝ ∈ S ↔ x✝ ∈ S'
Theorem: vectorSpan_singleton
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: simp [vectorSpan_def]
state_before: k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
⊢ vectorSpan k {p} = ⊥
Theorem: MeasureTheory.Measure.nnreal_smul_coe_apply
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rfl
state_before: α : Type u_1
β : Type ?u.133661
γ : Type ?u.133664
δ : Type ?u.133667
ι : Type ?u.133670
R : Type ?u.133673
R' : Type ?u.133676
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
_m : MeasurableSpace α
c : ℝ≥0
μ : Measure α
s : Set α
⊢ c • ↑↑μ s = ↑c * ↑↑μ s
Theorem: GeneralizedContinuedFraction.IntFractPair.stream_isSeq
File: Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean

tactic: intro _ hyp
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
⊢ Stream'.IsSeq (IntFractPair.stream v)

tactic: simp [IntFractPair.stream, hyp]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
hyp : IntFractPair.stream v n✝ = none
⊢ IntFractPair.stream v (n✝ + 1) = none
Theorem: Equiv.Set.sumCompl_symm_apply_of_not_mem
File: Mathlib/Logic/Equiv/Set.lean

tactic: have : ((⟨x, Or.inr hx⟩ : (s ∪ sᶜ : Set α)) : α) ∈ sᶜ := hx
state_before: α✝ : Sort u
β : Sort v
γ : Sort w
α : Type u
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
x : α
hx : ¬x ∈ s
⊢ ↑(Set.sumCompl s).symm x = Sum.inr { val := x, property := hx }

tactic: rw [Equiv.Set.sumCompl]
state_before: α✝ : Sort u
β : Sort v
γ : Sort w
α : Type u
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
x : α
hx : ¬x ∈ s
this : ↑{ val := x, property := (_ : x ∈ s ∨ x ∈ sᶜ) } ∈ sᶜ
⊢ ↑(Set.sumCompl s).symm x = Sum.inr { val := x, property := hx }

tactic: simpa using Set.union_apply_right (by simp) this
state_before: α✝ : Sort u
β : Sort v
γ : Sort w
α : Type u
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
x : α
hx : ¬x ∈ s
this : ↑{ val := x, property := (_ : x ∈ s ∨ x ∈ sᶜ) } ∈ sᶜ
⊢ ↑(Trans.trans (Trans.trans (Set.union (_ : s ∩ sᶜ ⊆ ∅)).symm (Set.ofEq (_ : s ∪ sᶜ = univ))) (Set.univ α)).symm x =
    Sum.inr { val := x, property := hx }

tactic: simp
state_before: α✝ : Sort u
β : Sort v
γ : Sort w
α : Type u
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
x : α
hx : ¬x ∈ s
this : ↑{ val := x, property := (_ : x ∈ s ∨ x ∈ sᶜ) } ∈ sᶜ
⊢ s ∩ sᶜ ⊆ ∅
Theorem: Polynomial.rootMultiplicity_X_sub_C
File: Mathlib/Data/Polynomial/RingDivision.lean

tactic: split_ifs with hxy
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
x y : R
⊢ rootMultiplicity x (X - ↑C y) = if x = y then 1 else 0

tactic: exact rootMultiplicity_eq_zero (mt root_X_sub_C.mp (Ne.symm hxy))
state_before: case inr
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
x y : R
hxy : ¬x = y
⊢ rootMultiplicity x (X - ↑C y) = 0

tactic: rw [hxy]
state_before: case inl
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
x y : R
hxy : x = y
⊢ rootMultiplicity x (X - ↑C y) = 1

tactic: exact rootMultiplicity_X_sub_C_self
state_before: case inl
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
x y : R
hxy : x = y
⊢ rootMultiplicity y (X - ↑C y) = 1
Theorem: star_bit1
File: Mathlib/Algebra/Star/Basic.lean

tactic: simp [bit1]
state_before: R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
r : R
⊢ star (bit1 r) = bit1 (star r)
Theorem: LowerSet.coe_iSup₂
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [coe_iSup]
state_before: α : Type u_1
β : Type ?u.73298
γ : Type ?u.73301
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : LE α
S : Set (LowerSet α)
s t : LowerSet α
a : α
f : (i : ι) → κ i → LowerSet α
⊢ ↑(⨆ (i : ι) (j : κ i), f i j) = ⋃ (i : ι) (j : κ i), ↑(f i j)
Theorem: MeasureTheory.Measure.ae_measure_lt_top
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: rw [prod_apply hs] at h2s
state_before: α : Type u_2
α' : Type ?u.4446542
β : Type u_1
β' : Type ?u.4446548
γ : Type ?u.4446551
E : Type ?u.4446554
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
s : Set (α × β)
hs : MeasurableSet s
h2s : ↑↑(Measure.prod μ ν) s ≠ ⊤
⊢ ∀ᵐ (x : α) ∂μ, ↑↑ν (Prod.mk x ⁻¹' s) < ⊤

tactic: refine' ae_lt_top (measurable_measure_prod_mk_left hs) h2s
state_before: α : Type u_2
α' : Type ?u.4446542
β : Type u_1
β' : Type ?u.4446548
γ : Type ?u.4446551
E : Type ?u.4446554
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
s : Set (α × β)
hs : MeasurableSet s
h2s : (∫⁻ (x : α), ↑↑ν (Prod.mk x ⁻¹' s) ∂μ) ≠ ⊤
⊢ ∀ᵐ (x : α) ∂μ, ↑↑ν (Prod.mk x ⁻¹' s) < ⊤
Theorem: CategoryTheory.shiftComm_symm
File: Mathlib/CategoryTheory/Shift/Basic.lean

tactic: ext
state_before: C : Type u
A : Type u_1
inst✝² : Category C
inst✝¹ : AddCommMonoid A
inst✝ : HasShift C A
X Y : C
f : X ⟶ Y
i j : A
⊢ (shiftComm X i j).symm = shiftComm X j i

tactic: exact NatTrans.congr_app (congr_arg Iso.hom (shiftFunctorComm_symm C i j)) X
state_before: case w
C : Type u
A : Type u_1
inst✝² : Category C
inst✝¹ : AddCommMonoid A
inst✝ : HasShift C A
X Y : C
f : X ⟶ Y
i j : A
⊢ (shiftComm X i j).symm.hom = (shiftComm X j i).hom
Theorem: List.findIdxs_eq_map_indexesValues
File: Mathlib/Data/List/Indexes.lean

tactic: simp only [indexesValues_eq_filter_enum, map_filter_eq_foldr, findIdxs, uncurry,
  foldrIdx_eq_foldr_enum, decide_eq_true_eq, comp_apply, Bool.cond_decide]
state_before: α : Type u
β : Type v
p : α → Prop
inst✝ : DecidablePred p
as : List α
⊢ findIdxs (fun b => decide (p b)) as = map Prod.fst (indexesValues (fun b => decide (p b)) as)
Theorem: Submodule.mem_smul_span
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rw [← I.span_eq, Submodule.span_smul_span, I.span_eq]
state_before: R : Type u
M : Type v
F : Type ?u.138961
G : Type ?u.138964
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
s : Set M
x : M
⊢ x ∈ I • span R s ↔ x ∈ span R (⋃ (a : R) (_ : a ∈ I) (b : M) (_ : b ∈ s), {a • b})

tactic: rfl
state_before: R : Type u
M : Type v
F : Type ?u.138961
G : Type ?u.138964
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
I J : Ideal R
N P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
s : Set M
x : M
⊢ x ∈ span R (⋃ (s_1 : R) (_ : s_1 ∈ ↑I) (t : M) (_ : t ∈ s), {s_1 • t}) ↔
    x ∈ span R (⋃ (a : R) (_ : a ∈ I) (b : M) (_ : b ∈ s), {a • b})
Theorem: Turing.PartrecToTM2.K'.elim_update_aux
File: Mathlib/Computability/TMToPartrec.lean

tactic: funext x
state_before: a b c d c' : List Γ'
⊢ update (elim a b c d) aux c' = elim a b c' d

tactic: cases x <;> rfl
state_before: case h
a b c d c' : List Γ'
x : K'
⊢ update (elim a b c d) aux c' x = elim a b c' d x