sml.py
changeset 16 559d9912dded
parent 15 fa6d6a2cefe4
child 17 aa8691f59e8f
     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 = "&"