1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Submodule.sup_toAddSubgroup
File: Mathlib/LinearAlgebra/Span.lean

tactic: ext x
state_before: R✝ : Type u_1
R₂ : Type u_2
K : Type u_3
M✝ : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R✝
inst✝⁹ : AddCommMonoid M✝
inst✝⁸ : Module R✝ M✝
x : M✝
p✝ p'✝ : Submodule R✝ M✝
inst✝⁷ : Semiring R₂
σ₁₂ : R✝ →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M✝ M₂
inst✝³ : SemilinearMapClass F σ₁₂ M✝ M₂
s t : Set M✝
R : Type u_9
M : Type u_10
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
⊢ (p ⊔ p').toAddSubgroup = p.toAddSubgroup ⊔ p'.toAddSubgroup
state_after: case h
R✝ : Type u_1
R₂ : Type u_2
K : Type u_3
M✝ : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R✝
inst✝⁹ : AddCommMonoid M✝
inst✝⁸ : Module R✝ M✝
x✝ : M✝
p✝ p'✝ : Submodule R✝ M✝
inst✝⁷ : Semiring R₂
σ₁₂ : R✝ →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M✝ M₂
inst✝³ : SemilinearMapClass F σ₁₂ M✝ M₂
s t : Set M✝
R : Type u_9
M : Type u_10
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
x : M
⊢ x ∈ (p ⊔ p').toAddSubgroup ↔ x ∈ p.toAddSubgroup ⊔ p'.toAddSubgroup

tactic: rw [mem_toAddSubgroup, mem_sup, AddSubgroup.mem_sup]
state_before: case h
R✝ : Type u_1
R₂ : Type u_2
K : Type u_3
M✝ : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R✝
inst✝⁹ : AddCommMonoid M✝
inst✝⁸ : Module R✝ M✝
x✝ : M✝
p✝ p'✝ : Submodule R✝ M✝
inst✝⁷ : Semiring R₂
σ₁₂ : R✝ →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M✝ M₂
inst✝³ : SemilinearMapClass F σ₁₂ M✝ M₂
s t : Set M✝
R : Type u_9
M : Type u_10
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
x : M
⊢ x ∈ (p ⊔ p').toAddSubgroup ↔ x ∈ p.toAddSubgroup ⊔ p'.toAddSubgroup
state_after: case h
R✝ : Type u_1
R₂ : Type u_2
K : Type u_3
M✝ : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R✝
inst✝⁹ : AddCommMonoid M✝
inst✝⁸ : Module R✝ M✝
x✝ : M✝
p✝ p'✝ : Submodule R✝ M✝
inst✝⁷ : Semiring R₂
σ₁₂ : R✝ →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M✝ M₂
inst✝³ : SemilinearMapClass F σ₁₂ M✝ M₂
s t : Set M✝
R : Type u_9
M : Type u_10
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
x : M
⊢ (∃ y ∈ p, ∃ z ∈ p', y + z = x) ↔ ∃ y ∈ p.toAddSubgroup, ∃ z ∈ p'.toAddSubgroup, y + z = x

tactic: rfl
state_before: case h
R✝ : Type u_1
R₂ : Type u_2
K : Type u_3
M✝ : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R✝
inst✝⁹ : AddCommMonoid M✝
inst✝⁸ : Module R✝ M✝
x✝ : M✝
p✝ p'✝ : Submodule R✝ M✝
inst✝⁷ : Semiring R₂
σ₁₂ : R✝ →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M✝ M₂
inst✝³ : SemilinearMapClass F σ₁₂ M✝ M₂
s t : Set M✝
R : Type u_9
M : Type u_10
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p p' : Submodule R M
x : M
⊢ (∃ y ∈ p, ∃ z ∈ p', y + z = x) ↔ ∃ y ∈ p.toAddSubgroup, ∃ z ∈ p'.toAddSubgroup, y + z = x
state_after: no goals
Theorem: sdiff_le_iff_left
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [sdiff_le_iff, sup_idem]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a \ b ≤ b ↔ a ≤ b
state_after: no goals
Theorem: AkraBazziRecurrence.eventually_one_sub_smoothingFn_r_pos
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

tactic: rw [Filter.eventually_all]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ᶠ (n : ℕ) in atTop, ∀ (i : α), 0 < 1 - ε ↑(r i n)
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ (i : α), ∀ᶠ (x : ℕ) in atTop, 0 < 1 - ε ↑(r i x)

tactic: exact fun i => (R.tendsto_atTop_r_real i).eventually eventually_one_sub_smoothingFn_pos_real
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ (i : α), ∀ᶠ (x : ℕ) in atTop, 0 < 1 - ε ↑(r i x)
state_after: no goals
Theorem: Mathlib.Tactic.PushNeg.not_iff
File: Mathlib/Tactic/PushNeg.lean

tactic: rw [not_not, or_comm]
state_before: α : Sort ?u.351
p q : Prop
s : α → Prop
⊢ ¬p ∧ q ∨ ¬¬p ∧ ¬q ↔ p ∧ ¬q ∨ ¬p ∧ q
state_after: no goals
Theorem: PowerSeries.map_X
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: ext
state_before: R : Type u_1
inst✝² : Semiring R
S : Type u_2
T : Type u_3
inst✝¹ : Semiring S
inst✝ : Semiring T
f : R →+* S
g : S →+* T
⊢ (map f) X = X
state_after: case h
R : Type u_1
inst✝² : Semiring R
S : Type u_2
T : Type u_3
inst✝¹ : Semiring S
inst✝ : Semiring T
f : R →+* S
g : S →+* T
n✝ : ℕ
⊢ (coeff S n✝) ((map f) X) = (coeff S n✝) X

tactic: simp [coeff_X, apply_ite f]
state_before: case h
R : Type u_1
inst✝² : Semiring R
S : Type u_2
T : Type u_3
inst✝¹ : Semiring S
inst✝ : Semiring T
f : R →+* S
g : S →+* T
n✝ : ℕ
⊢ (coeff S n✝) ((map f) X) = (coeff S n✝) X
state_after: no goals
Theorem: TensorProduct.map_add_right
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: ext
state_before: R : Type u_1
inst✝²⁰ : CommSemiring R
R' : Type u_2
inst✝¹⁹ : Monoid R'
R'' : Type u_3
inst✝¹⁸ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : AddCommMonoid N
inst✝¹⁵ : AddCommMonoid P
inst✝¹⁴ : AddCommMonoid Q
inst✝¹³ : AddCommMonoid S
inst✝¹² : AddCommMonoid T
inst✝¹¹ : Module R M
inst✝¹⁰ : Module R N
inst✝⁹ : Module R P
inst✝⁸ : Module R Q
inst✝⁷ : Module R S
inst✝⁶ : Module R T
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type u_10
Q' : Type u_11
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f : M →ₗ[R] P
g₁ g₂ : N →ₗ[R] Q
⊢ map f (g₁ + g₂) = map f g₁ + map f g₂
state_after: case H.h.h
R : Type u_1
inst✝²⁰ : CommSemiring R
R' : Type u_2
inst✝¹⁹ : Monoid R'
R'' : Type u_3
inst✝¹⁸ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : AddCommMonoid N
inst✝¹⁵ : AddCommMonoid P
inst✝¹⁴ : AddCommMonoid Q
inst✝¹³ : AddCommMonoid S
inst✝¹² : AddCommMonoid T
inst✝¹¹ : Module R M
inst✝¹⁰ : Module R N
inst✝⁹ : Module R P
inst✝⁸ : Module R Q
inst✝⁷ : Module R S
inst✝⁶ : Module R T
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type u_10
Q' : Type u_11
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f : M →ₗ[R] P
g₁ g₂ : N →ₗ[R] Q
x✝¹ : M
x✝ : N
⊢ (((mk R M N).compr₂ (map f (g₁ + g₂))) x✝¹) x✝ = (((mk R M N).compr₂ (map f g₁ + map f g₂)) x✝¹) x✝

tactic: simp only [tmul_add, compr₂_apply, mk_apply, map_tmul, add_apply]
state_before: case H.h.h
R : Type u_1
inst✝²⁰ : CommSemiring R
R' : Type u_2
inst✝¹⁹ : Monoid R'
R'' : Type u_3
inst✝¹⁸ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : AddCommMonoid N
inst✝¹⁵ : AddCommMonoid P
inst✝¹⁴ : AddCommMonoid Q
inst✝¹³ : AddCommMonoid S
inst✝¹² : AddCommMonoid T
inst✝¹¹ : Module R M
inst✝¹⁰ : Module R N
inst✝⁹ : Module R P
inst✝⁸ : Module R Q
inst✝⁷ : Module R S
inst✝⁶ : Module R T
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type u_10
Q' : Type u_11
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f : M →ₗ[R] P
g₁ g₂ : N →ₗ[R] Q
x✝¹ : M
x✝ : N
⊢ (((mk R M N).compr₂ (map f (g₁ + g₂))) x✝¹) x✝ = (((mk R M N).compr₂ (map f g₁ + map f g₂)) x✝¹) x✝
state_after: no goals
Theorem: isPeriodicPt_mul_iff_pow_eq_one
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rw [IsPeriodicPt, IsFixedPt, mul_left_iterate]
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 : ℕ
x : G
⊢ IsPeriodicPt (fun x_1 => x * x_1) n 1 ↔ x ^ n = 1
state_after: 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 : ℕ
x : G
⊢ (fun x_1 => x ^ n * x_1) 1 = 1 ↔ x ^ n = 1

tactic: beta_reduce
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 : ℕ
x : G
⊢ (fun x_1 => x ^ n * x_1) 1 = 1 ↔ x ^ n = 1
state_after: 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 : ℕ
x : G
⊢ x ^ n * 1 = 1 ↔ x ^ n = 1

tactic: rw [mul_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 : ℕ
x : G
⊢ x ^ n * 1 = 1 ↔ x ^ n = 1
state_after: no goals
Theorem: KaehlerDifferential.kerTotal_mkQ_single_mul
File: Mathlib/RingTheory/Kaehler/Basic.lean

tactic: rw [← map_add, eq_comm, ← sub_eq_zero, ← map_sub (Submodule.mkQ (kerTotal R S)),
  Submodule.mkQ_apply, Submodule.Quotient.mk_eq_zero]
state_before: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x y z : S
⊢ (z𝖣x * y) = ((z * x)𝖣y) + (z * y)𝖣x
state_after: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x y z : S
⊢ single y (z * x) + single x (z * y) - single (x * y) z ∈ kerTotal R S

tactic: simp_rw [← Finsupp.smul_single_one _ z, ← @smul_eq_mul _ _ z, ← Finsupp.smul_single, ← smul_add,
  ← smul_sub]
state_before: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x y z : S
⊢ single y (z * x) + single x (z * y) - single (x * y) z ∈ kerTotal R S
state_after: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x y z : S
⊢ z • (single y x + single x y - single (x * y) 1) ∈ kerTotal R S

tactic: exact Submodule.smul_mem _ _ (Submodule.subset_span (Or.inl <| Or.inr <| ⟨⟨_, _⟩, rfl⟩))
state_before: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x y z : S
⊢ z • (single y x + single x y - single (x * y) 1) ∈ kerTotal R S
state_after: no goals
Theorem: AkraBazziRecurrence.GrowsPolynomially.norm
File: Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean

tactic: simp only [norm_eq_abs]
state_before: f : ℝ → ℝ
hf : GrowsPolynomially f
⊢ GrowsPolynomially fun x => ‖f x‖
state_after: f : ℝ → ℝ
hf : GrowsPolynomially f
⊢ GrowsPolynomially fun x => |f x|

tactic: exact hf.abs
state_before: f : ℝ → ℝ
hf : GrowsPolynomially f
⊢ GrowsPolynomially fun x => |f x|
state_after: no goals
Theorem: div_le_div_of_nonpos_of_le
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [div_eq_mul_one_div a c, div_eq_mul_one_div b c]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hc : c ≤ 0
h : b ≤ a
⊢ a / c ≤ b / c
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hc : c ≤ 0
h : b ≤ a
⊢ a * (1 / c) ≤ b * (1 / c)

tactic: exact mul_le_mul_of_nonpos_right h (one_div_nonpos.2 hc)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
hc : c ≤ 0
h : b ≤ a
⊢ a * (1 / c) ≤ b * (1 / c)
state_after: no goals
Theorem: Real.cosh_abs
File: Mathlib/Data/Complex/Exponential.lean

tactic: cases le_total x 0 <;> simp [*, _root_.abs_of_nonneg, abs_of_nonpos]
state_before: x y : ℝ
⊢ cosh |x| = cosh x
state_after: no goals
Theorem: AffineSubspace.sOppSide_iff_exists_right
File: Mathlib/Analysis/Convex/Side.lean

tactic: rw [SOppSide, and_comm, wOppSide_iff_exists_right h, and_assoc, and_congr_right_iff,
  and_congr_right_iff]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y p₂ : P
h : p₂ ∈ s
⊢ s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y p₂ : P
h : p₂ ∈ s
⊢ x ∉ s → y ∉ s → ((y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)) ↔ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y))

tactic: rintro _ hy
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y p₂ : P
h : p₂ ∈ s
⊢ x ∉ s → y ∉ s → ((y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)) ↔ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y))
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y p₂ : P
h : p₂ ∈ s
a✝ : x ∉ s
hy : y ∉ s
⊢ (y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)) ↔ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)

tactic: rw [or_iff_right hy]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y p₂ : P
h : p₂ ∈ s
a✝ : x ∉ s
hy : y ∉ s
⊢ (y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)) ↔ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
state_after: no goals
Theorem: preNormEDS_two
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: erw [preNormEDS_ofNat, preNormEDS'_two]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
⊢ preNormEDS b c d 2 = 1
state_after: no goals
Theorem: Hyperreal.Infinitesimal.mul
File: Mathlib/Data/Real/Hyperreal.lean

tactic: simpa only [mul_zero] using hx.mul hy
state_before: x y : ℝ*
hx : x.Infinitesimal
hy : y.Infinitesimal
⊢ (x * y).Infinitesimal
state_after: no goals
Theorem: Finset.card_pow_le
File: Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean

tactic: simpa only [_root_.pow_zero, div_one] using card_pow_div_pow_le hA _ _ 0
state_before: α : Type u_1
inst✝¹ : CommGroup α
inst✝ : DecidableEq α
A B✝ C : Finset α
hA : A.Nonempty
B : Finset α
n : ℕ
⊢ ↑(B ^ n).card ≤ (↑(A * B).card / ↑A.card) ^ n * ↑A.card
state_after: no goals
Theorem: Rel.inv_inv
File: Mathlib/Data/Rel.lean

tactic: ext x y
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
⊢ r.inv.inv = r
state_after: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
x : α
y : β
⊢ r.inv.inv x y ↔ r x y

tactic: rfl
state_before: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
x : α
y : β
⊢ r.inv.inv x y ↔ r x y
state_after: no goals
Theorem: Real.le_rpow_inv_iff_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← rpow_le_rpow_iff hx _ hz, rpow_inv_rpow] <;> positivity
state_before: x y z : ℝ
n : ℕ
hx : 0 ≤ x
hy : 0 ≤ y
hz : 0 < z
⊢ x ≤ y ^ z⁻¹ ↔ x ^ z ≤ y
state_after: no goals
Theorem: Real.hasStrictDerivAt_arctan
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean

tactic: have A : cos (arctan x) ≠ 0 := (cos_arctan_pos x).ne'
state_before: x : ℝ
⊢ HasStrictDerivAt arctan (1 / (1 + x ^ 2)) x
state_after: x : ℝ
A : cos (arctan x) ≠ 0
⊢ HasStrictDerivAt arctan (1 / (1 + x ^ 2)) x

tactic: simpa [cos_sq_arctan] using
  tanPartialHomeomorph.hasStrictDerivAt_symm trivial (by simpa) (hasStrictDerivAt_tan A)
state_before: x : ℝ
A : cos (arctan x) ≠ 0
⊢ HasStrictDerivAt arctan (1 / (1 + x ^ 2)) x
state_after: no goals

tactic: simpa
state_before: x : ℝ
A : cos (arctan x) ≠ 0
⊢ 1 / cos (↑tanPartialHomeomorph.symm x) ^ 2 ≠ 0
state_after: no goals
Theorem: Set.sigma_insert
File: Mathlib/Data/Set/Sigma.lean

tactic: simp_rw [insert_eq, sigma_union, sigma_singleton]
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β✝² : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x : (i : ι) × α i
i j : ι
a✝ : α i
β✝¹ : Type u_5
inst✝ : CompleteLattice β✝¹
β✝ : Type u_6
β : ι → Type u_7
a : (i : ι) → α i
⊢ (s.sigma fun i => insert (a i) (t i)) = (fun i => ⟨i, a i⟩) '' s ∪ s.sigma t
state_after: no goals
Theorem: CategoryTheory.isSeparating_unop_iff
File: Mathlib/CategoryTheory/Generator.lean

tactic: rw [← isCoseparating_op_iff, Set.unop_op]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
𝒢 : Set Cᵒᵖ
⊢ IsSeparating 𝒢.unop ↔ IsCoseparating 𝒢
state_after: no goals
Theorem: Finset.univ_val_map_subtype_val
File: Mathlib/Data/Fintype/Basic.lean

tactic: apply (map_val (Function.Embedding.subtype p) univ).symm.trans
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α
s t : Finset α
inst✝² : Fintype α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : Fintype { a // p a }
⊢ Multiset.map Subtype.val univ.val = (filter p univ).val
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α
s t : Finset α
inst✝² : Fintype α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : Fintype { a // p a }
⊢ (map (Embedding.subtype p) univ).val = (filter p univ).val

tactic: apply congr_arg
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α
s t : Finset α
inst✝² : Fintype α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : Fintype { a // p a }
⊢ (map (Embedding.subtype p) univ).val = (filter p univ).val
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α
s t : Finset α
inst✝² : Fintype α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : Fintype { a // p a }
⊢ map (Embedding.subtype p) univ = filter p univ

tactic: apply univ_map_subtype
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α
s t : Finset α
inst✝² : Fintype α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : Fintype { a // p a }
⊢ map (Embedding.subtype p) univ = filter p univ
state_after: no goals
Theorem: Metric.diam_thickening_le
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: by_cases hs : IsBounded s
state_before: ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε : 0 ≤ ε
⊢ diam (thickening ε s) ≤ diam s + 2 * ε
state_after: case pos
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε : 0 ≤ ε
hs : Bornology.IsBounded s
⊢ diam (thickening ε s) ≤ diam s + 2 * ε

case neg
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε : 0 ≤ ε
hs : ¬Bornology.IsBounded s
⊢ diam (thickening ε s) ≤ diam s + 2 * ε

tactic: obtain rfl | hε := hε.eq_or_lt
state_before: case neg
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε : 0 ≤ ε
hs : ¬Bornology.IsBounded s
⊢ diam (thickening ε s) ≤ diam s + 2 * ε
state_after: case neg.inl
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hs : ¬Bornology.IsBounded s
hε : 0 ≤ 0
⊢ diam (thickening 0 s) ≤ diam s + 2 * 0

case neg.inr
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε✝ : 0 ≤ ε
hs : ¬Bornology.IsBounded s
hε : 0 < ε
⊢ diam (thickening ε s) ≤ diam s + 2 * ε

tactic: exact (diam_mono (thickening_subset_cthickening _ _) hs.cthickening).trans
  (diam_cthickening_le _ hε)
state_before: case pos
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε : 0 ≤ ε
hs : Bornology.IsBounded s
⊢ diam (thickening ε s) ≤ diam s + 2 * ε
state_after: no goals

tactic: simp [thickening_of_nonpos, diam_nonneg]
state_before: case neg.inl
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hs : ¬Bornology.IsBounded s
hε : 0 ≤ 0
⊢ diam (thickening 0 s) ≤ diam s + 2 * 0
state_after: no goals

tactic: positivity
state_before: case neg.inr
ι : Sort u_1
α✝ : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α✝
δ ε : ℝ
s✝ t : Set α✝
x : α✝
α : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
hε✝ : 0 ≤ ε
hs : ¬Bornology.IsBounded s
hε : 0 < ε
⊢ 0 ≤ diam s + 2 * ε
state_after: no goals
Theorem: List.toFinset_eq
File: Mathlib/Data/Finset/Basic.lean

tactic: rwa [Multiset.coe_nodup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
l l' : List α
a : α
n : l.Nodup
⊢ (↑l).Nodup
state_after: no goals
Theorem: RCLike.tendsto_inverse_atTop_nhds_zero_nat
File: Mathlib/Analysis/SpecificLimits/RCLike.lean

tactic: convert tendsto_algebraMap_inverse_atTop_nhds_zero_nat 𝕜
state_before: 𝕜 : Type u_1
inst✝ : RCLike 𝕜
⊢ Tendsto (fun n => (↑n)⁻¹) atTop (𝓝 0)
state_after: case h.e'_3.h
𝕜 : Type u_1
inst✝ : RCLike 𝕜
x✝ : ℕ
⊢ (↑x✝)⁻¹ = (⇑(algebraMap ℝ 𝕜) ∘ fun n => (↑n)⁻¹) x✝

tactic: simp
state_before: case h.e'_3.h
𝕜 : Type u_1
inst✝ : RCLike 𝕜
x✝ : ℕ
⊢ (↑x✝)⁻¹ = (⇑(algebraMap ℝ 𝕜) ∘ fun n => (↑n)⁻¹) x✝
state_after: no goals
Theorem: Filter.Germ.max_def
File: Mathlib/Order/Filter/FilterProduct.lean

tactic: rcases le_total (a : β*) b with h | h
state_before: α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
⊢ max ↑a ↑b = map₂ max ↑a ↑b
state_after: case inl
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑a ≤ ↑b
⊢ max ↑a ↑b = map₂ max ↑a ↑b

case inr
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑b ≤ ↑a
⊢ max ↑a ↑b = map₂ max ↑a ↑b

tactic: rw [max_eq_right h, map₂_coe, coe_eq]
state_before: case inl
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑a ≤ ↑b
⊢ max ↑a ↑b = map₂ max ↑a ↑b
state_after: case inl
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑a ≤ ↑b
⊢ b =ᶠ[↑φ] fun x => max (a x) (b x)

tactic: exact h.mono fun i hi => (max_eq_right hi).symm
state_before: case inl
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑a ≤ ↑b
⊢ b =ᶠ[↑φ] fun x => max (a x) (b x)
state_after: no goals

tactic: rw [max_eq_left h, map₂_coe, coe_eq]
state_before: case inr
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑b ≤ ↑a
⊢ max ↑a ↑b = map₂ max ↑a ↑b
state_after: case inr
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑b ≤ ↑a
⊢ a =ᶠ[↑φ] fun x => max (a x) (b x)

tactic: exact h.mono fun i hi => (max_eq_left hi).symm
state_before: case inr
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : (↑φ).Germ β
a b : α → β
h : ↑b ≤ ↑a
⊢ a =ᶠ[↑φ] fun x => max (a x) (b x)
state_after: no goals