1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586(**************************************************************************)(* *)(* SPDX-License-Identifier LGPL-2.1 *)(* Copyright (C) *)(* CEA (Commissariat à l'énergie atomique et aux énergies alternatives) *)(* *)(**************************************************************************)moduleSelf=Plugin.Register(structletname="RPP"letshortname="rpp"lethelp="Prove relationel properties"end)moduleEnabled=Self.False(structletoption_name="-rpp"lethelp="when on (off by default), prove relationnel properties and generate the corresponding logical definition."end)moduleEnable_only_hyp=Self.False(structletoption_name="-rpp-hyp"lethelp="when on (off by default), only generate the logical definition of the relational proprerties."end)moduleEnable_only_prove=Self.False(structletoption_name="-rpp-pro"lethelp="when on (off by default), only generate the code transformation for relational proprerties proof."end)moduleCounting_relational_verification_function=State_builder.Counter(structletname="Count_relational_verify_function"end)letemitter=Emitter.create"Rpp"[Emitter.Code_annot;Emitter.Funspec;Emitter.Global_annot;Emitter.Property_status]~correctness:[]~tuning:[]moduleCounting_local_variable_verification_function=State_builder.Counter(structletname="Counting_local_variable_verification_function"end)moduleCounting_return_formals_verification_function=State_builder.Counter(structletname="Counting_return_formals_verification_function"end)moduleCounting_return_formals_verification_function_axiom=State_builder.Counter(structletname="Counting_return_formals_verification_function_axiom"end)moduleCounting_local_variable_copies=State_builder.Counter(structletname="Counting_local_variable_copies"end)moduleCounting_axiome=State_builder.Counter(structletname="Counting_axiome"end)moduleCounting_behavior=State_builder.Counter(structletname="Counting_behavior"end)moduleCounting_label=State_builder.Counter(structletname="Counting_labes"end)moduleCounting_aux_local_variable=State_builder.Counter(structletname="Counting_aux_local_variable"end)moduleIs_buildin_rela_first=State_builder.Ref(Datatype.Bool)(structletname="Is_buildin_rela_first"letdependencies=[]letdefault()=trueend)