Cut-free Positive Classical Logic: Excluded Middle for 2-quantifiers formulas.
∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.¬P(x,y,z))

P is any decidable predicate, and ∃y.∀z.P(x,y,z) is a generic degree 2 arithmetical formula. The game is associated to the formula ∀x.(∃y.∀z.P(x,y,z) ∨ ∀y.∃z .¬P(x,y,z)). This is an example of a game in which Eloise needs reversible backtracking to win using some effective strategy.

There is no effective winning strategy for Eloise in Tarski games. A winning strategy in Tarski games requires a map taking any value a for x, and returning the truth value of ∃y.∀z.P(a,y,z). If ∃y.∀z. P(a,y,z) is true, then Eloise must move t.∃y.∀z.P(a,y,z) to win.  If ∃y.∀z.P(a,y,z) is false, then Eloise must move t.∀y.∃z.¬P(a,y,z)) to win. But there is no map deciding whether a generic degree 2 arithmetical formula is true or false.

There is no effective winning strategy for Eloise in games with irreversible backtracking. In a game with irreversible backtracking, Eloise can try to ``learn by trial-and-error'' whether ∃y.∀z.P(a,y,z) is true or false. But something goes wrong.
  Eloise first assumes that ∃y.∀z.P(a,y,z) is false, and she moves t.∀y.∃z.¬P(a,y,z)), and defends it. Abelard attacks ∀y.∃z.¬P(a,y,z), by selecting some y=b, and moving t.∃z.¬P(a,b,z) is false. Now Eloise should find some z=c, such that ¬P(a,b,c) is true, that is, such that P(a,b,c) is false. But there could be no such c, or, even if there is some, Eloise could be unable to find it. The first part of the play is a dead end for Eloise.
  Eloise now could backtrack from t.∃z.¬P(a,b,z) to the initial position t.∀x.(∃y.∀z.P(x,y,z) ∨ ∀y.∃z .¬P(x,y,z)). This time, she moves t.∃y.∀z.P(a,y,z), then t.∀z.P(a,b,z), claiming that P(a,b,z) is true for all z. Abelard could choose z=c, and moves t.P(a,b,c). If P(a,b,c) is false, then Abelard temporarily wins.
   This is the crucial moment. Eloise would like to come back from the retracted position t.∃z.¬P(a,b,z), moving t.¬P(a,b,c) this time. This move is winning, because P(a,b,c) is, indeed, false. But coming back to t.∃z.¬P(a,b,z) requires to recover a retracted position. This can be done in a game with reversible backtracking. This cannot be done in a game with irreversible backtracking.

Is there any way Eloise could win using an effective strategy, and only irreversible backtracking? No, there is not. Let us reconsider the crucial moment, when Abelard moves t.P(a,b,c), and temporarily wins. Eloise can backtrack to the initial position t.∀x.(∃y.∀z.P(x,y,z) ∨ ∀y.∃z .¬P(x,y,z)), which has not been retracted. Then Eloise moves t.∀y.∃z.¬P(a,y,z)) again, hoping Abelard will choose y=b, and move t.∃z.¬P(a,b,z)  again. In this case, Eloise moves t.¬P(a,b,c) and wins. But this is not always the case. This time, Abelard can choose y=b', and move t.∃z.¬P(a,b',z). Again, Eloise should find some z=c', such that ¬P(a,b',c') is true, that is, such that P(a,b,c') is false. But there could be no such c', or, even if there is some, Eloise could be unable to find it. Of course, Eloise can backtrack again, and again, but the same situation could arise infinitely many times. In this case Eloise loses, because she did an infinite backtracking.

As we pointed out, there is, instead, an effective winning strategy for Eloise using reversible backtracking. Below we sketch it. Remark that, in the turn number 4, Eloise backtracks and retracts the node number 4, that is, the node t.∃z.¬P(a,b,z)). In the turn number 8, Eloise backtracks to the node number 4, recovering it. The move number 8 is the only move of the play requiring reversible backtracking. For Eloise, recovering the node number 8 is crucial in order to win. The program BCK prints a message saying:

    This backtracking recovers a node dropped out by a previous backtracking (proper classical move).

Thin and thick edges in Eloise's view-tree (a reminder). Thick edges are the edges leading to a non-retracted node. Thick edges form the current Tarski play, that is, the branch of the view-tree leading to the current position of the play (the golden ball).

  Now we choose the parameters of the game.

In[506]:=

Clear[P] ;

In[507]:=

F7 = Un["x", Disj[Ex["y", Un["z", "P(x,y,z)"]], Un["y", Ex["z", Neg["P(x,y,z)"]]]]]

Out[507]=

Un[x, Disj[Ex[y, Un[z, P(x,y,z)]], Un[y, Ex[z, Neg[P(x,y,z)]]]]]

In[508]:=

Lin[F7]

Out[508]=

∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z))

In[509]:=

savedplay =  ( "move 1"     "a"        ) ;         ... terialImplication, CutFree", "View-Tree, FontSize=18, TreeWidth=800", savedplay] ;

[Graphics:../HTMLFiles/index_39.gif]

[Graphics:../HTMLFiles/index_40.gif]

[Graphics:../HTMLFiles/index_41.gif]

\n\n

[Graphics:../HTMLFiles/index_43.gif]

[Graphics:../HTMLFiles/index_44.gif]

[Graphics:../HTMLFiles/index_45.gif]

[Graphics:../HTMLFiles/index_46.gif]

[Graphics:../HTMLFiles/index_47.gif]

Goal of: Eloise

{}

⊢

{} , ∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)),  {}

Goal of: Abelard

{} , ∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)),  {}

⊢

{}

____________________________________________________________________

Abelard must attack some instance x of ∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z))

Abelard moves: x=a

\n\n

[Graphics:../HTMLFiles/index_58.gif]

[Graphics:../HTMLFiles/index_59.gif]

[Graphics:../HTMLFiles/index_60.gif]

[Graphics:../HTMLFiles/index_61.gif]

[Graphics:../HTMLFiles/index_62.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z))} , (∃y.∀z.P(a,y,z)∨∀y.∃z.星(a,y,z)),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z))} , (∃y.∀z.P(a,y,z)∨∀y.∃z.星(a,y,z)),  {}

⊢

{}

____________________________________________________________________

Eloise must defend the left or right subformula of (∃y.∀z.P(a,y,z)∨∀y.∃z.星(a,y,z))

Eloise moves: Right

\n\n

[Graphics:../HTMLFiles/index_73.gif]

[Graphics:../HTMLFiles/index_74.gif]

[Graphics:../HTMLFiles/index_75.gif]

[Graphics:../HTMLFiles/index_76.gif]

[Graphics:../HTMLFiles/index_77.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... 4;∀y.∃z.星(a,y,z))} , ∀y.∃z.星(a,y,z),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... 4;∀y.∃z.星(a,y,z))} , ∀y.∃z.星(a,y,z),  {}

⊢

{}

____________________________________________________________________

Abelard must attack some instance y of ∀y.∃z.星(a,y,z)

Abelard moves: y=b

\n\n

[Graphics:../HTMLFiles/index_88.gif]

[Graphics:../HTMLFiles/index_89.gif]

[Graphics:../HTMLFiles/index_90.gif]

[Graphics:../HTMLFiles/index_91.gif]

[Graphics:../HTMLFiles/index_92.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... 星(a,y,z)), ∀y.∃z.星(a,y,z)} , ∃z.星(a,b,z),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... 星(a,y,z)), ∀y.∃z.星(a,y,z)} , ∃z.星(a,b,z),  {}

⊢

{}

____________________________________________________________________

Eloise must defend of some instance z of ∃z.星(a,b,z)

Eloise backtracks to the node number 2 of the play.

This backtracking drops out the current goal and possibly more nodes (proper LCM move).

\n\n

[Graphics:../HTMLFiles/index_104.gif]

[Graphics:../HTMLFiles/index_105.gif]

[Graphics:../HTMLFiles/index_106.gif]

[Graphics:../HTMLFiles/index_107.gif]

[Graphics:../HTMLFiles/index_108.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z))} , (& ... 4;∀y.∃z.星(a,y,z)),  {∀y.∃z.星(a,y,z), ∃z.星(a,b,z)}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z))} , (∃y.∀z.P(a,y,z)∨∀y.∃z.星(a,y,z)),  {}

⊢

{}

____________________________________________________________________

Eloise must defend the left or right subformula of (∃y.∀z.P(a,y,z)∨∀y.∃z.星(a,y,z))

Eloise moves: Left

\n\n

[Graphics:../HTMLFiles/index_119.gif]

[Graphics:../HTMLFiles/index_120.gif]

[Graphics:../HTMLFiles/index_121.gif]

[Graphics:../HTMLFiles/index_122.gif]

[Graphics:../HTMLFiles/index_123.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... z.星(a,y,z), ∃z.星(a,b,z)} , ∃y.∀z.P(a,y,z),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... 44;∀y.∃z.星(a,y,z))} , ∃y.∀z.P(a,y,z),  {}

⊢

{}

____________________________________________________________________

Eloise must defend of some instance y of ∃y.∀z.P(a,y,z)

Eloise moves: y=b

\n\n

[Graphics:../HTMLFiles/index_134.gif]

[Graphics:../HTMLFiles/index_135.gif]

[Graphics:../HTMLFiles/index_136.gif]

[Graphics:../HTMLFiles/index_137.gif]

[Graphics:../HTMLFiles/index_138.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... ;z.星(a,b,z), ∃y.∀z.P(a,y,z)} , ∀z.P(a,b,z),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... z.星(a,y,z)), ∃y.∀z.P(a,y,z)} , ∀z.P(a,b,z),  {}

⊢

{}

____________________________________________________________________

Abelard must attack some instance z of ∀z.P(a,b,z)

Abelard moves: z=c

\n\n

[Graphics:../HTMLFiles/index_149.gif]

[Graphics:../HTMLFiles/index_150.gif]

[Graphics:../HTMLFiles/index_151.gif]

[Graphics:../HTMLFiles/index_152.gif]

[Graphics:../HTMLFiles/index_153.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... z), ∃y.∀z.P(a,y,z), ∀z.P(a,b,z)} , P(a,b,c),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... )), ∃y.∀z.P(a,y,z), ∀z.P(a,b,z)} , P(a,b,c),  {}

⊢

{}

____________________________________________________________________

P(a,b,c) is false.

Eloise moves: Atom

\n\n

[Graphics:../HTMLFiles/index_164.gif]

[Graphics:../HTMLFiles/index_165.gif]

[Graphics:../HTMLFiles/index_166.gif]

[Graphics:../HTMLFiles/index_167.gif]

[Graphics:../HTMLFiles/index_168.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... ;y.∀z.P(a,y,z), ∀z.P(a,b,z), P(a,b,c)} , ,  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... ;y.∀z.P(a,y,z), ∀z.P(a,b,z), P(a,b,c)} , ,  {}

⊢

{}

____________________________________________________________________

Eloise has no subformulas to choose.

Eloise backtracks to the node number 4 of the play.

This backtracking recovers a node dropped out by a previous backtracking (proper classical move).

\n\n

[Graphics:../HTMLFiles/index_180.gif]

[Graphics:../HTMLFiles/index_181.gif]

[Graphics:../HTMLFiles/index_182.gif]

[Graphics:../HTMLFiles/index_183.gif]

[Graphics:../HTMLFiles/index_184.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... ;z.星(a,b,z),  {∃y.∀z.P(a,y,z), ∀z.P(a,b,z), P(a,b,c), }

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... 星(a,y,z)), ∀y.∃z.星(a,y,z)} , ∃z.星(a,b,z),  {}

⊢

{}

____________________________________________________________________

Eloise must defend of some instance z of ∃z.星(a,b,z)

Eloise moves: z=c

\n\n

[Graphics:../HTMLFiles/index_195.gif]

[Graphics:../HTMLFiles/index_196.gif]

[Graphics:../HTMLFiles/index_197.gif]

[Graphics:../HTMLFiles/index_198.gif]

[Graphics:../HTMLFiles/index_199.gif]

Goal of: Eloise

{}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... .P(a,y,z), ∀z.P(a,b,z), P(a,b,c), } , 星(a,b,c),  {}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ...  ∀y.∃z.星(a,y,z), ∃z.星(a,b,z)} , 星(a,b,c),  {}

⊢

{}

____________________________________________________________________

Abelard must defend the only subformula of 星(a,b,c)

Abelard moves: Negation

\n\n

[Graphics:../HTMLFiles/index_210.gif]

[Graphics:../HTMLFiles/index_211.gif]

[Graphics:../HTMLFiles/index_212.gif]

[Graphics:../HTMLFiles/index_213.gif]

[Graphics:../HTMLFiles/index_214.gif]

Goal of: Eloise

{} , P(a,b,c),  {}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ...  ∃z.星(a,b,z), ∃y.∀z.P(a,y,z), ∀z.P(a,b,z), P(a,b,c), , 星(a,b,c)}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... z)∨∀y.∃z.星(a,y,z)), ∀y.∃z.星(a,y,z), ∃z.星(a,b,z), 星(a,b,c)}

⊢

{} , P(a,b,c),  {}

____________________________________________________________________

P(a,b,c) is false.

Abelard moves: Atom

\n\n

[Graphics:../HTMLFiles/index_225.gif]

[Graphics:../HTMLFiles/index_226.gif]

[Graphics:../HTMLFiles/index_227.gif]

[Graphics:../HTMLFiles/index_228.gif]

[Graphics:../HTMLFiles/index_229.gif]

Goal of: Eloise

{P(a,b,c)} , ,  {}

⊢

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ...  ∃z.星(a,b,z), ∃y.∀z.P(a,y,z), ∀z.P(a,b,z), P(a,b,c), , 星(a,b,c)}

Goal of: Abelard

{∀x.(∃y.∀z.P(x,y,z)∨∀y.∃z.星(x,y,z)), (∃y.∀z.P ... z)∨∀y.∃z.星(a,y,z)), ∀y.∃z.星(a,y,z), ∃z.星(a,b,z), 星(a,b,c)}

⊢

{P(a,b,c)} , ,  {}

____________________________________________________________________

Abelard has no subformulas to choose.

Abelard gives up.

[Graphics:../HTMLFiles/index_239.gif]

This is the list of all moves of the play:

( move 1     a        )            move 2     R            move 3     b        ...  move 8     c            move 9     Negation            move 10    Atom            move 11    drop


Created by Mathematica  (October 20, 2006)