1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Functor.commShiftIso_add'
File: Mathlib/CategoryTheory/Shift/CommShift.lean

tactic: subst h
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹⁰ : Category.{u_7, u_1} C
inst✝⁹ : Category.{u_6, u_2} D
inst✝⁸ : Category.{?u.40121, u_3} E
F : C ⥤ D
G : D ⥤ E
A : Type u_4
B : Type u_5
inst✝⁷ : AddMonoid A
inst✝⁶ : AddCommMonoid B
inst✝⁵ : HasShift C A
inst✝⁴ : HasShift D A
inst✝³ : HasShift E A
inst✝² : HasShift C B
inst✝¹ : HasShift D B
inst✝ : F.CommShift A
a b c : A
h : a + b = c
⊢ F.commShiftIso c = CommShift.isoAdd' h (F.commShiftIso a) (F.commShiftIso b)
state_after: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹⁰ : Category.{u_7, u_1} C
inst✝⁹ : Category.{u_6, u_2} D
inst✝⁸ : Category.{?u.40121, u_3} E
F : C ⥤ D
G : D ⥤ E
A : Type u_4
B : Type u_5
inst✝⁷ : AddMonoid A
inst✝⁶ : AddCommMonoid B
inst✝⁵ : HasShift C A
inst✝⁴ : HasShift D A
inst✝³ : HasShift E A
inst✝² : HasShift C B
inst✝¹ : HasShift D B
inst✝ : F.CommShift A
a b : A
⊢ F.commShiftIso (a + b) = CommShift.isoAdd' ⋯ (F.commShiftIso a) (F.commShiftIso b)

tactic: simp only [commShiftIso_add, CommShift.isoAdd]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹⁰ : Category.{u_7, u_1} C
inst✝⁹ : Category.{u_6, u_2} D
inst✝⁸ : Category.{?u.40121, u_3} E
F : C ⥤ D
G : D ⥤ E
A : Type u_4
B : Type u_5
inst✝⁷ : AddMonoid A
inst✝⁶ : AddCommMonoid B
inst✝⁵ : HasShift C A
inst✝⁴ : HasShift D A
inst✝³ : HasShift E A
inst✝² : HasShift C B
inst✝¹ : HasShift D B
inst✝ : F.CommShift A
a b : A
⊢ F.commShiftIso (a + b) = CommShift.isoAdd' ⋯ (F.commShiftIso a) (F.commShiftIso b)
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.pentagon_inv
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X Y Z : C
⊢ inv (W ◁ (α_ X Y Z).inv ≫ (α_ W (X ⊗ Y) Z).inv ≫ (α_ W X Y).inv ▷ Z) =
    inv ((α_ W X (Y ⊗ Z)).inv ≫ (α_ (W ⊗ X) Y Z).inv)
state_after: no goals
Theorem: Perfection.coeff_add_ne_zero
File: Mathlib/RingTheory/Perfection.lean

tactic: erw [← coeff_pow_p, RingHom.map_pow, h, zero_pow hp.1.ne_zero]
state_before: R : Type u₁
inst✝¹ : CommSemiring R
p : ℕ
hp : Fact (Nat.Prime p)
inst✝ : CharP R p
f : Ring.Perfection R p
n : ℕ
hfn : (coeff R p n) f ≠ 0
k✝ k : ℕ
ih : (coeff R p (n + k)) f ≠ 0
h : (coeff R p (n + k.succ)) f = 0
⊢ (coeff R p (n + k)) f = 0
state_after: no goals
Theorem: Squarefree.eq_zero_or_one_of_pow_of_not_isUnit
File: Mathlib/Algebra/Squarefree/Basic.lean

tactic: contrapose! h'
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : ¬IsUnit x
⊢ n = 0 ∨ n = 1
state_after: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : n ≠ 0 ∧ n ≠ 1
⊢ IsUnit x

tactic: replace h' : 2 ≤ n := by omega
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : n ≠ 0 ∧ n ≠ 1
⊢ IsUnit x
state_after: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
⊢ IsUnit x

tactic: have : x * x ∣ x ^ n := by rw [← sq]; exact pow_dvd_pow x h'
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
⊢ IsUnit x
state_after: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
this : x * x ∣ x ^ n
⊢ IsUnit x

tactic: exact h.squarefree_of_dvd this x (refl _)
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
this : x * x ∣ x ^ n
⊢ IsUnit x
state_after: no goals

tactic: omega
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : n ≠ 0 ∧ n ≠ 1
⊢ 2 ≤ n
state_after: no goals

tactic: rw [← sq]
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
⊢ x * x ∣ x ^ n
state_after: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
⊢ x ^ 2 ∣ x ^ n

tactic: exact pow_dvd_pow x h'
state_before: R : Type u_1
inst✝ : CommMonoid R
x : R
n : ℕ
h : Squarefree (x ^ n)
h' : 2 ≤ n
⊢ x ^ 2 ∣ x ^ n
state_after: no goals
Theorem: Filter.map₂_eq_bot_iff
File: Mathlib/Order/Filter/NAry.lean

tactic: simp [← map_prod_eq_map₂]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
m : α → β → γ
f f₁ f₂ : Filter α
g g₁ g₂ : Filter β
h h₁ h₂ : Filter γ
s s₁ s₂ : Set α
t t₁ t₂ : Set β
u : Set γ
v : Set δ
a : α
b : β
c : γ
⊢ map₂ m f g = ⊥ ↔ f = ⊥ ∨ g = ⊥
state_after: no goals
Theorem: gramSchmidt_def''
File: Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean

tactic: convert gramSchmidt_def' 𝕜 f n
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n : ι
⊢ f n = gramSchmidt 𝕜 f n + ∑ i ∈ Iio n, (⟪gramSchmidt 𝕜 f i, f n⟫_𝕜 / ↑‖gramSchmidt 𝕜 f i‖ ^ 2) • gramSchmidt 𝕜 f i
state_after: case h.e'_3.h.e'_6.a
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n x✝ : ι
a✝ : x✝ ∈ Iio n
⊢ (⟪gramSchmidt 𝕜 f x✝, f n⟫_𝕜 / ↑‖gramSchmidt 𝕜 f x✝‖ ^ 2) • gramSchmidt 𝕜 f x✝ =
    ↑((orthogonalProjection (span 𝕜 {gramSchmidt 𝕜 f x✝})) (f n))

tactic: rw [orthogonalProjection_singleton, RCLike.ofReal_pow]
state_before: case h.e'_3.h.e'_6.a
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n x✝ : ι
a✝ : x✝ ∈ Iio n
⊢ (⟪gramSchmidt 𝕜 f x✝, f n⟫_𝕜 / ↑‖gramSchmidt 𝕜 f x✝‖ ^ 2) • gramSchmidt 𝕜 f x✝ =
    ↑((orthogonalProjection (span 𝕜 {gramSchmidt 𝕜 f x✝})) (f n))
state_after: no goals
Theorem: SetTheory.PGame.rightMoves_nim
File: Mathlib/SetTheory/Game/Nim.lean

tactic: rw [nim_def]
state_before: o : Ordinal.{u_1}
⊢ (nim o).RightMoves = (Quotient.out o).α
state_after: o : Ordinal.{u_1}
⊢ (mk (Quotient.out o).α (Quotient.out o).α (fun o₂ => nim (typein (fun x x_1 => x < x_1) o₂)) fun o₂ =>
        nim (typein (fun x x_1 => x < x_1) o₂)).RightMoves =
    (Quotient.out o).α

tactic: rfl
state_before: o : Ordinal.{u_1}
⊢ (mk (Quotient.out o).α (Quotient.out o).α (fun o₂ => nim (typein (fun x x_1 => x < x_1) o₂)) fun o₂ =>
        nim (typein (fun x x_1 => x < x_1) o₂)).RightMoves =
    (Quotient.out o).α
state_after: no goals
Theorem: orthogonalProjection_orthogonalProjection_of_le
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: simpa only [sub_eq_zero, map_sub] using
  orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero
    (Submodule.orthogonal_le h (sub_orthogonalProjection_mem_orthogonal x))
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K U V : Submodule 𝕜 E
inst✝¹ : HasOrthogonalProjection U
inst✝ : HasOrthogonalProjection V
h : U ≤ V
x : E
⊢ (orthogonalProjection U) x = (orthogonalProjection U) ↑((orthogonalProjection V) x)
state_after: no goals
Theorem: FreeLieAlgebra.lift_of_apply
File: Mathlib/Algebra/Lie/Free.lean

tactic: rw [← @Function.comp_apply _ _ _ (lift R f) (of R) x, of_comp_lift]
state_before: R : Type u
X : Type v
inst✝² : CommRing R
L : Type w
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
f : X → L
x : X
⊢ ((lift R) f) (of R x) = f x
state_after: no goals
Theorem: Set.Finite.card_lt_card
File: Mathlib/Data/Finite/Card.lean

tactic: have : Fintype t := Finite.fintype ht
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
⊢ Nat.card ↑s < Nat.card ↑t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
this : Fintype ↑t
⊢ Nat.card ↑s < Nat.card ↑t

tactic: have : Fintype s := Finite.fintype (subset ht (subset_of_ssubset hsub))
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
this : Fintype ↑t
⊢ Nat.card ↑s < Nat.card ↑t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
this✝ : Fintype ↑t
this : Fintype ↑s
⊢ Nat.card ↑s < Nat.card ↑t

tactic: simp only [Nat.card_eq_fintype_card]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
this✝ : Fintype ↑t
this : Fintype ↑s
⊢ Nat.card ↑s < Nat.card ↑t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
this✝ : Fintype ↑t
this : Fintype ↑s
⊢ Fintype.card ↑s < Fintype.card ↑t

tactic: exact Set.card_lt_card hsub
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s t : Set α
ht : t.Finite
hsub : s ⊂ t
this✝ : Fintype ↑t
this : Fintype ↑s
⊢ Fintype.card ↑s < Fintype.card ↑t
state_after: no goals
Theorem: Finset.op_smul_finset_smul_eq_smul_smul_finset
File: Mathlib/Data/Finset/Pointwise.lean

tactic: ext
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁴ : DecidableEq β
inst✝³ : DecidableEq γ
inst✝² : SMul αᵐᵒᵖ β
inst✝¹ : SMul β γ
inst✝ : SMul α γ
a : α
s : Finset β
t : Finset γ
h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c
⊢ (op a • s) • t = s • a • t
state_after: case a
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁴ : DecidableEq β
inst✝³ : DecidableEq γ
inst✝² : SMul αᵐᵒᵖ β
inst✝¹ : SMul β γ
inst✝ : SMul α γ
a : α
s : Finset β
t : Finset γ
h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c
a✝ : γ
⊢ a✝ ∈ (op a • s) • t ↔ a✝ ∈ s • a • t

tactic: simp [mem_smul, mem_smul_finset, h]
state_before: case a
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁴ : DecidableEq β
inst✝³ : DecidableEq γ
inst✝² : SMul αᵐᵒᵖ β
inst✝¹ : SMul β γ
inst✝ : SMul α γ
a : α
s : Finset β
t : Finset γ
h : ∀ (a : α) (b : β) (c : γ), (op a • b) • c = b • a • c
a✝ : γ
⊢ a✝ ∈ (op a • s) • t ↔ a✝ ∈ s • a • t
state_after: no goals
Theorem: PartialHomeomorph.eventually_ne_nhdsWithin
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: rw [mem_singleton_iff, ← e.left_inv hx, ← h, hx']
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
hx : x ∈ e.source
x' : X
hx' : ↑e.symm (↑e x') = x'
h : ↑e x' = ↑e x
⊢ x' ∈ {x}
state_after: no goals
Theorem: ENNReal.div_le_iff
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rw [div_eq_mul_inv, ENNReal.mul_inv_le_iff h1 h2]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z : ℝ≥0∞
h1 : y ≠ 0
h2 : y ≠ ⊤
⊢ x / y ≤ z ↔ x ≤ z * y
state_after: no goals
Theorem: Complex.sinh_ofReal_im
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← ofReal_sinh_ofReal_re, ofReal_im]
state_before: x✝ y : ℂ
x : ℝ
⊢ (sinh ↑x).im = 0
state_after: no goals
Theorem: Part.mod_mem_mod
File: Mathlib/Data/Part.lean

tactic: simp [mod_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Mod α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ma % mb ∈ a % b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Mod α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 % a = ma % mb

tactic: aesop
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Mod α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 % a = ma % mb
state_after: no goals
Theorem: MvPolynomial.degrees_map
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

tactic: classical
dsimp only [degrees]
apply Multiset.subset_of_le
apply Finset.sup_mono
apply MvPolynomial.support_map_subset
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ ((map f) p).degrees ⊆ p.degrees
state_after: no goals

tactic: dsimp only [degrees]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ ((map f) p).degrees ⊆ p.degrees
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ (((map f) p).support.sup fun s => toMultiset s) ⊆ p.support.sup fun s => toMultiset s

tactic: apply Multiset.subset_of_le
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ (((map f) p).support.sup fun s => toMultiset s) ⊆ p.support.sup fun s => toMultiset s
state_after: case a
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ (((map f) p).support.sup fun s => toMultiset s) ≤ p.support.sup fun s => toMultiset s

tactic: apply Finset.sup_mono
state_before: case a
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ (((map f) p).support.sup fun s => toMultiset s) ≤ p.support.sup fun s => toMultiset s
state_after: case a.h
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ ((map f) p).support ⊆ p.support

tactic: apply MvPolynomial.support_map_subset
state_before: case a.h
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
p✝ q : MvPolynomial σ R
inst✝ : CommSemiring S
p : MvPolynomial σ R
f : R →+* S
⊢ ((map f) p).support ⊆ p.support
state_after: no goals
Theorem: padicValInt.of_ne_one_ne_zero
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: apply multiplicity.finite_int_iff.2
state_before: p : ℕ
z : ℤ
hp : p ≠ 1
hz : z ≠ 0
⊢ (multiplicity (↑p) z).Dom
state_after: p : ℕ
z : ℤ
hp : p ≠ 1
hz : z ≠ 0
⊢ (↑p).natAbs ≠ 1 ∧ z ≠ 0

tactic: simp [hp, hz]
state_before: p : ℕ
z : ℤ
hp : p ≠ 1
hz : z ≠ 0
⊢ (↑p).natAbs ≠ 1 ∧ z ≠ 0
state_after: no goals

tactic: rw [padicValInt, padicValNat, dif_pos (And.intro hp (Int.natAbs_pos.mpr hz))]
state_before: p : ℕ
z : ℤ
hp : p ≠ 1
hz : z ≠ 0
⊢ padicValInt p z = (multiplicity (↑p) z).get ⋯
state_after: p : ℕ
z : ℤ
hp : p ≠ 1
hz : z ≠ 0
⊢ (multiplicity p z.natAbs).get ⋯ = (multiplicity (↑p) z).get ⋯

tactic: simp only [multiplicity.Int.natAbs p z]
state_before: p : ℕ
z : ℤ
hp : p ≠ 1
hz : z ≠ 0
⊢ (multiplicity p z.natAbs).get ⋯ = (multiplicity (↑p) z).get ⋯
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.pentagon_hom_hom_inv_hom_hom
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X Y Z : C
⊢ inv ((α_ (W ⊗ X) Y Z).hom ≫ (α_ W X (Y ⊗ Z)).hom ≫ W ◁ (α_ X Y Z).inv) =
    inv ((α_ W X Y).hom ▷ Z ≫ (α_ W (X ⊗ Y) Z).hom)
state_after: no goals
Theorem: IntermediateField.coe_sum
File: Mathlib/FieldTheory/IntermediateField.lean

tactic: induction' (Finset.univ : Finset ι) using Finset.induction_on with i s hi H
state_before: K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : Field L'
inst✝² : Algebra K L
inst✝¹ : Algebra K L'
S : IntermediateField K L
ι : Type u_4
inst✝ : Fintype ι
f : ι → ↥S
⊢ ↑(∑ i : ι, f i) = ∑ i : ι, ↑(f i)
state_after: case empty
K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : Field L'
inst✝² : Algebra K L
inst✝¹ : Algebra K L'
S : IntermediateField K L
ι : Type u_4
inst✝ : Fintype ι
f : ι → ↥S
⊢ ↑(∑ i ∈ ∅, f i) = ∑ i ∈ ∅, ↑(f i)

case insert
K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : Field L'
inst✝² : Algebra K L
inst✝¹ : Algebra K L'
S : IntermediateField K L
ι : Type u_4
inst✝ : Fintype ι
f : ι → ↥S
i : ι
s : Finset ι
hi : i ∉ s
H : ↑(∑ i ∈ s, f i) = ∑ i ∈ s, ↑(f i)
⊢ ↑(∑ i ∈ insert i s, f i) = ∑ i ∈ insert i s, ↑(f i)

tactic: simp
state_before: case empty
K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : Field L'
inst✝² : Algebra K L
inst✝¹ : Algebra K L'
S : IntermediateField K L
ι : Type u_4
inst✝ : Fintype ι
f : ι → ↥S
⊢ ↑(∑ i ∈ ∅, f i) = ∑ i ∈ ∅, ↑(f i)
state_after: no goals

tactic: rw [Finset.sum_insert hi, AddMemClass.coe_add, H, Finset.sum_insert hi]
state_before: case insert
K : Type u_1
L : Type u_2
L' : Type u_3
inst✝⁵ : Field K
inst✝⁴ : Field L
inst✝³ : Field L'
inst✝² : Algebra K L
inst✝¹ : Algebra K L'
S : IntermediateField K L
ι : Type u_4
inst✝ : Fintype ι
f : ι → ↥S
i : ι
s : Finset ι
hi : i ∉ s
H : ↑(∑ i ∈ s, f i) = ∑ i ∈ s, ↑(f i)
⊢ ↑(∑ i ∈ insert i s, f i) = ∑ i ∈ insert i s, ↑(f i)
state_after: no goals
Theorem: CategoryTheory.ShortComplex.LeftHomologyData.isIso_i
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

tactic: rw [hg, id_comp]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
hg : S.g = 0
⊢ 𝟙 S.X₂ ≫ S.g = 0
state_after: no goals

tactic: simp only [← cancel_mono h.i, id_comp, assoc, liftK_i, comp_id]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
hg : S.g = 0
⊢ h.i ≫ h.liftK (𝟙 S.X₂) ⋯ = 𝟙 h.K
state_after: no goals
Theorem: Directed.rel_sequence
File: Mathlib/Logic/Encodable/Basic.lean

tactic: simp only [Directed.sequence, add_eq, add_zero, encodek, and_self]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Encodable α
inst✝ : Inhabited α
r : β → β → Prop
f : α → β
hf : Directed r f
a : α
⊢ r (f a) (f (Directed.sequence f hf (encode a + 1)))
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Encodable α
inst✝ : Inhabited α
r : β → β → Prop
f : α → β
hf : Directed r f
a : α
⊢ r (f a) (f (Classical.choose ⋯))

tactic: exact (Classical.choose_spec (hf _ a)).2
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Encodable α
inst✝ : Inhabited α
r : β → β → Prop
f : α → β
hf : Directed r f
a : α
⊢ r (f a) (f (Classical.choose ⋯))
state_after: no goals
Theorem: MeasureTheory.BorelCantelli.process_difference_le
File: Mathlib/Probability/Martingale/BorelCantelli.lean

tactic: norm_cast
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
⊢ |process s (n + 1) ω - process s n ω| ≤ ↑1
state_after: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
⊢ |process s (n + 1) ω - process s n ω| ≤ 1

tactic: rw [process, process, Finset.sum_apply, Finset.sum_apply,
  Finset.sum_range_succ_sub_sum, ← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
⊢ |process s (n + 1) ω - process s n ω| ≤ 1
state_after: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
⊢ (s (n + 1)).indicator (fun a => ‖1 a‖) ω ≤ 1

tactic: refine Set.indicator_le' (fun _ _ => ?_) (fun _ _ => zero_le_one) _
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
⊢ (s (n + 1)).indicator (fun a => ‖1 a‖) ω ≤ 1
state_after: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
x✝¹ : Ω
x✝ : x✝¹ ∈ s (n + 1)
⊢ ‖1 x✝¹‖ ≤ 1

tactic: rw [Pi.one_apply, norm_one]
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f : ℕ → Ω → ℝ
ω✝ : Ω
r : ℝ
R : ℝ≥0
s✝ s : ℕ → Set Ω
ω : Ω
n : ℕ
x✝¹ : Ω
x✝ : x✝¹ ∈ s (n + 1)
⊢ ‖1 x✝¹‖ ≤ 1
state_after: no goals
Theorem: Matrix.zpow_add
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: induction n using Int.induction_on with
| hz => simp
| hp n ihn => simp only [← add_assoc, zpow_add_one ha, ihn, mul_assoc]
| hn n ihn => rw [zpow_sub_one ha, ← mul_assoc, ← ihn, ← zpow_sub_one ha, add_sub_assoc]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
ha : IsUnit A.det
m n : ℤ
⊢ A ^ (m + n) = A ^ m * A ^ n
state_after: no goals

tactic: simp
state_before: case hz
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
ha : IsUnit A.det
m : ℤ
⊢ A ^ (m + 0) = A ^ m * A ^ 0
state_after: no goals

tactic: simp only [← add_assoc, zpow_add_one ha, ihn, mul_assoc]
state_before: case hp
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
ha : IsUnit A.det
m : ℤ
n : ℕ
ihn : A ^ (m + ↑n) = A ^ m * A ^ ↑n
⊢ A ^ (m + (↑n + 1)) = A ^ m * A ^ (↑n + 1)
state_after: no goals

tactic: rw [zpow_sub_one ha, ← mul_assoc, ← ihn, ← zpow_sub_one ha, add_sub_assoc]
state_before: case hn
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
ha : IsUnit A.det
m : ℤ
n : ℕ
ihn : A ^ (m + -↑n) = A ^ m * A ^ (-↑n)
⊢ A ^ (m + (-↑n - 1)) = A ^ m * A ^ (-↑n - 1)
state_after: no goals
Theorem: List.disjoint_map
File: Mathlib/Data/List/Basic.lean

tactic: rw [← pmap_eq_map _ _ _ (fun _ _ ↦ trivial), ← pmap_eq_map _ _ _ (fun _ _ ↦ trivial)]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β
s t : List α
hf : Injective f
h : s.Disjoint t
⊢ (map f s).Disjoint (map f t)
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β
s t : List α
hf : Injective f
h : s.Disjoint t
⊢ (pmap (fun a x => f a) s ⋯).Disjoint (pmap (fun a x => f a) t ⋯)

tactic: exact disjoint_pmap _ _ (fun _ _ _ _ h' ↦ hf h') h
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β
s t : List α
hf : Injective f
h : s.Disjoint t
⊢ (pmap (fun a x => f a) s ⋯).Disjoint (pmap (fun a x => f a) t ⋯)
state_after: no goals
Theorem: contDiffAt_zero
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: rw [← contDiffWithinAt_univ]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffAt 𝕜 0 f x ↔ ∃ u ∈ 𝓝 x, ContinuousOn f u
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffWithinAt 𝕜 0 f univ x ↔ ∃ u ∈ 𝓝 x, ContinuousOn f u

tactic: simp [contDiffWithinAt_zero, nhdsWithin_univ]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ ContDiffWithinAt 𝕜 0 f univ x ↔ ∃ u ∈ 𝓝 x, ContinuousOn f u
state_after: no goals