Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
d91bdbd
updating unification with abstraction to use very special variable me…
ibnyusuf Jul 19, 2022
f5be368
left from previous commit
ibnyusuf Jul 19, 2022
7fbf5fb
fixing merge conflicts
ibnyusuf Jul 19, 2022
007b595
update to streamline handler code and make it more easily extensible
ibnyusuf Aug 2, 2022
99fb636
files missing from previous commit:
ibnyusuf Aug 2, 2022
07ab2f5
updating unification with abstraction unit test to make use of syntax…
ibnyusuf Aug 2, 2022
23de93e
merging in polymorphic syntax sugar and simplyfying code
ibnyusuf Aug 3, 2022
7cf7e56
merging in latest master
ibnyusuf Aug 3, 2022
1602cb7
fixing to reviewer comments
ibnyusuf Aug 4, 2022
c16041a
fixing bug with higher-order inferences that were creating non-shared…
ibnyusuf Aug 4, 2022
bd8902a
bug fixing
ibnyusuf Aug 8, 2022
8d5be03
fixing assertion
ibnyusuf Aug 8, 2022
9a9156f
fixing bugs relating to pseudo-higher-order problems (first-order pro…
ibnyusuf Aug 9, 2022
79738e1
file missing from previous commit
ibnyusuf Aug 9, 2022
415568d
bug fix
ibnyusuf Aug 15, 2022
da578a8
Merge branch 'master' into ahmed-uwa-stack-of-handlers
Aug 16, 2022
abfcfaf
substitutions by default have no constraints
ibnyusuf Aug 23, 2022
a2864e5
merging in latest master
ibnyusuf Aug 31, 2022
aaf41b9
removed NOT_IMPLEMENTED from mismatch handler hierarchy
Aug 31, 2022
2682f17
made AtomicMismatchHandler not inherit from TermTransformer
Aug 31, 2022
f6c1db4
replaced linkedlist by stack
Aug 31, 2022
f76d491
prelaced raw pointers by unique_ptr
Sep 1, 2022
9367559
made uwa option a field of uwa handler instead of static read from op…
Sep 1, 2022
89949b5
made switch future proof so the compiler will emit warnings when vari…
Sep 1, 2022
f6f8072
renamed getHandler() -> mismatchHandler() to increase readability at …
Sep 1, 2022
556cb41
removing code related to combinators and started work on new calculus
ibnyusuf Sep 1, 2022
8c8cc22
made unit tests for uwa machine checked
Sep 1, 2022
8275da8
performance improvement
Sep 1, 2022
2b0a756
Merge pull request #414 from vprover/joe-uwa-stack-of-handlers
joe-hauns Sep 1, 2022
8cb23c1
merging Joe's changes with mine
ibnyusuf Sep 1, 2022
43d435e
code refinement
ibnyusuf Sep 1, 2022
5b704f0
changing beta reduction code
ibnyusuf Sep 1, 2022
ffa1fdb
merging in new term transformer code
ibnyusuf Sep 1, 2022
54dec97
finishing beta reduction and adding unit tests
ibnyusuf Sep 1, 2022
b760aad
working on lambda higher-order calculus
ibnyusuf Sep 6, 2022
1408506
bug fixes and code improvements
ibnyusuf Sep 8, 2022
21255e8
intermediate stage, working on Imitation Projection
ibnyusuf Sep 13, 2022
7315863
adding pretty HOL printing and completing implementation of ImitatePr…
ibnyusuf Sep 14, 2022
e2c6bff
improving term printing and refactoring code for producing general bi…
ibnyusuf Sep 19, 2022
84419e2
refactoring primitive instantiation to use general bindings. Attempti…
ibnyusuf Sep 20, 2022
841239d
various extensions and bug fixes. Can currently solve many problems n…
ibnyusuf Sep 22, 2022
c54fe37
now project terms with De Bruijn indices at their head
ibnyusuf Sep 23, 2022
e084e87
fixing bugs. about to start first round of testing
ibnyusuf Sep 25, 2022
b95b899
bug fixes
ibnyusuf Sep 25, 2022
0f8b7d1
bug fixing and making sure that HOL is properly encapsulated behind c…
ibnyusuf Sep 25, 2022
42c766e
minor bug fix and adding comments
ibnyusuf Sep 26, 2022
7d363af
updating injectivity reasoning WIP
ibnyusuf Sep 27, 2022
d3e2a98
streamlining code
ibnyusuf Sep 30, 2022
70c776d
fixing merge conflicts after merge of master into ahmed-new-hol
ibnyusuf Sep 30, 2022
b3bd616
Merging latest master into ahmed-new-hol
ibnyusuf Sep 30, 2022
465c598
adding missing VHOL tags
ibnyusuf Sep 30, 2022
7951d72
minor bug fix
ibnyusuf Sep 30, 2022
b5eee43
adding proof extra for imitations and projections. also bug fixing
ibnyusuf Sep 30, 2022
d88a10d
bug fix in eta reduction
ibnyusuf Sep 30, 2022
54002e6
removing stray print
ibnyusuf Oct 13, 2022
1e83855
adding missing compiler directive and improving pretty printing
ibnyusuf Feb 17, 2023
04f1cec
merging into new abstraction branch. also adding some missing compile…
ibnyusuf Mar 21, 2023
0192662
merging in latest changes from substitution tree refactor. Starting w…
ibnyusuf Mar 24, 2023
73831a0
setting up the necessary for implementing higher-order unification. e…
ibnyusuf Mar 31, 2023
d3f30fb
adding missing VHOL compiler directives
ibnyusuf Mar 31, 2023
e7acc1d
fixing a bug relating to equality factoring and polymorphism
ibnyusuf Apr 2, 2023
de1ba2f
new unit test for equality factoring
ibnyusuf Apr 3, 2023
f27b805
preparing to create non-splittable tree nodes
ibnyusuf Apr 4, 2023
bccc807
further work on adding non-splitting functionality. Looking harder th…
ibnyusuf Apr 5, 2023
059c0e1
non-splittable insertion and deletion working nicely. Next: unification
ibnyusuf Apr 11, 2023
ddc3b26
starting work on unification with non-splittable nodes
ibnyusuf Apr 11, 2023
1b4ad3b
working on HOL unification. need to add many unit tests to ensure tha…
ibnyusuf Apr 13, 2023
ccf7d17
adding unit tests for unification with unsplittable nodes and fixpoin…
ibnyusuf Apr 15, 2023
f86fbac
HOU still in a state of flux. About to start major change relating to…
ibnyusuf Apr 23, 2023
cd736fc
major changes to facilitate RobSubstitution with both TermSpecs and T…
ibnyusuf Apr 28, 2023
6966f62
bug fixing. all UnificationWithAbstraction unit tests now pass
ibnyusuf May 2, 2023
a91678d
fixing bug with TermTransformer and sorts
ibnyusuf May 2, 2023
57377e8
changing SymbolType to enum class
ibnyusuf May 2, 2023
9bf6662
about to start work on higher-order unification proper
ibnyusuf May 5, 2023
7121c88
higher-order unification implemented and compiling. not tested
ibnyusuf May 9, 2023
d25dc50
various bug fixes. HOL unification seems to be working at the moment.…
ibnyusuf May 11, 2023
8b62141
changes to support higher-order (lambda-free) matching. WIP
ibnyusuf May 12, 2023
ec23eb6
lambda-free matching now implemented. more unit tests need to be written
ibnyusuf May 15, 2023
4fbe7a1
was atempting complex matching procedure. going to revert, but commit…
ibnyusuf May 16, 2023
e6f17cc
reverting matching algo
ibnyusuf May 16, 2023
ed0e2a9
adding literal matching and updating various subsumption inferences. …
ibnyusuf May 17, 2023
ff7e787
fixing HOL matching. Need to test subsumption still
ibnyusuf May 19, 2023
6b9e3bc
fixing HOL unification. WIP. Problem with constraints that contain lo…
ibnyusuf May 23, 2023
48d71d2
bug fixing
ibnyusuf May 24, 2023
667239a
changes to support compiling with GCC and to remove debug output
ibnyusuf May 24, 2023
b021c1d
further update to support GCC
ibnyusuf May 24, 2023
0b6e532
more GCC induced changes
ibnyusuf May 24, 2023
89a61d7
bug fixing, but many remain
ibnyusuf May 25, 2023
b99a767
bug fixing - bugs remain
ibnyusuf May 26, 2023
f817290
bug fixing missed from previous commit
ibnyusuf May 26, 2023
92ca170
further bug fixes - some bugs remain
ibnyusuf May 27, 2023
3ab2340
bug fix
ibnyusuf May 27, 2023
f81bc28
bug fix
ibnyusuf May 28, 2023
ef32bc1
bug fix (missed from last commit)
ibnyusuf May 28, 2023
f4251b7
bug fix
ibnyusuf May 28, 2023
2fab088
bug fixes
ibnyusuf May 28, 2023
c68c9c8
bug fixing
ibnyusuf May 29, 2023
000ebb2
polymorhpic higher-order unification - bugs remain
ibnyusuf May 30, 2023
ae16873
bug fix
ibnyusuf May 30, 2023
184753e
bug fix
ibnyusuf May 30, 2023
75e4af6
bug fixing
ibnyusuf May 30, 2023
4559deb
we are not (FOOL) complete wihen running with casesSimp
ibnyusuf May 31, 2023
395f698
minor modifications to code
ibnyusuf May 31, 2023
57ef2ad
missed from last commit
ibnyusuf May 31, 2023
d819646
bug fixes
ibnyusuf Jun 1, 2023
c3f8e49
bug fix
ibnyusuf Jun 1, 2023
3b0d21f
bug fixes
ibnyusuf Jun 1, 2023
81cec72
bug fixes and removing old files
ibnyusuf Jun 1, 2023
ebf2845
adding positive extensionality inference
ibnyusuf Jun 2, 2023
f43590f
fixing pos ext inference
ibnyusuf Jun 2, 2023
1f6f525
bug fixing and adding enw inference, bool instantiation (not well tes…
ibnyusuf Jun 5, 2023
5459c97
a comment and a minor extension of allowed literal selection values
Jun 2, 2023
dd5b2e6
extended StringUtils
Jun 2, 2023
25d008e
starting to work on strategy sampling in Options
Jun 2, 2023
cdb46fc
Resolving conflict in cherry-pick
Jun 2, 2023
b836be8
put kbo things under OptionTag::SATURATION
Jun 2, 2023
5861d6e
Fixing cherry-pick conflict
Jun 2, 2023
61806b5
more robust value lookup
Jun 2, 2023
6c0c32d
more precise description
Jun 2, 2023
4e6e936
shifted geometric distribution
Jun 2, 2023
8596968
sine_tolerance should actually allow -1.0 (and not 0.0) as a special …
Jun 3, 2023
de779d2
allow for negation in rule conditions
Jun 3, 2023
feceb44
uniform float sampling and some avatar stuff
Jun 5, 2023
2db6412
_splittingFlushQuotient only makes sense with non-zero _splittingFlus…
Jun 5, 2023
5502f5b
need a different separator for ~u2r, and finished avatar
Jun 5, 2023
7fc82ee
added ~ui sampler
Jun 5, 2023
086fdce
added HO stuff uniformly
Jun 5, 2023
b8f6b0f
sampler file update
quickbeam123 Jun 5, 2023
58121d4
the twee phase should have a twee string
Jun 6, 2023
609d768
only sample cnfonf conditioned on apa=off
quickbeam123 Jun 6, 2023
bf0da4e
bug fixes and adding warnings when running with options incompatible …
ibnyusuf Jun 6, 2023
5322196
sample better
quickbeam123 Jun 6, 2023
a509d35
updating comment and fixing bug whereby shuffling didn't handle Lambd…
ibnyusuf Jun 6, 2023
fd4d108
bug fixing
ibnyusuf Jun 7, 2023
eca545d
fixing bugs
ibnyusuf Jun 7, 2023
bc9db6f
removing Boolean instantiation for now as it is buggy. Can always res…
ibnyusuf Jun 8, 2023
d6e7fa2
added lazy_pi_sigma_gen to cnfonf
quickbeam123 Jun 8, 2023
75540da
no bool_inst for now and awrsf must start from 1 not 0
quickbeam123 Jun 8, 2023
899a065
a few more updates of the sampling file
quickbeam123 Jun 8, 2023
49ffa8c
one more sampling fix
quickbeam123 Jun 8, 2023
6a2a64c
adding in a slimmed down version of Boolean Instantiation and adding …
ibnyusuf Jun 8, 2023
f773980
tuning sampler still
quickbeam123 Jun 8, 2023
a02c929
fixing some corner cases
ibnyusuf Jun 8, 2023
9917526
removing debug code
ibnyusuf Jun 8, 2023
dee2da8
minor bug fix, pragmatic is not compatible with unif depth being set …
ibnyusuf Jun 9, 2023
1c5842c
fixed a typo
quickbeam123 Jun 9, 2023
20a4351
the thing with pragmatic
quickbeam123 Jun 9, 2023
e308af8
fixing choice reasoning - more investigation required
ibnyusuf Jun 10, 2023
782d927
fixing loose indices escaping in Choice.cpp and reviewing all uses of…
ibnyusuf Jun 10, 2023
464552b
fixing some polymorphism issues in TweeGoalTransformation and updatin…
ibnyusuf Jun 10, 2023
8c66de4
tuning samplerEx.txt furher
quickbeam123 Jun 11, 2023
28dd7c4
don't touch args.top() in DEBUG mode if there are actually no argumen…
Jun 2, 2023
530b50b
tentative: new way of dealing with apa/cbe interaction
quickbeam123 Jun 11, 2023
a4110ce
sample tgt too
quickbeam123 Jun 11, 2023
a2acc86
improved warning regarding cbe and apa. Also added option app_unify t…
ibnyusuf Jun 11, 2023
3a25020
adding app_unify option that does nothing currently
ibnyusuf Jun 11, 2023
fc88b5a
removed code preenting the use of twee goal directed transformation f…
ibnyusuf Jun 11, 2023
1bbf6bf
missed updating case where symbol has already been defined
ibnyusuf Jun 11, 2023
e186790
one constraint is enough
quickbeam123 Jun 11, 2023
2ab66aa
no need to check for free indices in subterms which do not contain in…
ibnyusuf Jun 11, 2023
ddeca3e
fixing typo and missing shared check
ibnyusuf Jun 11, 2023
022c5dd
fixing choice with AVATAR bug
ibnyusuf Jun 11, 2023
106a71a
apa and cbe potentially meaningful together (although known to be sub…
quickbeam123 Jun 11, 2023
779105b
removing assertion that fails to hold in the higher-order case
ibnyusuf Jun 11, 2023
352de00
fxing TweeGoalTransformation for HOL and adding new option appUnif
ibnyusuf Jun 12, 2023
1e4335f
no tgt for now
quickbeam123 Jun 12, 2023
77e16eb
don't generate factions in non-base form
Jun 12, 2023
1a9aad7
bug fix:
ibnyusuf Jun 13, 2023
7ef0240
no abstraction built into applicative unify
ibnyusuf Jun 13, 2023
31b268e
tgt is back
quickbeam123 Jun 13, 2023
5d9e522
let's not warn here yet
quickbeam123 Jun 13, 2023
cd30701
the first version of a hol schedule; also sampling ua now
quickbeam123 Jun 13, 2023
f36e414
fixing bugs in TPTP proof output + fixing FOOL saturation bug + addin…
ibnyusuf Jun 14, 2023
acd46a7
adding new option to take only the first n unifiers and then abort th…
ibnyusuf Jun 14, 2023
f5f9e89
removing incorrect option constraint
ibnyusuf Jun 14, 2023
4b88dc6
adapted sampler, added tnu
quickbeam123 Jun 14, 2023
1d331da
some Wednesday schedule
quickbeam123 Jun 14, 2023
7808c82
fixing printing issue that was causing SIGSEG on a few proof prints
ibnyusuf Jun 15, 2023
1648041
adding injectivity reasoning
ibnyusuf Jun 16, 2023
18cf495
some Thursday schedule
quickbeam123 Jun 16, 2023
934bd2f
fixing injectivity in the presence of polymorphism
ibnyusuf Jun 16, 2023
3e43c45
adding options to permit clause selection to take into account how hi…
ibnyusuf Jun 16, 2023
2d420df
bug fix
ibnyusuf Jun 16, 2023
ad16b58
Friday schedule
quickbeam123 Jun 16, 2023
8d01dab
sample new options
quickbeam123 Jun 17, 2023
2850370
in the end hardwiring Sun18 HOL3 schedule (also known as sched2)
quickbeam123 Jun 19, 2023
ae902d2
added slh schedule
quickbeam123 Jun 19, 2023
ce4f295
fix a wrong warning
quickbeam123 Jun 20, 2023
72dfb4d
Thuesday SLH schedule
quickbeam123 Jun 20, 2023
b96460b
Revert "Thuesday SLH schedule"
Jun 20, 2023
cee9252
fix bug in sampling inj
quickbeam123 Jun 20, 2023
d68afb1
a first Tue schedule, with inj in
quickbeam123 Jun 20, 2023
36a0916
have two SLH scheds and push the HOL one over 2800
quickbeam123 Jun 20, 2023
fd9da9a
make hol feature split queue an alternative to theory split queue
ibnyusuf Jun 18, 2023
80e02b0
some post CASC submission code cleanup
ibnyusuf Jun 22, 2023
cbcaac1
actually use HoFeaturesMultiSplitPassiveClauseContainer
Jul 12, 2023
3849542
reference the correct split queue level
quickbeam123 Jul 13, 2023
35f1fb8
either we have hoFeaturesSplitQueues under VHOL or useTheorySplitQueu…
quickbeam123 Jul 13, 2023
80ebadc
after-casc SLH2 sched v1
quickbeam123 Jul 10, 2023
9604c9b
after-casc SLH2 sched v2
quickbeam123 Jul 10, 2023
c1cb44e
after-casc SLH2 sched v3
quickbeam123 Jul 11, 2023
29ce1f8
after-casc SLH2 sched v4
quickbeam123 Jul 11, 2023
1626ad9
after-casc SLH2 sched v5
quickbeam123 Jul 12, 2023
038db54
officially move to v4.8
quickbeam123 Jul 12, 2023
be6353a
since hfsq behaved like avsq, let's fix the schedules
quickbeam123 Jul 13, 2023
115b046
make Makefile work for HOL
Jul 13, 2023
9c3b495
will numOfAppVarsAndLambdas work with recursion and caching?
Jul 13, 2023
2b2eab6
no HO queues without HO
Jul 13, 2023
45a1aed
new SLH sched using a bit of hfsq now made official under SNAKE_SLH w…
quickbeam123 Jul 14, 2023
00a43c5
also a new HOL sched sprinkled with hfsq
quickbeam123 Jul 16, 2023
b54ce3e
polymorphic constant fix
ibnyusuf Jun 23, 2023
e1919bc
when renaming and placing on an index in one go, we need to check ban…
ibnyusuf Aug 8, 2023
3e6ae4f
fixing TH1 bug wherein we were attempting to turn type quantifiers in…
ibnyusuf Aug 17, 2023
5d9af1b
added first-order sub-schedule to SLH
quickbeam123 Aug 21, 2023
564dea4
fixing TH1 bug. Along the way, making SortHelper::tryGetVariableSort …
ibnyusuf Aug 23, 2023
c155f7f
fix leaking index bug
ibnyusuf Aug 29, 2023
6f064f5
adding a prelim version of a TH1 schedule
Sep 7, 2023
f99adf4
th1_sledgehammering/TH1.txt - but done in a weighted way (problems al…
quickbeam123 Sep 11, 2023
532d92e
samplerEx named officially samplerHOL
Oct 4, 2023
11aac99
two more options officially sampled
Oct 4, 2023
bd72e6a
adding check to esnure we don't run UWA with HOL problems
bhayat-quantinuum Jan 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- name: Checkout Tree
uses: actions/checkout@v3
Expand Down
20 changes: 14 additions & 6 deletions CASC/PortfolioMode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,12 +200,15 @@ bool PortfolioMode::prepareScheduleAndPerform(const Shell::Property& prop)
addScheduleExtra(sOrig,sWithExtras,"avsq=on:plsq=on"); // split queues
addScheduleExtra(sOrig,sWithExtras,"av=on:atotf=0.5"); // turn AVATAR off

#if VHOL
if(!prop.higherOrder()){
#endif
//these options are not currently HOL compatible
addScheduleExtra(sOrig,sWithExtras,"bsd=on:fsd=on"); // subsumption demodulation
addScheduleExtra(sOrig,sWithExtras,"to=lpo"); // lpo
#if VHOL
}

#endif
// If contains integers, rationals and reals
if(prop.props() & (Property::PR_HAS_INTEGERS | Property::PR_HAS_RATS | Property::PR_HAS_REALS)){
addScheduleExtra(sOrig,sWithExtras,"hsm=on"); // Sets a sensible set of Joe's arithmetic rules (TACAS-21)
Expand Down Expand Up @@ -267,12 +270,11 @@ bool PortfolioMode::prepareScheduleAndPerform(const Shell::Property& prop)

schedule.loadFromIterator(main.iterFifo());
addScheduleExtra(main,schedule,"rp=on:de=on"); // random polarities, demodulation encompassment

} else if (env.options->schedule() == Options::Schedule::SNAKE_TPTP_SAT) {
ASS(fallback.isEmpty());

schedule.loadFromIterator(main.iterFifo());
addScheduleExtra(main,schedule,"rp=on:fmbksg=on:de=on"); // random polarities, demodulation encompassment for saturation, fmbksg for the fmb's
addScheduleExtra(main,schedule,"rp=on:fmbksg=on:de=on"); // random polarities, demodulation encompassment for saturation, fmbksg for the fmb's
} else {
// all other schedules just get loaded plain

Expand Down Expand Up @@ -369,6 +371,15 @@ void PortfolioMode::getSchedules(const Property& prop, Schedule& quick, Schedule
Schedules::getSnakeTptpSatSchedule(prop,quick);
break;

#if VHOL
case Options::Schedule::SNAKE_TPTP_HOL:
Schedules::getSnakeTptpHolSchedule(prop,quick);
break;
case Options::Schedule::SNAKE_SLH:
Schedules::getSnakeSlhSchedule(prop,quick);
break;
#endif

case Options::Schedule::CASC_2019:
case Options::Schedule::CASC:
Schedules::getCasc2019Schedule(prop,quick,fallback);
Expand All @@ -379,9 +390,6 @@ void PortfolioMode::getSchedules(const Property& prop, Schedule& quick, Schedule
Schedules::getCascSat2019Schedule(prop,quick,fallback);
break;

case Options::Schedule::CASC_HOL_2020:
Schedules::getHigherOrderSchedule2020(quick,fallback);
break;

case Options::Schedule::SMTCOMP:
case Options::Schedule::SMTCOMP_2018:
Expand Down
2,137 changes: 1,993 additions & 144 deletions CASC/Schedules.cpp

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions CASC/Schedules.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ class Schedules
{
public:
static void getScheduleFromFile(const vstring& filename, Schedule& quick);

static void getHigherOrderSchedule2020(Schedule& quick, Schedule& fallback);
static void getCasc2019Schedule(const Shell::Property& property, Schedule& quick, Schedule& fallback);

static void getCascSat2019Schedule(const Shell::Property& property, Schedule& quick, Schedule& fallback);
Expand All @@ -46,6 +44,12 @@ class Schedules

static void getSnakeTptpUnsSchedule(const Shell::Property& property, Schedule& quick);
static void getSnakeTptpSatSchedule(const Shell::Property& property, Schedule& quick);

#if VHOL
static void getSnakeTptpHolSchedule(const Shell::Property& property, Schedule& quick);
static void getSnakeSlhSchedule(const Shell::Property& property, Schedule& quick);
#endif

};

}
Expand Down
47 changes: 31 additions & 16 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ set(VAMPIRE_KERNEL_SOURCES
Kernel/Problem.cpp
Kernel/Renaming.cpp
Kernel/RobSubstitution.cpp
Kernel/HOLUnification.cpp
Kernel/HOLMatching.cpp
Kernel/MismatchHandler.cpp
Kernel/Signature.cpp
Kernel/SortHelper.cpp
Expand Down Expand Up @@ -283,6 +285,8 @@ set(VAMPIRE_KERNEL_SOURCES
Kernel/RCClauseStack.hpp
Kernel/Renaming.hpp
Kernel/RobSubstitution.hpp
Kernel/HOLUnification.hpp
Kernel/HOLMatching.hpp
Kernel/MismatchHandler.hpp
Kernel/Signature.hpp
Kernel/SortHelper.hpp
Expand All @@ -306,22 +310,20 @@ set(VAMPIRE_KERNEL_SOURCES
Kernel/PolynomialNormalizer.cpp
Kernel/ApplicativeHelper.hpp
Kernel/ApplicativeHelper.cpp
Kernel/SKIKBO.hpp
Kernel/SKIKBO.cpp
Inferences/CNFOnTheFly.cpp
Inferences/CNFOnTheFly.hpp
Inferences/CombinatorDemodISE.cpp
Inferences/CombinatorDemodISE.hpp
Inferences/CombinatorNormalisationISE.hpp
Inferences/CombinatorNormalisationISE.cpp
Inferences/BetaEtaISE.cpp
Inferences/BetaEtaISE.hpp
Inferences/FlexFlexSimplify.cpp
Inferences/FlexFlexSimplify.hpp
Inferences/ImitateProject.hpp
Inferences/ImitateProject.cpp
Inferences/ArgCong.hpp
Inferences/ArgCong.cpp
Inferences/NegativeExt.cpp
Inferences/NegativeExt.hpp
Inferences/Narrow.hpp
Inferences/Narrow.cpp
Inferences/SubVarSup.hpp
Inferences/SubVarSup.cpp
Inferences/PositiveExt.cpp
Inferences/PositiveExt.hpp
Inferences/BoolEqToDiseq.hpp
Inferences/BoolEqToDiseq.cpp
Inferences/PrimitiveInstantiation.cpp
Expand All @@ -338,8 +340,8 @@ set(VAMPIRE_KERNEL_SOURCES
Inferences/CasesSimp.hpp
Inferences/Cases.cpp
Inferences/Cases.hpp
Shell/LambdaElimination.cpp
Shell/LambdaElimination.hpp
Shell/LambdaConversion.cpp
Shell/LambdaConversion.hpp
)
source_group(kernel_source_files FILES ${VAMPIRE_KERNEL_SOURCES})

Expand All @@ -358,15 +360,16 @@ set(VAMPIRE_INDEXING_SOURCES
Indexing/LiteralSubstitutionTree.cpp
Indexing/ResultSubstitution.cpp
Indexing/SubstitutionTree.cpp
Indexing/HOLSubstitutionTree.cpp
Indexing/SubstitutionTree_FastGen.cpp
Indexing/SubstitutionTree_FastInst.cpp
Indexing/SubstitutionTree_Nodes.cpp
Indexing/TermCodeTree.cpp
Indexing/TermIndex.cpp
Indexing/TermSharing.cpp
Indexing/TermSubstitutionTree.cpp
Indexing/AcyclicityIndex.hpp
Indexing/ClauseCodeTree.hpp
# Indexing/AcyclicityIndex.hpp
Indexing/ClauseCodeTree.hpp
Indexing/ClauseVariantIndex.hpp
Indexing/CodeTree.hpp
Indexing/CodeTreeInterfaces.hpp
Expand All @@ -380,6 +383,7 @@ set(VAMPIRE_INDEXING_SOURCES
Indexing/LiteralSubstitutionTree.hpp
Indexing/ResultSubstitution.hpp
Indexing/SubstitutionTree.hpp
Indexing/HOLSubstitutionTree.hpp
Indexing/TermCodeTree.hpp
Indexing/TermIndex.hpp
Indexing/TermIndexingStructure.hpp
Expand Down Expand Up @@ -713,6 +717,7 @@ set(UNIT_TESTS
UnitTests/tDHMap.cpp
UnitTests/tQuotientE.cpp
UnitTests/tUnificationWithAbstraction.cpp
UnitTests/tHOLMatching.cpp
UnitTests/tGaussianElimination.cpp
UnitTests/tPushUnaryMinus.cpp
UnitTests/tArithmeticSubtermGeneralization.cpp
Expand All @@ -729,7 +734,7 @@ set(UNIT_TESTS
UnitTests/tBinaryHeap.cpp
UnitTests/tSafeRecursion.cpp
UnitTests/tKBO.cpp
UnitTests/tSKIKBO.cpp
# UnitTests/tSKIKBO.cpp
UnitTests/tLPO.cpp
UnitTests/tRatioKeeper.cpp
UnitTests/tTwoVampires.cpp
Expand All @@ -739,9 +744,12 @@ set(UNIT_TESTS
UnitTests/tBottomUpEvaluation.cpp
UnitTests/tCoproduct.cpp
UnitTests/tEqualityResolution.cpp
UnitTests/tEqualityFactoring.cpp
UnitTests/tImitateProject.cpp
UnitTests/tIterator.cpp
UnitTests/tOption.cpp
UnitTests/tStack.cpp
UnitTests/tBetaReduction.cpp
)
source_group(unit_tests FILES ${UNIT_TESTS})

Expand Down Expand Up @@ -800,6 +808,13 @@ elseif(CMAKE_BUILD_TYPE STREQUAL Release)
add_compile_definitions(VDEBUG=0)
endif()

if(CMAKE_BUILD_HOL STREQUAL On)
message(STATUS "Building with HOL support")
add_compile_definitions(VHOL=1)
else()
message(STATUS "Building without HOL support")
add_compile_definitions(VHOL=0)
endif()
add_compile_definitions(VTIME_PROFILING=1)

if (CYGWIN)
Expand Down Expand Up @@ -915,7 +930,7 @@ endif() # COMPILE_TESTS
#################################################################
# automated generation of Vampire revision information from git #
#################################################################
set(VAMPIRE_VERSION_NUMBER 4.7)
set(VAMPIRE_VERSION_NUMBER 4.8)

execute_process(
COMMAND git rev-parse --is-inside-work-tree
Expand Down
23 changes: 19 additions & 4 deletions Forwards.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ typedef List<unsigned> VList; // a list of variables (which are unsigned)
typedef List<TermList> SList; // a list of sorts (which are now, with polymorphism, TermLists)
typedef const SharedSet<unsigned> VarSet;


class Literal;
typedef List<Literal*> LiteralList;
typedef Stack<Literal*> LiteralStack;
Expand Down Expand Up @@ -97,9 +96,13 @@ class Problem;
class Renaming;
class Substitution;

class RobSubstitution;
typedef VirtualIterator<RobSubstitution*> SubstIterator;
typedef Lib::SmartPtr<RobSubstitution> RobSubstitutionSP;
class RobSubstitutionTL;
typedef VirtualIterator<RobSubstitutionTL*> SubstIterator;
typedef Lib::SmartPtr<RobSubstitutionTL> RobSubstitutionSP;

class RobSubstitutionTS;
typedef VirtualIterator<RobSubstitutionTS*> SubstIteratorTS;
typedef Lib::SmartPtr<RobSubstitutionTS> RobSubstitutionTSSP;

class Matcher;
typedef VirtualIterator<Matcher*> MatchIterator;
Expand Down Expand Up @@ -130,10 +133,14 @@ enum Color {
COLOR_INVALID = 3u
};

enum class SymbolType{FUNC, PRED, TYPE_CON};

};

namespace Indexing
{


class Index;
class IndexManager;
class LiteralIndex;
Expand All @@ -145,6 +152,14 @@ class TermSharing;

class ResultSubstitution;
typedef Lib::SmartPtr<ResultSubstitution> ResultSubstitutionSP;
//typedef Lib::VirtualIterator<ResultSubstitutionSP> SubstSPIterator;

enum class SplittingAlgo { NONE
#if VHOL
, HOL_MATCH
, HOL_UNIF
#endif
};

};

Expand Down
16 changes: 10 additions & 6 deletions Indexing/AcyclicityIndex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "Kernel/RobSubstitution.hpp"
#include "Kernel/Signature.hpp"
#include "Kernel/SortHelper.hpp"
#include "Kernel/TypedTermList.hpp"

#include "Lib/Backtrackable.hpp"
#include "Lib/Environment.hpp"
Expand Down Expand Up @@ -199,9 +200,11 @@ namespace Indexing
AcyclicityIndex& aindex)
:
_queryLit(queryLit),
_index(nullptr),
_tis(nullptr),
_nextResult(nullptr),
_stack(0),
_subst(new RobSubstitution()),
_subst(new RobSubstitutionTS()),
_substChanges(0),
_nextAvailableIndex(0),
_currentDepth(0)
Expand Down Expand Up @@ -275,8 +278,9 @@ namespace Indexing
{
CALL("Acyclicity::pushUnificationOnStack");

ASS(t.isTerm());
ASS(_tis);
TermQueryResultIterator tqrIt = _tis->getUnifications(t);
TermQueryResultIterator tqrIt = _tis->getUnifications(TypedTermList(t.term()));
int index;
while (tqrIt.hasNext()) {
TermQueryResult tqr = tqrIt.next();
Expand Down Expand Up @@ -386,10 +390,10 @@ namespace Indexing
private:
Literal *_queryLit;
SIndex *_index;
TermIndexingStructure *_tis;
TermIndexingStructure *_tis;
CycleQueryResult *_nextResult;
Stack<CycleSearchTreeNode*> _stack;
RobSubstitution *_subst;
RobSubstitutionTS *_subst;
Stack<BacktrackData> _substChanges;
int _nextAvailableIndex;
unsigned _currentDepth;
Expand Down Expand Up @@ -432,7 +436,7 @@ namespace Indexing
ULit ulit = make_pair(lit, c);
if (!index->find(ulit)) {
index->insert(ulit, new IndexEntry(lit, c, *t, getSubterms(fs->term())));
_tis->insert(*t, lit, c);
_tis->insert(TypedTermList(t->term()), lit, c);
}
}
}
Expand All @@ -451,7 +455,7 @@ namespace Indexing
return;

_sIndexes.get(sort)->remove(ulit);
_tis->remove(*t, lit, c);
_tis->remove(TypedTermList(t->term()), lit, c);
}
}

Expand Down
6 changes: 3 additions & 3 deletions Indexing/CodeTreeInterfaces.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,22 +177,22 @@ class CodeTreeTIS::ResultIterator
Recycled<TermCodeTree::TermMatcher> _matcher;
};

void CodeTreeTIS::insert(TermList t, Literal* lit, Clause* cls)
void CodeTreeTIS::insert(TypedTermList t, Literal* lit, Clause* cls)
{
CALL("CodeTreeTIS::insert");

TermCodeTree::TermInfo* ti=new TermCodeTree::TermInfo(t,lit,cls);
_ct.insert(ti);
}

void CodeTreeTIS::remove(TermList t, Literal* lit, Clause* cls)
void CodeTreeTIS::remove(TypedTermList t, Literal* lit, Clause* cls)
{
CALL("CodeTreeTIS::remove");

_ct.remove(TermCodeTree::TermInfo(t,lit,cls));
}

TermQueryResultIterator CodeTreeTIS::getGeneralizations(TermList t, bool retrieveSubstitutions)
TermQueryResultIterator CodeTreeTIS::getGeneralizations(TypedTermList t, bool retrieveSubstitutions)
{
CALL("CodeTreeTIS::getGeneralizations");

Expand Down
11 changes: 6 additions & 5 deletions Indexing/CodeTreeInterfaces.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,20 @@ class CodeTreeTIS : public TermIndexingStructure
CLASS_NAME(CodeTreeTIS);
USE_ALLOCATOR(CodeTreeTIS);

void insert(TermList t, Literal* lit, Clause* cls);
void remove(TermList t, Literal* lit, Clause* cls);
void insert(TypedTermList t, Literal* lit, Clause* cls);
void remove(TypedTermList t, Literal* lit, Clause* cls);

TermQueryResultIterator getGeneralizations(TermList t, bool retrieveSubstitutions = true);
TermQueryResultIterator getGeneralizations(TypedTermList t, bool retrieveSubstitutions = true);
bool generalizationExists(TermList t);
// TODO: get rid of NOT_IMPLEMENTED
VirtualIterator<TQueryRes<AbstractingUnifier*>> getUwa(TypedTermList t, Options::UnificationWithAbstraction, bool fixedPointIteration) { NOT_IMPLEMENTED; }
TermQueryResultIterator getUwa(TypedTermList t) { NOT_IMPLEMENTED; }

#if VDEBUG
virtual void markTagged(){ NOT_IMPLEMENTED; }
virtual void output(std::ostream& out) const { out << "CodeTree"; }
#endif

virtual void output(std::ostream& out) const { out << "CodeTree"; }

private:
class ResultIterator;

Expand Down
Loading