10 #include <boost/program_options.hpp> 
   18 namespace po = boost::program_options;
 
   23     std::string &processed_assembly_fn,
 
   24     std::string &verification_key_fn,
 
   25     std::string &primary_input_fn,
 
   26     std::string &proof_fn,
 
   27     std::string &verification_result_fn)
 
   30         po::options_description desc(
"Usage");
 
   31         desc.add_options()(
"help", 
"print this help message")(
 
   33             po::value<std::string>(&processed_assembly_fn)->required())(
 
   35             po::value<std::string>(&verification_key_fn)->required())(
 
   37             po::value<std::string>(&primary_input_fn)->required())(
 
   38             "proof", po::value<std::string>(&proof_fn)->required())(
 
   39             "verification_result",
 
   40             po::value<std::string>(&verification_result_fn)->required());
 
   43         po::store(po::parse_command_line(argc, argv, desc), vm);
 
   45         if (vm.count(
"help")) {
 
   46             std::cout << desc << 
"\n";
 
   51     } 
catch (std::exception &e) {
 
   52         std::cerr << 
"Error: " << e.what() << 
"\n";
 
   62 int main(
int argc, 
const char *argv[])
 
   67     std::string processed_assembly_fn = 
"processed.txt";
 
   68     std::string verification_key_fn = 
"verification_key.txt";
 
   69     std::string proof_fn = 
"proof.txt";
 
   70     std::string primary_input_fn = 
"primary_input.txt";
 
   71     std::string verification_result_fn = 
"verification_result.txt";
 
   73     std::string processed_assembly_fn;
 
   74     std::string verification_key_fn;
 
   76     std::string primary_input_fn;
 
   77     std::string verification_result_fn;
 
   82             processed_assembly_fn,
 
   86             verification_result_fn)) {
 
   90     libff::start_profiling();
 
   93     std::ifstream vk_file(verification_key_fn);
 
   97     std::ifstream processed(processed_assembly_fn);
 
  100     std::ifstream f_primary_input(primary_input_fn);
 
  103     std::ifstream proof_file(proof_fn);
 
  110             vk.ap, vk.primary_input_size_bound, program, primary_input);
 
  111     const bool bit = ram_ppzksnark_verifier<default_tinyram_ppzksnark_pp>(
 
  114     printf(
"===================================================================" 
  116     printf(
"The verification result is: %s\n", (bit ? 
"PASS" : 
"FAIL"));
 
  117     printf(
"===================================================================" 
  119     std::ofstream vr_file(verification_result_fn);
 
  120     vr_file << bit << 
"\n";