1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: apply f.tendsto_translationNumber_aux.congr_dist (squeeze_zero (fun _ => dist_nonneg) _ _)
state_before: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ Tendsto (fun n => x (2 ^ n) / 2 ^ n) atTop (𝓝 (τ f))
state_after: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ ℕ → ℝ

f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ ∀ (t : ℕ), dist (f.transnumAuxSeq t) (x (2 ^ t) / 2 ^ t) ≤ ?m.118399 t

f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ Tendsto ?m.118399 atTop (𝓝 0)

tactic: exact fun n => C / 2 ^ n
state_before: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ ℕ → ℝ
state_after: no goals

tactic: intro n
state_before: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ ∀ (t : ℕ), dist (f.transnumAuxSeq t) (x (2 ^ t) / 2 ^ t) ≤ C / 2 ^ t
state_after: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
n : ℕ
⊢ dist (f.transnumAuxSeq n) (x (2 ^ n) / 2 ^ n) ≤ C / 2 ^ n

tactic: have : 0 < (2 ^ n : ℝ) := pow_pos zero_lt_two _
state_before: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
n : ℕ
⊢ dist (f.transnumAuxSeq n) (x (2 ^ n) / 2 ^ n) ≤ C / 2 ^ n
state_after: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
n : ℕ
this : 0 < 2 ^ n
⊢ dist (f.transnumAuxSeq n) (x (2 ^ n) / 2 ^ n) ≤ C / 2 ^ n

tactic: convert (div_le_div_right this).2 (H (2 ^ n)) using 1
state_before: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
n : ℕ
this : 0 < 2 ^ n
⊢ dist (f.transnumAuxSeq n) (x (2 ^ n) / 2 ^ n) ≤ C / 2 ^ n
state_after: case h.e'_3
f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
n : ℕ
this : 0 < 2 ^ n
⊢ dist (f.transnumAuxSeq n) (x (2 ^ n) / 2 ^ n) = dist ((f ^ 2 ^ n) 0) (x (2 ^ n)) / 2 ^ n

tactic: rw [transnumAuxSeq, Real.dist_eq, ← sub_div, abs_div, abs_of_pos this, Real.dist_eq]
state_before: case h.e'_3
f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
n : ℕ
this : 0 < 2 ^ n
⊢ dist (f.transnumAuxSeq n) (x (2 ^ n) / 2 ^ n) = dist ((f ^ 2 ^ n) 0) (x (2 ^ n)) / 2 ^ n
state_after: no goals

tactic: exact mul_zero C ▸ tendsto_const_nhds.mul <| tendsto_inv_atTop_zero.comp <|
  tendsto_pow_atTop_atTop_of_one_lt one_lt_two
state_before: f g : CircleDeg1Lift
x : ℕ → ℝ
C : ℝ
H : ∀ (n : ℕ), dist ((f ^ n) 0) (x n) ≤ C
⊢ Tendsto (fun n => C / 2 ^ n) atTop (𝓝 0)
state_after: no goals
Theorem: ExteriorAlgebra.ι_eq_zero_iff
File: Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean

tactic: rw [← ι_inj R x 0, LinearMap.map_zero]
state_before: R : Type u1
inst✝⁴ : CommRing R
M : Type u2
inst✝³ : AddCommGroup M
inst✝² : Module R M
A : Type u_1
inst✝¹ : Semiring A
inst✝ : Algebra R A
x : M
⊢ (ι R) x = 0 ↔ x = 0
state_after: no goals
Theorem: Ordering.orElse_eq_lt
File: Mathlib/Order/Compare.lean

tactic: cases o₁ <;> cases o₂ <;> decide
state_before: α : Type u_1
β : Type u_2
o₁ o₂ : Ordering
⊢ o₁.orElse o₂ = lt ↔ o₁ = lt ∨ o₁ = eq ∧ o₂ = lt
state_after: no goals
Theorem: PiTensorProduct.mul_one
File: Mathlib/RingTheory/PiTensorProduct.lean

tactic: induction x using PiTensorProduct.induction_on with
| smul_tprod => simp
| add _ _ h1 h2 => simp [h1, h2]
state_before: ι : Type u_1
R' : Type u_2
R : Type u_3
A : ι → Type u_4
inst✝⁴ : CommSemiring R
inst✝³ : (i : ι) → NonAssocSemiring (A i)
inst✝² : (i : ι) → Module R (A i)
inst✝¹ : ∀ (i : ι), SMulCommClass R (A i) (A i)
inst✝ : ∀ (i : ι), IsScalarTower R (A i) (A i)
x : ⨂[R] (i : ι), A i
⊢ (mul x) ((tprod R) 1) = x
state_after: no goals

tactic: simp
state_before: case smul_tprod
ι : Type u_1
R' : Type u_2
R : Type u_3
A : ι → Type u_4
inst✝⁴ : CommSemiring R
inst✝³ : (i : ι) → NonAssocSemiring (A i)
inst✝² : (i : ι) → Module R (A i)
inst✝¹ : ∀ (i : ι), SMulCommClass R (A i) (A i)
inst✝ : ∀ (i : ι), IsScalarTower R (A i) (A i)
r✝ : R
f✝ : (i : ι) → A i
⊢ (mul (r✝ • (tprod R) f✝)) ((tprod R) 1) = r✝ • (tprod R) f✝
state_after: no goals

tactic: simp [h1, h2]
state_before: case add
ι : Type u_1
R' : Type u_2
R : Type u_3
A : ι → Type u_4
inst✝⁴ : CommSemiring R
inst✝³ : (i : ι) → NonAssocSemiring (A i)
inst✝² : (i : ι) → Module R (A i)
inst✝¹ : ∀ (i : ι), SMulCommClass R (A i) (A i)
inst✝ : ∀ (i : ι), IsScalarTower R (A i) (A i)
x✝ y✝ : ⨂[R] (i : ι), A i
h1 : (mul x✝) ((tprod R) 1) = x✝
h2 : (mul y✝) ((tprod R) 1) = y✝
⊢ (mul (x✝ + y✝)) ((tprod R) 1) = x✝ + y✝
state_after: no goals
Theorem: closure_diff
File: Mathlib/Topology/Basic.lean

tactic: simp only [diff_eq, inter_comm]
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
⊢ closure s \ closure t = (closure t)ᶜ ∩ closure s
state_after: no goals

tactic: simp only [diff_eq, inter_comm]
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
⊢ closure ((closure t)ᶜ ∩ s) = closure (s \ closure t)
state_after: no goals
Theorem: Order.succ_eq_iInf
File: Mathlib/Order/SuccPred/Basic.lean

tactic: refine le_antisymm (le_iInf fun b => le_iInf succ_le_of_lt) ?_
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
a : α
⊢ succ a = ⨅ b, ⨅ (_ : a < b), b
state_after: α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
a : α
⊢ ⨅ b, ⨅ (_ : a < b), b ≤ succ a

tactic: obtain rfl | ha := eq_or_ne a ⊤
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
a : α
⊢ ⨅ b, ⨅ (_ : a < b), b ≤ succ a
state_after: case inl
α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
⊢ ⨅ b, ⨅ (_ : ⊤ < b), b ≤ succ ⊤

case inr
α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
a : α
ha : a ≠ ⊤
⊢ ⨅ b, ⨅ (_ : a < b), b ≤ succ a

tactic: exact iInf₂_le _ (lt_succ_iff_ne_top.2 ha)
state_before: case inr
α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
a : α
ha : a ≠ ⊤
⊢ ⨅ b, ⨅ (_ : a < b), b ≤ succ a
state_after: no goals

tactic: rw [succ_top]
state_before: case inl
α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
⊢ ⨅ b, ⨅ (_ : ⊤ < b), b ≤ succ ⊤
state_after: case inl
α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
⊢ ⨅ b, ⨅ (_ : ⊤ < b), b ≤ ⊤

tactic: exact le_top
state_before: case inl
α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : SuccOrder α
⊢ ⨅ b, ⨅ (_ : ⊤ < b), b ≤ ⊤
state_after: no goals
Theorem: sameRay_neg_smul_right_iff_of_ne
File: Mathlib/LinearAlgebra/Ray.lean

tactic: simp only [sameRay_neg_smul_right_iff, hv, or_false_iff, hr.le_iff_lt]
state_before: R : Type u_1
inst✝³ : LinearOrderedCommRing R
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
v : M
r : R
hv : v ≠ 0
hr : r ≠ 0
⊢ SameRay R (-v) (r • v) ↔ r < 0
state_after: no goals
Theorem: MeasureTheory.Integrable.hasSum_intervalIntegral_comp_add_int
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [integral_comp_add_right, zero_add, add_comm (1:ℝ)] using hfi.hasSum_intervalIntegral 0
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
μ : Measure ℝ
f : ℝ → E
hfi : Integrable f volume
⊢ HasSum (fun n => ∫ (x : ℝ) in 0 ..1, f (x + ↑n)) (∫ (x : ℝ), f x)
state_after: no goals
Theorem: LinearMap.range_eq_bot
File: Mathlib/Algebra/Module/Submodule/Range.lean

tactic: rw [← range_le_bot_iff, le_bot_iff]
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₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁷ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁶ : Module R M
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₂₁ : R₂ →+* R
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝³ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_11
inst✝² : FunLike F M M₂
inst✝¹ : SemilinearMapClass F τ₁₂ M M₂
inst✝ : RingHomSurjective τ₁₂
f : M →ₛₗ[τ₁₂] M₂
⊢ range f = ⊥ ↔ f = 0
state_after: no goals
Theorem: DFinsupp.mapRange_def
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: ext i
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝⁵ : DecidableEq ι
inst✝⁴ : (i : ι) → Zero (β i)
inst✝³ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝² : (i : ι) → Zero (β₁ i)
inst✝¹ : (i : ι) → Zero (β₂ i)
inst✝ : (i : ι) → (x : β₁ i) → Decidable (x ≠ 0)
f : (i : ι) → β₁ i → β₂ i
hf : ∀ (i : ι), f i 0 = 0
g : Π₀ (i : ι), β₁ i
⊢ mapRange f hf g = mk g.support fun i => f (↑i) (g ↑i)
state_after: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝⁵ : DecidableEq ι
inst✝⁴ : (i : ι) → Zero (β i)
inst✝³ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝² : (i : ι) → Zero (β₁ i)
inst✝¹ : (i : ι) → Zero (β₂ i)
inst✝ : (i : ι) → (x : β₁ i) → Decidable (x ≠ 0)
f : (i : ι) → β₁ i → β₂ i
hf : ∀ (i : ι), f i 0 = 0
g : Π₀ (i : ι), β₁ i
i : ι
⊢ (mapRange f hf g) i = (mk g.support fun i => f (↑i) (g ↑i)) i

tactic: by_cases h : g i ≠ 0 <;> simp at h <;> simp [h, hf]
state_before: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝⁵ : DecidableEq ι
inst✝⁴ : (i : ι) → Zero (β i)
inst✝³ : (i : ι) → (x : β i) → Decidable (x ≠ 0)
inst✝² : (i : ι) → Zero (β₁ i)
inst✝¹ : (i : ι) → Zero (β₂ i)
inst✝ : (i : ι) → (x : β₁ i) → Decidable (x ≠ 0)
f : (i : ι) → β₁ i → β₂ i
hf : ∀ (i : ι), f i 0 = 0
g : Π₀ (i : ι), β₁ i
i : ι
⊢ (mapRange f hf g) i = (mk g.support fun i => f (↑i) (g ↑i)) i
state_after: no goals
Theorem: Finsupp.sum_ite_self_eq_aux
File: Mathlib/Algebra/BigOperators/Finsupp.lean

tactic: simp only [mem_support_iff, ne_eq, ite_eq_left_iff, not_not]
state_before: α : Type u_1
ι : Type u_2
γ : Type u_3
A : Type u_4
B : Type u_5
C : Type u_6
inst✝⁷ : AddCommMonoid A
inst✝⁶ : AddCommMonoid B
inst✝⁵ : AddCommMonoid C
t : ι → A → C
h0 : ∀ (i : ι), t i 0 = 0
h1 : ∀ (i : ι) (x y : A), t i (x + y) = t i x + t i y
s : Finset α
f✝ : α → ι →₀ A
i : ι
g : ι →₀ A
k : ι → A → γ → B
x : γ
β : Type u_7
M : Type u_8
M' : Type u_9
N✝ : Type u_10
P : Type u_11
G : Type u_12
H : Type u_13
R : Type u_14
S : Type u_15
inst✝⁴ : Zero M
inst✝³ : Zero M'
inst✝² : CommMonoid N✝
inst✝¹ : DecidableEq α
N : Type u_16
inst✝ : AddCommMonoid N
f : α →₀ N
a : α
⊢ (if a ∈ f.support then f a else 0) = f a
state_after: α : Type u_1
ι : Type u_2
γ : Type u_3
A : Type u_4
B : Type u_5
C : Type u_6
inst✝⁷ : AddCommMonoid A
inst✝⁶ : AddCommMonoid B
inst✝⁵ : AddCommMonoid C
t : ι → A → C
h0 : ∀ (i : ι), t i 0 = 0
h1 : ∀ (i : ι) (x y : A), t i (x + y) = t i x + t i y
s : Finset α
f✝ : α → ι →₀ A
i : ι
g : ι →₀ A
k : ι → A → γ → B
x : γ
β : Type u_7
M : Type u_8
M' : Type u_9
N✝ : Type u_10
P : Type u_11
G : Type u_12
H : Type u_13
R : Type u_14
S : Type u_15
inst✝⁴ : Zero M
inst✝³ : Zero M'
inst✝² : CommMonoid N✝
inst✝¹ : DecidableEq α
N : Type u_16
inst✝ : AddCommMonoid N
f : α →₀ N
a : α
⊢ f a = 0 → 0 = f a

tactic: exact fun h ↦ h.symm
state_before: α : Type u_1
ι : Type u_2
γ : Type u_3
A : Type u_4
B : Type u_5
C : Type u_6
inst✝⁷ : AddCommMonoid A
inst✝⁶ : AddCommMonoid B
inst✝⁵ : AddCommMonoid C
t : ι → A → C
h0 : ∀ (i : ι), t i 0 = 0
h1 : ∀ (i : ι) (x y : A), t i (x + y) = t i x + t i y
s : Finset α
f✝ : α → ι →₀ A
i : ι
g : ι →₀ A
k : ι → A → γ → B
x : γ
β : Type u_7
M : Type u_8
M' : Type u_9
N✝ : Type u_10
P : Type u_11
G : Type u_12
H : Type u_13
R : Type u_14
S : Type u_15
inst✝⁴ : Zero M
inst✝³ : Zero M'
inst✝² : CommMonoid N✝
inst✝¹ : DecidableEq α
N : Type u_16
inst✝ : AddCommMonoid N
f : α →₀ N
a : α
⊢ f a = 0 → 0 = f a
state_after: no goals
Theorem: OrthonormalBasis.adjustToOrientation_apply_eq_or_eq_neg
File: Mathlib/Analysis/InnerProductSpace/Orientation.lean

tactic: simpa [← e.toBasis_adjustToOrientation] using
  e.toBasis.adjustToOrientation_apply_eq_or_eq_neg x i
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace ℝ E
ι : Type u_2
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
ne : Nonempty ι
e f : OrthonormalBasis ι ℝ E
x : Orientation ℝ E ι
i : ι
⊢ (e.adjustToOrientation x) i = e i ∨ (e.adjustToOrientation x) i = -e i
state_after: no goals
Theorem: commutative_ring_iff_abelian_lie_ring
File: Mathlib/Algebra/Lie/Abelian.lean

tactic: have h₂ : IsLieAbelian A ↔ ∀ a b : A, ⁅a, b⁆ = 0 := ⟨fun h => h.1, fun h => ⟨h⟩⟩
state_before: A : Type v
inst✝ : Ring A
h₁ : (Std.Commutative fun x x_1 => x * x_1) ↔ ∀ (a b : A), a * b = b * a
⊢ (Std.Commutative fun x x_1 => x * x_1) ↔ IsLieAbelian A
state_after: A : Type v
inst✝ : Ring A
h₁ : (Std.Commutative fun x x_1 => x * x_1) ↔ ∀ (a b : A), a * b = b * a
h₂ : IsLieAbelian A ↔ ∀ (a b : A), ⁅a, b⁆ = 0
⊢ (Std.Commutative fun x x_1 => x * x_1) ↔ IsLieAbelian A

tactic: simp only [h₁, h₂, LieRing.of_associative_ring_bracket, sub_eq_zero]
state_before: A : Type v
inst✝ : Ring A
h₁ : (Std.Commutative fun x x_1 => x * x_1) ↔ ∀ (a b : A), a * b = b * a
h₂ : IsLieAbelian A ↔ ∀ (a b : A), ⁅a, b⁆ = 0
⊢ (Std.Commutative fun x x_1 => x * x_1) ↔ IsLieAbelian A
state_after: no goals
Theorem: Mathlib.Meta.NormNum.isNat_zpow_pos
File: Mathlib/Tactic/NormNum/Pow.lean

tactic: rwa [pb.out, zpow_natCast]
state_before: α : Type u_1
inst✝ : DivisionSemiring α
a : α
b : ℤ
nb ne : ℕ
pb : IsNat b nb
pe' : IsNat (a ^ nb) ne
⊢ IsNat (a ^ b) ne
state_after: no goals
Theorem: finrank_orthogonal_span_singleton
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: haveI : FiniteDimensional 𝕜 E := .of_fact_finrank_eq_succ n
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
n : ℕ
_i : Fact (finrank 𝕜 E = n + 1)
v : E
hv : v ≠ 0
⊢ finrank 𝕜 ↥(Submodule.span 𝕜 {v})ᗮ = n
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
n : ℕ
_i : Fact (finrank 𝕜 E = n + 1)
v : E
hv : v ≠ 0
this : FiniteDimensional 𝕜 E
⊢ finrank 𝕜 ↥(Submodule.span 𝕜 {v})ᗮ = n

tactic: exact Submodule.finrank_add_finrank_orthogonal' <| by
  simp [finrank_span_singleton hv, _i.elim, add_comm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
n : ℕ
_i : Fact (finrank 𝕜 E = n + 1)
v : E
hv : v ≠ 0
this : FiniteDimensional 𝕜 E
⊢ finrank 𝕜 ↥(Submodule.span 𝕜 {v})ᗮ = n
state_after: no goals

tactic: simp [finrank_span_singleton hv, _i.elim, add_comm]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
n : ℕ
_i : Fact (finrank 𝕜 E = n + 1)
v : E
hv : v ≠ 0
this : FiniteDimensional 𝕜 E
⊢ finrank 𝕜 ↥(Submodule.span 𝕜 {v}) + n = finrank 𝕜 E
state_after: no goals
Theorem: Matrix.row_mulVec
File: Mathlib/Data/Matrix/RowCol.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : n → α
⊢ row ι (M *ᵥ v) = (M * col ι v)ᵀ
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : n → α
i✝ : ι
j✝ : m
⊢ row ι (M *ᵥ v) i✝ j✝ = (M * col ι v)ᵀ i✝ j✝

tactic: rfl
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : n → α
i✝ : ι
j✝ : m
⊢ row ι (M *ᵥ v) i✝ j✝ = (M * col ι v)ᵀ i✝ j✝
state_after: no goals
Theorem: Nat.doubleFactorial_eq_prod_even
File: Mathlib/Data/Nat/Factorial/DoubleFactorial.lean

tactic: rw [Finset.prod_range_succ, ← doubleFactorial_eq_prod_even _, mul_comm (2 * n)‼,
  (by ring : 2 * (n + 1) = 2 * n + 2)]
state_before: n : ℕ
⊢ (2 * (n + 1))‼ = ∏ i ∈ Finset.range (n + 1), 2 * (i + 1)
state_after: n : ℕ
⊢ (2 * n + 2)‼ = (2 * n + 2) * (2 * n)‼

tactic: rfl
state_before: n : ℕ
⊢ (2 * n + 2)‼ = (2 * n + 2) * (2 * n)‼
state_after: no goals

tactic: ring
state_before: n : ℕ
⊢ 2 * (n + 1) = 2 * n + 2
state_after: no goals
Theorem: LinearMap.flip_separatingLeft
File: Mathlib/LinearAlgebra/SesquilinearForm.lean

tactic: rw [← flip_separatingRight, flip_flip]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
Mₗ₁ : Type u_9
Mₗ₁' : Type u_10
Mₗ₂ : Type u_11
Mₗ₂' : Type u_12
K : Type u_13
K₁ : Type u_14
K₂ : Type u_15
V : Type u_16
V₁ : Type u_17
V₂ : Type u_18
n : Type u_19
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : CommSemiring R₁
inst✝⁴ : AddCommMonoid M₁
inst✝³ : Module R₁ M₁
inst✝² : CommSemiring R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
I₁ : R₁ →+* R
I₂ : R₂ →+* R
I₁' : R₁ →+* R
B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] M
⊢ B.flip.SeparatingLeft ↔ B.SeparatingRight
state_after: no goals
Theorem: MeasureTheory.IsSetRing.biInter_mem
File: Mathlib/MeasureTheory/SetSemiring.lean

tactic: induction' hS using Finset.Nonempty.cons_induction with _ i S hiS _ h hs
state_before: α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S : Finset ι
hS : S.Nonempty
hs : ∀ n ∈ S, s n ∈ C
⊢ ⋂ i ∈ S, s i ∈ C
state_after: case singleton
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S : Finset ι
a✝ : ι
hs : ∀ n ∈ {a✝}, s n ∈ C
⊢ ⋂ i ∈ {a✝}, s i ∈ C

case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : ∀ n ∈ cons i S hiS, s n ∈ C
⊢ ⋂ i_1 ∈ cons i S hiS, s i_1 ∈ C

tactic: simpa using hs
state_before: case singleton
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S : Finset ι
a✝ : ι
hs : ∀ n ∈ {a✝}, s n ∈ C
⊢ ⋂ i ∈ {a✝}, s i ∈ C
state_after: no goals

tactic: simp_rw [← Finset.mem_coe, Finset.coe_cons, Set.biInter_insert]
state_before: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : ∀ n ∈ cons i S hiS, s n ∈ C
⊢ ⋂ i_1 ∈ cons i S hiS, s i_1 ∈ C
state_after: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : ∀ n ∈ cons i S hiS, s n ∈ C
⊢ s i ∩ ⋂ x ∈ ↑S, s x ∈ C

tactic: simp only [cons_eq_insert, Finset.mem_insert, forall_eq_or_imp] at hs
state_before: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : ∀ n ∈ cons i S hiS, s n ∈ C
⊢ s i ∩ ⋂ x ∈ ↑S, s x ∈ C
state_after: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ s i ∩ ⋂ x ∈ ↑S, s x ∈ C

tactic: refine hC.inter_mem hs.1 ?_
state_before: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ s i ∩ ⋂ x ∈ ↑S, s x ∈ C
state_after: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ ⋂ x ∈ ↑S, s x ∈ C

tactic: exact h (fun n hnS ↦ hs.2 n hnS)
state_before: case cons
α : Type u_1
C : Set (Set α)
s✝ t : Set α
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S✝ : Finset ι
i : ι
S : Finset ι
hiS : i ∉ S
hs✝ : S.Nonempty
h : (∀ n ∈ S, s n ∈ C) → ⋂ i ∈ S, s i ∈ C
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ ⋂ x ∈ ↑S, s x ∈ C
state_after: no goals
Theorem: Complex.mk_eq_add_mul_I
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [ofReal']
state_before: a b : ℝ
⊢ { re := a, im := b }.re = (↑a + ↑b * I).re ∧ { re := a, im := b }.im = (↑a + ↑b * I).im
state_after: no goals
Theorem: ProbabilityTheory.kernel.memL1_limitProcess_densityProcess
File: Mathlib/Probability/Kernel/Disintegration/Density.lean

tactic: refine Submartingale.memℒp_limitProcess (martingale_densityProcess hκν a hs).submartingale
  (R := (ν a univ).toNNReal) (fun n ↦ ?_)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
⊢ Memℒp (Filtration.limitProcess (fun n x => densityProcess κ ν n a x s) (countableFiltration γ) (ν a)) 1 (ν a)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
n : ℕ
⊢ snorm (fun x => densityProcess κ ν n a x s) 1 (ν a) ≤ ↑((ν a) univ).toNNReal

tactic: refine (snorm_densityProcess_le hκν n a s).trans_eq ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
n : ℕ
⊢ snorm (fun x => densityProcess κ ν n a x s) 1 (ν a) ≤ ↑((ν a) univ).toNNReal
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
n : ℕ
⊢ (ν a) univ = ↑((ν a) univ).toNNReal

tactic: rw [ENNReal.coe_toNNReal]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
n : ℕ
⊢ (ν a) univ = ↑((ν a) univ).toNNReal
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
n : ℕ
⊢ (ν a) univ ≠ ⊤

tactic: exact measure_ne_top _ _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝¹ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
inst✝ : IsFiniteKernel ν
a : α
s : Set β
hs : MeasurableSet s
n : ℕ
⊢ (ν a) univ ≠ ⊤
state_after: no goals