uwplse / pumpkin-pi

An extension to PUMPKIN PATCH with support for proof repair across type equivalences.
MIT License
49 stars 9 forks source link

Improve automatically generated type for retraction #50

Open tlringer opened 5 years ago

tlringer commented 5 years ago

The automatically generated type is, for example:

: forall (A : Type) (v : {H : nat & vector A H}),
      (fun H : {H : nat & vector A H} => orn_list_vector A (orn_list_vector_inv A H) = H) v

We want, for example:

: forall (A : Type) (v : {H : nat & vector A H}),
    orn_list_vector A (orn_list_vector_inv A v) = v

We can pass this type to Coq. While we're at it, we can generate the section type (which Coq figures out fine) and pass it to Coq too, just so that we have an extra validation step.