vprover / vampire

The Vampire Theorem Prover
https://vprover.github.io/
Other
283 stars 49 forks source link

Removing unused files, dead code. #157

Open MichaelRawson opened 3 years ago

MichaelRawson commented 3 years ago

Some code in Vampire's tree appears to no longer be used. While this is not a problem in itself, it adds to the noise for new contributors and some dead code is still being compiled or even linked (see e.g. PR #153 to remove Lingeling sources). Additionally, changes to interfaces require more effort as code that is no longer used needs fixing.

After some discussion with others, I believe some of the following could be removed:

Credit to @quickbeam123, @ibnyusuf and @selig for identifying some of these. What I'd like from the team is help to identify more unused files or dead code, as well as rescuing files that need to be kept.

Eventually things that are still on the list will be removed by PR. Fear not, however, one of the many virtues of source control is the ability to reanimate code from beyond the grave. Thank you!

quickbeam123 commented 3 years ago

What about the whole API folder?

There is also some mysterious looking ProofSimplifier in Shell.

MichaelRawson commented 3 years ago

Very possibly @quickbeam123! I'm going to chat with Giles Monday about any politics I need to be aware of, then start deleting things in order of least-likely-to-be-wanted first.

ibnyusuf commented 3 years ago

Inferences/InterpretedSimplifier is completed commented out. Perhaps it can be removed.

quickbeam123 commented 3 years ago

Some values in TimeCounterUnit most likely don't occur in the code anymore... Like TC_BDD_CLAUSIFICATION, etc. Could be removed as well!

quickbeam123 commented 3 years ago

There also some code, authored by Ioan, generally guarded by #if GNUMP and thus not compiled currently, which could perhaps be removed.

quickbeam123 commented 3 years ago

Got another one: CTFwSubsAndRes.*

So, transitively, CodeTreeSubsumptionIndex is also unused and maybe some other indices are formally alive but unused because of how IndexManager works.

MichaelRawson commented 3 years ago

@quickbeam123 - good spot, I think @JakobR plans to fix something in this region - perhaps they can comment to see what they need?

JakobR commented 3 years ago

@MichaelRawson feel free to remove CTFwSubsAndRes; I will revive it from the history in case I need it later.

It would be nice if we could keep CodeTreeSubsumptionIndex and ClauseCodeTree though (they're both compiled now, but probably unused). But if they're too much of a hassle to keep around, you can remove them as well and I will deal with it later.

MichaelRawson commented 3 years ago

@JakobR - thanks. OK, CTFw can go but I'll keep code trees - I'm not in a hurry to delete stuff people want, only the stuff nobody wants. :-)

MichaelRawson commented 1 year ago

@easychair and/or @quickbeam123 - a reminder, do you have some data about which options are/are not useful in terms of schedules? Naturally it's not the only consideration when removing something, but it's a pretty good indicator.

quickbeam123 commented 1 year ago

I have lot's of data, but it's not so easy to interpret it. Most notably, it's not entirely clear where draw the line and call an option/value not worth maintaining. For most of the cases, one can find a problem that the database cannot solve otherwise... (then how many lost solution can be reclaimed by more search, or how many lost solutions are worth sacrificing for better maintenance?)

MichaelRawson commented 1 year ago

Most notably, it's not entirely clear where draw the line and call an option/value not worth maintaining

I think this is the crux of it. Maybe we can start by ranking options in terms of effectiveness? Is that a reasonable thing to do?