Zulip Chat Archive

Stream: general

Topic: decidable_classical linter complaint


Paul van Wamelen (Aug 29 2020 at 22:58):

I have a theorem that I would like to add to the ring_theory/unique_factorization_domain.lean file, but the decidable_classical linter complains with

The following `decidable` hypotheses should be replaced with
                      `classical` in the proof. argument 4: [dec : decidable_eq (associates α)]

There are many other theorems that have the exact same hypothesis, but without a complaint. Why is that? Also, how do I fix this case?

Mario Carneiro (Aug 29 2020 at 23:05):

As long as the hypothesis is referenced directly in the statement (usually invisibly because it is a type class argument), the linter will not complain

Mario Carneiro (Aug 29 2020 at 23:05):

You can fix it by removing the decidable_eq instance from the theorem, and then starting the proof with classical,

Mario Carneiro (Aug 29 2020 at 23:10):

I see in ring_theory/unique_factorization_domain.lean that the dec hypothesis is added on L305, included in the definition factors (meaning that all theorems directly about factors will need this assumption), and later explicitly omitted in theorems eq_of_prod_eq_prod and prod_le, by putting omit dec before the theorem and include dec after. You can do that for your theorem as well

Paul van Wamelen (Aug 29 2020 at 23:27):

Thanks Mario, I'll try that!


Last updated: Dec 20 2023 at 11:08 UTC