// // Execute a script in which there is only // one check-sat. We can use specialized // functions, such as preprocessing, to // improve performance // int OpenSMTContext::executeStatic( ) { assert( init ); //assert( config.incremental == 0 ); // // Hack for SMT-COMP 2010 for retrieving formula // for ( size_t i = 0 ; i < command_list.size( ) ; i ++ ) { Command & c = command_list[ i ]; if ( c.command == ASSERT ) Assert( c.enode ); else if ( c.command == CHECK_SAT ) { // Reduced check for computing interpolants #ifdef PRODUCE_PROOF if ( config.produce_inter != 0 ) staticCheckSATInterp( ); else #endif { staticCheckSAT( ); ostream & out = config.getRegularOut( ); if ( state == l_Undef ) out << "unknown" << endl; else if ( state == l_False ) out << "unsat" << endl; else out << "sat" << endl; } } else if ( c.command == EXIT ) Exit( ); else if ( c.command == GET_PROOF ) GetProof( ); else if ( c.command == GET_INTERPOLANTS ) GetInterpolants( ); else opensmt_error( "command not supported (yet)" ); } return 0; }
// // Execute a generic SMTLIB2 script // int OpenSMTContext::executeIncremental( ) { assert( init ); assert( config.incremental == 1 ); // Initialize theory solvers egraph.initializeTheorySolvers( &solver ); lbool status = l_Undef; for ( size_t i = 0 ; i < command_list.size( ) ; ++ i ) { Command & c = command_list[ i ]; // Commands blocked with assert( false ) are issued from parser directly switch( c.command ) { case SET_LOGIC: assert( false ); break; case SET_OPTION: assert( false ); break; case SET_INFO: assert( false ); break; case DECLARE_SORT: DeclareSort( c.str, c.num ); break; case DEFINE_SORT: opensmt_error( "construct define-sort not yet supported" ); break; case DECLARE_FUN: DeclareFun( c.str, c.sort_arg, c.sort_ret ); break; case DEFINE_FUN: opensmt_error( "construct define-fun not yet supported" ); break; case PUSH: Push( ); break; case POP: Pop( ); break; case ASSERT: Assert( c.enode ); break; case CHECK_SAT: status = CheckSAT( ); break; case GET_ASSERTIONS: opensmt_error( "construct get-assertions not yet supported" ); break; case GET_PROOF: GetProof( ); break; case GET_INTERPOLANTS: GetInterpolants( ); break; case GET_UNSAT_CORE: opensmt_error( "construct get-unsat-core not yet supported" ); break; case GET_VALUE: opensmt_error( "construct get-value not yet supported" ); break; case GET_ASSIGNMENT: opensmt_error( "construct get-assignment not yet supported" ); break; case GET_OPTION: opensmt_error( "construct get-option not yet supported" ); break; case GET_INFO: opensmt_error( "construct get-info not yet supported" ); break; case EXIT: Exit( ); break; default: opensmt_error( "case not handled" ); } } return 0; }
int GetProof_C(int64_t go_proof_source, char* server_ip, size_t server_ip_sz, char* hostname, size_t hostname_sz, char* server_config, size_t server_config_sz, int quic_version, char* chlo_hash, size_t chlo_hash_len, int ecdsa_ok, char **out_signature, size_t *out_signature_sz) { return GetProof(go_proof_source, server_ip, server_ip_sz, hostname, hostname_sz, server_config, server_config_sz, quic_version, chlo_hash, chlo_hash_len, ecdsa_ok, out_signature, out_signature_sz); }