Zulip Chat Archive
Stream: new members
Topic: Only constants and Pi types are supported
Nicolò Cavalleri (Jul 30 2020 at 17:32):
If I change the following instance in mathlib
instance continuous_map_semimodule {α : Type*} [topological_space α]
{R : Type*} [semiring R] [topological_space R]
{M : Type*} [topological_space M] [add_comm_group M] [topological_add_group M]
[semimodule R M] [topological_semimodule R M] :
semimodule R C(α, M) :=
semimodule.of_core $
{ smul := (•),
smul_add := λ c f g, by ext x; exact smul_add c (f x) (g x),
add_smul := λ c₁ c₂ f, by ext x; exact add_smul c₁ c₂ (f x),
mul_smul := λ c₁ c₂ f, by ext x; exact mul_smul c₁ c₂ (f x),
one_smul := λ f, by ext x; exact one_smul R (f x) }
to
instance continuous_map_semimodule {α : Type*} [topological_space α]
{R : Type*} [semiring R] [topological_space R]
{M : Type*} [topological_space M] [add_comm_monoid M] [has_continuous_add M]
[semimodule R M] [topological_semimodule R M] :
semimodule R C(α, M) :=
semimodule.of_core $
{ smul := (•),
smul_add := λ c f g, by ext x; exact smul_add c (f x) (g x),
add_smul := λ c₁ c₂ f, by ext x; exact add_smul c₁ c₂ (f x),
mul_smul := λ c₁ c₂ f, by ext x; exact mul_smul c₁ c₂ (f x),
one_smul := λ f, by ext x; exact one_smul R (f x) }
(which I was planning to do before the PR but I forgot) I get
/-
only constants and Pi types are supported: ?m_1
state:
α : Type ?,
_inst_1 : topological_space α,
R : Type ?,
_inst_2 : semiring R,
_inst_3 : topological_space R,
M : Type ?,
_inst_4 : topological_space M,
_inst_5 : add_comm_monoid M,
_inst_6 : has_continuous_add M,
_inst_7 : semimodule R M,
_inst_8 : topological_semimodule R M,
c : ?m_1,
f g : ?m_2
⊢ c • (f + g) = c • f + c • g
-/
What is going wrong?
Sebastien Gouezel (Jul 30 2020 at 17:39):
semimodule.of_core
requires an add_comm_group M
, but you have an add_comm_monoid
. It means you should not use semimodule.of_core
here, but give a direct proof for all the fields.
Nicolò Cavalleri (Jul 30 2020 at 17:48):
Oh again weird error message
Nicolò Cavalleri (Jul 30 2020 at 17:49):
Moreover when I did PR that I copied the proof of the subtype. Weird that it was not already in greatest generality
Sebastien Gouezel (Jul 30 2020 at 17:50):
Yes, we are improving things slowly by pushing things to the right generality when someone notices that things are not as general as they could be, just like you just did!
Sebastien Gouezel (Jul 30 2020 at 17:51):
And yes, the error messages are often pretty bad!
Last updated: Dec 20 2023 at 11:08 UTC