Commit Graph

158 Commits

Author SHA1 Message Date
Fedor Isakov 7fe7662873 Fix the failing match if case of the wrong constraints order. Test. 2016-11-23 15:55:45 +01:00
Fedor Isakov b4e9d45f7e Enforce the constraint transparency contract on bound logicals: treat the value as the constraint argument. Remove misbehaving test. 2016-10-13 11:07:27 +02:00
Fedor Isakov 60cd075bf3 Specifying occurrence arguments to patternPredicates.
Correctly wrapping/unwrapping of arguments when matching rules.
Optimizing MatchTrie: process related occurrences first to avoid quadratic complexity.
2016-06-26 18:19:30 +02:00
Fedor Isakov 61ef4ff4af Refactor the way logical's parent update are handled in the occurrence store, fix the broken update leading to corrupted store.
Ensure constraint occurrences are alive before reactivating.
2016-06-16 11:48:06 +02:00
Fedor Isakov ed2ff61ec4 Reimplemented TermTrie using discrimination trees. 2016-06-06 16:18:49 +02:00
Fedor Isakov 57a76ad43c Fix memory leak 2016-06-02 12:20:00 +02:00
Fedor Isakov 8185605e99 Optimizing term trie and rules index. Using bitset to mark value tokens incidental with nodes in the "term superposition" of term trie. 2016-06-02 11:03:19 +02:00
Fedor Isakov 0f7ffd9141 Support for triggering arbitrary predicates on an occurrence match with a head's rule.
Properly handling constraint pattern/occurrence match with values/variables on either side using modal unificaiton.
2016-05-27 20:55:31 +02:00
Fedor Isakov 1652eacfe3 Integrating TermTrie in the occurrence store. 2016-05-22 17:09:02 +02:00
Fedor Isakov e9969b08b7 Integrating TermTrie in the rules index, tests. 2016-05-22 15:44:35 +02:00
Fedor Isakov 82d5763039 TermTrie: maintaining the order of the values. 2016-05-19 20:31:05 +02:00
Fedor Isakov b42f005c7e TermTrie: supporting term variables. 2016-05-19 16:39:52 +02:00
Fedor Isakov a44366921b TermTrie: building an index of rules/occurrences from term values. Term variables not yet supported. 2016-05-18 15:44:56 +02:00
Fedor Isakov 79e920c546 Refactoring utility classes to a separate package 2016-05-10 10:09:18 +02:00
Fedor Isakov b54673b5a8 Matcher optimizations: get rid of sequence and flatMap, re-implement iterating over MatchTrie using primitives, ensure no exponential search is necessary. 2016-05-10 10:04:32 +02:00
Fedor Isakov 43e9b35e1e Some more minor optimizations in the match processing. Minor code refactorings. 2016-04-24 17:53:49 +02:00
Fedor Isakov 2d46cd9542 Rewritten Matcher to not rely on Sequence and flatMap, instead using MatchTrie. OccurrenceIndex interface made clear. Some minor code optimizations. 2016-04-21 20:49:06 +02:00
Fedor Isakov d0bf94fc91 Support body alternation in Handler. Adopt the changes in the API. 2016-04-15 13:59:23 +02:00
Fedor Isakov e55108030b Avoid dependency of Handler onto Solver. Access solver via the evaluation session. 2016-04-07 11:40:50 +02:00
Fedor Isakov a1a17426b7 Extract PropagationHistory. Code refactoring and cleanup in preparation to switching to persistent OccurrenceStore and Handler. 2016-04-06 13:23:04 +02:00
Fedor Isakov 8c103ddbd1 Integrate changes in the API imported from the Logic project. Change the code accordingly. 2016-03-16 16:26:25 +01:00
Fedor Isakov 6089f8c5ff Optimize selection of rules to try based on the values in the constraint arguments 2016-03-09 15:14:51 +01:00
Fedor Isakov ec6ce31cc2 Propagation history feature, tests. Minor refactorings. 2016-03-07 15:23:57 +01:00
Fedor Isakov 63bb7f578d Ensure the null value is never exposed when merging variable (ground-free) 2016-03-03 16:42:09 +01:00
Fedor Isakov 701a434d69 Reactivate occurrences on union of var arguments. Tests. 2016-03-03 12:58:53 +01:00
Fedor Isakov 619337151f Updated API sources from the latest version of Logic. Adapted to the new API. LogicalPattern -> MetaLogical. Renamed all *pattern entities. RuleBuilder for tests. 2016-01-29 14:41:57 +01:00
Fedor Isakov 322485c046 Index occurrences by value.
Lookup of occurrences in the store is forced to match value OR logical (probably need both).
2016-01-25 18:00:18 +01:00
Fedor Isakov ed76bdae73 Optimizing looking up constraint occurrences to complete a match.
Parent observer for logicals, maintaining the logical-to-occurrence index in occurrence store.
Some code refactoring.
2016-01-24 20:45:46 +01:00
Fedor Isakov b8aa435eb4 Introduced Profiler to track bottlenecks. Some obvious optimizations. Refactoring for cleaner code. 2016-01-21 11:44:52 +01:00
Fedor Isakov caf7ba78f9 Make sure logical instances have unique symbols (a unification lib's requirement) 2016-01-19 12:03:55 +01:00
Fedor Isakov 3cf3f4b21d Updated API sources from the latest version of Logic. Adapted to the new API. Invocation/occurrence arguments. 2016-01-13 23:09:53 +01:00
Fedor Isakov bedb9592a0 Updated API sources from the latest version of Logic. Adapted to the new API. Activation stack. 2016-01-11 16:07:52 +01:00
Fedor Isakov e97b854f4c Updated API sources from the latest version of Logic. Adapted to the new API. 2016-01-09 02:14:10 +01:00
Fedor Isakov 057c4d7c69 Logical value observers. Testing reactivation of constraint occurrences. 2016-01-08 15:11:09 +01:00
Fedor Isakov b90bdc84c4 MemLogicalPattern. Switch to using MemLogical in tests. 2016-01-07 12:56:13 +01:00
Fedor Isakov 8aa6b04c70 Extract away program builder-related stuff: this part is going to be provided by the reactor's client 2016-01-07 12:07:55 +01:00
Fedor Isakov c3bfcc9311 Updated API sources from the latest version of Logic. Adapted to the new API. 2016-01-06 20:30:54 +01:00
Fedor Isakov 2f38824ed5 Updated API sources from the latest version of Logic. Adapted to the new API. 2015-12-27 23:42:58 +01:00
Fedor Isakov 4710c85124 Testing the primes generating program. 2015-12-27 00:51:39 +01:00
Fedor Isakov b80da31c1b Testing and fixing the handler semantics. Drop matches with occurrences that are no longer alive. 2015-12-27 00:18:26 +01:00
Fedor Isakov bc7f266997 A test of gcd program. 2015-12-25 13:31:59 +01:00
Fedor Isakov 20948a859c First real program working 2015-12-25 10:32:05 +01:00
Fedor Isakov 49ebcab10d Testing EvaluationSession and SessionSolver 2015-12-24 19:15:40 +01:00
Fedor Isakov a58af2c921 Upgraded to the latest Kotlin beta 2015-12-23 16:43:37 +01:00
Fedor Isakov a3346ae57f Adapting to changes in the API. Implemented LogicalContext. Generifying code in tests. Testing LogicalPattern. 2015-12-23 16:26:35 +01:00
Fedor Isakov 51bcebfc01 Small refactorings and code cleanup in tests 2015-12-22 18:42:06 +01:00
Fedor Isakov c04ecab6d0 Switched to using LogicalContext for the rule matching, tests 2015-12-22 11:08:00 +01:00
Fedor Isakov 03787eb8fe Implemented rule matcher using unification lib.
Refactor the code into handler and matcher.
Tests separation and cleanup.
2015-12-18 22:28:36 +01:00
Fedor Isakov 8f75050b2e Imported unification lib using maven via JitPack.io 2015-12-12 22:50:05 +01:00
Fedor Isakov 1c9ce1f5f5 Basic guards support. 2015-12-10 23:15:51 +01:00
Fedor Isakov d15f6908d5 Initial support for logicals. Small refactoring in tests. 2015-12-10 14:27:03 +01:00
Fedor Isakov fc372c1420 Initial support for expressions 2015-12-09 17:18:42 +01:00
Fedor Isakov a7708f3974 Adapting to the latest reactor API. RuleHandler and tests (no predicates yet). 2015-12-09 00:26:37 +01:00
Fedor Isakov e07f608b04 Implementing EvaluationSession 2015-12-03 21:55:03 +01:00
Fedor Isakov 80b2cd5e4c Planning session implementation. Removed Bridge module 2015-12-03 21:55:03 +01:00
Fedor Isakov db3fc2b069 Updated API sources from the latest version of Logic 2015-12-03 21:55:03 +01:00
Fedor Isakov ff71c6f990 Rules builder using the Kotlin builder pattern 2015-11-22 22:35:54 +01:00
Fedor Isakov 77c827f8cd Started with tests. Switched to kotlin runtime+stdlib from Maven 2015-11-22 18:39:36 +01:00