1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: zpow_mod_orderOf
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: simp [zpow_add, zpow_mul, pow_orderOf_eq_one]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Group G
x✝ y : G
i : ℤ
x : G
z : ℤ
⊢ x ^ (z % ↑(orderOf x)) = x ^ (z % ↑(orderOf x) + ↑(orderOf x) * (z / ↑(orderOf x)))
state_after: no goals

tactic: rw [Int.emod_add_ediv]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Group G
x✝ y : G
i : ℤ
x : G
z : ℤ
⊢ x ^ (z % ↑(orderOf x) + ↑(orderOf x) * (z / ↑(orderOf x))) = x ^ z
state_after: no goals
Theorem: Set.ite_inter_of_inter_eq
File: Mathlib/Data/Set/Basic.lean

tactic: rw [← ite_inter, ← h, ite_same]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁✝ s₂✝ t✝ t₁ t₂ u t s₁ s₂ s : Set α
h : s₁ ∩ s = s₂ ∩ s
⊢ t.ite s₁ s₂ ∩ s = s₁ ∩ s
state_after: no goals
Theorem: WithOne.map_map
File: Mathlib/Algebra/Group/WithOne/Basic.lean

tactic: induction x <;> rfl
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : Mul α
inst✝¹ : Mul β
inst✝ : Mul γ
f : α →ₙ* β
g : β →ₙ* γ
x : WithOne α
⊢ (map g) ((map f) x) = (map (g.comp f)) x
state_after: no goals
Theorem: Nat.bit0_lt_bit0
File: Mathlib/Data/Nat/Bits.lean

tactic: unfold bit0
state_before: m n : ℕ
⊢ bit0 m < bit0 n ↔ m < n
state_after: m n : ℕ
⊢ m + m < n + n ↔ m < n

tactic: omega
state_before: m n : ℕ
⊢ m + m < n + n ↔ m < n
state_after: no goals
Theorem: Ideal.jacobson_mono
File: Mathlib/RingTheory/JacobsonIdeal.lean

tactic: intro h x hx
state_before: R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I J : Ideal R
⊢ I ≤ J → I.jacobson ≤ J.jacobson
state_after: R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I J : Ideal R
h : I ≤ J
x : R
hx : x ∈ I.jacobson
⊢ x ∈ J.jacobson

tactic: erw [mem_sInf] at hx ⊢
state_before: R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I J : Ideal R
h : I ≤ J
x : R
hx : x ∈ I.jacobson
⊢ x ∈ J.jacobson
state_after: R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I J : Ideal R
h : I ≤ J
x : R
hx : ∀ ⦃I_1 : Ideal R⦄, I_1 ∈ {J | I ≤ J ∧ J.IsMaximal} → x ∈ I_1
⊢ ∀ ⦃I : Ideal R⦄, I ∈ {J_1 | J ≤ J_1 ∧ J_1.IsMaximal} → x ∈ I

tactic: exact fun K ⟨hK, hK_max⟩ => hx ⟨Trans.trans h hK, hK_max⟩
state_before: R : Type u
S : Type v
inst✝¹ : Ring R
inst✝ : Ring S
I✝ I J : Ideal R
h : I ≤ J
x : R
hx : ∀ ⦃I_1 : Ideal R⦄, I_1 ∈ {J | I ≤ J ∧ J.IsMaximal} → x ∈ I_1
⊢ ∀ ⦃I : Ideal R⦄, I ∈ {J_1 | J ≤ J_1 ∧ J_1.IsMaximal} → x ∈ I
state_after: no goals
Theorem: Polynomial.exists_irreducible_of_natDegree_pos
File: Mathlib/RingTheory/Polynomial/Basic.lean

tactic: contrapose! hf
state_before: R✝ : Type u
S : Type u_1
σ : Type v
M : Type w
inst✝⁶ : CommRing R✝
inst✝⁵ : CommRing S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R✝ M
R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : WfDvdMonoid R
f : R[X]
hf : 0 < f.natDegree
⊢ 0 < f.degree
state_after: R✝ : Type u
S : Type u_1
σ : Type v
M : Type w
inst✝⁶ : CommRing R✝
inst✝⁵ : CommRing S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R✝ M
R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : WfDvdMonoid R
f : R[X]
hf : f.degree ≤ 0
⊢ f.natDegree ≤ 0

tactic: exact natDegree_le_of_degree_le hf
state_before: R✝ : Type u
S : Type u_1
σ : Type v
M : Type w
inst✝⁶ : CommRing R✝
inst✝⁵ : CommRing S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R✝ M
R : Type u
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : WfDvdMonoid R
f : R[X]
hf : f.degree ≤ 0
⊢ f.natDegree ≤ 0
state_after: no goals
Theorem: AlternatingMap.map_update_self
File: Mathlib/LinearAlgebra/Alternating/Basic.lean

tactic: rw [Function.update_same, Function.update_noteq hij.symm]
state_before: R : Type u_1
inst✝¹⁵ : Semiring R
M : Type u_2
inst✝¹⁴ : AddCommMonoid M
inst✝¹³ : Module R M
N : Type u_3
inst✝¹² : AddCommMonoid N
inst✝¹¹ : Module R N
P : Type u_4
inst✝¹⁰ : AddCommMonoid P
inst✝⁹ : Module R P
M' : Type u_5
inst✝⁸ : AddCommGroup M'
inst✝⁷ : Module R M'
N' : Type u_6
inst✝⁶ : AddCommGroup N'
inst✝⁵ : Module R N'
ι : Type u_7
ι' : Type u_8
ι'' : Type u_9
M₂ : Type u_10
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₂
M₃ : Type u_11
inst✝² : AddCommMonoid M₃
inst✝¹ : Module R M₃
f f' : M [⋀^ι]→ₗ[R] N
g g₂ : M [⋀^ι]→ₗ[R] N'
g' : M' [⋀^ι]→ₗ[R] N'
v : ι → M
v' : ι → M'
inst✝ : DecidableEq ι
i j : ι
hij : i ≠ j
⊢ update v i (v j) i = update v i (v j) j
state_after: no goals
Theorem: discreteTopology_subtype_iff
File: Mathlib/Topology/Constructions.lean

tactic: simp_rw [discreteTopology_iff_nhds_ne, SetCoe.forall', nhds_ne_subtype_eq_bot_iff]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
S : Set X
⊢ DiscreteTopology ↑S ↔ ∀ x ∈ S, 𝓝[≠] x ⊓ 𝓟 S = ⊥
state_after: no goals
Theorem: Polynomial.derivative_X_sub_C_sq
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [derivative_sq, derivative_X_sub_C, mul_one]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
c : R
⊢ derivative ((X - C c) ^ 2) = C 2 * (X - C c)
state_after: no goals
Theorem: Pi.mulSingle_apply_commute
File: Mathlib/Algebra/Group/Pi/Lemmas.lean

tactic: obtain rfl | hij := Decidable.eq_or_ne i j
state_before: ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i✝ j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → MulOneClass (f i)
x : (i : I) → f i
i j : I
⊢ Commute (mulSingle i (x i)) (mulSingle j (x j))
state_after: case inl
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i✝ j : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → MulOneClass (f i)
x : (i : I) → f i
i : I
⊢ Commute (mulSingle i (x i)) (mulSingle i (x i))

case inr
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i✝ j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → MulOneClass (f i)
x : (i : I) → f i
i j : I
hij : i ≠ j
⊢ Commute (mulSingle i (x i)) (mulSingle j (x j))

tactic: rfl
state_before: case inl
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i✝ j : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → MulOneClass (f i)
x : (i : I) → f i
i : I
⊢ Commute (mulSingle i (x i)) (mulSingle i (x i))
state_after: no goals

tactic: exact Pi.mulSingle_commute hij _ _
state_before: case inr
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i✝ j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → MulOneClass (f i)
x : (i : I) → f i
i j : I
hij : i ≠ j
⊢ Commute (mulSingle i (x i)) (mulSingle j (x j))
state_after: no goals
Theorem: Set.imageFactorization_injective_iff
File: Mathlib/Data/Set/Function.lean

tactic: simpa using @h ⟨x, hx⟩ ⟨y, hy⟩ (by simpa [imageFactorization])
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
h : Injective (imageFactorization f s)
x : α
hx : x ∈ s
y : α
hy : y ∈ s
x✝ : f x = f y
⊢ x = y
state_after: no goals

tactic: simpa [imageFactorization]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
h : Injective (imageFactorization f s)
x : α
hx : x ∈ s
y : α
hy : y ∈ s
x✝ : f x = f y
⊢ imageFactorization f s ⟨x, hx⟩ = imageFactorization f s ⟨y, hy⟩
state_after: no goals
Theorem: Set.ite_inter_self
File: Mathlib/Data/Set/Basic.lean

tactic: rw [Set.ite, union_inter_distrib_right, diff_inter_self, inter_assoc, inter_self, union_empty]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u t s s' : Set α
⊢ t.ite s s' ∩ t = s ∩ t
state_after: no goals
Theorem: Subgroup.mul_mem_iff_of_index_two
File: Mathlib/GroupTheory/Index.lean

tactic: by_cases ha : a ∈ H
state_before: G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)
state_after: case pos
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∈ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)

case neg
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)

tactic: by_cases hb : b ∈ H
state_before: case neg
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)
state_after: case pos
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∈ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)

case neg
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)

tactic: simp only [ha, hb, iff_self_iff, iff_true_iff]
state_before: case neg
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)
state_after: case neg
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
⊢ a * b ∈ H

tactic: rcases index_eq_two_iff.1 h with ⟨c, hc⟩
state_before: case neg
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
⊢ a * b ∈ H
state_after: case neg.intro
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
c : G
hc : ∀ (b : G), Xor' (b * c ∈ H) (b ∈ H)
⊢ a * b ∈ H

tactic: refine (hc _).or.resolve_left ?_
state_before: case neg.intro
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
c : G
hc : ∀ (b : G), Xor' (b * c ∈ H) (b ∈ H)
⊢ a * b ∈ H
state_after: case neg.intro
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
c : G
hc : ∀ (b : G), Xor' (b * c ∈ H) (b ∈ H)
⊢ a * b * c ∉ H

tactic: rwa [mul_assoc, mul_mem_cancel_right ((hc _).or.resolve_right hb)]
state_before: case neg.intro
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∉ H
c : G
hc : ∀ (b : G), Xor' (b * c ∈ H) (b ∈ H)
⊢ a * b * c ∉ H
state_after: no goals

tactic: simp only [ha, true_iff_iff, mul_mem_cancel_left ha]
state_before: case pos
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∈ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)
state_after: no goals

tactic: simp only [hb, iff_true_iff, mul_mem_cancel_right hb]
state_before: case pos
G : Type u_1
inst✝ : Group G
H K L : Subgroup G
h : H.index = 2
a b : G
ha : a ∉ H
hb : b ∈ H
⊢ a * b ∈ H ↔ (a ∈ H ↔ b ∈ H)
state_after: no goals
Theorem: preNormEDS_odd
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: repeat erw [preNormEDS_ofNat]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
m : ℕ
⊢ preNormEDS b c d (2 * (↑m + 2) + 1) =
    (preNormEDS b c d (↑m + 4) * preNormEDS b c d (↑m + 2) ^ 3 * if Even m then b else 1) -
      preNormEDS b c d (↑m + 1) * preNormEDS b c d (↑m + 3) ^ 3 * if Even m then 1 else b
state_after: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
m : ℕ
⊢ preNormEDS' b c d (2 * (m + 2) + 1) =
    (preNormEDS' b c d (m + 4) * preNormEDS' b c d (m + 2) ^ 3 * if Even m then b else 1) -
      preNormEDS' b c d (m + 1) * preNormEDS' b c d (m + 3) ^ 3 * if Even m then 1 else b

tactic: exact preNormEDS'_odd ..
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
m : ℕ
⊢ preNormEDS' b c d (2 * (m + 2) + 1) =
    (preNormEDS' b c d (m + 4) * preNormEDS' b c d (m + 2) ^ 3 * if Even m then b else 1) -
      preNormEDS' b c d (m + 1) * preNormEDS' b c d (m + 3) ^ 3 * if Even m then 1 else b
state_after: no goals

tactic: erw [preNormEDS_ofNat]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
m : ℕ
⊢ preNormEDS' b c d (2 * (m + 2) + 1) =
    (preNormEDS' b c d (m + 4) * preNormEDS' b c d (m + 2) ^ 3 * if Even m then b else 1) -
      preNormEDS' b c d (m + 1) * preNormEDS b c d (↑m + 3) ^ 3 * if Even m then 1 else b
state_after: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
m : ℕ
⊢ preNormEDS' b c d (2 * (m + 2) + 1) =
    (preNormEDS' b c d (m + 4) * preNormEDS' b c d (m + 2) ^ 3 * if Even m then b else 1) -
      preNormEDS' b c d (m + 1) * preNormEDS' b c d (m + 3) ^ 3 * if Even m then 1 else b
Theorem: Real.Angle.angle_eq_iff_two_pi_dvd_sub
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: simp only [QuotientAddGroup.eq, AddSubgroup.zmultiples_eq_closure,
  AddSubgroup.mem_closure_singleton, zsmul_eq_mul', (sub_eq_neg_add _ _).symm, eq_comm]
state_before: ψ θ : ℝ
⊢ ↑θ = ↑ψ ↔ ∃ k, θ - ψ = 2 * π * ↑k
state_after: ψ θ : ℝ
⊢ ↑ψ = ↑θ ↔ ∃ k, θ - ψ = 2 * π * ↑k

tactic: rw [Angle.coe, Angle.coe, QuotientAddGroup.eq]
state_before: ψ θ : ℝ
⊢ ↑ψ = ↑θ ↔ ∃ k, θ - ψ = 2 * π * ↑k
state_after: ψ θ : ℝ
⊢ -ψ + θ ∈ AddSubgroup.zmultiples (2 * π) ↔ ∃ k, θ - ψ = 2 * π * ↑k

tactic: simp only [AddSubgroup.zmultiples_eq_closure,
  AddSubgroup.mem_closure_singleton, zsmul_eq_mul', (sub_eq_neg_add _ _).symm, eq_comm]
state_before: ψ θ : ℝ
⊢ -ψ + θ ∈ AddSubgroup.zmultiples (2 * π) ↔ ∃ k, θ - ψ = 2 * π * ↑k
state_after: no goals
Theorem: AddLECancellable.eq_tsub_iff_add_eq_of_le
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rintro rfl
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hc : AddLECancellable c
h : c ≤ b
⊢ a = b - c → a + c = b
state_after: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
b c d : α
hc : AddLECancellable c
h : c ≤ b
⊢ b - c + c = b

tactic: exact tsub_add_cancel_of_le h
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
b c d : α
hc : AddLECancellable c
h : c ≤ b
⊢ b - c + c = b
state_after: no goals
Theorem: Complex.cos_nat_mul_two_pi_sub_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simpa only [cos_zero] using (cos_periodic.nat_mul n).sub_antiperiod_eq cos_antiperiodic
state_before: n : ℕ
⊢ cos (↑n * (2 * ↑π) - ↑π) = -1
state_after: no goals
Theorem: SetTheory.PGame.nim_add_nim_equiv
File: Mathlib/SetTheory/Game/Nim.lean

tactic: rw [← grundyValue_eq_iff_equiv_nim, grundyValue_nim_add_nim]
state_before: n m : ℕ
⊢ nim ↑n + nim ↑m ≈ nim ↑(n ^^^ m)
state_after: no goals
Theorem: pow_mul_comm'
File: Mathlib/Algebra/Group/Defs.lean

tactic: rw [← pow_succ, pow_succ']
state_before: G : Type u_1
M : Type u_2
inst✝ : Monoid M
a✝ b c : M
m n✝ : ℕ
a : M
n : ℕ
⊢ a ^ n * a = a * a ^ n
state_after: no goals
Theorem: PNat.XgcdType.reduce_v
File: Mathlib/Data/PNat/Xgcd.lean

tactic: rw [reduce_a h, finish_v u h]
state_before: u✝ x✝ : XgcdType
u : XgcdType := x✝
h : u.r = 0
⊢ x✝.reduce.v = x✝.v
state_after: no goals

tactic: have : SizeOf.sizeOf u.step < SizeOf.sizeOf u := u.step_wf h
state_before: u✝ x✝ : XgcdType
u : XgcdType := x✝
h : ¬u.r = 0
⊢ x✝.reduce.v = x✝.v
state_after: u✝ x✝ : XgcdType
u : XgcdType := x✝
h : ¬u.r = 0
this : sizeOf u.step < sizeOf u
⊢ x✝.reduce.v = x✝.v

tactic: rw [reduce_b h, flip_v, reduce_v (step u), step_v u h, Prod.swap_swap]
state_before: u✝ x✝ : XgcdType
u : XgcdType := x✝
h : ¬u.r = 0
this : sizeOf u.step < sizeOf u
⊢ x✝.reduce.v = x✝.v
state_after: no goals
Theorem: HomologicalComplex.singleObjHomologySelfIso_inv_naturality
File: Mathlib/Algebra/Homology/SingleHomology.lean

tactic: rw [← cancel_mono (singleObjHomologySelfIso c j B).hom, assoc, assoc,
  singleObjHomologySelfIso_hom_naturality,
  Iso.inv_hom_id_assoc, Iso.inv_hom_id, comp_id]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
j : ι
A B : C
f : A ⟶ B
⊢ (singleObjHomologySelfIso c j A).inv ≫ homologyMap ((single C c j).map f) j = f ≫ (singleObjHomologySelfIso c j B).inv
state_after: no goals
Theorem: MeasureTheory.Measure.regular_of_isMulLeftInvariant
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: rw [haarMeasure_unique μ ⟨⟨K, hK⟩, h2K⟩]
state_before: G : Type u_1
inst✝⁷ : Group G
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalGroup G
inst✝⁴ : MeasurableSpace G
inst✝³ : BorelSpace G
inst✝² : SecondCountableTopology G
μ : Measure G
inst✝¹ : SigmaFinite μ
inst✝ : μ.IsMulLeftInvariant
K : Set G
hK : IsCompact K
h2K : (interior K).Nonempty
hμK : μ K ≠ ⊤
⊢ μ.Regular
state_after: G : Type u_1
inst✝⁷ : Group G
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalGroup G
inst✝⁴ : MeasurableSpace G
inst✝³ : BorelSpace G
inst✝² : SecondCountableTopology G
μ : Measure G
inst✝¹ : SigmaFinite μ
inst✝ : μ.IsMulLeftInvariant
K : Set G
hK : IsCompact K
h2K : (interior K).Nonempty
hμK : μ K ≠ ⊤
⊢ (μ ↑{ carrier := K, isCompact' := hK, interior_nonempty' := h2K } •
      haarMeasure { carrier := K, isCompact' := hK, interior_nonempty' := h2K }).Regular

tactic: exact Regular.smul hμK
state_before: G : Type u_1
inst✝⁷ : Group G
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalGroup G
inst✝⁴ : MeasurableSpace G
inst✝³ : BorelSpace G
inst✝² : SecondCountableTopology G
μ : Measure G
inst✝¹ : SigmaFinite μ
inst✝ : μ.IsMulLeftInvariant
K : Set G
hK : IsCompact K
h2K : (interior K).Nonempty
hμK : μ K ≠ ⊤
⊢ (μ ↑{ carrier := K, isCompact' := hK, interior_nonempty' := h2K } •
      haarMeasure { carrier := K, isCompact' := hK, interior_nonempty' := h2K }).Regular
state_after: no goals
Theorem: EReal.sign_neg
File: Mathlib/Data/Real/EReal.lean

tactic: rw [← coe_neg, sign_coe, sign_coe, Left.sign_neg]
state_before: x : ℝ
⊢ sign (-↑x) = -sign ↑x
state_after: no goals
Theorem: ContinuousLinearEquiv.comp_fderiv
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

tactic: rw [← fderivWithin_univ, ← fderivWithin_univ]
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
iso : E ≃L[𝕜] F
f : G → E
x : G
⊢ fderiv 𝕜 (⇑iso ∘ f) x = (↑iso).comp (fderiv 𝕜 f x)
state_after: 𝕜 : 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
iso : E ≃L[𝕜] F
f : G → E
x : G
⊢ fderivWithin 𝕜 (⇑iso ∘ f) univ x = (↑iso).comp (fderivWithin 𝕜 f univ x)

tactic: exact iso.comp_fderivWithin uniqueDiffWithinAt_univ
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
iso : E ≃L[𝕜] F
f : G → E
x : G
⊢ fderivWithin 𝕜 (⇑iso ∘ f) univ x = (↑iso).comp (fderivWithin 𝕜 f univ x)
state_after: no goals
Theorem: ProbabilityTheory.rnDeriv_gaussianReal
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: by_cases hv : v = 0
state_before: μ : ℝ
v : ℝ≥0
⊢ ∂gaussianReal μ v/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v
state_after: case pos
μ : ℝ
v : ℝ≥0
hv : v = 0
⊢ ∂gaussianReal μ v/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v

case neg
μ : ℝ
v : ℝ≥0
hv : ¬v = 0
⊢ ∂gaussianReal μ v/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v

tactic: simp only [hv, gaussianReal_zero_var, gaussianPDF_zero_var]
state_before: case pos
μ : ℝ
v : ℝ≥0
hv : v = 0
⊢ ∂gaussianReal μ v/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v
state_after: case pos
μ : ℝ
v : ℝ≥0
hv : v = 0
⊢ ∂Measure.dirac μ/∂ℙ =ᶠ[ae ℙ] 0

tactic: refine (Measure.eq_rnDeriv measurable_zero (mutuallySingular_dirac μ volume) ?_).symm
state_before: case pos
μ : ℝ
v : ℝ≥0
hv : v = 0
⊢ ∂Measure.dirac μ/∂ℙ =ᶠ[ae ℙ] 0
state_after: case pos
μ : ℝ
v : ℝ≥0
hv : v = 0
⊢ Measure.dirac μ = Measure.dirac μ + ℙ.withDensity 0

tactic: rw [withDensity_zero, add_zero]
state_before: case pos
μ : ℝ
v : ℝ≥0
hv : v = 0
⊢ Measure.dirac μ = Measure.dirac μ + ℙ.withDensity 0
state_after: no goals

tactic: rw [gaussianReal_of_var_ne_zero _ hv]
state_before: case neg
μ : ℝ
v : ℝ≥0
hv : ¬v = 0
⊢ ∂gaussianReal μ v/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v
state_after: case neg
μ : ℝ
v : ℝ≥0
hv : ¬v = 0
⊢ ∂ℙ.withDensity (gaussianPDF μ v)/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v

tactic: exact Measure.rnDeriv_withDensity _ (measurable_gaussianPDF μ v)
state_before: case neg
μ : ℝ
v : ℝ≥0
hv : ¬v = 0
⊢ ∂ℙ.withDensity (gaussianPDF μ v)/∂ℙ =ᶠ[ae ℙ] gaussianPDF μ v
state_after: no goals
Theorem: writtenInExtChartAt_chartAt_symm
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: simp_all only [mfld_simps]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
y : E
h : y ∈ (extChartAt I x).target
⊢ writtenInExtChartAt I I (↑(chartAt H x) x) (↑(chartAt H x).symm) y = y
state_after: no goals
Theorem: IntermediateField.iInf_toSubalgebra
File: Mathlib/FieldTheory/Adjoin.lean

tactic: simp [iInf]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
ι : Sort u_3
S : ι → IntermediateField F E
⊢ ↑(iInf S).toSubalgebra = ↑(⨅ i, (S i).toSubalgebra)
state_after: no goals
Theorem: AffineMap.vectorSpan_image_eq_submodule_map
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [vectorSpan_def, vectorSpan_def, f.image_vsub_image, Submodule.span_image]
state_before: k : Type u_1
V₁ : Type u_2
P₁ : Type u_3
V₂ : Type u_4
P₂ : Type u_5
V₃ : Type u_6
P₃ : Type u_7
inst✝⁹ : Ring k
inst✝⁸ : AddCommGroup V₁
inst✝⁷ : Module k V₁
inst✝⁶ : AffineSpace V₁ P₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module k V₂
inst✝³ : AffineSpace V₂ P₂
inst✝² : AddCommGroup V₃
inst✝¹ : Module k V₃
inst✝ : AffineSpace V₃ P₃
f : P₁ →ᵃ[k] P₂
s : Set P₁
⊢ Submodule.map f.linear (vectorSpan k s) = vectorSpan k (⇑f '' s)
state_after: no goals
Theorem: ArithmeticFunction.LSeries_zeta_ne_zero_of_one_lt_re
File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

tactic: simpa only [h, zero_mul, zero_ne_one] using LSeries_zeta_mul_Lseries_moebius hs
state_before: s : ℂ
hs : 1 < s.re
h : L (fun n => ↑(ζ n)) s = 0
⊢ False
state_after: no goals
Theorem: HasCompactMulSupport.exists_bound_of_continuous
File: Mathlib/Analysis/Normed/Group/Bounded.lean

tactic: simpa using (hf.isCompact_range h'f).isBounded.exists_norm_le'
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
inst✝³ : SeminormedGroup E
inst✝² : SeminormedGroup F
inst✝¹ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝ : TopologicalSpace α
f : α → E
hf : HasCompactMulSupport f
h'f : Continuous f
⊢ ∃ C, ∀ (x : α), ‖f x‖ ≤ C
state_after: no goals
Theorem: List.replaceF_cons_of_some
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: simp [replaceF_cons, h]
state_before: α : Type u_1
a' a : α
l : List α
p : α → Option α
h : p a = some a'
⊢ replaceF p (a :: l) = a' :: l
state_after: no goals