Alphabet

or:[form × form] ⟶ form
not:[form] ⟶ form
forall:[term → form] ⟶ form
exists:[term → form] ⟶ form
and:[form × form] ⟶ form

Variables

Q:term → form
P:form

Rules

and(P, forallx46:term.Q · x46))forallx45:term.and(P, Q · x45))
and(forallx48:term.Q · x48), P)forallx47:term.and(Q · x47, P))
and(P, existsx50:term.Q · x50))existsx49:term.and(P, Q · x49))
and(existsx52:term.Q · x52), P)existsx51:term.and(Q · x51, P))
or(P, forallx54:term.Q · x54))forallx53:term.or(P, Q · x53))
or(forallx56:term.Q · x56), P)forallx55:term.or(Q · x55, P))
or(P, existsx58:term.Q · x58))existsx57:term.or(P, Q · x57))
or(existsx60:term.Q · x60), P)existsx59:term.or(Q · x59, P))
not(forallx62:term.Q · x62))existsx61:term.not(Q · x61))
not(existsx64:term.Q · x64))forallx63:term.not(Q · x63))