@@ -92,23 +92,10 @@ class NNF(metaclass=abc.ABCMeta):
9292 def __and__ (self : T_NNF , other : U_NNF ) -> 'And[t.Union[T_NNF, U_NNF]]' :
9393 """And({self, other})"""
9494 return And ({self , other })
95- # if not flatten:
96- # return And({self, other})
97- # else:
98- # # optionally prevent unnecessary nesting
99- # if type(self) == And:
100- # return And({*self.children, *other.children}) if type(other) == And else And({*self.children, other})
101-
10295
10396 def __or__ (self : T_NNF , other : U_NNF ) -> 'Or[t.Union[T_NNF, U_NNF]]' :
10497 """Or({self, other})"""
10598 return Or ({self , other })
106- # if not flatten:
107- # return Or({self, other})
108- # else:
109- # # optionally prevent unnecessary nesting
110- # if type(self) == Or:
111- # return Or({*self.children, *other.children}) if type(other) == Or else Or({*self.children, other})
11299
113100 def __rshift__ (self : T_NNF , other : U_NNF )-> 'Or[t.Union[T_NNF.negate(), U_NNF]]' :
114101 """Or({self.negate(), other})"""
@@ -1882,59 +1869,4 @@ def __call__(self, **settings: str) -> _ConfigContext:
18821869config = _Config ()
18831870
18841871
1885- from nnf import amc , dsharp , kissat , operators , pysat , tseitin # noqa: E402
1886-
1887- if __name__ == "__main__" :
1888- # test nnf nesting - and
1889- nnf_formula = Var (1 )
1890- for i in range (10 ):
1891- nnf_formula = nnf_formula & Var (i )
1892- nnf_formula_2 = Var (10 )
1893- for i in range (11 , 20 ):
1894- nnf_formula_2 = nnf_formula_2 & Var (i )
1895- nnf_formula_3 = nnf_formula & nnf_formula_2
1896- print ()
1897- print (nnf_formula )
1898- print (nnf_formula_2 )
1899- print (nnf_formula_3 )
1900- print (flatten (nnf_formula_3 ))
1901-
1902- # test nnf nesting - or
1903- nnf_formula = Var (1 )
1904- for i in range (10 ):
1905- nnf_formula = nnf_formula | Var (i )
1906- nnf_formula_2 = Var (10 )
1907- for i in range (11 , 20 ):
1908- nnf_formula_2 = nnf_formula_2 | Var (i )
1909- nnf_formula_3 = nnf_formula | nnf_formula_2
1910- print ()
1911- print (nnf_formula )
1912- print (nnf_formula_2 )
1913- print (nnf_formula_3 )
1914- print (flatten (nnf_formula_3 ))
1915-
1916- #test nnf nesting - both and's and or's
1917- print ()
1918- nnf_formula = Var (1 )
1919- for i in range (10 ):
1920- nnf_formula = nnf_formula & (Var (i ) | Var (i + 1 ))
1921- print (nnf_formula )
1922- print (flatten (nnf_formula ))
1923-
1924- print ()
1925- nnf_formula = Var (1 )
1926- for i in range (10 ):
1927- nnf_formula = nnf_formula | (Var (i ) & Var (i + 1 ))
1928- print (nnf_formula )
1929- print (flatten (nnf_formula ))
1930-
1931- x , a , y , z , b , c = Var ("x" ), Var ("a" ), Var ("y" ), Var ("z" ), Var ("b" ), Var ("c" )
1932- nnf_formula = x | ((a & y ) & z & (b | c ))
1933- print ()
1934- print (nnf_formula )
1935- print (flatten (nnf_formula ))
1936-
1937- nnf_formula = x | (((a & ((y | ((x | z ) & b )) & c ))))
1938- print ()
1939- print (nnf_formula )
1940- print (flatten (nnf_formula ))
1872+ from nnf import amc , dsharp , kissat , operators , pysat , tseitin # noqa: E402
0 commit comments