(*args: BoolRef)
| 1321 | |
| 1322 | |
| 1323 | def Or(*args: BoolRef) -> BoolRef: |
| 1324 | if len(args) == 1 and isinstance(args[0], list): |
| 1325 | args = tuple(args[0]) |
| 1326 | if len(args) == 0: |
| 1327 | return BoolVal(False) |
| 1328 | if len(args) == 1: |
| 1329 | return args[0] |
| 1330 | merged: frozenset[tuple[str, ASTSort]] = frozenset().union(*(a._vars for a in args)) |
| 1331 | ast: ASTNode = args[0]._ast |
| 1332 | for a in args[1:]: |
| 1333 | ast = BinOpNode(BinOp.OR, ast, a._ast) |
| 1334 | return BoolRef(ast, merged) |
| 1335 | |
| 1336 | |
| 1337 | def Not(a: BoolRef) -> BoolRef: |