     neuron_t** out_neurons = fp->layers[layerno]->neurons;
     const size_t num_out_neurons = fp->layers[layerno]->dims;
 
-    expr_t** lexpr = (expr_t**) malloc(num_out_neurons*sizeof(expr_t*));
-    expr_t** uexpr = (expr_t**) malloc(num_out_neurons*sizeof(expr_t*));
+    expr_t** lexpr_array = (expr_t**) malloc(num_out_neurons*sizeof(expr_t*));
+    expr_t** uexpr_array = (expr_t**) malloc(num_out_neurons*sizeof(expr_t*));
 
     for(size_t i = 0; i < num_out_neurons; i++)
     {
-        lexpr[i] = copy_expr(out_neurons[i]->expr);
-        uexpr[i] = copy_expr(out_neurons[i]->expr);
+        lexpr_array[i] = copy_expr(out_neurons[i]->expr);
+        uexpr_array[i] = copy_expr(out_neurons[i]->expr);
     }
 
     for(int k = layerno - 1; k >= 0; k--)

        {
            if(fp->layers[k]->activation == RELU)
            {
                lexpr_replace_relu_bounds(lexpr, aux_neurons, num_out_neurons);
                uexpr_replace_relu_bounds(uexpr, aux_neurons, num_out_neurons);
            }

            expr_from_previous_layer(lexpr, aux_neurons, num_out_neurons);
            expr_from_previous_layer(uexpr, aux_neurons, num_out_neurons);
        }
        else
        {
            lexpr_replace_maxpool_bounds(lexpr, aux_neurons, num_out_neurons);
            uexpr_replace_maxpool_bounds(uexpr, aux_neurons, num_out_neurons);
        }
    }

    for(size_t i = 0; i < num_out_neurons; i++)
    {
        if((fp->input_lexpr != nullptr) && (fp->input_uexpr != nullptr))
        {
            replace_input_poly_cons_in_lexpr(&(lexpr[i]), fp->input_inf, fp->input_sup, fp->input_lexpr, fp->input_uexpr);
            replace_input_poly_cons_in_uexpr(&(uexpr[i]), fp->input_inf, fp->input_sup, fp->input_lexpr, fp->input_uexpr);
        }

        compute_lb_from_expr(&(out_neurons[i]->lb), &(lexpr[i]), fp->input_inf, fp->input_sup, fp->input_lexpr, fp->input_uexpr);
        compute_ub_from_expr(&(out_neurons[i]->ub), &(uexpr[i]), fp->input_inf, fp->input_sup, fp->input_lexpr, fp->input_uexpr);
    }

    if(fp->out != nullptr)
    {
        fp->out->lexpr = lexpr;
        fp->out->uexpr = uexpr;
    }
    else
    {
        for(size_t i = 0; i < num_out_neurons; i++)
        {
            free_expr(lexpr[i]);
            free_expr(uexpr[i]);
        }

        free(lexpr);
        free(uexpr);
    }
}


}


void update_state_using_previous_layers(elina_manager_t* man, fppoly_t* fp, const size_t layerno)
{
    fppoly_internal_t* pr = fppoly_init_from_manager(man, ELINA_FUNID_ASSIGN_LINEXPR_ARRAY);
