https://123dok.org/document/zx50dx5n-prove-that-n-x-zk-lt-max-an.html