tasksource/leandojo huggingface dataset:
Theorem: AddLECancellable.tsub_inj_right
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rw [← hab.inj]
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hab : AddLECancellable (a - b)
h₁ : b ≤ a
h₂ : c ≤ a
h₃ : a - b = a - c
⊢ b = c

tactic: rw [tsub_add_cancel_of_le h₁, h₃, tsub_add_cancel_of_le h₂]
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hab : AddLECancellable (a - b)
h₁ : b ≤ a
h₂ : c ≤ a
h₃ : a - b = a - c
⊢ a - b + b = a - b + c
Theorem: Filter.Eventually.diag_of_prod_right
File: Mathlib/Order/Filter/Prod.lean

tactic: intro h
state_before: α : Type u_1
β : Type ?u.10420
γ : Type u_2
δ : Type ?u.10426
ι : Sort ?u.10429
s : Set α
t : Set β
f✝ : Filter α
g✝ : Filter β
f : Filter α
g : Filter γ
p : α × γ × γ → Prop
⊢ (∀ᶠ (x : α × γ × γ) in f ×ˢ g ×ˢ g, p x) → ∀ᶠ (x : α × γ) in f ×ˢ g, p (x.fst, x.snd, x.snd)

tactic: obtain ⟨t, ht, s, hs, hst⟩ := eventually_prod_iff.1 h
state_before: α : Type u_1
β : Type ?u.10420
γ : Type u_2
δ : Type ?u.10426
ι : Sort ?u.10429
s : Set α
t : Set β
f✝ : Filter α
g✝ : Filter β
f : Filter α
g : Filter γ
p : α × γ × γ → Prop
h : ∀ᶠ (x : α × γ × γ) in f ×ˢ g ×ˢ g, p x
⊢ ∀ᶠ (x : α × γ) in f ×ˢ g, p (x.fst, x.snd, x.snd)

tactic: refine' (ht.prod_mk hs.diag_of_prod).mono fun x hx => by simp only [hst hx.1 hx.2, Prod.mk.eta]
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type ?u.10420
γ : Type u_2
δ : Type ?u.10426
ι : Sort ?u.10429
s✝ : Set α
t✝ : Set β
f✝ : Filter α
g✝ : Filter β
f : Filter α
g : Filter γ
p : α × γ × γ → Prop
h : ∀ᶠ (x : α × γ × γ) in f ×ˢ g ×ˢ g, p x
t : α → Prop
ht : ∀ᶠ (x : α) in f, t x
s : γ × γ → Prop
hs : ∀ᶠ (y : γ × γ) in g ×ˢ g, s y
hst : ∀ {x : α}, t x → ∀ {y : γ × γ}, s y → p (x, y)
⊢ ∀ᶠ (x : α × γ) in f ×ˢ g, p (x.fst, x.snd, x.snd)

tactic: simp only [hst hx.1 hx.2, Prod.mk.eta]
state_before: α : Type u_1
β : Type ?u.10420
γ : Type u_2
δ : Type ?u.10426
ι : Sort ?u.10429
s✝ : Set α
t✝ : Set β
f✝ : Filter α
g✝ : Filter β
f : Filter α
g : Filter γ
p : α × γ × γ → Prop
h : ∀ᶠ (x : α × γ × γ) in f ×ˢ g ×ˢ g, p x
t : α → Prop
ht : ∀ᶠ (x : α) in f, t x
s : γ × γ → Prop
hs : ∀ᶠ (y : γ × γ) in g ×ˢ g, s y
hst : ∀ {x : α}, t x → ∀ {y : γ × γ}, s y → p (x, y)
x : α × γ
hx : t x.fst ∧ s (x.snd, x.snd)
⊢ p (x.fst, x.snd, x.snd)
Theorem: AList.insert_insert
File: Mathlib/Data/List/AList.lean

tactic: ext : 1
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
b b' : β a
s : AList β
⊢ insert a b' (insert a b s) = insert a b' s

tactic: simp only [AList.insert_entries, List.kerase_cons_eq]
state_before: case a
α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
b b' : β a
s : AList β
⊢ (insert a b' (insert a b s)).entries = (insert a b' s).entries
Theorem: HasFDerivWithinAt.mapsTo_tangent_cone
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

tactic: rintro v ⟨c, d, dtop, clim, cdlim⟩
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
s : Set E
f' : E →L[𝕜] F
x : E
h : HasFDerivWithinAt f f' s x
⊢ MapsTo (↑f') (tangentConeAt 𝕜 s x) (tangentConeAt 𝕜 (f '' s) (f x))

tactic: refine'
  ⟨c, fun n => f (x + d n) - f x, mem_of_superset dtop _, clim, h.lim atTop dtop clim cdlim⟩
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
s : Set E
f' : E →L[𝕜] F
x : E
h : HasFDerivWithinAt f f' s x
v : E
c : ℕ → 𝕜
d : ℕ → E
dtop : ∀ᶠ (n : ℕ) in atTop, x + d n ∈ s
clim : Tendsto (fun n => ‖c n‖) atTop atTop
cdlim : Tendsto (fun n => c n • d n) atTop (𝓝 v)
⊢ ↑f' v ∈ tangentConeAt 𝕜 (f '' s) (f x)

tactic: simp (config := { contextual := true }) [-mem_image, mem_image_of_mem]
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
s : Set E
f' : E →L[𝕜] F
x : E
h : HasFDerivWithinAt f f' s x
v : E
c : ℕ → 𝕜
d : ℕ → E
dtop : ∀ᶠ (n : ℕ) in atTop, x + d n ∈ s
clim : Tendsto (fun n => ‖c n‖) atTop atTop
cdlim : Tendsto (fun n => c n • d n) atTop (𝓝 v)
⊢ {x_1 | (fun n => x + d n ∈ s) x_1} ⊆ {x_1 | (fun n => f x + (fun n => f (x + d n) - f x) n ∈ f '' s) x_1}
Theorem: Polynomial.remainder_lt_aux
File: Mathlib/Data/Polynomial/FieldDivision.lean

tactic: rw [← degree_mul_leadingCoeff_inv q hq]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p✝ q p : R[X]
hq : q ≠ 0
⊢ degree (mod p q) < degree q

tactic: exact degree_modByMonic_lt p (monic_mul_leadingCoeff_inv hq)
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p✝ q p : R[X]
hq : q ≠ 0
⊢ degree (mod p q) < degree (q * ↑C (leadingCoeff q)⁻¹)
Theorem: Set.mem_dite
File: Mathlib/Data/Set/Basic.lean

tactic: split_ifs with hp
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u : Set α
p : Prop
inst✝ : Decidable p
s : p → Set α
t : ¬p → Set α
x : α
⊢ (x ∈ if h : p then s h else t h) ↔ (∀ (h : p), x ∈ s h) ∧ ∀ (h : ¬p), x ∈ t h

tactic: . exact ⟨fun hx => ⟨fun _ => hx, fun hnp => (hnp hp).elim⟩, fun hx => hx.1 hp⟩
state_before: case inl
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u : Set α
p : Prop
inst✝ : Decidable p
s : p → Set α
t : ¬p → Set α
x : α
hp : p
⊢ x ∈ s hp ↔ (∀ (h : p), x ∈ s h) ∧ ∀ (h : ¬p), x ∈ t h

case inr
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u : Set α
p : Prop
inst✝ : Decidable p
s : p → Set α
t : ¬p → Set α
x : α
hp : ¬p
⊢ x ∈ t hp ↔ (∀ (h : p), x ∈ s h) ∧ ∀ (h : ¬p), x ∈ t h

tactic: . exact ⟨fun hx => ⟨fun h => (hp h).elim, fun _ => hx⟩, fun hx => hx.2 hp⟩
state_before: case inr
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u : Set α
p : Prop
inst✝ : Decidable p
s : p → Set α
t : ¬p → Set α
x : α
hp : ¬p
⊢ x ∈ t hp ↔ (∀ (h : p), x ∈ s h) ∧ ∀ (h : ¬p), x ∈ t h

tactic: exact ⟨fun hx => ⟨fun _ => hx, fun hnp => (hnp hp).elim⟩, fun hx => hx.1 hp⟩
state_before: case inl
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u : Set α
p : Prop
inst✝ : Decidable p
s : p → Set α
t : ¬p → Set α
x : α
hp : p
⊢ x ∈ s hp ↔ (∀ (h : p), x ∈ s h) ∧ ∀ (h : ¬p), x ∈ t h

tactic: exact ⟨fun hx => ⟨fun h => (hp h).elim, fun _ => hx⟩, fun hx => hx.2 hp⟩
state_before: case inr
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t✝ t₁ t₂ u : Set α
p : Prop
inst✝ : Decidable p
s : p → Set α
t : ¬p → Set α
x : α
hp : ¬p
⊢ x ∈ t hp ↔ (∀ (h : p), x ∈ s h) ∧ ∀ (h : ¬p), x ∈ t h
Theorem: Real.Angle.two_zsmul_toReal_eq_two_mul_add_two_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [two_zsmul, ← two_nsmul, two_nsmul_toReal_eq_two_mul_add_two_pi]
state_before: θ : Angle
⊢ toReal (2 • θ) = 2 * toReal θ + 2 * π ↔ toReal θ ≤ -π / 2
Theorem: Filter.smallSets_top
File: Mathlib/Order/Filter/SmallSets.lean

tactic: rw [smallSets, lift'_top, powerset_univ, principal_univ]
state_before: α : Type u_1
β : Type ?u.2978
ι : Sort ?u.2981
l l' la : Filter α
lb : Filter β
⊢ smallSets ⊤ = ⊤
Theorem: Filter.tendsto_atTop_atTop_of_monotone'
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: apply h.tendsto_atTop_atTop
state_before: ι : Type u_1
ι' : Type ?u.347734
α : Type u_2
β : Type ?u.347740
γ : Type ?u.347743
inst✝¹ : Preorder ι
inst✝ : LinearOrder α
u : ι → α
h : Monotone u
H : ¬BddAbove (range u)
⊢ Tendsto u atTop atTop

tactic: intro b
state_before: ι : Type u_1
ι' : Type ?u.347734
α : Type u_2
β : Type ?u.347740
γ : Type ?u.347743
inst✝¹ : Preorder ι
inst✝ : LinearOrder α
u : ι → α
h : Monotone u
H : ¬BddAbove (range u)
⊢ ∀ (b : α), ∃ a, b ≤ u a

tactic: rcases not_bddAbove_iff.1 H b with ⟨_, ⟨N, rfl⟩, hN⟩
state_before: ι : Type u_1
ι' : Type ?u.347734
α : Type u_2
β : Type ?u.347740
γ : Type ?u.347743
inst✝¹ : Preorder ι
inst✝ : LinearOrder α
u : ι → α
h : Monotone u
H : ¬BddAbove (range u)
b : α
⊢ ∃ a, b ≤ u a

tactic: exact ⟨N, le_of_lt hN⟩
state_before: case intro.intro.intro
ι : Type u_1
ι' : Type ?u.347734
α : Type u_2
β : Type ?u.347740
γ : Type ?u.347743
inst✝¹ : Preorder ι
inst✝ : LinearOrder α
u : ι → α
h : Monotone u
H : ¬BddAbove (range u)
b : α
N : ι
hN : b < u N
⊢ ∃ a, b ≤ u a
Theorem: Multiset.sup_ndunion
File: Mathlib/Data/Multiset/Lattice.lean

tactic: rw [← sup_dedup, dedup_ext.2, sup_dedup, sup_add]
state_before: α : Type u_1
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableEq α
s₁ s₂ : Multiset α
⊢ sup (ndunion s₁ s₂) = sup s₁ ⊔ sup s₂

tactic: simp
state_before: α : Type u_1
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
inst✝ : DecidableEq α
s₁ s₂ : Multiset α
⊢ ∀ (a : α), a ∈ ndunion s₁ s₂ ↔ a ∈ s₁ + s₂
Theorem: Cardinal.aleph0_lt_aleph_one
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [← succ_aleph0]
state_before: ⊢ ℵ₀ < aleph 1

tactic: apply lt_succ
state_before: ⊢ ℵ₀ < succ ℵ₀
Theorem: Int.neg_add_le_right_of_le_add
File: Std/Data/Int/Lemmas.lean

tactic: rw [Int.add_comm] at h
state_before: a b c : Int
h : a ≤ b + c
⊢ -c + a ≤ b

tactic: exact Int.neg_add_le_left_of_le_add h
state_before: a b c : Int
h : a ≤ c + b
⊢ -c + a ≤ b
Theorem: OmegaCompletePartialOrder.Chain.mem_map_iff
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: rcases h with ⟨w, h, h'⟩
state_before: α : Type u
β : Type v
γ : Type ?u.3585
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
b : β
h : ∃ a, a ∈ c ∧ ↑f a = b
⊢ b ∈ map c f

tactic: subst b
state_before: case intro.intro
α : Type u
β : Type v
γ : Type ?u.3585
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
b : β
w : α
h : w ∈ c
h' : ↑f w = b
⊢ b ∈ map c f

tactic: apply mem_map c _ h
state_before: case intro.intro
α : Type u
β : Type v
γ : Type ?u.3585
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
c c' : Chain α
f : α →o β
g : β →o γ
w : α
h : w ∈ c
⊢ ↑f w ∈ map c f
Theorem: List.map₂Left_nil_right
File: Mathlib/Data/List/Basic.lean

tactic: cases as <;> rfl
state_before: ι : Type ?u.465146
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : α → Option β → γ
as : List α
⊢ map₂Left f as [] = map (fun a => f a none) as
Theorem: FirstOrder.Language.Hom.range_le_iff_comap
File: Mathlib/ModelTheory/Substructures.lean

tactic: rw [range_eq_map, map_le_iff_le_comap, eq_top_iff]
state_before: L : Language
M : Type w
N : Type u_1
P : Type ?u.984407
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
S : Substructure L M
f : M →[L] N
p : Substructure L N
⊢ range f ≤ p ↔ comap f p = ⊤
Theorem: ContinuousMap.isUnit_iff_forall_ne_zero
File: Mathlib/Topology/ContinuousFunction/Units.lean

tactic: simp_rw [f.isUnit_iff_forall_isUnit, isUnit_iff_ne_zero]
state_before: X : Type u_1
M : Type ?u.396272
R : Type ?u.396275
𝕜 : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : NormedField 𝕜
inst✝ : CompleteSpace 𝕜
f : C(X, 𝕜)
⊢ IsUnit f ↔ ∀ (x : X), ↑f x ≠ 0
Theorem: Complex.norm_deriv_le_aux
File: Mathlib/Analysis/Complex/Liouville.lean

tactic: have : ∀ z ∈ sphere c R, ‖(z - c) ^ (-2 : ℤ) • f z‖ ≤ C / (R * R) :=
  fun z (hz : abs (z - c) = R) => by
  simpa [-mul_inv_rev, norm_smul, hz, zpow_two, ← div_eq_inv_mul] using
    (div_le_div_right (mul_pos hR hR)).2 (hC z hz)
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
⊢ ‖deriv f c‖ ≤ C / R

tactic: calc
  ‖deriv f c‖ = ‖(2 * π * I : ℂ)⁻¹ • ∮ z in C(c, R), (z - c) ^ (-2 : ℤ) • f z‖ :=
    congr_arg norm (deriv_eq_smul_circleIntegral hR hf)
  _ ≤ R * (C / (R * R)) :=
    (circleIntegral.norm_two_pi_i_inv_smul_integral_le_of_norm_le_const hR.le this)
  _ = C / R := by rw [mul_div_left_comm, div_self_mul_self', div_eq_mul_inv]
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
this : ∀ (z : ℂ), z ∈ sphere c R → ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)
⊢ ‖deriv f c‖ ≤ C / R

tactic: simpa [-mul_inv_rev, norm_smul, hz, zpow_two, ← div_eq_inv_mul] using
  (div_le_div_right (mul_pos hR hR)).2 (hC z hz)
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
z : ℂ
hz : ↑abs (z - c) = R
⊢ ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)

tactic: rw [mul_div_left_comm, div_self_mul_self', div_eq_mul_inv]
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
this : ∀ (z : ℂ), z ∈ sphere c R → ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)
⊢ R * (C / (R * R)) = C / R
Theorem: Rat.inv_coe_int_num_of_pos
File: Mathlib/Data/Rat/Lemmas.lean

tactic: rw [← ofInt_eq_cast, ofInt, mk_eq_divInt, Rat.inv_def', divInt_eq_div, Nat.cast_one]
state_before: a : ℤ
ha0 : 0 < a
⊢ (↑a)⁻¹.num = 1

tactic: apply num_div_eq_of_coprime ha0
state_before: a : ℤ
ha0 : 0 < a
⊢ (↑1 / ↑a).num = 1

tactic: rw [Int.natAbs_one]
state_before: a : ℤ
ha0 : 0 < a
⊢ Nat.coprime (Int.natAbs 1) (Int.natAbs a)

tactic: exact Nat.coprime_one_left _
state_before: a : ℤ
ha0 : 0 < a
⊢ Nat.coprime 1 (Int.natAbs a)
Theorem: Set.subset_insert_diff_singleton
File: Mathlib/Data/Set/Basic.lean

tactic: rw [← diff_singleton_subset_iff]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t t₁ t₂ u : Set α
x : α
s : Set α
⊢ s ⊆ insert x (s \ {x})
Theorem: mul_invOf_mul_self_cancel'
File: Mathlib/Algebra/Invertible.lean

tactic: simp [mul_assoc]
state_before: α : Type u
inst✝ : Monoid α
a b : α
x✝ : Invertible b
⊢ a * ⅟b * b = a
Theorem: lowerSemicontinuousOn_iSup
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.123063
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Sort u_3
δ : Type u_2
δ' : Type ?u.123095
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ
h : ∀ (i : ι), LowerSemicontinuousOn (f i) s
⊢ ∀ (x : α), x ∈ s → BddAbove (range fun i => f i x)
Theorem: Matrix.diagonal_apply_eq
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [diagonal]
state_before: l : Type ?u.44950
m : Type ?u.44953
n : Type u_1
o : Type ?u.44959
m' : o → Type ?u.44964
n' : o → Type ?u.44969
R : Type ?u.44972
S : Type ?u.44975
α : Type v
β : Type w
γ : Type ?u.44982
inst✝¹ : DecidableEq n
inst✝ : Zero α
d : n → α
i : n
⊢ diagonal d i i = d i
Theorem: Complex.inv_cpow_eq_ite
File: Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean

tactic: simp_rw [Complex.cpow_def, log_inv_eq_ite, inv_eq_zero, map_eq_zero, ite_mul, neg_mul,
  IsROrC.conj_inv, apply_ite conj, apply_ite exp, apply_ite Inv.inv, map_zero, map_one, exp_neg,
  inv_one, inv_zero, ← exp_conj, map_mul, conj_conj]
state_before: x n : ℂ
⊢ x⁻¹ ^ n = if arg x = π then ↑(starRingEnd ℂ) (x ^ ↑(starRingEnd ℂ) n)⁻¹ else (x ^ n)⁻¹

tactic: split_ifs with hx hn ha ha <;> rfl
state_before: x n : ℂ
⊢ (if x = 0 then if n = 0 then 1 else 0
    else if arg x = π then (exp (↑(starRingEnd ℂ) (log x) * n))⁻¹ else (exp (log x * n))⁻¹) =
    if arg x = π then if x = 0 then if n = 0 then 1 else 0 else (exp (↑(starRingEnd ℂ) (log x) * n))⁻¹
    else if x = 0 then if n = 0 then 1 else 0 else (exp (log x * n))⁻¹
Theorem: Set.le_einfsep_image_iff
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simp_rw [le_einfsep_iff, ball_image_iff]
state_before: α : Type u_2
β : Type u_1
inst✝ : EDist α
x y : α
s✝ t : Set α
d : ℝ≥0∞
f : β → α
s : Set β
⊢ d ≤ einfsep (f '' s) ↔ ∀ (x : β), x ∈ s → ∀ (y : β), y ∈ s → f x ≠ f y → d ≤ edist (f x) (f y)
Theorem: vectorSpan_empty
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [vectorSpan_def, vsub_empty, Submodule.span_empty]
state_before: k : Type u_2
V : Type u_1
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
⊢ vectorSpan k ∅ = ⊥
Theorem: Polynomial.eval_nat_cast_mul
File: Mathlib/Data/Polynomial/Eval.lean

tactic: rw [← C_eq_nat_cast, eval_C_mul]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p q r : R[X]
x : R
n : ℕ
⊢ eval x (↑n * p) = ↑n * eval x p
Theorem: ProbabilityTheory.condCount_univ
File: Mathlib/Probability/CondCount.lean

tactic: rw [condCount, cond_apply _ MeasurableSet.univ, ← ENNReal.div_eq_inv_mul, Set.univ_inter]
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : Fintype Ω
s : Set Ω
⊢ ↑↑(condCount Set.univ) s = ↑↑Measure.count s / ↑(Fintype.card Ω)

tactic: congr
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : Fintype Ω
s : Set Ω
⊢ ↑↑Measure.count s / ↑↑Measure.count Set.univ = ↑↑Measure.count s / ↑(Fintype.card Ω)

tactic: rw [← Finset.coe_univ, Measure.count_apply, Finset.univ.tsum_subtype' fun _ => (1 : ENNReal)]
state_before: case e_a
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : Fintype Ω
s : Set Ω
⊢ ↑↑Measure.count Set.univ = ↑(Fintype.card Ω)

tactic: simp [Finset.card_univ]
state_before: case e_a
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : Fintype Ω
s : Set Ω
⊢ (Finset.sum Finset.univ fun x => 1) = ↑(Fintype.card Ω)

tactic: exact (@Finset.coe_univ Ω _).symm ▸ MeasurableSet.univ
state_before: case e_a
Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : Fintype Ω
s : Set Ω
⊢ MeasurableSet ↑Finset.univ
Theorem: GeneralizedContinuedFraction.get?_of_eq_some_of_get?_intFractPair_stream_fr_ne_zero
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: cases ifp_n
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
ifp_n : IntFractPair K
stream_nth_eq : IntFractPair.stream v n = some ifp_n
nth_fr_ne_zero : ifp_n.fr ≠ 0
⊢ IntFractPair.stream v (n + 1) = some (IntFractPair.of ifp_n.fr⁻¹)

tactic: simp [IntFractPair.stream, stream_nth_eq, nth_fr_ne_zero]
state_before: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
b✝ : ℤ
fr✝ : K
stream_nth_eq : IntFractPair.stream v n = some { b := b✝, fr := fr✝ }
nth_fr_ne_zero : { b := b✝, fr := fr✝ }.fr ≠ 0
⊢ IntFractPair.stream v (n + 1) = some (IntFractPair.of { b := b✝, fr := fr✝ }.fr⁻¹)

tactic: intro
state_before: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
b✝ : ℤ
fr✝ : K
stream_nth_eq : IntFractPair.stream v n = some { b := b✝, fr := fr✝ }
nth_fr_ne_zero : { b := b✝, fr := fr✝ }.fr ≠ 0
⊢ fr✝ = 0 → False

tactic: contradiction
state_before: case mk
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
b✝ : ℤ
fr✝ : K
stream_nth_eq : IntFractPair.stream v n = some { b := b✝, fr := fr✝ }
nth_fr_ne_zero : { b := b✝, fr := fr✝ }.fr ≠ 0
a✝ : fr✝ = 0
⊢ False
Theorem: CategoryTheory.Limits.PushoutCocone.unop_fst
File: Mathlib/CategoryTheory/Limits/Opposites.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
J : Type u₂
inst✝ : Category J
X✝ : Type v₂
X Y Z : Cᵒᵖ
f : X ⟶ Y
g : X ⟶ Z
c : PushoutCocone f g
⊢ PullbackCone.fst (unop c) = (inl c).unop
Theorem: SimpleGraph.incMatrix_apply_mul_incMatrix_apply
File: Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean

tactic: classical simp only [incMatrix, Set.indicator_apply, ← ite_and_mul_zero, Pi.one_apply, mul_one,
  Set.mem_inter_iff]
state_before: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝ : MulZeroOneClass R
a b : α
e : Sym2 α
⊢ incMatrix R G a e * incMatrix R G b e = Set.indicator (incidenceSet G a ∩ incidenceSet G b) 1 e

tactic: simp only [incMatrix, Set.indicator_apply, ← ite_and_mul_zero, Pi.one_apply, mul_one,
Set.mem_inter_iff]
state_before: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝ : MulZeroOneClass R
a b : α
e : Sym2 α
⊢ incMatrix R G a e * incMatrix R G b e = Set.indicator (incidenceSet G a ∩ incidenceSet G b) 1 e
Theorem: Nat.cast_ascFactorial
File: Mathlib/Data/Nat/Factorial/Cast.lean

tactic: rw [← pochhammer_nat_eq_ascFactorial, pochhammer_eval_cast, Nat.cast_add, Nat.cast_one]
state_before: S : Type u_1
inst✝ : Semiring S
a b : ℕ
⊢ ↑(ascFactorial a b) = Polynomial.eval (↑a + 1) (pochhammer S b)
Theorem: ContinuousLinearMap.add_compLpL
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: ext1 f
state_before: α : Type u_4
E : Type u_2
F : Type u_3
G : Type ?u.7355959
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : MeasureTheory.Measure α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
𝕜 : Type u_1
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
⊢ compLpL p μ (L + L') = compLpL p μ L + compLpL p μ L'

tactic: exact add_compLp L L' f
state_before: case h
α : Type u_4
E : Type u_2
F : Type u_3
G : Type ?u.7355959
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : MeasureTheory.Measure α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
𝕜 : Type u_1
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
f : { x // x ∈ Lp E p }
⊢ ↑(compLpL p μ (L + L')) f = ↑(compLpL p μ L + compLpL p μ L') f
Theorem: sdiff_sdiff_eq_self
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [sdiff_sdiff_right_self, inf_of_le_right h]
state_before: α : Type u
β : Type ?u.30279
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y ≤ x
⊢ x \ (x \ y) = y
Theorem: Covby.Ioc_eq
File: Mathlib/Order/Cover.lean

tactic: rw [← Ioo_union_right h.lt, h.Ioo_eq, empty_union]
state_before: α : Type u_1
β : Type ?u.37096
inst✝ : PartialOrder α
a b c : α
h : a ⋖ b
⊢ Ioc a b = {b}