aboutsummaryrefslogtreecommitdiffstats
path: root/docs/modes.org
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/modes.org11
1 files changed, 6 insertions, 5 deletions
diff --git a/docs/modes.org b/docs/modes.org
index 1cd5905..2da300a 100644
--- a/docs/modes.org
+++ b/docs/modes.org
@@ -135,10 +135,11 @@ executes anything, and records them on each relation it derives.
- =Base r= has the modes of =r=.
- =Project (p, A)= keeps the modes of =p= whose =bound= lies within
=A=, with the same =yields=.
-- =Where (Base r, b)=, when =r= offers an index on an attribute =b=
- binds, has the modes of =r= with the attributes of =b= taken out of
- each =bound=, by =Mode.given=. The binding supplies their values, and
- the index produces the tuples, so ={a; Finite}= becomes ={∅; Finite}=.
+- =Where (Base r, b)=, when =r= offers an index on an attribute =a= that
+ =b= binds, has the modes of =r= with =a= taken out of each =bound=, by
+ =Mode.given=. The binding supplies its value, and the index produces
+ the tuples, so ={a; Finite}= becomes ={∅; Finite}=. The other attributes
+ of =b= only filter what the index produces, so they stay bound.
- Any other =Where (p, b)= keeps the modes of =p=, since it can only
filter what =p= enumerates.
@@ -171,7 +172,7 @@ with =undecidable-membership=.
* Indexes
A substantial relation keeps an index on each attribute =a=, a tree
-keyed by the encoded value of =a= and the hash of the tuple, and each
+keyed by the hash of the value of =a= and the hash of the tuple, and each
adds the mode ={a; Finite}=. A projection that keeps =a= keeps that mode,
and a FOL =Where= that binds =a= reads only the matching entries.
[[file:partial-bindings.org][Partial bindings]] describes how the indexes are stored, read and built.