Hi Sebastian

Sebastian Hanowski wrote:

    (  f : Fin (suc m) -> Fin (suc n)   !
let  !-----------------------------------!
    ! restrict _m _n f : Fin m -> Fin n )

Should you be able to write a function with this type? I can certainly write a function from Fin 2 to Fin 1, but I shouldn't be able to extract a function from Fin 1 to Fin 0. Unless my initial function is injective, of course.

I fear max-or-weak may not be terribly helpful here: my suspicion (not having prepared a solution) is that viewing things as i or (thin i j) might help. It might also be useful to try to write down a datatype capturing concretely only the injective functions, even if you make no use of it.

I think I'll have a play with this.

All the best

Conor

Reply via email to