Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Simplifying/negating propcalc formula

I have some code to generate randomized boolean formulas involving AND, OR, and IMPLIES for use in student assessments:

props = [propcalc.formula(l) for l in "PQRS"]
ops = ["&","|","->"]
for _ in range(3):
    shuffle(props)
    shuffle(ops)
    p = props.pop()
    q = props.pop()
    props.append(p.add_statement(q,ops.pop()))
statement = props[0]
show(statement)

It's okay, but it has some superfluous parentheses I'd like to simplify. I also would like to compute the denial of these formulas. Is there an easy recipe for this I'm overlooking?