Zulip Chat Archive

Stream: Carleson

Topic: sorry trouble


Floris van Doorn (Jul 12 2024 at 13:44):

Suppose you have a definition that isn't finished yet, so you sorry it and then axiomatize some sorry'd properties about it.

def 𝓩 (I : Grid X) : Set (Θ X) := sorry

What could possibly go wrong?

Yaël Dillies (Jul 12 2024 at 13:47):

Hmm, do we have to use opaque instead then?

Floris van Doorn (Jul 12 2024 at 13:49):

Or sorry the element of type Grid X → Set (Θ X).

Ruben Van de Velde (Jul 12 2024 at 13:49):

Maybe lemma Zaux (I : Grid X) : \exists .. and then use Zaux.choose?

Yaël Dillies (Jul 12 2024 at 13:53):

Looks strictly more complicated than using opaque

Kevin Buzzard (Jul 12 2024 at 14:15):

Oh if there was a fix for this that would be great! Patrick discovered the problems with sorrying definitions during the perfectoid project and I've been paranoid about doing this ever since. If I could sorry a ton of definitions for FLT without worrying that when they were filled in I'd break a bunch of people's code then I would take Mario's suggestion that he made to me in Bonn ("do this") much more seriously.

Floris van Doorn (Jul 12 2024 at 14:36):

This shouldn't be hard. We could write a tactic revert_all that reverts every hypothesis, and then have a macro sorry' for by revert_all; sorry. In that case, at least this issue will not occur for sorry'.

There are some issues with variables:

  • You might have a theorem that depends on a variable or type-class, but only in the proof. If you sorry the theorem, then this variable will not be included
  • Variables could accidentally be added to declarations, even if you don't what a theorem that depends on that variable.

Last updated: May 02 2025 at 03:31 UTC