Skip to content
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

Small demodulation improvement #522

Merged

Conversation

mezpusz
Copy link
Contributor

@mezpusz mezpusz commented Feb 12, 2024

Equations such as the following
f(x,f(y,z)) = f(z,f(y,x))
give two identical ways to demodulate, but we index both variants.

Since these equations are by definition incomparable as well, it can hurt
the performance of demodulation a bit as such demodulators are tried twice
in the unsuccessful case.

Experiments show a slight improvement over TPTP-v8.1.2 with -sa discount -t 10:
avg time: 5.13053s (old), 5.11622s (new)
solved: 10852 (old), 10865 (new)

Copy link
Contributor

@MichaelRawson MichaelRawson left a comment

Choose a reason for hiding this comment

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

Nice. Seems like a slam-dunk to me, @quickbeam123.

give two identical ways to demodulate, but we index both variants

Are there any other cases where this idea happens? I couldn't come up with any single-equation cases off the top of my head.

@mezpusz
Copy link
Contributor Author

mezpusz commented Feb 13, 2024

It could also happen in superposition, generating two variants of the same clause, but I haven't really looked at that case...

@easychair
Copy link
Contributor

easychair commented Feb 14, 2024 via email

@selig
Copy link
Contributor

selig commented Feb 14, 2024

For a -sa discount -t 10 experiment, an increase of 15 problems feels like some could fall into standard variability.

I'd be tempted to repeat to see how much falls into variability and whether the same 15 are gained then look at those to confirm they come from this option.

However, the code change seems a net positive without the results; do less work = good.

@mezpusz
Copy link
Contributor Author

mezpusz commented Feb 14, 2024

Yes, I agree that the experiment was far from thorough, I mainly wanted to see that we don't lose proofs and that the proofs are the same (although I think there could be small changes in the proof search due to a code tree or substitution tree being organized in a slightly different way with and without a certain demodulator being indexed).

There are hundreds of benchmarks with e.g. AC-axioms where this makes a difference, but overall in the 25257 benchmarks this averages out.

Let me know if more details are needed.

@quickbeam123
Copy link
Collaborator

I will run my own experiments anyway, will let you know!

@quickbeam123
Copy link
Collaborator

I see around 5 problem improvement on average under shuffling:

8764.7 -> 8769.6

with discount10 and 1000 Mi instruction limit.

Although I still didn't properly work out statistics, I would guess the probability that this makes things worse is actually quite low! ;)

@MichaelRawson MichaelRawson merged commit e897854 into master Feb 15, 2024
1 check passed
@MichaelRawson MichaelRawson deleted the demodulation-dont-index-symmetric-equations-twice branch February 15, 2024 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants