hellas-ai / hellas-ai/catena-lang
Interleaving elaboration's `expose_boundary_tensor` is insufficiently general
- Dominant language
- Rust
- Stars
- 2
- Forks
- 1
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 7
Description
Suppose we create a map with type `A + B` in dataflow.
This should be exposed in "control" as a map using the 'ambient tensor' (which uses `+`).
This is what `expose_boundary_tensor` does.
But currently, it is insufficiently general: it uses a simple pattern match on hexprs to find rightmost `+` operations, which are popped.
This fails in examples like below:
```
[i . i] ({a b} +) [j . j]
```
... where the `+` operation is "hidden" by a spider.
To implement this properly, one must interpret the type map as an open hypergraph, then remove `+` operations on the right boundary, replacing them with their sources.
See [here](https://github.com/hellas-ai/catena-lang/pull/4/changes#r3217067463)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at the expose_boundary_tensor entry point and review the linked pull request discussion. Model the type map as an open hypergraph, including the example where the + operation is hidden by a spider. Done means right-boundary + operations are removed and replaced with their sources in cases such as the supplied example.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100