[PRL] polyadic, unordered binders
Dave Herman
dherman at ccs.neu.edu
Fri Oct 10 15:11:03 EDT 2008
Imagine a language with a polyadic binding construct where you could
permute the bindings without changing its meaning. Say, a parallel-let form:
(let/par ((x1 e1) ... (xn en)) e)
Then it seems the alpha-equivalence relation would hold up to permuting
bindings:
pi * (x_i ...) = (x_j ...) (z_j ...) fresh
forall j . e_j == e'_j
e[z_j/x_j, ...] == e'[z_j/y_j, ...]
------------------------------------------------------------
(let/par ((x_i e_i) ...) e) == (let/par ((y_j e'_j) ...) e')
This should be read as existentially positing a permutation `pi' of the
bindings on the left-hand side to unify with the bindings of the
right-hand side. It's simple enough to specify, although it's a royal
pain to implement efficiently, i.e. to avoid comparing n! permutations
of bindings.
This seems natural but I've never seen it before, since polyadic binders
are usually order-sensitive. Does anyone know of a precedent for this
kind of thing?
Thanks,
Dave
More information about the PRL
mailing list