§ FOL + Fixpoint + Counting does not capture P



§ The Language



§ Game 1: k tuple pebble game


§ Game 2: cops and robbers game


Game proceeds as follows:
In code:
def do_cops_win (robber_cur_pos : Vec2, 
  cops_cur_pos : List[Vec2], 
  graph : Graph,
  robber_stragy,
   cop_strategy):
   while True:
     # cops make strategy.
     cops_new_pos = cop_strategy (cops_cur_pos) # cops don't know where robber is?
     # insecure channel, robber learns of this and plots strategy
     robber_new_pos = robber_strategy(graph,
       cops_cur_pos, # robber knows where the cops currently are
       cops_new_pos, # robber also wknows where the cops plan to be (insecure channel)
       robber_cur_pos)
     # robber tries to go to new position. If an avoiding path does not exist,
     # robber is trapped.
     if not avoiding_path_exists(robber_cur_pos, cops_cur_pos, robber_new_pos):
        return "cops win"
     # robber successfully makes it.
     robber_cur_pos = robber_new_pos
     # cops slowly make their way to their new position.
     cops_cur_pos = cops_new_pos

§ Warmup: n+1 cops needed for nxngrid.


Proof by picture. Consider a 3x3 grid, cells denoted by o:
  XYZ
1|ooo
2|ooo
3|ooo

Cops will occupy the first column and the first cell of the first row:
  XYZ
1|cco
2|coo
3|coo

This forces the robber to live in the rest of the grid, and crucially, cuts of access to the top left position 1X. So in the next round, the cops will take the cop at 1X and move her to 2Y. The inaccessible cell is marked with -, where the cops have a guarantee that the robber cannot be:
  XYZ
1|-co
2|cco
3|coo

Now note that the cell 2Yis similarly inaccessible, and thus also becomes -in the next turn.
  XYZ
1|-co
2|-co
3|cco

Now we see that 3Xis unreachable, so we can take the cop at 3X and move her to 3Z to make 3Y inaccessible:
  XYZ
1|-co
2|-co
3|-cc

Repeat:
  XYZ
1|-co
2|-cc
3|--c

Victory for the cops:
  XYZ
1|-cc
2|--c
3|--c


§ Toroidal graphs



§ Robber can win on a toroidal graph with kk cops.


  WXYZ
1|oooo
2|CCCC
3|oooo
4|oooo



  WXYZ
1|Cooo
2|oCoo
3|ooCo
4|oooC


  WXYZ
1|oooo
2|oCCo
3|oCCo
4|oooo


§ Linear system of equations over F2



§ Encoding in unordered structure


§ Constructing the system of equations


x[e[v,1],i]+x[e[v,2],j]+x[e[v,3],k]+x[e[v,4],l]=?(i+j+k+l)=i+j+k+l=?i+j+k+l \begin{aligned} &x[e[v, 1], i] + x[e[v, 2], j] + x[e[v, 3], k] + x[e[v, 4], l] =_? (i + j + k + l) \\ &= i + j + k + l =_? i + j + k + l \end{aligned}


§ Putting the pieces together