1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: UpperHalfPlane.ModularGroup.im_smul_eq_div_normSq
File: Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean

tactic: convert im_smul_eq_div_normSq g z
state_before: g : SL(2, ℤ)
z : ℍ
Γ : Subgroup SL(2, ℤ)
⊢ (g • z).im = z.im / Complex.normSq (denom (↑g) z)
state_after: case h.e'_3.h.e'_5
g : SL(2, ℤ)
z : ℍ
Γ : Subgroup SL(2, ℤ)
⊢ z.im = (↑↑↑g).det * z.im

tactic: simp only [GeneralLinearGroup.val_det_apply, coe_GLPos_coe_GL_coe_matrix,
  Int.coe_castRingHom, (g : SL(2, ℝ)).prop, one_mul, coe']
state_before: case h.e'_3.h.e'_5
g : SL(2, ℤ)
z : ℍ
Γ : Subgroup SL(2, ℤ)
⊢ z.im = (↑↑↑g).det * z.im
state_after: no goals
Theorem: Nat.card_fintypeIio
File: Mathlib/Order/Interval/Finset/Nat.lean

tactic: rw [Fintype.card_ofFinset, card_Iio]
state_before: a b c : ℕ
⊢ Fintype.card ↑(Set.Iio b) = b
state_after: no goals
Theorem: Int.fract_nat_add
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [add_comm, fract_add_nat]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ : α
n : ℕ
a : α
⊢ fract (↑n + a) = fract a
state_after: no goals
Theorem: contravariant_flip_iff
File: Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean

tactic: rw [IsSymmOp.flip_eq]
state_before: M : Type u_1
N : Type u_2
μ : M → N → N
r : N → N → Prop
mu : N → N → N
inst✝ : IsSymmOp N N mu
⊢ Contravariant N N (flip mu) r ↔ Contravariant N N mu r
state_after: no goals
Theorem: uniqueDiffWithinAt_of_mem_nhds
File: Mathlib/Analysis/Calculus/TangentCone.lean

tactic: simpa only [univ_inter] using uniqueDiffWithinAt_univ.inter h
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
x y : E
s t : Set E
h : s ∈ 𝓝 x
⊢ UniqueDiffWithinAt 𝕜 s x
state_after: no goals
Theorem: inv_antitoneOn_Ioi
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: convert sub_inv_antitoneOn_Ioi
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
⊢ AntitoneOn (fun x => x⁻¹) (Set.Ioi 0)
state_after: case h.e'_5.h.h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
x✝ : α
⊢ x✝ = x✝ - 0

tactic: exact (sub_zero _).symm
state_before: case h.e'_5.h.h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
x✝ : α
⊢ x✝ = x✝ - 0
state_after: no goals
Theorem: Submodule.range_mkQ
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: rintro ⟨x⟩
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
⊢ ∀ (x : M ⧸ p), x ∈ range p.mkQ
state_after: case mk
R : Type u_1
M : Type u_2
r : R
x✝¹ y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
x✝ : M ⧸ p
x : M
⊢ Quot.mk Setoid.r x ∈ range p.mkQ

tactic: exact ⟨x, rfl⟩
state_before: case mk
R : Type u_1
M : Type u_2
r : R
x✝¹ y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
x✝ : M ⧸ p
x : M
⊢ Quot.mk Setoid.r x ∈ range p.mkQ
state_after: no goals
Theorem: AddAction.stabilizer_vadd_eq_stabilizer_map_conj
File: Mathlib/GroupTheory/GroupAction/Basic.lean

tactic: ext h
state_before: G : Type u_1
α : Type u_2
inst✝¹ : AddGroup G
inst✝ : AddAction G α
g : G
a : α
⊢ stabilizer G (g +ᵥ a) = AddSubgroup.map (AddEquiv.toAddMonoidHom (AddAut.conj g)) (stabilizer G a)
state_after: case h
G : Type u_1
α : Type u_2
inst✝¹ : AddGroup G
inst✝ : AddAction G α
g : G
a : α
h : G
⊢ h ∈ stabilizer G (g +ᵥ a) ↔ h ∈ AddSubgroup.map (AddEquiv.toAddMonoidHom (AddAut.conj g)) (stabilizer G a)

tactic: rw [mem_stabilizer_iff, ← vadd_left_cancel_iff (-g), vadd_vadd, vadd_vadd, vadd_vadd,
  add_left_neg, zero_vadd, ← mem_stabilizer_iff, AddSubgroup.mem_map_equiv,
  AddAut.conj_symm_apply]
state_before: case h
G : Type u_1
α : Type u_2
inst✝¹ : AddGroup G
inst✝ : AddAction G α
g : G
a : α
h : G
⊢ h ∈ stabilizer G (g +ᵥ a) ↔ h ∈ AddSubgroup.map (AddEquiv.toAddMonoidHom (AddAut.conj g)) (stabilizer G a)
state_after: no goals
Theorem: CategoryTheory.Presheaf.IsSheaf.hom
File: Mathlib/CategoryTheory/Sites/SheafHom.lean

tactic: rw [isSheaf_iff_isSheaf_of_type]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F G : Cᵒᵖ ⥤ A
hG : IsSheaf J G
⊢ IsSheaf J (presheafHom F G)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F G : Cᵒᵖ ⥤ A
hG : IsSheaf J G
⊢ Presieve.IsSheaf J (presheafHom F G)

tactic: intro X S hS
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F G : Cᵒᵖ ⥤ A
hG : IsSheaf J G
⊢ Presieve.IsSheaf J (presheafHom F G)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F G : Cᵒᵖ ⥤ A
hG : IsSheaf J G
X : C
S : Sieve X
hS : S ∈ J.sieves X
⊢ Presieve.IsSheafFor (presheafHom F G) S.arrows

tactic: exact presheafHom_isSheafFor F G S
  (fun _ _ => ((Presheaf.isSheaf_iff_isLimit J G).1 hG _ (J.pullback_stable _ hS)).some)
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
F G : Cᵒᵖ ⥤ A
hG : IsSheaf J G
X : C
S : Sieve X
hS : S ∈ J.sieves X
⊢ Presieve.IsSheafFor (presheafHom F G) S.arrows
state_after: no goals
Theorem: Set.unbounded_le_iff
File: Mathlib/Order/Bounded.lean

tactic: simp only [Unbounded, not_le]
state_before: α : Type u_1
r : α → α → Prop
s t : Set α
inst✝ : LinearOrder α
⊢ Unbounded (fun x x_1 => x ≤ x_1) s ↔ ∀ (a : α), ∃ b ∈ s, a < b
state_after: no goals
Theorem: segment_eq_image₂
File: Mathlib/Analysis/Convex/Segment.lean

tactic: simp only [segment, image, Prod.exists, mem_setOf_eq, exists_prop, and_assoc]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : SMul 𝕜 E
s : Set E
x✝ y✝ x y : E
⊢ [x-[𝕜]y] = (fun p => p.1 • x + p.2 • y) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
state_after: no goals
Theorem: FormalMultilinearSeries.removeZero_applyComposition
File: Mathlib/Analysis/Analytic/Composition.lean

tactic: ext v i
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹⁵ : CommRing 𝕜
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : AddCommGroup F
inst✝¹² : AddCommGroup G
inst✝¹¹ : Module 𝕜 E
inst✝¹⁰ : Module 𝕜 F
inst✝⁹ : Module 𝕜 G
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalAddGroup E
inst✝⁴ : ContinuousConstSMul 𝕜 E
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousConstSMul 𝕜 F
inst✝¹ : TopologicalAddGroup G
inst✝ : ContinuousConstSMul 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
c : Composition n
⊢ p.removeZero.applyComposition c = p.applyComposition c
state_after: case h.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹⁵ : CommRing 𝕜
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : AddCommGroup F
inst✝¹² : AddCommGroup G
inst✝¹¹ : Module 𝕜 E
inst✝¹⁰ : Module 𝕜 F
inst✝⁹ : Module 𝕜 G
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalAddGroup E
inst✝⁴ : ContinuousConstSMul 𝕜 E
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousConstSMul 𝕜 F
inst✝¹ : TopologicalAddGroup G
inst✝ : ContinuousConstSMul 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
c : Composition n
v : Fin n → E
i : Fin c.length
⊢ p.removeZero.applyComposition c v i = p.applyComposition c v i

tactic: simp [applyComposition, zero_lt_one.trans_le (c.one_le_blocksFun i), removeZero_of_pos]
state_before: case h.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹⁵ : CommRing 𝕜
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : AddCommGroup F
inst✝¹² : AddCommGroup G
inst✝¹¹ : Module 𝕜 E
inst✝¹⁰ : Module 𝕜 F
inst✝⁹ : Module 𝕜 G
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalAddGroup E
inst✝⁴ : ContinuousConstSMul 𝕜 E
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousConstSMul 𝕜 F
inst✝¹ : TopologicalAddGroup G
inst✝ : ContinuousConstSMul 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
c : Composition n
v : Fin n → E
i : Fin c.length
⊢ p.removeZero.applyComposition c v i = p.applyComposition c v i
state_after: no goals
Theorem: CochainComplex.mappingCone.cocycleOfDegreewiseSplit_triangleRotateShortComplexSplitting_v
File: Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean

tactic: simp [cocycleOfDegreewiseSplit, d_snd_v φ p (p + 1) rfl]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
S : ShortComplex (CochainComplex C ℤ)
σ : (n : ℤ) → (S.map (eval C (ComplexShape.up ℤ) n)).Splitting
inst✝ : HasBinaryBiproducts C
K L : CochainComplex C ℤ
φ : K ⟶ L
p : ℤ
⊢ (↑(cocycleOfDegreewiseSplit (triangleRotateShortComplex φ) (triangleRotateShortComplexSplitting φ))).v p (p + 1) ⋯ =
    -φ.f (p + { as := 1 }.as)
state_after: no goals
Theorem: Filter.liminf_compl
File: Mathlib/Order/LiminfLimsup.lean

tactic: simp only [limsup_eq_iInf_iSup, compl_iInf, compl_iSup, liminf_eq_iSup_iInf, Function.comp_apply]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteBooleanAlgebra α
f : Filter β
u : β → α
⊢ (liminf u f)ᶜ = limsup (compl ∘ u) f
state_after: no goals
Theorem: RingQuot.add_quot
File: Mathlib/Algebra/RingQuot.lean

tactic: show add r _ _ = _
state_before: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b : R
⊢ { toQuot := Quot.mk (Rel r) a } + { toQuot := Quot.mk (Rel r) b } = { toQuot := Quot.mk (Rel r) (a + b) }
state_after: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b : R
⊢ RingQuot.add r { toQuot := Quot.mk (Rel r) a } { toQuot := Quot.mk (Rel r) b } = { toQuot := Quot.mk (Rel r) (a + b) }

tactic: rw [add_def]
state_before: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b : R
⊢ RingQuot.add r { toQuot := Quot.mk (Rel r) a } { toQuot := Quot.mk (Rel r) b } = { toQuot := Quot.mk (Rel r) (a + b) }
state_after: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b : R
⊢ (match { toQuot := Quot.mk (Rel r) a }, { toQuot := Quot.mk (Rel r) b } with
    | { toQuot := a }, { toQuot := b } => { toQuot := Quot.map₂ (fun x x_1 => x + x_1) ⋯ ⋯ a b }) =
    { toQuot := Quot.mk (Rel r) (a + b) }

tactic: rfl
state_before: R : Type uR
inst✝³ : Semiring R
S : Type uS
inst✝² : CommSemiring S
T : Type uT
A : Type uA
inst✝¹ : Semiring A
inst✝ : Algebra S A
r : R → R → Prop
a b : R
⊢ (match { toQuot := Quot.mk (Rel r) a }, { toQuot := Quot.mk (Rel r) b } with
    | { toQuot := a }, { toQuot := b } => { toQuot := Quot.map₂ (fun x x_1 => x + x_1) ⋯ ⋯ a b }) =
    { toQuot := Quot.mk (Rel r) (a + b) }
state_after: no goals
Theorem: UpperSet.compl_iSup₂
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [UpperSet.compl_iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
s t : UpperSet α
a : α
f : (i : ι) → κ i → UpperSet α
⊢ (⨆ i, ⨆ j, f i j).compl = ⨆ i, ⨆ j, (f i j).compl
state_after: no goals
Theorem: Submodule.map₂_flip
File: Mathlib/Algebra/Module/Submodule/Bilinear.lean

tactic: rw [map₂_eq_span_image2, map₂_eq_span_image2, Set.image2_swap]
state_before: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
q : Submodule R N
⊢ map₂ f.flip q p = map₂ f p q
state_after: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
q : Submodule R N
⊢ span R (image2 (fun a b => (f.flip b) a) ↑p ↑q) = span R (image2 (fun m n => (f m) n) ↑p ↑q)

tactic: rfl
state_before: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
q : Submodule R N
⊢ span R (image2 (fun a b => (f.flip b) a) ↑p ↑q) = span R (image2 (fun m n => (f m) n) ↑p ↑q)
state_after: no goals
Theorem: LieSubmodule.iSup_coe_toSubmodule
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [iSup, sSup_coe_toSubmodule]
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
p : ι → LieSubmodule R L M
⊢ ↑(⨆ i, p i) = ⨆ i, ↑(p i)
state_after: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
p : ι → LieSubmodule R L M
⊢ sSup {x | ∃ s ∈ range fun i => p i, ↑s = x} = ⨆ i, ↑(p i)

tactic: ext
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
p : ι → LieSubmodule R L M
⊢ sSup {x | ∃ s ∈ range fun i => p i, ↑s = x} = ⨆ i, ↑(p i)
state_after: case h
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
p : ι → LieSubmodule R L M
x✝ : M
⊢ x✝ ∈ sSup {x | ∃ s ∈ range fun i => p i, ↑s = x} ↔ x✝ ∈ ⨆ i, ↑(p i)

tactic: simp [Submodule.mem_sSup, Submodule.mem_iSup]
state_before: case h
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
ι : Sort u_1
p : ι → LieSubmodule R L M
x✝ : M
⊢ x✝ ∈ sSup {x | ∃ s ∈ range fun i => p i, ↑s = x} ↔ x✝ ∈ ⨆ i, ↑(p i)
state_after: no goals
Theorem: IsIdempotentElem.pow_succ_eq
File: Mathlib/Algebra/Ring/Idempotents.lean

tactic: rw [pow_succ, ih, h.eq]
state_before: M : Type u_1
N : Type u_2
S : Type u_3
M₀ : Type u_4
M₁ : Type u_5
R : Type u_6
G : Type u_7
G₀ : Type u_8
inst✝⁷ : Mul M
inst✝⁶ : Monoid N
inst✝⁵ : Semigroup S
inst✝⁴ : MulZeroClass M₀
inst✝³ : MulOneClass M₁
inst✝² : NonAssocRing R
inst✝¹ : Group G
inst✝ : CancelMonoidWithZero G₀
p : N
n✝ : ℕ
h : IsIdempotentElem p
n : ℕ
ih : p ^ (n + 1) = p
⊢ p ^ (n.succ + 1) = p
state_after: no goals
Theorem: toIocMod_apply_right
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIocMod_eq_iff hp, Set.right_mem_Ioc]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b c : α
n : ℤ
a : α
⊢ toIocMod hp a (a + p) = a + p
state_after: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b c : α
n : ℤ
a : α
⊢ a < a + p ∧ ∃ z, a + p = a + p + z • p

tactic: exact ⟨lt_add_of_pos_right _ hp, 0, by simp⟩
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b c : α
n : ℤ
a : α
⊢ a < a + p ∧ ∃ z, a + p = a + p + z • p
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b c : α
n : ℤ
a : α
⊢ a + p = a + p + 0 • p
state_after: no goals
Theorem: Order.succ_le_succ_iff_of_not_isMax
File: Mathlib/Order/SuccPred/Basic.lean

tactic: rw [succ_le_iff_of_not_isMax ha, lt_succ_iff_of_not_isMax hb]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : SuccOrder α
a b : α
ha : ¬IsMax a
hb : ¬IsMax b
⊢ succ a ≤ succ b ↔ a ≤ b
state_after: no goals
Theorem: Partrec.none
File: Mathlib/Computability/Partrec.lean

tactic: cases decode (α := α) n <;> simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
⊢ Part.none = (↑(decode n)).bind fun a => map encode ((fun x => Part.none) a)
state_after: no goals
Theorem: InnerProductGeometry.inner_eq_zero_iff_angle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

tactic: simp (config := { contextual := true }) [angle, or_imp]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y : V
⊢ angle x y = π / 2 ↔ ⟪x, y⟫_ℝ = 0
state_after: no goals
Theorem: EReal.abs_zero
File: Mathlib/Data/Real/EReal.lean

tactic: rw [abs_eq_zero_iff]
state_before: ⊢ EReal.abs 0 = 0
state_after: no goals
Theorem: List.length_replaceF
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: induction l <;> simp [replaceF]
state_before: α✝ : Type u_1
f : α✝ → Option α✝
l : List α✝
⊢ (replaceF f l).length = l.length
state_after: case cons
α✝ : Type u_1
f : α✝ → Option α✝
head✝ : α✝
tail✝ : List α✝
tail_ih✝ : (replaceF f tail✝).length = tail✝.length
⊢ (match f head✝ with
      | none => head✝ :: replaceF f tail✝
      | some a => a :: tail✝).length =
    tail✝.length + 1

tactic: split <;> simp [*]
state_before: case cons
α✝ : Type u_1
f : α✝ → Option α✝
head✝ : α✝
tail✝ : List α✝
tail_ih✝ : (replaceF f tail✝).length = tail✝.length
⊢ (match f head✝ with
      | none => head✝ :: replaceF f tail✝
      | some a => a :: tail✝).length =
    tail✝.length + 1
state_after: no goals
Theorem: Algebra.norm_eq_matrix_det
File: Mathlib/RingTheory/Norm.lean

tactic: rw [norm_apply, ← LinearMap.det_toMatrix b, ← toMatrix_lmul_eq]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Field F
inst✝³ : Algebra K L
inst✝² : Algebra K F
ι : Type w
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι R S
s : S
⊢ (norm R) s = ((leftMulMatrix b) s).det
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Field F
inst✝³ : Algebra K L
inst✝² : Algebra K F
ι : Type w
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι R S
s : S
⊢ ((toMatrix b b) ((lmul R S) s)).det = ((toMatrix b b) (mulLeft R s)).det

tactic: rfl
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : Ring S
inst✝⁷ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Field F
inst✝³ : Algebra K L
inst✝² : Algebra K F
ι : Type w
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
b : Basis ι R S
s : S
⊢ ((toMatrix b b) ((lmul R S) s)).det = ((toMatrix b b) (mulLeft R s)).det
state_after: no goals
Theorem: SetTheory.PGame.le_def
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [le_iff_forall_lf]
state_before: xl xr : Type u
x y : PGame
⊢ x ≤ y ↔
    (∀ (i : x.LeftMoves), (∃ i', x.moveLeft i ≤ y.moveLeft i') ∨ ∃ j, (x.moveLeft i).moveRight j ≤ y) ∧
      ∀ (j : y.RightMoves), (∃ i, x ≤ (y.moveRight j).moveLeft i) ∨ ∃ j', x.moveRight j' ≤ y.moveRight j
state_after: xl xr : Type u
x y : PGame
⊢ ((∀ (i : x.LeftMoves), x.moveLeft i ⧏ y) ∧ ∀ (j : y.RightMoves), x ⧏ y.moveRight j) ↔
    (∀ (i : x.LeftMoves), (∃ i', x.moveLeft i ≤ y.moveLeft i') ∨ ∃ j, (x.moveLeft i).moveRight j ≤ y) ∧
      ∀ (j : y.RightMoves), (∃ i, x ≤ (y.moveRight j).moveLeft i) ∨ ∃ j', x.moveRight j' ≤ y.moveRight j

tactic: conv =>
  lhs
  simp only [lf_iff_exists_le]
state_before: xl xr : Type u
x y : PGame
⊢ ((∀ (i : x.LeftMoves), x.moveLeft i ⧏ y) ∧ ∀ (j : y.RightMoves), x ⧏ y.moveRight j) ↔
    (∀ (i : x.LeftMoves), (∃ i', x.moveLeft i ≤ y.moveLeft i') ∨ ∃ j, (x.moveLeft i).moveRight j ≤ y) ∧
      ∀ (j : y.RightMoves), (∃ i, x ≤ (y.moveRight j).moveLeft i) ∨ ∃ j', x.moveRight j' ≤ y.moveRight j
state_after: no goals
Theorem: MeasureTheory.Measure.condKernel_apply
File: Mathlib/Probability/Kernel/Disintegration/Basic.lean

tactic: rw [Measure.condKernel]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
ρ✝ : Measure (α × Ω)
inst✝¹ : IsFiniteMeasure ρ✝
ρ : Measure (α × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
⊢ ρ.condKernel a = (condKernelUnitBorel (const Unit ρ)) ((), a)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
ρ✝ : Measure (α × Ω)
inst✝¹ : IsFiniteMeasure ρ✝
ρ : Measure (α × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
⊢ (comap (condKernelUnitBorel (const Unit ρ)) (fun a => ((), a)) ⋯) a = (condKernelUnitBorel (const Unit ρ)) ((), a)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
Ω : Type u_4
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝⁵ : CountablyGenerated γ
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
ρ✝ : Measure (α × Ω)
inst✝¹ : IsFiniteMeasure ρ✝
ρ : Measure (α × Ω)
inst✝ : IsFiniteMeasure ρ
a : α
⊢ (comap (condKernelUnitBorel (const Unit ρ)) (fun a => ((), a)) ⋯) a = (condKernelUnitBorel (const Unit ρ)) ((), a)
state_after: no goals
Theorem: Function.IsPeriodicPt.const_mul
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: simp only [mul_comm n, hm.mul_const n]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n✝ : ℕ
hm : IsPeriodicPt f m x
n : ℕ
⊢ IsPeriodicPt f (n * m) x
state_after: no goals
Theorem: Polynomial.one_comp
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [← C_1, C_comp]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ comp 1 p = 1
state_after: no goals
Theorem: BoxIntegral.HasIntegral.of_le_Henstock_of_forall_isLittleO
File: Mathlib/Analysis/BoxIntegral/Basic.lean

tactic: simpa only [A, true_imp_iff] using H₂
state_before: ι : Type u
E : Type v
F : Type w
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
I J : Box ι
π : TaggedPrepartition I
inst✝ : Fintype ι
l : IntegrationParams
f g✝ : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
y y' : F
hl : l ≤ Henstock
B : ι →ᵇᵃ[↑I] ℝ
hB0 : ∀ (J : Box ι), 0 ≤ B J
g : ι →ᵇᵃ[↑I] F
s : Set (ι → ℝ)
hs : s.Countable
H₁ :
  ∀ (c : ℝ≥0),
    ∀ x ∈ Box.Icc I ∩ s,
      ∀ ε > 0,
        ∃ δ > 0,
          ∀ J ≤ I,
            Box.Icc J ⊆ closedBall x δ →
              x ∈ Box.Icc J → (l.bDistortion = true → J.distortion ≤ c) → dist ((vol J) (f x)) (g J) ≤ ε
H₂ :
  ∀ (c : ℝ≥0),
    ∀ x ∈ Box.Icc I \ s,
      ∀ ε > 0,
        ∃ δ > 0,
          ∀ J ≤ I,
            Box.Icc J ⊆ closedBall x δ →
              x ∈ Box.Icc J → (l.bDistortion = true → J.distortion ≤ c) → dist ((vol J) (f x)) (g J) ≤ ε * B J
A : l.bHenstock = true
⊢ ∀ (c : ℝ≥0),
    ∀ x ∈ Box.Icc I \ s,
      ∀ ε > 0,
        ∃ δ > 0,
          ∀ J ≤ I,
            Box.Icc J ⊆ closedBall x δ →
              (l.bHenstock = true → x ∈ Box.Icc J) →
                (l.bDistortion = true → J.distortion ≤ c) → dist ((vol J) (f x)) (g J) ≤ ε * B J
state_after: no goals