Skip to content

Commit 27993e6

Browse files
minor bug of double checker fixed
1 parent 416c3a1 commit 27993e6

4 files changed

Lines changed: 11 additions & 10 deletions

File tree

horndb/horndb.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,15 +595,15 @@ class DoubleChecker:
595595
"""
596596
Double check the result of the learner
597597
"""
598-
def __init__(self, file_name, logger):
598+
def __init__(self, file_name, logger, free_vars_prefix='Var_'):
599599
self.solver = z3.Solver()
600600
self.solver.set(timeout=120000)
601601
db = load_horn_db_from_file(file_name, original=True)
602602
self.rules = list(reversed(db.get_rules())) # "query" is always trivial
603603
self.rels = list(reversed(db.get_rels_list()))
604604
self.rel_decls = [r.decl() for r in self.rels]
605605
self.logger = logger
606-
self.free_vars_prefix = 'Var_' # None for v1 and v2
606+
self.free_vars_prefix = free_vars_prefix # None for v1 and v2, 'Var_' for Chronosymbolic
607607

608608

609609
def get_def(self, rule, cand_map, rel=None):

learner/learner.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def __init__(self, db: HornClauseDb, params, ClassDT, log_path='log.txt', file_n
8080
self.unknowns = {}
8181
self.mod_nums = OrderedSet(self.params['MOD'])
8282
self.div_nums = OrderedSet(self.params['DIV'])
83+
self.free_vars_prefix = None
8384
if not os.path.exists('tmp'):
8485
os.makedirs('tmp')
8586

test.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727

2828
# --- Set agent and DT algorithm here ---
29-
# ClassAgent = Chronosymbolic
30-
ClassAgent = DataDrivenLearner # LinearArbitrary like
29+
ClassAgent = Chronosymbolic
30+
# ClassAgent = DataDrivenLearner # LinearArbitrary like
3131
# ClassAgent = DataDrivenLearner_v2 # LinearArbitrary like, optimized
3232

3333
ClassDT = C5DT # C5.0
@@ -88,7 +88,7 @@ def run_single_file(args, logger, agent_params):
8888
is_successful, _, is_correct = run_Agent(Agent, logger)
8989
if is_correct and is_successful:
9090
learner_cand_map = None if Agent.__class__.__name__ != 'Chronosymbolic' else Agent.learner_cand_map
91-
_ = double_check(args.file_name, logger, Agent.cand_map, learner_cand_map)
91+
_ = double_check(args.file_name, logger, Agent.cand_map, learner_cand_map, Agent.free_vars_prefix)
9292

9393

9494
def run_dir_mode(args, logger, agent_params):
@@ -157,7 +157,7 @@ def run_dir_mode(args, logger, agent_params):
157157

158158
if is_correct and is_successful:
159159
learner_cand_map = None if Agent.__class__.__name__ != 'Chronosymbolic' else Agent.learner_cand_map
160-
_ = double_check(path_file, logger, Agent.cand_map, learner_cand_map)
160+
_ = double_check(path_file, logger, Agent.cand_map, learner_cand_map, Agent.free_vars_prefix)
161161

162162
logger.warning('\n\n')
163163

@@ -253,7 +253,7 @@ def run_filelist_mode(args, logger, agent_params):
253253

254254
if is_correct and is_successful:
255255
learner_cand_map = None if Agent.__class__.__name__ != 'Chronosymbolic' else Agent.learner_cand_map
256-
_ = double_check(file_name, logger, Agent.cand_map, learner_cand_map)
256+
_ = double_check(file_name, logger, Agent.cand_map, learner_cand_map, Agent.free_vars_prefix)
257257

258258
logger.warning('\n\n')
259259

utils/la_utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ def load_yaml(config_path):
1515
params = yaml.load(f, Loader=yaml.SafeLoader)
1616
return params
1717

18-
def double_check(file_name, logger, cand_map, learner_cand_map=None):
18+
def double_check(file_name, logger, cand_map, learner_cand_map=None, free_vars_prefix='Var_'):
1919
from horndb.horndb import DoubleChecker
20-
double_checker = DoubleChecker(file_name, logger)
20+
double_checker = DoubleChecker(file_name, logger, free_vars_prefix)
2121
res = False
2222
try:
2323
logger.warning('\n************** Double Check **************')
2424
res = double_checker.check(cand_map)
2525
except RuntimeError:
26-
logger.warning('CHC System Double Check TIMEOUT')
26+
logger.warning('CHC System Double Check ERROR/TIMEOUT')
2727
except KeyboardInterrupt:
2828
logger.warning('CHC System Double Check KILLED')
2929

0 commit comments

Comments
 (0)