12345678910111213141516171819202122232425262728293031323334353637383940(************************************************************************)(* * The Rocq Prover / The Rocq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* \VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(* * (see LICENSE file for the text of the license) *)(************************************************************************)(** Evaluable references (whose transparency can be controlled) *)openNamestypet=|EvalVarRefofId.t|EvalConstRefofConstant.t|EvalProjectionRefofProjection.Repr.tletmapfvarfcstfprj=function|EvalVarRefv->EvalVarRef(fvarv)|EvalConstRefc->EvalConstRef(fcstc)|EvalProjectionRefp->EvalProjectionRef(fprjp)letequaler1er2=er1==er2||matcher1,er2with|EvalVarRefv1,EvalVarRefv2->Id.equalv1v2|EvalConstRefc1,EvalConstRefc2->Constant.CanOrd.equalc1c2|EvalProjectionRefp1,EvalProjectionRefp2->Projection.Repr.CanOrd.equalp1p2|_->falseletto_kevaluable:t->Conv_oracle.evaluable=funer->matcherwith|EvalVarRefv->Conv_oracle.EvalVarRefv|EvalConstRefc->Conv_oracle.EvalConstRefc|EvalProjectionRefp->Conv_oracle.EvalProjectionRefp