Generated Seq constructors, sort-erased #
seqConcat over two or more terms.
Equations
- Cvc.Untyped.Term.seqConcatN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_CONCAT terms
Instances For
Replaces every occurrence of a sub-sequence.
Equations
- s.seqReplaceAll pat repl = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_REPLACE_ALL #[s, pat, repl]
Instances For
Replaces the first occurrence of a sub-sequence.
Equations
- s.seqReplace pat repl = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_REPLACE #[s, pat, repl]
Instances For
The one-element sequence at an index, or the empty sequence if out of bounds.
Equations
- s.seqAt idx = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_AT #[s, idx]
Instances For
Index of the first occurrence of sub in s at or after start, or -1.
Equations
- s.seqIndexof sub start = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_INDEXOF #[s, sub, start]
Instances For
The empty sequence of elements of sort α.
Equations
- Cvc.Untyped.Term.mkEmptySeq α = do let builtSrt ← pure α Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkEmptySequence builtSrt
Instances For
The sub-sequence of length len starting at idx; empty when out of range.
Equations
- s.seqExtract idx len = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_EXTRACT #[s, idx, len]
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
- s.seqNth idx = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_NTH #[s, idx]
Instances For
Whether suf is a suffix of s.
Equations
- suf.seqSuffix s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_SUFFIX #[suf, s]
Instances For
Reversal.
Equations
- s.seqRev = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_REV #[s]
Instances For
Length.
Equations
- s.seqLength = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_LENGTH #[s]
Instances For
Overwrites s from idx with repl, keeping its length; s if idx is out of range.
Equations
- s.seqUpdate idx repl = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_UPDATE #[s, idx, repl]
Instances For
Concatenation.
Equations
- lft.seqConcat rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_CONCAT #[lft, rgt]
Instances For
Whether pre is a prefix of s.
Equations
- pre.seqPrefix s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_PREFIX #[pre, s]
Instances For
Whether s contains sub.
Equations
- s.seqContains sub = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_CONTAINS #[s, sub]
Instances For
The one-element sequence.
Equations
- elm.seqUnit = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SEQ_UNIT #[elm]
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.
kidsholds 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
lenstarting atidx; empty when out of range. - seqUpdate
[Ω]
(s idx repl : Term)
: View.Seq
Overwrites
sfromidxwithrepl, keeping its length;sifidxis out of range. - seqIndexof
[Ω]
(s sub start : Term)
: View.Seq
Index of the first occurrence of
subinsat or afterstart, 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
scontainssub. - seqPrefix
[Ω]
(pre s : Term)
: View.Seq
Whether
preis a prefix ofs. - seqSuffix
[Ω]
(suf s : Term)
: View.Seq
Whether
sufis a suffix ofs.
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
- term.isSeqValue = (Cvc.Untyped.Term.toUnsafe✝ term).isSequenceValue
Instances For
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.
Instances For
The sequence term denoting an array of values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Cvc.Untyped.Term.instValueToTermArrayOfToTyp = { valueToTerm := fun [Cvc.Ω] => Cvc.Untyped.Term.mkSeqValue }
Equations
- Cvc.Untyped.Term.instTermToValueArray = { termToValue := fun [Cvc.Ω] => Cvc.Untyped.Term.getSeqValue }