Skip to content

fix: deskolemization algorithm#70

Open
jrosain wants to merge 23 commits intoGoelandProver:masterfrom
jrosain:fix-deskolemization
Open

fix: deskolemization algorithm#70
jrosain wants to merge 23 commits intoGoelandProver:masterfrom
jrosain:fix-deskolemization

Conversation

@jrosain
Copy link
Copy Markdown
Member

@jrosain jrosain commented Mar 10, 2026

Bug fix

Closes: #16

Description

Rewrote the deskolemization algorithm to follow the one of the paper. Greatly simplified
the code while doing so, hopefully this is more easily modifiable in the future/more
easily debuggable.

During this process, I added a new type of debug: the interrupt debug. It works as the
others debugs, but instead of printing something, it awaits for the user input. This
probably won't be useful for the main proof search procedure unless we adapt it to
interrupt goroutines etc but for sequential algorithms like deskolemization or a proof
output, it's actually quite handy to be able to follow what the algorithm is doing step by
step and avoid looking at a super long log.

I've also adapted the GS3Sequent to implement a structure of IProof in order to make
the proof outputs more generic by simply taking the IProof instead of only accepting a
GS3Sequent.

I hope I've not broken any output. I've taken the occasion to generalize some common
operations between the Rocq and the TPTP output.

PR dependencies

Test-suite update

  • added % timeout command to a test file (followed by seconds). The test fails if the time is reached.
  • the file running the test-suite now detect errors during proof search or proof output.
  • test-suite/bugs/bug_16-1.p: previous problem that made deskolemization loop infinitely.
  • test-suite/bugs/bug_16-2.p: the same kind of problem but for preinner Skolemization.
  • test-suite/bugs/bug_46-n.p: all the problems that failed in inner Skolemization following the optional return of Lib.ListIndexOf.
  • test-suite/bugs_no_chk/bug_46-4.p: this test actually also triggers a substitution bug (most of the time) which makes it impossible to have it formally in the test suite. I still put it here so that we can move it back to the bugs folder in the future.
  • test-suite/bugs/bug_70-1/2.p: tests the output with a quantified variable that is not used in the formula.
  • test-suite/bugs/bug_70-3.p: tests the output with a reintroduction rule.

jrosain and others added 21 commits August 29, 2025 15:22
* non destructive search **does not** manage typed search, only destructive search does
* dmt might be incompatible with typed search
@github-actions github-actions bot added the needs:ci Needs a CI run before merging label Mar 10, 2026
@jrosain jrosain marked this pull request as draft March 10, 2026 20:22
@jrosain jrosain force-pushed the fix-deskolemization branch 7 times, most recently from af9ca35 to 35ef441 Compare March 11, 2026 15:24
@jrosain jrosain force-pushed the fix-deskolemization branch from 35ef441 to 00f7d73 Compare March 11, 2026 15:54
@jrosain jrosain force-pushed the fix-deskolemization branch from 7f4de60 to e2d8d75 Compare March 12, 2026 18:23
@jrosain jrosain marked this pull request as ready for review March 12, 2026 18:24
@jrosain jrosain added kind:cleanup Refactoring or improvement of existing code kind:fix The PR fixes a bug has:other-pr-dependency This PR cannot be merged before another PR (the maintainer should specify the dependency(ies)) part:rocq-output About the certified output in Rocq part:proof-output About the vanilla proof output (in custom format) part:lambdapi-output request:ci Requests a CI run from the workflow labels Mar 12, 2026
@github-actions github-actions bot removed needs:ci Needs a CI run before merging request:ci Requests a CI run from the workflow labels Mar 12, 2026
@jrosain jrosain added the needs:rebase When the PR needs to get rebased in order to get merged label Mar 18, 2026
@jrosain jrosain added this to the 1.2 milestone Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

has:other-pr-dependency This PR cannot be merged before another PR (the maintainer should specify the dependency(ies)) kind:cleanup Refactoring or improvement of existing code kind:fix The PR fixes a bug needs:rebase When the PR needs to get rebased in order to get merged part:lambdapi-output part:proof-output About the vanilla proof output (in custom format) part:rocq-output About the certified output in Rocq

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GS3 failure: tried to apply a missing hypothesis when using -inner and -preinner flags

1 participant