Commit Graph

224 Commits

Author SHA1 Message Date
Fedor Isakov 5771d78b24 Logical with assigned value has higher rank. Notifications are to be dispatched accordingly. 2019-01-25 13:52:10 +01:00
Fedor Isakov e645ac8a70 Support for unassigned logical variables in unification. Fix cycle not detected. 2019-01-25 11:37:18 +01:00
Fedor Isakov b523467c5f Test a weird case of rule not triggered for a particular combination of constraints. 2019-01-24 16:01:55 +01:00
Fedor Isakov 181ccedd95 Establish the contract of OccurrenceMatcher to fail appropriately on unassigned logicals.
Fix processing of reactivated constraints in RuleMatcher, fix propagation history.
Minor code refactorings. Tests.
2019-01-24 12:03:04 +01:00
Fedor Isakov 32601dc96a Deprecate unused methods in conreactor. 2019-01-03 17:16:47 +01:00
Fedor Isakov 6e9966fe9d Bump up conreactor version to 0.9.3. 2018-12-28 11:57:27 +01:00
Fedor Isakov 6953939e4a Report unification of a logical with itself as a failure. 2018-12-28 11:57:27 +01:00
Fedor Isakov 6c0a9d404b Properly process failed guard 2018-12-28 11:57:26 +01:00
Fedor Isakov d61e8e1370 Ensure matched rule logical context provides all logicals with corresponding prototype meta-logicals. 2018-12-28 11:57:26 +01:00
Fedor Isakov 666f406335 Introduce VarSymbol interface to classify terms with "logical" symbol as wildcards in the term trie. 2018-12-28 11:57:26 +01:00
Fedor Isakov 8db1aead11 Fix propagate failure on on reactivated constraint. Always report a failure to avoid confusion with the trace view. 2018-11-20 22:39:30 +01:00
Fedor Isakov 087ccf4503 Fix matching single constraint on reactivation after a logical has been assigned. 2018-11-20 22:39:30 +01:00
Fedor Isakov 72e7fdfbfc Ensure FailureHandler is consulted only if there are no more alternatives. 2018-11-20 22:39:29 +01:00
Fedor Isakov 7762095b8d Bump up reactor version to 0.9.2 2018-11-04 12:54:32 +01:00
Fedor Isakov 1b584d2825 Reactor API changes: EvaluationResult and FailureHandler.
Failures are no longer propagated as exceptions, instead evaluation
returns optional failure.
2018-11-04 12:54:32 +01:00
Fedor Isakov d091b291c3 Experimental alternative implementation of rule matching algo 2018-10-08 15:08:36 +02:00
Fedor Isakov 388999833e Minor code optimization 2018-10-08 15:08:11 +02:00
Fedor Isakov bc69a2e291 Minor code reorganization and refactoring. Extract MatchingProbe interface. 2018-10-05 11:25:29 +02:00
Fedor Isakov 6627c06490 Fix matching of reactivated constraints. Fix REF-ed MetaLogical. Minor code cleanup. 2018-09-13 13:52:33 +02:00
Fedor Isakov 55801449fe Ignore IDEA's shelf files 2018-09-10 10:54:38 +02:00
Fedor Isakov 0d88525aa7 Optimize and reorganize occurrence matching 2018-09-10 10:16:34 +02:00
Fedor Isakov a95b1c1311 Document and optimize implementation of PersistentTermTrie.
Introduce alternative "classic" implementation of TermTrie.
Switch to ClassicTermTrie.
2018-09-09 17:14:13 +02:00
Fedor Isakov 3bdcbc0aa8 Rename TermTrie -> PersistentTermTrie, remove dummy usages. 2018-09-08 13:16:43 +02:00
Fedor Isakov 56bed6d03d Some more minor optimisations 2018-09-06 18:28:45 +02:00
Fedor Isakov 59a0d958d7 Minor optimisations and code cleanup 2018-09-05 17:14:24 +02:00
Fedor Isakov d26b7197fd Fix a bug in new matching algorithm that prevented correct matching of ref-ed metalogicals with terms. 2018-08-19 17:32:59 +02:00
Fedor Isakov faaa9f12d6 Cleanup reactor code, drop obsolete code:
old matching algorithm implementation,
store occurrences indexing,
propagation history.
2018-08-04 16:10:35 +02:00
Fedor Isakov 75c6dff551 Optimizing new matching algorithm. Keep an index of occurrence slots for each rule. 2018-08-04 16:10:35 +02:00
Fedor Isakov d8c2310f98 Deprecate primary symbols in handler. All usages are safe to be dropped. 2018-08-04 16:10:35 +02:00
Fedor Isakov d023cf8466 Change reactor library version to 0.9.1 (new matching algo) 2018-08-03 11:48:35 +02:00
Fedor Isakov 862f7182ff Fix double exec of rule builders. Ensure all rules have unique tags. 2018-08-03 11:48:35 +02:00
Fedor Isakov 44b2004091 Experimentally switch to the new matching algorithm 2018-08-03 11:48:31 +02:00
Fedor Isakov 74402a8a1c New rule matching algorithm 2018-08-03 11:48:23 +02:00
Fedor Isakov 1609b5838d Correct the path to git root 2018-07-26 16:12:31 +02:00
Fedor Isakov 814baf4bce Update readme files. 2018-07-19 15:12:34 +02:00
Fedor Isakov a3f431b6b8 Fix a concurrent modification problem introduced inadvertently. 2018-06-22 15:27:17 +02:00
Fedor Isakov 558b068895 Disable an awkward optimization that had caused problems (failure to yield a correct match). 2018-06-20 17:51:22 +02:00
Fedor Isakov 6e0b9dee50 Switch to latest Kotlin release. 2018-03-05 12:02:37 +01:00
Fedor Isakov 4ea4b5cae5 Automatically update files in .idea folder. 2018-03-05 11:56:32 +01:00
Fedor Isakov 3a4d1bf7ae Another config file. 2017-11-09 12:02:59 +01:00
Fedor Isakov 7b113d5a21 Roll back an optimisation discriminating non-primary constraint symbols.
Doing so would change the semantics too much without apparent gains.
2017-11-09 12:02:27 +01:00
Fedor Isakov 2fb1f25d4c Minor code cleanup 2017-11-06 16:37:37 +01:00
Fedor Isakov 11d87c7846 Minor performance tweaks. 2017-11-03 12:09:43 +01:00
Fedor Isakov 741a803553 Code cleanup in matcher. 2017-11-02 14:51:57 +01:00
Fedor Isakov 1b809205e5 Minor optimization and refactoring in rule matcher. 2017-10-31 12:27:39 +01:00
Fedor Isakov c05dad493c Reimplement unification algorithm in Kotlin using jtrove lib. Add dependency on trove4. 2017-10-30 18:22:02 +01:00
Fedor Isakov d5cd9b825c Avoid including value of a Logical into toString() results, as it may cause infinite loop. 2017-10-13 11:53:40 +02:00
Fedor Isakov f65c0ce56e Update kotlin version to 1.1.4. 2017-10-06 12:10:42 +02:00
Fedor Isakov bfd6010b7d Fix a bug in rule matching preventing good matches to be reported. Tests. 2017-10-06 12:09:57 +02:00
Fedor Isakov 3c96e3d36c Rewrite TermTrie to not use recursion. Optimize put/lookup for speed. 2017-07-16 14:43:46 +02:00