[ai] remove option to join sometimes in disjunctive domain

Summary: It was unused and not obviously useful.

Reviewed By: mbouaziz, skcho

Differential Revision: D14258485

fbshipit-source-id: c028e12c1
master
Jules Villard 6 years ago committed by Facebook Github Bot
parent c4c66b76f5
commit c02edf85a9

@ -34,7 +34,7 @@ module type MakeHIL = functor (C : ProcCfg.S) -> sig
end
module type DisjunctiveConfig = sig
val join_policy : [`JoinAfter of int | `UnderApproximateAfter of int | `NeverJoin]
val join_policy : [`UnderApproximateAfter of int | `NeverJoin]
val widen_policy : [`UnderApproximateAfterNumIterations of int]
end
@ -76,20 +76,6 @@ module MakeHILDisjunctive (TransferFunctions : HILDisjReady) (DConfig : Disjunct
union
| `UnderApproximateAfter n ->
if Set.cardinal union <= n then union else lhs
| `JoinAfter n ->
if Set.cardinal union <= n then union
else
let joined =
Set.fold
(fun dom joined ->
match joined with
| None ->
Some dom
| Some joined ->
Some (TransferFunctions.Domain.join dom joined) )
union None
in
Set.singleton (Option.value_exn joined)
let widen ~prev ~next ~num_iters =

@ -39,10 +39,7 @@ end
module type DisjunctiveConfig = sig
val join_policy :
[ `JoinAfter of int
(** when the set of disjuncts gets bigger than [n] the underlying domain's join is called to
collapse them into one state *)
| `UnderApproximateAfter of int
[ `UnderApproximateAfter of int
(** When the set of disjuncts gets bigger than [n] then just stop adding new states to it,
drop any further states on the floor. This corresponds to an under-approximation/bounded
approach. *)

Loading…
Cancel
Save