Zulip Chat Archive

Stream: new members

Topic: proving conjunction


Michael Beeson (Feb 24 2021 at 15:08):

Say my goal is A \and B. So I split, and give a long proof of A, and in the course of proving A I prove B. Now I finish the
first branch of my split and I would like to say, OK I'm done now because I already proved B. But that environment is gone.
What's the right way to do this?

Eric Wieser (Feb 24 2021 at 15:10):

start off with have : B := ...?

Michael Beeson (Feb 24 2021 at 15:12):

If I start with have:B :=
then once I've proved B, that environment will close, and I'll have to repeat the proof of B in order to continue with the proof of A.

Michael Beeson (Feb 24 2021 at 15:12):

T

Eric Wieser (Feb 24 2021 at 15:13):

Can you give a #mwe?

Eric Wieser (Feb 24 2021 at 15:13):

As long as you do the have before the split, then you can use it in both sides

Michael Beeson (Feb 24 2021 at 15:14):

I can't just move the split down to where B is deduced because there are a lot of rewrites of the goal above that point.

Eric Wieser (Feb 24 2021 at 15:14):

Rewrites will work on an and

Eric Wieser (Feb 24 2021 at 15:15):

Although apply will not do what you want

Michael Beeson (Feb 24 2021 at 15:16):

The rewrites will mess up the form of B. That might be OK, or work-aroundable, in a specific instance, but I thought maybe there is a standard, normal way to do this. If it requires a MWE to understand the question then it's clearly not the case that there's a standard way to do it that everybody but me already knows.

Michael Beeson (Feb 24 2021 at 15:17):

e.g. some command that says "export this result out of the split".

Eric Wieser (Feb 24 2021 at 15:20):

Any result that you were able to prove inside one branch of a split could have been proved before you entered the split at all

Eric Wieser (Feb 24 2021 at 15:21):

I'm asking for a #mwe because this feels like an #xy problem.

Ruben Van de Velde (Feb 24 2021 at 15:47):

You have goal A \and B, and you're doing split, have : B := ..., { prove A from B }, right? Move the have : B := ... bit before the split

Mario Carneiro (Feb 25 2021 at 01:56):

Michael Beeson said:

The rewrites will mess up the form of B. That might be OK, or work-aroundable, in a specific instance, but I thought maybe there is a standard, normal way to do this. If it requires a MWE to understand the question then it's clearly not the case that there's a standard way to do it that everybody but me already knows.

The point of the #mwe is to show a version of the problem you are talking about with the necessary features. It can be all foos and bars, it doesn't have to be your real example, but it's a lot easier to understand the exact situation and demonstrate a fix on a concrete problem rather than a prose description of one


Last updated: Dec 20 2023 at 11:08 UTC