Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback from Yves Bertot #8

Open
tlringer opened this issue Sep 25, 2020 · 0 comments
Open

Feedback from Yves Bertot #8

tlringer opened this issue Sep 25, 2020 · 0 comments

Comments

@tlringer
Copy link
Contributor

" - In QED-at-large, you seem to state that Isabelle/HOL does not
support partial functions. In a recent assignment where I tried to
understand the support of inductive predicates in both HOL based and
type-theory-based provers, I noted some work by Krauss "Partial and
Nested Recursive Function Definitions in Higher-order Logic" which
contradicts this assertion. Here is a very short summary:

  • you can describe a recursive function, potentially non-terminating,
    as a function that returns an arbitrary value when not terminating.

  • All theorems about the behavior of this function are prefixed by
    the condition that the input must be in the domain of definition.

  • The domain definition itself can be described as an inductive predicate.

  • In practice, the function is first described as an inductive
    relation: R_f(x, y) that holds exactly when f(x) terminates and f(x) =
    y. The HOL logic in Isabelle contains the "Hilbert" choice operator,
    which makes it possible to construct the final value f(x) from the
    relation R_f.

It is probably too late to correct the paper, but it is useful to know
that Isabelle has a powerful tool to handle potentially non-terminating
recursive functions in a comfortable way (in some sense, it is more
comfortable that what is available in plain Coq, because you can write
f(x) even before you have proved that recursion terminates on x)."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant