Presumibilmente hai motivo di credere che l'algoritmo per la produzione di Guide non stia producendo numeri veramente casuali, ma in realtà sta pedalando con un periodo << 2 ^ 128.
ad esempio il metodo RFC4122 utilizzato per derivare GUID che fissa i valori di alcuni bit.
La prova del ciclismo dipenderà dalla possibile dimensione del periodo.
Per piccoli periodi, la tabella hash di hash (GUID) -> GUID con sostituzione in caso di collisione se i GUID non corrispondono (terminano in caso affermativo) potrebbe essere un approccio. Considera anche di fare la sostituzione solo una frazione casuale del tempo.
In definitiva, se il periodo massimo tra le collisioni è abbastanza grande (e non è noto in anticipo), qualsiasi metodo produrrà solo una probabilità che la collisione sarebbe trovata se esistesse.
Tieni presente che se il metodo di generazione delle guide è basato sull'orologio (vedi RFC), potrebbe non essere possibile determinare se esistono collisioni perché (a) non sarai in grado di attendere abbastanza a lungo affinché l'orologio si avvolga, oppure (b) non è possibile richiedere un numero sufficiente di Guide entro un orologio per forzare una collisione.
In alternativa, potresti essere in grado di mostrare una relazione statistica tra i bit nella Guida o una correlazione di bit tra le Guide. Tale relazione potrebbe rendere altamente probabile che l'algoritmo sia difettoso senza essere necessariamente in grado di trovare una collisione effettiva.
Ovviamente, se vuoi solo dimostrare che le Guide possono scontrarsi, allora una prova matematica, non un programma, è la risposta.