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 > 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 > » < a href = "../index.html" > Pulselib< / a > » 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 = "../index.html#module-PulseAbductiveDomain" > 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 = "../index.html#module-PulseAccessResult" > PulseAccessResult< / a > < / code > < / div > < aside > < p > Wrapper around < code > PathCondition< / code > that operates on < a href = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../../IR/IntLit/index.html#type-t" > IR.IntLit.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulsePathCondition/index.html#type-operand" > 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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < / code > < / td > < / tr > < / table > < / dt > < / dl > < dl > < 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 = "../PulseAbstractValue/index.html#type-t" > 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 = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../../IR/Unop/index.html#type-t" > IR.Unop.t< / a > < span > - > < / span > < a href = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../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 = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < a href = "../PulseAbstractValue/index.html#type-t" > 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 = "../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 = "../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 = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../PulseAbstractValue/index.html#type-t" > PulseBasicInterface.AbstractValue.t< / a > < span > - > < / span > < a href = "../../IR/Typ/index.html#type-t" > IR.Typ.t< / a > < span > - > < / span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < span > - > < / span > < span > < a href = "../PulseAbductiveDomain/index.html#type-t" > AbductiveDomain.t< / a > < a href = "../PulseAccessResult/index.html#type-t" > AccessResult.t< / a > < / span > < / code > < / dt > < / dl > < / div > < / body > < / html >