10 #include <boost/program_options.hpp> 
   18 namespace po = boost::program_options;
 
   23     std::string &processed_assembly_fn,
 
   24     std::string &proving_key_fn,
 
   25     std::string &primary_input_fn,
 
   26     std::string &auxiliary_input_fn,
 
   27     std::string &proof_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())(
 
   34             "proving_key", po::value<std::string>(&proving_key_fn)->required())(
 
   36             po::value<std::string>(&primary_input_fn)->required())(
 
   38             po::value<std::string>(&auxiliary_input_fn)->required())(
 
   39             "proof", po::value<std::string>(&proof_fn)->required());
 
   42         po::store(po::parse_command_line(argc, argv, desc), vm);
 
   44         if (vm.count(
"help")) {
 
   45             std::cout << desc << 
"\n";
 
   50     } 
catch (std::exception &e) {
 
   51         std::cerr << 
"Error: " << e.what() << 
"\n";
 
   61 int main(
int argc, 
const char *argv[])
 
   66     std::string processed_assembly_fn = 
"processed.txt";
 
   67     std::string proving_key_fn = 
"proving_key.txt";
 
   68     std::string primary_input_fn = 
"primary_input.txt";
 
   69     std::string auxiliary_input_fn = 
"auxiliary_input.txt";
 
   70     std::string proof_fn = 
"proof.txt";
 
   72     std::string processed_assembly_fn;
 
   73     std::string proving_key_fn;
 
   74     std::string primary_input_fn;
 
   75     std::string auxiliary_input_fn;
 
   81             processed_assembly_fn,
 
   89     libff::start_profiling();
 
   93     std::ifstream pk_file(proving_key_fn);
 
   97     std::ifstream processed(processed_assembly_fn);
 
  100     std::ifstream f_primary_input(primary_input_fn);
 
  101     std::ifstream f_auxiliary_input(auxiliary_input_fn);
 
  107             pk.ap, pk.primary_input_size_bound, program, primary_input);
 
  109         ram_ppzksnark_prover<default_tinyram_ppzksnark_pp>(
 
  110             pk, boot_trace, auxiliary_input);
 
  112     std::ofstream proof_file(proof_fn);