hellas-ai / hellas-ai/catena-lang

Interleaving elaboration's `expose_boundary_tensor` is insufficiently general

Open
#7 0 comments 0 reactions 0 assignees View on GitHub
core
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.