You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
< html xmlns = "http://www.w3.org/1999/xhtml" > < head > < title > Pulselib__PulseArithmetic (infer.Pulselib__PulseArithmetic)< / title > < link rel = "stylesheet" href = "../../odoc.css" / > < meta charset = "utf-8" / > < meta name = "generator" content = "odoc 1.5.1" / > < meta name = "viewport" content = "width=device-width,initial-scale=1.0" / > < script src = "../../highlight.pack.js" > < / script > < script > hljs . initHighlightingOnLoad ( ) ; < / script > < / head > < body > < div class = "content" > < header > < nav > < a href = "../index.html" > Up< / a > – < a href = "../index.html" > infer< / a > » Pulselib__PulseArithmetic< / nav > < h1 > Module < code > Pulselib__PulseArithmetic< / code > < / h1 > < / header > < div class = "spec module" id = "module-AbductiveDomain" > < a href = "#module-AbductiveDomain" class = "anchor" > < / a > < code > < span class = "keyword" > module< / span > AbductiveDomain = < a href = "../Pulselib/index.html#module-PulseAbductiveDomain" > Pulselib.PulseAbductiveDomain< / a > < / code > < / div > < div class = "spec module" id = "module-AccessResult" > < a href = "#module-AccessResult" class = "anchor" > < / a > < code > < span class = "keyword" > module< / span > AccessResult = < a href = "../Pulselib/index.html#module-PulseAccessResult" > Pulselib.PulseAccessResult< / a > < / code > < / div > < aside > < p > Wrapper around < code > PathCondition< / code > that operates on < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > < code > AbductiveDomain.t< / code > < / a > .< / p > < / aside > < dl > < dt class = "spec value" id = "val-and_nonnegative" > < a href = "#val-and_nonnegative" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > and_nonnegative : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dt class = "spec value" id = "val-and_positive" > < a href = "#val-and_positive" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > and_positive : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dt class = "spec value" id = "val-and_eq_int" > < a href = "#val-and_eq_int" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > and_eq_int : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../IR/IntLit/index.html#type-t" > IR.IntLit.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < / dl > < dl > < dt class = "spec type" id = "type-operand" > < a href = "#type-operand" class = "anchor" > < / a > < code > < span class = "keyword" > type< / span > operand< / code > < code > = < a href = "../Pulselib/PulsePathCondition/index.html#type-operand" > Pulselib.PulseBasicInterface.PathCondition.operand< / a > < / code > < code > = < / code > < table class = "variant" > < tr id = "type-operand.LiteralOperand" class = "anchored" > < td class = "def constructor" > < a href = "#type-operand.LiteralOperand" class = "anchor" > < / a > < code > | < / code > < code > < span class = "constructor" > LiteralOperand< / span > < span class = "keyword" > of< / span > < a href = "../IR/IntLit/index.html#type-t" > IR.IntLit.t< / a > < / code > < / td > < / tr > < tr id = "type-operand.AbstractValueOperand" class = "anchored" > < td class = "def constructor" > < a href = "#type-operand.AbstractValueOperand" class = "anchor" > < / a > < code > | < / code > < code > < span class = "constructor" > AbstractValueOperand< / span > < span class = "keyword" > of< / span > < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < / code > < / td > < / tr > < tr id = "type-operand.FunctionApplicationOperand" class = "anchored" > < td class = "def constructor" > < a href = "#type-operand.FunctionApplicationOperand" class = "anchor" > < / a > < code > | < / code > < code > < span class = "constructor" > FunctionApplicationOperand< / span > < span class = "keyword" > of< / span > < / code > < code > {< / code > < table class = "record" > < tr id = "type-operand.f" class = "anchored" > < td class = "def field" > < a href = "#type-operand.f" class = "anchor" > < / a > < code > f : < a href = "../Pulselib/PulseFormula/index.html#type-function_symbol" > Pulselib.PulseFormula.function_symbol< / a > ;< / code > < / td > < / tr > < tr id = "type-operand.actuals" class = "anchored" > < td class = "def field" > < a href = "#type-operand.actuals" class = "anchor" > < / a > < code > actuals : < span > < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > list< / span > ;< / code > < / td > < / tr > < / table > < code > }< / code > < / td > < / tr > < / table > < / dt > < / dl > < dl > < dt class = "spec value" id = "val-and_equal" > < a href = "#val-and_equal" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > and_equal : < a href = "index.html#type-operand" > operand< / a > < span > - > < / span > < a href = "index.html#type-operand" > operand< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dt class = "spec value" id = "val-eval_binop" > < a href = "#val-eval_binop" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > eval_binop : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../IR/Binop/index.html#type-t" > IR.Binop.t< / a > < span > - > < / span > < a href = "index.html#type-operand" > operand< / a > < span > - > < / span > < a href = "index.html#type-operand" > operand< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dt class = "spec value" id = "val-eval_unop" > < a href = "#val-eval_unop" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > eval_unop : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../IR/Unop/index.html#type-t" > IR.Unop.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dt class = "spec value" id = "val-prune_binop" > < a href = "#val-prune_binop" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > prune_binop : < span > negated:bool< / span > < span > - > < / span > < a href = "../IR/Binop/index.html#type-t" > IR.Binop.t< / a > < span > - > < / span > < a href = "index.html#type-operand" > operand< / a > < span > - > < / span > < a href = "index.html#type-operand" > operand< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dt class = "spec value" id = "val-prune_eq_zero" > < a href = "#val-prune_eq_zero" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > prune_eq_zero : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dd > < p > helper function wrapping < code > prune_binop< / code > < / p > < / dd > < / dl > < dl > < dt class = "spec value" id = "val-prune_positive" > < a href = "#val-prune_positive" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > prune_positive : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < dd > < p > helper function wrapping < code > prune_binop< / code > < / p > < / dd > < / dl > < dl > < dt class = "spec value" id = "val-is_known_zero" > < a href = "#val-is_known_zero" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > is_known_zero : < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > bool< / code > < / dt > < dt class = "spec value" id = "val-is_unsat_cheap" > < a href = "#val-is_unsat_cheap" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > is_unsat_cheap : < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > bool< / code > < / dt > < dt class = "spec value" id = "val-has_no_assumptions" > < a href = "#val-has_no_assumptions" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > has_no_assumptions : < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > bool< / code > < / dt > < dt class = "spec value" id = "val-and_equal_instanceof" > < a href = "#val-and_equal_instanceof" class = "anchor" > < / a > < code > < span class = "keyword" > val< / span > and_equal_instanceof : < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbstractValue/index.html#type-t" > Pulselib.PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../IR/Typ/index.html#type-t" > IR.Typ.t< / a > < span > - > < / span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../Pulselib/PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../Pulselib/PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < / dl > < / div > < / body > < / html >