Skip to content

Isabelle Translation #3514

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

Merged
merged 271 commits into from
May 19, 2025
Merged

Isabelle Translation #3514

merged 271 commits into from
May 19, 2025

Conversation

BookWood7th
Copy link
Contributor

@BookWood7th BookWood7th commented Sep 5, 2024

Intended Change

Adds a plugin, which allows the user to automatically translate a KeY sequent to an Isabelle theory and run parts of the automation of Isabelle on the translation. As presented at the KeY Symposium 2024

This broadens the automated toolset of KeY users, which allows for more automated proofs.

Type of pull request

  • Refactoring (behaviour should not change or only minimally change)
  • New feature (non-breaking change which adds functionality)
  • There are changes to the (Java) code

Ensuring quality

Additional information and contact(s)

Thesis containing additional information (https://publikationen.bibliothek.kit.edu/1000176239)

The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.

BookWood7th and others added 30 commits March 5, 2024 14:08
fixed bugs in FieldHandler SortDependingHandler
Removed faulty arr function translation
Translates sorts without using illegal chars
also handling exceptions from IsabelleMasterHandler
…. Also add types to sortdependingfunction references
@WolframPfeifer
Copy link
Member

@BookWood7th What is the state of this PR? It is still marked as Draft, and out of date with main. If I remember correctly, it should be nearly main-ready. What is still missing?

@BookWood7th
Copy link
Contributor Author

I am currently updating the branch and applying a workaround for the automation features. Isabelle doesn't always manage to close all instances of the "e" prover it opened during sledgehammering, which causes a buildup of eprover instances running in the background. For now removing this prover from the sledgehammer toolkit should still leave the user with ample reasoning power via the other provers, namely cvc4 verit z3 spass vampire zipperposition.
There are also some minor visual bugs, where the countdown reaches negative numbers for proof searches and the current proof search is not shown as interrupted, but just stops counting down its remaining time.
The extension otherwise remains functional.

@BookWood7th
Copy link
Contributor Author

There is also still the somewhat strange Git behavior in this PR. The history suggests I deleted the KeYProject main branch. Should this be a new PR or should it be ignored?

@BookWood7th BookWood7th marked this pull request as ready for review February 13, 2025 08:57
@WolframPfeifer WolframPfeifer requested a review from mi-ki February 27, 2025 13:29
@WolframPfeifer WolframPfeifer added GUI Feature New feature or request Java Pull requests that update Java code External Solvers Additional Solvers such as (SMT, Isabelle, ... labels Feb 27, 2025
Copy link
Member

@WolframPfeifer WolframPfeifer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this nice addition to KeY!

I have only two minor points:

  1. There are some classes (e.g., ProofApplyUserAction) which have a very generic name, but are Isabelle-specific. Can you please adapt the names?
    (For the handlers, I think it is ok since this way it is immediately visible that they follow the same structure as the SMT handlers.)

  2. Bug #3601 also exists for Isabelle, it should be easy to fix, I suggested an idea.

@WolframPfeifer WolframPfeifer added the Reviewer Feedback Feedback from the review needs to be addressed label May 14, 2025
@WolframPfeifer WolframPfeifer enabled auto-merge May 19, 2025 11:31
Copy link
Member

@WolframPfeifer WolframPfeifer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the undo bug! There is an ongoing discussion on how to best implement the undo operation in #3606, but I think this is a separate point. Since everything works here, it should be merged now.

@WolframPfeifer WolframPfeifer added this pull request to the merge queue May 19, 2025
Merged via the queue into KeYProject:main with commit d02dc34 May 19, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
External Solvers Additional Solvers such as (SMT, Isabelle, ... Feature New feature or request GUI Java Pull requests that update Java code Reviewer Feedback Feedback from the review needs to be addressed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants