Add a status section the IR note file

This commit is contained in:
Hassan Abedi 2026-03-30 10:41:21 +02:00
parent 6ba970e55c
commit dc343be7ad

View File

@ -160,6 +160,29 @@ The implemented IR is best understood as a relationalized, flattened theory:
So the IR is not just an AST for queries. It is the bridge from elaborated dependent syntax to a database-shaped form that later evaluation code can consume.
## Status
The IR looks good as a first compiler pass, but not yet as a complete runtime model.
What already looks solid:
- It matches the direction described in the other notes: theories become tables plus laws.
- It already lowers nontrivial dependent structure into a relational form.
- It makes important constraints explicit, especially `foreignKeys` and `total`.
- It gives Geolog a plausible backend-neutral compiled form between elaboration and evaluation.
What still looks missing:
- explicit runtime state for the chase
- fresh witness generation for existential conclusions
- branch or world tracking for disjunction
- equality-class or term-merging machinery
- provenance and scheduling information
So the current IR is best seen as a lowered theory IR, not yet a full chase-runtime IR.
If the project keeps this design, the natural next step is probably a second layer above `FlatTheory` for runtime execution state. That layer would hold current facts, branch identity, fresh-name allocation, equality information, and evaluation metadata.
## Note
`docs/lecture3.tex` has a `Query IR` section header but no content yet, so the code above is currently the most concrete description of the actual intermediate representation.