# Fórmula (en notación polaca inversa) # para obtener uno de sus tableaux formula = "qpOq-p-YY" # Se crea el tableau ta = T.Tableaux(formula) # Imprime el resultado en consola if len(ta) == 0: print('La fórmula es insatisfacible') else: print('La fórmula es satisfacible.') print('Las hojas abiertas del tableaux son:') for l in ta: print(T.imprime_hoja(l)) print("Par complementario:") print('\n') t1 = T.par_complementario([ T.Tree('1', None, None), T.Tree('2', None, None), T.Tree('-', None, T.Tree('3', None, None)), T.Tree('1', None, None) ]) print(t1) print('\n')
# Convierto las interpretaciones que arrojo el tableaux denuevo a formulas para aplicar nuevas reglas formula = [] temporal = [] for i in sol_parcial: temporal.append(t.StringtoTree(fun.listatoNPI(fun.genaux(i), ''), baldosas)) form = temporal[0] for i in range(1, len(temporal)): form = t.Tree('O', form, temporal[i]) formula.append(form) formula.append(t.StringtoTree( 'eb-Ye-bYO', baldosas)) #desde el inicio solo se puede ir a un unico sitio formula.append(t.StringtoTree( 'lo-Yl-oYO', baldosas)) #solo se puede llegar al final por l o por o print t.imprime_hoja(formula) satis, sol_parcial = t.Tableaux([formula], baldosas) for i in sol_parcial: print i # Regla #3: identificar caminos cerrados noMuros = [ x for x in baldosas if (x not in m) and (x != 'a') and (x != 'p') ] # Escojo las baldosasa que no son muros y son diferentes a el inicio y el final formula = [] temporal = [] for i in sol_parcial: temporal.append(t.StringtoTree(fun.listatoNPI(fun.genaux(i), ''), baldosas)) form = temporal[0] for i in range(1, len(temporal)): form = t.Tree('O', form, temporal[i])