Evaluation of Boolean Formulas¶
AUTHORS:
Chris Gorecki (2006): initial version
Paul Scurek (2013-08-05): updated docstring formatting
EXAMPLES:
We can assign values to the variables and evaluate a formula:
sage: import sage.logic.booleval as booleval
sage: t = ['|', ['&', 'a', 'b'], ['&', 'a', 'c']]
sage: d = {'a' : True, 'b' : False, 'c' : True}
sage: booleval.eval_formula(t, d)
True
We can change our assignment of values by modifying the dictionary:
sage: d['a'] = False
sage: booleval.eval_formula(t, d)
False
-
sage.logic.booleval.
eval_f
(tree)¶ Evaluate the tree.
INPUT:
tree
– a list of three elements corresponding to a branch of a parse tree
OUTPUT:
The result of the evaluation as a boolean value.
EXAMPLES:
This example illustrates how to evaluate a parse tree:
sage: import sage.logic.booleval as booleval sage: booleval.eval_f(['&', True, False]) False sage: booleval.eval_f(['^', True, True]) False sage: booleval.eval_f(['|', False, True]) True
-
sage.logic.booleval.
eval_formula
(tree, vdict)¶ Evaluate the tree and return a boolean value.
INPUT:
tree
– a list of three elements corresponding to a branch of a parse treevdict
– a dictionary containing variable keys and boolean values
OUTPUT:
The result of the evaluation as a boolean value.
EXAMPLES:
This example illustrates evaluating a boolean formula:
sage: import sage.logic.booleval as booleval sage: t = ['|', ['&', 'a', 'b'], ['&', 'a', 'c']] sage: d = {'a' : True, 'b' : False, 'c' : True} sage: booleval.eval_formula(t, d) True
sage: d['a'] = False sage: booleval.eval_formula(t, d) False
-
sage.logic.booleval.
eval_op
(op, lv, rv)¶ Evaluate
lv
andrv
according to the operatorop
.INPUT:
op
– a string or character representing a boolean operatorlv
– a boolean or variablerv
– a boolean or variable
OUTPUT:
The evaluation of
lv op rv
as a boolean value.EXAMPLES:
We can evaluate an operator given the values on either side:
sage: import sage.logic.booleval as booleval sage: booleval.eval_op('&', True, False) False sage: booleval.eval_op('^', True, True) False sage: booleval.eval_op('|', False, True) True