The graph non-isomorphism language \overline{ISO}: the complement of
ISO = { ⟨G, H⟩ | G and H are isomorphic graphs } under a fixed encoding of
graph pairs. Membership ⟨G, H⟩ ∈ ISO_bar says that the two graphs are not
isomorphic.
Instances For
A GraphPermuter packages the random-permutation oracle used by the
honest prover in the IP protocol for graph non-isomorphism.
challenge w b seedreturns the verifier's challenge graph obtained by randomly permuting either graph (b = false) or the other (b = true).iso_challenge_eqsays that if the input pairwis isomorphic then the two challenge distributions coincide: the prover cannot distinguish.identify msgreads a challenge back and reports which of the two graphs it came from.identify_correctsays that if the input pairwis not isomorphic thenidentifyrecovers the bitbthat the verifier used.
Instances For
A toy default implementation of GraphPermuter used to show that the
structure is inhabited.
It does not implement an actual graph permutation; instead it produces
length-distinguishable outputs whenever the input pair is not isomorphic
(satisfying identify_correct) and a single constant output whenever the
input is isomorphic (satisfying iso_challenge_eq). It suffices for proving
ISO_bar ∈ IP.
Instances For
For fixed guesses g1, g2 : Bool, at most one of the four coin
assignments coins : Fin 2 → Bool matches both guesses simultaneously.
This bounds the cheating probability of a dishonest prover in the
graph non-isomorphism IP protocol by 1 / 4 ≤ 1 / 3.
The verifier in the graph non-isomorphism IP protocol.
Using two random coins, in two rounds it sends perm.challenge w bᵢ w for
b₀, b₁ ∈ {true, false} and finally accepts iff the prover's responses
correctly identify the bits, i.e. both coins ⟨0⟩ == guess1 and
coins ⟨1⟩ == guess2 hold.
Instances For
The honest prover in the graph non-isomorphism IP protocol.
After each verifier challenge c it calls perm.identify input c and replies
with a nonempty marker ([default]) if the bit is identified as true, and
the empty list otherwise. By identify_correct, when w ∉ ISO enc (i.e.
w ∈ ISO_bar enc) the honest prover always recovers the verifier's bits and
the protocol accepts with probability 1.
Instances For
Graph non-isomorphism is in IP (relative to a GraphPermuter oracle).
\overline{ISO} ∈ IP: there is an interactive proof system in which
- if
w ∈ ISO_bar enc(graphs not isomorphic) the honest prover convinces the verifier with probability≥ 2/3(in fact 1 here); - if
w ∉ ISO_bar enc(graphs are isomorphic) any proverP'is accepted with probability≤ 1/3(in fact≤ 1/4here), because the prover's two guesses can match the verifier's two random coin flips for at most one of the four coin assignments.
Graph non-isomorphism is in IP: \overline{ISO} ∈ IP.
Top-level corollary specializing iso_bar_in_IP to the defaultGraphPermuter,
giving an unconditional instance of the interactive-proof membership.