diff --git a/src/kernel/unification_constraint.h b/src/kernel/unification_constraint.h
index 14d3ab9a02..14dd37b780 100644
--- a/src/kernel/unification_constraint.h
+++ b/src/kernel/unification_constraint.h
@@ -19,17 +19,20 @@ class unification_constraint;
1- ctx |- t == s t is (definitionally) equal to s
2- ctx |- t << s t is convertible to s (this is weaker than equality)
- 3- ctx |- max(t1, t2) == s The maximum of t1 and t2 is equal to s
+ 3- ctx |- max(t1, t2) == s The maximum of t1 and t2 is equal to s, if t2 is Bool, then s is Bool.
4- ctx |- ?m == t_1 Or ... Or ?m == t_k The metavariable ?m is equal to t_1, ..., or t_k
\remark The constraint ctx |- t == s implies that ctx |- t << s, but
the converse is not true. Example: ctx |- Type 1 << Type 2, but
we don't have ctx |- Type 1 == Type 2.
- \remark In the max constraint, \c t1 and \c t2 must be eventually unifiable with a Type term.
+ \remark In the max constraint, \c t1 and \c t2 must be eventually unifiable with a Type term or Bool.
For example, assume the constraint ctx |- max(?m1, Type 1) == ?m2. Now, suppose
?m2 is assigned to Type 1. Then, ?m1 can be assigned to Type 0
or Type 1.
+
+ \remark The max constraint is produced when type checking Pi expressions of the form (Pi x : A, B),
+ and the type of A is t1 and the type of B is t2. So, if t2 == Bool, then max(t1, t2) == Bool
*/
enum class unification_constraint_kind { Eq, Convertible, Max, Choice };