From c6d61b96a28272d33bd01ddc95f616eb818b94f0 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 1 Feb 2021 16:12:37 +0100 Subject: [PATCH] [wp] Prove main requires --- src/plugins/wp/cfgCalculus.ml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/wp/cfgCalculus.ml b/src/plugins/wp/cfgCalculus.ml index 5ff18776dae..77b150a71b9 100644 --- a/src/plugins/wp/cfgCalculus.ml +++ b/src/plugins/wp/cfgCalculus.ml @@ -363,6 +363,11 @@ struct let req = default_requires mode kf in let bhv = CfgAnnot.get_behavior kf Kglobal has_exit ~active:[] mode.bhv in + let prove_if_main env ps = + if not @@ WpStrategy.is_main_init kf then Extlib.id + else List.fold_right (prove_property env) ps + in + env.we , (* global init *) W.close env.we @@ @@ -372,6 +377,7 @@ struct W.label env.we None Clabels.pre @@ List.fold_right (use_property env) req @@ List.fold_right (use_property env) bhv.bhv_assumes @@ + prove_if_main env bhv.bhv_requires @@ List.fold_right (use_property env) bhv.bhv_requires @@ List.fold_right (use_property env) (behaviors kf) @@ List.fold_right (prove_property env) (complete mode kf) @@ -- GitLab