|
5 | 5 | from dataclasses import dataclass
|
6 | 6 | from typing import TYPE_CHECKING, NamedTuple, final
|
7 | 7 |
|
8 |
| -from pyk.utils import not_none |
9 |
| - |
10 | 8 | from ..cterm import CSubst, CTerm
|
11 | 9 | from ..kast.inner import KApply, KLabel, KRewrite, KToken, KVariable, Subst
|
12 | 10 | from ..kast.manip import flatten_label, is_spurious_constraint, sort_ac_collections
|
13 | 11 | from ..kast.pretty import PrettyPrinter
|
14 |
| -from ..konvert import kast_to_kore, kore_to_kast |
| 12 | +from ..konvert import kast_to_kore, kflatmodule_to_kore, kore_to_kast |
15 | 13 | from ..kore.rpc import (
|
16 | 14 | AbortedResult,
|
17 | 15 | KoreClient,
|
|
26 | 24 | )
|
27 | 25 | from ..prelude.k import GENERATED_TOP_CELL, K_ITEM
|
28 | 26 | from ..prelude.ml import mlAnd
|
| 27 | +from ..utils import not_none |
29 | 28 |
|
30 | 29 | if TYPE_CHECKING:
|
31 | 30 | from collections.abc import Iterable, Iterator
|
32 | 31 | from pathlib import Path
|
33 | 32 | from typing import Final
|
34 | 33 |
|
35 | 34 | from ..kast import KInner
|
36 |
| - from ..kast.outer import KDefinition |
| 35 | + from ..kast.outer import KDefinition, KFlatModule |
37 | 36 | from ..kore.rpc import FallbackReason, LogEntry
|
38 | 37 | from ..kore.syntax import Pattern
|
39 | 38 | from ..utils import BugReport
|
@@ -279,6 +278,10 @@ def assume_defined(self, cterm: CTerm, module_name: str | None = None) -> CTerm:
|
279 | 278 | _LOGGER.debug(f'Definedness condition computed: {kast_simplified}')
|
280 | 279 | return cterm.add_constraint(kast_simplified)
|
281 | 280 |
|
| 281 | + def add_module(self, module: KFlatModule, name_as_id: bool = False) -> str: |
| 282 | + _kore_module = kflatmodule_to_kore(self._definition, module) |
| 283 | + return self._kore_client.add_module(_kore_module, name_as_id=name_as_id) |
| 284 | + |
282 | 285 | def _smt_solver_error(self, err: SmtSolverError) -> CTermSMTError:
|
283 | 286 | kast = self.kore_to_kast(err.pattern)
|
284 | 287 | pretty_pattern = PrettyPrinter(self._definition).print(kast)
|
|
0 commit comments