anchor.diff:                            lists:member(HdNd, UPI2),
                             PsUPI1 <- perms(UPI1),
                             PsUPI2 <- perms(UPI2)],
  -             %% HeadNode = hd(Nodes),
                OKs = [begin
                           {UPI1,UPI2}
                       end || {true, UPI1, UPI2} <- Rs],
  -                             %% not sets:is_disjoint(sets:from_list(UPI1),
  -                             %%                      sets:from_list(UPI2))
  -                             %% orelse UPI1 == [] orelse UPI2 == []],
                io:format(user, "OKs = ~p\n", [lists:usort(OKs)]),
  -             %% OKs = [{UPI1,UPI2} || {true, UPI1, UPI2} <- Rs,
  -             %%                 not sets:is_disjoint(sets:from_list(UPI1),
  -             %%                                      sets:from_list(UPI2))],
                Tab = ets:new(count, [public, set, {keypos, 1}]),
                [ets:insert(Tab, {Transition, 0}) || Transition <- OKs],
                true = eqc:quickcheck(
  -                  eqc:numtests(500, ?QC_OUT(prop_calc_projection(Nodes, Tab)))),
  +                  eqc:numtests(3500,
  +                               ?QC_OUT(prop_calc_projection(Nodes, Tab)))),
                NotCounted = [Transition || {Transition, 0} <- ets:tab2list(Tab)],
  -             Counted = [X || {_, N}=X <- ets:tab2list(Tab),
  +             _Counted = [X || {_, N}=X <- ets:tab2list(Tab),
                                N > 0],
                timer:sleep(100),
  -             io:format(user, "OKs length = ~p\n", [length(OKs)]),
  -             io:format(user, "Transitions hit = ~p\n", [length(OKs) - length(NotCounted)]),
  -             io:format(user, "Transitions = ~p\n", [lists:sort(Counted)]),
  -             io:format(user, "NotCounted length = ~p\n", [length(NotCounted)]),
  -             io:format(user, "NotCounted = ~p\n", [NotCounted]),
  +             io:format(user, "\tNotCounted = ~p\n", [NotCounted]),
  +             io:format(user, "\tOKs length = ~p\n", [length(OKs)]),
  +             io:format(user, "\tTransitions hit = ~p\n", [length(OKs) - length(NotCounted)]),
  +             %% io:format(user, "\tTransitions = ~p\n", [lists:sort(_Counted)]),
  +             io:format(user, "\tNotCounted length = ~p\n", [length(NotCounted)]),
                ok
        end}.
   
  
positive.code:                                                  [], PsUPI1, Nodes -- PsUPI1, []),
                         P2 = ?MGR:make_projection(3, 2, <<>>, HdNd, Nodes,
                                                   [], PsUPI2, Nodes -- PsUPI2, []),
                         Res = case (catch projection_transition_is_sane(P1, P2)) of
                                   true -> true;
                                   _    -> false
                               end,
                         {Res, UPI1, UPI2}
                     end || HdNd <- Nodes,
                            {UPI1,UPI2} <- Combos,
                            %% We assume that the author appears in any 
                            UPI1 /= [],
                            UPI2 /= [],
                            %% HdNd is the author for all of these
  
negative.code:     true = lists:member(AuthorServer2, UPI_list2 ++ Repairing_list2),
  
      %% Additions to the UPI chain may only be at the tail
      UPI_common_prefix = find_common_prefix(UPI_list1, UPI_list2),
      if UPI_common_prefix == [] ->
              if UPI_list1 == [] orelse UPI_list2 == [] ->
                      %% If the common prefix is empty, then one of the
                      %% inputs must be empty.
                      true;
                 true ->
                      %% Otherwise, we have a case of UPI changing from
                      %% one of these two situations:
                      %%
                      %% UPI_list1 -> UPI_list2
                      %% [d,c,b,a] -> [c,a]
  