[Agda] Proving Parametricity?
Brandon Moore
brandon_m_moore at yahoo.com
Mon Jan 24 04:52:13 CET 2011
> Funny you should mention this, I've been emailing Adam on this very topic...
>
> My back-of-envelope thought is that a form of naturality might do the
> trick, that is rather than defining exp to be:
>
> exp = ∀ var → Exp var
>
> we define it as:
>
> exp = ∃ λ e → ∀ {V W} (φ : V ↠ W) → (⟨Exp⟩ φ (e V) ≣ e W)
>
> where V ↠ W is the type of surjections from V to W, and ⟨Exp⟩ is the
> functorial action of Exp. Code attached.
>
> I don't think this is enough to prove exp_param, but something like it
> might go through.
Have you tried redoing any of Adam's interesting proofs with this definition?
I've written a bit of code that suggests it will be feasible to automate proofs
of the well-formedness condition using reflection, but re-establishing it
for the results of transformations could be difficult.
Brandon
More information about the Agda
mailing list