1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: BoxIntegral.Box.subbox_induction_on
File: Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean

tactic: refine subbox_induction_on' I (fun J hle hs => H_ind J hle fun J' h' => ?_) H_nhds
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
p : Box ι → Prop
I : Box ι
H_ind : ∀ J ≤ I, (∀ J' ∈ splitCenter J, p J') → p J
H_nhds :
  ∀ z ∈ Box.Icc I,
    ∃ U ∈ 𝓝[Box.Icc I] z,
      ∀ J ≤ I,
        ∀ (m : ℕ),
          z ∈ Box.Icc J → Box.Icc J ⊆ U → (∀ (i : ι), J.upper i - J.lower i = (I.upper i - I.lower i) / 2 ^ m) → p J
⊢ p I
state_after: ι : Type u_1
inst✝ : Fintype ι
I✝ J✝ : Box ι
p : Box ι → Prop
I : Box ι
H_ind : ∀ J ≤ I, (∀ J' ∈ splitCenter J, p J') → p J
H_nhds :
  ∀ z ∈ Box.Icc I,
    ∃ U ∈ 𝓝[Box.Icc I] z,
      ∀ J ≤ I,
        ∀ (m : ℕ),
          z ∈ Box.Icc J → Box.Icc J ⊆ U → (∀ (i : ι), J.upper i - J.lower i = (I.upper i - I.lower i) / 2 ^ m) → p J
J : Box ι
hle : J ≤ I
hs : ∀ (s : Set ι), p (J.splitCenterBox s)
J' : Box ι
h' : J' ∈ splitCenter J
⊢ p J'

tactic: rcases mem_splitCenter.1 h' with ⟨s, rfl⟩
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J✝ : Box ι
p : Box ι → Prop
I : Box ι
H_ind : ∀ J ≤ I, (∀ J' ∈ splitCenter J, p J') → p J
H_nhds :
  ∀ z ∈ Box.Icc I,
    ∃ U ∈ 𝓝[Box.Icc I] z,
      ∀ J ≤ I,
        ∀ (m : ℕ),
          z ∈ Box.Icc J → Box.Icc J ⊆ U → (∀ (i : ι), J.upper i - J.lower i = (I.upper i - I.lower i) / 2 ^ m) → p J
J : Box ι
hle : J ≤ I
hs : ∀ (s : Set ι), p (J.splitCenterBox s)
J' : Box ι
h' : J' ∈ splitCenter J
⊢ p J'
state_after: case intro
ι : Type u_1
inst✝ : Fintype ι
I✝ J✝ : Box ι
p : Box ι → Prop
I : Box ι
H_ind : ∀ J ≤ I, (∀ J' ∈ splitCenter J, p J') → p J
H_nhds :
  ∀ z ∈ Box.Icc I,
    ∃ U ∈ 𝓝[Box.Icc I] z,
      ∀ J ≤ I,
        ∀ (m : ℕ),
          z ∈ Box.Icc J → Box.Icc J ⊆ U → (∀ (i : ι), J.upper i - J.lower i = (I.upper i - I.lower i) / 2 ^ m) → p J
J : Box ι
hle : J ≤ I
hs : ∀ (s : Set ι), p (J.splitCenterBox s)
s : Set ι
h' : J.splitCenterBox s ∈ splitCenter J
⊢ p (J.splitCenterBox s)

tactic: exact hs s
state_before: case intro
ι : Type u_1
inst✝ : Fintype ι
I✝ J✝ : Box ι
p : Box ι → Prop
I : Box ι
H_ind : ∀ J ≤ I, (∀ J' ∈ splitCenter J, p J') → p J
H_nhds :
  ∀ z ∈ Box.Icc I,
    ∃ U ∈ 𝓝[Box.Icc I] z,
      ∀ J ≤ I,
        ∀ (m : ℕ),
          z ∈ Box.Icc J → Box.Icc J ⊆ U → (∀ (i : ι), J.upper i - J.lower i = (I.upper i - I.lower i) / 2 ^ m) → p J
J : Box ι
hle : J ≤ I
hs : ∀ (s : Set ι), p (J.splitCenterBox s)
s : Set ι
h' : J.splitCenterBox s ∈ splitCenter J
⊢ p (J.splitCenterBox s)
state_after: no goals
Theorem: Real.sqrt_zero
File: Mathlib/Data/Real/Sqrt.lean

tactic: simp [Real.sqrt]
state_before: x y : ℝ
⊢ √0 = 0
state_after: no goals
Theorem: SetTheory.PGame.add_lf_add_left
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [lf_congr add_comm_equiv add_comm_equiv]
state_before: xl xr : Type u
y z : PGame
h : y ⧏ z
x : PGame
⊢ x + y ⧏ x + z
state_after: xl xr : Type u
y z : PGame
h : y ⧏ z
x : PGame
⊢ y + x ⧏ z + x

tactic: apply add_lf_add_right h
state_before: xl xr : Type u
y z : PGame
h : y ⧏ z
x : PGame
⊢ y + x ⧏ z + x
state_after: no goals
Theorem: smul_ne_zero_iff_left
File: Mathlib/Algebra/Module/Defs.lean

tactic: simp [hx]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝³ : Zero R
inst✝² : Zero M
inst✝¹ : SMulWithZero R M
inst✝ : NoZeroSMulDivisors R M
c : R
x : M
hx : x ≠ 0
⊢ c • x ≠ 0 ↔ c ≠ 0
state_after: no goals
Theorem: List.not_nodup_of_get_eq_of_ne
File: Mathlib/Data/List/Nodup.lean

tactic: rw [nodup_iff_injective_get]
state_before: α : Type u
β : Type v
l l₁ l₂ : List α
r : α → α → Prop
a b : α
xs : List α
n m : Fin xs.length
h : xs.get n = xs.get m
hne : n ≠ m
⊢ ¬xs.Nodup
state_after: α : Type u
β : Type v
l l₁ l₂ : List α
r : α → α → Prop
a b : α
xs : List α
n m : Fin xs.length
h : xs.get n = xs.get m
hne : n ≠ m
⊢ ¬Injective xs.get

tactic: exact fun hinj => hne (hinj h)
state_before: α : Type u
β : Type v
l l₁ l₂ : List α
r : α → α → Prop
a b : α
xs : List α
n m : Fin xs.length
h : xs.get n = xs.get m
hne : n ≠ m
⊢ ¬Injective xs.get
state_after: no goals
Theorem: Absorbs.of_boundedSpace
File: Mathlib/Topology/Bornology/Absorbs.lean

tactic: simp [Absorbs]
state_before: M : Type u_1
α : Type u_2
inst✝² : Bornology M
inst✝¹ : SMul M α
s s₁ s₂ t t₁ t₂ : Set α
S T : Set (Set α)
inst✝ : BoundedSpace M
⊢ Absorbs M s t
state_after: no goals
Theorem: LinearMap.smulRight_zero
File: Mathlib/Algebra/Module/LinearMap/End.lean

tactic: ext
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
S : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
N : Type u_9
N₁ : Type u_10
N₂ : Type u_11
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Semiring S
inst✝² : Module R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
f : M₁ →ₗ[R] S
⊢ f.smulRight 0 = 0
state_after: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
S : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
N : Type u_9
N₁ : Type u_10
N₂ : Type u_11
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Semiring S
inst✝² : Module R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
f : M₁ →ₗ[R] S
x✝ : M₁
⊢ (f.smulRight 0) x✝ = 0 x✝

tactic: simp
state_before: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
S : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
N : Type u_9
N₁ : Type u_10
N₂ : Type u_11
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Semiring S
inst✝² : Module R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
f : M₁ →ₗ[R] S
x✝ : M₁
⊢ (f.smulRight 0) x✝ = 0 x✝
state_after: no goals
Theorem: ContinuousMultilinearMap.curryFinFinset_apply_const
File: Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean

tactic: refine (curryFinFinset_symm_apply_piecewise_const hk hl _ _ _).symm.trans ?_
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
k l : ℕ
s : Finset (Fin n)
hk : s.card = k
hl : sᶜ.card = l
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
x y : G
⊢ ((((curryFinFinset 𝕜 G G' hk hl) f) fun x_1 => x) fun x => y) = f (s.piecewise (fun x_1 => x) fun x => y)
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
k l : ℕ
s : Finset (Fin n)
hk : s.card = k
hl : sᶜ.card = l
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
x y : G
⊢ ((curryFinFinset 𝕜 G G' hk hl).symm ((curryFinFinset 𝕜 G G' hk hl) f)) (s.piecewise (fun x_1 => x) fun x => y) =
    f (s.piecewise (fun x_1 => x) fun x => y)

tactic: rw [LinearIsometryEquiv.symm_apply_apply]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
k l : ℕ
s : Finset (Fin n)
hk : s.card = k
hl : sᶜ.card = l
f : ContinuousMultilinearMap 𝕜 (fun i => G) G'
x y : G
⊢ ((curryFinFinset 𝕜 G G' hk hl).symm ((curryFinFinset 𝕜 G G' hk hl) f)) (s.piecewise (fun x_1 => x) fun x => y) =
    f (s.piecewise (fun x_1 => x) fun x => y)
state_after: no goals
Theorem: IsNilpotent.pow_succ
File: Mathlib/RingTheory/Nilpotent/Defs.lean

tactic: obtain ⟨N,hN⟩ := hx
state_before: R : Type u_1
S✝ : Type u_2
x✝ y : R
n : ℕ
S : Type u_3
inst✝ : MonoidWithZero S
x : S
hx : IsNilpotent x
⊢ IsNilpotent (x ^ n.succ)
state_after: case intro
R : Type u_1
S✝ : Type u_2
x✝ y : R
n : ℕ
S : Type u_3
inst✝ : MonoidWithZero S
x : S
N : ℕ
hN : x ^ N = 0
⊢ IsNilpotent (x ^ n.succ)

tactic: use N
state_before: case intro
R : Type u_1
S✝ : Type u_2
x✝ y : R
n : ℕ
S : Type u_3
inst✝ : MonoidWithZero S
x : S
N : ℕ
hN : x ^ N = 0
⊢ IsNilpotent (x ^ n.succ)
state_after: case h
R : Type u_1
S✝ : Type u_2
x✝ y : R
n : ℕ
S : Type u_3
inst✝ : MonoidWithZero S
x : S
N : ℕ
hN : x ^ N = 0
⊢ (x ^ n.succ) ^ N = 0

tactic: rw [← pow_mul, Nat.succ_mul, pow_add, hN, mul_zero]
state_before: case h
R : Type u_1
S✝ : Type u_2
x✝ y : R
n : ℕ
S : Type u_3
inst✝ : MonoidWithZero S
x : S
N : ℕ
hN : x ^ N = 0
⊢ (x ^ n.succ) ^ N = 0
state_after: no goals
Theorem: List.modifyHead_nil
File: .lake/packages/batteries/Batteries/Data/List/Basic.lean

tactic: rw [modifyHead]
state_before: α : Type u_1
f : α → α
⊢ modifyHead f [] = []
state_after: no goals
Theorem: ascPochhammer_succ_left
File: Mathlib/RingTheory/Polynomial/Pochhammer.lean

tactic: rw [ascPochhammer]
state_before: S : Type u
inst✝ : Semiring S
n : ℕ
⊢ ascPochhammer S (n + 1) = X * (ascPochhammer S n).comp (X + 1)
state_after: no goals
Theorem: Group.ext
File: Mathlib/Algebra/Group/Ext.lean

tactic: let f : @MonoidHom G G g₁.toMulOneClass g₂.toMulOneClass :=
  @MonoidHom.mk _ _ (_) _ (@OneHom.mk _ _ (_) _ id h₁)
    (fun x y => congr_fun (congr_fun h_mul x) y)
state_before: G : Type u_1
g₁ g₂ : Group G
h_mul : Mul.mul = Mul.mul
h₁ : One.one = One.one
⊢ g₁ = g₂
state_after: G : Type u_1
g₁ g₂ : Group G
h_mul : Mul.mul = Mul.mul
h₁ : One.one = One.one
f : G →* G := { toFun := id, map_one' := h₁, map_mul' := ⋯ }
⊢ g₁ = g₂

tactic: exact
  Group.toDivInvMonoid_injective
    (DivInvMonoid.ext h_mul
      (funext <| @MonoidHom.map_inv G G g₁ g₂.toDivisionMonoid f))
state_before: G : Type u_1
g₁ g₂ : Group G
h_mul : Mul.mul = Mul.mul
h₁ : One.one = One.one
f : G →* G := { toFun := id, map_one' := h₁, map_mul' := ⋯ }
⊢ g₁ = g₂
state_after: no goals
Theorem: IsOpen.div_closure
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simp_rw [div_eq_mul_inv, inv_closure, hs.mul_closure]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s t✝ : Set G
hs : IsOpen s
t : Set G
⊢ s / closure t = s / t
state_after: no goals
Theorem: CategoryTheory.essentiallySmall_of_small_of_locallySmall
File: Mathlib/CategoryTheory/EssentiallySmall.lean

tactic: infer_instance
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Small.{w, u} C
inst✝ : LocallySmall.{w, v, u} C
⊢ LocallySmall.{w, v, u} C
state_after: no goals
Theorem: Nat.add_factorial_succ_le_factorial_add_succ
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: cases (le_or_lt (2 : ℕ) i)
state_before: m n✝ i n : ℕ
⊢ i + (n + 1)! ≤ (i + (n + 1))!
state_after: case inl
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ i + (n + 1)! ≤ (i + (n + 1))!

case inr
m n✝ i n : ℕ
h✝ : i < 2
⊢ i + (n + 1)! ≤ (i + (n + 1))!

tactic: rw [← Nat.add_assoc]
state_before: case inl
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ i + (n + 1)! ≤ (i + (n + 1))!
state_after: case inl
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ i + (n + 1)! ≤ (i + n + 1)!

tactic: apply Nat.le_of_lt
state_before: case inl
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ i + (n + 1)! ≤ (i + n + 1)!
state_after: case inl.a
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ i + (n + 1)! < (i + n + 1)!

tactic: apply add_factorial_succ_lt_factorial_add_succ
state_before: case inl.a
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ i + (n + 1)! < (i + n + 1)!
state_after: case inl.a.hi
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ 2 ≤ i

tactic: assumption
state_before: case inl.a.hi
m n✝ i n : ℕ
h✝ : 2 ≤ i
⊢ 2 ≤ i
state_after: no goals

tactic: match i with
| 0 => simp
| 1 =>
  rw [← Nat.add_assoc, factorial_succ (1 + n), Nat.add_mul, Nat.one_mul, Nat.add_comm 1 n,
    Nat.add_le_add_iff_right]
  exact Nat.mul_pos n.succ_pos n.succ.factorial_pos
| succ (succ n) => contradiction
state_before: case inr
m n✝ i n : ℕ
h✝ : i < 2
⊢ i + (n + 1)! ≤ (i + (n + 1))!
state_after: no goals

tactic: simp
state_before: m n✝ i n : ℕ
h✝ : 0 < 2
⊢ 0 + (n + 1)! ≤ (0 + (n + 1))!
state_after: no goals

tactic: rw [← Nat.add_assoc, factorial_succ (1 + n), Nat.add_mul, Nat.one_mul, Nat.add_comm 1 n,
  Nat.add_le_add_iff_right]
state_before: m n✝ i n : ℕ
h✝ : 1 < 2
⊢ 1 + (n + 1)! ≤ (1 + (n + 1))!
state_after: m n✝ i n : ℕ
h✝ : 1 < 2
⊢ 1 ≤ (n + 1) * (n + 1)!

tactic: exact Nat.mul_pos n.succ_pos n.succ.factorial_pos
state_before: m n✝ i n : ℕ
h✝ : 1 < 2
⊢ 1 ≤ (n + 1) * (n + 1)!
state_after: no goals

tactic: contradiction
state_before: m n✝¹ i n✝ n : ℕ
h✝ : n.succ.succ < 2
⊢ n.succ.succ + (n✝ + 1)! ≤ (n.succ.succ + (n✝ + 1))!
state_after: no goals
Theorem: Fin.rev_succAbove
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [succAbove_rev_left, rev_rev]
state_before: n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
⊢ (p.succAbove i).rev = p.rev.succAbove i.rev
state_after: no goals
Theorem: isCyclic_of_card_pow_eq_one_le
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

tactic: rw [card_orderOf_eq_totient_aux₂ hn dvd_rfl, totient_pos]
state_before: α : Type u
a : α
inst✝² : Group α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
hn : ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
⊢ 0 < (filter (fun a => orderOf a = Fintype.card α) univ).card
state_after: α : Type u
a : α
inst✝² : Group α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
hn : ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
⊢ 0 < Fintype.card α

tactic: apply Fintype.card_pos
state_before: α : Type u
a : α
inst✝² : Group α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
hn : ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
⊢ 0 < Fintype.card α
state_after: no goals
Theorem: IntermediateField.algHomAdjoinIntegralEquiv_symm_apply_gen
File: Mathlib/FieldTheory/Adjoin.lean

tactic: rw [adjoin.powerBasis_gen, minpoly_gen]
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
x : { x // x ∈ (minpoly F α).aroots K }
⊢ (aeval ↑x) (minpoly F (adjoin.powerBasis h).gen) = 0
state_after: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
x : { x // x ∈ (minpoly F α).aroots K }
⊢ (aeval ↑x) (minpoly F α) = 0

tactic: exact (mem_aroots.mp x.2).2
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
x : { x // x ∈ (minpoly F α).aroots K }
⊢ (aeval ↑x) (minpoly F α) = 0
state_after: no goals
Theorem: MvPolynomial.mem_restrictDegree
File: Mathlib/RingTheory/MvPolynomial/Basic.lean

tactic: rw [restrictDegree, restrictSupport, Finsupp.mem_supported]
state_before: σ : Type u
R : Type v
inst✝ : CommSemiring R
p✝ m : ℕ
p : MvPolynomial σ R
n : ℕ
⊢ p ∈ restrictDegree σ R n ↔ ∀ s ∈ p.support, ∀ (i : σ), s i ≤ n
state_after: σ : Type u
R : Type v
inst✝ : CommSemiring R
p✝ m : ℕ
p : MvPolynomial σ R
n : ℕ
⊢ ↑p.support ⊆ {n_1 | ∀ (i : σ), n_1 i ≤ n} ↔ ∀ s ∈ p.support, ∀ (i : σ), s i ≤ n

tactic: rfl
state_before: σ : Type u
R : Type v
inst✝ : CommSemiring R
p✝ m : ℕ
p : MvPolynomial σ R
n : ℕ
⊢ ↑p.support ⊆ {n_1 | ∀ (i : σ), n_1 i ≤ n} ↔ ∀ s ∈ p.support, ∀ (i : σ), s i ≤ n
state_after: no goals
Theorem: LSeries_delta
File: Mathlib/NumberTheory/LSeries/Basic.lean

tactic: ext
state_before: ⊢ L δ = 1
state_after: case h
x✝ : ℂ
⊢ L δ x✝ = 1 x✝

tactic: simp only [LSeries, LSeries.term_delta, tsum_ite_eq, Pi.one_apply]
state_before: case h
x✝ : ℂ
⊢ L δ x✝ = 1 x✝
state_after: no goals
Theorem: zpow_mod_natCard
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rw [eq_comm, ← zpow_mod_orderOf,
  ← Int.emod_emod_of_dvd n $ Int.natCast_dvd_natCast.2 $ orderOf_dvd_natCard _, zpow_mod_orderOf]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Group G
inst✝ : Fintype G
x : G
n✝ : ℕ
a : G
n : ℤ
⊢ a ^ (n % ↑(Nat.card G)) = a ^ n
state_after: no goals
Theorem: MeasureTheory.union_ae_eq_univ_of_ae_eq_univ_left
File: Mathlib/MeasureTheory/OuterMeasure/AE.lean

tactic: rw [univ_union]
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : s =ᶠ[ae μ] univ
⊢ univ ∪ t =ᶠ[ae μ] univ
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.unitForward_unitBackward
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: simp [unitForward, unitBackward]
state_before: C : Type u
inst✝ : Category.{v, u} C
A F : Cᵒᵖ ⥤ Type v
η : F ⟶ A
X : C
x : F.obj { unop := X }
⊢ (unitForward η X ∘ unitBackward η X) x = id x
state_after: no goals
Theorem: TensorAlgebra.ofDirectSum_comp_toDirectSum
File: Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
⊢ ofDirectSum.comp toDirectSum = AlgHom.id R (TensorAlgebra R M)
state_after: case w.h
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
x✝ : M
⊢ ((ofDirectSum.comp toDirectSum).toLinearMap ∘ₗ ι R) x✝ = ((AlgHom.id R (TensorAlgebra R M)).toLinearMap ∘ₗ ι R) x✝

tactic: simp [DirectSum.lof_eq_of, tprod_apply]
state_before: case w.h
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
x✝ : M
⊢ ((ofDirectSum.comp toDirectSum).toLinearMap ∘ₗ ι R) x✝ = ((AlgHom.id R (TensorAlgebra R M)).toLinearMap ∘ₗ ι R) x✝
state_after: no goals
Theorem: Equiv.Perm.cycleOf_apply_apply_pow_self
File: Mathlib/GroupTheory/Perm/Cycle/Factors.lean

tactic: convert cycleOf_apply_apply_zpow_self f x k using 1
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableRel f✝.SameCycle
inst✝¹ : DecidableRel g.SameCycle
f : Perm α
inst✝ : DecidableRel f.SameCycle
x : α
k : ℕ
⊢ (f.cycleOf x) ((f ^ k) x) = (f ^ (k + 1)) x
state_after: no goals
Theorem: Set.mulIndicator_congr
File: Mathlib/Algebra/Group/Indicator.lean

tactic: simp only [mulIndicator]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
⊢ s.mulIndicator f x = s.mulIndicator g x
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
⊢ (if x ∈ s then f x else 1) = if x ∈ s then g x else 1

tactic: split_ifs with h_1
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
⊢ (if x ∈ s then f x else 1) = if x ∈ s then g x else 1
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
h_1 : x ∈ s
⊢ f x = g x

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
h_1 : x ∉ s
⊢ 1 = 1

tactic: rfl
state_before: case neg
α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
h_1 : x ∉ s
⊢ 1 = 1
state_after: no goals

tactic: exact h h_1
state_before: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
h : EqOn f g s
x : α
h_1 : x ∈ s
⊢ f x = g x
state_after: no goals
Theorem: Set.indicator_smul_apply
File: Mathlib/Algebra/Module/Basic.lean

tactic: dsimp only [indicator]
state_before: α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
⊢ s.indicator (fun a => r a • f a) a = r a • s.indicator f a
state_after: α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
⊢ (if a ∈ s then r a • f a else 0) = r a • if a ∈ s then f a else 0

tactic: split_ifs
state_before: α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
⊢ (if a ∈ s then r a • f a else 0) = r a • if a ∈ s then f a else 0
state_after: case pos
α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
h✝ : a ∈ s
⊢ r a • f a = r a • f a

case neg
α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
h✝ : a ∉ s
⊢ 0 = r a • 0

tactic: exacts [rfl, (smul_zero (r a)).symm]
state_before: case pos
α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
h✝ : a ∈ s
⊢ r a • f a = r a • f a

case neg
α : Type u_1
R : Type u_2
M : Type u_3
M₂ : Type u_4
inst✝² : Zero R
inst✝¹ : Zero M
inst✝ : SMulZeroClass R M
s : Set α
r : α → R
f : α → M
a : α
h✝ : a ∉ s
⊢ 0 = r a • 0
state_after: no goals
Theorem: Orientation.rotation_trans
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: rw [← rotation_rotation, LinearIsometryEquiv.trans_apply]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ₁ θ₂ : Real.Angle
x✝ : V
⊢ ((o.rotation θ₁).trans (o.rotation θ₂)) x✝ = (o.rotation (θ₂ + θ₁)) x✝
state_after: no goals