def mapping(r, s, v): mapping = {} mapping_1 = {} seq = Seq() cabezaY = v.cabeza.argumentos varsX = r.orden j = 0 for y in s.orden: if cabezaY.has_key(y): mapping[y] = varsX[j] mapping_1[varsX[j]] = y else: mapping[y] = seq.nuevaVar(y) j = j + 1 return mapping, mapping_1
def congelarCuerpo(q): freeze = {} map = {} seq = Seq() for subob in q.cuerpo: pred = subob.predicado args = subob.argumentos varsc = [] for var in subob.orden: if args[var] == 0: if map.has_key(var): varsc.append(map[var]) else: ctte = seq.next() varsc.append(ctte) map[var] = ctte subobcon = SubObjetivo(pred, {}, varsc) if freeze.has_key(pred): freeze[pred].append(subobcon) else: freeze[pred] = [subobcon] return (freeze, map)