tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.forall_measure_preimage_mul_right_iff
File: Mathlib/MeasureTheory/Group/Measure.lean

tactic: exact ⟨fun h => ⟨h⟩, fun h => h.1⟩
state_before: 𝕜 : Type ?u.183132
G : Type u_1
H : Type ?u.183138
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSpace H
inst✝¹ : Mul G
μ✝ : Measure G
inst✝ : MeasurableMul G
μ : Measure G
⊢ (∀ (g : G), Measure.map (fun x => x * g) μ = μ) ↔ IsMulRightInvariant μ

tactic: simp_rw [Measure.ext_iff]
state_before: 𝕜 : Type ?u.183132
G : Type u_1
H : Type ?u.183138
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSpace H
inst✝¹ : Mul G
μ✝ : Measure G
inst✝ : MeasurableMul G
μ : Measure G
⊢ (∀ (g : G) (A : Set G), MeasurableSet A → ↑↑μ ((fun h => h * g) ⁻¹' A) = ↑↑μ A) ↔
    ∀ (g : G), Measure.map (fun x => x * g) μ = μ

tactic: refine' forall_congr' fun g => forall_congr' fun A => forall_congr' fun hA => _
state_before: 𝕜 : Type ?u.183132
G : Type u_1
H : Type ?u.183138
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSpace H
inst✝¹ : Mul G
μ✝ : Measure G
inst✝ : MeasurableMul G
μ : Measure G
⊢ (∀ (g : G) (A : Set G), MeasurableSet A → ↑↑μ ((fun h => h * g) ⁻¹' A) = ↑↑μ A) ↔
    ∀ (g : G) (s : Set G), MeasurableSet s → ↑↑(Measure.map (fun x => x * g) μ) s = ↑↑μ s

tactic: rw [map_apply (measurable_mul_const g) hA]
state_before: 𝕜 : Type ?u.183132
G : Type u_1
H : Type ?u.183138
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSpace H
inst✝¹ : Mul G
μ✝ : Measure G
inst✝ : MeasurableMul G
μ : Measure G
g : G
A : Set G
hA : MeasurableSet A
⊢ ↑↑μ ((fun h => h * g) ⁻¹' A) = ↑↑μ A ↔ ↑↑(Measure.map (fun x => x * g) μ) A = ↑↑μ A
Theorem: Bornology.isBounded_pi
File: Mathlib/Topology/Bornology/Constructions.lean

tactic: by_cases hne : ∃ i, S i = ∅
state_before: α : Type ?u.78124
β : Type ?u.78127
ι : Type u_2
π : ι → Type u_1
inst✝³ : Fintype ι
inst✝² : Bornology α
inst✝¹ : Bornology β
inst✝ : (i : ι) → Bornology (π i)
s : Set α
t : Set β
S : (i : ι) → Set (π i)
⊢ IsBounded (Set.pi univ S) ↔ (∃ i, S i = ∅) ∨ ∀ (i : ι), IsBounded (S i)

tactic: simp [hne, univ_pi_eq_empty_iff.2 hne]
state_before: case pos
α : Type ?u.78124
β : Type ?u.78127
ι : Type u_2
π : ι → Type u_1
inst✝³ : Fintype ι
inst✝² : Bornology α
inst✝¹ : Bornology β
inst✝ : (i : ι) → Bornology (π i)
s : Set α
t : Set β
S : (i : ι) → Set (π i)
hne : ∃ i, S i = ∅
⊢ IsBounded (Set.pi univ S) ↔ (∃ i, S i = ∅) ∨ ∀ (i : ι), IsBounded (S i)

tactic: simp only [hne, false_or_iff]
state_before: case neg
α : Type ?u.78124
β : Type ?u.78127
ι : Type u_2
π : ι → Type u_1
inst✝³ : Fintype ι
inst✝² : Bornology α
inst✝¹ : Bornology β
inst✝ : (i : ι) → Bornology (π i)
s : Set α
t : Set β
S : (i : ι) → Set (π i)
hne : ¬∃ i, S i = ∅
⊢ IsBounded (Set.pi univ S) ↔ (∃ i, S i = ∅) ∨ ∀ (i : ι), IsBounded (S i)

tactic: simp only [not_exists, ← Ne.def, ← nonempty_iff_ne_empty, ← univ_pi_nonempty_iff] at hne
state_before: case neg
α : Type ?u.78124
β : Type ?u.78127
ι : Type u_2
π : ι → Type u_1
inst✝³ : Fintype ι
inst✝² : Bornology α
inst✝¹ : Bornology β
inst✝ : (i : ι) → Bornology (π i)
s : Set α
t : Set β
S : (i : ι) → Set (π i)
hne : ¬∃ i, S i = ∅
⊢ IsBounded (Set.pi univ S) ↔ ∀ (i : ι), IsBounded (S i)

tactic: exact isBounded_pi_of_nonempty hne
state_before: case neg
α : Type ?u.78124
β : Type ?u.78127
ι : Type u_2
π : ι → Type u_1
inst✝³ : Fintype ι
inst✝² : Bornology α
inst✝¹ : Bornology β
inst✝ : (i : ι) → Bornology (π i)
s : Set α
t : Set β
S : (i : ι) → Set (π i)
hne : Set.Nonempty (Set.pi univ fun i => S i)
⊢ IsBounded (Set.pi univ S) ↔ ∀ (i : ι), IsBounded (S i)
Theorem: Polynomial.exists_forall_norm_le
File: Mathlib/Topology/Algebra/Polynomial.lean

tactic: rw [eq_C_of_degree_le_zero (le_of_not_gt hp0)]
state_before: α : Type ?u.177157
R : Type u_1
inst✝² : NormedRing R
inst✝¹ : IsAbsoluteValue norm
inst✝ : ProperSpace R
p : R[X]
hp0 : ¬0 < degree p
⊢ ∀ (y : R), ‖eval (coeff p 0) p‖ ≤ ‖eval y p‖

tactic: simp
state_before: α : Type ?u.177157
R : Type u_1
inst✝² : NormedRing R
inst✝¹ : IsAbsoluteValue norm
inst✝ : ProperSpace R
p : R[X]
hp0 : ¬0 < degree p
⊢ ∀ (y : R), ‖eval (coeff (↑C (coeff p 0)) 0) (↑C (coeff p 0))‖ ≤ ‖eval y (↑C (coeff p 0))‖
Theorem: tendsto_inv_zero_atTop
File: Mathlib/Topology/Algebra/Order/Field.lean

tactic: refine' (atTop_basis' 1).tendsto_right_iff.2 fun b hb => _
state_before: 𝕜 : Type u_1
α : Type ?u.24190
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
⊢ Tendsto (fun x => x⁻¹) (𝓝[Ioi 0] 0) atTop

tactic: have hb' : 0 < b := by positivity
state_before: 𝕜 : Type u_1
α : Type ?u.24190
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
b : 𝕜
hb : 1 ≤ b
⊢ ∀ᶠ (x : 𝕜) in 𝓝[Ioi 0] 0, x⁻¹ ∈ Ici b

tactic: filter_upwards [Ioc_mem_nhdsWithin_Ioi
    ⟨le_rfl, inv_pos.2 hb'⟩]with x hx using(le_inv hx.1 hb').1 hx.2
state_before: 𝕜 : Type u_1
α : Type ?u.24190
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
b : 𝕜
hb : 1 ≤ b
hb' : 0 < b
⊢ ∀ᶠ (x : 𝕜) in 𝓝[Ioi 0] 0, x⁻¹ ∈ Ici b

tactic: positivity
state_before: 𝕜 : Type u_1
α : Type ?u.24190
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
b : 𝕜
hb : 1 ≤ b
⊢ 0 < b
Theorem: FirstOrder.Language.BoundedFormula.sum_elim_comp_relabelAux
File: Mathlib/ModelTheory/Syntax.lean

tactic: ext x
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.79266
P : Type ?u.79269
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.79297
n m : ℕ
g : α → β ⊕ Fin n
v : β → M
xs : Fin (n + m) → M
⊢ Sum.elim v xs ∘ relabelAux g m = Sum.elim (Sum.elim v (xs ∘ ↑(castAdd m)) ∘ g) (xs ∘ ↑(natAdd n))

tactic: cases' x with x x
state_before: case h
L : Language
L' : Language
M : Type w
N : Type ?u.79266
P : Type ?u.79269
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.79297
n m : ℕ
g : α → β ⊕ Fin n
v : β → M
xs : Fin (n + m) → M
x : α ⊕ Fin m
⊢ (Sum.elim v xs ∘ relabelAux g m) x = Sum.elim (Sum.elim v (xs ∘ ↑(castAdd m)) ∘ g) (xs ∘ ↑(natAdd n)) x

tactic: simp only [BoundedFormula.relabelAux, Function.comp_apply, Sum.map_inl, Sum.elim_inl]
state_before: case h.inl
L : Language
L' : Language
M : Type w
N : Type ?u.79266
P : Type ?u.79269
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.79297
n m : ℕ
g : α → β ⊕ Fin n
v : β → M
xs : Fin (n + m) → M
x : α
⊢ (Sum.elim v xs ∘ relabelAux g m) (Sum.inl x) =
    Sum.elim (Sum.elim v (xs ∘ ↑(castAdd m)) ∘ g) (xs ∘ ↑(natAdd n)) (Sum.inl x)

tactic: cases' g x with l r <;> simp
state_before: case h.inl
L : Language
L' : Language
M : Type w
N : Type ?u.79266
P : Type ?u.79269
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.79297
n m : ℕ
g : α → β ⊕ Fin n
v : β → M
xs : Fin (n + m) → M
x : α
⊢ Sum.elim v xs (Sum.map id (↑finSumFinEquiv) (↑(Equiv.sumAssoc β (Fin n) (Fin m)) (Sum.inl (g x)))) =
    Sum.elim v (xs ∘ ↑(castAdd m)) (g x)

tactic: simp [BoundedFormula.relabelAux]
state_before: case h.inr
L : Language
L' : Language
M : Type w
N : Type ?u.79266
P : Type ?u.79269
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.79297
n m : ℕ
g : α → β ⊕ Fin n
v : β → M
xs : Fin (n + m) → M
x : Fin m
⊢ (Sum.elim v xs ∘ relabelAux g m) (Sum.inr x) =
    Sum.elim (Sum.elim v (xs ∘ ↑(castAdd m)) ∘ g) (xs ∘ ↑(natAdd n)) (Sum.inr x)
Theorem: Bool.coe_bool_iff
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ {a b : Bool}, (a = true ↔ b = true) ↔ a = b
Theorem: ConvexOn.le_on_segment'
File: Mathlib/Analysis/Convex/Function.lean

tactic: gcongr
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.451309
α : Type ?u.451312
β : Type u_3
ι : Type ?u.451318
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : LinearOrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f g : E → β
hf : ConvexOn 𝕜 s f
x y : E
hx : x ∈ s
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • f x + b • f y ≤ a • max (f x) (f y) + b • max (f x) (f y)

tactic: apply le_max_left
state_before: case h₁.h₁
𝕜 : Type u_1
E : Type u_2
F : Type ?u.451309
α : Type ?u.451312
β : Type u_3
ι : Type ?u.451318
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : LinearOrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f g : E → β
hf : ConvexOn 𝕜 s f
x y : E
hx : x ∈ s
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ f x ≤ max (f x) (f y)

tactic: apply le_max_right
state_before: case h₂.h₁
𝕜 : Type u_1
E : Type u_2
F : Type ?u.451309
α : Type ?u.451312
β : Type u_3
ι : Type ?u.451318
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : LinearOrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f g : E → β
hf : ConvexOn 𝕜 s f
x y : E
hx : x ∈ s
hy : y ∈ s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ f y ≤ max (f x) (f y)
Theorem: HilbertBasis.orthonormal
File: Mathlib/Analysis/InnerProductSpace/l2Space.lean

tactic: rw [orthonormal_iff_ite]
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : IsROrC 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type ?u.742653
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
b : HilbertBasis ι 𝕜 E
⊢ Orthonormal 𝕜 fun i => ↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 i 1)

tactic: intro i j
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : IsROrC 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type ?u.742653
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
b : HilbertBasis ι 𝕜 E
⊢ ∀ (i j : ι),
    inner (↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 i 1))
        (↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 j 1)) =
      if i = j then 1 else 0

tactic: rw [← b.repr.inner_map_map (b i) (b j), b.repr_self, b.repr_self, lp.inner_single_left,
  lp.single_apply]
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : IsROrC 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type ?u.742653
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
b : HilbertBasis ι 𝕜 E
i j : ι
⊢ inner (↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 i 1)) (↑(LinearIsometryEquiv.symm b.repr) (lp.single 2 j 1)) =
    if i = j then 1 else 0

tactic: simp
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : IsROrC 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type ?u.742653
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
b : HilbertBasis ι 𝕜 E
i j : ι
⊢ inner 1 (if h : i = j then (_ : j = i) ▸ 1 else 0) = if i = j then 1 else 0
Theorem: MvPolynomial.mapEquiv_trans
File: Mathlib/Data/MvPolynomial/Equiv.lean

tactic: simp only [RingEquiv.coe_trans, comp_apply, mapEquiv_apply, RingEquiv.coe_ringHom_trans,
  map_map]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e✝ : ℕ
s : σ →₀ ℕ
inst✝³ : CommSemiring R
inst✝² : CommSemiring S₁
inst✝¹ : CommSemiring S₂
inst✝ : CommSemiring S₃
e : S₁ ≃+* S₂
f : S₂ ≃+* S₃
p : MvPolynomial σ S₁
⊢ ↑(RingEquiv.trans (mapEquiv σ e) (mapEquiv σ f)) p = ↑(mapEquiv σ (RingEquiv.trans e f)) p
Theorem: Finsupp.comp_liftAddHom
File: Mathlib/Algebra/BigOperators/Finsupp.lean

tactic: rw [liftAddHom_symm_apply, AddMonoidHom.comp_assoc, liftAddHom_comp_single]
state_before: α : Type u_4
ι : Type ?u.518287
γ : Type ?u.518290
A : Type ?u.518293
B : Type ?u.518296
C : Type ?u.518299
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.521429
M : Type u_1
M' : Type ?u.521435
N : Type u_2
P : Type u_3
G : Type ?u.521444
H : Type ?u.521447
R : Type ?u.521450
S : Type ?u.521453
inst✝² : AddCommMonoid M
inst✝¹ : AddCommMonoid N
inst✝ : AddCommMonoid P
g : N →+ P
f : α → M →+ N
a : α
⊢ ↑(AddEquiv.symm liftAddHom) (AddMonoidHom.comp g (↑liftAddHom f)) a = AddMonoidHom.comp g (f a)
Theorem: Set.prod_mulIndicator_subset_of_eq_one
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: rw [← Finset.prod_subset h _]
state_before: α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
⊢ ∏ i in s, g i (f i) = ∏ i in t, g i (mulIndicator (↑s) f i)

tactic: apply Finset.prod_congr rfl
state_before: α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
⊢ ∏ i in s, g i (f i) = ∏ x in s, g x (mulIndicator (↑s) f x)

tactic: intro i hi
state_before: α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
⊢ ∀ (x : α), x ∈ s → g x (f x) = g x (mulIndicator (↑s) f x)

tactic: congr
state_before: α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
i : α
hi : i ∈ s
⊢ g i (f i) = g i (mulIndicator (↑s) f i)

tactic: symm
state_before: case e_a
α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
i : α
hi : i ∈ s
⊢ f i = mulIndicator (↑s) f i

tactic: exact mulIndicator_of_mem (α := α) hi f
state_before: case e_a
α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
i : α
hi : i ∈ s
⊢ mulIndicator (↑s) f i = f i

tactic: refine' fun i _ hn => _
state_before: α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
⊢ ∀ (x : α), x ∈ t → ¬x ∈ s → g x (mulIndicator (↑s) f x) = 1

tactic: convert hg i
state_before: α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
i : α
x✝ : i ∈ t
hn : ¬i ∈ s
⊢ g i (mulIndicator (↑s) f i) = 1

tactic: exact mulIndicator_of_not_mem (α := α) hn f
state_before: case h.e'_2.h.e'_2
α : Type u_2
β : Type ?u.100673
ι : Type ?u.100676
M : Type u_3
N : Type u_1
inst✝¹ : CommMonoid M
inst✝ : One N
f : α → N
g : α → N → M
s t : Finset α
h : s ⊆ t
hg : ∀ (a : α), g a 1 = 1
i : α
x✝ : i ∈ t
hn : ¬i ∈ s
⊢ mulIndicator (↑s) f i = 1
Theorem: sdiff_lt
File: Mathlib/Order/BooleanAlgebra.lean

tactic: refine' sdiff_le.lt_of_ne fun h => hy _
state_before: α : Type u
β : Type ?u.21257
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
hx : y ≤ x
hy : y ≠ ⊥
⊢ x \ y < x

tactic: rw [sdiff_eq_self_iff_disjoint', disjoint_iff] at h
state_before: α : Type u
β : Type ?u.21257
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
hx : y ≤ x
hy : y ≠ ⊥
h : x \ y = x
⊢ y = ⊥

tactic: rw [← h, inf_eq_right.mpr hx]
state_before: α : Type u
β : Type ?u.21257
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
hx : y ≤ x
hy : y ≠ ⊥
h : x ⊓ y = ⊥
⊢ y = ⊥
Theorem: Nat.image_snd_divisorsAntidiagonal
File: Mathlib/NumberTheory/Divisors.lean

tactic: rw [← map_swap_divisorsAntidiagonal, map_eq_image, image_image]
state_before: n : ℕ
⊢ image Prod.snd (divisorsAntidiagonal n) = divisors n

tactic: exact image_fst_divisorsAntidiagonal
state_before: n : ℕ
⊢ image (Prod.snd ∘ ↑(Equiv.toEmbedding (Equiv.prodComm ℕ ℕ))) (divisorsAntidiagonal n) = divisors n
Theorem: SimpleGraph.incMatrix_of_mem_incidenceSet
File: Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean

tactic: rw [incMatrix_apply, Set.indicator_of_mem h, Pi.one_apply]
state_before: R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝ : MulZeroOneClass R
a b : α
e : Sym2 α
h : e ∈ incidenceSet G a
⊢ incMatrix R G a e = 1
Theorem: IsCompact.inter_right
File: Mathlib/Topology/SubsetProperties.lean

tactic: intro f hnf hstf
state_before: α : Type u
β : Type v
ι : Type ?u.6738
π : ι → Type ?u.6743
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
hs : IsCompact s
ht : IsClosed t
⊢ IsCompact (s ∩ t)

tactic: obtain ⟨a, hsa, ha⟩ : ∃ a ∈ s, ClusterPt a f :=
  hs (le_trans hstf (le_principal_iff.2 (inter_subset_left _ _)))
state_before: α : Type u
β : Type v
ι : Type ?u.6738
π : ι → Type ?u.6743
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
hs : IsCompact s
ht : IsClosed t
f : Filter α
hnf : NeBot f
hstf : f ≤ 𝓟 (s ∩ t)
⊢ ∃ a, a ∈ s ∩ t ∧ ClusterPt a f

tactic: have : a ∈ t := ht.mem_of_nhdsWithin_neBot <|
  ha.mono <| le_trans hstf (le_principal_iff.2 (inter_subset_right _ _))
state_before: case intro.intro
α : Type u
β : Type v
ι : Type ?u.6738
π : ι → Type ?u.6743
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
hs : IsCompact s
ht : IsClosed t
f : Filter α
hnf : NeBot f
hstf : f ≤ 𝓟 (s ∩ t)
a : α
hsa : a ∈ s
ha : ClusterPt a f
⊢ ∃ a, a ∈ s ∩ t ∧ ClusterPt a f

tactic: exact ⟨a, ⟨hsa, this⟩, ha⟩
state_before: case intro.intro
α : Type u
β : Type v
ι : Type ?u.6738
π : ι → Type ?u.6743
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
hs : IsCompact s
ht : IsClosed t
f : Filter α
hnf : NeBot f
hstf : f ≤ 𝓟 (s ∩ t)
a : α
hsa : a ∈ s
ha : ClusterPt a f
this : a ∈ t
⊢ ∃ a, a ∈ s ∩ t ∧ ClusterPt a f
Theorem: sign_neg
File: Mathlib/Data/Sign.lean

tactic: rwa [sign_apply, if_neg <| asymm ha, if_pos]
state_before: α : Type u_1
inst✝² : Zero α
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a : α
ha : a < 0
⊢ ↑sign a = -1
Theorem: ENNReal.le_inv_iff_le_inv
File: Mathlib/Data/Real/ENNReal.lean

tactic: simpa only [inv_inv] using @ENNReal.inv_le_inv a⁻¹ b
state_before: α : Type ?u.269244
β : Type ?u.269247
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ a ≤ b⁻¹ ↔ b ≤ a⁻¹
Theorem: Filter.coprodᵢ_cocompact
File: Mathlib/Topology/SubsetProperties.lean

tactic: refine' le_antisymm (iSup_le fun i => Filter.comap_cocompact_le (continuous_apply i)) _
state_before: α : Type u
β : Type v
ι : Type ?u.140164
π : ι → Type ?u.140169
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s t : Set α
inst✝¹ : (i : ι) → TopologicalSpace (π i)
δ : Type u_1
κ : δ → Type u_2
inst✝ : (d : δ) → TopologicalSpace (κ d)
⊢ (Filter.coprodᵢ fun d => cocompact (κ d)) = cocompact ((d : δ) → κ d)

tactic: refine' compl_surjective.forall.2 fun s H => _
state_before: α : Type u
β : Type v
ι : Type ?u.140164
π : ι → Type ?u.140169
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s t : Set α
inst✝¹ : (i : ι) → TopologicalSpace (π i)
δ : Type u_1
κ : δ → Type u_2
inst✝ : (d : δ) → TopologicalSpace (κ d)
⊢ cocompact ((d : δ) → κ d) ≤ Filter.coprodᵢ fun d => cocompact (κ d)

tactic: simp only [compl_mem_coprodᵢ, Filter.mem_cocompact, compl_subset_compl, image_subset_iff] at H⊢
state_before: α : Type u
β : Type v
ι : Type ?u.140164
π : ι → Type ?u.140169
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t : Set α
inst✝¹ : (i : ι) → TopologicalSpace (π i)
δ : Type u_1
κ : δ → Type u_2
inst✝ : (d : δ) → TopologicalSpace (κ d)
s : Set ((i : δ) → κ i)
H : sᶜ ∈ Filter.coprodᵢ fun d => cocompact (κ d)
⊢ sᶜ ∈ cocompact ((d : δ) → κ d)

tactic: choose K hKc htK using H
state_before: α : Type u
β : Type v
ι : Type ?u.140164
π : ι → Type ?u.140169
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t : Set α
inst✝¹ : (i : ι) → TopologicalSpace (π i)
δ : Type u_1
κ : δ → Type u_2
inst✝ : (d : δ) → TopologicalSpace (κ d)
s : Set ((i : δ) → κ i)
H : ∀ (i : δ), ∃ t, IsCompact t ∧ s ⊆ Function.eval i ⁻¹' t
⊢ ∃ t, IsCompact t ∧ s ⊆ t

tactic: exact ⟨Set.pi univ K, isCompact_univ_pi hKc, fun f hf i _ => htK i hf⟩
state_before: α : Type u
β : Type v
ι : Type ?u.140164
π : ι → Type ?u.140169
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t : Set α
inst✝¹ : (i : ι) → TopologicalSpace (π i)
δ : Type u_1
κ : δ → Type u_2
inst✝ : (d : δ) → TopologicalSpace (κ d)
s : Set ((i : δ) → κ i)
K : (i : δ) → Set (κ i)
hKc : ∀ (i : δ), IsCompact (K i)
htK : ∀ (i : δ), s ⊆ Function.eval i ⁻¹' K i
⊢ ∃ t, IsCompact t ∧ s ⊆ t
Theorem: one_div_le_one_div_of_le
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simpa using inv_le_inv_of_le ha h
state_before: ι : Type ?u.82335
α : Type u_1
β : Type ?u.82341
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
h : a ≤ b
⊢ 1 / b ≤ 1 / a
Theorem: PadicInt.lift_unique
File: Mathlib/NumberTheory/Padics/RingHoms.lean

tactic: ext1 r
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), RingHom.comp (ZMod.castHom (_ : p ^ k1 ∣ p ^ k2) (ZMod (p ^ k1))) (f k2) = f k1
g : R →+* ℤ_[p]
hg : ∀ (n : ℕ), RingHom.comp (toZModPow n) g = f n
⊢ lift f_compat = g

tactic: apply eq_of_forall_dist_le
state_before: case a
p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), RingHom.comp (ZMod.castHom (_ : p ^ k1 ∣ p ^ k2) (ZMod (p ^ k1))) (f k2) = f k1
g : R →+* ℤ_[p]
hg : ∀ (n : ℕ), RingHom.comp (toZModPow n) g = f n
r : R
⊢ ↑(lift f_compat) r = ↑g r

tactic: intro ε hε
state_before: case a.h
p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), RingHom.comp (ZMod.castHom (_ : p ^ k1 ∣ p ^ k2) (ZMod (p ^ k1))) (f k2) = f k1
g : R →+* ℤ_[p]
hg : ∀ (n : ℕ), RingHom.comp (toZModPow n) g = f n
r : R
⊢ ∀ (ε : ℝ), ε > 0 → dist (↑(lift f_compat) r) (↑g r) ≤ ε

tactic: obtain ⟨n, hn⟩ := exists_pow_neg_lt p hε
state_before: case a.h
p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), RingHom.comp (ZMod.castHom (_ : p ^ k1 ∣ p ^ k2) (ZMod (p ^ k1))) (f k2) = f k1
g : R →+* ℤ_[p]
hg : ∀ (n : ℕ), RingHom.comp (toZModPow n) g = f n
r : R
ε : ℝ
hε : ε > 0
⊢ dist (↑(lift f_compat) r) (↑g r) ≤ ε

tactic: apply le_trans _ (le_of_lt hn)
state_before: case a.h.intro
p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), RingHom.comp (ZMod.castHom (_ : p ^ k1 ∣ p ^ k2) (ZMod (p ^ k1))) (f k2) = f k1
g : R →+* ℤ_[p]
hg : ∀ (n : ℕ), RingHom.comp (toZModPow n) g = f n
r : R
ε : ℝ
hε : ε > 0
n : ℕ
hn : ↑p ^ (-↑n) < ε
⊢ dist (↑(lift f_compat) r) (↑g r) ≤ ε

tactic: rw [dist_eq_norm, norm_le_pow_iff_mem_span_pow, ← ker_toZModPow, RingHom.mem_ker,
  RingHom.map_sub, ← RingHom.comp_apply, ← RingHom.comp_apply, lift_spec, hg, sub_self]
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
R : Type u_1
inst✝ : NonAssocSemiring R
f : (k : ℕ) → R →+* ZMod (p ^ k)
f_compat : ∀ (k1 k2 : ℕ) (hk : k1 ≤ k2), RingHom.comp (ZMod.castHom (_ : p ^ k1 ∣ p ^ k2) (ZMod (p ^ k1))) (f k2) = f k1
g : R →+* ℤ_[p]
hg : ∀ (n : ℕ), RingHom.comp (toZModPow n) g = f n
r : R
ε : ℝ
hε : ε > 0
n : ℕ
hn : ↑p ^ (-↑n) < ε
⊢ dist (↑(lift f_compat) r) (↑g r) ≤ ↑p ^ (-↑n)