Zulip Chat Archive

Stream: maths

Topic: span_singleton_eq_bot simp?


Kevin Buzzard (Jul 02 2020 at 12:07):

lemma span_singleton_eq_bot : span R ({x} : set M) =   x = 0 :=
span_eq_bot.trans $ by simp

There is one of these in linear_algebra.basic (for modules) and another one in ring_theory.ideals (for ideals). Should they be simp lemmas? simp can't solve span R {0} = ⊥ otherwise. Or should they not be simp lemmas but I should add two simp lemmas span_zero : span R {0} = ⊥ ?

Chris Hughes (Jul 02 2020 at 12:40):

They should be simp lemmas and so should span R {0} = bot.

Mario Carneiro (Jul 02 2020 at 12:41):

I don't think they can both be simp lemmas because one shadows the other

Chris Hughes (Jul 02 2020 at 12:42):

That way simp * at * will still simplify span R {x} to bot when there's a h : span R{x} =bot even if h gets simplified first.

Chris Hughes (Jul 02 2020 at 12:42):

Oh yes. Damn.

Chris Hughes (Jul 02 2020 at 12:43):

Hang on. Is there a loop?

Mario Carneiro (Jul 02 2020 at 12:43):

actually I take it back, you can prove span R {0} = bot using by simp but that doesn't mean that span R {0} = x will simplify with only the rule span R ({x} : set M) = ⊥ ↔ x = 0

Kevin Buzzard (Jul 02 2020 at 13:00):

I had guessed that if I added @[simp] to span_singleton_eq_bot and also added span_zero as a simp lemma then the linter would complain.

Kevin Buzzard (Jul 02 2020 at 13:01):

I just checked and I was wrong.

Kevin Buzzard (Jul 02 2020 at 13:08):

OK so I'll add simp to the two existing span_singleton_eq_bot lemmas and also add two new span_zero simp lemmas.


Last updated: Dec 20 2023 at 11:08 UTC