From 63f0e88788f9619889dd14f38c0abd02be438724 Mon Sep 17 00:00:00 2001 From: soyouzpanda Date: Sun, 9 Jun 2024 22:01:48 +0200 Subject: [PATCH] Fixed Karr domain --- domains/karr.ml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/domains/karr.ml b/domains/karr.ml index 162ef6e..67efbda 100644 --- a/domains/karr.ml +++ b/domains/karr.ml @@ -161,7 +161,8 @@ module Karr : DOMAIN = struct exception Cant_assign - let init n = E (Matrix.zero 0 n, Matrix.zero 0 1) + let init n = + E (Matrix.zero 0 n, Matrix.zero 0 1) let bottom = Bot let rec explore e n = @@ -189,7 +190,7 @@ module Karr : DOMAIN = struct else raise Cant_assign | AST_MODULO -> raise Cant_assign) | CFG_int_var var -> - ( Matrix.init 1 n (fun i j -> if j = var.var_id then Q.one else Q.zero), + ( Matrix.init 1 n (fun i j -> if j = var.var_id - 1 then Q.one else Q.zero), Q.zero ) | CFG_int_const const -> (Matrix.zero 1 n, Q.make const Z.one) | CFG_int_rand (_, _) -> raise Cant_assign @@ -201,8 +202,8 @@ module Karr : DOMAIN = struct let n = Matrix.width vars in try let new_line, new_const = explore expr n in - Matrix.set new_line 0 var.var_id - (Q.add (Matrix.get new_line 0 var.var_id) Q.one); + Matrix.set new_line 0 (var.var_id - 1) + (Q.add (Matrix.get new_line 0 (var.var_id - 1)) Q.one); let new_vars = Matrix.extend vars new_line in let new_consts = Matrix.extend consts (Matrix.init 1 1 (fun _ _ -> new_const))