Zulip Chat Archive
Stream: general
Topic: Prop class
Reid Barton (Oct 12 2019 at 18:04):
If we have class C a : Prop := (...)
, and then instance foo : C bar := (...)
, I guess Lean treats foo
as a def
not a lemma
, right?
Is there ever an argument for writing @[instance] lemma foo : C bar := (...)
?
Miguel Raz Guzmán Macedo (Oct 12 2019 at 19:31):
How much breakage of user code that doesn't use internals is expected in the lean 3 -> lean 4 transition?
Johan Commelin (Oct 12 2019 at 19:35):
My impressions was about 86.4%
Johan Commelin (Oct 12 2019 at 19:35):
No seriously... I think we shouldn't expect any compatibility
Johan Commelin (Oct 12 2019 at 19:36):
But some people on the chat, who are a lot more skilled than I am, might be able to convert huge bunches of code using fancy metaprogramming trick plus Perl regexes.
Miguel Raz Guzmán Macedo (Oct 12 2019 at 19:38):
Got it...
Floris van Doorn (Oct 12 2019 at 19:41):
If we have
class C a : Prop := (...)
, and theninstance foo : C bar := (...)
, I guess Lean treatsfoo
as adef
not alemma
, right?
Is there ever an argument for writing@[instance] lemma foo : C bar := (...)
?
This is correct. And all instances
also have a greater transparency than the default (semireducible
).
Maybe there is sometimes an argument for @[instance] lemma
, but I don't think it matters very much when you use def
instead of lemma
(the other way around is bad). Note: for #sanity_check
I explicitly omit everything tagged with @[instance]
from the lemma
/def
check.
Last updated: Dec 20 2023 at 11:08 UTC