{- | applies the second order quantification to the formula for the given
predicate -}
quantifyPredsPred :: Id -> PredType -> CASLFORMULA -> CASLFORMULA
quantifyPredsPred name (PredType args) f = q_form
     where psi = psiName name
           free_args = map mkFreeName args
           pt = Pred_type free_args nullRange
           q_form = QuantPred psi pt f

{- | given the axioms in the module M, the function computes the
axioms obtained for the homomorphisms -}
quantifyPredsPred :: Id -> PredType -> CASLFORMULA -> CASLFORMULA
quantifyPredsPred name (PredType args) f = q_form
     where psi = psiName name
           free_args = map mkFreeName args
           pt = Pred_type free_args nullRange
           q_form = QuantPred psi pt f

{- | given the axioms in the module M, the function computes the
axioms obtained for the homomorphisms -}
quantifyPredsPred name (PredType args) f = q_form
     where psi = psiName name
           free_args = map mkFreeName args
           pt = Pred_type free_args nullRange
           q_form = QuantPred psi pt f

{- | given the axioms in the module M, the function computes the
axioms obtained for the homomorphisms -}