tasksource/leandojo huggingface dataset:
Theorem: LocalHomeomorph.continuousAt_iff_continuousAt_comp_left
File: Mathlib/Topology/LocalHomeomorph.lean

tactic: have hx : f x ∈ e.source := (mem_of_mem_nhds h : _)
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.102343
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
x : γ
h : f ⁻¹' e.source ∈ 𝓝 x
⊢ ContinuousAt f x ↔ ContinuousAt (↑e ∘ f) x

tactic: have h' : f ⁻¹' e.source ∈ 𝓝[univ] x := by rwa [nhdsWithin_univ]
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.102343
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
x : γ
h : f ⁻¹' e.source ∈ 𝓝 x
hx : f x ∈ e.source
⊢ ContinuousAt f x ↔ ContinuousAt (↑e ∘ f) x

tactic: rw [← continuousWithinAt_univ, ← continuousWithinAt_univ,
  e.continuousWithinAt_iff_continuousWithinAt_comp_left hx h']
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.102343
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
x : γ
h : f ⁻¹' e.source ∈ 𝓝 x
hx : f x ∈ e.source
h' : f ⁻¹' e.source ∈ 𝓝[univ] x
⊢ ContinuousAt f x ↔ ContinuousAt (↑e ∘ f) x

tactic: rwa [nhdsWithin_univ]
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.102343
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
x : γ
h : f ⁻¹' e.source ∈ 𝓝 x
hx : f x ∈ e.source
⊢ f ⁻¹' e.source ∈ 𝓝[univ] x
Theorem: Filter.ptendsto_of_ptendsto'
File: Mathlib/Order/Filter/Partial.lean

tactic: rw [ptendsto_def, ptendsto'_def]
state_before: α : Type u
β : Type v
γ : Type w
f : α →. β
l₁ : Filter α
l₂ : Filter β
⊢ PTendsto' f l₁ l₂ → PTendsto f l₁ l₂

tactic: exact fun h s sl₂ => mem_of_superset (h s sl₂) (PFun.preimage_subset_core _ _)
state_before: α : Type u
β : Type v
γ : Type w
f : α →. β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (s : Set β), s ∈ l₂ → PFun.preimage f s ∈ l₁) → ∀ (s : Set β), s ∈ l₂ → PFun.core f s ∈ l₁
Theorem: Mathlib.Meta.NormNum.isRat_inv_neg
File: Mathlib/Tactic/NormNum/Basic.lean

tactic: rintro ⟨_, rfl⟩
state_before: α : Type u_1
inst✝¹ : DivisionRing α
inst✝ : CharZero α
a : α
n d : ℕ
⊢ IsRat a (Int.negOfNat (Nat.succ n)) d → IsRat a⁻¹ (Int.negOfNat d) (Nat.succ n)

tactic: simp only [Int.negOfNat_eq]
state_before: case mk
α : Type u_1
inst✝¹ : DivisionRing α
inst✝ : CharZero α
n d : ℕ
inv✝ : Invertible ↑d
⊢ IsRat (↑(Int.negOfNat (Nat.succ n)) * ⅟↑d)⁻¹ (Int.negOfNat d) (Nat.succ n)

tactic: have := invertibleOfNonzero (α := α) (Nat.cast_ne_zero.2 (Nat.succ_ne_zero n))
state_before: case mk
α : Type u_1
inst✝¹ : DivisionRing α
inst✝ : CharZero α
n d : ℕ
inv✝ : Invertible ↑d
⊢ IsRat (↑(-Int.ofNat (Nat.succ n)) * ⅟↑d)⁻¹ (-Int.ofNat d) (Nat.succ n)

tactic: generalize Nat.succ n = n at *
state_before: case mk
α : Type u_1
inst✝¹ : DivisionRing α
inst✝ : CharZero α
n d : ℕ
inv✝ : Invertible ↑d
this : Invertible ↑(Nat.succ n)
⊢ IsRat (↑(-Int.ofNat (Nat.succ n)) * ⅟↑d)⁻¹ (-Int.ofNat d) (Nat.succ n)

tactic: use this
state_before: case mk
α : Type u_1
inst✝¹ : DivisionRing α
inst✝ : CharZero α
n✝ d : ℕ
inv✝ : Invertible ↑d
n : ℕ
this : Invertible ↑n
⊢ IsRat (↑(-Int.ofNat n) * ⅟↑d)⁻¹ (-Int.ofNat d) n

tactic: simp only [Int.ofNat_eq_coe, Int.cast_neg,
Int.cast_ofNat, invOf_eq_inv, inv_neg,  neg_mul, mul_inv_rev, inv_inv]
state_before: case mk
α : Type u_1
inst✝¹ : DivisionRing α
inst✝ : CharZero α
n✝ d : ℕ
inv✝ : Invertible ↑d
n : ℕ
this : Invertible ↑n
⊢ (↑(-Int.ofNat n) * ⅟↑d)⁻¹ = ↑(-Int.ofNat d) * ⅟↑n
Theorem: Nat.land'_zero
File: Mathlib/Data/Nat/Bitwise.lean

tactic: simp [land']
state_before: n : ℕ
⊢ land' n 0 = 0
Theorem: convexJoin_singleton_right
File: Mathlib/Analysis/Convex/Join.lean

tactic: simp [convexJoin]
state_before: ι : Sort ?u.27529
𝕜 : Type u_2
E : Type u_1
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s✝ t s₁ s₂ t₁ t₂ u : Set E
x y✝ : E
s : Set E
y : E
⊢ convexJoin 𝕜 s {y} = ⋃ (x : E) (_ : x ∈ s), segment 𝕜 x y
Theorem: eventually_nhds_iff
File: Mathlib/Topology/Basic.lean

tactic: simp only [subset_def, exists_prop, mem_setOf_eq]
state_before: α : Type u
β : Type v
ι : Sort w
a✝ : α
s s₁ s₂ t : Set α
p✝ p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
a : α
p : α → Prop
⊢ (∃ t, t ⊆ {x | (fun x => p x) x} ∧ IsOpen t ∧ a ∈ t) ↔ ∃ t, (∀ (x : α), x ∈ t → p x) ∧ IsOpen t ∧ a ∈ t
Theorem: Irreducible.not_square
File: Mathlib/Algebra/Associated.lean

tactic: rintro ⟨b, rfl⟩
state_before: α : Type u_1
β : Type ?u.95275
γ : Type ?u.95278
δ : Type ?u.95281
inst✝ : CommMonoid α
a : α
ha : Irreducible a
⊢ ¬IsSquare a

tactic: simp only [irreducible_mul_iff, or_self_iff] at ha
state_before: case intro
α : Type u_1
β : Type ?u.95275
γ : Type ?u.95278
δ : Type ?u.95281
inst✝ : CommMonoid α
b : α
ha : Irreducible (b * b)
⊢ False

tactic: exact ha.1.not_unit ha.2
state_before: case intro
α : Type u_1
β : Type ?u.95275
γ : Type ?u.95278
δ : Type ?u.95281
inst✝ : CommMonoid α
b : α
ha : Irreducible b ∧ IsUnit b
⊢ False
Theorem: MonoidAlgebra.liftNC_mul
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: conv_rhs => rw [← sum_single a, ← sum_single b]
state_before: k : Type u₁
G : Type u₂
R : Type u_2
inst✝³ : Semiring k
inst✝² : Mul G
inst✝¹ : Semiring R
g_hom : Type u_1
inst✝ : MulHomClass g_hom G R
f : k →+* R
g : g_hom
a b : MonoidAlgebra k G
h_comm : ∀ {x y : G}, y ∈ a.support → Commute (↑f (↑b x)) (↑g y)
⊢ ↑(liftNC ↑f ↑g) (a * b) = ↑(liftNC ↑f ↑g) a * ↑(liftNC ↑f ↑g) b

tactic: simp_rw [mul_def, map_finsupp_sum, liftNC_single, Finsupp.sum_mul, Finsupp.mul_sum]
state_before: k : Type u₁
G : Type u₂
R : Type u_2
inst✝³ : Semiring k
inst✝² : Mul G
inst✝¹ : Semiring R
g_hom : Type u_1
inst✝ : MulHomClass g_hom G R
f : k →+* R
g : g_hom
a b : MonoidAlgebra k G
h_comm : ∀ {x y : G}, y ∈ a.support → Commute (↑f (↑b x)) (↑g y)
⊢ ↑(liftNC ↑f ↑g) (a * b) = ↑(liftNC ↑f ↑g) (sum a single) * ↑(liftNC ↑f ↑g) (sum b single)

tactic: refine Finset.sum_congr rfl fun y hy => Finset.sum_congr rfl fun x _hx => ?_
state_before: k : Type u₁
G : Type u₂
R : Type u_2
inst✝³ : Semiring k
inst✝² : Mul G
inst✝¹ : Semiring R
g_hom : Type u_1
inst✝ : MulHomClass g_hom G R
f : k →+* R
g : g_hom
a b : MonoidAlgebra k G
h_comm : ∀ {x y : G}, y ∈ a.support → Commute (↑f (↑b x)) (↑g y)
⊢ (sum a fun a b_1 => sum b fun a_1 b => ↑↑f (b_1 * b) * ↑g (a * a_1)) =
    sum a fun a c => sum b fun a_1 c_1 => ↑↑f c * ↑g a * (↑↑f c_1 * ↑g a_1)

tactic: simp [mul_assoc, (h_comm hy).left_comm]
state_before: k : Type u₁
G : Type u₂
R : Type u_2
inst✝³ : Semiring k
inst✝² : Mul G
inst✝¹ : Semiring R
g_hom : Type u_1
inst✝ : MulHomClass g_hom G R
f : k →+* R
g : g_hom
a b : MonoidAlgebra k G
h_comm : ∀ {x y : G}, y ∈ a.support → Commute (↑f (↑b x)) (↑g y)
y : G
hy : y ∈ a.support
x : G
_hx : x ∈ b.support
⊢ (fun a_1 b => ↑↑f (↑a y * b) * ↑g (y * a_1)) x (↑b x) = (fun a_1 c => ↑↑f (↑a y) * ↑g y * (↑↑f c * ↑g a_1)) x (↑b x)
Theorem: tendsto_self_mul_const_pow_of_abs_lt_one
File: Mathlib/Analysis/SpecificLimits/Normed.lean

tactic: simpa only [pow_one] using tendsto_pow_const_mul_const_pow_of_abs_lt_one 1 hr
state_before: α : Type ?u.129259
β : Type ?u.129262
ι : Type ?u.129265
r : ℝ
hr : abs r < 1
⊢ Tendsto (fun n => ↑n * r ^ n) atTop (𝓝 0)
Theorem: MeasurableSet.biInter
File: Mathlib/MeasureTheory/MeasurableSpaceDef.lean

tactic: rw [compl_iInter₂]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.7316
δ : Type ?u.7319
δ' : Type ?u.7322
ι : Sort ?u.7325
s✝ t u : Set α
m : MeasurableSpace α
f : β → Set α
s : Set β
hs : Set.Countable s
h : ∀ (b : β), b ∈ s → MeasurableSet (f b)
⊢ MeasurableSet ((⋂ (b : β) (_ : b ∈ s), f b)ᶜ)

tactic: exact .biUnion hs fun b hb => (h b hb).compl
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.7316
δ : Type ?u.7319
δ' : Type ?u.7322
ι : Sort ?u.7325
s✝ t u : Set α
m : MeasurableSpace α
f : β → Set α
s : Set β
hs : Set.Countable s
h : ∀ (b : β), b ∈ s → MeasurableSet (f b)
⊢ MeasurableSet (⋃ (i : β) (_ : i ∈ s), f iᶜ)
Theorem: MeasureTheory.Measure.restrict_compl_add_restrict
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [add_comm, restrict_add_restrict_compl hs]
state_before: α : Type u_1
β : Type ?u.298946
γ : Type ?u.298949
δ : Type ?u.298952
ι : Type ?u.298955
R : Type ?u.298958
R' : Type ?u.298961
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : MeasurableSet s
⊢ restrict μ (sᶜ) + restrict μ s = μ
Theorem: Polynomial.C_0
File: Mathlib/Data/Polynomial/Basic.lean

tactic: simp
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ ↑C 0 = 0
Theorem: irrational_mul_rat_iff
File: Mathlib/Data/Real/Irrational.lean

tactic: rw [mul_comm, irrational_rat_mul_iff]
state_before: q : ℚ
m : ℤ
n : ℕ
x : ℝ
⊢ Irrational (x * ↑q) ↔ q ≠ 0 ∧ Irrational x
Theorem: convexHull_neg
File: Mathlib/Analysis/Convex/Hull.lean

tactic: simp_rw [← image_neg]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.48966
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s✝ s : Set E
⊢ ↑(convexHull 𝕜).toOrderHom (-s) = -↑(convexHull 𝕜).toOrderHom s

tactic: exact (AffineMap.image_convexHull _ <| -1).symm
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.48966
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s✝ s : Set E
⊢ ↑(convexHull 𝕜).toOrderHom (Neg.neg '' s) = Neg.neg '' ↑(convexHull 𝕜).toOrderHom s
Theorem: sSup_image
File: Mathlib/Order/CompleteLattice.lean

tactic: rw [← iSup_subtype'', sSup_image']
state_before: α : Type u_2
β : Type u_1
β₂ : Type ?u.111484
γ : Type ?u.111487
ι : Sort ?u.111490
ι' : Sort ?u.111493
κ : ι → Sort ?u.111498
κ' : ι' → Sort ?u.111503
inst✝ : CompleteLattice α
f✝ g s✝ t : ι → α
a b : α
s : Set β
f : β → α
⊢ sSup (f '' s) = ⨆ (a : β) (_ : a ∈ s), f a
Theorem: CategoryTheory.HomOrthogonal.eq_zero
File: Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean

tactic: haveI := o i j w
state_before: C : Type u
inst✝¹ : Category C
ι : Type u_1
s : ι → C
inst✝ : HasZeroMorphisms C
o : HomOrthogonal s
i j : ι
w : i ≠ j
f : s i ⟶ s j
⊢ f = 0

tactic: apply Subsingleton.elim
state_before: C : Type u
inst✝¹ : Category C
ι : Type u_1
s : ι → C
inst✝ : HasZeroMorphisms C
o : HomOrthogonal s
i j : ι
w : i ≠ j
f : s i ⟶ s j
this : Subsingleton (s i ⟶ s j)
⊢ f = 0
Theorem: Rat.toNNRat_mul
File: Mathlib/Data/Rat/NNRat.lean

tactic: cases' le_total 0 q with hq hq
state_before: p q : ℚ
hp : 0 ≤ p
⊢ toNNRat (p * q) = toNNRat p * toNNRat q

tactic: ext <;> simp [toNNRat, hp, hq, max_eq_left, mul_nonneg]
state_before: case inl
p q : ℚ
hp : 0 ≤ p
hq : 0 ≤ q
⊢ toNNRat (p * q) = toNNRat p * toNNRat q

tactic: have hpq := mul_nonpos_of_nonneg_of_nonpos hp hq
state_before: case inr
p q : ℚ
hp : 0 ≤ p
hq : q ≤ 0
⊢ toNNRat (p * q) = toNNRat p * toNNRat q

tactic: rw [toNNRat_eq_zero.2 hq, toNNRat_eq_zero.2 hpq, mul_zero]
state_before: case inr
p q : ℚ
hp : 0 ≤ p
hq : q ≤ 0
hpq : p * q ≤ 0
⊢ toNNRat (p * q) = toNNRat p * toNNRat q
Theorem: CategoryTheory.IsConnected.of_induct
File: Mathlib/CategoryTheory/IsConnected.lean

tactic: have w := h { j | F j = F j₀ } rfl (fun {j₁} {j₂} f => by
  change F j₁ = F j₀ ↔ F j₂ = F j₀
  simp [a f];)
state_before: J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : Nonempty J
j₀ : J
h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p
α : Type u₁
F : J → α
a : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂
⊢ ∀ (j j' : J), F j = F j'

tactic: dsimp at w
state_before: J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : Nonempty J
j₀ : J
h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p
α : Type u₁
F : J → α
a : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂
w : ∀ (j : J), j ∈ {j | F j = F j₀}
⊢ ∀ (j j' : J), F j = F j'

tactic: intro j j'
state_before: J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : Nonempty J
j₀ : J
h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p
α : Type u₁
F : J → α
a : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂
w : ∀ (j : J), j ∈ {j | F j = F j₀}
⊢ ∀ (j j' : J), F j = F j'

tactic: rw [w j, w j']
state_before: J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : Nonempty J
j₀ : J
h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p
α : Type u₁
F : J → α
a : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂
w : ∀ (j : J), j ∈ {j | F j = F j₀}
j j' : J
⊢ F j = F j'

tactic: change F j₁ = F j₀ ↔ F j₂ = F j₀
state_before: J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : Nonempty J
j₀ : J
h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p
α : Type u₁
F : J → α
a : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂
j₁ j₂ : J
f : j₁ ⟶ j₂
⊢ j₁ ∈ {j | F j = F j₀} ↔ j₂ ∈ {j | F j = F j₀}

tactic: simp [a f]
state_before: J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : Nonempty J
j₀ : J
h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p
α : Type u₁
F : J → α
a : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂
j₁ j₂ : J
f : j₁ ⟶ j₂
⊢ F j₁ = F j₀ ↔ F j₂ = F j₀
Theorem: rothNumberNat_add_le
File: Mathlib/Combinatorics/Additive/SalemSpencer.lean

tactic: simp_rw [rothNumberNat_def]
state_before: F : Type ?u.152613
α : Type ?u.152616
β : Type ?u.152619
𝕜 : Type ?u.152622
E : Type ?u.152625
s : Finset ℕ
k n M N : ℕ
⊢ ↑rothNumberNat (M + N) ≤ ↑rothNumberNat M + ↑rothNumberNat N

tactic: rw [range_add_eq_union, ← addRothNumber_map_add_left (range N) M]
state_before: F : Type ?u.152613
α : Type ?u.152616
β : Type ?u.152619
𝕜 : Type ?u.152622
E : Type ?u.152625
s : Finset ℕ
k n M N : ℕ
⊢ ↑addRothNumber (range (M + N)) ≤ ↑addRothNumber (range M) + ↑addRothNumber (range N)

tactic: exact addRothNumber_union_le _ _
state_before: F : Type ?u.152613
α : Type ?u.152616
β : Type ?u.152619
𝕜 : Type ?u.152622
E : Type ?u.152625
s : Finset ℕ
k n M N : ℕ
⊢ ↑addRothNumber (range M ∪ map (addLeftEmbedding M) (range N)) ≤
    ↑addRothNumber (range M) + ↑addRothNumber (map (addLeftEmbedding M) (range N))
Theorem: lt_of_strongLT
File: Mathlib/Order/Basic.lean

tactic: inhabit ι
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
π : ι → Type u_2
r : α → α → Prop
inst✝¹ : (i : ι) → Preorder (π i)
a b c : (i : ι) → π i
inst✝ : Nonempty ι
h : a ≺ b
⊢ a < b

tactic: exact Pi.lt_def.2 ⟨le_of_strongLT h, default, h _⟩
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
π : ι → Type u_2
r : α → α → Prop
inst✝¹ : (i : ι) → Preorder (π i)
a b c : (i : ι) → π i
inst✝ : Nonempty ι
h : a ≺ b
inhabited_h : Inhabited ι
⊢ a < b
Theorem: Finmap.disjoint_union_left
File: Mathlib/Data/Finmap.lean

tactic: simp [Disjoint, Finmap.mem_union, or_imp, forall_and]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
x y z : Finmap β
⊢ Disjoint (x ∪ y) z ↔ Disjoint x z ∧ Disjoint y z
Theorem: LinearMap.mul_toMatrix₂'_mul
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: simp
state_before: R : Type u_1
R₁ : Type ?u.928393
R₂ : Type ?u.928396
M✝ : Type ?u.928399
M₁ : Type ?u.928402
M₂ : Type ?u.928405
M₁' : Type ?u.928408
M₂' : Type ?u.928411
n : Type u_2
m : Type u_3
n' : Type u_4
m' : Type u_5
ι : Type ?u.928426
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing R₁
inst✝⁸ : CommRing R₂
inst✝⁷ : Fintype n
inst✝⁶ : Fintype m
inst✝⁵ : DecidableEq n
inst✝⁴ : DecidableEq m
σ₁ : R₁ →+* R
σ₂ : R₂ →+* R
inst✝³ : Fintype n'
inst✝² : Fintype m'
inst✝¹ : DecidableEq n'
inst✝ : DecidableEq m'
B : (n → R) →ₗ[R] (m → R) →ₗ[R] R
M : Matrix n' n R
N : Matrix m m' R
⊢ M ⬝ ↑toMatrix₂' B ⬝ N = ↑toMatrix₂' (compl₁₂ B (↑toLin' Mᵀ) (↑toLin' N))
Theorem: Real.IsConjugateExponent.mul_eq_add
File: Mathlib/Data/Real/ConjugateExponents.lean

tactic: simpa only [sub_mul, sub_eq_iff_eq_add, one_mul] using h.sub_one_mul_conj
state_before: p q : ℝ
h : IsConjugateExponent p q
⊢ p * q = p + q
Theorem: usize_size_eq
File: src/lean/Init/Prelude.lean

tactic: decide
state_before: ⊢ Eq (hPow 2 32) 4294967296

tactic: decide
state_before: ⊢ Eq (hPow 2 64) 18446744073709551616
Theorem: Int.preimage_Ioo
File: Mathlib/Algebra/Order/Floor.lean

tactic: ext
state_before: F : Type ?u.236506
α : Type u_1
β : Type ?u.236512
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ Int.cast ⁻¹' Ioo a b = Ioo ⌊a⌋ ⌈b⌉

tactic: simp [floor_lt, lt_ceil]
state_before: case h
F : Type ?u.236506
α : Type u_1
β : Type ?u.236512
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Ioo a b ↔ x✝ ∈ Ioo ⌊a⌋ ⌈b⌉
Theorem: AffineSubspace.mem_direction_iff_eq_vsub_right
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [← SetLike.mem_coe, coe_direction_eq_vsub_set_right hp]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ direction s ↔ ∃ p2, p2 ∈ s ∧ v = p2 -ᵥ p

tactic: exact ⟨fun ⟨p2, hp2, hv⟩ => ⟨p2, hp2, hv.symm⟩, fun ⟨p2, hp2, hv⟩ => ⟨p2, hp2, hv.symm⟩⟩
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ (fun x => x -ᵥ p) '' ↑s ↔ ∃ p2, p2 ∈ s ∧ v = p2 -ᵥ p
Theorem: MeasurableSpace.DynkinSystem.has_univ
File: Mathlib/MeasureTheory/PiSystem.lean

tactic: simpa using d.has_compl d.has_empty
state_before: α : Type u_1
d : DynkinSystem α
⊢ Has d univ
Theorem: irreducible_pow_sup
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: rw [sup_eq_prod_inf_factors (pow_ne_zero n hJ.ne_zero) hI, min_comm,
  normalizedFactors_of_irreducible_pow hJ, normalize_eq J, replicate_inter, prod_replicate]
state_before: R : Type ?u.914699
A : Type ?u.914702
K : Type ?u.914705
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
T : Type u_1
inst✝² : CommRing T
inst✝¹ : IsDomain T
inst✝ : IsDedekindDomain T
I J : Ideal T
hI : I ≠ ⊥
hJ : Irreducible J
n : ℕ
⊢ J ^ n ⊔ I = J ^ min (count J (normalizedFactors I)) n
Theorem: PartENat.add_one_le_of_lt
File: Mathlib/Data/Nat/PartENat.lean

tactic: induction' y using PartENat.casesOn with n
state_before: x y : PartENat
h : x < y
⊢ x + 1 ≤ y

tactic: rcases ne_top_iff.mp (ne_top_of_lt h) with ⟨m, rfl⟩
state_before: case a
x y : PartENat
h✝ : x < y
n : ℕ
h : x < ↑n
⊢ x + 1 ≤ ↑n

tactic: norm_cast
state_before: case a.intro
y : PartENat
n m : ℕ
h✝ : ↑m < y
h : ↑m < ↑n
⊢ ↑m + 1 ≤ ↑n

tactic: apply Nat.succ_le_of_lt
state_before: case a.intro
y : PartENat
n m : ℕ
h✝ : ↑m < y
h : ↑m < ↑n
⊢ m + 1 ≤ n

tactic: norm_cast at h
state_before: case a.intro.h
y : PartENat
n m : ℕ
h✝ : ↑m < y
h : ↑m < ↑n
⊢ m < n

tactic: apply le_top
state_before: case a
x y : PartENat
h✝ : x < y
h : x < ⊤
⊢ x + 1 ≤ ⊤
Theorem: le_update_self_iff
File: Mathlib/Order/Basic.lean

tactic: simp [le_update_iff]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
π : ι → Type u_2
r : α → α → Prop
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → Preorder (π i)
x y : (i : ι) → π i
i : ι
a b : π i
⊢ x ≤ update x i a ↔ x i ≤ a
Theorem: MeasureTheory.SimpleFunc.forall_range_iff
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: simp only [mem_range, Set.forall_range_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.12286
δ : Type ?u.12289
inst✝ : MeasurableSpace α
f : α →ₛ β
p : β → Prop
⊢ (∀ (y : β), y ∈ SimpleFunc.range f → p y) ↔ ∀ (x : α), p (↑f x)
Theorem: gaugeSeminormFamily_ball
File: Mathlib/Analysis/LocallyConvex/AbsConvex.lean

tactic: dsimp only [gaugeSeminormFamily]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.63454
G : Type ?u.63457
ι : Type ?u.63460
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ Seminorm.ball (gaugeSeminormFamily 𝕜 E s) 0 1 = ↑s

tactic: rw [Seminorm.ball_zero_eq]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.63454
G : Type ?u.63457
ι : Type ?u.63460
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ Seminorm.ball (gaugeSeminorm (_ : Balanced 𝕜 ↑s) (_ : Convex ℝ ↑s) (_ : Absorbent ℝ ↑s)) 0 1 = ↑s

tactic: simp_rw [gaugeSeminorm_toFun]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.63454
G : Type ?u.63457
ι : Type ?u.63460
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ {y | ↑(gaugeSeminorm (_ : Balanced 𝕜 ↑s) (_ : Convex ℝ ↑s) (_ : Absorbent ℝ ↑s)) y < 1} = ↑s

tactic: exact gauge_lt_one_eq_self_of_open s.coe_convex s.coe_zero_mem s.coe_isOpen
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.63454
G : Type ?u.63457
ι : Type ?u.63460
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalSpace E
inst✝³ : Module 𝕜 E
inst✝² : Module ℝ E
inst✝¹ : IsScalarTower ℝ 𝕜 E
inst✝ : ContinuousSMul ℝ E
s : AbsConvexOpenSets 𝕜 E
⊢ {y | gauge (↑s) y < 1} = ↑s
Theorem: Nat.Partrec.Code.fixed_point
File: Mathlib/Computability/PartrecCode.lean

tactic: simp [eg]
state_before: f : Code → Code
hf : Computable f
g : ℕ → ℕ → Part ℕ :=
  fun x y => do
    let b ← eval (ofNat Code x) x
    eval (ofNat Code b) y
this : Partrec₂ g
cg : Code
eg : eval cg = fun n => Part.bind ↑(decode n) fun a => Part.map encode ((fun p => g p.fst p.snd) a)
⊢ ∀ (a n : ℕ), eval cg (Nat.pair a n) = Part.map encode (g a n)

tactic: simp [eF]
state_before: f : Code → Code
hf : Computable f
g : ℕ → ℕ → Part ℕ :=
  fun x y => do
    let b ← eval (ofNat Code x) x
    eval (ofNat Code b) y
this✝ : Partrec₂ g
cg : Code
eg : eval cg = fun n => Part.bind ↑(decode n) fun a => Part.map encode ((fun p => g p.fst p.snd) a)
eg' : ∀ (a n : ℕ), eval cg (Nat.pair a n) = Part.map encode (g a n)
F : ℕ → Code := fun x => f (curry cg x)
this : Computable F
cF : Code
eF : eval cF = fun n => Part.bind ↑(decode n) fun a => Part.map encode (↑F a)
⊢ eval cF (encode cF) = Part.some (encode (F (encode cF)))

tactic: simp [eg', eF', Part.map_id']
state_before: f : Code → Code
hf : Computable f
g : ℕ → ℕ → Part ℕ :=
  fun x y => do
    let b ← eval (ofNat Code x) x
    eval (ofNat Code b) y
this✝ : Partrec₂ g
cg : Code
eg : eval cg = fun n => Part.bind ↑(decode n) fun a => Part.map encode ((fun p => g p.fst p.snd) a)
eg' : ∀ (a n : ℕ), eval cg (Nat.pair a n) = Part.map encode (g a n)
F : ℕ → Code := fun x => f (curry cg x)
this : Computable F
cF : Code
eF : eval cF = fun n => Part.bind ↑(decode n) fun a => Part.map encode (↑F a)
eF' : eval cF (encode cF) = Part.some (encode (F (encode cF)))
n : ℕ
⊢ eval (f (curry cg (encode cF))) n = eval (curry cg (encode cF)) n
Theorem: Asymptotics.isLittleO_map
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsLittleO_def, isBigOWith_map]
state_before: α : Type u_2
β : Type u_1
E : Type u_3
F : Type u_4
G : Type ?u.71439
E' : Type ?u.71442
F' : Type ?u.71445
G' : Type ?u.71448
E'' : Type ?u.71451
F'' : Type ?u.71454
G'' : Type ?u.71457
R : Type ?u.71460
R' : Type ?u.71463
𝕜 : Type ?u.71466
𝕜' : Type ?u.71469
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k✝ : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l✝ l' : Filter α
k : β → α
l : Filter β
⊢ f =o[map k l] g ↔ (f ∘ k) =o[l] (g ∘ k)