Add missing constraint on premises in values
diff --git a/spectec/doc/semantics/il/1-syntax.spectec b/spectec/doc/semantics/il/1-syntax.spectec
index d2b9df5..c493487 100644
--- a/spectec/doc/semantics/il/1-syntax.spectec
+++ b/spectec/doc/semantics/il/1-syntax.spectec
@@ -98,12 +98,12 @@
   | BOOL bool               ;; bool
   | TEXT text               ;; text
   | TUP val*                ;; ( val* )
-  | INJ typ mixop val `- quantprems?  ;; mixop val
+  | INJ typ mixop val `- quantprems?  -- if quantprems? = $trueqpr  ;; mixop val
   | OPT val?                ;; val?
   | LIST val*               ;; [ val* ]
   | STR typ valfield*       ;; { valfield* }
 
-syntax valfield = atom `= val `- quantprems?  ;; atom `=` val
+syntax valfield = atom `= val `- quantprems?  -- if quantprems? = $trueqpr  ;; atom `=` val
 
 
 syntax exp =
diff --git a/spectec/src/il/eval.ml b/spectec/src/il/eval.ml
index 3815fd3..7231a47 100644
--- a/spectec/src/il/eval.ml
+++ b/spectec/src/il/eval.ml
@@ -1062,6 +1062,7 @@
 (* Subtyping *)
 
 and sub_prems _env prems1 prems2 =
+  prems2 = [] ||
   List.length prems1 = List.length prems2 &&
   List.for_all2 Eq.eq_prem prems1 prems2