<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version  (Ruby 3.1.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC9051 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9051.xml">
]>


<rfc ipr="trust200902" docName="draft-farrell-ufmrg-sample-00" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="UFM Sample">Usable Formal Methods Research Group Sample Problems</title>

    <author initials="S." surname="Farrell" fullname="Stephen Farrell">
      <organization>Trinity College, Dublin</organization>
      <address>
        <postal>
          <country>Ireland</country>
        </postal>
        <email>stephen.farrell@cs.tcd.ie</email>
      </address>
    </author>

    <date year="2023" month="June" day="19"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This draft provides reasoning as to why the Usable Formal Methods research
group might benefit from having an IETF-relevant sample problem and describes
one such (IMAP search). This is just an initial draft aiming to help move
discussion forward so may be dropped or replaced by other drafts or the
research group may prefer some non I-D format, or the research group may decide
that sample problems aren't sufficiently useful. Early days, basically!</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>The Usable Formal Methods research group <xref target="ufmrg"/> has discussed the idea
that having one or more "sample" problems might be useful for a number of
reasons:</t>

<t><list style="symbols">
  <t>to provide a small but realistic IETF-relevant problem with which proponents
of particular formal methods can demonstrate their preferred methodologies</t>
  <t>to produce relatively simple formal methods artefacts that deal with a
problem familiar to many IETF participants</t>
  <t>to allow for comparison between formal methods artefacts so that IETF
participants can better understand which mechanisms are best used when</t>
  <t>to possibly discover something new about the sample problems or about
implementations of those</t>
</list></t>

<t>The hope is that this should help both sets of people better understand how
formal methods may be useful for IETF work.</t>

<t>We posit that the following characteristics will help us identify one or
more "good" sample problems:</t>

<t><list style="symbols">
  <t>the problem should be well-understood by many IETF participants and easy
to understand for formal methods people seeing the problem description for
the first time</t>
  <t>the problem should be simple, so that the formal methods artefacts produced
don't overwhelm IETF participants and to lower the effort required for 
formal methods people to demonstrate how their preferred mechanisms work
for that problem</t>
</list></t>

<t>We provide an initial description of one such problem in the section 2.
If additional sample problems are proposed, those could be documented in
other sections of this draft or in other documents. (To be clear: the 
author would welcome such text - the more the merrier for now.)</t>

<section anchor="success-criteria"><name>Success Criteria</name>

<t>If this approach succeeds we would expect:</t>

<t><list style="symbols">
  <t>to see formal methods proponents publish analyses of the sample problem(s)</t>
  <t>to see IETF participants use/reference those analyses</t>
  <t>to eventually see teams of IETF participants (with implementation/deployment
experience) work together with proponents of formal method schemes to extend
those analyses</t>
</list></t>

<t>If this approach doesn't get traction, we will most likely hear crickets.</t>

</section>
<section anchor="discussion-venues"><name>Discussion Venues</name>

<t>The github repo for this draft is at:</t>

<figure><artwork><![CDATA[
https://github.com/sftcd/ufmrg-sample
]]></artwork></figure>

<t>PRs, issues etc are welcome. Substantive discussion however should for now at
least be directed to the UFMRG mailing list: ufmrg@irtf.org</t>

</section>
</section>
<section anchor="imap-search"><name>IMAP Search</name>

<section anchor="background"><name>Background</name>

<t>UFMRG recently <xref target="ufmrg-interim"/> discussed the idea of using IMAP search as
a sample problem. The reasons for considering this include:</t>

<t><list style="symbols">
  <t>IMAP is familiar to all concerned, and doesn't require specialist 
cryptographic understanding</t>
  <t>IMAP search is widely used, apparently particularly by mobile device mail
user agents (MUAs)</t>
  <t>IMAP search has some complexity, e.g. working for connections from multiple
MUAs at  the same time, and with some statefullness</t>
  <t>a description of IMAP search may be relatively easy to extract from the
relevant RFCs (I'm about to find out if that's true:-)</t>
</list></t>

<t>The basic problem here is for an MUA to provide search criteria to a 
message store (MS) and to be returned information about the set of 
email messages that match the search criteria. Further IMAP operations
may be performed on the search results, e.g. to move all matching 
messages to another folder. A typical mail account will be used by
multiple MUAs in parallel, so that the same person may be searching,
moving or deleting from a mobile MUA and a desktop MUA at the same
time, possibly leading to interesting implementation or protocol
failure cases.</t>

</section>
<section anchor="underlying-specifications"><name>Underlying Specifications</name>

<t>IMAP search is primarily defined in <xref target="RFC9051"/>, section 6.4.4 but with some
additional ABNF definitions defined elsewhere required. We reproduce relevant
text in the next section. For simplicity, we omit some of the possible
search criteria in the description below.</t>

<t>The text below is a verbatim copy of the text version of RFC9051, section
6.4.4.  Future versions of this draft will likely simplify this text, and we'll
try find a better way to include snippets of RFC text. We've not yet
included the references from that text.</t>

<t>For now, the purpose of this text is really to try help figure out what kind of
sample problem description might be useful, so this is not yet intended to be
something that could be used to generate a formal analysis of the IMAP search
command.</t>

</section>
<section anchor="text-from-rfc-9051"><name>Text from RFC 9051</name>

<t>BEGIN TEXT FROM 9051</t>

<figure><artwork><![CDATA[
﻿6.4.4.  SEARCH Command

   Arguments:    OPTIONAL result specifier

                 OPTIONAL [CHARSET] specification

                 searching criteria (one or more)

   Responses:    OPTIONAL untagged response:  ESEARCH

   Result:       OK -  search completed
                 NO -  search error: can't search that [CHARSET] or
                    criteria
                 BAD -  command unknown or arguments invalid

   The SEARCH command searches the mailbox for messages that match the
   given searching criteria.

   The SEARCH command may contain result options.  Result options
   control what kind of information is returned about messages matching
   the search criteria in an untagged ESEARCH response.  If no result
   option is specified or empty list of options is specified as "()",
   ALL is assumed (see below).  The order of individual options is
   arbitrary.  Individual options may contain parameters enclosed in
   parentheses.  (However, if an option has a mandatory parameter, which
   can always be represented as a number or a sequence-set, the option
   parameter does not need the enclosing parentheses.  See "Formal
   Syntax" (Section 9) for more details.)  If an option has parameters,
   they consist of atoms and/or strings and/or lists in a specific
   order.  Any options not defined by extensions that the server
   supports MUST be rejected with a BAD response.

   Note that IMAP4rev1 used SEARCH responses [RFC3501] instead of
   ESEARCH responses.  Clients that support only IMAP4rev2 MUST ignore
   SEARCH responses.

   This document specifies the following result options:

   MIN
      Return the lowest message number/UID that satisfies the SEARCH
      criteria.

      If the SEARCH results in no matches, the server MUST NOT include
      the MIN result option in the ESEARCH response; however, it still
      MUST send the ESEARCH response.

   MAX
      Return the highest message number/UID that satisfies the SEARCH
      criteria.

      If the SEARCH results in no matches, the server MUST NOT include
      the MAX result option in the ESEARCH response; however, it still
      MUST send the ESEARCH response.

   ALL
      Return all message numbers/UIDs that satisfy the SEARCH criteria
      using the sequence-set syntax.  Note that the client MUST NOT
      assume that messages/UIDs will be listed in any particular order.

      If the SEARCH results in no matches, the server MUST NOT include
      the ALL result option in the ESEARCH response; however, it still
      MUST send the ESEARCH response.

   COUNT
      Return the number of messages that satisfy the SEARCH criteria.
      This result option MUST always be included in the ESEARCH
      response.

   SAVE
      This option tells the server to remember the result of the SEARCH
      or UID SEARCH command (as well as any command based on SEARCH,
      e.g., SORT and THREAD [RFC5256]) and store it in an internal
      variable that we will reference as the "search result variable".
      The client can use the "$" marker to reference the content of this
      internal variable.  The "$" marker can be used instead of message
      sequence or UID sequence in order to indicate that the server
      should substitute it with the list of messages from the search
      result variable.  Thus, the client can use the result of the
      latest remembered SEARCH command as a parameter to another
      command.  See Section 6.4.4.1 for details on how the value of the
      search result variable is determined, how it is affected by other
      commands executed, and how the SAVE return option interacts with
      other return options.

      In absence of any other SEARCH result option, the SAVE result
      option also suppresses any ESEARCH response that would have been
      otherwise returned by the SEARCH command.

   Note: future extensions to this document can allow servers to return
   multiple ESEARCH responses for a single extended SEARCH command.
   However, all options specified above MUST result in a single ESEARCH
   response if used by themselves or in combination.  This guarantee
   simplifies processing in IMAP4rev2 clients.  Future SEARCH extensions
   that relax this restriction will have to describe how results from
   multiple ESEARCH responses are to be combined.

   Searching criteria consist of one or more search keys.

   When multiple keys are specified, the result is the intersection (AND
   function) of all the messages that match those keys.  For example,
   the criteria DELETED FROM "SMITH" SINCE 1-Feb-1994 refers to all
   deleted messages from Smith with INTERNALDATE greater than February
   1, 1994.  A search key can also be a parenthesized list of one or
   more search keys (e.g., for use with the OR and NOT keys).

   Server implementations MAY exclude [MIME-IMB] body parts with
   terminal content media types other than TEXT and MESSAGE from
   consideration in SEARCH matching.

   The OPTIONAL [CHARSET] specification consists of the word "CHARSET"
   followed by the name of a character set from the registry
   [CHARSET-REG].  It indicates the [CHARSET] of the strings that appear
   in the search criteria.  [MIME-IMB] content transfer encodings and
   [MIME-HDRS] strings in [RFC5322]/[MIME-IMB] headers MUST be decoded
   before comparing text.  Servers MUST support US-ASCII and UTF-8
   charsets; other CHARSETs MAY be supported.  Clients SHOULD use UTF-8.
   Note that if CHARSET is not provided, IMAP4rev2 servers MUST assume
   UTF-8, so selecting CHARSET UTF-8 is redundant.  It is permitted for
   improved compatibility with existing IMAP4rev1 clients.

   If the server does not support the specified [CHARSET], it MUST
   return a tagged NO response (not a BAD).  This response SHOULD
   contain the BADCHARSET response code, which MAY list the CHARSETs
   supported by the server.

   In all search keys that use strings, and unless otherwise specified,
   a message matches the key if the string is a substring of the
   associated text.  The matching SHOULD be case insensitive for
   characters within the ASCII range.  Consider using [IMAP-I18N] for
   language-sensitive, case-insensitive searching.  Note that the empty
   string is a substring; this is useful when performing a HEADER search
   in order to test for a header field presence in the message.

   The defined search keys are as follows.  Refer to "Formal Syntax"
   (Section 9) for the precise syntactic definitions of the arguments.

   <sequence set>
      Messages with message sequence numbers corresponding to the
      specified message sequence number set.

   ALL
      All messages in the mailbox; the default initial key for ANDing.

   ANSWERED
      Messages with the \Answered flag set.

   BCC <string>
      Messages that contain the specified string in the envelope
      structure's Blind Carbon Copy (BCC) field.

   BEFORE <date>
      Messages whose internal date (disregarding time and timezone) is
      earlier than the specified date.

   BODY <string>
      Messages that contain the specified string in the body of the
      message.  Unlike TEXT (see below), this doesn't match any header
      fields.  Servers are allowed to implement flexible matching for
      this search key, for example, by matching "swim" to both "swam"
      and "swum" in English language text or only performing full word
      matching (where "swim" will not match "swimming").

   CC <string>
      Messages that contain the specified string in the envelope
      structure's CC field.

   DELETED
      Messages with the \Deleted flag set.

   DRAFT
      Messages with the \Draft flag set.

   FLAGGED
      Messages with the \Flagged flag set.

   FROM <string>
      Messages that contain the specified string in the envelope
      structure's FROM field.

   HEADER <field-name> <string>
      Messages that have a header field with the specified field-name
      (as defined in [RFC5322]) and that contain the specified string in
      the text of the header field (what comes after the colon).  If the
      string to search is zero-length, this matches all messages that
      have a header field with the specified field-name regardless of
      the contents.  Servers should use a substring search for this
      SEARCH item, as clients can use it for automatic processing not
      initiated by end users.  For example, this can be used when
      searching for Message-ID or Content-Type header field values that
      need to be exact or for searches in header fields that the IMAP
      server might not know anything about.

   KEYWORD <flag>
      Messages with the specified keyword flag set.

   LARGER <n>
      Messages with an RFC822.SIZE larger than the specified number of
      octets.

   NOT <search-key>
      Messages that do not match the specified search key.

   ON <date>
      Messages whose internal date (disregarding time and timezone) is
      within the specified date.

   OR <search-key1> <search-key2>
      Messages that match either search key.

   SEEN
      Messages that have the \Seen flag set.

   SENTBEFORE <date>
      Messages whose [RFC5322] Date: header field (disregarding time and
      timezone) is earlier than the specified date.

   SENTON <date>
      Messages whose [RFC5322] Date: header field (disregarding time and
      timezone) is within the specified date.

   SENTSINCE <date>
      Messages whose [RFC5322] Date: header field (disregarding time and
      timezone) is within or later than the specified date.

   SINCE <date>
      Messages whose internal date (disregarding time and timezone) is
      within or later than the specified date.

   SMALLER <n>
      Messages with an RFC822.SIZE smaller than the specified number of
      octets.

   SUBJECT <string>
      Messages that contain the specified string in the envelope
      structure's SUBJECT field.

   TEXT <string>
      Messages that contain the specified string in the header
      (including MIME header fields) or body of the message.  Servers
      are allowed to implement flexible matching for this search key,
      for example, matching "swim" to both "swam" and "swum" in English
      language text or only performing full-word matching (where "swim"
      will not match "swimming").

   TO <string>
      Messages that contain the specified string in the envelope
      structure's TO field.

   UID <sequence set>
      Messages with unique identifiers corresponding to the specified
      unique identifier set.  Sequence-set ranges are permitted.

   UNANSWERED
      Messages that do not have the \Answered flag set.

   UNDELETED
      Messages that do not have the \Deleted flag set.

   UNDRAFT
      Messages that do not have the \Draft flag set.

   UNFLAGGED
      Messages that do not have the \Flagged flag set.

   UNKEYWORD <flag>
      Messages that do not have the specified keyword flag set.

   UNSEEN
      Messages that do not have the \Seen flag set.

   Example:

     C: A282 SEARCH RETURN (MIN COUNT) FLAGGED
         SINCE 1-Feb-1994 NOT FROM "Smith"
     S: * ESEARCH (TAG "A282") MIN 2 COUNT 3
     S: A282 OK SEARCH completed

   Example:

     C: A283 SEARCH RETURN () FLAGGED
         SINCE 1-Feb-1994 NOT FROM "Smith"
     S: * ESEARCH (TAG "A283") ALL 2,10:11
     S: A283 OK SEARCH completed

   Example:

     C: A284 SEARCH TEXT "string not in mailbox"
     S: * ESEARCH (TAG "A284")
     S: A284 OK SEARCH completed
     C: A285 SEARCH CHARSET UTF-8 TEXT {12}
     S: + Ready for literal text
     C: отпуск
     S: * ESEARCH (TAG "A285") ALL 43
     S: A285 OK SEARCH completed


   The following example demonstrates finding the first unseen message
   in the mailbox:

   Example:

     C: A284 SEARCH RETURN (MIN) UNSEEN
     S: * ESEARCH (TAG "A284") MIN 4
     S: A284 OK SEARCH completed

   The following example demonstrates that if the ESEARCH UID indicator
   is present, all data in the ESEARCH response is referring to UIDs;
   for example, the MIN result specifier will be followed by a UID.

   Example:

     C: A285 UID SEARCH RETURN (MIN MAX) 1:5000
     S: * ESEARCH (TAG "A285") UID MIN 7 MAX 3800
     S: A285 OK SEARCH completed

   The following example demonstrates returning the number of deleted
   messages:

   Example:

     C: A286 SEARCH RETURN (COUNT) DELETED
     S: * ESEARCH (TAG "A286") COUNT 15
     S: A286 OK SEARCH completed

6.4.4.1.  SAVE Result Option and SEARCH Result Variable

   Upon successful completion of a SELECT or an EXAMINE command (after
   the tagged OK response), the current search result variable is reset
   to the empty sequence.

   A successful SEARCH command with the SAVE result option sets the
   value of the search result variable to the list of messages found in
   the SEARCH command.  For example, if no messages were found, the
   search result variable will contain the empty sequence.

   Any of the following SEARCH commands MUST NOT change the search
   result variable:

      a SEARCH command that caused the server to return the BAD tagged
      response,

      a SEARCH command with no SAVE result option that caused the server
      to return NO tagged response, and

      a successful SEARCH command with no SAVE result option.

   A SEARCH command with the SAVE result option that caused the server
   to return the NO tagged response sets the value of the search result
   variable to the empty sequence.

   When a message listed in the search result variable is EXPUNGEd, it
   is automatically removed from the list.  Implementors are reminded
   that if the server stores the list as a list of message numbers, it
   MUST automatically adjust them when notifying the client about
   expunged messages, as described in Section 7.5.1.

   If the server decides to send a new UIDVALIDITY value while the
   mailbox is opened, it causes the resetting of the search variable to
   the empty sequence.

   Note that even if the "$" marker contains the empty sequence of
   messages, it must be treated by all commands accepting message sets
   as parameters as a valid, but non-matching, list of messages.  For
   example, the "FETCH $" command would return a tagged OK response and
   no FETCH responses.  See also Example 5 in Section 6.4.4.4.

   The SAVE result option doesn't change whether the server would return
   items corresponding to MIN, MAX, ALL, or COUNT result options.

   When the SAVE result option is combined with the MIN or MAX result
   option, and both ALL and COUNT result options are absent, the
   corresponding MIN/MAX is returned (if the search result is not
   empty), but the "$" marker would contain a single message as returned
   in the MIN/MAX return item.

   If the SAVE result option is combined with both MIN and MAX result
   options, and both ALL and COUNT result options are absent, the "$"
   marker would contain zero messages, one message, or two messages as
   returned in the MIN/MAX return items.

   If the SAVE result option is combined with the ALL and/or COUNT
   result option(s), the "$" marker would always contain all messages
   found by the SEARCH or UID SEARCH command.

   The following table summarizes the additional requirement on ESEARCH
   server implementations described in this section.

           +==============================+====================+
           | Combination of Result Option |  "$" Marker Value  |
           +==============================+====================+
           |           SAVE MIN           |        MIN         |
           +------------------------------+--------------------+
           |           SAVE MAX           |        MAX         |
           +------------------------------+--------------------+
           |         SAVE MIN MAX         |     MIN & MAX      |
           +------------------------------+--------------------+
           |          SAVE * [m]          | all found messages |
           +------------------------------+--------------------+

                                  Table 4

   where '*' means "ALL" and/or "COUNT", and '[m]' means optional "MIN"
   and/or "MAX"

   Implementation note: server implementors should note that "$" can
   reference IMAP message sequences or UID sequences, depending on the
   context where it is used.  For example, the "$" marker can be set as
   a result of a SEARCH (SAVE) command and used as a parameter to a UID
   FETCH command (which accepts a UID sequence, not a message sequence),
   or the "$" marker can be set as a result of a UID SEARCH (SAVE)
   command and used as a parameter to a FETCH command (which accepts a
   message sequence, not a UID sequence).  Server implementations need
   to automatically map the "$" marker value to message numbers or UIDs,
   depending on the context where the "$" marker is used.

6.4.4.2.  Multiple Commands in Progress

   Use of a SEARCH RETURN (SAVE) command followed by a command using the
   "$" marker creates direct dependency between the two commands.  As
   directed by Section 5.5, a server MUST execute the two commands in
   the order they were received.

   A client MAY pipeline a SEARCH RETURN (SAVE) command with one or more
   commands using the "$" marker, as long as this doesn't create an
   ambiguity, as described in Section 5.5.  Examples 7-9 in
   Section 6.4.4.4 explain this in more details.

6.4.4.3.  Refusing to Save Search Results

   In some cases, the server MAY refuse to save a SEARCH (SAVE) result,
   for example, if an internal limit on the number of saved results is
   reached.  In this case, the server MUST return a tagged NO response
   containing the NOTSAVED response code and set the search result
   variable to the empty sequence, as described in Section 6.4.4.1.

6.4.4.4.  Examples Showing Use of the SAVE Result Option

   Only in this section: explanatory comments in examples that start
   with // are not part of the protocol.

   1.  The following example demonstrates how the client can use the
       result of a SEARCH command to FETCH headers of interesting
       messages:

       Example 1:

        C: A282 SEARCH RETURN (SAVE) FLAGGED SINCE 1-Feb-1994
            NOT FROM "Smith"
        S: A282 OK SEARCH completed, result saved
        C: A283 FETCH $ (UID INTERNALDATE FLAGS BODY.PEEK[HEADER])
        S: * 2 FETCH (UID 14 ...
        S: * 84 FETCH (UID 100 ...
        S: * 882 FETCH (UID 1115 ...
        S: A283 OK completed

       The client can also pipeline the two commands:

       Example 2:

        C: A282 SEARCH RETURN (SAVE) FLAGGED SINCE 1-Feb-1994
            NOT FROM "Smith"
        C: A283 FETCH $ (UID INTERNALDATE FLAGS BODY.PEEK[HEADER])
        S: A282 OK SEARCH completed
        S: * 2 FETCH (UID 14 ...
        S: * 84 FETCH (UID 100 ...
        S: * 882 FETCH (UID 1115 ...
        S: A283 OK completed

   2.  The following example demonstrates that the result of one SEARCH
       command can be used as input to another SEARCH command:

       Example 3:

        C: A300 SEARCH RETURN (SAVE) SINCE 1-Jan-2004
            NOT FROM "Smith"
        S: A300 OK SEARCH completed
        C: A301 UID SEARCH UID $ SMALLER 4096
        S: * ESEARCH (TAG "A301") UID ALL 17,900,901
        S: A301 OK completed

       Note that the second command in Example 3 can be replaced with:

        C: A301 UID SEARCH $ SMALLER 4096

       and the result of the command would be the same.

   3.  The following example shows that the "$" marker can be combined
       with other message numbers using the OR SEARCH criterion.

       Example 4:

        C: P282 SEARCH RETURN (SAVE) SINCE 1-Feb-1994
            NOT FROM "Smith"
        S: P282 OK SEARCH completed
        C: P283 SEARCH CHARSET UTF-8 (OR $ 1,3000:3021) TEXT {8+}
        C: мать
        S: * ESEARCH (TAG "P283") ALL 882,1102,3003,3005:3006
        S: P283 OK completed

   4.  The following example demonstrates that a failed SEARCH sets the
       search result variable to the empty list.  The server doesn't
       implement the KOI8-R charset.

       Example 5:

        C: B282 SEARCH RETURN (SAVE) SINCE 1-Feb-1994
            NOT FROM "Smith"
        S: B282 OK SEARCH completed
        C: B283 SEARCH RETURN (SAVE) CHARSET KOI8-R
            (OR $ 1,3000:3021) TEXT {4}
        C: XXXX
        S: B283 NO [BADCHARSET UTF-8] KOI8-R is not supported
       //After this command, the saved result variable contains
       //no messages.  A client that wants to reissue the B283
       //SEARCH command with another CHARSET would have to reissue
       //the B282 command as well.  One possible workaround for
       //this is to include the desired CHARSET parameter
       //in the earliest SEARCH RETURN (SAVE) command in a
       //sequence of related SEARCH commands, to cause
       //the earliest SEARCH in the sequence to fail.
       //A better approach might be to always use CHARSET UTF-8
       //instead.

       Note: Since this document format is restricted to 7-bit ASCII
       text, it is not possible to show actual KOI8-R data.  The "XXXX"
       is a placeholder for what would be 4 octets of 8-bit data in an
       actual transaction.

   5.  The following example demonstrates that it is not an error to use
       the "$" marker when it contains no messages.

       Example 6:

        C: E282 SEARCH RETURN (SAVE) SINCE 28-Oct-2006
            NOT FROM "Eric"
        C: E283 COPY $ "Other Messages"
       //The "$" contains no messages
        S: E282 OK SEARCH completed
        S: E283 OK COPY completed, nothing copied

       Example 7:

        C: F282 SEARCH RETURN (SAVE) KEYWORD $Junk
        C: F283 COPY $ "Junk"
        C: F284 STORE $ +FLAGS.Silent (\Deleted)
        S: F282 OK SEARCH completed
        S: F283 OK COPY completed
        S: F284 OK STORE completed

       Example 8:

        C: G282 SEARCH RETURN (SAVE) KEYWORD $Junk
        C: G283 SEARCH RETURN (ALL) SINCE 28-Oct-2006
            FROM "Eric"
       // The server can execute the two SEARCH commands
       // in any order, as they don't have any dependency.
       // For example, it may return:
        S: * ESEARCH (TAG "G283") ALL 3:15,27,29:103
        S: G283 OK SEARCH completed
        S: G282 OK SEARCH completed

       The following example demonstrates that the result of the second
       SEARCH RETURN (SAVE) always overrides the result of the first.

       Example 9:

        C: H282 SEARCH RETURN (SAVE) KEYWORD $Junk
        C: H283 SEARCH RETURN (SAVE) SINCE 28-Oct-2006
            FROM "Eric"
        S: H282 OK SEARCH completed
        S: H283 OK SEARCH completed
       // At this point "$" would contain results of H283

       The following example demonstrates behavioral difference for
       different combinations of ESEARCH result options.

       Example 10:

        C: C282 SEARCH RETURN (ALL) SINCE 12-Feb-2006
            NOT FROM "Smith"
        S: * ESEARCH (TAG "C283") ALL 2,10:15,21
      //$ value hasn't changed
        S: C282 OK SEARCH completed

        C: C283 SEARCH RETURN (ALL SAVE) SINCE 12-Feb-2006
            NOT FROM "Smith"
        S: * ESEARCH (TAG "C283") ALL 2,10:15,21
      //$ value is 2,10:15,21
        S: C283 OK SEARCH completed

        C: C284 SEARCH RETURN (SAVE MIN) SINCE 12-Feb-2006
            NOT FROM "Smith"
        S: * ESEARCH (TAG "C284") MIN 2
      //$ value is 2
        S: C284 OK SEARCH completed

        C: C285 SEARCH RETURN (MAX SAVE MIN) SINCE
            12-Feb-2006 NOT FROM "Smith"
        S: * ESEARCH (TAG "C285") MIN 2 MAX 21
      //$ value is 2,21
        S: C285 OK SEARCH completed

        C: C286 SEARCH RETURN (MAX SAVE MIN COUNT)
            SINCE 12-Feb-2006 NOT FROM "Smith"
        S: * ESEARCH (TAG "C286") MIN 2 MAX 21 COUNT 8
      //$ value is 2,10:15,21
        S: C286 OK SEARCH completed

        C: C286 SEARCH RETURN (ALL SAVE MIN) SINCE
            12-Feb-2006 NOT FROM "Smith"
        S: * ESEARCH (TAG "C286") MIN 2 ALL 2,10:15,21
      //$ value is 2,10:15,21
        S: C286 OK SEARCH completed
]]></artwork></figure>

<t>END TEXT FROM 9051</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>TBD</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The security properties of the sample problem(s) are of course of interest
but this draft itself will hopefully introduce no new security considerations
unless we omit something from the description of the sample problem(s) that
leads to erroneous conclusions about those security properties.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>No changes to IANA processes are made by this memo.</t>

</section>


  </middle>

  <back>



    <references title='Informative References'>

<reference anchor="ufmrg" target="https://datatracker.ietf.org/rg/ufmrg/about/">
  <front>
    <title>Usable Formal Methods Research Group</title>
    <author >
      <organization>IRTF</organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
<reference anchor="ufmrg-interim" target="https://datatracker.ietf.org/doc/minutes-interim-2023-ufmrg-01-202305241500/">
  <front>
    <title>May 2023 UFMRG online Interim meeting</title>
    <author >
      <organization>IRTF</organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
&RFC9051;


    </references>


<section anchor="changes-from-earlier-versions"><name>Changes from Earlier Versions</name>

<t>RFC editor: please remove this section.</t>

<t>Draft -00:</t>

<t><list style="symbols">
  <t>Initial revision</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
en6qTuVymUzfRLhS8P/xI0l/3XYAAA==

-->

</rfc>

