module Equivalence: sig .. end
type t = {
|
carrier : EConstr.constr; |
|
eq : EConstr.constr; |
|
equivalence : EConstr.constr; |
}
val make : EConstr.constr -> EConstr.constr -> EConstr.constr -> t
val infer : Coq.goal_sigma ->
EConstr.constr -> EConstr.constr -> t * Coq.goal_sigma
val from_relation : Coq.goal_sigma -> Coq.Relation.t -> t * Coq.goal_sigma
val cps_from_relation : Coq.Relation.t ->
(t -> Proof_type.tactic) -> Proof_type.tactic
val to_relation : t -> Coq.Relation.t
val split : t -> EConstr.constr * EConstr.constr * EConstr.constr