Skip to content

feat: De-Bruijn Style Nameless Bound Variables#79

Open
jrosain wants to merge 30 commits intoGoelandProver:masterfrom
jrosain:anonymous-de-bruijn
Open

feat: De-Bruijn Style Nameless Bound Variables#79
jrosain wants to merge 30 commits intoGoelandProver:masterfrom
jrosain:anonymous-de-bruijn

Conversation

@jrosain
Copy link
Copy Markdown
Member

@jrosain jrosain commented Mar 26, 2026

Description

Simplify internal representation of formulas by using De Bruijn's variables (i.e., bound variables are now integers). It greatly simplifies the operations we want to do on formulas and terms, e.g., instantiation and substitution, as well as the representation of quantifiers (that do not have multiple variables anymore).

I've also tried to remove unused stuff that complexified the base structure of terms and formulas. I couldn't get rid of the formula field in the metavariables though. I've also factorized the operations on n-ari and binary formulas, like it has been done for the quantifiers. Note that as we don't preserve the names anymore, a meta is always called Mi where i is its unique index. A bound variable is called Xi.

I've temporarily disabled the cache of the metavariables, introducing hashconsing will fix this.

PR dependencies

Test-suite update

Updated the expected output of the .out files with the de bruijn bound variables.

jrosain and others added 30 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 26, 2026
@jrosain jrosain added kind:enhancement New feature or upgrade of a previous one part:ast kind:cleanup Refactoring or improvement of existing code request:ci Requests a CI run from the workflow labels Mar 26, 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 26, 2026
@jrosain jrosain added the needs:rebase When the PR needs to get rebased in order to get merged label Apr 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:cleanup Refactoring or improvement of existing code kind:enhancement New feature or upgrade of a previous one needs:rebase When the PR needs to get rebased in order to get merged part:ast

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant