function _valuated_hensel(P::R,fac::Vector{Pair{Fpol,Int}},n::V,phi_pow_inv::Vector{R2},vals::Vector{V},e::Vector{Int},f::Vector{Int},Lambda::Tuple{F2,F2},Cinv::Vector{Generic.MatSpaceElem{Rational{Int}}})where{R<:PolyRingElem,Fpol<:PolyRingElem,V,F,R2<:Tuple{Vector{R},Vector{R}},F2<:Vector{F}}
# In: w the aimed valuation, vals the valuation of the key polynomials, e and f the partial ramification indices and residual degrees of the type, M the list of inverse matrices of the sequence of value groups (first element being the one of the base field), s>0 the "level" of the type we are considering
# Out: a list of tuple (v, exps) where exps give the exponents of the key polynomials and v the valuation of the base_ring element.
function all_monomials_given_valuation(w::V,vals::Vector{V},e::Vector{Int},f::Vector{Int},Cinv::Vector{Generic.MatSpaceElem{Rational{Int}}},s::Int)whereV
a=OMFactorisation.gamma_cofactors_given_inverse_matrix(Cinv[s],w)# the aimed valuation expressed as a vector
b=OMFactorisation.gamma_cofactors_given_inverse_matrix(Cinv[s],vals[s])# same for the current valuation
a=gamma_cofactors_given_inverse_matrix(Cinv[s],w)# the aimed valuation expressed as a vector
b=gamma_cofactors_given_inverse_matrix(Cinv[s],vals[s])# same for the current valuation