Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit a4108eb

Browse files
committed
fix(algebra/pi_instances): bugfix
1 parent 9aec1d1 commit a4108eb

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

algebra/pi_instances.lean

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ instance add_comm_group [∀ i, add_comm_group $ f i] : add_comm_group
5050
instance ring [∀ i, ring $ f i] : ring (Π i : I, f i) := by pi_instance
5151
instance comm_ring [∀ i, comm_ring $ f i] : comm_ring (Π i : I, f i) := by pi_instance
5252

53-
instance semimodule (α) {r : semiring α} [∀ i, add_comm_monoid $ f i] [∀ i, semimodule α $ f i] : semimodule α (Π i : I, f i) := by pi_instance
54-
instance module (α) {r : ring α} [∀ i, add_comm_group $ f i] [∀ i, module α $ f i] : module α (Π i : I, f i) := {..pi.semimodule α}
55-
instance vector_space (α) {r : discrete_field α} [∀ i, add_comm_group $ f i] [∀ i, vector_space α $ f i] : vector_space α (Π i : I, f i) := {..pi.module α}
53+
instance semimodule (α) {r : semiring α} [∀ i, semimodule α $ f i] : semimodule α (Π i : I, f i) := by pi_instance
54+
instance module (α) {r : ring α} [∀ i, module α $ f i] : module α (Π i : I, f i) := {..pi.semimodule α}
55+
instance vector_space (α) {r : field α} [∀ i, vector_space α $ f i] : vector_space α (Π i : I, f i) := {..pi.module α}
5656

5757
instance left_cancel_semigroup [∀ i, left_cancel_semigroup $ f i] : left_cancel_semigroup (Π i : I, f i) :=
5858
by pi_instance
@@ -215,20 +215,13 @@ by constructor; simp [inl, inr] {contextual := tt}
215215

216216
instance [has_scalar α β] [has_scalar α γ] : has_scalar α (β × γ) := ⟨λa p, (a • p.1, a • p.2)⟩
217217

218-
instance {r : semiring α} [add_comm_monoid β] [add_comm_monoid γ]
219-
[semimodule α β] [semimodule α γ] : semimodule α (β × γ) :=
218+
instance {r : ring α} [module α β] [module α γ] : module α (β × γ) :=
220219
{ smul_add := assume a p₁ p₂, mk.inj_iff.mpr ⟨smul_add, smul_add⟩,
221220
add_smul := assume a p₁ p₂, mk.inj_iff.mpr ⟨add_smul, add_smul⟩,
222221
mul_smul := assume a₁ a₂ p, mk.inj_iff.mpr ⟨mul_smul, mul_smul⟩,
223222
one_smul := assume ⟨b, c⟩, mk.inj_iff.mpr ⟨one_smul, one_smul⟩,
224-
zero_smul := assume ⟨b, c⟩, mk.inj_iff.mpr ⟨zero_smul, zero_smul⟩,
225-
smul_zero := assume a, mk.inj_iff.mpr ⟨smul_zero, smul_zero⟩,
226223
.. prod.has_scalar }
227224

228-
instance {r : ring α} [add_comm_group β] [add_comm_group γ]
229-
[module α β] [module α γ] : module α (β × γ) := {}
230-
231-
instance {r : discrete_field α} [add_comm_group β] [add_comm_group γ]
232-
[vector_space α β] [vector_space α γ] : vector_space α (β × γ) := {}
225+
instance {r : field α} [vector_space α β] [vector_space α γ] : vector_space α (β × γ) := {}
233226

234227
end prod

linear_algebra/prod_module.lean

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@ Author: Johannes Hölzl
66
Semigroup, monoid, group and module structures on product spaces.
77
-/
88

9-
import data.prod linear_algebra.basic
9+
import data.prod linear_algebra.basic algebra.pi_instances
1010
open set function
1111

12+
namespace prod
13+
variables {α : Type*} {β : Type*} {γ : Type*} {δ : Type*}
14+
1215
section module
1316
variables [ring α] [module α β] [module α γ] [module α δ]
1417
include α
@@ -73,7 +76,4 @@ lemma is_basis_inl_union_inr {s : set β} {t : set γ}
7376

7477
end module
7578

76-
instance {f : field α} [vector_space α β] [vector_space α γ] : vector_space α (β × γ) :=
77-
{..prod.module}
78-
7979
end prod

0 commit comments

Comments
 (0)