IntensionalEquality - coq/coq GitHub Wiki
Intensional Equality
Why Have Intensional Equality
Suppose you create a countable data type of recursive functions, RecursiveFunction
, along with some execution function exec : forall (rf:RecursiveFunction) (input:N) (steps:N) : option N
, then you could add an axiom
reflect : forall (f:N -> N),
{rf:RecursiveFunction
| forall (n m:N) {(exec rf n m)=Some (f n)}+{(exec rf n m)=None}
During ProgramExtraction this function could be mapped to a function satisfying this signature. This might be a useful thing to do.
I think that if Coq had extensional equality of functions, such an axiom could not be mapped to any function during program extraction.