-
Notifications
You must be signed in to change notification settings - Fork 62
Description
It would be nice to be able to alternate doing text-like transformations using segment and AST-like transformations using term without having to worry about losing information when switching between these two representations. Establishing a true bijection is likely unrealistic due to the inherent permissivity of segment, but we might be able to achieve a weaker goal; something like bijectivity for all segments which are actually possibly to create via edit actions from the empty program. Full bijection isn't really a practical necessity, but given the complexity of the system it would be nice if we can get to a point close enough where a round-tripping property based test would have low enough false positives to be useful.
There are at least four main things we need to get here:
- Preserve secondary in terms via annotations: Secondary in terms #2077 (complete)
- Preserve projectors in terms via a wrapping form: Projector in terms #2078 (complete)
- Perserve tile incompleteness via annotations: Canonical completion #2079 (draft)
- Reduce segment surface area by replacing molds/labels in tiles with an enum (TODO)