flix

0.67.2

Fixpoint3.Phase.Compiler

Definitions

def compile(d: Datalog, db: Map[RelSym, BPlusTree[Vector[Boxed], Boxed, Static]], strat: Map[PredSym, (Int32, Int32)], withProv: Bool): RamProgram Source

Compile the given Datalog program d to RAM. First insert all facts in d into the set of facts. Second compile all rules in d according to the given stratification strat. This means to compile all rules in stratum 0, then stratum 1 and so on. A rule belongs to the same stratum as its head predicate.

def enumerateRules(d: Datalog): Vector[(Int32, Constraint)] Source

Collect all rules in d and assign them a number, deterministically.

def functionalRelSym(arity: Int32): RelSym Source

Functional relations should be treated as Relational, but they do not posses any PredSym, indicated by assigning them -1. functionalRelSym should only be placed in RowLoads. Only Lowering.flix uses the RelSym part and does not use the PredSym.