Documentation

Cvc.Typed.Theory.Seq

Sequences, typed #

def Cvc.Typed.Term.seqConcat [Ω] {α : Type} (lft rgt : Term (Array α)) :
Env (Term (Array α))

Concatenation.

Equations
Instances For
    def Cvc.Typed.Term.seqRev [Ω] {α : Type} (s : Term (Array α)) :
    Env (Term (Array α))

    Reversal.

    Equations
    Instances For
      def Cvc.Typed.Term.seqReplace [Ω] {α : Type} (s pat repl : Term (Array α)) :
      Env (Term (Array α))

      Replaces the first occurrence of a sub-sequence.

      Equations
      Instances For
        def Cvc.Typed.Term.seqSuffix [Ω] {α : Type} (suf s : Term (Array α)) :

        Whether suf is a suffix of s.

        Equations
        Instances For
          def Cvc.Typed.Term.mkEmptySeq [Ω] {α : Type} [ToTyp α] :
          Env (Term (Array α))

          The empty sequence of elements of sort α.

          Equations
          Instances For
            def Cvc.Typed.Term.seqContains [Ω] {α : Type} (s sub : Term (Array α)) :

            Whether s contains sub.

            Equations
            Instances For
              def Cvc.Typed.Term.seqUpdate [Ω] {α : Type} (s : Term (Array α)) (idx : Term Int) (repl : Term (Array α)) :
              Env (Term (Array α))

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

              Equations
              Instances For
                def Cvc.Typed.Term.seqAt [Ω] {α : Type} (s : Term (Array α)) (idx : Term Int) :
                Env (Term (Array α))

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

                Equations
                Instances For
                  def Cvc.Typed.Term.seqExtract [Ω] {α : Type} (s : Term (Array α)) (idx len : Term Int) :
                  Env (Term (Array α))

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

                  Equations
                  Instances For
                    def Cvc.Typed.Term.seqIndexof [Ω] {α : Type} (s sub : Term (Array α)) (start : Term Int) :

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

                    Equations
                    Instances For
                      def Cvc.Typed.Term.seqReplaceAll [Ω] {α : Type} (s pat repl : Term (Array α)) :
                      Env (Term (Array α))

                      Replaces every occurrence of a sub-sequence.

                      Equations
                      Instances For
                        def Cvc.Typed.Term.seqUnit [Ω] {α : Type} (elm : Term α) :
                        Env (Term (Array α))

                        The one-element sequence.

                        Equations
                        Instances For
                          def Cvc.Typed.Term.seqPrefix [Ω] {α : Type} (pre s : Term (Array α)) :

                          Whether pre is a prefix of s.

                          Equations
                          Instances For
                            def Cvc.Typed.Term.seqConcatN [Ω] {α : Type} (terms : Terms (Array α)) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :
                            Env (Term (Array α))

                            seqConcat over two or more terms.

                            Equations
                            Instances For
                              def Cvc.Typed.Term.seqNth [Ω] {α : Type} (s : Term (Array α)) (idx : Term Int) :
                              Env (Term α)

                              The element at idx; unspecified out of bounds.

                              Equations
                              Instances For
                                def Cvc.Typed.Term.seqLength [Ω] {α : Type} (s : Term (Array α)) :

                                Length.

                                Equations
                                Instances For

                                  Seq's operators with a result of sort Int.

                                  Instances For
                                    inductive Cvc.Typed.View.Seq.OnAny [Ω] (β : Type) [ToTyp β] :

                                    Seq's operators whose result's sort is a type variable.

                                    Instances For
                                      inductive Cvc.Typed.View.Seq.OnSeq [Ω] (γ : Type) [ToTyp γ] :

                                      Seq's operators with a result of sort Seq.

                                      Instances For
                                        def Cvc.Typed.View.Seq.of [Ω] (τ : Typ) (t : Term τ.Denote) :

                                        Takes a term apart one level, at its sort, if Seq owns its operator and the term's sort fits it.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          inductive Cvc.Typed.View.Seq [Ω] :
                                          Typ → Type

                                          Seq's operators, taken apart one level, indexed by the sort each produces.

                                          Instances For

                                            Seq's operators with a result of sort Bool.

                                            Instances For

                                              Values #

                                              def Cvc.Typed.Term.isSeqValue [Ω] {α : Type} (term : Term (Array α)) :

                                              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.Typed.Term.getSeqValue [Ω] {α : Type} [TermToValue α] (term : Term (Array α)) :
                                                Env (Array α)

                                                The elements a constant sequence term denotes.

                                                Only a sequence value in cvc5's normal form, such as a model's answer, is accepted: a term built by mkSeqValue is not one.

                                                Equations
                                                Instances For
                                                  def Cvc.Typed.Term.getSeqValueOf [Ω] (α : Type) [TermToValue α] (term : Term (Array α)) :
                                                  Env (Array α)

                                                  The elements a constant sequence term denotes.

                                                  Only a sequence value in cvc5's normal form, such as a model's answer, is accepted: a term built by mkSeqValue is not one.

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

                                                    The sequence term denoting an array of values.

                                                    Equations
                                                    Instances For