IntensionalEquality
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.
To the extent possible under law, the contributors of “Cocorico!, the Coq wiki” have waived all copyright and related or neighboring rights to their contributions.
By contributing to Cocorico!, the Coq wiki, you agree that you hold the copyright and you agree to license your contribution under the CC0 license or you agree that you have permission to distribute your contribution under the CC0 license.