Sequences over nullables, sort-erased #
One lifted constructor per liftable operator, <id>?, each answering none unless every argument
is some.
The sequence term becomes nullable, not its elements: (Nullable (Seq T)), not
(Seq (Nullable T)).
seqContains lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqContains? sub = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_CONTAINS #[s, sub]
Instances For
seqExtract lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqExtract? idx len = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_EXTRACT #[s, idx, len]
Instances For
seqConcat? over two or more terms.
Equations
- Cvc.Untyped.Term.seqConcatN? terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_CONCAT terms
Instances For
seqPrefix lifted over nullables, strictly: none unless every argument is some.
Equations
- pre.seqPrefix? s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_PREFIX #[pre, s]
Instances For
seqLength lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqLength? = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_LENGTH #[s]
Instances For
seqIndexof lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqIndexof? sub start = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_INDEXOF #[s, sub, start]
Instances For
seqRev lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqRev? = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_REV #[s]
Instances For
seqUnit lifted over nullables, strictly: none unless every argument is some.
Equations
- elm.seqUnit? = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_UNIT #[elm]
Instances For
seqConcat lifted over nullables, strictly: none unless every argument is some.
Equations
- lft.seqConcat? rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_CONCAT #[lft, rgt]
Instances For
seqSuffix lifted over nullables, strictly: none unless every argument is some.
Equations
- suf.seqSuffix? s = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_SUFFIX #[suf, s]
Instances For
seqNth lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqNth? idx = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_NTH #[s, idx]
Instances For
seqAt lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqAt? idx = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_AT #[s, idx]
Instances For
seqReplaceAll lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqReplaceAll? pat repl = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_REPLACE_ALL #[s, pat, repl]
Instances For
seqUpdate lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqUpdate? idx repl = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_UPDATE #[s, idx, repl]
Instances For
seqReplace lifted over nullables, strictly: none unless every argument is some.
Equations
- s.seqReplace? pat repl = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkNullableLift cvc5.Kind.SEQ_REPLACE #[s, pat, repl]