Example #1
0
File: match.py Project: cap/cheqed
 def match_variable(self, pattern, term):
     if can_unify([pattern.qtype, term.qtype]):
         if pattern.name in self.assignments:
             if self.assignments[pattern.name] == term:
                 return
             raise UnificationError('Cannot match %s with both %s and %s.'
                                    % (pattern, term,
                                       assignments[pattern.name]))
         self.assignments[pattern.name] = term
     else:
         self.fail(pattern, term)
Example #2
0
File: match.py Project: cap/cheqed
 def match_constant(self, pattern, term):
     if pattern.name != term.name \
             or not can_unify([pattern.qtype, term.qtype]):
         self.fail(pattern, term)