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

Bug in forgetting with letin #58

Open
tlringer opened this issue Jun 14, 2019 · 0 comments
Open

Bug in forgetting with letin #58

tlringer opened this issue Jun 14, 2019 · 0 comments
Labels
bug Something isn't working

Comments

@tlringer
Copy link
Collaborator

This fails:

Definition append_vect (A : Type) (pv1 : sigT (vector A)) (pv2 : sigT (vector A)) :=
  let pv := append_vect_inner A pv1 pv2 in
  existT _ (projT1 pv) (projT2 pv).

Lift list vector in append as append_vect_lifted.

While this succeeds:

Definition append_vect (A : Type) (pv1 : sigT (vector A)) (pv2 : sigT (vector A)) :=
  existT _ (projT1 (append_vect_inner A pv1 pv2 )) (projT2 (append_vect_inner A pv1 pv2 )).

Lift list vector in append as append_vect_lifted.

Since we get an intermediate (vector A) in an unexpected place even though it eventually goes away. We should support this somehow. Forgetting in general is not very useful when going along the equivalence we have, honestly; would be better to use the other equivalence for this.

@tlringer tlringer added the bug Something isn't working label Jun 14, 2019
tlringer added a commit that referenced this issue Jun 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant