tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.SimpleFunc.norm_approxOn_y₀_le
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: have := edist_approxOn_y0_le hf h₀ x n
state_before: α : Type ?u.11745
β : Type u_2
ι : Type ?u.11751
E : Type u_1
F : Type ?u.11757
𝕜 : Type ?u.11760
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
q : ℝ
p : ℝ≥0∞
inst✝¹ : OpensMeasurableSpace E
f : β → E
hf : Measurable f
s : Set E
y₀ : E
h₀ : y₀ ∈ s
inst✝ : SeparableSpace ↑s
x : β
n : ℕ
⊢ ‖↑(approxOn f hf s y₀ h₀ n) x - y₀‖ ≤ ‖f x - y₀‖ + ‖f x - y₀‖

tactic: repeat' rw [edist_comm y₀, edist_eq_coe_nnnorm_sub] at this
state_before: α : Type ?u.11745
β : Type u_2
ι : Type ?u.11751
E : Type u_1
F : Type ?u.11757
𝕜 : Type ?u.11760
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
q : ℝ
p : ℝ≥0∞
inst✝¹ : OpensMeasurableSpace E
f : β → E
hf : Measurable f
s : Set E
y₀ : E
h₀ : y₀ ∈ s
inst✝ : SeparableSpace ↑s
x : β
n : ℕ
this : edist y₀ (↑(approxOn f hf s y₀ h₀ n) x) ≤ edist y₀ (f x) + edist y₀ (f x)
⊢ ‖↑(approxOn f hf s y₀ h₀ n) x - y₀‖ ≤ ‖f x - y₀‖ + ‖f x - y₀‖

tactic: exact_mod_cast this
state_before: α : Type ?u.11745
β : Type u_2
ι : Type ?u.11751
E : Type u_1
F : Type ?u.11757
𝕜 : Type ?u.11760
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
q : ℝ
p : ℝ≥0∞
inst✝¹ : OpensMeasurableSpace E
f : β → E
hf : Measurable f
s : Set E
y₀ : E
h₀ : y₀ ∈ s
inst✝ : SeparableSpace ↑s
x : β
n : ℕ
this : ↑‖↑(approxOn f hf s y₀ h₀ n) x - y₀‖₊ ≤ ↑‖f x - y₀‖₊ + ↑‖f x - y₀‖₊
⊢ ‖↑(approxOn f hf s y₀ h₀ n) x - y₀‖ ≤ ‖f x - y₀‖ + ‖f x - y₀‖

tactic: rw [edist_comm y₀, edist_eq_coe_nnnorm_sub] at this
state_before: α : Type ?u.11745
β : Type u_2
ι : Type ?u.11751
E : Type u_1
F : Type ?u.11757
𝕜 : Type ?u.11760
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace E
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
q : ℝ
p : ℝ≥0∞
inst✝¹ : OpensMeasurableSpace E
f : β → E
hf : Measurable f
s : Set E
y₀ : E
h₀ : y₀ ∈ s
inst✝ : SeparableSpace ↑s
x : β
n : ℕ
this : ↑‖↑(approxOn f hf s y₀ h₀ n) x - y₀‖₊ ≤ ↑‖f x - y₀‖₊ + ↑‖f x - y₀‖₊
⊢ ‖↑(approxOn f hf s y₀ h₀ n) x - y₀‖ ≤ ‖f x - y₀‖ + ‖f x - y₀‖
Theorem: mem_selfAdjointMatricesSubmodule
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: erw [mem_pairSelfAdjointMatricesSubmodule]
state_before: R : Type u_1
R₁ : Type ?u.2625750
R₂ : Type ?u.2625753
M : Type ?u.2625756
M₁ : Type ?u.2625759
M₂ : Type ?u.2625762
M₁' : Type ?u.2625765
M₂' : Type ?u.2625768
n : Type u_2
m : Type ?u.2625774
n' : Type ?u.2625777
m' : Type ?u.2625780
ι : Type ?u.2625783
inst✝⁸ : CommRing R
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : Fintype n
inst✝² : Fintype n'
b₁ : Basis n R M₁
b₂ : Basis n' R M₂
J J₂ : Matrix n n R
J' : Matrix n' n' R
A : Matrix n' n R
A' : Matrix n n' R
A₁ : Matrix n n R
inst✝¹ : DecidableEq n
inst✝ : DecidableEq n'
⊢ A₁ ∈ selfAdjointMatricesSubmodule J ↔ Matrix.IsSelfAdjoint J A₁

tactic: rfl
state_before: R : Type u_1
R₁ : Type ?u.2625750
R₂ : Type ?u.2625753
M : Type ?u.2625756
M₁ : Type ?u.2625759
M₂ : Type ?u.2625762
M₁' : Type ?u.2625765
M₂' : Type ?u.2625768
n : Type u_2
m : Type ?u.2625774
n' : Type ?u.2625777
m' : Type ?u.2625780
ι : Type ?u.2625783
inst✝⁸ : CommRing R
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : Module R M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : Fintype n
inst✝² : Fintype n'
b₁ : Basis n R M₁
b₂ : Basis n' R M₂
J J₂ : Matrix n n R
J' : Matrix n' n' R
A : Matrix n' n R
A' : Matrix n n' R
A₁ : Matrix n n R
inst✝¹ : DecidableEq n
inst✝ : DecidableEq n'
⊢ Matrix.IsAdjointPair J J A₁ A₁ ↔ Matrix.IsSelfAdjoint J A₁
Theorem: Nat.ceil_add_one
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [cast_one.symm, ceil_add_nat ha 1]
state_before: F : Type ?u.90099
α : Type u_1
β : Type ?u.90105
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
ha : 0 ≤ a
⊢ ⌈a + 1⌉₊ = ⌈a⌉₊ + 1
Theorem: Monotone.map_sup
File: Mathlib/Order/Lattice.lean

tactic: simp only [h, hf h, sup_of_le_right]
state_before: α : Type u
β : Type v
inst✝¹ : LinearOrder α
inst✝ : SemilatticeSup β
f : α → β
hf : Monotone f
x y : α
h : x ≤ y
⊢ f (x ⊔ y) = f x ⊔ f y

tactic: simp only [h, hf h, sup_of_le_left]
state_before: α : Type u
β : Type v
inst✝¹ : LinearOrder α
inst✝ : SemilatticeSup β
f : α → β
hf : Monotone f
x y : α
h : y ≤ x
⊢ f (x ⊔ y) = f x ⊔ f y
Theorem: BilinForm.toMatrix'_compRight
File: Mathlib/LinearAlgebra/Matrix/BilinearForm.lean

tactic: simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, toMatrix'_id, transpose_one,
  Matrix.one_mul]
state_before: R : Type ?u.671027
M : Type ?u.671030
inst✝¹⁸ : Semiring R
inst✝¹⁷ : AddCommMonoid M
inst✝¹⁶ : Module R M
R₁ : Type ?u.671066
M₁ : Type ?u.671069
inst✝¹⁵ : Ring R₁
inst✝¹⁴ : AddCommGroup M₁
inst✝¹³ : Module R₁ M₁
R₂ : Type u_1
M₂ : Type ?u.671681
inst✝¹² : CommSemiring R₂
inst✝¹¹ : AddCommMonoid M₂
inst✝¹⁰ : Module R₂ M₂
R₃ : Type ?u.671868
M₃ : Type ?u.671871
inst✝⁹ : CommRing R₃
inst✝⁸ : AddCommGroup M₃
inst✝⁷ : Module R₃ M₃
V : Type ?u.672459
K : Type ?u.672462
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
n : Type u_2
o : Type ?u.673679
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : DecidableEq n
inst✝ : DecidableEq o
B : BilinForm R₂ (n → R₂)
f : (n → R₂) →ₗ[R₂] n → R₂
⊢ ↑toMatrix' (compRight B f) = ↑toMatrix' B ⬝ ↑LinearMap.toMatrix' f
Theorem: RingHom.map_rangeS
File: Mathlib/RingTheory/Subsemiring/Basic.lean

tactic: simpa only [rangeS_eq_map] using (⊤ : Subsemiring R).map_map g f
state_before: R : Type u
S : Type v
T : Type w
inst✝² : NonAssocSemiring R
M : Submonoid R
inst✝¹ : NonAssocSemiring S
inst✝ : NonAssocSemiring T
g : S →+* T
f : R →+* S
⊢ Subsemiring.map g (rangeS f) = rangeS (comp g f)
Theorem: AddSubgroup.norm_normedMk
File: Mathlib/Analysis/Normed/Group/Quotient.lean

tactic: refine le_antisymm (norm_normedMk_le S) ?_
state_before: M : Type u_1
N : Type ?u.454552
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
h : ↑(topologicalClosure S) ≠ univ
⊢ ‖normedMk S‖ = 1

tactic: obtain ⟨x, hx⟩ : ∃ x : M, 0 < ‖(x : M ⧸ S)‖
state_before: M : Type u_1
N : Type ?u.454552
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
h : ↑(topologicalClosure S) ≠ univ
⊢ 1 ≤ ‖normedMk S‖

tactic: refine (le_mul_iff_one_le_left hx).1 ?_
state_before: case intro
M : Type u_1
N : Type ?u.454552
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
h : ↑(topologicalClosure S) ≠ univ
x : M
hx : 0 < ‖↑x‖
⊢ 1 ≤ ‖normedMk S‖

tactic: exact norm_lift_apply_le S.normedMk (fun x ↦ (eq_zero_iff x).2) x
state_before: case intro
M : Type u_1
N : Type ?u.454552
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
h : ↑(topologicalClosure S) ≠ univ
x : M
hx : 0 < ‖↑x‖
⊢ ‖↑x‖ ≤ ‖normedMk S‖ * ‖↑x‖

tactic: refine (Set.nonempty_compl.2 h).imp fun x hx ↦ ?_
state_before: M : Type u_1
N : Type ?u.454552
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
h : ↑(topologicalClosure S) ≠ univ
⊢ ∃ x, 0 < ‖↑x‖

tactic: exact (norm_nonneg _).lt_of_ne' <| mt (quotient_norm_eq_zero_iff S x).1 hx
state_before: M : Type u_1
N : Type ?u.454552
inst✝¹ : SeminormedAddCommGroup M
inst✝ : SeminormedAddCommGroup N
S : AddSubgroup M
h : ↑(topologicalClosure S) ≠ univ
x : M
hx : x ∈ ↑(topologicalClosure S)ᶜ
⊢ 0 < ‖↑x‖
Theorem: MeasureTheory.Measure.rnDeriv_withDensity
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: rw [zero_add]
state_before: α : Type u_1
β : Type ?u.61274
m : MeasurableSpace α
μ ν✝ ν : Measure α
inst✝ : SigmaFinite ν
f : α → ℝ≥0∞
hf : Measurable f
⊢ withDensity ν f = 0 + withDensity ν f
Theorem: Int.card_fintype_Ico_of_le
File: Mathlib/Data/Int/Interval.lean

tactic: rw [card_fintype_Ico, toNat_sub_of_le h]
state_before: a b : ℤ
h : a ≤ b
⊢ ↑(Fintype.card ↑(Set.Ico a b)) = b - a
Theorem: gauge_unit_ball
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rw [← ball_normSeminorm ℝ, Seminorm.gauge_ball, coe_normSeminorm]
state_before: 𝕜 : Type ?u.285162
E : Type u_1
F : Type ?u.285168
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s : Set E
r : ℝ
x✝ x : E
⊢ gauge (Metric.ball 0 1) x = ‖x‖
Theorem: Complex.cos_sq'
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← sin_sq_add_cos_sq x, add_sub_cancel']
state_before: x y : ℂ
⊢ cos x ^ 2 = 1 - sin x ^ 2
Theorem: Rat.preimage_cast_Ioo
File: Mathlib/Data/Rat/Cast.lean

tactic: ext x
state_before: F : Type ?u.74766
ι : Type ?u.74769
α : Type ?u.74772
β : Type ?u.74775
K : Type u_1
inst✝ : LinearOrderedField K
a b : ℚ
⊢ Rat.cast ⁻¹' Ioo ↑a ↑b = Ioo a b

tactic: simp
state_before: case h
F : Type ?u.74766
ι : Type ?u.74769
α : Type ?u.74772
β : Type ?u.74775
K : Type u_1
inst✝ : LinearOrderedField K
a b x : ℚ
⊢ x ∈ Rat.cast ⁻¹' Ioo ↑a ↑b ↔ x ∈ Ioo a b
Theorem: tsum_singleton
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: rw [_root_.tsum_subtype, tsum_eq_single b]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.341408
δ : Type ?u.341411
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g : β → α
a a₁ a₂ : α
b : β
f : β → α
⊢ (∑' (x : ↑{b}), f ↑x) = f b

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.341408
δ : Type ?u.341411
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g : β → α
a a₁ a₂ : α
b : β
f : β → α
⊢ Set.indicator {b} f b = f b

tactic: intro b' hb'
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.341408
δ : Type ?u.341411
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g : β → α
a a₁ a₂ : α
b : β
f : β → α
⊢ ∀ (b' : β), b' ≠ b → Set.indicator {b} f b' = 0

tactic: rw [Set.indicator_of_not_mem]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.341408
δ : Type ?u.341411
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g : β → α
a a₁ a₂ : α
b : β
f : β → α
b' : β
hb' : b' ≠ b
⊢ Set.indicator {b} f b' = 0

tactic: rwa [Set.mem_singleton_iff]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.341408
δ : Type ?u.341411
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : T2Space α
f✝ g : β → α
a a₁ a₂ : α
b : β
f : β → α
b' : β
hb' : b' ≠ b
⊢ ¬b' ∈ {b}
Theorem: Set.Finite.infsep
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simpa
state_before: α : Type ?u.69565
β : Type ?u.69568
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable (Set.Nontrivial s)
hsf : Set.Finite s
hs : Set.Nontrivial s
⊢ Finset.Nonempty (Finite.toFinset (_ : Set.Finite (offDiag s)))

tactic: split_ifs with hs
state_before: α : Type u_1
β : Type ?u.69568
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable (Set.Nontrivial s)
hsf : Set.Finite s
⊢ Set.infsep s =
    if hs : Set.Nontrivial s then
      Finset.inf' (Finite.toFinset (_ : Set.Finite (offDiag s)))
        (_ : Finset.Nonempty (Finite.toFinset (_ : Set.Finite (offDiag s)))) (uncurry dist)
    else 0

tactic: refine' eq_of_forall_le_iff fun _ => _
state_before: case inl
α : Type u_1
β : Type ?u.69568
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable (Set.Nontrivial s)
hsf : Set.Finite s
hs : Set.Nontrivial s
⊢ Set.infsep s =
    Finset.inf' (Finite.toFinset (_ : Set.Finite (offDiag s)))
      (_ : Finset.Nonempty (Finite.toFinset (_ : Set.Finite (offDiag s)))) (uncurry dist)

tactic: simp_rw [hs.le_infsep_iff, imp_forall_iff, Finset.le_inf'_iff, Finite.mem_toFinset,
  mem_offDiag, Prod.forall, uncurry_apply_pair, and_imp]
state_before: case inl
α : Type u_1
β : Type ?u.69568
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable (Set.Nontrivial s)
hsf : Set.Finite s
hs : Set.Nontrivial s
x✝ : ℝ
⊢ x✝ ≤ Set.infsep s ↔
    x✝ ≤
      Finset.inf' (Finite.toFinset (_ : Set.Finite (offDiag s)))
        (_ : Finset.Nonempty (Finite.toFinset (_ : Set.Finite (offDiag s)))) (uncurry dist)

tactic: rw [not_nontrivial_iff] at hs
state_before: case inr
α : Type u_1
β : Type ?u.69568
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable (Set.Nontrivial s)
hsf : Set.Finite s
hs : ¬Set.Nontrivial s
⊢ Set.infsep s = 0

tactic: exact hs.infsep_zero
state_before: case inr
α : Type u_1
β : Type ?u.69568
inst✝¹ : PseudoMetricSpace α
x y z : α
s t : Set α
inst✝ : Decidable (Set.Nontrivial s)
hsf : Set.Finite s
hs : Set.Subsingleton s
⊢ Set.infsep s = 0
Theorem: Set.iUnion_prod
File: Mathlib/Data/Set/Lattice.lean

tactic: ext
state_before: α✝ : Type ?u.233741
β✝ : Type ?u.233744
γ : Type ?u.233747
ι✝ : Sort ?u.233750
ι'✝ : Sort ?u.233753
ι₂ : Sort ?u.233756
κ : ι✝ → Sort ?u.233761
κ₁ : ι✝ → Sort ?u.233766
κ₂ : ι✝ → Sort ?u.233771
κ' : ι'✝ → Sort ?u.233776
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
s : ι → Set α
t : ι' → Set β
⊢ (⋃ (x : ι × ι'), s x.fst ×ˢ t x.snd) = (⋃ (i : ι), s i) ×ˢ ⋃ (i : ι'), t i

tactic: simp
state_before: case h
α✝ : Type ?u.233741
β✝ : Type ?u.233744
γ : Type ?u.233747
ι✝ : Sort ?u.233750
ι'✝ : Sort ?u.233753
ι₂ : Sort ?u.233756
κ : ι✝ → Sort ?u.233761
κ₁ : ι✝ → Sort ?u.233766
κ₂ : ι✝ → Sort ?u.233771
κ' : ι'✝ → Sort ?u.233776
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
s : ι → Set α
t : ι' → Set β
x✝ : α × β
⊢ (x✝ ∈ ⋃ (x : ι × ι'), s x.fst ×ˢ t x.snd) ↔ x✝ ∈ (⋃ (i : ι), s i) ×ˢ ⋃ (i : ι'), t i
Theorem: MvPolynomial.support_coeff_finSuccEquiv
File: Mathlib/Data/MvPolynomial/Equiv.lean

tactic: apply Iff.intro
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.1217460
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ m ∈ support (Polynomial.coeff (↑(finSuccEquiv R n) f) i) ↔ cons i m ∈ support f

tactic: intro h
state_before: case mp
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.1217460
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ m ∈ support (Polynomial.coeff (↑(finSuccEquiv R n) f) i) → cons i m ∈ support f

tactic: simpa [← finSuccEquiv_coeff_coeff] using h
state_before: case mp
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.1217460
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
h : m ∈ support (Polynomial.coeff (↑(finSuccEquiv R n) f) i)
⊢ cons i m ∈ support f

tactic: intro h
state_before: case mpr
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.1217460
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
⊢ cons i m ∈ support f → m ∈ support (Polynomial.coeff (↑(finSuccEquiv R n) f) i)

tactic: simpa [mem_support_iff, ← finSuccEquiv_coeff_coeff m f i] using h
state_before: case mpr
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type ?u.1217460
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
n : ℕ
f : MvPolynomial (Fin (n + 1)) R
i : ℕ
m : Fin n →₀ ℕ
h : cons i m ∈ support f
⊢ m ∈ support (Polynomial.coeff (↑(finSuccEquiv R n) f) i)
Theorem: LinearIndependent.inl_union_inr
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: refine' (hs.image_subtype _).union (ht.image_subtype _) _ <;> [simp; simp; skip]
state_before: ι : Type u'
ι' : Type ?u.638952
R : Type u_3
K : Type ?u.638958
M : Type u_1
M' : Type u_2
M'' : Type ?u.638967
V : Type u
V' : Type ?u.638972
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
s : Set M
t : Set M'
hs : LinearIndependent R fun x => ↑x
ht : LinearIndependent R fun x => ↑x
⊢ LinearIndependent R fun x => ↑x

tactic: simp only [span_image]
state_before: case refine'_3
ι : Type u'
ι' : Type ?u.638952
R : Type u_3
K : Type ?u.638958
M : Type u_1
M' : Type u_2
M'' : Type ?u.638967
V : Type u
V' : Type ?u.638972
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
s : Set M
t : Set M'
hs : LinearIndependent R fun x => ↑x
ht : LinearIndependent R fun x => ↑x
⊢ Disjoint (span R (↑(inl R M M') '' s)) (span R (↑(inr R M M') '' t))

tactic: simp [disjoint_iff, prod_inf_prod]
state_before: case refine'_3
ι : Type u'
ι' : Type ?u.638952
R : Type u_3
K : Type ?u.638958
M : Type u_1
M' : Type u_2
M'' : Type ?u.638967
V : Type u
V' : Type ?u.638972
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
s : Set M
t : Set M'
hs : LinearIndependent R fun x => ↑x
ht : LinearIndependent R fun x => ↑x
⊢ Disjoint (Submodule.map (inl R M M') (span R s)) (Submodule.map (inr R M M') (span R t))
Theorem: Multiset.cons_product
File: Mathlib/Data/Multiset/Bind.lean

tactic: simp [SProd.sprod, product]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.56103
δ : Type ?u.56106
a : α
b : β
s : Multiset α
t : Multiset β
⊢ (a ::ₘ s) ×ˢ t = map (Prod.mk a) t + s ×ˢ t
Theorem: CategoryTheory.LaxMonoidalFunctor.prod'_ε
File: Mathlib/CategoryTheory/Monoidal/Functor.lean

tactic: dsimp [prod']
state_before: C : Type u₁
inst✝⁵ : Category C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
⊢ (prod' F G).ε = (F.ε, G.ε)

tactic: simp
state_before: C : Type u₁
inst✝⁵ : Category C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
⊢ (F.ε ≫ F.map (𝟙 (𝟙_ C)), G.ε ≫ G.map (𝟙 (𝟙_ C))) = (F.ε, G.ε)
Theorem: IsPGroup.map
File: Mathlib/GroupTheory/PGroup.lean

tactic: rw [← H.subtype_range, MonoidHom.map_range]
state_before: p : ℕ
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
hH : IsPGroup p { x // x ∈ H }
K : Type u_2
inst✝ : Group K
ϕ : G →* K
⊢ IsPGroup p { x // x ∈ Subgroup.map ϕ H }

tactic: exact hH.of_surjective (ϕ.restrict H).rangeRestrict (ϕ.restrict H).rangeRestrict_surjective
state_before: p : ℕ
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
hH : IsPGroup p { x // x ∈ H }
K : Type u_2
inst✝ : Group K
ϕ : G →* K
⊢ IsPGroup p { x // x ∈ MonoidHom.range (MonoidHom.comp ϕ (Subgroup.subtype H)) }
Theorem: semilatticeSup_mk'_partialOrder_eq_semilatticeInf_mk'_partialOrder
File: Mathlib/Order/Lattice.lean

tactic: rw [← h, inf_comm, inf_sup_self]
state_before: α✝ : Type u
β : Type v
α : Type u_1
inst✝¹ : Sup α
inst✝ : Inf α
sup_comm : ∀ (a b : α), a ⊔ b = b ⊔ a
sup_assoc : ∀ (a b c : α), a ⊔ b ⊔ c = a ⊔ (b ⊔ c)
sup_idem : ∀ (a : α), a ⊔ a = a
inf_comm : ∀ (a b : α), a ⊓ b = b ⊓ a
inf_assoc : ∀ (a b c : α), a ⊓ b ⊓ c = a ⊓ (b ⊓ c)
inf_idem : ∀ (a : α), a ⊓ a = a
sup_inf_self : ∀ (a b : α), a ⊔ a ⊓ b = a
inf_sup_self : ∀ (a b : α), a ⊓ (a ⊔ b) = a
a b : α
h : a ⊔ b = b
⊢ b ⊓ a = a

tactic: rw [← h, sup_comm, sup_inf_self]
state_before: α✝ : Type u
β : Type v
α : Type u_1
inst✝¹ : Sup α
inst✝ : Inf α
sup_comm : ∀ (a b : α), a ⊔ b = b ⊔ a
sup_assoc : ∀ (a b c : α), a ⊔ b ⊔ c = a ⊔ (b ⊔ c)
sup_idem : ∀ (a : α), a ⊔ a = a
inf_comm : ∀ (a b : α), a ⊓ b = b ⊓ a
inf_assoc : ∀ (a b c : α), a ⊓ b ⊓ c = a ⊓ (b ⊓ c)
inf_idem : ∀ (a : α), a ⊓ a = a
sup_inf_self : ∀ (a b : α), a ⊔ a ⊓ b = a
inf_sup_self : ∀ (a b : α), a ⊓ (a ⊔ b) = a
a b : α
h : b ⊓ a = a
⊢ a ⊔ b = b
Theorem: Finset.image_filter
File: Mathlib/Data/Finset/Image.lean

tactic: simp only [mem_filter, mem_image, exists_prop]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.84280
inst✝¹ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b✝ c : β
p : β → Prop
inst✝ : DecidablePred p
b : β
⊢ b ∈ filter p (image f s) ↔ b ∈ image f (filter (p ∘ f) s)

tactic: exact
  ⟨by rintro ⟨⟨x, h1, rfl⟩, h2⟩; exact ⟨x, ⟨h1, h2⟩, rfl⟩,
   by rintro ⟨x, ⟨h1, h2⟩, rfl⟩; exact ⟨⟨x, h1, rfl⟩, h2⟩⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.84280
inst✝¹ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b✝ c : β
p : β → Prop
inst✝ : DecidablePred p
b : β
⊢ (∃ a, a ∈ s ∧ f a = b) ∧ p b ↔ ∃ a, (a ∈ s ∧ (p ∘ f) a) ∧ f a = b

tactic: rintro ⟨⟨x, h1, rfl⟩, h2⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.84280
inst✝¹ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b✝ c : β
p : β → Prop
inst✝ : DecidablePred p
b : β
⊢ (∃ a, a ∈ s ∧ f a = b) ∧ p b → ∃ a, (a ∈ s ∧ (p ∘ f) a) ∧ f a = b

tactic: exact ⟨x, ⟨h1, h2⟩, rfl⟩
state_before: case intro.intro.intro
α : Type u_2
β : Type u_1
γ : Type ?u.84280
inst✝¹ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b c : β
p : β → Prop
inst✝ : DecidablePred p
x : α
h1 : x ∈ s
h2 : p (f x)
⊢ ∃ a, (a ∈ s ∧ (p ∘ f) a) ∧ f a = f x

tactic: rintro ⟨x, ⟨h1, h2⟩, rfl⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.84280
inst✝¹ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b✝ c : β
p : β → Prop
inst✝ : DecidablePred p
b : β
⊢ (∃ a, (a ∈ s ∧ (p ∘ f) a) ∧ f a = b) → (∃ a, a ∈ s ∧ f a = b) ∧ p b

tactic: exact ⟨⟨x, h1, rfl⟩, h2⟩
state_before: case intro.intro.intro
α : Type u_2
β : Type u_1
γ : Type ?u.84280
inst✝¹ : DecidableEq β
f g : α → β
s : Finset α
t : Finset β
a : α
b c : β
p : β → Prop
inst✝ : DecidablePred p
x : α
h1 : x ∈ s
h2 : (p ∘ f) x
⊢ (∃ a, a ∈ s ∧ f a = f x) ∧ p (f x)
Theorem: TensorProduct.map_add_left
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: ext
state_before: R : Type u_1
inst✝¹⁸ : CommSemiring R
R' : Type ?u.983940
inst✝¹⁷ : Monoid R'
R'' : Type ?u.983946
inst✝¹⁶ : Semiring R''
M : Type u_2
N : Type u_4
P : Type u_3
Q : Type u_5
S : Type ?u.983964
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid N
inst✝¹³ : AddCommMonoid P
inst✝¹² : AddCommMonoid Q
inst✝¹¹ : AddCommMonoid S
inst✝¹⁰ : Module R M
inst✝⁹ : Module R N
inst✝⁸ : Module R P
inst✝⁷ : Module R Q
inst✝⁶ : Module R S
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type ?u.985091
Q' : Type ?u.985094
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f₁ f₂ : M →ₗ[R] P
g : N →ₗ[R] Q
⊢ map (f₁ + f₂) g = map f₁ g + map f₂ g

tactic: simp only [add_tmul, compr₂_apply, mk_apply, map_tmul, add_apply]
state_before: case H.h.h
R : Type u_1
inst✝¹⁸ : CommSemiring R
R' : Type ?u.983940
inst✝¹⁷ : Monoid R'
R'' : Type ?u.983946
inst✝¹⁶ : Semiring R''
M : Type u_2
N : Type u_4
P : Type u_3
Q : Type u_5
S : Type ?u.983964
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid N
inst✝¹³ : AddCommMonoid P
inst✝¹² : AddCommMonoid Q
inst✝¹¹ : AddCommMonoid S
inst✝¹⁰ : Module R M
inst✝⁹ : Module R N
inst✝⁸ : Module R P
inst✝⁷ : Module R Q
inst✝⁶ : Module R S
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type ?u.985091
Q' : Type ?u.985094
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f₁ f₂ : M →ₗ[R] P
g : N →ₗ[R] Q
x✝¹ : M
x✝ : N
⊢ ↑(↑(compr₂ (mk R M N) (map (f₁ + f₂) g)) x✝¹) x✝ = ↑(↑(compr₂ (mk R M N) (map f₁ g + map f₂ g)) x✝¹) x✝