12345678910111213141516171819202122232425262728293031323334(* SPDX-License-Identifier: MIT *)(* Copyright (C) 2023-2024 formalsec *)(* Written by the Smtml programmers *)(** {1 Execution State and Interpreter Interface} *)(** Represents the execution state of the interpreter *)type'astate={stmts:Ast.Script.t(** The script being executed *);smap:(string,Ty.t)Hashtbl.t(** A mapping of variable names to types *);solver:'a(** The underlying solver instance *);expected_status:[`Sat|`Unsat|`Unknown]option(** The status of the execution*)}(** {2 Interpreter Interface} *)moduletypeS=sig(** The type representing a solver *)typesolver(** The type representing the execution state of interpreter *)typeexec_state(** Initializes execution with an optional state *)valstart:?state:exec_state->Ast.Script.t->no_strict_status:bool->exec_stateend(** {2 Interpreter functor interface} *)moduletypeIntf=sig(** Functor for creating a solver execution module *)moduleMake(Solver:Solver_intf.S):Swithtypesolver=Solver.tandtypeexec_state=Solver.tstateend