### Navigation

- index
- modules |
- next |
- previous |
- Symbolic Logic »

# 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 tree
  - `vdict` – 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` and `rv` according to the operator `op`.

  INPUT:

  - `op` – a string or character representing a boolean operator
  - `lv` – a boolean or variable
  - `rv` – 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

### Navigation

- index
- modules |
- next |
- previous |
- Symbolic Logic »