You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains a few files giving parametricity proofs for inductive types like nat, bool, option, but also equality and vectors for example. It looks like we first define the individual fields (i.e., map from nat to nat, then map_in_R, etc.), then a proof of equivalence between the relation and its symmetrisation:
R_sym : forall x x', sym_rel R x' x <~> R x x'
before actually building the full record at level $(m, n)$ by taking $m$ fields for R and $n$ fields for sym_rel R, then glueing both subrecords using R_sym so that the second one typechecks as the contravariant field of the Param record.
Can this symmetry proof be made automatically just from the definition of R, even when R is non-trivial and provided by the user?
Can the whole process be automated so that the user just has to input the individual fields and Trocq generates all the possible records (possibly on the fly during the translation)?
The text was updated successfully, but these errors were encountered:
This repository contains a few files giving parametricity proofs for inductive types like
nat
,bool
,option
, but also equality and vectors for example. It looks like we first define the individual fields (i.e.,map
fromnat
tonat
, thenmap_in_R
, etc.), then a proof of equivalence between the relation and its symmetrisation:before actually building the full record at level$(m, n)$ by taking $m$ fields for $n$ fields for
R
andsym_rel R
, then glueing both subrecords usingR_sym
so that the second one typechecks as thecontravariant
field of theParam
record.Can this symmetry proof be made automatically just from the definition of
R
, even whenR
is non-trivial and provided by the user?Can the whole process be automated so that the user just has to input the individual fields and Trocq generates all the possible records (possibly on the fly during the translation)?
The text was updated successfully, but these errors were encountered: