Skip to content

Definitional Skolem constants - #3960

Merged
Drodt merged 2 commits into
mainfrom
bubel/definitional-skolems-on-main
Aug 17, 2026
Merged

Definitional Skolem constants#3960
Drodt merged 2 commits into
mainfrom
bubel/definitional-skolems-on-main

Conversation

@unp1

@unp1 unp1 commented Aug 12, 2026

Copy link
Copy Markdown
Member

As mentioned at the devloper meeting. This is the first PR of three cleaning up the AI supported work.

Make definitional Skolem constants aware of their introduction time (removes need for caches) and
formalizes the notion of definitional formerly known as small constants. Definitional Skolem constants
are smaller then most terms in termordering.

Speeds up Skolem heavy proof by up to 10% bet, 5% on the whole runAllFunProof collection.

Type of pull request

  • Refactoring (behaviour should not change or only minimally change)

Ensuring quality

  • I made sure that introduced/changed code is well documented (javadoc and inline comments).
  • I have tested the feature as follows: Several RAP runs, unit tests
  • I have checked that runtime performance has not deteriorated. It improved.

Additional information and contact(s)

Created with AI tooling support

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

@unp1 unp1 self-assigned this Aug 12, 2026
@unp1
unp1 force-pushed the bubel/definitional-skolems-on-main branch from 74e21a5 to 1175707 Compare August 13, 2026 21:28
…on time from the constant itself

Make definitional Skolem constants aware of their introduction time (removes need for caches) and
formalizes the notion of definitional formerly known as small constants. Definitional Skolem constants
are smaller then most terms in termordering.  A PR with a rework of term orderings is coming

"A skolem constant was created while a taclet application was instantiated, so its name and
its introduction time depended on when the strategy considered the application, not on when
the proof used it, and the introduction time had to be remembered in a cache of its own. The
constant now carries its kind and the number of rule applications the goal had performed
when it was created, and the goal creates the constants when it applies the rule. The
function kind also distinguishes the constants a definition introduces, which the term
ordering can then place below the term they name."

(created with AI tooling support)
@unp1
unp1 force-pushed the bubel/definitional-skolems-on-main branch from 1175707 to ad575b7 Compare August 14, 2026 12:12

@Drodt Drodt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@Drodt
Drodt added this pull request to the merge queue Aug 17, 2026
Merged via the queue into main with commit 63543e1 Aug 17, 2026
39 checks passed
@Drodt
Drodt deleted the bubel/definitional-skolems-on-main branch August 17, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants