Zulip Chat Archive

Stream: Is there code for X?

Topic: imp_iff_self_imp


Kim Morrison (Aug 25 2024 at 03:30):

I can't seem to find

theorem imp_iff_self_imp : ((P  Q)  (P  R))  (P  (Q  R)) :=
  { mp := fun h p => { mp := fun q => h.mp (fun _ => q) p, mpr := fun r => h.mpr (fun _ => r) p },
    mpr := fun h => { mp := fun h' p => (h p).mp (h' p), mpr := fun h' p => (h p).mpr (h' p) } }

Is it hiding somewhere? What should it be called?

Yaël Dillies (Aug 25 2024 at 06:35):

I was expecting it to be imp_congr_right_iff but that doesn't exist

Daniel Weber (Aug 25 2024 at 07:23):

Why do aesop and tauto fail to prove it?

Kevin Buzzard (Aug 25 2024 at 07:41):

It's tauto's job to prove it so if tauto doesn't prove it, that's surely a bug?

Daniel Weber (Aug 25 2024 at 09:59):

Ah, it fails because autoimplicit makes P a Sort u

Kevin Buzzard (Aug 25 2024 at 10:53):

Autoimplicit is such an interesting thing. 9 times out of 10 it's cool and useful and then one time out of 10 it can be totally catastrophic, wasting people's time and energy

Kim Morrison (Aug 25 2024 at 11:03):

(In this case, I think autoimplicit is doing the right thing. It would be silly to prove this result only for Prop. :-)

Kevin Buzzard (Aug 25 2024 at 11:05):

I was misled by the notation :-) but you do have a good point here!

Daniel Weber (Aug 25 2024 at 11:17):

This is still true if one of Q or R is dependent, right? Maybe that exists?


Last updated: May 02 2025 at 03:31 UTC