123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384(**************************************************************************)(* This file is part of the Codex semantics library. *)(* *)(* Copyright (C) 2013-2025 *)(* CEA (Commissariat à l'énergie atomique et aux énergies *)(* alternatives) *)(* *)(* you can redistribute it and/or modify it under the terms of the GNU *)(* Lesser General Public License as published by the Free Software *)(* Foundation, version 2.1. *)(* *)(* It is distributed in the hope that it will be useful, *)(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)(* GNU Lesser General Public License for more details. *)(* *)(* See the GNU Lesser General Public License version 2.1 *)(* for more details (enclosed in the file LICENSE). *)(* *)(**************************************************************************)(* With_Noop: Dummy operations. *)moduleBoolean_Backward=structlet(||)___=(None,None)let(&&)___=(None,None)letnot__=Noneletnondetlresult=List.map(fun_->None)lletassume_cond_store_result=(None,None)endmoduleInteger_Backward=structletieq0a_=Noneletige0a_=Noneletitimeska=Noneletiadd___=(None,None)letimul___=(None,None)letidiv___=(None,None)letimod___=(None,None)letishl___=(None,None)letishr___=(None,None)letassume___=(None,None)endmoduleBinary_Backward=structletbeq___=(None,None)letbiult___=(None,None)letbiule___=(None,None)letbislt___=(None,None)letbisle___=(None,None)letbitimes___=Noneletbiadd___=(None,None)letbimul~size___=(None,None)letbxor~size___=(None,None)letband~size___=(None,None)letbor~size___=(None,None)letnondet~sizelresult=List.map(fun_->None)lletassume~size_cond_store_result=(None,None)letbsext~size__=(None)letbuext~size__=(None)letbashr~size___=(None,None)letblshr~size___=(None,None)letbshl~size___=(None,None)letbisdiv___=(None,None)letbconcatlresult=List.map(fun_->None)lletbismod___=(None,None)letbextract~size~index__=(None)letvalid~size__=(None)endmoduleMemory_Backward=structletnondetlresult=List.map(fun_->None)lletassume_cond_store_result=(None,None)letload~size___=(None,None)letstore~size____=(None,None,None)letvar()_=()endletmemory_is_bottom_=falseletboolean_is_bottom_=falseletbinary_is_bottom~size_=false