1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: not_differentiableAt_abs_zero
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: intro h
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
⊢ ¬DifferentiableAt ℝ abs 0
state_after: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : DifferentiableAt ℝ abs 0
⊢ False

tactic: have h₁ : deriv abs (0 : ℝ) = 1 :=
  (uniqueDiffOn_Ici _ _ Set.left_mem_Ici).eq_deriv _ h.hasDerivAt.hasDerivWithinAt <|
    (hasDerivWithinAt_id _ _).congr_of_mem (fun _ h ↦ abs_of_nonneg h) Set.left_mem_Ici
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : DifferentiableAt ℝ abs 0
⊢ False
state_after: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : DifferentiableAt ℝ abs 0
h₁ : deriv abs 0 = 1
⊢ False

tactic: have h₂ : deriv abs (0 : ℝ) = -1 :=
  (uniqueDiffOn_Iic _ _ Set.right_mem_Iic).eq_deriv _ h.hasDerivAt.hasDerivWithinAt <|
    (hasDerivWithinAt_neg _ _).congr_of_mem (fun _ h ↦ abs_of_nonpos h) Set.right_mem_Iic
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : DifferentiableAt ℝ abs 0
h₁ : deriv abs 0 = 1
⊢ False
state_after: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : DifferentiableAt ℝ abs 0
h₁ : deriv abs 0 = 1
h₂ : deriv abs 0 = -1
⊢ False

tactic: linarith
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
h : DifferentiableAt ℝ abs 0
h₁ : deriv abs 0 = 1
h₂ : deriv abs 0 = -1
⊢ False
state_after: no goals
Theorem: Finsupp.single_eq_same
File: Mathlib/Data/Finsupp/Defs.lean

tactic: classical exact Pi.single_eq_same (f := fun _ ↦ M) a b
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a a' : α
b : M
⊢ (single a b) a = b
state_after: no goals

tactic: exact Pi.single_eq_same (f := fun _ ↦ M) a b
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a a' : α
b : M
⊢ (single a b) a = b
state_after: no goals
Theorem: LinearMap.rTensor_comp_lTensor
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: simp only [lTensor, rTensor, ← map_comp, id_comp, comp_id]
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
g✝ : P →ₗ[R] Q
f✝ : N →ₗ[R] P
f : M →ₗ[R] P
g : N →ₗ[R] Q
⊢ rTensor Q f ∘ₗ lTensor M g = map f g
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.ι_π_self
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [biproduct.ι_π]
state_before: J : Type w
K : Type u_1
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j : J
⊢ ι f j ≫ π f j = 𝟙 (f j)
state_after: no goals
Theorem: MeasureTheory.measure_diff_le_iff_le_add
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [measure_diff hst hs hs', tsub_le_iff_left]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
hst : s ⊆ t
hs' : μ s ≠ ⊤
ε : ℝ≥0∞
⊢ μ (t \ s) ≤ ε ↔ μ t ≤ μ s + ε
state_after: no goals
Theorem: finrank_euclideanSpace_fin
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
n : ℕ
⊢ FiniteDimensional.finrank 𝕜 (EuclideanSpace 𝕜 (Fin n)) = n
state_after: no goals
Theorem: Int.card_Ico_of_le
File: Mathlib/Data/Int/Interval.lean

tactic: rw [card_Ico, toNat_sub_of_le h]
state_before: a b : ℤ
h : a ≤ b
⊢ ↑(Ico a b).card = b - a
state_after: no goals
Theorem: SetTheory.PGame.leftMoves_add_cases
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [← toLeftMovesAdd.apply_symm_apply k]
state_before: xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
⊢ P k
state_after: xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
⊢ P (toLeftMovesAdd (toLeftMovesAdd.symm k))

tactic: cases' toLeftMovesAdd.symm k with i i
state_before: xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
⊢ P (toLeftMovesAdd (toLeftMovesAdd.symm k))
state_after: case inl
xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
i : x.LeftMoves
⊢ P (toLeftMovesAdd (Sum.inl i))

case inr
xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
i : y.LeftMoves
⊢ P (toLeftMovesAdd (Sum.inr i))

tactic: exact hl i
state_before: case inl
xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
i : x.LeftMoves
⊢ P (toLeftMovesAdd (Sum.inl i))
state_after: no goals

tactic: exact hr i
state_before: case inr
xl xr : Type u
x y : PGame
k : (x + y).LeftMoves
P : (x + y).LeftMoves → Prop
hl : ∀ (i : x.LeftMoves), P (toLeftMovesAdd (Sum.inl i))
hr : ∀ (i : y.LeftMoves), P (toLeftMovesAdd (Sum.inr i))
i : y.LeftMoves
⊢ P (toLeftMovesAdd (Sum.inr i))
state_after: no goals
Theorem: mem_map_indicator_ae_iff_of_zero_nmem
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: classical
rw [mem_map, mem_ae_iff, Set.indicator_preimage, Set.ite, Set.compl_union, Set.compl_inter]
change μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun _ => (0 : β)) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
simp only [ht, if_false, Set.compl_empty, Set.empty_diff, Set.inter_univ, Set.preimage_const]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∉ t
⊢ t ∈ Filter.map (s.indicator f) (ae μ) ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
state_after: no goals

tactic: rw [mem_map, mem_ae_iff, Set.indicator_preimage, Set.ite, Set.compl_union, Set.compl_inter]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∉ t
⊢ t ∈ Filter.map (s.indicator f) (ae μ) ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
state_after: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∉ t
⊢ μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ (0 ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0

tactic: change μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun _ => (0 : β)) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∉ t
⊢ μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ (0 ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
state_after: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∉ t
⊢ μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun x => 0) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0

tactic: simp only [ht, if_false, Set.compl_empty, Set.empty_diff, Set.inter_univ, Set.preimage_const]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t✝ : Set α
f : α → β
inst✝ : Zero β
t : Set β
ht : 0 ∉ t
⊢ μ (((f ⁻¹' t)ᶜ ∪ sᶜ) ∩ ((fun x => 0) ⁻¹' t \ s)ᶜ) = 0 ↔ μ ((f ⁻¹' t)ᶜ ∪ sᶜ) = 0
state_after: no goals
Theorem: finrank_top
File: Mathlib/LinearAlgebra/Dimension/Finrank.lean

tactic: unfold finrank
state_before: R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
⊢ finrank R ↥⊤ = finrank R M
state_after: R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
⊢ toNat (Module.rank R ↥⊤) = toNat (Module.rank R M)

tactic: simp [rank_top]
state_before: R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
⊢ toNat (Module.rank R ↥⊤) = toNat (Module.rank R M)
state_after: no goals
Theorem: InnerProductSpaceable.add_left_aux4
File: Mathlib/Analysis/InnerProductSpace/OfNorm.lean

tactic: apply eq_sub_of_add_eq'
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
⊢ ‖y - 2 • z‖ * ‖y - 2 • z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖) - ‖y‖ * ‖y‖
state_after: case h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
⊢ ‖y‖ * ‖y‖ + ‖y - 2 • z‖ * ‖y - 2 • z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)

tactic: have h₀ := parallelogram_identity (y - z) z
state_before: case h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
⊢ ‖y‖ * ‖y‖ + ‖y - 2 • z‖ * ‖y - 2 • z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
state_after: case h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
h₀ : ‖y - z + z‖ * ‖y - z + z‖ + ‖y - z - z‖ * ‖y - z - z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
⊢ ‖y‖ * ‖y‖ + ‖y - 2 • z‖ * ‖y - 2 • z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)

tactic: convert h₀ using 4 <;> (try rw [two_smul]) <;> abel
state_before: case h
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
h₀ : ‖y - z + z‖ * ‖y - z + z‖ + ‖y - z - z‖ * ‖y - z - z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
⊢ ‖y‖ * ‖y‖ + ‖y - 2 • z‖ * ‖y - 2 • z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
state_after: no goals

tactic: try rw [two_smul]
state_before: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
h₀ : ‖y - z + z‖ * ‖y - z + z‖ + ‖y - z - z‖ * ‖y - z - z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
⊢ y - 2 • z = y - z - z
state_after: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
h₀ : ‖y - z + z‖ * ‖y - z + z‖ + ‖y - z - z‖ * ‖y - z - z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
⊢ y - (z + z) = y - z - z

tactic: rw [two_smul]
state_before: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
h₀ : ‖y - z + z‖ * ‖y - z + z‖ + ‖y - z - z‖ * ‖y - z - z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
⊢ y - 2 • z = y - z - z
state_after: case h.e'_2.h.e'_6.h.e'_6.h.e'_3
𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : InnerProductSpaceable E
y z : E
h₀ : ‖y - z + z‖ * ‖y - z + z‖ + ‖y - z - z‖ * ‖y - z - z‖ = 2 * (‖y - z‖ * ‖y - z‖ + ‖z‖ * ‖z‖)
⊢ y - (z + z) = y - z - z
Theorem: Diffeomorph.isLocalDiffeomorph
File: Mathlib/Geometry/Manifold/LocalDiffeomorph.lean

tactic: trivial
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
H : Type u_4
inst✝⁵ : TopologicalSpace H
G : Type u_5
inst✝⁴ : TopologicalSpace G
I : ModelWithCorners 𝕜 E H
J : ModelWithCorners 𝕜 F G
M : Type u_6
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
N : Type u_7
inst✝¹ : TopologicalSpace N
inst✝ : ChartedSpace G N
n : ℕ∞
f : M → N
s : Set M
x : M
Φ : M ≃ₘ^n⟮I, J⟯ N
_x : M
⊢ _x ∈ Φ.toPartialDiffeomorph.source
state_after: no goals
Theorem: padicNorm.eq_zpow_of_nonzero
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: simp [hq, padicNorm]
state_before: p : ℕ
q : ℚ
hq : q ≠ 0
⊢ padicNorm p q = ↑p ^ (-padicValRat p q)
state_after: no goals
Theorem: Multiset.filter_map
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [List.filter_map]
state_before: α : Type u_1
β : Type v
γ : Type u_2
p : α → Prop
inst✝ : DecidablePred p
f : β → α
s : Multiset β
l : List β
⊢ filter p (map f (Quot.mk Setoid.r l)) = map f (filter (p ∘ f) (Quot.mk Setoid.r l))
state_after: α : Type u_1
β : Type v
γ : Type u_2
p : α → Prop
inst✝ : DecidablePred p
f : β → α
s : Multiset β
l : List β
⊢ List.map f (List.filter ((fun b => decide (p b)) ∘ f) l) ~ List.map f (List.filter (fun b => decide (p (f b))) l)

tactic: rfl
state_before: α : Type u_1
β : Type v
γ : Type u_2
p : α → Prop
inst✝ : DecidablePred p
f : β → α
s : Multiset β
l : List β
⊢ List.map f (List.filter ((fun b => decide (p b)) ∘ f) l) ~ List.map f (List.filter (fun b => decide (p (f b))) l)
state_after: no goals
Theorem: map_iSup
File: Mathlib/Order/Hom/CompleteLattice.lean

tactic: simp [iSup, ← Set.range_comp, Function.comp]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
ι : Sort u_6
κ : ι → Sort u_7
inst✝³ : FunLike F α β
inst✝² : SupSet α
inst✝¹ : SupSet β
inst✝ : sSupHomClass F α β
f : F
g : ι → α
⊢ f (⨆ i, g i) = ⨆ i, f (g i)
state_after: no goals
Theorem: SetTheory.PGame.quot_left_distrib_sub
File: Mathlib/SetTheory/Game/Basic.lean

tactic: change (⟦x * (y + -z)⟧ : Game) = ⟦x * y⟧ + -⟦x * z⟧
state_before: x y z : PGame
⊢ ⟦x * (y - z)⟧ = ⟦x * y⟧ - ⟦x * z⟧
state_after: x y z : PGame
⊢ ⟦x * (y + -z)⟧ = ⟦x * y⟧ + -⟦x * z⟧

tactic: rw [quot_left_distrib, quot_mul_neg]
state_before: x y z : PGame
⊢ ⟦x * (y + -z)⟧ = ⟦x * y⟧ + -⟦x * z⟧
state_after: no goals
Theorem: UnitAddCircle.measure_univ
File: Mathlib/MeasureTheory/Integral/Periodic.lean

tactic: simp
state_before: ⊢ volume univ = 1
state_after: no goals
Theorem: Nat.even_div
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rw [even_iff_two_dvd, dvd_iff_mod_eq_zero, ← Nat.mod_mul_right_div_self, mul_comm]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
m n : ℕ
⊢ Even (m / n) ↔ m % (2 * n) / n = 0
state_after: no goals
Theorem: Set.preimage_inr_image_inl
File: Mathlib/Data/Set/Image.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s✝ t s : Set α
⊢ Sum.inr ⁻¹' (Sum.inl '' s) = ∅
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s✝ t s : Set α
x✝ : β
⊢ x✝ ∈ Sum.inr ⁻¹' (Sum.inl '' s) ↔ x✝ ∈ ∅

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s✝ t s : Set α
x✝ : β
⊢ x✝ ∈ Sum.inr ⁻¹' (Sum.inl '' s) ↔ x✝ ∈ ∅
state_after: no goals
Theorem: DistribMulActionHom.id_comp
File: Mathlib/GroupTheory/GroupAction/Hom.lean

tactic: rw [comp_apply, id_apply]
state_before: M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f : A →ₑ+[φ] B
x : A
⊢ ((DistribMulActionHom.id N).comp f) x = f x
state_after: no goals
Theorem: Complex.cpow_inv_two_re
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← ofReal_ofNat, ← ofReal_inv, cpow_ofReal_re, ← div_eq_mul_inv, ← one_div,
  ← Real.sqrt_eq_rpow, cos_half, ← sqrt_mul, ← mul_div_assoc, mul_add, mul_one, abs_mul_cos_arg]
state_before: x : ℂ
⊢ (x ^ 2⁻¹).re = √((abs x + x.re) / 2)
state_after: case hx
x : ℂ
⊢ 0 ≤ abs x

case hl
x : ℂ
⊢ -π ≤ x.arg

case hr
x : ℂ
⊢ x.arg ≤ π

tactic: exacts [abs.nonneg _, (neg_pi_lt_arg _).le, arg_le_pi _]
state_before: case hx
x : ℂ
⊢ 0 ≤ abs x

case hl
x : ℂ
⊢ -π ≤ x.arg

case hr
x : ℂ
⊢ x.arg ≤ π
state_after: no goals
Theorem: Fin.sub_one_lt_iff
File: Mathlib/Algebra/Group/Fin.lean

tactic: simp only [lt_def, not_lt, val_fin_le, le_sub_one_iff, le_zero_iff]
state_before: m n : ℕ
k : Fin (n + 1)
⊢ ¬k - 1 < k ↔ ¬0 < k
state_after: no goals
Theorem: isClosed_iUnion_of_finite
File: Mathlib/Topology/Basic.lean

tactic: simp only [← isOpen_compl_iff, compl_iUnion] at *
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s✝ s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
inst✝ : Finite ι
s : ι → Set X
h : ∀ (i : ι), IsClosed (s i)
⊢ IsClosed (⋃ i, s i)
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s✝ s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
inst✝ : Finite ι
s : ι → Set X
h : ∀ (i : ι), IsOpen (s i)ᶜ
⊢ IsOpen (⋂ i, (s i)ᶜ)

tactic: exact isOpen_iInter_of_finite h
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s✝ s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝¹ : TopologicalSpace X
inst✝ : Finite ι
s : ι → Set X
h : ∀ (i : ι), IsOpen (s i)ᶜ
⊢ IsOpen (⋂ i, (s i)ᶜ)
state_after: no goals
Theorem: CategoryTheory.Iso.unop_hom_inv_id_app
File: Mathlib/CategoryTheory/Opposites.lean

tactic: rw [← unop_comp, inv_hom_id_app, unop_id]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X✝ Y : C
D : Type u_1
inst✝ : Category.{u_2, u_1} D
F G : C ⥤ Dᵒᵖ
e : F ≅ G
X : C
⊢ (e.hom.app X).unop ≫ (e.inv.app X).unop = 𝟙 (G.obj X).unop
state_after: no goals
Theorem: MeasurableSpace.empty_mem_generateMeasurableRec
File: Mathlib/MeasureTheory/MeasurableSpace/Card.lean

tactic: unfold generateMeasurableRec
state_before: α : Type u
s : Set (Set α)
i : (Quotient.out (aleph 1).ord).α
⊢ ∅ ∈ generateMeasurableRec s i
state_after: α : Type u
s : Set (Set α)
i : (Quotient.out (aleph 1).ord).α
⊢ ∅ ∈
    let i := i;
    let S := ⋃ j, generateMeasurableRec s ↑j;
    s ∪ {∅} ∪ compl '' S ∪ range fun f => ⋃ n, ↑(f n)

tactic: exact mem_union_left _ (mem_union_left _ (mem_union_right _ (mem_singleton ∅)))
state_before: α : Type u
s : Set (Set α)
i : (Quotient.out (aleph 1).ord).α
⊢ ∅ ∈
    let i := i;
    let S := ⋃ j, generateMeasurableRec s ↑j;
    s ∪ {∅} ∪ compl '' S ∪ range fun f => ⋃ n, ↑(f n)
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.polynomialY_eq
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: rw [polynomialY, polynomial]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
⊢ W'.polynomialY = C 2 * X y + C W'.a₁ * X x * X z + C W'.a₃ * X z ^ 3
state_after: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
⊢ (pderiv y)
      (X y ^ 2 + C W'.a₁ * X x * X y * X z + C W'.a₃ * X y * X z ^ 3 -
        (X x ^ 3 + C W'.a₂ * X x ^ 2 * X z ^ 2 + C W'.a₄ * X x * X z ^ 4 + C W'.a₆ * X z ^ 6)) =
    C 2 * X y + C W'.a₁ * X x * X z + C W'.a₃ * X z ^ 3

tactic: pderiv_simp
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
⊢ (pderiv y)
      (X y ^ 2 + C W'.a₁ * X x * X y * X z + C W'.a₃ * X y * X z ^ 3 -
        (X x ^ 3 + C W'.a₂ * X x ^ 2 * X z ^ 2 + C W'.a₄ * X x * X z ^ 4 + C W'.a₆ * X z ^ 6)) =
    C 2 * X y + C W'.a₁ * X x * X z + C W'.a₃ * X z ^ 3
state_after: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
⊢ ↑2 * X y ^ (2 - 1) * 1 + (((0 * X x + C W'.a₁ * 0) * X y + C W'.a₁ * X x * 1) * X z + C W'.a₁ * X x * X y * 0) +
        ((0 * X y + C W'.a₃ * 1) * X z ^ 3 + C W'.a₃ * X y * (↑3 * X z ^ (3 - 1) * 0)) -
      (↑3 * X x ^ (3 - 1) * 0 +
            ((0 * X x ^ 2 + C W'.a₂ * (↑2 * X x ^ (2 - 1) * 0)) * X z ^ 2 +
              C W'.a₂ * X x ^ 2 * (↑2 * X z ^ (2 - 1) * 0)) +
          ((0 * X x + C W'.a₄ * 0) * X z ^ 4 + C W'.a₄ * X x * (↑4 * X z ^ (4 - 1) * 0)) +
        (0 * X z ^ 6 + C W'.a₆ * (↑6 * X z ^ (6 - 1) * 0))) =
    2 * X y + C W'.a₁ * X x * X z + C W'.a₃ * X z ^ 3

tactic: ring1
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
⊢ ↑2 * X y ^ (2 - 1) * 1 + (((0 * X x + C W'.a₁ * 0) * X y + C W'.a₁ * X x * 1) * X z + C W'.a₁ * X x * X y * 0) +
        ((0 * X y + C W'.a₃ * 1) * X z ^ 3 + C W'.a₃ * X y * (↑3 * X z ^ (3 - 1) * 0)) -
      (↑3 * X x ^ (3 - 1) * 0 +
            ((0 * X x ^ 2 + C W'.a₂ * (↑2 * X x ^ (2 - 1) * 0)) * X z ^ 2 +
              C W'.a₂ * X x ^ 2 * (↑2 * X z ^ (2 - 1) * 0)) +
          ((0 * X x + C W'.a₄ * 0) * X z ^ 4 + C W'.a₄ * X x * (↑4 * X z ^ (4 - 1) * 0)) +
        (0 * X z ^ 6 + C W'.a₆ * (↑6 * X z ^ (6 - 1) * 0))) =
    2 * X y + C W'.a₁ * X x * X z + C W'.a₃ * X z ^ 3
state_after: no goals
Theorem: Function.Injective.injective_linearMapComp_left
File: Mathlib/Algebra/Module/LinearMap/Defs.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : Semiring R₁
inst✝⁶ : Semiring R₂
inst✝⁵ : Semiring R₃
inst✝⁴ : AddCommMonoid M
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : AddCommMonoid M₃
module_M₁ : Module R₁ M₁
module_M₂ : Module R₂ M₂
module_M₃ : Module R₃ M₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
f : M₂ →ₛₗ[σ₂₃] M₃
g : M₁ →ₛₗ[σ₁₂] M₂
f' : M₂ →ₛₗ[σ₂₃] M₃
g' : M₁ →ₛₗ[σ₁₂] M₂
hf : Injective ⇑f
g₁ g₂ : M₁ →ₛₗ[σ₁₂] M₂
h : f.comp g₁ = f.comp g₂
x : M₁
⊢ f (g₁ x) = f (g₂ x)
state_after: no goals