[TYPES] Encoding of negation
Burak Emir
Burak.Emir at epfl.ch
Tue Aug 21 12:41:15 EDT 2007
Krivine has written about this translation [1] and the mentioned result
appears as theorem 3.2 (without proof). He calls it Goedel's translation and
the paper is about storage operators that are specific to a data type and
serve the purpose of simulating call-by-value in call-by-name.
[1] Jean-Louis Krivine, Operateurs de mise en memoire et traduction de
Goedel, Arch. Math. Logic (1990) 30:241--267, Springer
http://www.springerlink.com/content/t420j01286833044/
Could this be what you were looking for?
cheers,
Burak
On 8/21/07, Philip Wadler <wadler at inf.ed.ac.uk> wrote:
>
> [ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list]
>
> One possible encoding of negation, closely related to the CPS
> translation, is the following:
>
> A* = all Z. A+
>
> X+ = X
> (A -> B)+ = A+ -> B+
> (not A)+ = A+ -> Z
>
> where Z is a fresh type variable that does not appear free in A. I
> conjecture that
>
> A1, ..., An |- B
>
> holds in classical logic iff
>
> A1*, ..., An* |- B*
>
> holds in intuitionistic logic.
>
> Has anyone explored this translation? As an example of its interest,
> I conjecture that A* and (not (not A))* are isomorphic in the
> presence of parametricity; this is certainly true if A contains no
> negations.
>
> Many thanks for any responses. Cheers, -- P
>
>
>
--
Burak Emir
Research Assistant / PhD Candidate
Programming Methods Group
EPFL, 1015 Lausanne, Switzerland
http://lamp.epfl.ch/~emir
More information about the Types-list
mailing list