1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Nat.divisors_one
File: Mathlib/NumberTheory/Divisors.lean

tactic: ext
state_before: n : ℕ
⊢ divisors 1 = {1}
state_after: case a
n a✝ : ℕ
⊢ a✝ ∈ divisors 1 ↔ a✝ ∈ {1}

tactic: simp
state_before: case a
n a✝ : ℕ
⊢ a✝ ∈ divisors 1 ↔ a✝ ∈ {1}
state_after: no goals
Theorem: Matrix.mulᵣ_eq
File: Mathlib/Data/Matrix/Reflection.lean

tactic: simp [mulᵣ, Function.comp, Matrix.transpose]
state_before: l m n : ℕ
α : Type u_1
β : Type u_2
inst✝¹ : Mul α
inst✝ : AddCommMonoid α
A : Matrix (Fin l) (Fin m) α
B : Matrix (Fin m) (Fin n) α
⊢ A.mulᵣ B = A * B
state_after: l m n : ℕ
α : Type u_1
β : Type u_2
inst✝¹ : Mul α
inst✝ : AddCommMonoid α
A : Matrix (Fin l) (Fin m) α
B : Matrix (Fin m) (Fin n) α
⊢ (of fun x x_1 => A x ⬝ᵥ of (fun x y => B y x) x_1) = A * B

tactic: rfl
state_before: l m n : ℕ
α : Type u_1
β : Type u_2
inst✝¹ : Mul α
inst✝ : AddCommMonoid α
A : Matrix (Fin l) (Fin m) α
B : Matrix (Fin m) (Fin n) α
⊢ (of fun x x_1 => A x ⬝ᵥ of (fun x y => B y x) x_1) = A * B
state_after: no goals
Theorem: Int.odd_add'
File: Mathlib/Algebra/Ring/Int.lean

tactic: rw [add_comm, odd_add]
state_before: m n : ℤ
⊢ Odd (m + n) ↔ (Odd n ↔ Even m)
state_after: no goals
Theorem: GeneralizedContinuedFraction.convergents'_of_int
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: induction' n with n
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
a : ℤ
⊢ (of ↑a).convergents' n = ↑a
state_after: case zero
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
a : ℤ
⊢ (of ↑a).convergents' 0 = ↑a

case succ
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
a : ℤ
n : ℕ
a✝ : (of ↑a).convergents' n = ↑a
⊢ (of ↑a).convergents' (n + 1) = ↑a

tactic: simp only [zeroth_convergent'_eq_h, of_h_eq_floor, floor_intCast, Nat.zero_eq]
state_before: case zero
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
a : ℤ
⊢ (of ↑a).convergents' 0 = ↑a
state_after: no goals

tactic: rw [convergents', of_h_eq_floor, floor_intCast, add_right_eq_self]
state_before: case succ
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
a : ℤ
n : ℕ
a✝ : (of ↑a).convergents' n = ↑a
⊢ (of ↑a).convergents' (n + 1) = ↑a
state_after: case succ
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
a : ℤ
n : ℕ
a✝ : (of ↑a).convergents' n = ↑a
⊢ convergents'Aux (of ↑a).s (n + 1) = 0

tactic: exact convergents'Aux_succ_none ((of_s_of_int K a).symm ▸ Stream'.Seq.get?_nil 0) _
state_before: case succ
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
a : ℤ
n : ℕ
a✝ : (of ↑a).convergents' n = ↑a
⊢ convergents'Aux (of ↑a).s (n + 1) = 0
state_after: no goals
Theorem: Equiv.Perm.pow_apply_mem_toList_iff_mem_support
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: rw [mem_toList_iff, and_iff_right_iff_imp]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
n : ℕ
⊢ (p ^ n) x ∈ p.toList x ↔ x ∈ p.support
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
n : ℕ
⊢ x ∈ p.support → p.SameCycle x ((p ^ n) x)

tactic: refine fun _ => SameCycle.symm ?_
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
n : ℕ
⊢ x ∈ p.support → p.SameCycle x ((p ^ n) x)
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
n : ℕ
x✝ : x ∈ p.support
⊢ p.SameCycle ((p ^ n) x) x

tactic: rw [sameCycle_pow_left]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
n : ℕ
x✝ : x ∈ p.support
⊢ p.SameCycle ((p ^ n) x) x
state_after: no goals
Theorem: Finset.Ico_subset_Ico_union_Ico
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: rw [← coe_subset, coe_union, coe_Ico, coe_Ico, coe_Ico]
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a✝ b✝ a b c : α
⊢ Ico a c ⊆ Ico a b ∪ Ico b c
state_after: ι : Type u_1
α : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a✝ b✝ a b c : α
⊢ Set.Ico a c ⊆ Set.Ico a b ∪ Set.Ico b c

tactic: exact Set.Ico_subset_Ico_union_Ico
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a✝ b✝ a b c : α
⊢ Set.Ico a c ⊆ Set.Ico a b ∪ Set.Ico b c
state_after: no goals
Theorem: List.rtakeWhile_nil
File: Mathlib/Data/List/DropRight.lean

tactic: simp [rtakeWhile, takeWhile]
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
⊢ rtakeWhile p [] = []
state_after: no goals
Theorem: MonoidHom.isOfFinOrder
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: obtain ⟨n, npos, hn⟩ := h.exists_pow_eq_one
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n m : ℕ
inst✝ : Monoid H
f : G →* H
x : G
h : IsOfFinOrder x
⊢ ∃ n, 0 < n ∧ f x ^ n = 1
state_after: case intro.intro
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n✝ m : ℕ
inst✝ : Monoid H
f : G →* H
x : G
h : IsOfFinOrder x
n : ℕ
npos : 0 < n
hn : x ^ n = 1
⊢ ∃ n, 0 < n ∧ f x ^ n = 1

tactic: exact ⟨n, npos, by rw [← f.map_pow, hn, f.map_one]⟩
state_before: case intro.intro
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n✝ m : ℕ
inst✝ : Monoid H
f : G →* H
x : G
h : IsOfFinOrder x
n : ℕ
npos : 0 < n
hn : x ^ n = 1
⊢ ∃ n, 0 < n ∧ f x ^ n = 1
state_after: no goals

tactic: rw [← f.map_pow, hn, f.map_one]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n✝ m : ℕ
inst✝ : Monoid H
f : G →* H
x : G
h : IsOfFinOrder x
n : ℕ
npos : 0 < n
hn : x ^ n = 1
⊢ f x ^ n = 1
state_after: no goals
Theorem: LinearMap.BilinForm.eq_top_of_restrict_nondegenerate_of_orthogonal_eq_bot
File: Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean

tactic: have := (B.isCompl_orthogonal_of_restrict_nondegenerate b₁ b₂).sup_eq_top
state_before: R : Type u_1
M : Type u_2
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁸ : CommRing R₁
inst✝⁷ : AddCommGroup M₁
inst✝⁶ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M₂' : Type u_7
inst✝² : AddCommMonoid M₂'
inst✝¹ : Module R M₂'
inst✝ : FiniteDimensional K V
B : BilinForm K V
W : Submodule K V
b₁ : B.IsRefl
b₂ : (B.restrict W).Nondegenerate
b₃ : B.orthogonal W = ⊥
⊢ W = ⊤
state_after: R : Type u_1
M : Type u_2
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁸ : CommRing R₁
inst✝⁷ : AddCommGroup M₁
inst✝⁶ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M₂' : Type u_7
inst✝² : AddCommMonoid M₂'
inst✝¹ : Module R M₂'
inst✝ : FiniteDimensional K V
B : BilinForm K V
W : Submodule K V
b₁ : B.IsRefl
b₂ : (B.restrict W).Nondegenerate
b₃ : B.orthogonal W = ⊥
this : W ⊔ B.orthogonal W = ⊤
⊢ W = ⊤

tactic: rwa [b₃, sup_bot_eq] at this
state_before: R : Type u_1
M : Type u_2
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁸ : CommRing R₁
inst✝⁷ : AddCommGroup M₁
inst✝⁶ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M₂' : Type u_7
inst✝² : AddCommMonoid M₂'
inst✝¹ : Module R M₂'
inst✝ : FiniteDimensional K V
B : BilinForm K V
W : Submodule K V
b₁ : B.IsRefl
b₂ : (B.restrict W).Nondegenerate
b₃ : B.orthogonal W = ⊥
this : W ⊔ B.orthogonal W = ⊤
⊢ W = ⊤
state_after: no goals
Theorem: GeneralizedContinuedFraction.convergents_stable_of_terminated
File: Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean

tactic: simp only [convergents, denominators_stable_of_terminated n_le_m terminated_at_n,
  numerators_stable_of_terminated n_le_m terminated_at_n]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n m : ℕ
inst✝ : DivisionRing K
n_le_m : n ≤ m
terminated_at_n : g.TerminatedAt n
⊢ g.convergents m = g.convergents n
state_after: no goals
Theorem: ENNReal.mul_div_mul_left
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rw [div_eq_mul_inv, div_eq_mul_inv, ENNReal.mul_inv (Or.inl hc) (Or.inl hc'), mul_mul_mul_comm,
  ENNReal.mul_inv_cancel hc hc', one_mul]
state_before: a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
hc : c ≠ 0
hc' : c ≠ ⊤
⊢ c * a / (c * b) = a / b
state_after: no goals
Theorem: map_dvd_iff
File: Mathlib/Algebra/Ring/Divisibility/Basic.lean

tactic: rw [← f.left_inv a, ← f.left_inv b]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Semigroup α
inst✝² : Semigroup β
F : Type u_3
inst✝¹ : EquivLike F α β
inst✝ : MulEquivClass F α β
f✝ : F
a b : α
f : α ≃* β := ↑f✝
h : f✝ a ∣ f✝ b
⊢ a ∣ b
state_after: α : Type u_1
β : Type u_2
inst✝³ : Semigroup α
inst✝² : Semigroup β
F : Type u_3
inst✝¹ : EquivLike F α β
inst✝ : MulEquivClass F α β
f✝ : F
a b : α
f : α ≃* β := ↑f✝
h : f✝ a ∣ f✝ b
⊢ f.invFun (f.toFun a) ∣ f.invFun (f.toFun b)

tactic: exact map_dvd f.symm h
state_before: α : Type u_1
β : Type u_2
inst✝³ : Semigroup α
inst✝² : Semigroup β
F : Type u_3
inst✝¹ : EquivLike F α β
inst✝ : MulEquivClass F α β
f✝ : F
a b : α
f : α ≃* β := ↑f✝
h : f✝ a ∣ f✝ b
⊢ f.invFun (f.toFun a) ∣ f.invFun (f.toFun b)
state_after: no goals
Theorem: InnerProductSpaceable.add_left_aux2'
File: Mathlib/Analysis/InnerProductSpace/OfNorm.lean

tactic: rw [add_left_aux1, add_left_aux2]
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ ‖x + y + z‖ * ‖x + y + z‖ - ‖x + y - z‖ * ‖x + y - z‖ =
    ‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖2 • z + y‖ * ‖2 • z + y‖ - ‖y - 2 • z‖ * ‖y - 2 • z‖) / 2
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ (‖2 • x + y‖ * ‖2 • x + y‖ + ‖2 • z + y‖ * ‖2 • z + y‖) / 2 - ‖x - z‖ * ‖x - z‖ -
      ((‖2 • x + y‖ * ‖2 • x + y‖ + ‖y - 2 • z‖ * ‖y - 2 • z‖) / 2 - ‖x + z‖ * ‖x + z‖) =
    ‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖2 • z + y‖ * ‖2 • z + y‖ - ‖y - 2 • z‖ * ‖y - 2 • z‖) / 2

tactic: ring
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
x y z : E
⊢ (‖2 • x + y‖ * ‖2 • x + y‖ + ‖2 • z + y‖ * ‖2 • z + y‖) / 2 - ‖x - z‖ * ‖x - z‖ -
      ((‖2 • x + y‖ * ‖2 • x + y‖ + ‖y - 2 • z‖ * ‖y - 2 • z‖) / 2 - ‖x + z‖ * ‖x + z‖) =
    ‖x + z‖ * ‖x + z‖ - ‖x - z‖ * ‖x - z‖ + (‖2 • z + y‖ * ‖2 • z + y‖ - ‖y - 2 • z‖ * ‖y - 2 • z‖) / 2
state_after: no goals
Theorem: openSegment_eq_image_lineMap
File: Mathlib/Analysis/Convex/Segment.lean

tactic: convert openSegment_eq_image 𝕜 x y using 2
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁵ : OrderedRing 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : AddCommGroup F
inst✝² : AddCommGroup G
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E
⊢ openSegment 𝕜 x y = ⇑(AffineMap.lineMap x y) '' Ioo 0 1
state_after: case h.e'_3.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁵ : OrderedRing 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : AddCommGroup F
inst✝² : AddCommGroup G
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E
a✝¹ : 𝕜
a✝ : a✝¹ ∈ Ioo 0 1
⊢ (AffineMap.lineMap x y) a✝¹ = (1 - a✝¹) • x + a✝¹ • y

tactic: exact AffineMap.lineMap_apply_module _ _ _
state_before: case h.e'_3.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁵ : OrderedRing 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : AddCommGroup F
inst✝² : AddCommGroup G
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E
a✝¹ : 𝕜
a✝ : a✝¹ ∈ Ioo 0 1
⊢ (AffineMap.lineMap x y) a✝¹ = (1 - a✝¹) • x + a✝¹ • y
state_after: no goals
Theorem: Int.toNat_le_toNat
File: Mathlib/Data/Int/Defs.lean

tactic: rw [toNat_le]
state_before: a✝ b✝ c d m n a b : ℤ
h : a ≤ b
⊢ a.toNat ≤ b.toNat
state_after: a✝ b✝ c d m n a b : ℤ
h : a ≤ b
⊢ a ≤ ↑b.toNat

tactic: exact Int.le_trans h (self_le_toNat b)
state_before: a✝ b✝ c d m n a b : ℤ
h : a ≤ b
⊢ a ≤ ↑b.toNat
state_after: no goals
Theorem: UpperHalfPlane.isometry_vertical_line
File: Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean

tactic: refine Isometry.of_dist_eq fun y₁ y₂ => ?_
state_before: z w : ℍ
r R a : ℝ
⊢ Isometry fun y => mk { re := a, im := rexp y } ⋯
state_after: z w : ℍ
r R a y₁ y₂ : ℝ
⊢ dist (mk { re := a, im := rexp y₁ } ⋯) (mk { re := a, im := rexp y₂ } ⋯) = dist y₁ y₂

tactic: rw [dist_of_re_eq]
state_before: z w : ℍ
r R a y₁ y₂ : ℝ
⊢ dist (mk { re := a, im := rexp y₁ } ⋯) (mk { re := a, im := rexp y₂ } ⋯) = dist y₁ y₂
state_after: z w : ℍ
r R a y₁ y₂ : ℝ
⊢ dist (log (mk { re := a, im := rexp y₁ } ⋯).im) (log (mk { re := a, im := rexp y₂ } ⋯).im) = dist y₁ y₂

z w : ℍ
r R a y₁ y₂ : ℝ
⊢ (mk { re := a, im := rexp y₁ } ⋯).re = (mk { re := a, im := rexp y₂ } ⋯).re

tactic: exacts [congr_arg₂ _ (log_exp _) (log_exp _), rfl]
state_before: z w : ℍ
r R a y₁ y₂ : ℝ
⊢ dist (log (mk { re := a, im := rexp y₁ } ⋯).im) (log (mk { re := a, im := rexp y₂ } ⋯).im) = dist y₁ y₂

z w : ℍ
r R a y₁ y₂ : ℝ
⊢ (mk { re := a, im := rexp y₁ } ⋯).re = (mk { re := a, im := rexp y₂ } ⋯).re
state_after: no goals
Theorem: ProbabilityTheory.lintegral_toKernel_univ
File: Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean

tactic: rw [← setLIntegral_univ, setLIntegral_toKernel_univ hf a MeasurableSet.univ, univ_prod_univ]
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ : ↥(kernel α (β × ℝ))
ν : ↥(kernel α β)
f : α × β → StieltjesFunction
inst✝ : IsFiniteKernel κ
hf : IsCondKernelCDF f κ ν
a : α
⊢ ∫⁻ (b : β), ((IsCondKernelCDF.toKernel f hf) (a, b)) univ ∂ν a = (κ a) univ
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.leftShift_leftUnshift
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean

tactic: ext p q hpq
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n✝ : ℤ
γ✝ γ₁ γ₂ : Cochain K L n✝
a n' : ℤ
γ : Cochain ((CategoryTheory.shiftFunctor (CochainComplex C ℤ) a).obj K) L n'
n : ℤ
hn' : n + a = n'
⊢ (γ.leftUnshift n hn').leftShift a n' hn' = γ
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n✝ : ℤ
γ✝ γ₁ γ₂ : Cochain K L n✝
a n' : ℤ
γ : Cochain ((CategoryTheory.shiftFunctor (CochainComplex C ℤ) a).obj K) L n'
n : ℤ
hn' : n + a = n'
p q : ℤ
hpq : p + n' = q
⊢ ((γ.leftUnshift n hn').leftShift a n' hn').v p q hpq = γ.v p q hpq

tactic: rw [(γ.leftUnshift n hn').leftShift_v a n' hn' p q hpq (q-n) (by omega),
  γ.leftUnshift_v n hn' (q-n) q (by omega) p hpq, Linear.comp_units_smul, smul_smul,
  Iso.hom_inv_id_assoc, Int.units_mul_self, one_smul]
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n✝ : ℤ
γ✝ γ₁ γ₂ : Cochain K L n✝
a n' : ℤ
γ : Cochain ((CategoryTheory.shiftFunctor (CochainComplex C ℤ) a).obj K) L n'
n : ℤ
hn' : n + a = n'
p q : ℤ
hpq : p + n' = q
⊢ ((γ.leftUnshift n hn').leftShift a n' hn').v p q hpq = γ.v p q hpq
state_after: no goals

tactic: omega
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n✝ : ℤ
γ✝ γ₁ γ₂ : Cochain K L n✝
a n' : ℤ
γ : Cochain ((CategoryTheory.shiftFunctor (CochainComplex C ℤ) a).obj K) L n'
n : ℤ
hn' : n + a = n'
p q : ℤ
hpq : p + n' = q
⊢ q - n + n = q
state_after: no goals
Theorem: MvPolynomial.cardinal_mk_le_max
File: Mathlib/Algebra/MvPolynomial/Cardinal.lean

tactic: rw [lift_id, lift_id]
state_before: σ R : Type u
inst✝ : CommSemiring R
⊢ max (max (lift.{u, u} #R) (lift.{u, u} #σ)) ℵ₀ ≤ max (max #R #σ) ℵ₀
state_after: no goals
Theorem: MeasureTheory.eventually_mul_right_iff
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : μ.IsMulRightInvariant
t : G
p : G → Prop
⊢ (∀ᵐ (x : G) ∂μ, p (x * t)) ↔ ∀ᵐ (x : G) ∂μ, p x
state_after: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : μ.IsMulRightInvariant
t : G
p : G → Prop
⊢ (∀ᵐ (x : G) ∂μ, p (x * t)) ↔ {x | p x} ∈ Filter.map (fun h => h * t) (ae μ)

tactic: rfl
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace H
inst✝² : Group G
inst✝¹ : MeasurableMul G
μ : Measure G
inst✝ : μ.IsMulRightInvariant
t : G
p : G → Prop
⊢ (∀ᵐ (x : G) ∂μ, p (x * t)) ↔ {x | p x} ∈ Filter.map (fun h => h * t) (ae μ)
state_after: no goals
Theorem: birkhoffAverage_congr_ring'
File: Mathlib/Dynamics/BirkhoffSum/Average.lean

tactic: ext
state_before: R : Type u_1
α : Type u_2
M : Type u_3
inst✝⁴ : DivisionSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
S : Type u_4
inst✝¹ : DivisionSemiring S
inst✝ : Module S M
⊢ birkhoffAverage R = birkhoffAverage S
state_after: case h.h.h.h
R : Type u_1
α : Type u_2
M : Type u_3
inst✝⁴ : DivisionSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
S : Type u_4
inst✝¹ : DivisionSemiring S
inst✝ : Module S M
x✝³ : α → α
x✝² : α → M
x✝¹ : ℕ
x✝ : α
⊢ birkhoffAverage R x✝³ x✝² x✝¹ x✝ = birkhoffAverage S x✝³ x✝² x✝¹ x✝

tactic: apply birkhoffAverage_congr_ring
state_before: case h.h.h.h
R : Type u_1
α : Type u_2
M : Type u_3
inst✝⁴ : DivisionSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
S : Type u_4
inst✝¹ : DivisionSemiring S
inst✝ : Module S M
x✝³ : α → α
x✝² : α → M
x✝¹ : ℕ
x✝ : α
⊢ birkhoffAverage R x✝³ x✝² x✝¹ x✝ = birkhoffAverage S x✝³ x✝² x✝¹ x✝
state_after: no goals
Theorem: Array.mem_join
File: .lake/packages/batteries/Batteries/Data/Array/Lemmas.lean

tactic: simp only [mem_def, join_data, List.mem_join, List.mem_map]
state_before: α : Type u_1
a : α
⊢ ∀ {L : Array (Array α)}, a ∈ L.join ↔ ∃ l, l ∈ L ∧ a ∈ l
state_after: α : Type u_1
a : α
⊢ ∀ {L : Array (Array α)}, (∃ l, (∃ a, a ∈ L.data ∧ a.data = l) ∧ a ∈ l) ↔ ∃ l, l ∈ L.data ∧ a ∈ l.data

tactic: intro l
state_before: α : Type u_1
a : α
⊢ ∀ {L : Array (Array α)}, (∃ l, (∃ a, a ∈ L.data ∧ a.data = l) ∧ a ∈ l) ↔ ∃ l, l ∈ L.data ∧ a ∈ l.data
state_after: α : Type u_1
a : α
l : Array (Array α)
⊢ (∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1) ↔ ∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data

tactic: constructor
state_before: α : Type u_1
a : α
l : Array (Array α)
⊢ (∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1) ↔ ∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data
state_after: case mp
α : Type u_1
a : α
l : Array (Array α)
⊢ (∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1) → ∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data

case mpr
α : Type u_1
a : α
l : Array (Array α)
⊢ (∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data) → ∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1

tactic: rintro ⟨_, ⟨s, m, rfl⟩, h⟩
state_before: case mp
α : Type u_1
a : α
l : Array (Array α)
⊢ (∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1) → ∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data
state_after: case mp.intro.intro.intro.intro
α : Type u_1
a : α
l : Array (Array α)
s : Array α
m : s ∈ l.data
h : a ∈ s.data
⊢ ∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data

tactic: exact ⟨s, m, h⟩
state_before: case mp.intro.intro.intro.intro
α : Type u_1
a : α
l : Array (Array α)
s : Array α
m : s ∈ l.data
h : a ∈ s.data
⊢ ∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data
state_after: no goals

tactic: rintro ⟨s, h₁, h₂⟩
state_before: case mpr
α : Type u_1
a : α
l : Array (Array α)
⊢ (∃ l_1, l_1 ∈ l.data ∧ a ∈ l_1.data) → ∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1
state_after: case mpr.intro.intro
α : Type u_1
a : α
l : Array (Array α)
s : Array α
h₁ : s ∈ l.data
h₂ : a ∈ s.data
⊢ ∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1

tactic: refine ⟨s.data, ⟨⟨s, h₁, rfl⟩, h₂⟩⟩
state_before: case mpr.intro.intro
α : Type u_1
a : α
l : Array (Array α)
s : Array α
h₁ : s ∈ l.data
h₂ : a ∈ s.data
⊢ ∃ l_1, (∃ a, a ∈ l.data ∧ a.data = l_1) ∧ a ∈ l_1
state_after: no goals
Theorem: Pi.OmegaCompletePartialOrder.flip₂_continuous'
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: intro c
state_before: α : Type u_1
β : α → Type u_2
γ : Type u_3
inst✝¹ : (x : α) → OmegaCompletePartialOrder (β x)
inst✝ : OmegaCompletePartialOrder γ
f : γ → (x : α) → β x
hf : ∀ (x : α), Continuous' fun g => f g x
⊢ Continuous { toFun := f, monotone' := ⋯ }
state_after: α : Type u_1
β : α → Type u_2
γ : Type u_3
inst✝¹ : (x : α) → OmegaCompletePartialOrder (β x)
inst✝ : OmegaCompletePartialOrder γ
f : γ → (x : α) → β x
hf : ∀ (x : α), Continuous' fun g => f g x
c : Chain γ
⊢ { toFun := f, monotone' := ⋯ } (ωSup c) = ωSup (c.map { toFun := f, monotone' := ⋯ })

tactic: ext a
state_before: α : Type u_1
β : α → Type u_2
γ : Type u_3
inst✝¹ : (x : α) → OmegaCompletePartialOrder (β x)
inst✝ : OmegaCompletePartialOrder γ
f : γ → (x : α) → β x
hf : ∀ (x : α), Continuous' fun g => f g x
c : Chain γ
⊢ { toFun := f, monotone' := ⋯ } (ωSup c) = ωSup (c.map { toFun := f, monotone' := ⋯ })
state_after: case h
α : Type u_1
β : α → Type u_2
γ : Type u_3
inst✝¹ : (x : α) → OmegaCompletePartialOrder (β x)
inst✝ : OmegaCompletePartialOrder γ
f : γ → (x : α) → β x
hf : ∀ (x : α), Continuous' fun g => f g x
c : Chain γ
a : α
⊢ { toFun := f, monotone' := ⋯ } (ωSup c) a = ωSup (c.map { toFun := f, monotone' := ⋯ }) a

tactic: apply (hf a).to_bundled _ c
state_before: case h
α : Type u_1
β : α → Type u_2
γ : Type u_3
inst✝¹ : (x : α) → OmegaCompletePartialOrder (β x)
inst✝ : OmegaCompletePartialOrder γ
f : γ → (x : α) → β x
hf : ∀ (x : α), Continuous' fun g => f g x
c : Chain γ
a : α
⊢ { toFun := f, monotone' := ⋯ } (ωSup c) a = ωSup (c.map { toFun := f, monotone' := ⋯ }) a
state_after: no goals
Theorem: CategoryTheory.monoidalOfHasFiniteProducts.associator_inv_snd
File: Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean

tactic: simp [associator_inv]
state_before: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ : C
inst✝¹ : HasTerminal C
inst✝ : HasBinaryProducts C
X Y Z : C
⊢ (α_ X Y Z).inv ≫ prod.snd = prod.snd ≫ prod.snd
state_after: no goals
Theorem: RatFunc.coe_X
File: Mathlib/RingTheory/LaurentSeries.lean

tactic: rw [coe_num_denom, num_X, denom_X, Polynomial.coe_X, Polynomial.coe_one,
   PowerSeries.coe_one, div_one]
state_before: R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
⊢ ↑X = (single 1) 1
state_after: R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
⊢ (ofPowerSeries ℤ F) PowerSeries.X = (single 1) 1

tactic: simp only [ofPowerSeries_X]
state_before: R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
⊢ (ofPowerSeries ℤ F) PowerSeries.X = (single 1) 1
state_after: no goals