Next Types Are Theorems; Programs Are Proofs 29

Negation

     \f -> \nb -> \a -> nb (f a)
       :: (a -> b) -> (b -> Void) -> (a -> Void)
      \z -> let f  = fst z
                nc = snd z
             in \a -> case f a of 
                       Left b  -> b
                       Right c -> nc c
        :: (a -> Either b c, c -> Void) -> (a -> b)
      \z -> \a -> case fst z a of
                    Left b  -> b
                    Right c -> snd z c
        :: (a -> Either b c, c -> Void) -> (a -> b)

Next Next