Documentation

Cvc.Untyped.Theory.Seq

Generated Seq constructors, sort-erased #

def Cvc.Untyped.Term.seqConcatN [Ω] (terms : Terms) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :

seqConcat over two or more terms.

Equations
Instances For

    Replaces every occurrence of a sub-sequence.

    Equations
    Instances For

      Replaces the first occurrence of a sub-sequence.

      Equations
      Instances For

        The one-element sequence at an index, or the empty sequence if out of bounds.

        Equations
        Instances For
          def Cvc.Untyped.Term.seqIndexof [Ω] (s sub start : Term) :

          Index of the first occurrence of sub in s at or after start, or -1.

          Equations
          Instances For

            The empty sequence of elements of sort α.

            Equations
            Instances For

              The sub-sequence of length len starting at idx; empty when out of range.

              Equations
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    The element at idx; unspecified out of bounds.

                    Equations
                    Instances For

                      Whether suf is a suffix of s.

                      Equations
                      Instances For

                        Reversal.

                        Equations
                        Instances For
                          def Cvc.Untyped.Term.seqUpdate [Ω] (s idx repl : Term) :

                          Overwrites s from idx with repl, keeping its length; s if idx is out of range.

                          Equations
                          Instances For

                            Concatenation.

                            Equations
                            Instances For

                              Whether pre is a prefix of s.

                              Equations
                              Instances For

                                Whether s contains sub.

                                Equations
                                Instances For

                                  The one-element sequence.

                                  Equations
                                  Instances For

                                    Seq's operators, taken apart one level, sort-erased.

                                    • seqUnit [Ω] (elm : Term) : View.Seq

                                      The one-element sequence.

                                    • seqConcat [Ω] (kids : Kids) : View.Seq

                                      Concatenation.

                                      kids holds every operand, two or more.

                                    • seqLength [Ω] (s : Term) : View.Seq

                                      Length.

                                    • seqAt [Ω] (s idx : Term) : View.Seq

                                      The one-element sequence at an index, or the empty sequence if out of bounds.

                                    • seqNth [Ω] (s idx : Term) : View.Seq

                                      The element at idx; unspecified out of bounds.

                                    • seqExtract [Ω] (s idx len : Term) : View.Seq

                                      The sub-sequence of length len starting at idx; empty when out of range.

                                    • seqUpdate [Ω] (s idx repl : Term) : View.Seq

                                      Overwrites s from idx with repl, keeping its length; s if idx is out of range.

                                    • seqIndexof [Ω] (s sub start : Term) : View.Seq

                                      Index of the first occurrence of sub in s at or after start, or -1.

                                    • seqReplace [Ω] (s pat repl : Term) : View.Seq

                                      Replaces the first occurrence of a sub-sequence.

                                    • seqReplaceAll [Ω] (s pat repl : Term) : View.Seq

                                      Replaces every occurrence of a sub-sequence.

                                    • seqRev [Ω] (s : Term) : View.Seq

                                      Reversal.

                                    • seqContains [Ω] (s sub : Term) : View.Seq

                                      Whether s contains sub.

                                    • seqPrefix [Ω] (pre s : Term) : View.Seq

                                      Whether pre is a prefix of s.

                                    • seqSuffix [Ω] (suf s : Term) : View.Seq

                                      Whether suf is a suffix of s.

                                    Instances For

                                      Takes a term apart one level, if Seq owns its operator.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        Values #

                                        A Lean Array denotes an SMT sequence: the empty sequence, then one unit sequence per element, concatenated.

                                        Whether a term is a sequence value, of kind CONST_SEQUENCE.

                                        Such values are what a model answers; a sequence built from constructors, such as seqConcat (seqUnit 0) (seqUnit 1), is not one even when its elements are values.

                                        Equations
                                        Instances For
                                          def Cvc.Untyped.Term.getSeqValue [Ω] {α : Type} [TermToValue α] (term : Term) :
                                          Env (Array α)

                                          The elements a constant sequence term denotes.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For

                                            The elements a constant sequence term denotes.

                                            Equations
                                            Instances For
                                              def Cvc.Untyped.Term.mkSeqValue [Ω] {α : Type} [ToTyp α] [ValueToTerm α] (elems : Array α) :

                                              The sequence term denoting an array of values.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For