tasksource/leandojo huggingface dataset:
Theorem: ContinuousLinearMap.tmpUniformSpace_eq
File: Mathlib/Analysis/NormedSpace/OperatorNorm.lean

tactic: rw [← @UniformAddGroup.toUniformSpace_eq _ ContinuousLinearMap.tmpUniformSpace, ←
  @UniformAddGroup.toUniformSpace_eq _ ContinuousLinearMap.uniformSpace]
state_before: 𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type ?u.578081
E : Type u_1
Eₗ : Type ?u.578087
F : Type u_2
Fₗ : Type ?u.578093
G : Type ?u.578096
Gₗ : Type ?u.578099
𝓕 : Type ?u.578102
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : RingHomIsometric σ₂₃
f g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x : E
⊢ ContinuousLinearMap.tmpUniformSpace = uniformSpace

tactic: congr! 1
state_before: 𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type ?u.578081
E : Type u_1
Eₗ : Type ?u.578087
F : Type u_2
Fₗ : Type ?u.578093
G : Type ?u.578096
Gₗ : Type ?u.578099
𝓕 : Type ?u.578102
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : RingHomIsometric σ₂₃
f g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x : E
⊢ TopologicalAddGroup.toUniformSpace (E →SL[σ₁₂] F) = TopologicalAddGroup.toUniformSpace (E →SL[σ₁₂] F)

tactic: exact ContinuousLinearMap.tmp_topology_eq
state_before: case h.e'_3
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type ?u.578081
E : Type u_1
Eₗ : Type ?u.578087
F : Type u_2
Fₗ : Type ?u.578093
G : Type ?u.578096
Gₗ : Type ?u.578099
𝓕 : Type ?u.578102
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : RingHomIsometric σ₂₃
f g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x : E
⊢ UniformSpace.toTopologicalSpace = UniformSpace.toTopologicalSpace
Theorem: IntermediateField.card_algHom_adjoin_integral
File: Mathlib/FieldTheory/Adjoin.lean

tactic: rw [AlgHom.card_of_powerBasis] <;>
  simp only [adjoin.powerBasis_dim, adjoin.powerBasis_gen, minpoly_gen h, h_sep, h_splits]
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u_3
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
h_sep : Separable (minpoly F α)
h_splits : Splits (algebraMap F K) (minpoly F α)
⊢ Fintype.card ({ x // x ∈ F⟮α⟯ } →ₐ[F] K) = natDegree (minpoly F α)
Theorem: LinearMap.rTensor_comp
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: ext (m n)
state_before: R : Type u_4
inst✝¹⁴ : CommSemiring R
R' : Type ?u.1245030
inst✝¹³ : Monoid R'
R'' : Type ?u.1245036
inst✝¹² : Semiring R''
M : Type u_1
N : Type u_2
P : Type u_5
Q : Type u_3
S : Type ?u.1245054
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
g : P →ₗ[R] Q
f : N →ₗ[R] P
⊢ rTensor M (comp g f) = comp (rTensor M g) (rTensor M f)

tactic: simp only [compr₂_apply, mk_apply, comp_apply, rTensor_tmul]
state_before: case H.h.h
R : Type u_4
inst✝¹⁴ : CommSemiring R
R' : Type ?u.1245030
inst✝¹³ : Monoid R'
R'' : Type ?u.1245036
inst✝¹² : Semiring R''
M : Type u_1
N : Type u_2
P : Type u_5
Q : Type u_3
S : Type ?u.1245054
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
g : P →ₗ[R] Q
f : N →ₗ[R] P
m : N
n : M
⊢ ↑(↑(compr₂ (TensorProduct.mk R N M) (rTensor M (comp g f))) m) n =
    ↑(↑(compr₂ (TensorProduct.mk R N M) (comp (rTensor M g) (rTensor M f))) m) n
Theorem: Polynomial.divX_eq_zero_iff
File: Mathlib/Data/Polynomial/Inductions.lean

tactic: simpa [eq_comm, h] using divX_mul_X_add p
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p q : R[X]
h : divX p = 0
⊢ p = ↑C (coeff p 0)

tactic: rw [h, divX_C]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p q : R[X]
h : p = ↑C (coeff p 0)
⊢ divX p = 0
Theorem: pow_eq_mod_orderOf
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rw [Nat.mod_add_div]
state_before: G : Type u
A : Type v
x y : G
a b : A
n✝ m : ℕ
inst✝¹ : Monoid G
inst✝ : AddMonoid A
n : ℕ
⊢ x ^ n = x ^ (n % orderOf x + orderOf x * (n / orderOf x))

tactic: simp [pow_add, pow_mul, pow_orderOf_eq_one]
state_before: G : Type u
A : Type v
x y : G
a b : A
n✝ m : ℕ
inst✝¹ : Monoid G
inst✝ : AddMonoid A
n : ℕ
⊢ x ^ (n % orderOf x + orderOf x * (n / orderOf x)) = x ^ (n % orderOf x)
Theorem: PNat.card_Ico
File: Mathlib/Data/PNat/Interval.lean

tactic: rw [← Nat.card_Ico]
state_before: a b : ℕ+
⊢ card (Ico a b) = ↑b - ↑a

tactic: erw [← Finset.map_subtype_embedding_Ico _ a b (fun c x _ hx _ hc _ => hc.trans_le hx)]
state_before: a b : ℕ+
⊢ card (Ico a b) = card (Ico ↑a ↑b)

tactic: rw  [card_map]
state_before: a b : ℕ+
⊢ card (Ico a b) = card (map (Function.Embedding.subtype fun n => 0 < n) (Ico a b))
Theorem: NNReal.rpow_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [← NNReal.coe_eq, coe_rpow, ← NNReal.coe_eq_zero]
state_before: x : ℝ≥0
y : ℝ
⊢ x ^ y = 0 ↔ x = 0 ∧ y ≠ 0

tactic: exact Real.rpow_eq_zero_iff_of_nonneg x.2
state_before: x : ℝ≥0
y : ℝ
⊢ ↑x ^ y = ↑0 ↔ ↑x = 0 ∧ y ≠ 0
Theorem: MeasureTheory.VectorMeasure.AbsolutelyContinuous.smul
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: intro s hs
state_before: α : Type u_3
β : Type ?u.635196
m : MeasurableSpace α
L : Type ?u.635202
M : Type u_2
N : Type u_4
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N
R : Type u_1
inst✝² : Semiring R
inst✝¹ : DistribMulAction R M
inst✝ : ContinuousConstSMul R M
r : R
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
⊢ r • v ≪ᵥ w

tactic: rw [smul_apply, h hs, smul_zero]
state_before: α : Type u_3
β : Type ?u.635196
m : MeasurableSpace α
L : Type ?u.635202
M : Type u_2
N : Type u_4
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N
R : Type u_1
inst✝² : Semiring R
inst✝¹ : DistribMulAction R M
inst✝ : ContinuousConstSMul R M
r : R
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑(r • v) s = 0
Theorem: Int.natAbs_add_neg
File: Mathlib/Init/Data/Int/Basic.lean

tactic: simp [Nat.succ_add, Nat.add_succ]
state_before: n m : ℕ
x✝¹ : -[n+1] < 0
x✝ : -[m+1] < 0
⊢ natAbs (-[n+1] + -[m+1]) = natAbs -[n+1] + natAbs -[m+1]
Theorem: Set.restrictPreimage_inducing
File: Mathlib/Topology/LocalAtTarget.lean

tactic: simp_rw [inducing_subtype_val.inducing_iff, inducing_iff_nhds, restrictPreimage,
  MapsTo.coe_restrict, restrict_eq, ← @Filter.comap_comap _ _ _ _ _ f, Function.comp_apply] at h⊢
state_before: α : Type u_2
β : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s✝ : Set β
ι : Type ?u.194
U : ι → Opens β
hU : iSup U = ⊤
s : Set β
h : Inducing f
⊢ Inducing (restrictPreimage s f)

tactic: intro a
state_before: α : Type u_2
β : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s✝ : Set β
ι : Type ?u.194
U : ι → Opens β
hU : iSup U = ⊤
s : Set β
h : ∀ (a : α), 𝓝 a = comap f (𝓝 (f a))
⊢ ∀ (a : ↑(f ⁻¹' s)), 𝓝 a = comap Subtype.val (comap f (𝓝 (f ↑a)))

tactic: rw [← h, ← inducing_subtype_val.nhds_eq_comap]
state_before: α : Type u_2
β : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
f : α → β
s✝ : Set β
ι : Type ?u.194
U : ι → Opens β
hU : iSup U = ⊤
s : Set β
h : ∀ (a : α), 𝓝 a = comap f (𝓝 (f a))
a : ↑(f ⁻¹' s)
⊢ 𝓝 a = comap Subtype.val (comap f (𝓝 (f ↑a)))
Theorem: Finset.sorted_zero_eq_min'_aux
File: Mathlib/Data/Finset/Sort.lean

tactic: apply le_antisymm
state_before: α : Type u_1
β : Type ?u.7886
inst✝ : LinearOrder α
s : Finset α
h : 0 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
⊢ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) 0 h = min' s H

tactic: obtain ⟨i, hi⟩ : ∃ i, l.get i = s.min' H := List.mem_iff_get.1 this
state_before: case a
α : Type u_1
β : Type ?u.7886
inst✝ : LinearOrder α
s : Finset α
h : 0 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
this : min' s H ∈ l
⊢ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) 0 h ≤ min' s H

tactic: rw [← hi]
state_before: case a.intro
α : Type u_1
β : Type ?u.7886
inst✝ : LinearOrder α
s : Finset α
h : 0 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
this : min' s H ∈ l
i : Fin (List.length l)
hi : List.get l i = min' s H
⊢ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) 0 h ≤ min' s H

tactic: exact s.min'_le _ this
state_before: case a
α : Type u_1
β : Type ?u.7886
inst✝ : LinearOrder α
s : Finset α
h : 0 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
this : List.get l { val := 0, isLt := h } ∈ s
⊢ min' s H ≤ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) 0 h
Theorem: Multiset.powersetLen_le_powerset
File: Mathlib/Data/Multiset/Powerset.lean

tactic: simp only [quot_mk_to_coe, powersetLen_coe, powerset_coe', coe_le]
state_before: α : Type u_1
n : ℕ
s : Multiset α
l : List α
⊢ powersetLen n (Quotient.mk (isSetoid α) l) ≤ powerset (Quotient.mk (isSetoid α) l)

tactic: exact ((sublistsLen_sublist_sublists' _ _).map _).subperm
state_before: α : Type u_1
n : ℕ
s : Multiset α
l : List α
⊢ List.map ofList (sublistsLen n l) <+~ List.map ofList (sublists' l)
Theorem: MultilinearMap.map_coord_zero
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: classical
  have : (0 : R) • (0 : M₁ i) = 0 := by simp
  rw [← update_eq_self i m, h, ← this, f.map_smul, zero_smul R (M := M₂)]
state_before: R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M'
f f' : MultilinearMap R M₁ M₂
m : (i : ι) → M₁ i
i : ι
h : m i = 0
⊢ ↑f m = 0

tactic: have : (0 : R) • (0 : M₁ i) = 0 := by simp
state_before: R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M'
f f' : MultilinearMap R M₁ M₂
m : (i : ι) → M₁ i
i : ι
h : m i = 0
⊢ ↑f m = 0

tactic: rw [← update_eq_self i m, h, ← this, f.map_smul, zero_smul R (M := M₂)]
state_before: R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M'
f f' : MultilinearMap R M₁ M₂
m : (i : ι) → M₁ i
i : ι
h : m i = 0
this : 0 • 0 = 0
⊢ ↑f m = 0

tactic: simp
state_before: R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹⁰ : Semiring R
inst✝⁹ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁸ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝³ : (i : ι) → Module R (M₁ i)
inst✝² : Module R M₂
inst✝¹ : Module R M₃
inst✝ : Module R M'
f f' : MultilinearMap R M₁ M₂
m : (i : ι) → M₁ i
i : ι
h : m i = 0
⊢ 0 • 0 = 0
Theorem: Option.bind_comm
File: Std/Data/Option/Lemmas.lean

tactic: cases a <;> cases b <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β → Option γ
a : Option α
b : Option β
⊢ (Option.bind a fun x => Option.bind b (f x)) = Option.bind b fun y => Option.bind a fun x => f x y
Theorem: Finset.sum_pow
File: Mathlib/Data/Nat/Choose/Multinomial.lean

tactic: conv_rhs => rw [← sum_coe_sort]
state_before: α : Type u_2
inst✝¹ : DecidableEq α
s : Finset α
R : Type u_1
inst✝ : CommSemiring R
x : α → R
n : ℕ
⊢ Finset.sum s x ^ n = ∑ k in Finset.sym s n, ↑(Multiset.multinomial ↑k) * Multiset.prod (Multiset.map x ↑k)

tactic: convert sum_pow_of_commute s x (fun _ _ _ _ _ => mul_comm _ _) n
state_before: α : Type u_2
inst✝¹ : DecidableEq α
s : Finset α
R : Type u_1
inst✝ : CommSemiring R
x : α → R
n : ℕ
⊢ Finset.sum s x ^ n =
    ∑ i : { x // x ∈ Finset.sym s n }, ↑(Multiset.multinomial ↑↑i) * Multiset.prod (Multiset.map x ↑↑i)

tactic: rw [Multiset.noncommProd_eq_prod]
state_before: case h.e'_3.a.h.e'_6
α : Type u_2
inst✝¹ : DecidableEq α
s : Finset α
R : Type u_1
inst✝ : CommSemiring R
x : α → R
n : ℕ
x✝ : { x // x ∈ Finset.sym s n }
a✝ : x✝ ∈ univ
⊢ Multiset.prod (Multiset.map x ↑↑x✝) =
    Multiset.noncommProd (Multiset.map x ↑↑x✝) (_ : Set.Pairwise {b | b ∈ Multiset.map x ↑↑x✝} Commute)
Theorem: LinearMap.IsProj.isCompl
File: Mathlib/LinearAlgebra/Projection.lean

tactic: rw [← codRestrict_ker]
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.446187
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.446703
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.447666
inst✝² : Semiring S
M : Type ?u.447672
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsCompl p (ker f)

tactic: exact isCompl_of_proj h.codRestrict_apply_cod
state_before: R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.446187
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.446703
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.447666
inst✝² : Semiring S
M : Type ?u.447672
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsCompl p (ker (codRestrict ?m.449728))

R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.446187
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.446703
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.447666
inst✝² : Semiring S
M : Type ?u.447672
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ IsProj ?m.449469 f

R : Type u_1
inst✝⁹ : Ring R
E : Type u_2
inst✝⁸ : AddCommGroup E
inst✝⁷ : Module R E
F : Type ?u.446187
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module R F
G : Type ?u.446703
inst✝⁴ : AddCommGroup G
inst✝³ : Module R G
p q : Submodule R E
S : Type ?u.447666
inst✝² : Semiring S
M : Type ?u.447672
inst✝¹ : AddCommMonoid M
inst✝ : Module S M
m : Submodule S M
f : E →ₗ[R] E
h : IsProj p f
⊢ Submodule R E
Theorem: FirstOrder.Language.model_infiniteTheory_iff
File: Mathlib/ModelTheory/Semantics.lean

tactic: simp [infiniteTheory, infinite_iff, aleph0_le]
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.782402
P : Type ?u.782405
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
n : ℕ
T : Theory L
⊢ M ⊨ infiniteTheory L ↔ Infinite M
Theorem: Nat.two_lt_of_ne
File: Mathlib/Data/Nat/Basic.lean

tactic: rw [Nat.lt_iff_add_one_le]
state_before: m n✝ k n : ℕ
x✝² : n + 3 ≠ 0
x✝¹ : n + 3 ≠ 1
x✝ : n + 3 ≠ 2
⊢ 2 < n + 3

tactic: convert Nat.le_add_left 3 n
state_before: m n✝ k n : ℕ
x✝² : n + 3 ≠ 0
x✝¹ : n + 3 ≠ 1
x✝ : n + 3 ≠ 2
⊢ 2 + 1 ≤ n + 3
Theorem: CategoryTheory.MonoidalOfChosenFiniteProducts.tensor_id
File: Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean

tactic: apply IsLimit.hom_ext (ℬ _ _).isLimit
state_before: C : Type u
inst✝ : Category C
X Y : C
𝒯 : LimitCone (Functor.empty C)
ℬ : (X Y : C) → LimitCone (pair X Y)
X₁ X₂ : C
⊢ tensorHom ℬ (𝟙 X₁) (𝟙 X₂) = 𝟙 (tensorObj ℬ X₁ X₂)

tactic: dsimp [tensorHom]
state_before: case mk.right
C : Type u
inst✝ : Category C
X Y : C
𝒯 : LimitCone (Functor.empty C)
ℬ : (X Y : C) → LimitCone (pair X Y)
X₁ X₂ : C
⊢ tensorHom ℬ (𝟙 X₁) (𝟙 X₂) ≫ (ℬ X₁ X₂).cone.π.app { as := WalkingPair.right } =
    𝟙 (tensorObj ℬ X₁ X₂) ≫ (ℬ X₁ X₂).cone.π.app { as := WalkingPair.right }

tactic: simp
state_before: case mk.right
C : Type u
inst✝ : Category C
X Y : C
𝒯 : LimitCone (Functor.empty C)
ℬ : (X Y : C) → LimitCone (pair X Y)
X₁ X₂ : C
⊢ IsLimit.lift (ℬ X₁ X₂).isLimit
        (BinaryFan.mk (BinaryFan.fst (ℬ X₁ X₂).cone ≫ 𝟙 X₁) (BinaryFan.snd (ℬ X₁ X₂).cone ≫ 𝟙 X₂)) ≫
      BinaryFan.snd (ℬ X₁ X₂).cone =
    𝟙 (tensorObj ℬ X₁ X₂) ≫ BinaryFan.snd (ℬ X₁ X₂).cone
Theorem: FreeProduct.NeWord.mulHead_head
File: Mathlib/GroupTheory/FreeProduct.lean

tactic: induction w
state_before: ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type ?u.617310
inst✝ : Monoid N
i j : ι
w : NeWord M i j
x : M i
hnotone : x * head w ≠ 1
⊢ head (mulHead w x hnotone) = x * head w

tactic: rfl
state_before: case singleton
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type ?u.617310
inst✝ : Monoid N
i j i✝ : ι
x✝ : M i✝
a✝ : x✝ ≠ 1
x : M i✝
hnotone : x * head (singleton x✝ a✝) ≠ 1
⊢ head (mulHead (singleton x✝ a✝) x hnotone) = x * head (singleton x✝ a✝)

case append
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type ?u.617310
inst✝ : Monoid N
i j i✝ j✝ k✝ l✝ : ι
_w₁✝ : NeWord M i✝ j✝
_hne✝ : j✝ ≠ k✝
_w₂✝ : NeWord M k✝ l✝
_w₁_ih✝ : ∀ (x : M i✝) (hnotone : x * head _w₁✝ ≠ 1), head (mulHead _w₁✝ x hnotone) = x * head _w₁✝
_w₂_ih✝ : ∀ (x : M k✝) (hnotone : x * head _w₂✝ ≠ 1), head (mulHead _w₂✝ x hnotone) = x * head _w₂✝
x : M i✝
hnotone : x * head (append _w₁✝ _hne✝ _w₂✝) ≠ 1
⊢ head (mulHead (append _w₁✝ _hne✝ _w₂✝) x hnotone) = x * head (append _w₁✝ _hne✝ _w₂✝)

tactic: simp [*]
state_before: case append
ι : Type u_1
M : ι → Type u_2
inst✝¹ : (i : ι) → Monoid (M i)
N : Type ?u.617310
inst✝ : Monoid N
i j i✝ j✝ k✝ l✝ : ι
_w₁✝ : NeWord M i✝ j✝
_hne✝ : j✝ ≠ k✝
_w₂✝ : NeWord M k✝ l✝
_w₁_ih✝ : ∀ (x : M i✝) (hnotone : x * head _w₁✝ ≠ 1), head (mulHead _w₁✝ x hnotone) = x * head _w₁✝
_w₂_ih✝ : ∀ (x : M k✝) (hnotone : x * head _w₂✝ ≠ 1), head (mulHead _w₂✝ x hnotone) = x * head _w₂✝
x : M i✝
hnotone : x * head (append _w₁✝ _hne✝ _w₂✝) ≠ 1
⊢ head (mulHead (append _w₁✝ _hne✝ _w₂✝) x hnotone) = x * head (append _w₁✝ _hne✝ _w₂✝)
Theorem: derivWithin_fderivWithin
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

tactic: simp [derivWithin]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
⊢ smulRight 1 (derivWithin f s x) = fderivWithin 𝕜 f s x
Theorem: Matrix.transvection_mul_apply_same
File: Mathlib/LinearAlgebra/Matrix/Transvection.lean

tactic: simp [transvection, Matrix.add_mul]
state_before: n : Type u_1
p : Type ?u.12421
R : Type u₂
𝕜 : Type ?u.12426
inst✝⁴ : Field 𝕜
inst✝³ : DecidableEq n
inst✝² : DecidableEq p
inst✝¹ : CommRing R
i j : n
inst✝ : Fintype n
b : n
c : R
M : Matrix n n R
⊢ (transvection i j c ⬝ M) i b = M i b + c * M j b
Theorem: DifferentiableAt.conformalAt
File: Mathlib/Analysis/Complex/RealDeriv.lean

tactic: rw [conformalAt_iff_isConformalMap_fderiv, (h.hasFDerivAt.restrictScalars ℝ).fderiv]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
f : ℂ → E
h : DifferentiableAt ℂ f z
hf' : deriv f z ≠ 0
⊢ ConformalAt f z

tactic: apply isConformalMap_complex_linear
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
f : ℂ → E
h : DifferentiableAt ℂ f z
hf' : deriv f z ≠ 0
⊢ IsConformalMap (ContinuousLinearMap.restrictScalars ℝ (fderiv ℂ f z))

tactic: simpa only [Ne.def, ext_ring_iff]
state_before: case nonzero
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
f : ℂ → E
h : DifferentiableAt ℂ f z
hf' : deriv f z ≠ 0
⊢ fderiv ℂ f z ≠ 0
Theorem: Multiset.coe_inter
File: Mathlib/Data/Multiset/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.399939
γ : Type ?u.399942
inst✝ : DecidableEq α
s t : List α
⊢ ↑s ∩ ↑t = ↑(List.bagInter s t)

tactic: simp
state_before: case a
α : Type u_1
β : Type ?u.399939
γ : Type ?u.399942
inst✝ : DecidableEq α
s t : List α
a✝ : α
⊢ count a✝ (↑s ∩ ↑t) = count a✝ ↑(List.bagInter s t)
Theorem: Ordinal.nfp_add_zero
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: simp_rw [← sup_iterate_eq_nfp, ← sup_mul_nat]
state_before: a : Ordinal
⊢ nfp (fun x => a + x) 0 = a * ω

tactic: congr
state_before: a : Ordinal
⊢ (sup fun n => ((fun x => a + x)^[n]) 0) = sup fun n => a * ↑n

tactic: funext n
state_before: case e_f
a : Ordinal
⊢ (fun n => ((fun x => a + x)^[n]) 0) = fun n => a * ↑n

tactic: induction' n with n hn
state_before: case e_f.h
a : Ordinal
n : ℕ
⊢ ((fun x => a + x)^[n]) 0 = a * ↑n

tactic: rw [Nat.cast_zero, mul_zero, iterate_zero_apply]
state_before: case e_f.h.zero
a : Ordinal
⊢ ((fun x => a + x)^[Nat.zero]) 0 = a * ↑Nat.zero

tactic: nth_rw 2 [Nat.succ_eq_one_add]
state_before: case e_f.h.succ
a : Ordinal
n : ℕ
hn : ((fun x => a + x)^[n]) 0 = a * ↑n
⊢ ((fun x => a + x)^[Nat.succ n]) 0 = a * ↑(Nat.succ n)

tactic: rw [Nat.cast_add, Nat.cast_one, mul_one_add, iterate_succ_apply', hn]
state_before: case e_f.h.succ
a : Ordinal
n : ℕ
hn : ((fun x => a + x)^[n]) 0 = a * ↑n
⊢ ((fun x => a + x)^[Nat.succ n]) 0 = a * ↑(1 + n)
Theorem: TensorPower.cast_eq_cast
File: Mathlib/LinearAlgebra/TensorPower.lean

tactic: subst h
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
i j : ℕ
h : i = j
⊢ ↑(cast R M h) = _root_.cast (_ : (⨂[R]^i) M = (⨂[R]^j) M)

tactic: rw [cast_refl]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
i : ℕ
⊢ ↑(cast R M (_ : i = i)) = _root_.cast (_ : (⨂[R]^i) M = (⨂[R]^i) M)

tactic: rfl
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
i : ℕ
⊢ ↑(LinearEquiv.refl R ((⨂[R]^i) M)) = _root_.cast (_ : (⨂[R]^i) M = (⨂[R]^i) M)