(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* is_opaque_cst cst | VarKey id -> is_opaque_var id | RelKey _ -> false (* Unfold the first only if it is not opaque and the second is opaque *) let oracle_order k1 k2 = is_opaque k2 & not (is_opaque k1) (* summary operations *) type transparent_state = Idpred.t * Cpred.t let init() = (cst_transp := Cpred.full; var_transp := Idpred.full) let freeze () = (!var_transp, !cst_transp) let unfreeze (vo,co) = (cst_transp := co; var_transp := vo)