Advanced Features of Proof Designer

The instructions below will lead you through a proof that 𝒫(A)βŠ†π’«(B)β†’AβŠ†B. This proof will illustrate some of the more advanced features of Proof Designer.

  1. Choose New Theorem from the File menu. In the dialog box, type 𝒫(A)βŠ†π’«(B)β†’AβŠ†B. and click the Set Conclusion button. There are no hypotheses for this theorem. Click OK.

  2. Select the goal 𝒫(A)βŠ†π’«(B)β†’AβŠ†B and choose Direct from the Goal menu. Proof Designer will suppose that 𝒫(A)βŠ†π’«(B) and it will say that you must now prove that AβŠ†B.

  3. Select the given 𝒫(A)βŠ†π’«(B) and choose Reexpress from the Strategy menu. Click on the Apply Definition button, but don't click on OK yet. Proof Designer will rewrite the statement as βˆ€a(aβˆˆπ’«(A)β†’aβˆˆπ’«(B)). Now use the mouse to select the statement aβˆˆπ’«(A), which appears before the β†’. (You do this just the way you would do it in a word processing program, by dragging the mouse across what you want to select.) Click Apply Definition again and Proof Designer will change aβˆˆπ’«(A) to aβŠ†A, writing out the definition of power set. Use the same procedure to write out aβˆˆπ’«(B) as aβŠ†B, and then click OK.

  4. Select the given variant βˆ€a(aβŠ†Aβ†’aβŠ†B) and choose Universal Instantiation from the Infer menu. When the dialog box appears, say that you want to substitute A for a. Proof Designer will infer AβŠ†Aβ†’AβŠ†B.

  5. Select the given AβŠ†Aβ†’AβŠ†B and the goal AβŠ†B and choose Modus Ponens from the Infer menu. Proof Designer will use the modus ponens inference rule to work backwards from the goal. Proof Designer will say that you can infer the goal AβŠ†B by modus ponens from AβŠ†Aβ†’AβŠ†B and AβŠ†A, but you must still prove AβŠ†A.

  6. Although you could just fill in the proof of AβŠ†A where Proof Designer says it is needed, it might be better to indicate somehow that this is a general fact about all sets, and not a fact about this specific set A. To do this, click on the sentence β€œSuppose 𝒫(A)βŠ†π’«(B)” at the beginning of the proof. This selects the entire subproof that is introduced by this sentence, along with the conclusion it justifies. (You can also do this by clicking in the margin to the left of this subproof, or on the conclusion it justifies.) Choose Insert from the Edit menu. This will allow you to insert some new steps before the subproof you have just selected. A dialog box will appear, asking what goal you want to achieve with these additional steps. Click on the choice saying that you want to prove something, and type in βˆ€x(xβŠ†x) as the statement you want to prove. Click OK.

    Proof Designer will insert a new gap in the proof whose goal is to prove that βˆ€x(xβŠ†x). Note that in the original gap, where you still need to prove that AβŠ†A, the statement βˆ€x(xβŠ†x) is now listed as a given.

  7. It would look better to have the proof of the statement βˆ€x(xβŠ†x) set off from the rest of the proof as a lemma. (A lemma is a small theorem that is used to prove another theorem.) To do this, click on the sentence β€œProof of βˆ€x(xβŠ†x) goes here” at the beginning of the new proof gap. This selects the entire gap. (You can also do this by clicking in the margin to the left of the gap.) Now choose Lemma from the Edit menu.

  8. You now have two gaps to complete. You can do them in either order. To prove the lemma, you can let x be arbitrary, reexpress xβŠ†x as βˆ€a(a∈xβ†’a∈x), let a be arbitrary, and then do a direct proof of a∈xβ†’a∈x. Note that after you give the Direct command, your goal will already be listed as a given, so you can select the given and give the Finish command. To fill in the second gap, you can apply universal instantiation to the given βˆ€x(xβŠ†x) to conclude that AβŠ†A.

  9. Let's try changing the proof. Click on the final conclusion β€œTherefore 𝒫(A)βŠ†π’«(B)β†’AβŠ†B,” which selects this conclusion and the subproof that justifies it. Choose Rejustify from the Edit menu. The subproof and conclusion will disappear, and be replaced by a gap that says β€œProof of 𝒫(A)βŠ†π’«(B)β†’AβŠ†B goes here.” We can now redo the proof a different way. (Leave the lemma thereβ€”we'll need it in this version of the proof too. If you want, you can hide the details of its proof.)

  10. Select the goal 𝒫(A)βŠ†π’«(B)β†’AβŠ†B and choose Contrapositive from the Goal menu. Proof Designer will suppose that A⊈B, and it will say that you must prove that 𝒫(A)βŠˆπ’«(B).

  11. Select the goal 𝒫(A)βŠˆπ’«(B) and choose Reexpress from the Strategy menu. Click on Apply Definition, but don't click OK yet. Proof Designer will reexpress the goal as Β¬βˆ€a(aβˆˆπ’«(A)β†’aβˆˆπ’«(B)). Now click Reexpress Negative and Proof Designer will change this to βˆƒaΒ¬(aβˆˆπ’«(A)β†’aβˆˆπ’«(B)). Note that now only Β¬(aβˆˆπ’«(A)β†’aβˆˆπ’«(B)) is selected, so you can click Reexpress Negative again to change the statement to βˆƒa(aβˆˆπ’«(A)∧aβˆ‰π’«(B)). Click OK.

  12. The goal has now been rewritten as the existential statement βˆƒa(aβˆˆπ’«(A)∧aβˆ‰π’«(B)), so you should probably try to prove it by finding an example of a set which is an element of 𝒫(A) but not 𝒫(B), but it may not be clear at first what set to use. Here's how you can deal with this situation: Select the goal variant βˆƒa(aβˆˆπ’«(A)∧aβˆ‰π’«(B)) and choose Existence from the Goal menu. A dialog box will appear, asking what value you want to substitute for a in the goal. Click on the β€œUse this new variable, whose definition will be inserted later” option. The default choice for the new variable is a, but if you want to use a different name you can just type it in. Click OK. You will now have two gaps in the proof, one labeled β€œDefinition of a goes here,” followed by one labeled β€œProof of aβˆˆπ’«(A)∧aβˆ‰π’«(B) goes here.” As usual, you can work on these gaps in either order. In particular, even before defining a you can start in on the proof that aβˆˆπ’«(A)∧aβˆ‰π’«(B). When you get far enough in the proof that you can tell what a should be, you can go back and fill in the definition of a.

  13. Select the goal aβˆˆπ’«(A)∧aβˆ‰π’«(B) and give the Reexpress command from the Strategy menu. Select the statement aβˆˆπ’«(A) and click Apply Definition to change this to aβŠ†A. Select aβˆ‰π’«(B) and click Apply Definition to change it to Β¬(aβŠ†B). You can click Reexpress Negative if you want to change this to a⊈B. Click OK.

  14. Notice now that the goal is aβŠ†A∧a⊈B, and one of the givens is A⊈B. This suggests that perhaps you should have defined a to be equal to A. Go back to the gap labeled β€œDefinition of a goes here,” select the goal a=?, and choose Define from the Strategy menu. A dialog box will appear, containing the statement β€œLet ___ = ___.” The first blank will already be filled in with the default value a. Fill in the second with A and click OK. The definition of a will be added to the proof, and the gap labeled β€œDefinition of a goes here” will disappear.

  15. Select the goal variant aβŠ†A∧a⊈B and choose Substitute from the Strategy menu. A dialog box will appear. In the dialog box, click on the word β€œSubstitute” and a menu will appear, showing what substitutions you can apply. Since we now know that a=A, you can choose to substitute either A for a or a for A. Choose aβ‡’A from the menu, indicating that you want to replace a with A, and the substitution will be performed. Click OK.

  16. The goal is now AβŠ†A∧A⊈B, and you already have A⊈B in the given column. Select the given A⊈B and the goal AβŠ†A∧A⊈B, and choose Conjunction from the Goal menu. Proof Designer will say that you can infer AβŠ†A∧A⊈B from AβŠ†A and A⊈B, but you still have to prove AβŠ†A.

  17. Apply universal instantiation to βˆ€x(xβŠ†x) to conclude that AβŠ†A. This is your goal, so you can now use the Finish command to complete the proof.

Note that we introduced the variable a into this proof only because, at the time we introduced it, we didn't know it would turn out to be equal to A. Now that the proof is done, we could improve on it by eliminating all mention of a, and only talking about A. Often you will be able to improve on the proof outline written by Proof Designer. You should use Proof Designer to work out an outline of a correct proof, and then try to improve on it when you write up the final proof.