sml.py
changeset 21 b7480b2e8fd2
parent 20 1f97011ea795
child 22 53f84d131998
     1.1 --- a/sml.py	Wed May 18 03:23:35 2011 +0200
     1.2 +++ b/sml.py	Wed May 18 03:51:08 2011 +0200
     1.3 @@ -36,7 +36,8 @@
     1.4      print "reduced iterated modalities: \t%s (%i)" % (formula, formula.depth()) 
     1.5      formula = reduce_iter(dist_mod((formula)))
     1.6      print "distributed modalities+: \t%s (%i)" % (formula, formula.depth()) 
     1.7 -    formula = None
     1.8 +    formula = mcnf(formula)
     1.9 +    print "alpha mcnf: \t\t\t%s (%i)" % (formula, formula.depth())
    1.10  
    1.11  def values(fun, f):  
    1.12      return [fun(v) for v in f.values] 
    1.13 @@ -86,7 +87,13 @@
    1.14      ids = (formula.id, formula.values[0].id)
    1.15      if ids in distmap:
    1.16          return distmap[ids](values(dist_mod, formula.values[0]))
    1.17 -    return formula.__class__(values(dist_mod, formula))        
    1.18 +    return formula.__class__(values(dist_mod, formula))    
    1.19 +
    1.20 +def mcnf(formula):
    1.21 +    if formula.id == OR:
    1.22 +        conj_id = int(formula.values[1].id == AND) 
    1.23 +        return And([Or([formula.values[conj_id].values[0], formula.values[1 - conj_id]]), 
    1.24 +                    Or([formula.values[conj_id].values[1], formula.values[1 - conj_id]])]);
    1.25   
    1.26  NOT = "~"
    1.27  AND = "&"