1.1 --- a/sml.py Tue May 17 18:01:22 2011 +0200
1.2 +++ b/sml.py Tue May 17 18:04:06 2011 +0200
1.3 @@ -33,7 +33,6 @@
1.4 def expand_imp_eq(formula):
1.5 map = {IMP: lambda (a, b): Or([Not([a]), b]),
1.6 EQ: lambda (a, b): And([Or([Not([a]), b]), Or([a, Not([b])])])}
1.7 -
1.8 def values():
1.9 return [expand_imp_eq(v) for v in formula.values]
1.10
1.11 @@ -46,10 +45,8 @@
1.12 OR: lambda (a, b): And([negate(a), negate(b)]),
1.13 VARIABLE: lambda (a,): Not([a]),
1.14 NOT: lambda (a,): a}
1.15 -
1.16 def values():
1.17 return [reduce_not(v) for v in formula.values]
1.18 -
1.19 def negate(f):
1.20 return negmap[f.id](f.values)
1.21
1.22 @@ -58,22 +55,6 @@
1.23 if formula.id == NOT:
1.24 return negate(formula.values[0])
1.25 return formula.__class__(values())
1.26 -
1.27 -
1.28 -
1.29 -
1.30 - map = {NOT: lambda (a,): not isinstance(a, Not)
1.31 - and not isinstance(a.values[0], Not)
1.32 - and a.__class__([Not([reduce2(v)]) for v in a.values]) or a.values[0]}
1.33 -
1.34 - def values():
1.35 - return [reduce2(v) for v in formula.values]
1.36 -
1.37 - if not isinstance(formula, Operator) or not isinstance(formula.values[0], Operator):
1.38 - return formula
1.39 - elif formula.id not in map:
1.40 - return formula.__class__(values())
1.41 - return map[formula.id](values())
1.42
1.43 NOT = "~"
1.44 AND = "&"