1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: SimpleGraph.fromEdgeSet_univ
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext v w
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
s : Set (Sym2 V)
⊢ fromEdgeSet Set.univ = ⊤
state_after: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s : Set (Sym2 V)
v w : V
⊢ (fromEdgeSet Set.univ).Adj v w ↔ ⊤.Adj v w

tactic: simp only [fromEdgeSet_adj, Set.mem_univ, true_and_iff, top_adj]
state_before: case Adj.h.h.a
ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
s : Set (Sym2 V)
v w : V
⊢ (fromEdgeSet Set.univ).Adj v w ↔ ⊤.Adj v w
state_after: no goals
Theorem: CategoryTheory.SimplicialCategory.sHomWhiskerRight_comp
File: Mathlib/AlgebraicTopology/SimplicialCategory/Basic.lean

tactic: dsimp [sHomWhiskerRight]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : SimplicialCategory C
K K' K'' : C
f : K ⟶ K'
f' : K' ⟶ K''
L : C
⊢ sHomWhiskerRight (f ≫ f') L = sHomWhiskerRight f' L ≫ sHomWhiskerRight f L
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : SimplicialCategory C
K K' K'' : C
f : K ⟶ K'
f' : K' ⟶ K''
L : C
⊢ (λ_ (sHom K'' L)).inv ≫ (homEquiv K K'') (f ≫ f') ▷ sHom K'' L ≫ sHomComp K K'' L =
    ((λ_ (sHom K'' L)).inv ≫ (homEquiv K' K'') f' ▷ sHom K'' L ≫ sHomComp K' K'' L) ≫
      (λ_ (sHom K' L)).inv ≫ (homEquiv K K') f ▷ sHom K' L ≫ sHomComp K K' L

tactic: simp only [assoc, homEquiv_comp, comp_whiskerRight, leftUnitor_inv_whiskerRight, ← e_assoc']
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : SimplicialCategory C
K K' K'' : C
f : K ⟶ K'
f' : K' ⟶ K''
L : C
⊢ (λ_ (sHom K'' L)).inv ≫ (homEquiv K K'') (f ≫ f') ▷ sHom K'' L ≫ sHomComp K K'' L =
    ((λ_ (sHom K'' L)).inv ≫ (homEquiv K' K'') f' ▷ sHom K'' L ≫ sHomComp K' K'' L) ≫
      (λ_ (sHom K' L)).inv ≫ (homEquiv K K') f ▷ sHom K' L ≫ sHomComp K K' L
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : SimplicialCategory C
K K' K'' : C
f : K ⟶ K'
f' : K' ⟶ K''
L : C
⊢ (λ_ (sHom K'' L)).inv ≫
      (λ_ (𝟙_ SSet ⊗ sHom K'' L)).inv ≫
        (α_ (𝟙_ SSet) (𝟙_ SSet) (sHom K'' L)).inv ≫
          ((homEquiv K K') f ⊗ (homEquiv K' K'') f') ▷ sHom K'' L ≫
            (α_ (EnrichedCategory.Hom K K') (EnrichedCategory.Hom K' K'') (EnrichedCategory.Hom K'' L)).hom ≫
              EnrichedCategory.Hom K K' ◁ eComp SSet K' K'' L ≫ eComp SSet K K' L =
    (λ_ (sHom K'' L)).inv ≫
      (homEquiv K' K'') f' ▷ sHom K'' L ≫
        sHomComp K' K'' L ≫ (λ_ (sHom K' L)).inv ≫ (homEquiv K K') f ▷ sHom K' L ≫ sHomComp K K' L

tactic: rfl
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : SimplicialCategory C
K K' K'' : C
f : K ⟶ K'
f' : K' ⟶ K''
L : C
⊢ (λ_ (sHom K'' L)).inv ≫
      (λ_ (𝟙_ SSet ⊗ sHom K'' L)).inv ≫
        (α_ (𝟙_ SSet) (𝟙_ SSet) (sHom K'' L)).inv ≫
          ((homEquiv K K') f ⊗ (homEquiv K' K'') f') ▷ sHom K'' L ≫
            (α_ (EnrichedCategory.Hom K K') (EnrichedCategory.Hom K' K'') (EnrichedCategory.Hom K'' L)).hom ≫
              EnrichedCategory.Hom K K' ◁ eComp SSet K' K'' L ≫ eComp SSet K K' L =
    (λ_ (sHom K'' L)).inv ≫
      (homEquiv K' K'') f' ▷ sHom K'' L ≫
        sHomComp K' K'' L ≫ (λ_ (sHom K' L)).inv ≫ (homEquiv K K') f ▷ sHom K' L ≫ sHomComp K K' L
state_after: no goals
Theorem: div_eq_one
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [h, div_self']
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
h : a = b
⊢ a / b = 1
state_after: no goals
Theorem: AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_basicOpen'
File: Mathlib/AlgebraicGeometry/AffineScheme.lean

tactic: rw [Scheme.preimage_basicOpen, hU.fromSpec_app_self]
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ hU.fromSpec ⁻¹ᵁ X.basicOpen f = (Spec Γ(X, U)).basicOpen ((Scheme.ΓSpecIso Γ(X, U)).inv f)
state_after: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ (Spec Γ(X, U)).basicOpen (((Scheme.ΓSpecIso Γ(X, U)).inv ≫ (Spec Γ(X, U)).presheaf.map (eqToHom ⋯).op) f) =
    (Spec Γ(X, U)).basicOpen ((Scheme.ΓSpecIso Γ(X, U)).inv f)

tactic: exact Scheme.basicOpen_res_eq _ _ (eqToHom hU.fromSpec_preimage_self).op
state_before: X Y : Scheme
U : Opens ↑↑X.toPresheafedSpace
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ (Spec Γ(X, U)).basicOpen (((Scheme.ΓSpecIso Γ(X, U)).inv ≫ (Spec Γ(X, U)).presheaf.map (eqToHom ⋯).op) f) =
    (Spec Γ(X, U)).basicOpen ((Scheme.ΓSpecIso Γ(X, U)).inv f)
state_after: no goals
Theorem: GeneralizedContinuedFraction.of_correctness_atTop_of_terminates
File: Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean

tactic: rw [eventually_atTop]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n : ℕ
inst✝ : FloorRing K
terminates : (of v).Terminates
⊢ ∀ᶠ (n : ℕ) in atTop, v = (of v).convergents n
state_after: K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n : ℕ
inst✝ : FloorRing K
terminates : (of v).Terminates
⊢ ∃ a, ∀ b ≥ a, v = (of v).convergents b

tactic: obtain ⟨n, terminated_at_n⟩ : ∃ n, (of v).TerminatedAt n := terminates
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n : ℕ
inst✝ : FloorRing K
terminates : (of v).Terminates
⊢ ∃ a, ∀ b ≥ a, v = (of v).convergents b
state_after: case intro
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
⊢ ∃ a, ∀ b ≥ a, v = (of v).convergents b

tactic: use n
state_before: case intro
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
⊢ ∃ a, ∀ b ≥ a, v = (of v).convergents b
state_after: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
⊢ ∀ b ≥ n, v = (of v).convergents b

tactic: intro m m_geq_n
state_before: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
⊢ ∀ b ≥ n, v = (of v).convergents b
state_after: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
m : ℕ
m_geq_n : m ≥ n
⊢ v = (of v).convergents m

tactic: rw [convergents_stable_of_terminated m_geq_n terminated_at_n]
state_before: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
m : ℕ
m_geq_n : m ≥ n
⊢ v = (of v).convergents m
state_after: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
m : ℕ
m_geq_n : m ≥ n
⊢ v = (of v).convergents n

tactic: exact of_correctness_of_terminatedAt terminated_at_n
state_before: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
v : K
n✝ : ℕ
inst✝ : FloorRing K
n : ℕ
terminated_at_n : (of v).TerminatedAt n
m : ℕ
m_geq_n : m ≥ n
⊢ v = (of v).convergents n
state_after: no goals
Theorem: Set.inv_Ioo_0_left
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: ext x
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a✝ a : α
ha : 0 < a
⊢ (Ioo 0 a)⁻¹ = Ioi a⁻¹
state_after: case h
α : Type u_1
inst✝ : LinearOrderedField α
a✝ a : α
ha : 0 < a
x : α
⊢ x ∈ (Ioo 0 a)⁻¹ ↔ x ∈ Ioi a⁻¹

tactic: exact
  ⟨fun h => inv_inv x ▸ (inv_lt_inv ha h.1).2 h.2, fun h =>
    ⟨inv_pos.2 <| (inv_pos.2 ha).trans h,
      inv_inv a ▸ (inv_lt_inv ((inv_pos.2 ha).trans h) (inv_pos.2 ha)).2 h⟩⟩
state_before: case h
α : Type u_1
inst✝ : LinearOrderedField α
a✝ a : α
ha : 0 < a
x : α
⊢ x ∈ (Ioo 0 a)⁻¹ ↔ x ∈ Ioi a⁻¹
state_after: no goals
Theorem: EuclideanGeometry.Sphere.secondInter_collinear
File: Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean

tactic: rw [Set.pair_comm, Set.insert_comm]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p p' : P
⊢ Collinear ℝ {p, p', s.secondInter p (p' -ᵥ p)}
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p p' : P
⊢ Collinear ℝ {s.secondInter p (p' -ᵥ p), p, p'}

tactic: exact
  (collinear_insert_iff_of_mem_affineSpan (s.secondInter_vsub_mem_affineSpan _ _)).2
    (collinear_pair ℝ _ _)
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p p' : P
⊢ Collinear ℝ {s.secondInter p (p' -ᵥ p), p, p'}
state_after: no goals
Theorem: Finset.sup_eq_sSup_image
File: Mathlib/Data/Finset/Lattice.lean

tactic: classical rw [← Finset.coe_image, ← sup_id_eq_sSup, sup_image, Function.id_comp]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : CompleteLattice β
s : Finset α
f : α → β
⊢ s.sup f = sSup (f '' ↑s)
state_after: no goals

tactic: rw [← Finset.coe_image, ← sup_id_eq_sSup, sup_image, Function.id_comp]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : CompleteLattice β
s : Finset α
f : α → β
⊢ s.sup f = sSup (f '' ↑s)
state_after: no goals
Theorem: Polynomial.coeff_mul_X_sub_C
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: simp [mul_sub]
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Ring R
p : R[X]
r : R
a : ℕ
⊢ (p * (X - C r)).coeff (a + 1) = p.coeff a - p.coeff (a + 1) * r
state_after: no goals
Theorem: Nat.choose_symm
File: Mathlib/Data/Nat/Choose/Basic.lean

tactic: rw [choose_eq_factorial_div_factorial hk, choose_eq_factorial_div_factorial (Nat.sub_le _ _),
  Nat.sub_sub_self hk, Nat.mul_comm]
state_before: n k : ℕ
hk : k ≤ n
⊢ n.choose (n - k) = n.choose k
state_after: no goals
Theorem: QuadraticForm.choose_exists_companion
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: rw [polarBilin_apply_apply, polar, Q.exists_companion.choose_spec, sub_sub,
  add_sub_cancel_left]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
Q : QuadraticForm R M
inst✝³ : CommSemiring S
inst✝² : Algebra S R
inst✝¹ : Module S M
inst✝ : IsScalarTower S R M
x y : M
⊢ (⋯.choose x) y = (Q.polarBilin x) y
state_after: no goals
Theorem: SimpleGraph.is3Clique_iff_exists_cycle_length_three
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: classical
simp_rw [is3Clique_iff, isCycle_def]
exact
  ⟨(fun ⟨_, a, _, _, hab, hac, hbc, _⟩ => ⟨a, cons hab (cons hbc (cons hac.symm nil)), by aesop⟩),
  (fun ⟨_, .cons hab (.cons hbc (.cons hca nil)), _, _⟩ => ⟨_, _, _, _, hab, hca.symm, hbc, rfl⟩)⟩
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ (∃ s, G.IsNClique 3 s) ↔ ∃ u w, w.IsCycle ∧ w.length = 3
state_after: no goals

tactic: simp_rw [is3Clique_iff, isCycle_def]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ (∃ s, G.IsNClique 3 s) ↔ ∃ u w, w.IsCycle ∧ w.length = 3
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ (∃ s a b c, G.Adj a b ∧ G.Adj a c ∧ G.Adj b c ∧ s = {a, b, c}) ↔
    ∃ u w, (w.IsTrail ∧ w ≠ nil ∧ w.support.tail.Nodup) ∧ w.length = 3

tactic: exact
  ⟨(fun ⟨_, a, _, _, hab, hac, hbc, _⟩ => ⟨a, cons hab (cons hbc (cons hac.symm nil)), by aesop⟩),
  (fun ⟨_, .cons hab (.cons hbc (.cons hca nil)), _, _⟩ => ⟨_, _, _, _, hab, hca.symm, hbc, rfl⟩)⟩
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ (∃ s a b c, G.Adj a b ∧ G.Adj a c ∧ G.Adj b c ∧ s = {a, b, c}) ↔
    ∃ u w, (w.IsTrail ∧ w ≠ nil ∧ w.support.tail.Nodup) ∧ w.length = 3
state_after: no goals

tactic: aesop
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a✝ b c : α
x✝ : ∃ s a b c, G.Adj a b ∧ G.Adj a c ∧ G.Adj b c ∧ s = {a, b, c}
w✝² : Finset α
a w✝¹ w✝ : α
hab : G.Adj a w✝¹
hac : G.Adj a w✝
hbc : G.Adj w✝¹ w✝
right✝ : w✝² = {a, w✝¹, w✝}
⊢ ((Walk.cons hab (Walk.cons hbc (Walk.cons ⋯ nil))).IsTrail ∧
      Walk.cons hab (Walk.cons hbc (Walk.cons ⋯ nil)) ≠ nil ∧
        (Walk.cons hab (Walk.cons hbc (Walk.cons ⋯ nil))).support.tail.Nodup) ∧
    (Walk.cons hab (Walk.cons hbc (Walk.cons ⋯ nil))).length = 3
state_after: no goals
Theorem: Cardinal.mk_subset_ge_of_subset_image
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [image_eq_range] at h
state_before: α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ f '' s
⊢ #↑t ≤ #↑{x | x ∈ s ∧ f x ∈ t}
state_after: α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ range fun x => f ↑x
⊢ #↑t ≤ #↑{x | x ∈ s ∧ f x ∈ t}

tactic: convert mk_preimage_of_subset_range _ _ h using 1
state_before: α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ range fun x => f ↑x
⊢ #↑t ≤ #↑{x | x ∈ s ∧ f x ∈ t}
state_after: case h.e'_4
α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ range fun x => f ↑x
⊢ #↑{x | x ∈ s ∧ f x ∈ t} = #↑((fun x => f ↑x) ⁻¹' t)

tactic: rw [mk_sep]
state_before: case h.e'_4
α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ range fun x => f ↑x
⊢ #↑{x | x ∈ s ∧ f x ∈ t} = #↑((fun x => f ↑x) ⁻¹' t)
state_after: case h.e'_4
α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ range fun x => f ↑x
⊢ #↑{x | f ↑x ∈ t} = #↑((fun x => f ↑x) ⁻¹' t)

tactic: rfl
state_before: case h.e'_4
α β : Type u
c : Cardinal.{?u.233383}
f : α → β
s : Set α
t : Set β
h : t ⊆ range fun x => f ↑x
⊢ #↑{x | f ↑x ∈ t} = #↑((fun x => f ↑x) ⁻¹' t)
state_after: no goals
Theorem: Submodule.ker_mkQ
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
⊢ ker p.mkQ = p
state_after: case h
R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
x✝ : M
⊢ x✝ ∈ ker p.mkQ ↔ x✝ ∈ p

tactic: simp
state_before: case h
R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
x✝ : M
⊢ x✝ ∈ ker p.mkQ ↔ x✝ ∈ p
state_after: no goals
Theorem: one_sub_dvd_one_sub_pow
File: Mathlib/Algebra/GeomSum.lean

tactic: conv_rhs => rw [← one_pow n]
state_before: α : Type u
inst✝ : Ring α
x : α
n : ℕ
⊢ 1 - x ∣ 1 - x ^ n
state_after: α : Type u
inst✝ : Ring α
x : α
n : ℕ
⊢ 1 - x ∣ 1 ^ n - x ^ n

tactic: exact (Commute.one_left x).sub_dvd_pow_sub_pow n
state_before: α : Type u
inst✝ : Ring α
x : α
n : ℕ
⊢ 1 - x ∣ 1 ^ n - x ^ n
state_after: no goals
Theorem: HasStrictFDerivAt.finset_prod
File: Mathlib/Analysis/Calculus/FDeriv/Mul.lean

tactic: ext
state_before: 𝕜 : Type u_1
inst✝¹³ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace 𝕜 E
F : Type u_3
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
G : Type u_4
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : NormedSpace 𝕜 G
G' : Type u_5
inst✝⁶ : NormedAddCommGroup G'
inst✝⁵ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g✝ : E → F
f'✝ f₀' f₁' g'✝ e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
ι : Type u_6
𝔸 : Type u_7
𝔸' : Type u_8
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedCommRing 𝔸'
inst✝² : NormedAlgebra 𝕜 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝔸'
u : Finset ι
f : ι → E → 𝔸
f' : ι → E →L[𝕜] 𝔸
g : ι → E → 𝔸'
g' : ι → E →L[𝕜] 𝔸'
inst✝ : DecidableEq ι
x : E
hg : ∀ i ∈ u, HasStrictFDerivAt (g i) (g' i) x
⊢ (∑ i ∈ u.attach, (∏ j ∈ u.attach.erase i, g (↑j) x) • proj i).comp (ContinuousLinearMap.pi fun i => g' ↑i) =
    ∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • g' i
state_after: case h
𝕜 : Type u_1
inst✝¹³ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace 𝕜 E
F : Type u_3
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
G : Type u_4
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : NormedSpace 𝕜 G
G' : Type u_5
inst✝⁶ : NormedAddCommGroup G'
inst✝⁵ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g✝ : E → F
f'✝ f₀' f₁' g'✝ e : E →L[𝕜] F
x✝¹ : E
s t : Set E
L L₁ L₂ : Filter E
ι : Type u_6
𝔸 : Type u_7
𝔸' : Type u_8
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedCommRing 𝔸'
inst✝² : NormedAlgebra 𝕜 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝔸'
u : Finset ι
f : ι → E → 𝔸
f' : ι → E →L[𝕜] 𝔸
g : ι → E → 𝔸'
g' : ι → E →L[𝕜] 𝔸'
inst✝ : DecidableEq ι
x : E
hg : ∀ i ∈ u, HasStrictFDerivAt (g i) (g' i) x
x✝ : E
⊢ ((∑ i ∈ u.attach, (∏ j ∈ u.attach.erase i, g (↑j) x) • proj i).comp (ContinuousLinearMap.pi fun i => g' ↑i)) x✝ =
    (∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • g' i) x✝
Theorem: ExteriorAlgebra.map_apply_ιMulti
File: Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean

tactic: rw [ιMulti_apply, ιMulti_apply, map_list_prod]
state_before: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
n : ℕ
f : M →ₗ[R] N
m : Fin n → M
⊢ (map f) ((ιMulti R n) m) = (ιMulti R n) (⇑f ∘ m)
state_after: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
n : ℕ
f : M →ₗ[R] N
m : Fin n → M
⊢ (List.map (⇑(map f)) (List.ofFn fun i => (ι R) (m i))).prod = (List.ofFn fun i => (ι R) ((⇑f ∘ m) i)).prod

tactic: simp only [List.map_ofFn, Function.comp, map_apply_ι]
state_before: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
n : ℕ
f : M →ₗ[R] N
m : Fin n → M
⊢ (List.map (⇑(map f)) (List.ofFn fun i => (ι R) (m i))).prod = (List.ofFn fun i => (ι R) ((⇑f ∘ m) i)).prod
state_after: no goals
Theorem: LSeries_smul
File: Mathlib/NumberTheory/LSeries/Linearity.lean

tactic: simp only [LSeries, term_smul_apply, tsum_mul_left]
state_before: f : ℕ → ℂ
c s : ℂ
⊢ LSeries (c • f) s = c * LSeries f s
state_after: no goals
Theorem: Monoid.ExponentExists.isOfFinOrder
File: Mathlib/GroupTheory/Exponent.lean

tactic: peel 2 h
state_before: G : Type u
inst✝ : Monoid G
h : ExponentExists G
g : G
⊢ ∃ n, 0 < n ∧ g ^ n = 1
state_after: case h.h
G : Type u
inst✝ : Monoid G
h : ExponentExists G
g : G
n✝ : ℕ
p✝ : 0 < n✝
this : ∀ (g : G), g ^ n✝ = 1
⊢ g ^ n✝ = 1

tactic: exact this g
state_before: case h.h
G : Type u
inst✝ : Monoid G
h : ExponentExists G
g : G
n✝ : ℕ
p✝ : 0 < n✝
this : ∀ (g : G), g ^ n✝ = 1
⊢ g ^ n✝ = 1
state_after: no goals
Theorem: StrictConvex.inter
File: Mathlib/Analysis/Convex/Strict.lean

tactic: intro x hx y hy hxy a b ha hb hab
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s : Set E
x y : E
a b : 𝕜
t : Set E
hs : StrictConvex 𝕜 s
ht : StrictConvex 𝕜 t
⊢ StrictConvex 𝕜 (s ∩ t)
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s : Set E
x✝ y✝ : E
a✝ b✝ : 𝕜
t : Set E
hs : StrictConvex 𝕜 s
ht : StrictConvex 𝕜 t
x : E
hx : x ∈ s ∩ t
y : E
hy : y ∈ s ∩ t
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ interior (s ∩ t)

tactic: rw [interior_inter]
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s : Set E
x✝ y✝ : E
a✝ b✝ : 𝕜
t : Set E
hs : StrictConvex 𝕜 s
ht : StrictConvex 𝕜 t
x : E
hx : x ∈ s ∩ t
y : E
hy : y ∈ s ∩ t
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ interior (s ∩ t)
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s : Set E
x✝ y✝ : E
a✝ b✝ : 𝕜
t : Set E
hs : StrictConvex 𝕜 s
ht : StrictConvex 𝕜 t
x : E
hx : x ∈ s ∩ t
y : E
hy : y ∈ s ∩ t
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ interior s ∩ interior t

tactic: exact ⟨hs hx.1 hy.1 hxy ha hb hab, ht hx.2 hy.2 hxy ha hb hab⟩
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
F : Type u_4
β : Type u_5
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalSpace F
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s : Set E
x✝ y✝ : E
a✝ b✝ : 𝕜
t : Set E
hs : StrictConvex 𝕜 s
ht : StrictConvex 𝕜 t
x : E
hx : x ∈ s ∩ t
y : E
hy : y ∈ s ∩ t
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ interior s ∩ interior t
state_after: no goals
Theorem: RCLike.ratCast_im
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: rw [← ofReal_ratCast, ofReal_im]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z : K
q : ℚ
⊢ im ↑q = 0
state_after: no goals
Theorem: Nat.Primrec.prec1
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: f : ℕ → ℕ
m : ℕ
hf : Nat.Primrec f
n : ℕ
⊢ unpaired (fun z n => Nat.rec m (fun y IH => f (unpair (Nat.pair z (Nat.pair y IH))).2) n) (Nat.pair 0 (id n)) =
    Nat.rec m (fun y IH => f (Nat.pair y IH)) n
state_after: no goals
Theorem: iSup_emptyset
File: Mathlib/Order/CompleteLattice.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteLattice α
f✝ g s t : ι → α
a b : α
f : β → α
⊢ ⨆ x ∈ ∅, f x = ⊥
state_after: no goals