Fixpoint3.Ast.ExecutableRam
Type Aliases
type alias ConstWrites = Vector[(Int32, Int32, Int64)]
SourceConstWrites describes constants used for queries and the position they should be
written to. Explicitly for (id1, id2, val) we have that
searchEnv[id1][id2] = val.
They come from rules with constants like Head(x):- Body(4, x). We would here
a ConstWrite of Vector#{(idOfBody, 0, 4)}.
type alias Facts[r: Eff] = Map[RelSym, BPlusTree[Vector[Int64], Boxed, r]]
SourceThe extensible database (EDB) of a program.
type alias WriteTuple = (Int32, Int32, Int32)
SourceWriteTuple describes where variables that become bound for a context-specified RowVar
are used later. Explicitly for (indexInFrom, indexTo, indexInTo) we have that for
the context-specified RowVar, rv, write searchEnv[indexTo][indexInTo] = rv[indexInFrom].
They come from rules with variables like Head(x):- Body1(x), Body2(y, x), since x is used
twice. We would here have a WriteTuple of Vector#{(0, idOfBody2, 1)} for Body1.
This should be read as: The first value of Body1 should be saved as idOfBody2's
(the position of Body2) second value.