Higher-Order indexingΒΆ
Ideas for indexing of HOTerm.t. We draw some ideas from fingerprint indexing
and mostly path indexing.
The basic idea currently is to extend path indexing so that it can deal with binders, extensible records and mainly multisets. To do so, we use an extended representation of positions in terms, with a non-deterministic variant:
Leftgo to the left part of an application:(l @ r).left = l.Rightgo to the right part of an application:(l @ r).right = r.Record_field of stringaccess the given record field, as in{x:t | _}.x = t.Record_restaccess the rest of the extensible record. Basically{_ | R}.rest = R.multiset of intaccess some element of a multiset that hasnelements. Here the choice is non-deterministic, and insertion and retrieval operations will need to take it into account.