1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Sigma.lt_def
File: Mathlib/Data/Sigma/Order.lean

tactic: constructor
state_before: ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ a < b ↔ ∃ h, h ▸ a.snd < b.snd
state_after: case mp
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ a < b → ∃ h, h ▸ a.snd < b.snd

case mpr
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ (∃ h, h ▸ a.snd < b.snd) → a < b

tactic: rintro ⟨i, a, b, h⟩
state_before: case mp
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ a < b → ∃ h, h ▸ a.snd < b.snd
state_after: case mp.fiber
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
i : ι
a b : α i
h : a < b
⊢ ∃ h, h ▸ ⟨i, a⟩.snd < ⟨i, b⟩.snd

tactic: exact ⟨rfl, h⟩
state_before: case mp.fiber
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
i : ι
a b : α i
h : a < b
⊢ ∃ h, h ▸ ⟨i, a⟩.snd < ⟨i, b⟩.snd
state_after: no goals

tactic: obtain ⟨i, a⟩ := a
state_before: case mpr
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
a b : (i : ι) × α i
⊢ (∃ h, h ▸ a.snd < b.snd) → a < b
state_after: case mpr.mk
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
b : (i : ι) × α i
i : ι
a : α i
⊢ (∃ h, h ▸ ⟨i, a⟩.snd < b.snd) → ⟨i, a⟩ < b

tactic: obtain ⟨j, b⟩ := b
state_before: case mpr.mk
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
b : (i : ι) × α i
i : ι
a : α i
⊢ (∃ h, h ▸ ⟨i, a⟩.snd < b.snd) → ⟨i, a⟩ < b
state_after: case mpr.mk.mk
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
i : ι
a : α i
j : ι
b : α j
⊢ (∃ h, h ▸ ⟨i, a⟩.snd < ⟨j, b⟩.snd) → ⟨i, a⟩ < ⟨j, b⟩

tactic: rintro ⟨rfl : i = j, h⟩
state_before: case mpr.mk.mk
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
i : ι
a : α i
j : ι
b : α j
⊢ (∃ h, h ▸ ⟨i, a⟩.snd < ⟨j, b⟩.snd) → ⟨i, a⟩ < ⟨j, b⟩
state_after: case mpr.mk.mk.intro
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
i : ι
a b : α i
h : ⋯ ▸ ⟨i, a⟩.snd < ⟨i, b⟩.snd
⊢ ⟨i, a⟩ < ⟨i, b⟩

tactic: exact lt.fiber _ _ _ h
state_before: case mpr.mk.mk.intro
ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → LT (α i)
i : ι
a b : α i
h : ⋯ ▸ ⟨i, a⟩.snd < ⟨i, b⟩.snd
⊢ ⟨i, a⟩ < ⟨i, b⟩
state_after: no goals
Theorem: MeasureTheory.Measure.map_apply₀
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [map, dif_pos hf, mapₗ, dif_pos hf.measurable_mk] at hs ⊢
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
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
hs : NullMeasurableSet s (map f μ)
⊢ (map f μ) s = μ (f ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
hs : NullMeasurableSet s ((liftLinear (OuterMeasure.map (AEMeasurable.mk f hf)) ⋯) μ)
⊢ ((liftLinear (OuterMeasure.map (AEMeasurable.mk f hf)) ⋯) μ) s = μ (f ⁻¹' s)

tactic: rw [liftLinear_apply₀ _ hs, measure_congr (hf.ae_eq_mk.preimage s)]
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
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
hs : NullMeasurableSet s ((liftLinear (OuterMeasure.map (AEMeasurable.mk f hf)) ⋯) μ)
⊢ ((liftLinear (OuterMeasure.map (AEMeasurable.mk f hf)) ⋯) μ) s = μ (f ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
hs : NullMeasurableSet s ((liftLinear (OuterMeasure.map (AEMeasurable.mk f hf)) ⋯) μ)
⊢ ((OuterMeasure.map (AEMeasurable.mk f hf)) μ.toOuterMeasure) s = μ (AEMeasurable.mk f hf ⁻¹' s)

tactic: rfl
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
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
hs : NullMeasurableSet s ((liftLinear (OuterMeasure.map (AEMeasurable.mk f hf)) ⋯) μ)
⊢ ((OuterMeasure.map (AEMeasurable.mk f hf)) μ.toOuterMeasure) s = μ (AEMeasurable.mk f hf ⁻¹' s)
state_after: no goals
Theorem: SimpleGraph.edge_self_eq_bot
File: Mathlib/Combinatorics/SimpleGraph/Operations.lean

tactic: ext
state_before: V : Type u_1
inst✝ : DecidableEq V
G : SimpleGraph V
s t : V
⊢ edge s s = ⊥
state_after: case Adj.h.h.a
V : Type u_1
inst✝ : DecidableEq V
G : SimpleGraph V
s t x✝¹ x✝ : V
⊢ (edge s s).Adj x✝¹ x✝ ↔ ⊥.Adj x✝¹ x✝

tactic: rw [edge_adj]
state_before: case Adj.h.h.a
V : Type u_1
inst✝ : DecidableEq V
G : SimpleGraph V
s t x✝¹ x✝ : V
⊢ (edge s s).Adj x✝¹ x✝ ↔ ⊥.Adj x✝¹ x✝
state_after: case Adj.h.h.a
V : Type u_1
inst✝ : DecidableEq V
G : SimpleGraph V
s t x✝¹ x✝ : V
⊢ (x✝¹ = s ∧ x✝ = s ∨ x✝¹ = s ∧ x✝ = s) ∧ x✝¹ ≠ x✝ ↔ ⊥.Adj x✝¹ x✝

tactic: aesop
state_before: case Adj.h.h.a
V : Type u_1
inst✝ : DecidableEq V
G : SimpleGraph V
s t x✝¹ x✝ : V
⊢ (x✝¹ = s ∧ x✝ = s ∨ x✝¹ = s ∧ x✝ = s) ∧ x✝¹ ≠ x✝ ↔ ⊥.Adj x✝¹ x✝
state_after: no goals
Theorem: Pell.xn_modEq_x4n_add
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: refine @ModEq.trans _ _ 0 _ ?_ (by rw [add_comm]; exact (xn_modEq_x2n_add _ _ _).symm)
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ xn a1 (4 * n + j) + xn a1 (2 * n + j) ≡ xn a1 j + xn a1 (2 * n + j) [MOD xn a1 n]
state_after: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ xn a1 (4 * n + j) + xn a1 (2 * n + j) ≡ 0 [MOD xn a1 n]

tactic: rw [show 4 * n = 2 * n + 2 * n from right_distrib 2 2 n, add_assoc]
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ xn a1 (4 * n + j) + xn a1 (2 * n + j) ≡ 0 [MOD xn a1 n]
state_after: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ xn a1 (2 * n + (2 * n + j)) + xn a1 (2 * n + j) ≡ 0 [MOD xn a1 n]

tactic: apply xn_modEq_x2n_add
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ xn a1 (2 * n + (2 * n + j)) + xn a1 (2 * n + j) ≡ 0 [MOD xn a1 n]
state_after: no goals

tactic: rw [add_comm]
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ 0 ≡ xn a1 j + xn a1 (2 * n + j) [MOD xn a1 n]
state_after: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ 0 ≡ xn a1 (2 * n + j) + xn a1 j [MOD xn a1 n]

tactic: exact (xn_modEq_x2n_add _ _ _).symm
state_before: a : ℕ
a1 : 1 < a
n j : ℕ
⊢ 0 ≡ xn a1 (2 * n + j) + xn a1 j [MOD xn a1 n]
state_after: no goals
Theorem: LinearMap.ker_eq_bot_of_cancel
File: Mathlib/Algebra/Module/Submodule/Range.lean

tactic: have h₁ : f.comp (0 : ker f →ₗ[R] M) = 0 := comp_zero _
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : AddCommMonoid M₃
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
f : M →ₛₗ[τ₁₂] M₂
h : ∀ (u v : ↥(ker f) →ₗ[R] M), f.comp u = f.comp v → u = v
⊢ ker f = ⊥
state_after: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : AddCommMonoid M₃
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
f : M →ₛₗ[τ₁₂] M₂
h : ∀ (u v : ↥(ker f) →ₗ[R] M), f.comp u = f.comp v → u = v
h₁ : f.comp 0 = 0
⊢ ker f = ⊥

tactic: rw [← Submodule.range_subtype (ker f),
  ← h 0 f.ker.subtype (Eq.trans h₁ (comp_ker_subtype f).symm)]
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : AddCommMonoid M₃
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
f : M →ₛₗ[τ₁₂] M₂
h : ∀ (u v : ↥(ker f) →ₗ[R] M), f.comp u = f.comp v → u = v
h₁ : f.comp 0 = 0
⊢ ker f = ⊥
state_after: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : AddCommMonoid M₃
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
f : M →ₛₗ[τ₁₂] M₂
h : ∀ (u v : ↥(ker f) →ₗ[R] M), f.comp u = f.comp v → u = v
h₁ : f.comp 0 = 0
⊢ range 0 = ⊥

tactic: exact range_zero
state_before: R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
K : Type u_4
K₂ : Type u_5
M : Type u_6
M₂ : Type u_7
M₃ : Type u_8
V : Type u_9
V₂ : Type u_10
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : Semiring R₃
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : AddCommMonoid M₃
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
f : M →ₛₗ[τ₁₂] M₂
h : ∀ (u v : ↥(ker f) →ₗ[R] M), f.comp u = f.comp v → u = v
h₁ : f.comp 0 = 0
⊢ range 0 = ⊥
state_after: no goals
Theorem: Sum.isSome_getRight?_iff_isRight
File: Mathlib/Data/Sum/Basic.lean

tactic: rw [isRight_iff, Option.isSome_iff_exists]
state_before: α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type u_1
δ : Type u_2
x y : α ⊕ β
⊢ x.getRight?.isSome = true ↔ x.isRight = true
state_after: α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type u_1
δ : Type u_2
x y : α ⊕ β
⊢ (∃ a, x.getRight? = some a) ↔ ∃ y, x = inr y

tactic: simp
state_before: α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type u_1
δ : Type u_2
x y : α ⊕ β
⊢ (∃ a, x.getRight? = some a) ↔ ∃ y, x = inr y
state_after: no goals
Theorem: ContinuousMultilinearMap.opNorm_zero
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: simp
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
c : 𝕜
f g : ContinuousMultilinearMap 𝕜 E G
m✝ m : (i : ι) → E i
⊢ ‖0 m‖ ≤ 0 * ∏ i : ι, ‖m i‖
state_after: no goals
Theorem: MulChar.one_mul
File: Mathlib/NumberTheory/MulChar/Basic.lean

tactic: ext
state_before: R : Type u_1
inst✝¹ : CommMonoid R
R' : Type u_2
inst✝ : CommMonoidWithZero R'
χ : MulChar R R'
⊢ 1 * χ = χ
state_after: case h
R : Type u_1
inst✝¹ : CommMonoid R
R' : Type u_2
inst✝ : CommMonoidWithZero R'
χ : MulChar R R'
a✝ : Rˣ
⊢ (1 * χ) ↑a✝ = χ ↑a✝

tactic: simp only [one_mul, Pi.mul_apply, MulChar.coeToFun_mul, MulChar.one_apply_coe]
state_before: case h
R : Type u_1
inst✝¹ : CommMonoid R
R' : Type u_2
inst✝ : CommMonoidWithZero R'
χ : MulChar R R'
a✝ : Rˣ
⊢ (1 * χ) ↑a✝ = χ ↑a✝
state_after: no goals
Theorem: Lagrange.degree_nodal
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: simp_rw [degree_eq_natDegree nodal_ne_zero, natDegree_nodal]
state_before: R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : Nontrivial R
⊢ (nodal s v).degree = ↑s.card
state_after: no goals
Theorem: FractionalIdeal.spanSingleton_pow
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: induction' n with n hn
state_before: R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x : P
n : ℕ
⊢ spanSingleton S x ^ n = spanSingleton S (x ^ n)
state_after: case zero
R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x : P
⊢ spanSingleton S x ^ 0 = spanSingleton S (x ^ 0)

case succ
R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x : P
n : ℕ
hn : spanSingleton S x ^ n = spanSingleton S (x ^ n)
⊢ spanSingleton S x ^ (n + 1) = spanSingleton S (x ^ (n + 1))

tactic: rw [pow_zero, pow_zero, spanSingleton_one]
state_before: case zero
R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x : P
⊢ spanSingleton S x ^ 0 = spanSingleton S (x ^ 0)
state_after: no goals

tactic: rw [pow_succ, hn, spanSingleton_mul_spanSingleton, pow_succ]
state_before: case succ
R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x : P
n : ℕ
hn : spanSingleton S x ^ n = spanSingleton S (x ^ n)
⊢ spanSingleton S x ^ (n + 1) = spanSingleton S (x ^ (n + 1))
state_after: no goals
Theorem: Real.volume_Icc_pi
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: rw [← pi_univ_Icc, volume_pi_pi]
state_before: ι : Type u_1
inst✝ : Fintype ι
a b : ι → ℝ
⊢ volume (Icc a b) = ∏ i : ι, ofReal (b i - a i)
state_after: ι : Type u_1
inst✝ : Fintype ι
a b : ι → ℝ
⊢ ∏ i : ι, volume (Icc (a i) (b i)) = ∏ i : ι, ofReal (b i - a i)

tactic: simp only [Real.volume_Icc]
state_before: ι : Type u_1
inst✝ : Fintype ι
a b : ι → ℝ
⊢ ∏ i : ι, volume (Icc (a i) (b i)) = ∏ i : ι, ofReal (b i - a i)
state_after: no goals
Theorem: Polynomial.map_natDegree_eq_sub
File: Mathlib/Algebra/Polynomial/EraseLead.lean

tactic: simp_all
state_before: R : Type u_1
inst✝³ : Semiring R
f : R[X]
S : Type u_2
F : Type u_3
inst✝² : Semiring S
inst✝¹ : FunLike F R[X] S[X]
inst✝ : AddMonoidHomClass F R[X] S[X]
φ : F
p : R[X]
k : ℕ
φ_k : ∀ (f : R[X]), f.natDegree < k → φ f = 0
φ_mon : ∀ (n : ℕ) (c : R), c ≠ 0 → (φ ((monomial n) c)).natDegree = n - k
⊢ ∀ {n : ℕ}, n ≤ k → (fun j => j - k) n = 0
state_after: no goals
Theorem: HurwitzZeta.cosKernel_def
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: unfold cosKernel
state_before: a x : ℝ
⊢ ↑(cosKernel (↑a) x) = jacobiTheta₂ (↑a) (I * ↑x)
state_after: a x : ℝ
⊢ ↑(⋯.lift ↑a) = jacobiTheta₂ (↑a) (I * ↑x)

tactic: simp only [Function.Periodic.lift_coe, re_eq_add_conj, jacobiTheta₂_conj, conj_ofReal, map_mul,
  conj_I, neg_mul, neg_neg, ← mul_two, mul_div_cancel_right₀ _ (two_ne_zero' ℂ)]
state_before: a x : ℝ
⊢ ↑(⋯.lift ↑a) = jacobiTheta₂ (↑a) (I * ↑x)
state_after: no goals
Theorem: Function.mem_fixedPoints_iff
File: Mathlib/Dynamics/FixedPoints/Basic.lean

tactic: rfl
state_before: α✝ : Type u
β : Type v
f✝ fa g : α✝ → α✝
x✝ y : α✝
fb : β → β
m n k : ℕ
e : Perm α✝
α : Type u_1
f : α → α
x : α
⊢ x ∈ fixedPoints f ↔ f x = x
state_after: no goals
Theorem: Multiset.map_toEnumFinset_fst
File: Mathlib/Data/Multiset/Fintype.lean

tactic: ext x
state_before: α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
⊢ map Prod.fst m.toEnumFinset.val = m
state_after: case a
α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
x : α
⊢ count x (map Prod.fst m.toEnumFinset.val) = count x m

tactic: simp only [Multiset.count_map, ← Finset.filter_val, Multiset.toEnumFinset_filter_eq,
  Finset.map_val, Finset.range_val, Multiset.card_map, Multiset.card_range]
state_before: case a
α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
x : α
⊢ count x (map Prod.fst m.toEnumFinset.val) = count x m
state_after: no goals
Theorem: one_lt_ack_succ_right
File: Mathlib/Computability/Ackermann.lean

tactic: simp
state_before: n : ℕ
⊢ 1 < ack 0 (n + 1)
state_after: no goals

tactic: rw [ack_succ_succ]
state_before: m n : ℕ
⊢ 1 < ack (m + 1) (n + 1)
state_after: m n : ℕ
⊢ 1 < ack m (ack (m + 1) n)

tactic: cases' exists_eq_succ_of_ne_zero (ack_pos (m + 1) n).ne' with h h
state_before: m n : ℕ
⊢ 1 < ack m (ack (m + 1) n)
state_after: case intro
m n h✝ : ℕ
h : ack (m + 1) n = h✝.succ
⊢ 1 < ack m (ack (m + 1) n)

tactic: rw [h]
state_before: case intro
m n h✝ : ℕ
h : ack (m + 1) n = h✝.succ
⊢ 1 < ack m (ack (m + 1) n)
state_after: case intro
m n h✝ : ℕ
h : ack (m + 1) n = h✝.succ
⊢ 1 < ack m h✝.succ

tactic: apply one_lt_ack_succ_right
state_before: case intro
m n h✝ : ℕ
h : ack (m + 1) n = h✝.succ
⊢ 1 < ack m h✝.succ
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_inv_snd
File: Mathlib/AlgebraicGeometry/Pullbacks.lean

tactic: simp_rw [pullbackP1Iso, pullback.lift_snd]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
s : PullbackCone f g
i : 𝒰.J
⊢ (pullbackP1Iso 𝒰 f g i).inv ≫ pullback.snd = pullback.fst
state_after: no goals
Theorem: multiplicity.multiplicity_le_multiplicity_iff
File: Mathlib/RingTheory/Multiplicity.lean

tactic: rw [← PartENat.natCast_get (finite_iff_dom.1 hab)]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
c d : β
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
this : Decidable (Finite a b) := Classical.dec (Finite a b)
hab : Finite a b
⊢ multiplicity a b ≤ multiplicity c d
state_after: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
c d : β
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
this : Decidable (Finite a b) := Classical.dec (Finite a b)
hab : Finite a b
⊢ ↑((multiplicity a b).get ⋯) ≤ multiplicity c d

tactic: exact le_multiplicity_of_pow_dvd (h _ (pow_multiplicity_dvd _))
state_before: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
c d : β
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
this : Decidable (Finite a b) := Classical.dec (Finite a b)
hab : Finite a b
⊢ ↑((multiplicity a b).get ⋯) ≤ multiplicity c d
state_after: no goals

tactic: have : ∀ n : ℕ, c ^ n ∣ d := fun n => h n (not_finite_iff_forall.1 hab _)
state_before: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
c d : β
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
this : Decidable (Finite a b) := Classical.dec (Finite a b)
hab : ¬Finite a b
⊢ multiplicity a b ≤ multiplicity c d
state_after: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
c d : β
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
this✝ : Decidable (Finite a b) := Classical.dec (Finite a b)
hab : ¬Finite a b
this : ∀ (n : ℕ), c ^ n ∣ d
⊢ multiplicity a b ≤ multiplicity c d

tactic: rw [eq_top_iff_not_finite.2 hab, eq_top_iff_not_finite.2 (not_finite_iff_forall.2 this)]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Monoid α
inst✝² : Monoid β
inst✝¹ : DecidableRel fun x x_1 => x ∣ x_1
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
c d : β
h : ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
this✝ : Decidable (Finite a b) := Classical.dec (Finite a b)
hab : ¬Finite a b
this : ∀ (n : ℕ), c ^ n ∣ d
⊢ multiplicity a b ≤ multiplicity c d
state_after: no goals
Theorem: Algebra.TensorProduct.basisAux_map_smul
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: simp
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
C : Type uC
D : Type uD
E : Type uE
F : Type uF
M : Type uM
ι : Type uι
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : Basis ι R M
a : A
x : A ⊗[R] M
⊢ (basisAux A b) (a • 0) = a • (basisAux A b) 0
state_after: no goals

tactic: simp only [TensorProduct.smul_tmul', basisAux_tmul, smul_assoc]
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
C : Type uC
D : Type uD
E : Type uE
F : Type uF
M : Type uM
ι : Type uι
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : Basis ι R M
a : A
x✝ : A ⊗[R] M
x : A
y : M
⊢ (basisAux A b) (a • x ⊗ₜ[R] y) = a • (basisAux A b) (x ⊗ₜ[R] y)
state_after: no goals

tactic: simp [hx, hy]
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
C : Type uC
D : Type uD
E : Type uE
F : Type uF
M : Type uM
ι : Type uι
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
b : Basis ι R M
a : A
x✝ x y : A ⊗[R] M
hx : (basisAux A b) (a • x) = a • (basisAux A b) x
hy : (basisAux A b) (a • y) = a • (basisAux A b) y
⊢ (basisAux A b) (a • (x + y)) = a • (basisAux A b) (x + y)
state_after: no goals
Theorem: stoneCech_hom_ext
File: Mathlib/Topology/StoneCech.lean

tactic: apply h₁.ext_on denseRange_stoneCechUnit h₂
state_before: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
g₁ g₂ : StoneCech α → β
h₁ : Continuous g₁
h₂ : Continuous g₂
h : g₁ ∘ stoneCechUnit = g₂ ∘ stoneCechUnit
⊢ g₁ = g₂
state_after: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
g₁ g₂ : StoneCech α → β
h₁ : Continuous g₁
h₂ : Continuous g₂
h : g₁ ∘ stoneCechUnit = g₂ ∘ stoneCechUnit
⊢ EqOn g₁ g₂ (range stoneCechUnit)

tactic: rintro _ ⟨x, rfl⟩
state_before: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
g₁ g₂ : StoneCech α → β
h₁ : Continuous g₁
h₂ : Continuous g₂
h : g₁ ∘ stoneCechUnit = g₂ ∘ stoneCechUnit
⊢ EqOn g₁ g₂ (range stoneCechUnit)
state_after: case intro
α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
g₁ g₂ : StoneCech α → β
h₁ : Continuous g₁
h₂ : Continuous g₂
h : g₁ ∘ stoneCechUnit = g₂ ∘ stoneCechUnit
x : α
⊢ g₁ (stoneCechUnit x) = g₂ (stoneCechUnit x)

tactic: exact congr_fun h x
state_before: case intro
α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
g₁ g₂ : StoneCech α → β
h₁ : Continuous g₁
h₂ : Continuous g₂
h : g₁ ∘ stoneCechUnit = g₂ ∘ stoneCechUnit
x : α
⊢ g₁ (stoneCechUnit x) = g₂ (stoneCechUnit x)
state_after: no goals