72     default_tinyram_ppzksnark_pp::init_public_params();
 
   74     std::string assembly_fn = 
"assembly.s";
 
   75     std::string processed_assembly_fn = 
"processed.txt";
 
   76     std::string architecture_params_fn = 
"architecture_params.txt";
 
   77     std::string computation_bounds_fn = 
"computation_bounds.txt";
 
   78     std::string primary_input_fn = 
"primary_input.txt";
 
   79     std::string auxiliary_input_fn = 
"auxiliary_input.txt";
 
   81     std::string assembly_fn;
 
   82     std::string processed_assembly_fn;
 
   83     std::string architecture_params_fn;
 
   84     std::string computation_bounds_fn;
 
   85     std::string primary_input_fn;
 
   86     std::string auxiliary_input_fn;
 
   92             processed_assembly_fn,
 
   93             architecture_params_fn,
 
   94             computation_bounds_fn,
 
   96             auxiliary_input_fn)) {
 
  100     libff::start_profiling();
 
  102     printf(
"===================================================================" 
  104     printf(
"TinyRAM example loader\n");
 
  105     printf(
"===================================================================" 
  106            "=============\n\n");
 
  110     std::ifstream f_ap(architecture_params_fn);
 
  113     printf(
"Will run on %zu register machine (word size = %zu)\n", ap.k, ap.w);
 
  115     std::ifstream f_rp(computation_bounds_fn);
 
  116     size_t tinyram_input_size_bound, tinyram_program_size_bound, time_bound;
 
  117     f_rp >> tinyram_input_size_bound >> tinyram_program_size_bound >>
 
  120     std::ifstream processed(processed_assembly_fn);
 
  121     std::ifstream raw(assembly_fn);
 
  127             (std::istreambuf_iterator<char>(raw)),
 
  128             std::istreambuf_iterator<char>())
 
  131     std::ifstream f_primary_input(primary_input_fn);
 
  132     std::ifstream f_auxiliary_input(auxiliary_input_fn);
 
  134     libff::enter_block(
"Loading primary input");
 
  136     libff::leave_block(
"Loading primary input");
 
  138     libff::enter_block(
"Loading auxiliary input");
 
  140     libff::leave_block(
"Loading auxiliary input");
 
  142     printf(
"\nPress enter to continue.\n");
 
  145     const size_t boot_trace_size_bound =
 
  146         tinyram_program_size_bound + tinyram_input_size_bound;
 
  149             ap, boot_trace_size_bound, program, primary_input);
 
  151     printf(
"===================================================================" 
  153     printf(
"TinyRAM arithmetization test for T = %zu time steps\n", time_bound);
 
  154     printf(
"===================================================================" 
  155            "=============\n\n");
 
  165             ap, boot_trace_size_bound, boot_trace);
 
  167         r.auxiliary_input_map(boot_trace, auxiliary_input);
 
  169         r.get_constraint_system();
 
  171     r.print_execution_trace();
 
  175     printf(
"\nPress enter to continue.\n");
 
  178     printf(
"===================================================================" 
  180     printf(
"TinyRAM ppzkSNARK Key Pair Generator\n");
 
  181     printf(
"===================================================================" 
  182            "=============\n\n");
 
  184         ram_ppzksnark_generator<default_tinyram_ppzksnark_pp>(
 
  185             ap, boot_trace_size_bound, time_bound);
 
  187     printf(
"\nPress enter to continue.\n");
 
  190     printf(
"===================================================================" 
  192     printf(
"TinyRAM ppzkSNARK Prover\n");
 
  193     printf(
"===================================================================" 
  194            "=============\n\n");
 
  196         ram_ppzksnark_prover<default_tinyram_ppzksnark_pp>(
 
  197             keypair.
pk, boot_trace, auxiliary_input);
 
  199     printf(
"\nPress enter to continue.\n");
 
  202     printf(
"===================================================================" 
  204     printf(
"TinyRAM ppzkSNARK Verifier\n");
 
  205     printf(
"===================================================================" 
  206            "=============\n\n");
 
  207     bool bit = ram_ppzksnark_verifier<default_tinyram_ppzksnark_pp>(
 
  208         keypair.
vk, boot_trace, proof);
 
  210     printf(
"===================================================================" 
  212     printf(
"The verification result is: %s\n", (bit ? 
"PASS" : 
"FAIL"));
 
  213     printf(
"===================================================================" 
  216     printf(
"==================================================================="