tasksource/leandojo huggingface dataset:
Theorem: UpperSet.coe_iSup₂
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [coe_iSup]
state_before: α : Type u_1
β : Type ?u.56049
γ : Type ?u.56052
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : LE α
S : Set (UpperSet α)
s t : UpperSet α
a : α
f : (i : ι) → κ i → UpperSet α
⊢ ↑(⨆ (i : ι) (j : κ i), f i j) = ⋂ (i : ι) (j : κ i), ↑(f i j)
Theorem: MeasureTheory.Integrable.measure_ge_lt_top
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [show { x | ε ≤ ‖f x‖ } = { x | ENNReal.ofReal ε ≤ ‖f x‖₊ } by
    simp only [ENNReal.ofReal, Real.toNNReal_le_iff_le_coe, ENNReal.coe_le_coe, coe_nnnorm]]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ ↑↑μ {x | ε ≤ ‖f x‖} < ⊤

tactic: refine' (meas_ge_le_mul_pow_snorm μ one_ne_zero ENNReal.one_ne_top hf.1 _).trans_lt _
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ ↑↑μ {x | ENNReal.ofReal ε ≤ ↑‖f x‖₊} < ⊤

tactic: apply ENNReal.mul_lt_top
state_before: case refine'_2
α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ (ENNReal.ofReal ε)⁻¹ ^ ENNReal.toReal 1 * snorm f 1 μ ^ ENNReal.toReal 1 < ⊤

tactic: simpa only [ENNReal.one_toReal, ENNReal.rpow_one] using
  (memℒp_one_iff_integrable.2 hf).snorm_ne_top
state_before: case refine'_2.a
α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ snorm f 1 μ ^ ENNReal.toReal 1 ≠ ⊤

tactic: simp only [ENNReal.ofReal, Real.toNNReal_le_iff_le_coe, ENNReal.coe_le_coe, coe_nnnorm]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ {x | ε ≤ ‖f x‖} = {x | ENNReal.ofReal ε ≤ ↑‖f x‖₊}

tactic: simpa only [Ne.def, ENNReal.ofReal_eq_zero, not_le] using hε
state_before: case refine'_1
α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ ENNReal.ofReal ε ≠ 0

tactic: simpa only [ENNReal.one_toReal, ENNReal.rpow_one, Ne.def, ENNReal.inv_eq_top,
  ENNReal.ofReal_eq_zero, not_le] using hε
state_before: case refine'_2.a
α : Type u_2
β : Type u_1
γ : Type ?u.989928
δ : Type ?u.989931
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f
ε : ℝ
hε : 0 < ε
⊢ (ENNReal.ofReal ε)⁻¹ ^ ENNReal.toReal 1 ≠ ⊤
Theorem: isRightRegular_of_non_zero_divisor
File: Mathlib/Algebra/Ring/Regular.lean

tactic: refine' fun x y (h' : x * k = y * k) => sub_eq_zero.mp (h _ _)
state_before: α : Type u_1
inst✝ : NonUnitalNonAssocRing α
k : α
h : ∀ (x : α), x * k = 0 → x = 0
⊢ IsRightRegular k

tactic: rw [sub_mul, sub_eq_zero, h']
state_before: α : Type u_1
inst✝ : NonUnitalNonAssocRing α
k : α
h : ∀ (x : α), x * k = 0 → x = 0
x y : α
h' : x * k = y * k
⊢ (x - y) * k = 0
Theorem: Set.prod_range_univ_eq
File: Mathlib/Data/Set/Prod.lean

tactic: simp [range]
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
δ : Type ?u.55932
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
m₁ : α → γ
⊢ ∀ (x : γ × β), x ∈ range m₁ ×ˢ univ ↔ x ∈ range fun p => (m₁ p.fst, p.snd)
Theorem: Ordinal.cof_succ
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: apply le_antisymm
state_before: α : Type ?u.43015
r : α → α → Prop
o : Ordinal
⊢ cof (succ o) = 1

tactic: refine' inductionOn o fun α r _ => _
state_before: case a
α : Type ?u.43015
r : α → α → Prop
o : Ordinal
⊢ cof (succ o) ≤ 1

tactic: change cof (type _) ≤ _
state_before: case a
α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ cof (succ (type r)) ≤ 1

tactic: rw [← (_ : (#_) = 1)]
state_before: case a
α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ cof (type (Sum.Lex r EmptyRelation)) ≤ 1

tactic: apply cof_type_le
state_before: case a
α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ cof (type (Sum.Lex r EmptyRelation)) ≤ (#?m.43531)

α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ Type u_1

α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ (#?m.43531) = 1

tactic: refine' fun a => ⟨Sum.inr PUnit.unit, Set.mem_singleton _, _⟩
state_before: case a.h
α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ Unbounded (Sum.Lex r EmptyRelation) ?a.S✝

tactic: rcases a with (a | ⟨⟨⟨⟩⟩⟩) <;> simp [EmptyRelation]
state_before: case a.h
α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
a : α ⊕ PUnit
⊢ ¬Sum.Lex r EmptyRelation (Sum.inr PUnit.unit) a

tactic: rw [Cardinal.mk_fintype, Set.card_singleton]
state_before: α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ (#↑{Sum.inr PUnit.unit}) = 1

tactic: simp
state_before: α✝ : Type ?u.43015
r✝ : α✝ → α✝ → Prop
o : Ordinal
α : Type u_1
r : α → α → Prop
x✝ : IsWellOrder α r
⊢ ↑1 = 1

tactic: rw [← Cardinal.succ_zero, succ_le_iff]
state_before: case a
α : Type ?u.43015
r : α → α → Prop
o : Ordinal
⊢ 1 ≤ cof (succ o)

tactic: simpa [lt_iff_le_and_ne, Cardinal.zero_le] using fun h =>
  succ_ne_zero o (cof_eq_zero.1 (Eq.symm h))
state_before: case a
α : Type ?u.43015
r : α → α → Prop
o : Ordinal
⊢ 0 < cof (succ o)
Theorem: SimpleGraph.deleteEdges_le
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: intro
state_before: ι : Sort ?u.157022
𝕜 : Type ?u.157025
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
s : Set (Sym2 V)
⊢ deleteEdges G s ≤ G

tactic: simp (config := { contextual := true })
state_before: ι : Sort ?u.157022
𝕜 : Type ?u.157025
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
s : Set (Sym2 V)
v✝ : V
⊢ ∀ ⦃w : V⦄, Adj (deleteEdges G s) v✝ w → Adj G v✝ w
Theorem: mem_skewAdjointMatricesSubmodule
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: erw [mem_pairSelfAdjointMatricesSubmodule]
state_before: R : Type u_1
R₁ : Type ?u.2628894
R₂ : Type ?u.2628897
M : Type ?u.2628900
M₁ : Type ?u.2628903
M₂ : Type ?u.2628906
M₁' : Type ?u.2628909
M₂' : Type ?u.2628912
n : Type u_2
m : Type ?u.2628918
n' : Type ?u.2628921
m' : Type ?u.2628924
ι : Type ?u.2628927
inst✝⁸ : CommRing R
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : Fintype n
inst✝² : Fintype n'
b₁ : Basis n R M₁
b₂ : Basis n' R M₂
J J₂ : Matrix n n R
J' : Matrix n' n' R
A : Matrix n' n R
A' : Matrix n n' R
A₁ : Matrix n n R
inst✝¹ : DecidableEq n
inst✝ : DecidableEq n'
⊢ A₁ ∈ skewAdjointMatricesSubmodule J ↔ Matrix.IsSkewAdjoint J A₁

tactic: simp [Matrix.IsSkewAdjoint, Matrix.IsAdjointPair]
state_before: R : Type u_1
R₁ : Type ?u.2628894
R₂ : Type ?u.2628897
M : Type ?u.2628900
M₁ : Type ?u.2628903
M₂ : Type ?u.2628906
M₁' : Type ?u.2628909
M₂' : Type ?u.2628912
n : Type u_2
m : Type ?u.2628918
n' : Type ?u.2628921
m' : Type ?u.2628924
ι : Type ?u.2628927
inst✝⁸ : CommRing R
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : Fintype n
inst✝² : Fintype n'
b₁ : Basis n R M₁
b₂ : Basis n' R M₂
J J₂ : Matrix n n R
J' : Matrix n' n' R
A : Matrix n' n R
A' : Matrix n n' R
A₁ : Matrix n n R
inst✝¹ : DecidableEq n
inst✝ : DecidableEq n'
⊢ Matrix.IsAdjointPair (-J) J A₁ A₁ ↔ Matrix.IsSkewAdjoint J A₁
Theorem: Matrix.dotProduct_mulVec
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp only [dotProduct, vecMul, mulVec, Finset.mul_sum, Finset.sum_mul, mul_assoc]
state_before: l : Type ?u.840566
m : Type u_2
n : Type u_1
o : Type ?u.840575
m' : o → Type ?u.840580
n' : o → Type ?u.840585
R : Type u_3
S : Type ?u.840591
α : Type v
β : Type w
γ : Type ?u.840598
inst✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : Fintype m
inst✝ : NonUnitalSemiring R
v : m → R
A : Matrix m n R
w : n → R
⊢ v ⬝ᵥ mulVec A w = vecMul v A ⬝ᵥ w

tactic: exact Finset.sum_comm
state_before: l : Type ?u.840566
m : Type u_2
n : Type u_1
o : Type ?u.840575
m' : o → Type ?u.840580
n' : o → Type ?u.840585
R : Type u_3
S : Type ?u.840591
α : Type v
β : Type w
γ : Type ?u.840598
inst✝³ : NonUnitalNonAssocSemiring α
inst✝² : Fintype n
inst✝¹ : Fintype m
inst✝ : NonUnitalSemiring R
v : m → R
A : Matrix m n R
w : n → R
⊢ ∑ x : m, ∑ x_1 : n, v x * (A x x_1 * w x_1) = ∑ x : n, ∑ x_1 : m, v x_1 * (A x_1 x * w x)
Theorem: IntervalIntegrable.comp_sub_right
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [sub_neg_eq_add] using IntervalIntegrable.comp_add_right hf (-c)
state_before: ι : Type ?u.7559135
𝕜 : Type ?u.7559138
E : Type u_1
F : Type ?u.7559144
A : Type ?u.7559147
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a b : ℝ
μ : MeasureTheory.Measure ℝ
hf : IntervalIntegrable f volume a b
c : ℝ
⊢ IntervalIntegrable (fun x => f (x - c)) volume (a + c) (b + c)
Theorem: SimpleGraph.IsSRGWith.top
File: Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean

tactic: rw [card_commonNeighbors_top]
state_before: V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
h : Adj ⊤ v w
⊢ Fintype.card ↑(commonNeighbors ⊤ v w) = Fintype.card V - 2

tactic: exact h
state_before: V : Type u
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n k ℓ μ : ℕ
v w : V
h : Adj ⊤ v w
⊢ v ≠ w
Theorem: CategoryTheory.Limits.PullbackCone.equalizer_ext
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: rw [← t.w inl]
state_before: C : Type u
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
W✝ X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
t : PullbackCone f g
W : C
k l : W ⟶ t.pt
h₀ : k ≫ fst t = l ≫ fst t
h₁ : k ≫ snd t = l ≫ snd t
⊢ k ≫ t.π.app none = l ≫ t.π.app none

tactic: dsimp [h₀]
state_before: C : Type u
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
W✝ X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
t : PullbackCone f g
W : C
k l : W ⟶ t.pt
h₀ : k ≫ fst t = l ≫ fst t
h₁ : k ≫ snd t = l ≫ snd t
⊢ k ≫ t.π.app WalkingCospan.left ≫ (cospan f g).map inl = l ≫ t.π.app WalkingCospan.left ≫ (cospan f g).map inl
Theorem: Set.inter_prod
File: Mathlib/Data/Set/Prod.lean

tactic: ext ⟨x, y⟩
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.12527
δ : Type ?u.12530
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
⊢ (s₁ ∩ s₂) ×ˢ t = s₁ ×ˢ t ∩ s₂ ×ˢ t

tactic: simp only [← and_and_right, mem_inter_iff, mem_prod]
state_before: case h.mk
α : Type u_1
β : Type u_2
γ : Type ?u.12527
δ : Type ?u.12530
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
x : α
y : β
⊢ (x, y) ∈ (s₁ ∩ s₂) ×ˢ t ↔ (x, y) ∈ s₁ ×ˢ t ∩ s₂ ×ˢ t
Theorem: CategoryTheory.MorphismProperty.StableUnderComposition.universally
File: Mathlib/CategoryTheory/MorphismProperty.lean

tactic: intro X Y Z f g hf hg X' Z' i₁ i₂ f' H
state_before: C : Type u
inst✝² : Category C
D : Type ?u.85650
inst✝¹ : Category D
inst✝ : HasPullbacks C
P : MorphismProperty C
hP : StableUnderComposition P
⊢ StableUnderComposition (MorphismProperty.universally P)

tactic: have := pullback.lift_fst _ _ (H.w.trans (Category.assoc _ _ _).symm)
state_before: C : Type u
inst✝² : Category C
D : Type ?u.85650
inst✝¹ : Category D
inst✝ : HasPullbacks C
P : MorphismProperty C
hP : StableUnderComposition P
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.universally P f
hg : MorphismProperty.universally P g
X' Z' : C
i₁ : X' ⟶ X
i₂ : Z' ⟶ Z
f' : X' ⟶ Z'
H : IsPullback f' i₁ i₂ (f ≫ g)
⊢ P f'

tactic: rw [← this] at H⊢
state_before: C : Type u
inst✝² : Category C
D : Type ?u.85650
inst✝¹ : Category D
inst✝ : HasPullbacks C
P : MorphismProperty C
hP : StableUnderComposition P
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.universally P f
hg : MorphismProperty.universally P g
X' Z' : C
i₁ : X' ⟶ X
i₂ : Z' ⟶ Z
f' : X' ⟶ Z'
H : IsPullback f' i₁ i₂ (f ≫ g)
this : pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g) ≫ pullback.fst = f'
⊢ P f'

tactic: apply hP _ _ _ (hg _ _ _ <| IsPullback.of_hasPullback _ _)
state_before: C : Type u
inst✝² : Category C
D : Type ?u.85650
inst✝¹ : Category D
inst✝ : HasPullbacks C
P : MorphismProperty C
hP : StableUnderComposition P
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.universally P f
hg : MorphismProperty.universally P g
X' Z' : C
i₁ : X' ⟶ X
i₂ : Z' ⟶ Z
f' : X' ⟶ Z'
H✝ : IsPullback f' i₁ i₂ (f ≫ g)
H : IsPullback (pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g) ≫ pullback.fst) i₁ i₂ (f ≫ g)
this : pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g) ≫ pullback.fst = f'
⊢ P (pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g) ≫ pullback.fst)

tactic: exact hf _ _ _ (H.of_right (pullback.lift_snd _ _ _) (IsPullback.of_hasPullback i₂ g))
state_before: C : Type u
inst✝² : Category C
D : Type ?u.85650
inst✝¹ : Category D
inst✝ : HasPullbacks C
P : MorphismProperty C
hP : StableUnderComposition P
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hf : MorphismProperty.universally P f
hg : MorphismProperty.universally P g
X' Z' : C
i₁ : X' ⟶ X
i₂ : Z' ⟶ Z
f' : X' ⟶ Z'
H✝ : IsPullback f' i₁ i₂ (f ≫ g)
H : IsPullback (pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g) ≫ pullback.fst) i₁ i₂ (f ≫ g)
this : pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g) ≫ pullback.fst = f'
⊢ P (pullback.lift f' (i₁ ≫ f) (_ : f' ≫ i₂ = (i₁ ≫ f) ≫ g))
Theorem: List.filterMap_cons_none
File: Std/Data/List/Lemmas.lean

tactic: simp only [filterMap, h]
state_before: α : Type u_1
β : Type u_2
f : α → Option β
a : α
l : List α
h : f a = none
⊢ filterMap f (a :: l) = filterMap f l
Theorem: Finset.sup_inf_sup
File: Mathlib/Data/Finset/Lattice.lean

tactic: simp_rw [Finset.sup_inf_distrib_right, Finset.sup_inf_distrib_left, sup_product_left]
state_before: F : Type ?u.182498
α : Type u_3
β : Type ?u.182504
γ : Type ?u.182507
ι : Type u_1
κ : Type u_2
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
t✝ : Finset κ
f✝ : ι → α
g✝ : κ → α
a : α
s : Finset ι
t : Finset κ
f : ι → α
g : κ → α
⊢ sup s f ⊓ sup t g = sup (s ×ˢ t) fun i => f i.fst ⊓ g i.snd
Theorem: toIcoMod_eq_fract_mul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp [toIcoMod_eq_add_fract_mul]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
b : α
⊢ toIcoMod hp 0 b = Int.fract (b / p) * p
Theorem: IsLocalization.AtPrime.comap_maximalIdeal
File: Mathlib/RingTheory/Localization/AtPrime.lean

tactic: simpa only [Ideal.mem_comap] using to_map_mem_maximal_iff _ I x
state_before: R : Type u_2
inst✝⁶ : CommSemiring R
M : Submonoid R
S : Type u_1
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra R S
P : Type ?u.70150
inst✝³ : CommSemiring P
A : Type ?u.70156
inst✝² : CommRing A
inst✝¹ : IsDomain A
I : Ideal R
hI : Ideal.IsPrime I
inst✝ : IsLocalization.AtPrime S I
h : optParam (LocalRing S) (_ : LocalRing S)
x : R
⊢ x ∈ Ideal.comap (algebraMap R S) (LocalRing.maximalIdeal S) ↔ x ∈ I
Theorem: Mathlib.Meta.NormNum.isInt_pow
File: Mathlib/Tactic/NormNum/Basic.lean

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝¹ : ℤ
n✝ : ℕ
⊢ ↑n✝¹ ^ ↑n✝ = ↑(Int.pow n✝¹ n✝)
Theorem: Nat.Prime.eq_two_or_odd
File: Mathlib/Data/Nat/Prime.lean

tactic: decide
state_before: p : ℕ
hp : Prime p
h : p % 2 = 0
⊢ ¬2 = 1
Theorem: wittStructureInt_vars
File: Mathlib/RingTheory/WittVector/StructurePolynomial.lean

tactic: have : Function.Injective (Int.castRingHom ℚ) := Int.cast_injective
state_before: p : ℕ
R : Type ?u.2119290
idx : Type u_1
inst✝¹ : CommRing R
hp : Fact (Nat.Prime p)
inst✝ : Fintype idx
Φ : MvPolynomial idx ℤ
n : ℕ
⊢ vars (wittStructureInt p Φ n) ⊆ Finset.univ ×ˢ Finset.range (n + 1)

tactic: rw [← vars_map_of_injective _ this, map_wittStructureInt]
state_before: p : ℕ
R : Type ?u.2119290
idx : Type u_1
inst✝¹ : CommRing R
hp : Fact (Nat.Prime p)
inst✝ : Fintype idx
Φ : MvPolynomial idx ℤ
n : ℕ
this : Function.Injective ↑(Int.castRingHom ℚ)
⊢ vars (wittStructureInt p Φ n) ⊆ Finset.univ ×ˢ Finset.range (n + 1)

tactic: apply wittStructureRat_vars
state_before: p : ℕ
R : Type ?u.2119290
idx : Type u_1
inst✝¹ : CommRing R
hp : Fact (Nat.Prime p)
inst✝ : Fintype idx
Φ : MvPolynomial idx ℤ
n : ℕ
this : Function.Injective ↑(Int.castRingHom ℚ)
⊢ vars (wittStructureRat p (↑(map (Int.castRingHom ℚ)) Φ) n) ⊆ Finset.univ ×ˢ Finset.range (n + 1)
Theorem: PGame.lt_or_equiv_or_gf
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [lf_iff_lt_or_fuzzy, Fuzzy.swap_iff]
state_before: x y : PGame
⊢ x < y ∨ (x ≈ y) ∨ y ⧏ x

tactic: exact lt_or_equiv_or_gt_or_fuzzy x y
state_before: x y : PGame
⊢ x < y ∨ (x ≈ y) ∨ y < x ∨ x ‖ y
Theorem: Nat.factors_lemma
File: Mathlib/Data/Nat/Prime.lean

tactic: apply Nat.ne_of_gt
state_before: k : ℕ
⊢ k + 2 ≠ 1

tactic: apply Nat.succ_lt_succ
state_before: case h
k : ℕ
⊢ 1 < k + 2

tactic: apply Nat.zero_lt_succ
state_before: case h.a
k : ℕ
⊢ 0 < k + 1
Theorem: Homotopy.mkInductiveAux₃
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: subst j
state_before: ι : Type ?u.344609
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
P Q : ChainComplex V ℕ
e : P ⟶ Q
zero : X P 0 ⟶ X Q 1
comm_zero : Hom.f e 0 = zero ≫ d Q 1 0
one : X P 1 ⟶ X Q 2
comm_one : Hom.f e 1 = d P 1 0 ≫ zero + one ≫ d Q 2 1
succ :
  (n : ℕ) →
    (p :
        (f : X P n ⟶ X Q (n + 1)) ×'
          (f' : X P (n + 1) ⟶ X Q (n + 2)) ×' Hom.f e (n + 1) = d P (n + 1) n ≫ f + f' ≫ d Q (n + 2) (n + 1)) →
      (f'' : X P (n + 2) ⟶ X Q (n + 3)) ×' Hom.f e (n + 2) = d P (n + 2) (n + 1) ≫ p.snd.fst + f'' ≫ d Q (n + 3) (n + 2)
i j : ℕ
h : i + 1 = j
⊢ (mkInductiveAux₂ e zero comm_zero one comm_one succ i).snd.fst ≫ (xPrevIso Q h).hom =
    (xNextIso P h).inv ≫ (mkInductiveAux₂ e zero comm_zero one comm_one succ j).fst

tactic: rcases i with (_ | _ | i) <;> simp [mkInductiveAux₂]
state_before: ι : Type ?u.344609
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i✝ : ι
P Q : ChainComplex V ℕ
e : P ⟶ Q
zero : X P 0 ⟶ X Q 1
comm_zero : Hom.f e 0 = zero ≫ d Q 1 0
one : X P 1 ⟶ X Q 2
comm_one : Hom.f e 1 = d P 1 0 ≫ zero + one ≫ d Q 2 1
succ :
  (n : ℕ) →
    (p :
        (f : X P n ⟶ X Q (n + 1)) ×'
          (f' : X P (n + 1) ⟶ X Q (n + 2)) ×' Hom.f e (n + 1) = d P (n + 1) n ≫ f + f' ≫ d Q (n + 2) (n + 1)) →
      (f'' : X P (n + 2) ⟶ X Q (n + 3)) ×' Hom.f e (n + 2) = d P (n + 2) (n + 1) ≫ p.snd.fst + f'' ≫ d Q (n + 3) (n + 2)
i : ℕ
⊢ (mkInductiveAux₂ e zero comm_zero one comm_one succ i).snd.fst ≫ (xPrevIso Q (_ : i + 1 = i + 1)).hom =
    (xNextIso P (_ : i + 1 = i + 1)).inv ≫ (mkInductiveAux₂ e zero comm_zero one comm_one succ (i + 1)).fst
Theorem: CategoryTheory.Functor.congr_hom
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: subst h
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F G : C ⥤ D
h : F = G
X Y : C
f : X ⟶ Y
⊢ F.map f = eqToHom (_ : F.obj X = G.obj X) ≫ G.map f ≫ eqToHom (_ : G.obj Y = F.obj Y)

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
X Y : C
f : X ⟶ Y
⊢ F.map f = eqToHom (_ : F.obj X = F.obj X) ≫ F.map f ≫ eqToHom (_ : F.obj Y = F.obj Y)
Theorem: Real.Angle.sign_neg
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: simp_rw [sign, sin_neg, Left.sign_neg]
state_before: θ : Angle
⊢ sign (-θ) = -sign θ
Theorem: Multiset.fold_cons_right
File: Mathlib/Data/Multiset/Fold.lean

tactic: simp [hc.comm]
state_before: α : Type u_1
β : Type ?u.4822
op : α → α → α
hc : IsCommutative α op
ha : IsAssociative α op
b a : α
s : Multiset α
⊢ fold op b (a ::ₘ s) = op (fold op b s) a
Theorem: lipschitzWith_iff_dist_le_mul
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simp only [LipschitzWith, edist_nndist, dist_nndist]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
K : ℝ≥0
f : α → β
⊢ LipschitzWith K f ↔ ∀ (x y : α), dist (f x) (f y) ≤ ↑K * dist x y

tactic: norm_cast
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
K : ℝ≥0
f : α → β
⊢ (∀ (x y : α), ↑(nndist (f x) (f y)) ≤ ↑K * ↑(nndist x y)) ↔ ∀ (x y : α), ↑(nndist (f x) (f y)) ≤ ↑K * ↑(nndist x y)
Theorem: Real.arccos_of_le_neg_one
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [arccos, arcsin_of_le_neg_one hx, sub_neg_eq_add, add_halves']
state_before: x : ℝ
hx : x ≤ -1
⊢ arccos x = π
Theorem: MonoidHomClass.antilipschitz_of_bound
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simpa only [dist_eq_norm_div, map_div] using h (x / y)
state_before: 𝓕 : Type u_1
𝕜 : Type ?u.369462
α : Type ?u.369465
ι : Type ?u.369468
κ : Type ?u.369471
E : Type u_2
F : Type u_3
G : Type ?u.369480
inst✝³ : SeminormedGroup E
inst✝² : SeminormedGroup F
inst✝¹ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝ : MonoidHomClass 𝓕 E F
f : 𝓕
K : ℝ≥0
h : ∀ (x : E), ‖x‖ ≤ ↑K * ‖↑f x‖
x y : E
⊢ dist x y ≤ ↑K * dist (↑f x) (↑f y)
Theorem: Set.range_pair_subset
File: Mathlib/Data/Set/Prod.lean

tactic: have : (fun x => (f x, g x)) = Prod.map f g ∘ fun x => (x, x) := funext fun x => rfl
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
δ : Type ?u.78105
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
f : α → β
g : α → γ
⊢ (range fun x => (f x, g x)) ⊆ range f ×ˢ range g

tactic: rw [this, ← range_prod_map]
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
δ : Type ?u.78105
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
f : α → β
g : α → γ
this : (fun x => (f x, g x)) = Prod.map f g ∘ fun x => (x, x)
⊢ (range fun x => (f x, g x)) ⊆ range f ×ˢ range g

tactic: apply range_comp_subset_range
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
δ : Type ?u.78105
s s₁ s₂ : Set α
t t₁ t₂ : Set β
a : α
b : β
f : α → β
g : α → γ
this : (fun x => (f x, g x)) = Prod.map f g ∘ fun x => (x, x)
⊢ range (Prod.map f g ∘ fun x => (x, x)) ⊆ range (Prod.map f g)
Theorem: abs_cases
File: Mathlib/Algebra/Order/Ring/Abs.lean

tactic: by_cases h : 0 ≤ a
state_before: α : Type u_1
inst✝ : LinearOrderedRing α
a✝ b c a : α
⊢ abs a = a ∧ 0 ≤ a ∨ abs a = -a ∧ a < 0

tactic: left
state_before: case pos
α : Type u_1
inst✝ : LinearOrderedRing α
a✝ b c a : α
h : 0 ≤ a
⊢ abs a = a ∧ 0 ≤ a ∨ abs a = -a ∧ a < 0

tactic: exact ⟨abs_eq_self.mpr h, h⟩
state_before: case pos.h
α : Type u_1
inst✝ : LinearOrderedRing α
a✝ b c a : α
h : 0 ≤ a
⊢ abs a = a ∧ 0 ≤ a

tactic: right
state_before: case neg
α : Type u_1
inst✝ : LinearOrderedRing α
a✝ b c a : α
h : ¬0 ≤ a
⊢ abs a = a ∧ 0 ≤ a ∨ abs a = -a ∧ a < 0

tactic: push_neg at h
state_before: case neg.h
α : Type u_1
inst✝ : LinearOrderedRing α
a✝ b c a : α
h : ¬0 ≤ a
⊢ abs a = -a ∧ a < 0

tactic: exact ⟨abs_eq_neg_self.mpr (le_of_lt h), h⟩
state_before: case neg.h
α : Type u_1
inst✝ : LinearOrderedRing α
a✝ b c a : α
h : a < 0
⊢ abs a = -a ∧ a < 0
Theorem: div_nonpos_of_nonpos_of_nonneg
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [div_eq_mul_inv]
state_before: ι : Type ?u.10909
α : Type u_1
β : Type ?u.10915
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : a ≤ 0
hb : 0 ≤ b
⊢ a / b ≤ 0

tactic: exact mul_nonpos_of_nonpos_of_nonneg ha (inv_nonneg.2 hb)
state_before: ι : Type ?u.10909
α : Type u_1
β : Type ?u.10915
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : a ≤ 0
hb : 0 ≤ b
⊢ a * b⁻¹ ≤ 0