Documentation

Blaster.Optimize.Rewriting.OptimizePropNot

@[inline]

Return true when e corresponds to the zero nat literal.

Equations
Instances For

    Given ne the operand for Not apply the following normalization rules:

    • When ne := false = e
      • return some (true = e)
    • When ne := true = e
      • return some (false = e)
    • Otherwise:
      • return none.
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Given ne the operand for Not, apply the following normalization rule:

      • When ne := 0 < e ∧ Type(a) = Nat:
        • return some (0 = e)
      • Otherwise:
        • return none
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Apply the following simplification/normalization rules on Not :

        • ¬ False ==> True
        • ¬ True ==> False
        • ¬ (¬ e) ==> e (classical)
        • ¬ (false = e) ==> true = e
        • ¬ (true = e) ==> false = e
        • ¬ (0 < e) ==> (0 = e) (if Type(e) = Nat) Assume that f = Expr.const ``Not. An error is triggered if args.size ≠ 1 (i.e., only fully applied Not expected at this stage) TODO: consider additional simplification rules
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Given ne the operand for Not apply the following normalization rules:

          • When ne := ¬ e1 ∧ ¬ e2
            • return e1 ∨ e2
          • When ne := ¬ e1 ∨ ¬ e2
            • return e1 ∧ e2
          • Otherwise:
            • return none.
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Call optimizeNot f args and apply the following simplification/normalization rules on Not :

              • ¬ (¬ e1 ∧ ¬ e2) ==> (e1 ∨ e2)
              • ¬ (¬ e1 ∨ ¬ e2) ==> (e1 ∧ e2) Assume that f = Expr.const ``Not. An error is triggered if args.size ≠ 1 (i.e., only fully applied Not expected at this stage)
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Apply simplification and normalization rules on proposition Not formulae.

                Equations
                Instances For