--- a/doc/source/krb_syntax/fc_rule.txt
+++ b/doc/source/krb_syntax/fc_rule.txt
@@ -65,6 +65,14 @@
                    DEINDENT
 
     fc_premise ::= fact_pattern
+                 | 'forall' NL
+                     INDENT
+                        {fc_premise NL}
+                     DEINDENT
+                   [ 'require' NL
+                       INDENT
+                          {fc_premise NL}
+                       DEINDENT ]
                  | python_premise
 
     fact_pattern ::= IDENTIFIER '.' IDENTIFIER '(' [{pattern,}] ')'
@@ -75,6 +83,11 @@
 
 If the ``foreach`` clause **is** used, the rule_ is fired for each
 combination of true premises.
+
+The ``forall`` clause undoes all pattern variable bindings before the next
+``fc_premise`` is run.  Thus, it can only be used to test values produced by
+prior ``fc_premises``, but not to generate them for subsequent ``fc_premises``.
+If the ``require`` clause is missing, the ``forall`` clause always succeeds.
 
 Assert clause
 =================