From 371b4ad7c423891d13f9b855f5fdd469a82f7160 Mon Sep 17 00:00:00 2001 From: Yannick Moy Date: Tue, 4 Jan 2022 10:37:53 +0100 Subject: [PATCH] [Ada] Adapt ghost code to maintain proof gcc/ada/ * libgnat/s-expmod.adb (Exp_Modular): Add assertions. --- gcc/ada/libgnat/s-expmod.adb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/ada/libgnat/s-expmod.adb b/gcc/ada/libgnat/s-expmod.adb index 61faed1..60d86e5 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); -- 2.7.4