Sequences
- Introduction
- Creating Sequences
- The Formal Sequence Constructor
- The Enumerated Sequence Constructor
[ ]: Null → ESeqEnum
[ U | ]: Str → SeqEnum
[ e₁, e₂, ..., eₙ ]: Elt, ..., Elt → SeqEnum
[ U | e₁, e₂, ..., eₘ ]: Str, Elt, ..., Elt → SeqEnum
[ e(x) : x in E | P(x) ]
[ U | e(x) : x in E | P(x) ]
[ e(x₁,...,xₖ) : x₁ in E₁, ..., xₖ in Eₖ | P(x₁, ..., xₖ) ]
[ U | e(x₁,...,xₖ) : x₁ in E₁, ..., xₖ in Eₖ | P(x₁, ..., xₖ) ]
- The Arithmetic Progression Constructors
- Literal Sequences
- Power Sequences
- Operators on Sequences
- Access Functions
- Selection Operators on Enumerated Sequences
S[I]: SeqEnum, [RngIntElt] → SeqEnum
Minimum(S): SeqEnum → Elt, RngIntElt
Min(S): SeqEnum → Elt, RngIntElt
Maximum(S): SeqEnum → Elt, RngIntElt
Max(S): SeqEnum → Elt, RngIntElt
Index(S, x): SeqEnum, Elt → RngIntElt
Index(S, x, f): SeqEnum, Elt, RngIntElt → RngIntElt
Position(S, x): SeqEnum, Elt → RngIntElt
Position(S, x, f): SeqEnum, Elt, RngIntElt → RngIntElt
Representative(R): SeqEnum → Elt
Rep(R): SeqEnum → Elt
Random(R): SeqEnum → Elt
Explode(R): SeqEnum → List
Eltseq(R): SeqEnum → SeqEnum
- Modifying Enumerated Sequences
Append(~S, x): SeqEnum, Elt
Append(S, x): SeqEnum, Elt → SeqEnum
Exclude(~S, x): SeqEnum, Elt
Exclude(S, x): SeqEnum, Elt → SeqEnum
Include(~S, x): SeqEnum, Elt
Include(S, x): SeqEnum, Elt → SeqEnum
Insert(~S, i, x): SeqEnum, RngIntElt, Elt
Insert(S, i, x): SeqEnum, RngIntElt, Elt → SeqEnum
Insert(~S, k, m, T): SeqEnum, RngIntElt, RngIntElt, SeqEnum
Insert(S, k, m, T): SeqEnum, RngIntElt, RngIntElt, SeqEnum → SeqEnum
Prune(~S): SeqEnum
Prune(S): SeqEnum → SeqEnum
Remove(~S, i): SeqEnum, RngIntElt
Remove(S, i): SeqEnum, RngIntElt → SeqEnum
Reverse(~S): SeqEnum
Reverse(S): SeqEnum → SeqEnum
Rotate(~S, p): SeqEnum, RngIntElt
Rotate(S, p): SeqEnum, RngIntElt → SeqEnum
Sort(~S): SeqEnum
Sort(S): SeqEnum → SeqEnum
Sort(~S, C): SeqEnum, UserProgram
Sort(~S, C, ~p): SeqEnum, UserProgram, GrpPermElt
Sort(S, C): SeqEnum, UserProgram → SeqEnum
ParallelSort(~S, ~T): SeqEnum, SeqEnum
Undefine(~S, i): SeqEnum, RngIntElt
Undefine(S, i): SeqEnum, RngIntElt → SeqEnum
ChangeUniverse(S, V): SeqEnum, Str
ChangeUniverse(S, V): SeqEnum, Str → SeqEnum
CanChangeUniverse(S, V): SeqEnum, Str → Bool, SeqEnum
Example: Farey
- Creating New Enumerated Sequences from Existing Ones
S cat T: SeqEnum, SeqEnum → SeqEnum
S cat:= T: SeqEnum, SeqEnum
Partition(S, p): SeqEnum, RngIntElt → SeqEnum(SeqEnum)
Partition(S, P): SeqEnum, [RngIntElt] → SeqEnum(SeqEnum)
Setseq(S): SetEnum → SeqEnum
SetToSequence(S): SetEnum → SeqEnum
Seqset(S): SeqEnum → SetEnum
SequenceToSet(S): SeqEnum → SetEnum
Example: Egyptian Fractions
- Operations on Sequences of Booleans
And(S, T): [ BoolElt ], [ BoolElt ] → [BoolElt]
And(~S, T): [ BoolElt ], [ BoolElt ]
Or(S, T): [ BoolElt ], [ BoolElt ] → [ BoolElt ]
Or(~S, T): [ BoolElt ], [ BoolElt ]
Xor(S, T): [ BoolElt ], [ BoolElt ] → [ BoolElt ]
Xor(~S, T): [ BoolElt], [ BoolElt ]
Not(S): [ BoolElt ] → [ BoolElt ]
Not(~S): [ BoolElt ]
- Predicates on Sequences
- Recursion, Reduction, and Iteration