From: Yannick Moy Date: Tue, 4 Jan 2022 09:37:53 +0000 (+0100) Subject: [Ada] Adapt ghost code to maintain proof X-Git-Tag: basepoints/gcc-13~1861 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=371b4ad7c423891d13f9b855f5fdd469a82f7160;p=thirdparty%2Fgcc.git [Ada] Adapt ghost code to maintain proof gcc/ada/ * libgnat/s-expmod.adb (Exp_Modular): Add assertions. --- diff --git a/gcc/ada/libgnat/s-expmod.adb b/gcc/ada/libgnat/s-expmod.adb index 61faed16b256..60d86e505b8a 100644 --- a/gcc/ada/libgnat/s-expmod.adb +++ b/gcc/ada/libgnat/s-expmod.adb @@ -278,6 +278,7 @@ is (Big (Result) * Big (Factor) ** (Exp - 1), Big (Left) ** Right)); Lemma_Exp_Expand (Big (Factor), Exp - 1); + pragma Assert (Exp / 2 = (Exp - 1) / 2); end if; Lemma_Exp_Expand (Big (Factor), Exp); @@ -286,6 +287,8 @@ is exit when Exp = 0; Rest := Big (Factor) ** Exp; + pragma Assert (Equal_Modulo + (Big (Result) * (Rest * Rest), Big (Left) ** Right)); Lemma_Exp_Mod (Big (Factor) * Big (Factor), Exp, Big (Modulus)); pragma Assert ((Big (Factor) * Big (Factor)) ** Exp = Rest * Rest);