Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚰 filler-of tactical? #259

Open
cangiuli opened this issue Jul 13, 2021 · 5 comments
Open

🚰 filler-of tactical? #259

cangiuli opened this issue Jul 13, 2021 · 5 comments
Labels
papercut Minor annoyances that would be nice to fix

Comments

@cangiuli
Copy link
Collaborator

(from a discussion with @favonia and @TOTBWF)

We often define operations on paths (such as symm) by composition/coercion to 0 or 1, but as soon as we want to prove any laws about those operations, we have to define and reason about the corresponding filler (symm-filler). @favonia suggested defining a filler-of tactical that returns the filler of any composite, e.g., if foo produces hcom A 0 1 {...} {...}, then filler-of foo produces i => hcom A 0 i {...} {...}.

This is an alternate solution to #179.

@cangiuli cangiuli added the papercut Minor annoyances that would be nice to fix label Jul 13, 2021
@favonia
Copy link
Collaborator

favonia commented Jul 13, 2021

VERY SERIOUS ISSUE: Should the Unicode version be 🚰? (Or maybe ⛽? I like 🚰 more.)

@jonsterling
Copy link
Collaborator

So personally i kind of preferred the other approach from the other ticket, but with that said, i think this is a fine idea that we could implement.

@cangiuli
Copy link
Collaborator Author

What I like about this approach is that we don't need to bind and possibly even export two names for every operation like symm and symm-filler. But both ideas just involve writing a fancy tactic, so there's no reason (except for inconsistent style) not to try both if we have the bandwidth.

@jonsterling
Copy link
Collaborator

jonsterling commented Jul 29, 2021 via email

@cangiuli
Copy link
Collaborator Author

After discussing with @jonsterling, we agreed that the best way to implement this feature is to build on #179.

Suppose we define symm as an hcom 0->1 using the abstract hcom mechanism from #179; then symm A p will compute to fresh-hcom-7 A p 1 where fresh-hcom-7 is an opaque global definition (possibly with some special flag?) that cannot be named by the user. Then we can implement filler-of to turn the above neutral application into i => fresh-hcom-7 A p i.

@favonia favonia changed the title filler-of tactical? 🚰 filler-of tactical? Jul 31, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
papercut Minor annoyances that would be nice to fix
Projects
None yet
Development

No branches or pull requests

3 participants