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

Move Nat translation into a proof-producing preprocessing tactic #27

Open
Vtec234 opened this issue Jun 24, 2022 · 1 comment
Open

Move Nat translation into a proof-producing preprocessing tactic #27

Vtec234 opened this issue Jun 24, 2022 · 1 comment

Comments

@Vtec234
Copy link
Collaborator

Vtec234 commented Jun 24, 2022

We currently translate Nat-based expressions in the smt tactic as Ints greater than zero. However this translation is not proof-producing, and it will cause issues for proof reconstruction when the solver has proved something about a positive integer, but the Lean goal is still about natural numbers. We agreed that the way to go here is to have a separate smt_nat_to_int (or something) preprocessing tactic which provably rewrites the goal to talk about positive integers. After running it, the goal would only include integers at which point the core smt translation can just raise an error whenever it encounters a Nat.

See here for a usage of the more general Transfer tactic in Isabelle/HOL.

@Vtec234
Copy link
Collaborator Author

Vtec234 commented Oct 4, 2022

There is a mathlib tactic zify which does a similar thing, although it seems to use casts rather than introducing explicit conditions.

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