ARC is currently pretty excited about something called “no coincidence principle”.
My complexity theory expert friend N says that “NCP basically sounds like you’re trying to show
I’m fairly sympathetic to this view.
My view is that NCP should be true for many “squishy systems” (roughly “compressible”) for “dumb reasons” but shouldn’t be true in general.
Let’s gather some evidence.
EDIT — these “don’t count”
NCP Conjecture 1
Define the weirdness property
Let
Then, there should be an efficient weirdness detector
- If
, then there exists such that . - If
, then .
NCP Conjecture 2
Define the weirdness property
Let
Then, there should be an efficient weirdness detector
- If
, then there exists such that . - If
, then .
Related thing that we can easily rule out:
Something impossible
Efficient
, such that . , such that .
Some other things that seem probably true:
probably 1
If
BUT it’s like “NP-hard vibes” to find a SAT assignment.
suspicion
If
BUT it’s like “coNP-hard vibes” to prove this.
in fact,… it is known that it usually requires exponentially long “refutation” proofs.
of course this doesn’t rule out the existence of some other shorter type of proof but it doesn’t seem good.
ah, according to Jacob — my assumptions here are not really kosher.
what you’re supposed to do is give a “heuristic argument” for why the probability is really low, but then it’s not actually supposed to be that low (or else you can union bound). and then you’re supposed to do it.
like if we’re forall quantifying over things
yeah yeah
hmm.
ok in Jacob’s example the heuristic that he used was something like
Pr deviating by more than
So maybe I need some setup where I use this heuristic to estimate the number of something, but then this heuristic didn’t apply super well?
yeah atm I don’t get why NCP isn’t just true by union bound. sigh.
lets try something else.
Here’s some conjecture:
For a reversible circuit C: {0, 1}^{3n} ⇒ {0, 1}^{3n}, let phi(C) be the property “for all x \in {0, 1}^{2n}, C(0^n ∘ x) does not start with n zeros”. There exists a polynomial-time (maybe even linear-time) verifier V(C, pi) such that: For all C such that phi(C) = 1, there exists pi such that V(C, pi) = 1. For a randomly selected circuit C such that phi(C) = 0, the probability that there exists pi such that V(C, pi) = 1 is <1%.
this is kind of annoying to work with, so I’d love to come up with a cleaner version of it
I guess you can cash this out as having some CNOT gates.
some thoughts:
Planted clique:
magically having a random clique is quite unlikely. but there’s an obvious structure you can point to to prove existence of planted clique.
Suppose I have some function
Thus, if
next candidate (haven’t thought about whether or not it’s trivially bad yet)
Suppose
Hi Jacob, Comment about your triangle NCP writeup:
You say
(linear in number of edges time is…) enough time to read in the definition of the graph as a list of edges, but not enough time to count the triangles directly
I think this is kind of questionable.
More precisely, there is an algorithm
- If
has more than triangles, then . - If
then .
The algorithm is as follows:
for each vertex v:
if degree(v) > 10root(n) log n, then just output 1, because this is pretty weird
else:
there are at most O(n log^2 n) pairs of neighbors of v
count how many of these are triangles, add to a global count
I think something interesting is still going on with your pigeon argument though. Here’s my recommendation for what you could say instead.
There is a (randomized) algorithm
- If
has at least triangles, then there is some proof such that . - If
, then for any , .
proof:
Then, we check to make sure that we don’t actually get fed the same triangle multiple times :P.
I think this does a better job of highlighting how useful the “argument”
EDIT: no actually this is kind of silly / not the case that is hard for NCP.
because it has NP vibes not coNP vibes.
Suppose that
- An honest Prover can write down a proof of
that the Verifier will always accept. - An evil Prover with
cannot write down any proof that has probability more than of tricking the Verifier into accepting.
The Prover writes down the elements
- First, look at number
. - Then, randomly choose one side
or to recurse on. - Then you’ll ask something like
. etc.Claim At the end you’ll just check that these elements are all in and are in the correct order.
Clearly the honest Prover can write down a proof that we’ll be happy about.
**Claim**: the probability that an evil Prover wins is very low.
Proof:
Let
Basically, going deep enough we can get
Had some problem like this:
Question: Can we distinguish between
with one sided error
in non-deterministic time
I’ve kind of decided that this is maybe not such an interesting problem / isn’t going to be useful in refining or refuting NCP, but here it is anyways.