diff --git a/src/plugins/wp/Vlist.ml b/src/plugins/wp/Vlist.ml index c46c6b226aef8d634e93f6df32fbecff73698184..b893ad839ae132b54174952e5c151fd9622880c1 100644 --- a/src/plugins/wp/Vlist.ml +++ b/src/plugins/wp/Vlist.ml @@ -180,7 +180,8 @@ let rec leftmost a ms = match F.repr a with | L.Fun( concat , e :: es ) when concat == f_concat -> leftmost e (es@ms) - | L.Fun( repeat , [ u ; n ] ) when repeat == f_repeat && Cint.is_positive_or_null n -> + | L.Fun( repeat , [ u ; n ] ) when repeat == f_repeat && + (F.decide (F.e_lt F.e_zero n)) -> leftmost u (v_repeat u (F.e_sub n F.e_one) :: ms) | _ -> a , ms @@ -191,7 +192,8 @@ let rec rightmost ms a = | [] -> ms , a | e::es -> rightmost (ms @ List.rev es) e end - | L.Fun( repeat , [ u ; n ] ) when repeat == f_repeat && Cint.is_positive_or_null n -> + | L.Fun( repeat , [ u ; n ] ) when repeat == f_repeat && + (F.decide (F.e_lt F.e_zero n)) -> rightmost (ms @ [v_repeat u (F.e_sub n F.e_one)]) u | _ -> ms , a