1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Polynomial.isRoot_prod
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: simp only [IsRoot, eval_prod, Finset.prod_eq_zero_iff]
state_before: R✝ : Type u
S : Type v
T : Type w
ι✝ : Type y
a b : R✝
m n : ℕ
inst✝³ : CommSemiring R✝
p✝ q : R✝[X]
x✝ : R✝
inst✝² : CommSemiring S
f : R✝ →+* S
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
ι : Type u_1
s : Finset ι
p : ι → R[X]
x : R
⊢ (∏ j ∈ s, p j).IsRoot x ↔ ∃ i ∈ s, (p i).IsRoot x
state_after: no goals
Theorem: Real.Angle.cos_add
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: induction θ₂ using Real.Angle.induction_on
state_before: θ₁ θ₂ : Angle
⊢ (θ₁ + θ₂).cos = θ₁.cos * θ₂.cos - θ₁.sin * θ₂.sin
state_after: case h
θ₁ : Angle
x✝ : ℝ
⊢ (θ₁ + ↑x✝).cos = θ₁.cos * (↑x✝).cos - θ₁.sin * (↑x✝).sin

tactic: induction θ₁ using Real.Angle.induction_on
state_before: case h
θ₁ : Angle
x✝ : ℝ
⊢ (θ₁ + ↑x✝).cos = θ₁.cos * (↑x✝).cos - θ₁.sin * (↑x✝).sin
state_after: case h.h
x✝¹ x✝ : ℝ
⊢ (↑x✝ + ↑x✝¹).cos = (↑x✝).cos * (↑x✝¹).cos - (↑x✝).sin * (↑x✝¹).sin

tactic: exact Real.cos_add _ _
state_before: case h.h
x✝¹ x✝ : ℝ
⊢ (↑x✝ + ↑x✝¹).cos = (↑x✝).cos * (↑x✝¹).cos - (↑x✝).sin * (↑x✝¹).sin
state_after: no goals
Theorem: Set.Infinite.exists_accPt_cofinite_inf_principal
File: Mathlib/Topology/Compactness/Compact.lean

tactic: simpa only [mem_univ, true_and]
  using hs.exists_accPt_cofinite_inf_principal_of_subset_isCompact isCompact_univ s.subset_univ
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : CompactSpace X
hs : s.Infinite
⊢ ∃ x, AccPt x (cofinite ⊓ 𝓟 s)
state_after: no goals
Theorem: Polynomial.Chebyshev.U_neg_one
File: Mathlib/RingTheory/Polynomial/Chebyshev.lean

tactic: simpa using U_sub_one R 0
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
⊢ U R (-1) = 0
state_after: no goals
Theorem: Mathlib.Tactic.Ring.atom_pf'
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp [*]
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a a' : R
p : a = a'
⊢ a = a' ^ Nat.rawCast 1 * Nat.rawCast 1 + 0
state_after: no goals
Theorem: Polynomial.Chebyshev.U_add_one
File: Mathlib/RingTheory/Polynomial/Chebyshev.lean

tactic: linear_combination (norm := ring_nf) U_add_two R (n - 1)
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℤ
⊢ U R (n + 1) = 2 * X * U R n - U R (n - 1)
state_after: no goals
Theorem: uniformEquicontinuous_restrict_iff
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

tactic: rw [UniformEquicontinuous, UniformEquicontinuousOn]
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ UniformEquicontinuous (S.restrict ∘ F) ↔ UniformEquicontinuousOn F S
state_after: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ (∀ U ∈ 𝓤 α, ∀ᶠ (xy : ↑S × ↑S) in 𝓤 ↑S, ∀ (i : ι), ((S.restrict ∘ F) i xy.1, (S.restrict ∘ F) i xy.2) ∈ U) ↔
    ∀ U ∈ 𝓤 α, ∀ᶠ (xy : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S), ∀ (i : ι), (F i xy.1, F i xy.2) ∈ U

tactic: conv in _ ⊓ _ => rw [← Subtype.range_val (s := S), ← range_prod_map, ← map_comap]
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ (∀ U ∈ 𝓤 α, ∀ᶠ (xy : ↑S × ↑S) in 𝓤 ↑S, ∀ (i : ι), ((S.restrict ∘ F) i xy.1, (S.restrict ∘ F) i xy.2) ∈ U) ↔
    ∀ U ∈ 𝓤 α, ∀ᶠ (xy : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S), ∀ (i : ι), (F i xy.1, F i xy.2) ∈ U
state_after: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ (∀ U ∈ 𝓤 α, ∀ᶠ (xy : ↑S × ↑S) in 𝓤 ↑S, ∀ (i : ι), ((S.restrict ∘ F) i xy.1, (S.restrict ∘ F) i xy.2) ∈ U) ↔
    ∀ U ∈ 𝓤 α,
      ∀ᶠ (xy : β × β) in map (Prod.map Subtype.val Subtype.val) (Filter.comap (Prod.map Subtype.val Subtype.val) (𝓤 β)),
        ∀ (i : ι), (F i xy.1, F i xy.2) ∈ U

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ (∀ U ∈ 𝓤 α, ∀ᶠ (xy : ↑S × ↑S) in 𝓤 ↑S, ∀ (i : ι), ((S.restrict ∘ F) i xy.1, (S.restrict ∘ F) i xy.2) ∈ U) ↔
    ∀ U ∈ 𝓤 α,
      ∀ᶠ (xy : β × β) in map (Prod.map Subtype.val Subtype.val) (Filter.comap (Prod.map Subtype.val Subtype.val) (𝓤 β)),
        ∀ (i : ι), (F i xy.1, F i xy.2) ∈ U
state_after: no goals
Theorem: CategoryTheory.CosimplicialObject.hom_ext
File: Mathlib/AlgebraicTopology/SimplicialObject.lean

tactic: ext
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : CosimplicialObject C
f g : X ⟶ Y
h : ∀ (n : SimplexCategory), f.app n = g.app n
⊢ f.app = g.app
state_after: case h
C : Type u
inst✝ : Category.{v, u} C
X Y : CosimplicialObject C
f g : X ⟶ Y
h : ∀ (n : SimplexCategory), f.app n = g.app n
x✝ : SimplexCategory
⊢ f.app x✝ = g.app x✝

tactic: apply h
state_before: case h
C : Type u
inst✝ : Category.{v, u} C
X Y : CosimplicialObject C
f g : X ⟶ Y
h : ∀ (n : SimplexCategory), f.app n = g.app n
x✝ : SimplexCategory
⊢ f.app x✝ = g.app x✝
state_after: no goals
Theorem: Set.Ioc_diff_Ioi
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp (config := { contextual := true }) [iff_def]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d : α
⊢ ∀ (x : α), x ∈ Ioc a b \ Ioi c ↔ x ∈ Ioc a (min b c)
state_after: no goals
Theorem: CategoryTheory.Limits.pullback_symmetry_hom_of_epi_eq
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: ext <;> simp [inl_eq_inr_of_epi_eq]
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
W X Y Z : C
f : X ⟶ Y
inst✝ : Epi f
⊢ (pushoutSymmetry f f).hom = 𝟙 (pushout f f)
state_after: no goals
Theorem: Ordinal.sub_sub
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [sub_le, sub_le, sub_le, add_assoc]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c d : Ordinal.{u_4}
⊢ a - b - c ≤ d ↔ a - (b + c) ≤ d
state_after: no goals
Theorem: FreeGroup.map_eq_lift
File: Mathlib/GroupTheory/FreeGroup/Basic.lean

tactic: simp
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
β : Type v
f : α → β
x✝ y : FreeGroup α
x : α
⊢ (lift (of ∘ f)) (of x) = of (f x)
state_after: no goals
Theorem: Bitraversable.comp_tsnd
File: Mathlib/Control/Bitraversable/Lemmas.lean

tactic: rw [← comp_bitraverse]
state_before: t : Type u → Type u → Type u
inst✝⁵ : Bitraversable t
β : Type u
F G : Type u → Type u
inst✝⁴ : Applicative F
inst✝³ : Applicative G
inst✝² : LawfulBitraversable t
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α β₀ β₁ β₂ : Type u
g : β₀ → F β₁
g' : β₁ → G β₂
x : t α β₀
⊢ Comp.mk (tsnd g' <$> tsnd g x) = tsnd (Comp.mk ∘ map g' ∘ g) x
state_after: t : Type u → Type u → Type u
inst✝⁵ : Bitraversable t
β : Type u
F G : Type u → Type u
inst✝⁴ : Applicative F
inst✝³ : Applicative G
inst✝² : LawfulBitraversable t
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α β₀ β₁ β₂ : Type u
g : β₀ → F β₁
g' : β₁ → G β₂
x : t α β₀
⊢ bitraverse (Comp.mk ∘ map pure ∘ pure) (Comp.mk ∘ map g' ∘ g) x = tsnd (Comp.mk ∘ map g' ∘ g) x

tactic: simp only [Function.comp, map_pure]
state_before: t : Type u → Type u → Type u
inst✝⁵ : Bitraversable t
β : Type u
F G : Type u → Type u
inst✝⁴ : Applicative F
inst✝³ : Applicative G
inst✝² : LawfulBitraversable t
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α β₀ β₁ β₂ : Type u
g : β₀ → F β₁
g' : β₁ → G β₂
x : t α β₀
⊢ bitraverse (Comp.mk ∘ map pure ∘ pure) (Comp.mk ∘ map g' ∘ g) x = tsnd (Comp.mk ∘ map g' ∘ g) x
state_after: t : Type u → Type u → Type u
inst✝⁵ : Bitraversable t
β : Type u
F G : Type u → Type u
inst✝⁴ : Applicative F
inst✝³ : Applicative G
inst✝² : LawfulBitraversable t
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α β₀ β₁ β₂ : Type u
g : β₀ → F β₁
g' : β₁ → G β₂
x : t α β₀
⊢ bitraverse (fun x => Comp.mk (pure (pure x))) (fun x => Comp.mk (g' <$> g x)) x =
    tsnd (fun x => Comp.mk (g' <$> g x)) x

tactic: rfl
state_before: t : Type u → Type u → Type u
inst✝⁵ : Bitraversable t
β : Type u
F G : Type u → Type u
inst✝⁴ : Applicative F
inst✝³ : Applicative G
inst✝² : LawfulBitraversable t
inst✝¹ : LawfulApplicative F
inst✝ : LawfulApplicative G
α β₀ β₁ β₂ : Type u
g : β₀ → F β₁
g' : β₁ → G β₂
x : t α β₀
⊢ bitraverse (fun x => Comp.mk (pure (pure x))) (fun x => Comp.mk (g' <$> g x)) x =
    tsnd (fun x => Comp.mk (g' <$> g x)) x
state_after: no goals
Theorem: Sym2.other_invol
File: Mathlib/Data/Sym/Sym2.lean

tactic: classical
  rw [other_eq_other'] at hb ⊢
  convert other_invol' ha hb using 2
  apply other_eq_other'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
ha : a ∈ z
hb : Mem.other ha ∈ z
⊢ Mem.other hb = a
state_after: no goals

tactic: rw [other_eq_other'] at hb ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
ha : a ∈ z
hb : Mem.other ha ∈ z
⊢ Mem.other hb = a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
ha : a ∈ z
hb✝ : Mem.other ha ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other' hb✝ = a

tactic: convert other_invol' ha hb using 2
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
ha : a ∈ z
hb✝ : Mem.other ha ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other' hb✝ = a
state_after: case h.e'_2.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
ha : a ∈ z
hb✝ : Mem.other ha ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other ha = Mem.other' ha

tactic: apply other_eq_other'
state_before: case h.e'_2.h.e'_3
α : Type u_1
β : Type u_2
γ : Type u_3
e : Sym2 α
f : α → β
a : α
z : Sym2 α
ha : a ∈ z
hb✝ : Mem.other ha ∈ z
hb : Mem.other' ha ∈ z
⊢ Mem.other ha = Mem.other' ha
state_after: no goals
Theorem: PrimeMultiset.prod_ofNatList
File: Mathlib/Data/PNat/Factors.lean

tactic: have := prod_ofNatMultiset (l : Multiset ℕ) h
state_before: l : List ℕ
h : ∀ p ∈ l, Nat.Prime p
⊢ ↑(ofNatList l h).prod = l.prod
state_after: l : List ℕ
h : ∀ p ∈ l, Nat.Prime p
this : ↑(ofNatMultiset (↑l) h).prod = (↑l).prod
⊢ ↑(ofNatList l h).prod = l.prod

tactic: rw [Multiset.prod_coe] at this
state_before: l : List ℕ
h : ∀ p ∈ l, Nat.Prime p
this : ↑(ofNatMultiset (↑l) h).prod = (↑l).prod
⊢ ↑(ofNatList l h).prod = l.prod
state_after: l : List ℕ
h : ∀ p ∈ l, Nat.Prime p
this : ↑(ofNatMultiset (↑l) h).prod = l.prod
⊢ ↑(ofNatList l h).prod = l.prod

tactic: exact this
state_before: l : List ℕ
h : ∀ p ∈ l, Nat.Prime p
this : ↑(ofNatMultiset (↑l) h).prod = l.prod
⊢ ↑(ofNatList l h).prod = l.prod
state_after: no goals
Theorem: isClopen_iff
File: Mathlib/Topology/Connected/Basic.lean

tactic: rw [← compl_compl s, h2, compl_empty]
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : Set α
hs : IsClopen s
h : ¬(s = ∅ ∨ s = univ)
h2 : sᶜ = ∅
⊢ s = univ
state_after: no goals

tactic: rintro (rfl | rfl) <;> [exact isClopen_empty; exact isClopen_univ]
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : Set α
⊢ s = ∅ ∨ s = univ → IsClopen s
state_after: no goals
Theorem: Finset.prod_nbij
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simpa using i_surj
state_before: ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α✝
a : α✝
f✝ g✝ : α✝ → β
inst✝¹ : CommMonoid β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝ : CommMonoid α
s : Finset ι
t : Finset κ
f : ι → α
g : κ → α
i : ι → κ
hi : ∀ a ∈ s, i a ∈ t
i_inj : Set.InjOn i ↑s
i_surj : Set.SurjOn i ↑s ↑t
h : ∀ a ∈ s, f a = g (i a)
⊢ ∀ b ∈ t, ∃ a, ∃ (ha : a ∈ s), (fun a x => i a) a ha = b
state_after: no goals
Theorem: MonoidHom.mrange_id
File: Mathlib/Algebra/Group/Submonoid/Operations.lean

tactic: simp [mrange_eq_map]
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
⊢ mrange (id M) = ⊤
state_after: no goals
Theorem: SetTheory.PGame.lt_iff_exists_le
File: Mathlib/SetTheory/Surreal/Basic.lean

tactic: rw [← lf_iff_lt ox oy, lf_iff_exists_le]
state_before: x y : PGame
ox : x.Numeric
oy : y.Numeric
⊢ x < y ↔ (∃ i, x ≤ y.moveLeft i) ∨ ∃ j, x.moveRight j ≤ y
state_after: no goals
Theorem: Filter.prod_inf
File: Mathlib/Order/Filter/Prod.lean

tactic: rw [prod_inf_prod, inf_idem]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f : Filter α
g g₁ g₂ : Filter β
⊢ f ×ˢ (g₁ ⊓ g₂) = f ×ˢ g₁ ⊓ f ×ˢ g₂
state_after: no goals
Theorem: exists_unique_prop
File: Mathlib/Logic/Basic.lean

tactic: simp
state_before: α : Sort u_1
β : Sort u_2
p✝ q✝ : α → Prop
p q : Prop
⊢ (∃! x, q) ↔ p ∧ q
state_after: no goals
Theorem: ncs_tendsto_const
File: Mathlib/NumberTheory/Padics/Hensel.lean

tactic: convert @tendsto_const_nhds ℝ ℕ _ _ _
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
ncs : CauSeq ℤ_[p] norm
F : Polynomial ℤ_[p]
a : ℤ_[p]
ncs_der_val :
  ∀ (n : ℕ), ‖Polynomial.eval (↑ncs n) (Polynomial.derivative F)‖ = ‖Polynomial.eval a (Polynomial.derivative F)‖
⊢ Tendsto (fun i => ‖Polynomial.eval (↑ncs i) (Polynomial.derivative F)‖) atTop
    (𝓝 ‖Polynomial.eval a (Polynomial.derivative F)‖)
state_after: case h.e'_3.h
p : ℕ
inst✝ : Fact (Nat.Prime p)
ncs : CauSeq ℤ_[p] norm
F : Polynomial ℤ_[p]
a : ℤ_[p]
ncs_der_val :
  ∀ (n : ℕ), ‖Polynomial.eval (↑ncs n) (Polynomial.derivative F)‖ = ‖Polynomial.eval a (Polynomial.derivative F)‖
x✝ : ℕ
⊢ ‖Polynomial.eval (↑ncs x✝) (Polynomial.derivative F)‖ = ‖Polynomial.eval a (Polynomial.derivative F)‖

tactic: rw [ncs_der_val]
state_before: case h.e'_3.h
p : ℕ
inst✝ : Fact (Nat.Prime p)
ncs : CauSeq ℤ_[p] norm
F : Polynomial ℤ_[p]
a : ℤ_[p]
ncs_der_val :
  ∀ (n : ℕ), ‖Polynomial.eval (↑ncs n) (Polynomial.derivative F)‖ = ‖Polynomial.eval a (Polynomial.derivative F)‖
x✝ : ℕ
⊢ ‖Polynomial.eval (↑ncs x✝) (Polynomial.derivative F)‖ = ‖Polynomial.eval a (Polynomial.derivative F)‖
state_after: no goals
Theorem: MeasureTheory.continuous_setToFun
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: simp_rw [L1.setToFun_eq_setToL1 hT]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
⊢ Continuous fun f => setToFun μ T hT ↑↑f
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
⊢ Continuous fun f => (L1.setToL1 hT) f

tactic: exact ContinuousLinearMap.continuous _
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
⊢ Continuous fun f => (L1.setToL1 hT) f
state_after: no goals
Theorem: rank_finsupp_self'
File: Mathlib/LinearAlgebra/Dimension/Constructions.lean

tactic: simp
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι✝ : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝¹⁰ : Ring R
inst✝⁹ : CommRing S
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup M'
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M'
inst✝³ : Module R M₁
inst✝² : StrongRankCondition R
inst✝¹ : Module.Free R M
inst✝ : Module.Free R M'
ι : Type u
⊢ Module.rank R (ι →₀ R) = #ι
state_after: no goals
Theorem: Batteries.RBNode.lowerBound?_eq_find?
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: rw [← reverse_reverse t] at H ⊢
state_before: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? cut t = some x
⊢ lowerBound? cut t lb = some x
state_after: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? cut t.reverse.reverse = some x
⊢ lowerBound? cut t.reverse.reverse lb = some x

tactic: rw [lowerBound?_reverse]
state_before: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? cut t.reverse.reverse = some x
⊢ lowerBound? cut t.reverse.reverse lb = some x
state_after: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? cut t.reverse.reverse = some x
⊢ upperBound? (fun x => (cut x).swap) t.reverse lb = some x

tactic: rw [find?_reverse] at H
state_before: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? cut t.reverse.reverse = some x
⊢ upperBound? (fun x => (cut x).swap) t.reverse lb = some x
state_after: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? (fun x => (cut x).swap) t.reverse = some x
⊢ upperBound? (fun x => (cut x).swap) t.reverse lb = some x

tactic: exact upperBound?_eq_find? _ H
state_before: α : Type u_1
x : α
t : RBNode α
cut : α → Ordering
lb : Option α
H : find? (fun x => (cut x).swap) t.reverse = some x
⊢ upperBound? (fun x => (cut x).swap) t.reverse lb = some x
state_after: no goals
Theorem: deriv.scomp_of_eq
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: rw [hy] at hg
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
y : 𝕜'
hg : DifferentiableAt 𝕜' g₁ y
hh : DifferentiableAt 𝕜 h x
hy : y = h x
⊢ deriv (g₁ ∘ h) x = deriv h x • deriv g₁ (h x)
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
y : 𝕜'
hg : DifferentiableAt 𝕜' g₁ (h x)
hh : DifferentiableAt 𝕜 h x
hy : y = h x
⊢ deriv (g₁ ∘ h) x = deriv h x • deriv g₁ (h x)

tactic: exact deriv.scomp x hg hh
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
y : 𝕜'
hg : DifferentiableAt 𝕜' g₁ (h x)
hh : DifferentiableAt 𝕜 h x
hy : y = h x
⊢ deriv (g₁ ∘ h) x = deriv h x • deriv g₁ (h x)
state_after: no goals
Theorem: InnerProductGeometry.angle_sub_eq_arctan_of_inner_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [← neg_eq_zero, ← inner_neg_right] at h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
h0 : x ≠ 0
⊢ angle x (x - y) = Real.arctan (‖y‖ / ‖x‖)
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, -y⟫_ℝ = 0
h0 : x ≠ 0
⊢ angle x (x - y) = Real.arctan (‖y‖ / ‖x‖)

tactic: rw [sub_eq_add_neg, angle_add_eq_arctan_of_inner_eq_zero h h0, norm_neg]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, -y⟫_ℝ = 0
h0 : x ≠ 0
⊢ angle x (x - y) = Real.arctan (‖y‖ / ‖x‖)
state_after: no goals
Theorem: Batteries.RBNode.min?_mem
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: rw [min?_eq_toList_head?] at h
state_before: α : Type u_1
a : α
t : RBNode α
h : t.min? = some a
⊢ a ∈ t
state_after: α : Type u_1
a : α
t : RBNode α
h : t.toList.head? = some a
⊢ a ∈ t

tactic: rw [← mem_toList]
state_before: α : Type u_1
a : α
t : RBNode α
h : t.toList.head? = some a
⊢ a ∈ t
state_after: α : Type u_1
a : α
t : RBNode α
h : t.toList.head? = some a
⊢ a ∈ t.toList

tactic: revert h
state_before: α : Type u_1
a : α
t : RBNode α
h : t.toList.head? = some a
⊢ a ∈ t.toList
state_after: α : Type u_1
a : α
t : RBNode α
⊢ t.toList.head? = some a → a ∈ t.toList

tactic: cases toList t <;> rintro ⟨⟩
state_before: α : Type u_1
a : α
t : RBNode α
⊢ t.toList.head? = some a → a ∈ t.toList
state_after: case cons.refl
α : Type u_1
a : α
t : RBNode α
tail✝ : List α
⊢ a ∈ a :: tail✝

tactic: constructor
state_before: case cons.refl
α : Type u_1
a : α
t : RBNode α
tail✝ : List α
⊢ a ∈ a :: tail✝
state_after: no goals
Theorem: ContinuousMap.mem_compactConvergence_entourage_iff
File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

tactic: simp [hasBasis_compactConvergenceUniformity.mem_iff, and_assoc]
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
X : Set (C(α, β) × C(α, β))
⊢ X ∈ 𝓤 C(α, β) ↔ ∃ K V, IsCompact K ∧ V ∈ 𝓤 β ∧ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X
state_after: no goals
Theorem: Set.encard_insert_of_not_mem
File: Mathlib/Data/Set/Card.lean

tactic: rw [← union_singleton, encard_union_eq (by simpa), encard_singleton]
state_before: α : Type u_1
β : Type u_2
s t : Set α
a : α
has : a ∉ s
⊢ (insert a s).encard = s.encard + 1
state_after: no goals

tactic: simpa
state_before: α : Type u_1
β : Type u_2
s t : Set α
a : α
has : a ∉ s
⊢ Disjoint s {a}
state_after: no goals
Theorem: Finset.mem_pimage
File: Mathlib/Data/Finset/PImage.lean

tactic: simp [pimage]
state_before: α : Type u_1
β : Type u_2
inst✝² : DecidableEq β
f g : α →. β
inst✝¹ : (x : α) → Decidable (f x).Dom
inst✝ : (x : α) → Decidable (g x).Dom
s t : Finset α
b : β
⊢ b ∈ pimage f s ↔ ∃ a ∈ s, b ∈ f a
state_after: no goals