tasksource/leandojo huggingface dataset:
Theorem: Partrec.none
File: Mathlib/Computability/Partrec.lean

tactic: cases decode (α := α) n <;> simp
state_before: α : Type u_1
β : Type ?u.50685
γ : Type ?u.50688
σ : Type u_2
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
⊢ Part.none = Part.bind ↑(decode n) fun a => map encode ((fun x => Part.none) a)
Theorem: List.kreplace_nodupKeys
File: Mathlib/Data/List/Sigma.lean

tactic: simp [NodupKeys, keys_kreplace]
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
b : β a
l : List (Sigma β)
⊢ NodupKeys (kreplace a b l) ↔ NodupKeys l
Theorem: Odd.neg_pow
File: Mathlib/Algebra/Parity.lean

tactic: rintro ⟨c, rfl⟩ a
state_before: F : Type ?u.92455
α : Type u_1
β : Type ?u.92461
R : Type ?u.92464
inst✝¹ : Monoid α
inst✝ : HasDistribNeg α
a : α
n : ℕ
⊢ Odd n → ∀ (a : α), (-a) ^ n = -a ^ n

tactic: simp_rw [pow_add, pow_mul, neg_sq, pow_one, mul_neg]
state_before: case intro
F : Type ?u.92455
α : Type u_1
β : Type ?u.92461
R : Type ?u.92464
inst✝¹ : Monoid α
inst✝ : HasDistribNeg α
a✝ : α
c : ℕ
a : α
⊢ (-a) ^ (2 * c + 1) = -a ^ (2 * c + 1)
Theorem: MeasureTheory.set_lintegral_eq_const
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: have : ∀ᵐ x ∂μ, x ∈ { x | f x = r } → f x = r := ae_of_all μ fun _ hx => hx
state_before: α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
⊢ (∫⁻ (x : α) in {x | f x = r}, f x ∂μ) = r * ↑↑μ {x | f x = r}

tactic: rw [set_lintegral_congr_fun _ this]
state_before: α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
this : ∀ᵐ (x : α) ∂μ, x ∈ {x | f x = r} → f x = r
⊢ (∫⁻ (x : α) in {x | f x = r}, f x ∂μ) = r * ↑↑μ {x | f x = r}

tactic: dsimp
state_before: α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
this : ∀ᵐ (x : α) ∂μ, x ∈ {x | f x = r} → f x = r
⊢ (∫⁻ (x : α) in {x | f x = r}, r ∂μ) = r * ↑↑μ {x | f x = r}

α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
this : ∀ᵐ (x : α) ∂μ, x ∈ {x | f x = r} → f x = r
⊢ MeasurableSet {x | f x = r}

tactic: rw [lintegral_const, Measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
state_before: α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
this : ∀ᵐ (x : α) ∂μ, x ∈ {x | f x = r} → f x = r
⊢ (∫⁻ (x : α) in {x | f x = r}, r ∂μ) = r * ↑↑μ {x | f x = r}

α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
this : ∀ᵐ (x : α) ∂μ, x ∈ {x | f x = r} → f x = r
⊢ MeasurableSet {x | f x = r}

tactic: exact hf (measurableSet_singleton r)
state_before: α : Type u_1
β : Type ?u.953229
γ : Type ?u.953232
δ : Type ?u.953235
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
hf : Measurable f
r : ℝ≥0∞
this : ∀ᵐ (x : α) ∂μ, x ∈ {x | f x = r} → f x = r
⊢ MeasurableSet {x | f x = r}
Theorem: Matrix.det_updateRow_add_self
File: Mathlib/LinearAlgebra/Matrix/Determinant.lean

tactic: simp [det_updateRow_add,
  det_zero_of_row_eq hij (updateRow_self.trans (updateRow_ne hij.symm).symm)]
state_before: m : Type ?u.1671111
n : Type u_1
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
A : Matrix n n R
i j : n
hij : i ≠ j
⊢ det (updateRow A i (A i + A j)) = det A
Theorem: AddLECancellable.tsub_lt_tsub_iff_right
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rw [hc.lt_tsub_iff_left, add_tsub_cancel_of_le h]
state_before: α : Type u_1
inst✝² : CanonicallyLinearOrderedAddMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hc : AddLECancellable c
h : c ≤ a
⊢ a - c < b - c ↔ a < b
Theorem: Matrix.map_updateRow
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type ?u.1223184
m : Type u_1
n : Type u_2
o : Type ?u.1223193
m' : o → Type ?u.1223198
n' : o → Type ?u.1223203
R : Type ?u.1223206
S : Type ?u.1223209
α : Type v
β : Type w
γ : Type ?u.1223216
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝ : DecidableEq m
f : α → β
⊢ map (updateRow M i b) f = updateRow (map M f) i (f ∘ b)

tactic: rw [updateRow_apply, map_apply, map_apply, updateRow_apply]
state_before: case a.h
l : Type ?u.1223184
m : Type u_1
n : Type u_2
o : Type ?u.1223193
m' : o → Type ?u.1223198
n' : o → Type ?u.1223203
R : Type ?u.1223206
S : Type ?u.1223209
α : Type v
β : Type w
γ : Type ?u.1223216
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝ : DecidableEq m
f : α → β
i✝ : m
x✝ : n
⊢ map (updateRow M i b) f i✝ x✝ = updateRow (map M f) i (f ∘ b) i✝ x✝

tactic: exact apply_ite f _ _ _
state_before: case a.h
l : Type ?u.1223184
m : Type u_1
n : Type u_2
o : Type ?u.1223193
m' : o → Type ?u.1223198
n' : o → Type ?u.1223203
R : Type ?u.1223206
S : Type ?u.1223209
α : Type v
β : Type w
γ : Type ?u.1223216
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝ : DecidableEq m
f : α → β
i✝ : m
x✝ : n
⊢ f (if i✝ = i then b x✝ else M i✝ x✝) = if i✝ = i then (f ∘ b) x✝ else f (M i✝ x✝)
Theorem: IsSubmonoid.list_prod_mem
File: Mathlib/Deprecated/Submonoid.lean

tactic: simpa
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type ?u.47396
inst✝ : AddMonoid A
t : Set A
hs : IsSubmonoid s
a : M
l : List M
h : ∀ (x : M), x ∈ a :: l → x ∈ s
this : a * List.prod l ∈ s
⊢ List.prod (a :: l) ∈ s

tactic: simpa using h
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type ?u.47396
inst✝ : AddMonoid A
t : Set A
hs : IsSubmonoid s
a : M
l : List M
h : ∀ (x : M), x ∈ a :: l → x ∈ s
⊢ a ∈ s ∧ ∀ (x : M), x ∈ l → x ∈ s
Theorem: Nat.coprime_mul_right_add_right
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: rw [coprime, coprime, gcd_mul_right_add_right]
state_before: m n k : ℕ
⊢ coprime m (k * m + n) ↔ coprime m n
Theorem: Complex.sq_abs_sub_sq_re
File: Mathlib/Data/Complex/Basic.lean

tactic: rw [sq_abs, normSq_apply, ← sq, ← sq, add_sub_cancel']
state_before: z : ℂ
⊢ ↑abs z ^ 2 - z.re ^ 2 = z.im ^ 2
Theorem: MvPolynomial.vars_eq_support_biUnion_support
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: ext i
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.265480
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
p q : MvPolynomial σ R
inst✝¹ : CommSemiring S
f : R →+* S
inst✝ : DecidableEq σ
⊢ vars p = Finset.biUnion (support p) Finsupp.support

tactic: rw [mem_vars, Finset.mem_biUnion]
state_before: case a
R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.265480
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
p q : MvPolynomial σ R
inst✝¹ : CommSemiring S
f : R →+* S
inst✝ : DecidableEq σ
i : σ
⊢ i ∈ vars p ↔ i ∈ Finset.biUnion (support p) Finsupp.support

tactic: simp
state_before: case a
R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.265480
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
p q : MvPolynomial σ R
inst✝¹ : CommSemiring S
f : R →+* S
inst✝ : DecidableEq σ
i : σ
⊢ (∃ d x, i ∈ d.support) ↔ ∃ a, a ∈ support p ∧ i ∈ a.support
Theorem: Ordinal.exists_of_lt_bmex
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: cases' exists_of_lt_mex ha with i hi
state_before: α : Type ?u.387773
β : Type ?u.387776
γ : Type ?u.387779
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
a : Ordinal
ha : a < bmex o f
⊢ ∃ i hi, f i hi = a

tactic: exact ⟨_, typein_lt_self i, hi⟩
state_before: case intro
α : Type ?u.387773
β : Type ?u.387776
γ : Type ?u.387779
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
a : Ordinal
ha : a < bmex o f
i : (Quotient.out o).α
hi : familyOfBFamily o f i = a
⊢ ∃ i hi, f i hi = a
Theorem: PowerSeries.map_exp
File: Mathlib/RingTheory/PowerSeries/WellKnown.lean

tactic: ext
state_before: A : Type u_2
A' : Type u_1
inst✝⁷ : Ring A
inst✝⁶ : Ring A'
inst✝⁵ : Algebra ℚ A
inst✝⁴ : Algebra ℚ A'
inst✝³ : Ring A
inst✝² : Ring A'
inst✝¹ : Algebra ℚ A
inst✝ : Algebra ℚ A'
n : ℕ
f : A →+* A'
⊢ ↑(map f) (exp A) = exp A'

tactic: simp
state_before: case h
A : Type u_2
A' : Type u_1
inst✝⁷ : Ring A
inst✝⁶ : Ring A'
inst✝⁵ : Algebra ℚ A
inst✝⁴ : Algebra ℚ A'
inst✝³ : Ring A
inst✝² : Ring A'
inst✝¹ : Algebra ℚ A
inst✝ : Algebra ℚ A'
n : ℕ
f : A →+* A'
n✝ : ℕ
⊢ ↑(coeff A' n✝) (↑(map f) (exp A)) = ↑(coeff A' n✝) (exp A')
Theorem: AlgebraicTopology.DoldKan.identity_N₂
File: Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean

tactic: ext P : 2
state_before: C : Type u_1
inst✝² : Category C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
⊢ (𝟙 N₂ ◫ N₂Γ₂.inv) ≫ (Functor.associator N₂ Γ₂ N₂).inv ≫ Γ₂N₂.natTrans ◫ 𝟙 N₂ = 𝟙 N₂

tactic: dsimp only [NatTrans.comp_app, NatTrans.hcomp_app, Functor.comp_map, Functor.associator,
  NatTrans.id_app, Functor.comp_obj]
state_before: case w.h
C : Type u_1
inst✝² : Category C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
P : Karoubi (SimplicialObject C)
⊢ ((𝟙 N₂ ◫ N₂Γ₂.inv) ≫ (Functor.associator N₂ Γ₂ N₂).inv ≫ Γ₂N₂.natTrans ◫ 𝟙 N₂).app P = (𝟙 N₂).app P

tactic: rw [Γ₂.map_id, N₂.map_id, comp_id, id_comp, id_comp, identity_N₂_objectwise P]
state_before: case w.h
C : Type u_1
inst✝² : Category C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
P : Karoubi (SimplicialObject C)
⊢ (N₂Γ₂.inv.app (N₂.obj P) ≫ N₂.map (Γ₂.map (𝟙 (N₂.obj P)))) ≫
      𝟙 (N₂.obj (Γ₂.obj (N₂.obj P))) ≫ 𝟙 (N₂.obj (Γ₂.obj (N₂.obj P))) ≫ N₂.map (Γ₂N₂.natTrans.app P) =
    𝟙 (N₂.obj P)
Theorem: IsUnit.mul
File: Mathlib/Algebra/Group/Units.lean

tactic: rintro ⟨x, rfl⟩ ⟨y, rfl⟩
state_before: α : Type u
M : Type u_1
N : Type ?u.60225
inst✝ : Monoid M
x y : M
⊢ IsUnit x → IsUnit y → IsUnit (x * y)

tactic: exact ⟨x * y, Units.val_mul _ _⟩
state_before: case intro.intro
α : Type u
M : Type u_1
N : Type ?u.60225
inst✝ : Monoid M
x y : Mˣ
⊢ IsUnit (↑x * ↑y)
Theorem: Finset.partiallyWellOrderedOn_bUnion
File: Mathlib/Order/WellFoundedSet.lean

tactic: simpa only [Finset.sup_eq_iSup] using s.partiallyWellOrderedOn_sup
state_before: ι : Type u_1
α : Type u_2
β : Type ?u.125092
r : α → α → Prop
s : Finset ι
f : ι → Set α
⊢ Set.PartiallyWellOrderedOn (⋃ (i : ι) (_ : i ∈ s), f i) r ↔ ∀ (i : ι), i ∈ s → Set.PartiallyWellOrderedOn (f i) r
Theorem: LinearMap.toMatrix₂'_comp
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: rw [← LinearMap.compl₂_id (B.comp f), ← LinearMap.compl₁₂]
state_before: R : Type u_1
R₁ : Type ?u.768740
R₂ : Type ?u.768743
M : Type ?u.768746
M₁ : Type ?u.768749
M₂ : Type ?u.768752
M₁' : Type ?u.768755
M₂' : Type ?u.768758
n : Type u_2
m : Type u_3
n' : Type u_4
m' : Type ?u.768770
ι : Type ?u.768773
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
f : (n' → R) →ₗ[R] n → R
⊢ ↑toMatrix₂' (comp B f) = (↑toMatrix' f)ᵀ ⬝ ↑toMatrix₂' B

tactic: simp
state_before: R : Type u_1
R₁ : Type ?u.768740
R₂ : Type ?u.768743
M : Type ?u.768746
M₁ : Type ?u.768749
M₂ : Type ?u.768752
M₁' : Type ?u.768755
M₂' : Type ?u.768758
n : Type u_2
m : Type u_3
n' : Type u_4
m' : Type ?u.768770
ι : Type ?u.768773
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
f : (n' → R) →ₗ[R] n → R
⊢ ↑toMatrix₂' (compl₁₂ B f id) = (↑toMatrix' f)ᵀ ⬝ ↑toMatrix₂' B
Theorem: tendsto_floor_atTop
File: Mathlib/Topology/Algebra/Order/Floor.lean

tactic: rw [floor_intCast]
state_before: α : Type u_1
β : Type ?u.25
γ : Type ?u.28
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
b : ℤ
⊢ b ≤ ⌊↑(b + 1)⌋

tactic: exact (lt_add_one _).le
state_before: α : Type u_1
β : Type ?u.25
γ : Type ?u.28
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
b : ℤ
⊢ b ≤ b + 1
Theorem: and_symm_left
File: Mathlib/Logic/Basic.lean

tactic: simp [eq_comm]
state_before: α : Sort u_1
a b : α
p : Prop
⊢ a = b ∧ p ↔ b = a ∧ p
Theorem: AffineSubspace.SSameSide.not_wOppSide
File: Mathlib/Analysis/Convex/Side.lean

tactic: intro ho
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.322569
P : Type u_3
P' : Type ?u.322575
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SSameSide s x y
⊢ ¬WOppSide s x y

tactic: have hxy := wSameSide_and_wOppSide_iff.1 ⟨h.1, ho⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.322569
P : Type u_3
P' : Type ?u.322575
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SSameSide s x y
ho : WOppSide s x y
⊢ False

tactic: rcases hxy with (hx | hy)
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.322569
P : Type u_3
P' : Type ?u.322575
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SSameSide s x y
ho : WOppSide s x y
hxy : x ∈ s ∨ y ∈ s
⊢ False

tactic: exact h.2.1 hx
state_before: case inl
R : Type u_1
V : Type u_2
V' : Type ?u.322569
P : Type u_3
P' : Type ?u.322575
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SSameSide s x y
ho : WOppSide s x y
hx : x ∈ s
⊢ False

tactic: exact h.2.2 hy
state_before: case inr
R : Type u_1
V : Type u_2
V' : Type ?u.322569
P : Type u_3
P' : Type ?u.322575
inst✝⁶ : LinearOrderedField R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
h : SSameSide s x y
ho : WOppSide s x y
hy : y ∈ s
⊢ False
Theorem: ContinuousLinearMap.closed_complemented_range_of_isCompl_of_ker_eq_bot
File: Mathlib/Analysis/NormedSpace/Banach.lean

tactic: haveI : CompleteSpace G := hG.completeSpace_coe
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 →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
hG : IsClosed ↑G
hker : ker f = ⊥
⊢ IsClosed ↑(LinearMap.range f)

tactic: let g := coprodSubtypeLEquivOfIsCompl f h hker
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 →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
hG : IsClosed ↑G
hker : ker f = ⊥
this : CompleteSpace { x // x ∈ G }
⊢ IsClosed ↑(LinearMap.range f)

tactic: rw [range_eq_map_coprodSubtypeLEquivOfIsCompl f h hker]
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 →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
hG : IsClosed ↑G
hker : ker f = ⊥
this : CompleteSpace { x // x ∈ G }
g : (E × { x // x ∈ G }) ≃L[𝕜] F := coprodSubtypeLEquivOfIsCompl f h hker
⊢ IsClosed ↑(LinearMap.range f)

tactic: apply g.toHomeomorph.isClosed_image.2
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 →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
hG : IsClosed ↑G
hker : ker f = ⊥
this : CompleteSpace { x // x ∈ G }
g : (E × { x // x ∈ G }) ≃L[𝕜] F := coprodSubtypeLEquivOfIsCompl f h hker
⊢ IsClosed ↑(Submodule.map (↑↑(coprodSubtypeLEquivOfIsCompl f h hker)) (Submodule.prod ⊤ ⊥))

tactic: exact isClosed_univ.prod isClosed_singleton
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 →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
hG : IsClosed ↑G
hker : ker f = ⊥
this : CompleteSpace { x // x ∈ G }
g : (E × { x // x ∈ G }) ≃L[𝕜] F := coprodSubtypeLEquivOfIsCompl f h hker
⊢ IsClosed ↑(Submodule.prod ⊤ ⊥)
Theorem: Pell.eq_pellZd
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: rw [Zsqrtd.coe_nat_val]
state_before: a : ℕ
a1 : 1 < a
b : ℤ√↑(Pell.d a1)
b1 : 1 ≤ b
hp : IsPell b
n : ℕ
h : b ≤ ↑n
⊢ ↑n ≤ pellZd a1 n

tactic: exact
  Zsqrtd.le_of_le_le (Int.ofNat_le_ofNat_of_le <| le_of_lt <| n_lt_xn _ _)
    (Int.ofNat_zero_le _)
state_before: a : ℕ
a1 : 1 < a
b : ℤ√↑(Pell.d a1)
b1 : 1 ≤ b
hp : IsPell b
n : ℕ
h : b ≤ ↑n
⊢ { re := ↑n, im := 0 } ≤ pellZd a1 n
Theorem: isClosedMap_smul₀
File: Mathlib/Topology/Algebra/ConstMulAction.lean

tactic: rcases eq_or_ne c 0 with (rfl | hne)
state_before: M✝ : Type ?u.106576
α : Type ?u.106579
β : Type ?u.106582
G₀ : Type ?u.106585
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : GroupWithZero G₀
inst✝⁸ : MulAction G₀ α
inst✝⁷ : ContinuousConstSMul G₀ α
inst✝⁶ : TopologicalSpace β
f : β → α
b : β
c✝ : G₀
s : Set β
𝕜 : Type u_1
M : Type u_2
inst✝⁵ : DivisionRing 𝕜
inst✝⁴ : AddCommMonoid M
inst✝³ : TopologicalSpace M
inst✝² : T1Space M
inst✝¹ : Module 𝕜 M
inst✝ : ContinuousConstSMul 𝕜 M
c : 𝕜
⊢ IsClosedMap fun x => c • x

tactic: simp only [zero_smul]
state_before: case inl
M✝ : Type ?u.106576
α : Type ?u.106579
β : Type ?u.106582
G₀ : Type ?u.106585
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : GroupWithZero G₀
inst✝⁸ : MulAction G₀ α
inst✝⁷ : ContinuousConstSMul G₀ α
inst✝⁶ : TopologicalSpace β
f : β → α
b : β
c : G₀
s : Set β
𝕜 : Type u_1
M : Type u_2
inst✝⁵ : DivisionRing 𝕜
inst✝⁴ : AddCommMonoid M
inst✝³ : TopologicalSpace M
inst✝² : T1Space M
inst✝¹ : Module 𝕜 M
inst✝ : ContinuousConstSMul 𝕜 M
⊢ IsClosedMap fun x => 0 • x

tactic: exact isClosedMap_const
state_before: case inl
M✝ : Type ?u.106576
α : Type ?u.106579
β : Type ?u.106582
G₀ : Type ?u.106585
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : GroupWithZero G₀
inst✝⁸ : MulAction G₀ α
inst✝⁷ : ContinuousConstSMul G₀ α
inst✝⁶ : TopologicalSpace β
f : β → α
b : β
c : G₀
s : Set β
𝕜 : Type u_1
M : Type u_2
inst✝⁵ : DivisionRing 𝕜
inst✝⁴ : AddCommMonoid M
inst✝³ : TopologicalSpace M
inst✝² : T1Space M
inst✝¹ : Module 𝕜 M
inst✝ : ContinuousConstSMul 𝕜 M
⊢ IsClosedMap fun x => 0

tactic: exact (Homeomorph.smulOfNeZero c hne).isClosedMap
state_before: case inr
M✝ : Type ?u.106576
α : Type ?u.106579
β : Type ?u.106582
G₀ : Type ?u.106585
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : GroupWithZero G₀
inst✝⁸ : MulAction G₀ α
inst✝⁷ : ContinuousConstSMul G₀ α
inst✝⁶ : TopologicalSpace β
f : β → α
b : β
c✝ : G₀
s : Set β
𝕜 : Type u_1
M : Type u_2
inst✝⁵ : DivisionRing 𝕜
inst✝⁴ : AddCommMonoid M
inst✝³ : TopologicalSpace M
inst✝² : T1Space M
inst✝¹ : Module 𝕜 M
inst✝ : ContinuousConstSMul 𝕜 M
c : 𝕜
hne : c ≠ 0
⊢ IsClosedMap fun x => c • x
Theorem: Int.cast_three
File: Mathlib/Data/Int/Cast/Basic.lean

tactic: rw [cast_ofNat, Nat.cast_ofNat]
state_before: R : Type u
inst✝ : AddGroupWithOne R
⊢ ↑↑3 = ↑3
Theorem: Bool.ite_eq_true_distrib
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: by_cases c <;> simp [*]
state_before: c : Prop
inst✝ : Decidable c
a b : Bool
⊢ ((if c then a else b) = true) = if c then a = true else b = true
Theorem: set_pi_mem_nhds_iff
File: Mathlib/Topology/Constructions.lean

tactic: rw [nhds_pi, pi_mem_pi_iff hI]
state_before: α : Type u
β : Type v
γ : Type ?u.312479
δ : Type ?u.312482
ε : Type ?u.312485
ζ : Type ?u.312488
ι : Type u_1
π : ι → Type u_2
κ : Type ?u.312499
inst✝¹ : TopologicalSpace α
inst✝ : (i : ι) → TopologicalSpace (π i)
f : α → (i : ι) → π i
I : Set ι
hI : Set.Finite I
s : (i : ι) → Set (π i)
a : (i : ι) → π i
⊢ Set.pi I s ∈ 𝓝 a ↔ ∀ (i : ι), i ∈ I → s i ∈ 𝓝 (a i)
Theorem: Set.biUnion_pair
File: Mathlib/Data/Set/Lattice.lean

tactic: simp
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.113795
ι : Sort ?u.113798
ι' : Sort ?u.113801
ι₂ : Sort ?u.113804
κ : ι → Sort ?u.113809
κ₁ : ι → Sort ?u.113814
κ₂ : ι → Sort ?u.113819
κ' : ι' → Sort ?u.113824
a b : α
s : α → Set β
⊢ (⋃ (x : α) (_ : x ∈ {a, b}), s x) = s a ∪ s b
Theorem: Asymptotics.IsBigO.smul_isLittleO
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: intros
state_before: case refine'_2
α : Type u_1
β : Type ?u.572622
E : Type ?u.572625
F : Type ?u.572628
G : Type ?u.572631
E' : Type u_4
F' : Type u_5
G' : Type ?u.572640
E'' : Type ?u.572643
F'' : Type ?u.572646
G'' : Type ?u.572649
R : Type ?u.572652
R' : Type ?u.572655
𝕜 : Type u_2
𝕜' : Type u_3
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 α
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : NormedSpace 𝕜' F'
k₁ : α → 𝕜
k₂ : α → 𝕜'
h₁ : k₁ =O[l] k₂
h₂ : f' =o[l] g'
⊢ ∀ (x : α), ‖k₂ x‖ * ‖g' x‖ = ‖k₂ x • g' x‖

tactic: simp only [norm_smul]
state_before: case refine'_2
α : Type u_1
β : Type ?u.572622
E : Type ?u.572625
F : Type ?u.572628
G : Type ?u.572631
E' : Type u_4
F' : Type u_5
G' : Type ?u.572640
E'' : Type ?u.572643
F'' : Type ?u.572646
G'' : Type ?u.572649
R : Type ?u.572652
R' : Type ?u.572655
𝕜 : Type u_2
𝕜' : Type u_3
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 α
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : NormedSpace 𝕜' F'
k₁ : α → 𝕜
k₂ : α → 𝕜'
h₁ : k₁ =O[l] k₂
h₂ : f' =o[l] g'
x✝ : α
⊢ ‖k₂ x✝‖ * ‖g' x✝‖ = ‖k₂ x✝ • g' x✝‖
Theorem: Stream'.iterate_eq
File: Mathlib/Data/Stream/Init.lean

tactic: rw [← Stream'.eta (iterate f a)]
state_before: α : Type u
β : Type v
δ : Type w
f : α → α
a : α
⊢ iterate f a = a :: iterate f (f a)

tactic: rw [tail_iterate]
state_before: α : Type u
β : Type v
δ : Type w
f : α → α
a : α
⊢ head (iterate f a) :: tail (iterate f a) = a :: iterate f (f a)

tactic: rfl
state_before: α : Type u
β : Type v
δ : Type w
f : α → α
a : α
⊢ head (iterate f a) :: iterate f (f a) = a :: iterate f (f a)