1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Matrix.mem_range_scalar_iff_commute_transvectionStruct
File: Mathlib/LinearAlgebra/Matrix/Transvection.lean

tactic: refine ⟨fun h t => ?_, mem_range_scalar_of_commute_transvectionStruct⟩
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
⊢ M ∈ Set.range ⇑(scalar n) ↔ ∀ (t : TransvectionStruct n R), Commute t.toMatrix M
state_after: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : M ∈ Set.range ⇑(scalar n)
t : TransvectionStruct n R
⊢ Commute t.toMatrix M

tactic: rw [mem_range_scalar_iff_commute_stdBasisMatrix] at h
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : M ∈ Set.range ⇑(scalar n)
t : TransvectionStruct n R
⊢ Commute t.toMatrix M
state_after: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : ∀ (i j : n), i ≠ j → Commute (stdBasisMatrix i j 1) M
t : TransvectionStruct n R
⊢ Commute t.toMatrix M

tactic: refine (Commute.one_left M).add_left ?_
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : ∀ (i j : n), i ≠ j → Commute (stdBasisMatrix i j 1) M
t : TransvectionStruct n R
⊢ Commute t.toMatrix M
state_after: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : ∀ (i j : n), i ≠ j → Commute (stdBasisMatrix i j 1) M
t : TransvectionStruct n R
⊢ Commute (stdBasisMatrix t.i t.j t.c) M

tactic: convert (h _ _ t.hij).smul_left t.c using 1
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : ∀ (i j : n), i ≠ j → Commute (stdBasisMatrix i j 1) M
t : TransvectionStruct n R
⊢ Commute (stdBasisMatrix t.i t.j t.c) M
state_after: case h.e'_3
n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : ∀ (i j : n), i ≠ j → Commute (stdBasisMatrix i j 1) M
t : TransvectionStruct n R
⊢ stdBasisMatrix t.i t.j t.c = t.c • stdBasisMatrix t.i t.j 1

tactic: rw [smul_stdBasisMatrix, smul_eq_mul, mul_one]
state_before: case h.e'_3
n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
M : Matrix n n R
h : ∀ (i j : n), i ≠ j → Commute (stdBasisMatrix i j 1) M
t : TransvectionStruct n R
⊢ stdBasisMatrix t.i t.j t.c = t.c • stdBasisMatrix t.i t.j 1
state_after: no goals
Theorem: abs_sub_nonpos
File: Mathlib/Algebra/Order/Group/Abs.lean

tactic: rintro rfl
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ a = b → |a - b| ≤ 0
state_after: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a c d : α
⊢ |a - a| ≤ 0

tactic: rw [sub_self, abs_zero]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a c d : α
⊢ |a - a| ≤ 0
state_after: no goals
Theorem: mul_self_le_one_iff
File: Mathlib/Algebra/Order/Monoid/Defs.lean

tactic: simp [← not_iff_not]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedCommMonoid α
a : α
⊢ a * a ≤ 1 ↔ a ≤ 1
state_after: no goals
Theorem: Finset.truncatedSup_of_isAntichain
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: refine le_antisymm ?_ le_truncatedSup
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ s.truncatedSup a = a
state_after: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ s.truncatedSup a ≤ a

tactic: simp_rw [truncatedSup_of_mem (subset_lowerClosure ha), sup'_le_iff, mem_filter]
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ s.truncatedSup a ≤ a
state_after: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ ∀ (b : α), b ∈ s ∧ a ≤ b → id b ≤ a

tactic: rintro b ⟨hb, hab⟩
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ ∀ (b : α), b ∈ s ∧ a ≤ b → id b ≤ a
state_after: case intro
α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b✝ : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
b : α
hb : b ∈ s
hab : a ≤ b
⊢ id b ≤ a

tactic: exact (hs.eq ha hb hab).ge
state_before: case intro
α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeSup α
inst✝⁵ : OrderTop α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeSup β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a b✝ : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
b : α
hb : b ∈ s
hab : a ≤ b
⊢ id b ≤ a
state_after: no goals
Theorem: Orientation.reindex_refl
File: Mathlib/LinearAlgebra/Orientation.lean

tactic: rw [Orientation.reindex, AlternatingMap.domDomCongrₗ_refl, Module.Ray.map_refl]
state_before: R : Type u_1
inst✝⁴ : StrictOrderedCommSemiring R
M : Type u_2
inst✝³ : AddCommMonoid M
inst✝² : Module R M
N : Type u_3
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
ι : Type u_4
ι' : Type u_5
⊢ reindex R M (Equiv.refl ι) = Equiv.refl (Orientation R M ι)
state_after: no goals
Theorem: MeasureTheory.condexp_ae_eq_condexpL1CLM
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean

tactic: refine (condexp_ae_eq_condexpL1 hm f).trans (eventually_of_forall fun x => ?_)
state_before: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace 𝕜 F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f g : α → F'
s : Set α
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
hf : Integrable f μ
⊢ μ[f|m] =ᶠ[ae μ] ↑↑((condexpL1CLM F' hm μ) (Integrable.toL1 f hf))
state_after: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace 𝕜 F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f g : α → F'
s : Set α
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
hf : Integrable f μ
x : α
⊢ ↑↑(condexpL1 hm μ f) x = ↑↑((condexpL1CLM F' hm μ) (Integrable.toL1 f hf)) x

tactic: rw [condexpL1_eq hf]
state_before: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁷ : RCLike 𝕜
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace 𝕜 F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f g : α → F'
s : Set α
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
hf : Integrable f μ
x : α
⊢ ↑↑(condexpL1 hm μ f) x = ↑↑((condexpL1CLM F' hm μ) (Integrable.toL1 f hf)) x
state_after: no goals
Theorem: memℓp_gen_iff
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rw [ENNReal.toReal_pos_iff] at hp
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
f : (i : α) → E i
⊢ Memℓp f p ↔ Summable fun i => ‖f i‖ ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p ∧ p < ⊤
f : (i : α) → E i
⊢ Memℓp f p ↔ Summable fun i => ‖f i‖ ^ p.toReal

tactic: dsimp [Memℓp]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p ∧ p < ⊤
f : (i : α) → E i
⊢ Memℓp f p ↔ Summable fun i => ‖f i‖ ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p ∧ p < ⊤
f : (i : α) → E i
⊢ (if p = 0 then {i | ¬f i = 0}.Finite
    else if p = ⊤ then BddAbove (Set.range fun i => ‖f i‖) else Summable fun i => ‖f i‖ ^ p.toReal) ↔
    Summable fun i => ‖f i‖ ^ p.toReal

tactic: rw [if_neg hp.1.ne', if_neg hp.2.ne]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p ∧ p < ⊤
f : (i : α) → E i
⊢ (if p = 0 then {i | ¬f i = 0}.Finite
    else if p = ⊤ then BddAbove (Set.range fun i => ‖f i‖) else Summable fun i => ‖f i‖ ^ p.toReal) ↔
    Summable fun i => ‖f i‖ ^ p.toReal
state_after: no goals
Theorem: MeasureTheory.Integrable.right_of_add_measure
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← memℒp_one_iff_integrable] at h ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
h : Integrable f (μ + ν)
⊢ Integrable f ν
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
h : Memℒp f 1 (μ + ν)
⊢ Memℒp f 1 ν

tactic: exact h.right_of_add_measure
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
h : Memℒp f 1 (μ + ν)
⊢ Memℒp f 1 ν
state_after: no goals
Theorem: Polynomial.IsEisensteinAt.coeff_mem
File: Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean

tactic: cases' ne_iff_lt_or_gt.1 hn with h₁ h₂
state_before: R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
⊢ f.coeff n ∈ 𝓟
state_after: case inl
R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
h₁ : n < f.natDegree
⊢ f.coeff n ∈ 𝓟

case inr
R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
h₂ : n > f.natDegree
⊢ f.coeff n ∈ 𝓟

tactic: exact hf.mem h₁
state_before: case inl
R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
h₁ : n < f.natDegree
⊢ f.coeff n ∈ 𝓟
state_after: no goals

tactic: rw [coeff_eq_zero_of_natDegree_lt h₂]
state_before: case inr
R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
h₂ : n > f.natDegree
⊢ f.coeff n ∈ 𝓟
state_after: case inr
R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
h₂ : n > f.natDegree
⊢ 0 ∈ 𝓟

tactic: exact Ideal.zero_mem _
state_before: case inr
R : Type u
inst✝ : CommSemiring R
𝓟 : Ideal R
f : R[X]
hf : f.IsEisensteinAt 𝓟
n : ℕ
hn : n ≠ f.natDegree
h₂ : n > f.natDegree
⊢ 0 ∈ 𝓟
state_after: no goals
Theorem: summable_dirichletSummand
File: Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean

tactic: simp only [dirichletSummandHom, MonoidWithZeroHom.coe_mk, ZeroHom.coe_mk, norm_mul]
state_before: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ Summable fun n => ‖(dirichletSummandHom χ ⋯) n‖
state_after: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ Summable fun n => ‖χ ↑n‖ * ‖↑n ^ (-s)‖

tactic: exact (summable_riemannZetaSummand hs).of_nonneg_of_le (fun _ ↦ by positivity)
  (fun n ↦ mul_le_of_le_one_left (norm_nonneg _) <| χ.norm_le_one n)
state_before: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ Summable fun n => ‖χ ↑n‖ * ‖↑n ^ (-s)‖
state_after: no goals

tactic: positivity
state_before: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
x✝ : ℕ
⊢ 0 ≤ ‖χ ↑x✝‖ * ‖↑x✝ ^ (-s)‖
state_after: no goals
Theorem: Set.zero_mem_centralizer
File: Mathlib/Algebra/GroupWithZero/Center.lean

tactic: simp [mem_centralizer_iff]
state_before: M₀ : Type u_1
G₀ : Type u_2
inst✝ : MulZeroClass M₀
s : Set M₀
⊢ 0 ∈ s.centralizer
state_after: no goals
Theorem: MvPolynomial.eval₂_C
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: rw [C_apply, eval₂_monomial, prod_zero_index, mul_one]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
f : R →+* S₁
g : σ → S₁
a : R
⊢ eval₂ f g (C a) = f a
state_after: no goals
Theorem: Set.Iio_diff_Iic
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [diff_eq, compl_Iic, inter_comm, Ioi_inter_Iio]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
⊢ Iio b \ Iic a = Ioo a b
state_after: no goals
Theorem: Ordinal.div_le
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [div_def a b0]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
b0 : b ≠ 0
h : a < b * succ c
⊢ a / b ≤ c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
b0 : b ≠ 0
h : a < b * succ c
⊢ sInf {o | a < b * succ o} ≤ c

tactic: exact csInf_le' h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
b0 : b ≠ 0
h : a < b * succ c
⊢ sInf {o | a < b * succ o} ≤ c
state_after: no goals
Theorem: cauchy_comap_uniformSpace
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: simp only [Cauchy, map_neBot_iff, prod_map_map_eq, map_le_iff_le_comap]
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
u : UniformSpace β
f : α → β
l : Filter α
⊢ Cauchy l ↔ Cauchy (map f l)
state_after: α : Type u
β : Type v
uniformSpace : UniformSpace α
u : UniformSpace β
f : α → β
l : Filter α
⊢ l.NeBot ∧ l ×ˢ l ≤ 𝓤 α ↔ l.NeBot ∧ l ×ˢ l ≤ Filter.comap (fun p => (f p.1, f p.2)) (𝓤 β)

tactic: rfl
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
u : UniformSpace β
f : α → β
l : Filter α
⊢ l.NeBot ∧ l ×ˢ l ≤ 𝓤 α ↔ l.NeBot ∧ l ×ˢ l ≤ Filter.comap (fun p => (f p.1, f p.2)) (𝓤 β)
state_after: no goals
Theorem: Irrational.div_rat
File: Mathlib/Data/Real/Irrational.lean

tactic: rw [div_eq_mul_inv, ← cast_inv]
state_before: q✝ : ℚ
x y : ℝ
h : Irrational x
q : ℚ
hq : q ≠ 0
⊢ Irrational (x / ↑q)
state_after: q✝ : ℚ
x y : ℝ
h : Irrational x
q : ℚ
hq : q ≠ 0
⊢ Irrational (x * ↑q⁻¹)

tactic: exact h.mul_rat (inv_ne_zero hq)
state_before: q✝ : ℚ
x y : ℝ
h : Irrational x
q : ℚ
hq : q ≠ 0
⊢ Irrational (x * ↑q⁻¹)
state_after: no goals
Theorem: LocallyConstant.ofIsClopen_fiber_zero
File: Mathlib/Topology/LocallyConstant/Basic.lean

tactic: ext
state_before: X✝ : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
inst✝² : TopologicalSpace X✝
X : Type u_5
inst✝¹ : TopologicalSpace X
U : Set X
inst✝ : (x : X) → Decidable (x ∈ U)
hU : IsClopen U
⊢ ⇑(ofIsClopen hU) ⁻¹' {0} = U
state_after: case h
X✝ : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
inst✝² : TopologicalSpace X✝
X : Type u_5
inst✝¹ : TopologicalSpace X
U : Set X
inst✝ : (x : X) → Decidable (x ∈ U)
hU : IsClopen U
x✝ : X
⊢ x✝ ∈ ⇑(ofIsClopen hU) ⁻¹' {0} ↔ x✝ ∈ U

tactic: simp only [ofIsClopen, mem_singleton_iff, Fin.one_eq_zero_iff, coe_mk, mem_preimage,
  ite_eq_left_iff, Nat.succ_succ_ne_one]
state_before: case h
X✝ : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
inst✝² : TopologicalSpace X✝
X : Type u_5
inst✝¹ : TopologicalSpace X
U : Set X
inst✝ : (x : X) → Decidable (x ∈ U)
hU : IsClopen U
x✝ : X
⊢ x✝ ∈ ⇑(ofIsClopen hU) ⁻¹' {0} ↔ x✝ ∈ U
state_after: case h
X✝ : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
inst✝² : TopologicalSpace X✝
X : Type u_5
inst✝¹ : TopologicalSpace X
U : Set X
inst✝ : (x : X) → Decidable (x ∈ U)
hU : IsClopen U
x✝ : X
⊢ x✝ ∉ U → False ↔ x✝ ∈ U

tactic: tauto
state_before: case h
X✝ : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
inst✝² : TopologicalSpace X✝
X : Type u_5
inst✝¹ : TopologicalSpace X
U : Set X
inst✝ : (x : X) → Decidable (x ∈ U)
hU : IsClopen U
x✝ : X
⊢ x✝ ∉ U → False ↔ x✝ ∈ U
state_after: no goals
Theorem: Orientation.oangle_map
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: simp [oangle, o.kahler_map]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V'
f : V ≃ₗᵢ[ℝ] V'
⊢ ((map (Fin 2) f.toLinearEquiv) o).oangle x y = o.oangle (f.symm x) (f.symm y)
state_after: no goals
Theorem: stronglyMeasurable_iff_measurable_separable
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: refine ⟨fun H ↦ ⟨H.measurable, H.isSeparable_range⟩, fun ⟨Hm, Hsep⟩  ↦ ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
⊢ StronglyMeasurable f ↔ Measurable f ∧ IsSeparable (range f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
x✝ : Measurable f ∧ IsSeparable (range f)
Hm : Measurable f
Hsep : IsSeparable (range f)
⊢ StronglyMeasurable f

tactic: have := Hsep.secondCountableTopology
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
x✝ : Measurable f ∧ IsSeparable (range f)
Hm : Measurable f
Hsep : IsSeparable (range f)
⊢ StronglyMeasurable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
x✝ : Measurable f ∧ IsSeparable (range f)
Hm : Measurable f
Hsep : IsSeparable (range f)
this : SecondCountableTopology ↑(range f)
⊢ StronglyMeasurable f

tactic: have Hm' : StronglyMeasurable (rangeFactorization f) := Hm.subtype_mk.stronglyMeasurable
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
x✝ : Measurable f ∧ IsSeparable (range f)
Hm : Measurable f
Hsep : IsSeparable (range f)
this : SecondCountableTopology ↑(range f)
⊢ StronglyMeasurable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
x✝ : Measurable f ∧ IsSeparable (range f)
Hm : Measurable f
Hsep : IsSeparable (range f)
this : SecondCountableTopology ↑(range f)
Hm' : StronglyMeasurable (rangeFactorization f)
⊢ StronglyMeasurable f

tactic: exact continuous_subtype_val.comp_stronglyMeasurable Hm'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f g : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
x✝ : Measurable f ∧ IsSeparable (range f)
Hm : Measurable f
Hsep : IsSeparable (range f)
this : SecondCountableTopology ↑(range f)
Hm' : StronglyMeasurable (rangeFactorization f)
⊢ StronglyMeasurable f
state_after: no goals
Theorem: EuclideanGeometry.oangle_swap₁₃_sign
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: rw [oangle_rev, Real.Angle.sign_neg, neg_neg]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
⊢ -(∡ p₁ p₂ p₃).sign = (∡ p₃ p₂ p₁).sign
state_after: no goals
Theorem: PadicSeq.lift_index_right
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: apply stationaryPoint_spec hf
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ padicNorm p (↑f (stationaryPoint hf)) = padicNorm p (↑f (max v1 (max v2 (stationaryPoint hf))))
state_after: case a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ stationaryPoint hf ≤ max v1 (max v2 (stationaryPoint hf))

case a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ stationaryPoint hf ≤ stationaryPoint hf

tactic: apply le_trans
state_before: case a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ stationaryPoint hf ≤ max v1 (max v2 (stationaryPoint hf))
state_after: case a.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ stationaryPoint hf ≤ ?a.b✝

case a.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ ?a.b✝ ≤ max v1 (max v2 (stationaryPoint hf))

case a.b
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ ℕ

tactic: apply le_max_right v2
state_before: case a.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ stationaryPoint hf ≤ ?a.b✝
state_after: no goals

tactic: apply le_max_right
state_before: case a.a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ max v2 (stationaryPoint hf) ≤ max v1 (max v2 (stationaryPoint hf))
state_after: no goals

tactic: exact le_rfl
state_before: case a
p : ℕ
inst✝ : Fact (Nat.Prime p)
f : PadicSeq p
hf : ¬f ≈ 0
v1 v2 : ℕ
⊢ stationaryPoint hf ≤ stationaryPoint hf
state_after: no goals