Skip to content

Definitional Skolem constants - #3960

Open
unp1 wants to merge 1 commit into
mainfrom
bubel/definitional-skolems-on-main
Open

Definitional Skolem constants#3960
unp1 wants to merge 1 commit 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
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.

1 participant