package coq

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
Constraints for type inference

When doing conversion of universes, not only do we have =/<= constraints but also Lub constraints which correspond to unification of two levels which might not be necessary if unfolding is performed.

UWeak constraints come from irrelevant universes in cumulative polymorphism.

val is_trivial : t -> bool
module Set : sig ... end
type 'a accumulator = Set.t -> 'a -> 'a option
type 'a constrained = 'a * Set.t
type 'a constraint_function = 'a -> 'a -> Set.t -> Set.t
val enforce_eq_instances_univs : bool -> Univ.Instance.t constraint_function
val to_constraints : force_weak:bool -> UGraph.t -> Set.t -> Univ.Constraint.t

With force_weak UWeak constraints are turned into equalities, otherwise they're forgotten.

OCaml

Innovation. Community. Security.