@@ -3722,29 +3722,28 @@ vector<Lit> Solver::get_weight_translation() const {
37223722
37233723map<uint32_t , VarMap> Solver::update_var_mapping (const map<uint32_t , VarMap>& vmap) {
37243724 map<uint32_t , VarMap> ret;
3725- for (const auto &m : vmap) {
3726- assert (m. second .invariant ());
3727- if (m. second .lit == lit_Undef) {
3725+ for (const auto & [origv, newv] : vmap) {
3726+ assert (newv .invariant ());
3727+ if (newv .lit == lit_Undef) {
37283728 // This is a variable has been set in another round/system
3729- assert (m. second .val != l_Undef);
3730- assert (m. second . lit .var () >= nVarsOuter () && " Must be set , since it hasn't been inserted " );
3731- ret[m. first ] = m. second ;
3729+ assert (newv .val != l_Undef);
3730+ assert (newv. lit .var () >= nVarsOuter () && " Must not have been inserted , since it has been set " );
3731+ ret[origv ] = newv ;
37323732 } else {
3733- assert (m.second .val == l_Undef && " Must be unset" );
3734- /* cout << "m.first:" << setw(4) << m.first +1 */
3735- /* << " m.second.lit: " << setw(4) */
3736- /* << m.second.lit << " nVarsOuter(): " << nVarsOuter() << endl; */
3737- assert (m.second .lit .var () < nVarsOuter () && " Must have been inserted, since it hasn't been set" );
3738- Lit l = varReplacer->get_lit_replaced_with_outer (m.second .lit );
3739- l = map_outer_to_inter (l);
3733+ assert (newv.val == l_Undef && " Must be unset" );
3734+ /* cout << "origv:" << setw(4) << origv +1 */
3735+ /* << " newv.lit: " << setw(4) */
3736+ /* << newv.lit << " nVarsOuter(): " << nVarsOuter() << endl; */
3737+ assert (newv.lit .var () < nVarsOuter () && " Must have been inserted, since it hasn't been set" );
3738+ const Lit l_inter = map_outer_to_inter (varReplacer->get_lit_replaced_with_outer (newv.lit ));
37403739 if (varData[l.var ()].removed == Removed::elimed) {
37413740 // This cannot be mapped anywhere, it's been eliminated
37423741 // the AIG will define it
37433742 continue ;
37443743 }
3745- if (value (l ) != l_Undef) ret[m. first ] = VarMap (value (l ));
3746- else ret[m. first ] = VarMap (l );
3747- /* cout << "ret[m.first ]: " << setw(4) << ret[m.first ] << endl; */
3744+ if (value (l_inter ) != l_Undef) ret[origv ] = VarMap (value (l_inter ));
3745+ else ret[origv ] = VarMap (l_inter );
3746+ /* cout << "ret[origv ]: " << setw(4) << ret[origv ] << endl; */
37483747 }
37493748 }
37503749 return ret;
0 commit comments