From c674ab233a363135635bf7ecdb3971ac9de564ca Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Mon, 14 Jul 2025 12:41:42 +1000 Subject: [PATCH 01/19] consider function calls under injections in subject indeterminate (do not fail rewrite) --- booster/library/Booster/Pattern/Match.hs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/booster/library/Booster/Pattern/Match.hs b/booster/library/Booster/Pattern/Match.hs index 1fbc9d31c8..5e13c4b671 100644 --- a/booster/library/Booster/Pattern/Match.hs +++ b/booster/library/Booster/Pattern/Match.hs @@ -350,6 +350,17 @@ matchInj if isSubsort then bindVariable matchType v (Injection source2 source1 trm2) else failWith (DifferentSorts trm1 trm2) + | FunctionApplication{} <- trm2 = do + -- Functions may have a more general sort than the actual result. + -- This means we cannot simply fail the rewrite: the match is + -- indeterminate if the function result is. + subsorts <- gets mSubsorts + isSubsort <- -- rule requires a more specific sort? + lift . withExcept (MatchFailed . SubsortingError) $ + checkSubsort subsorts source1 source2 + if isSubsort + then addIndeterminate trm1 trm2 + else failWith (DifferentSorts (Injection source1 target1 trm1) (Injection source2 target2 trm2)) | otherwise = failWith (DifferentSorts (Injection source1 target1 trm1) (Injection source2 target2 trm2)) {-# INLINE matchInj #-} From 1c82261991f54a334b85c0d3690c3c2600a8a0ef Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Tue, 15 Jul 2025 10:46:48 +1000 Subject: [PATCH 02/19] apply known replacements from path conditions during evaluation --- .../library/Booster/Pattern/ApplyEquations.hs | 44 +++++++++++++++---- booster/library/Booster/Pattern/Match.hs | 2 +- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/booster/library/Booster/Pattern/ApplyEquations.hs b/booster/library/Booster/Pattern/ApplyEquations.hs index cd4df2fae7..d163e60c79 100644 --- a/booster/library/Booster/Pattern/ApplyEquations.hs +++ b/booster/library/Booster/Pattern/ApplyEquations.hs @@ -44,7 +44,7 @@ import Data.List (foldl1', intersperse, partition) import Data.List.NonEmpty qualified as NonEmpty import Data.Map (Map) import Data.Map qualified as Map -import Data.Maybe (catMaybes, fromMaybe) +import Data.Maybe (catMaybes, fromMaybe, mapMaybe) import Data.Sequence (Seq (..), pattern (:<|)) import Data.Sequence qualified as Seq import Data.Set (Set) @@ -161,17 +161,20 @@ data EquationState = EquationState , cache :: SimplifierCache } -data SimplifierCache = SimplifierCache {llvm, equations :: Map Term Term} +data SimplifierCache = SimplifierCache {llvm, equations, pathConditions :: Map Term Term} deriving stock (Show) instance Semigroup SimplifierCache where cache1 <> cache2 = - SimplifierCache (cache1.llvm <> cache2.llvm) (cache1.equations <> cache2.equations) + SimplifierCache + (cache1.llvm <> cache2.llvm) + (cache1.equations <> cache2.equations) + (cache1.pathConditions <> cache2.pathConditions) instance Monoid SimplifierCache where - mempty = SimplifierCache mempty mempty + mempty = SimplifierCache mempty mempty mempty -data CacheTag = LLVM | Equations +data CacheTag = LLVM | Equations | PathConditions deriving stock (Show) instance ContextFor CacheTag where @@ -192,9 +195,27 @@ startState cache known = , recursionStack = [] , changed = False , predicates = known - , cache + , -- replacements from predicates are rebuilt from the path conditions every time + cache = cache{pathConditions = buildReplacements known} } +buildReplacements :: Set Predicate -> Map Term Term +buildReplacements = Map.fromList . mapMaybe toReplacement . Set.elems + where + toReplacement :: Predicate -> Maybe (Term, Term) + toReplacement = \case + Predicate (EqualsInt (v@DomainValue{}) t) -> Just (t, v) + Predicate (EqualsInt t (v@DomainValue{})) -> Just (t, v) + Predicate (EqualsBool (v@DomainValue{}) t) -> Just (t, v) + Predicate (EqualsBool t (v@DomainValue{})) -> Just (t, v) + _otherwise -> Nothing + +cacheReset :: Monad io => EquationT io () +cacheReset = eqState $ do + st@EquationState{predicates, cache} <- get + let newCache = cache{equations = mempty, pathConditions = buildReplacements predicates} + put st{cache = newCache} + eqState :: Monad io => StateT EquationState io a -> EquationT io a eqState = EquationT . lift . lift @@ -237,6 +258,7 @@ popRecursion = do else eqState $ put s{recursionStack = tail s.recursionStack} toCache :: LoggerMIO io => CacheTag -> Term -> Term -> EquationT io () +toCache PathConditions _ _ = pure () -- never adding to the replacements toCache LLVM orig result = eqState . modify $ \s -> s{cache = s.cache{llvm = Map.insert orig result s.cache.llvm}} toCache Equations orig result = eqState $ do @@ -261,6 +283,7 @@ fromCache tag t = eqState $ do s <- get case tag of LLVM -> pure $ Map.lookup t s.cache.llvm + PathConditions -> pure $ Map.lookup t s.cache.pathConditions Equations -> do case Map.lookup t s.cache.equations of Nothing -> pure Nothing @@ -377,10 +400,14 @@ iterateEquations direction preference startTerm = do -- NB llvmSimplify is idempotent. No need to iterate if -- the equation evaluation does not change the term any more. resetChanged + -- apply syntactic replacements of terms by domain values from path condition + replacedTerm <- + let simp = cached PathConditions $ traverseTerm BottomUp simp pure + in simp llvmResult -- evaluate functions and simplify (recursively at each level) newTerm <- let simp = cached Equations $ traverseTerm direction simp (applyHooksAndEquations preference) - in simp llvmResult + in simp replacedTerm changeFlag <- getChanged if changeFlag then checkForLoop newTerm >> resetChanged >> go newTerm @@ -913,8 +940,7 @@ applyEquation term rule = unless (null ensuredConditions) $ do withContextFor Equations . logMessage $ ("New ensured condition from evaluation, invalidating cache" :: Text) - lift . eqState . modify $ - \s -> s{cache = s.cache{equations = mempty}} + lift cacheReset pure $ substituteInTerm subst rule.rhs where filterOutKnownConstraints :: Set Predicate -> [Predicate] -> EquationT io [Predicate] diff --git a/booster/library/Booster/Pattern/Match.hs b/booster/library/Booster/Pattern/Match.hs index 5e13c4b671..cff7abacb5 100644 --- a/booster/library/Booster/Pattern/Match.hs +++ b/booster/library/Booster/Pattern/Match.hs @@ -355,7 +355,7 @@ matchInj -- This means we cannot simply fail the rewrite: the match is -- indeterminate if the function result is. subsorts <- gets mSubsorts - isSubsort <- -- rule requires a more specific sort? + isSubsort <- -- rule requires a more specific sort? lift . withExcept (MatchFailed . SubsortingError) $ checkSubsort subsorts source1 source2 if isSubsort From 04997938cd1f2c6b4c1d16ae12bfb627f7e66057 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Tue, 15 Jul 2025 11:07:12 +1000 Subject: [PATCH 03/19] adjust integration test expectation (lookup replacement) --- .../response-001.booster-dev | 120 ++++-------------- 1 file changed, 28 insertions(+), 92 deletions(-) diff --git a/booster/test/rpc-integration/test-implies-issue-3941/response-001.booster-dev b/booster/test/rpc-integration/test-implies-issue-3941/response-001.booster-dev index 722051b4dc..e642edff2b 100644 --- a/booster/test/rpc-integration/test-implies-issue-3941/response-001.booster-dev +++ b/booster/test/rpc-integration/test-implies-issue-3941/response-001.booster-dev @@ -463,29 +463,13 @@ "value": "0" }, { - "tag": "App", - "name": "Lbllookup", - "sorts": [], - "args": [ - { - "tag": "EVar", - "name": "VarS", - "sort": { - "tag": "SortApp", - "name": "SortMap", - "args": [] - } - }, - { - "tag": "DV", - "sort": { - "tag": "SortApp", - "name": "SortInt", - "args": [] - }, - "value": "0" - } - ] + "tag": "DV", + "sort": { + "tag": "SortApp", + "name": "SortInt", + "args": [] + }, + "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, { "tag": "App", @@ -674,29 +658,13 @@ "value": "0" }, { - "tag": "App", - "name": "Lbllookup", - "sorts": [], - "args": [ - { - "tag": "EVar", - "name": "VarS", - "sort": { - "tag": "SortApp", - "name": "SortMap", - "args": [] - } - }, - { - "tag": "DV", - "sort": { - "tag": "SortApp", - "name": "SortInt", - "args": [] - }, - "value": "0" - } - ] + "tag": "DV", + "sort": { + "tag": "SortApp", + "name": "SortInt", + "args": [] + }, + "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, { "tag": "App", @@ -3517,29 +3485,13 @@ "value": "0" }, { - "tag": "App", - "name": "Lbllookup", - "sorts": [], - "args": [ - { - "tag": "EVar", - "name": "VarS", - "sort": { - "tag": "SortApp", - "name": "SortMap", - "args": [] - } - }, - { - "tag": "DV", - "sort": { - "tag": "SortApp", - "name": "SortInt", - "args": [] - }, - "value": "0" - } - ] + "tag": "DV", + "sort": { + "tag": "SortApp", + "name": "SortInt", + "args": [] + }, + "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, { "tag": "App", @@ -3733,29 +3685,13 @@ "value": "0" }, { - "tag": "App", - "name": "Lbllookup", - "sorts": [], - "args": [ - { - "tag": "EVar", - "name": "VarS", - "sort": { - "tag": "SortApp", - "name": "SortMap", - "args": [] - } - }, - { - "tag": "DV", - "sort": { - "tag": "SortApp", - "name": "SortInt", - "args": [] - }, - "value": "0" - } - ] + "tag": "DV", + "sort": { + "tag": "SortApp", + "name": "SortInt", + "args": [] + }, + "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, { "tag": "App", From 4ab82851cc1d59366aa361abe9d801cb35e403d8 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 16 Jul 2025 16:08:14 +1000 Subject: [PATCH 04/19] WIP indexing overhaul, basic algebra --- booster/library/Booster/Definition/Util.hs | 11 +- booster/library/Booster/Pattern/Index.hs | 57 +- booster/test/internalisation/bool.kore.report | 16 +- .../does-not-preserve-definedness.kore.report | 74 +- .../internalisation/existentials.kore.report | 78 +- booster/test/internalisation/imp.kore.report | 232 +- .../mx-hs-kasmer-definition0.kore.report | 863 +++---- ...ves-definedness-total-function.kore.report | 74 +- .../preserves-definedness.kore.report | 74 +- .../test/internalisation/subsorts.kore.report | 108 +- .../test-totalSupply-definition.kore.report | 2194 +++++++++-------- .../Test/Booster/Pattern/ApplyEquations.hs | 15 +- .../unit-tests/Test/Booster/Pattern/Index.hs | 58 +- .../Test/Booster/Pattern/Rewrite.hs | 10 +- 14 files changed, 1958 insertions(+), 1906 deletions(-) diff --git a/booster/library/Booster/Definition/Util.hs b/booster/library/Booster/Definition/Util.hs index 5cec9ded08..401402ba84 100644 --- a/booster/library/Booster/Definition/Util.hs +++ b/booster/library/Booster/Definition/Util.hs @@ -143,9 +143,14 @@ instance Pretty Summary where prettyTermIndex :: TermIndex -> Doc a prettyTermIndex (TermIndex ixs) = Pretty.sep $ map prettyCellIndex ixs - prettyCellIndex Anything = "Anything" - prettyCellIndex (TopSymbol sym) = prettyLabel sym - prettyCellIndex None = "None" + prettyCellIndex None = "_|_" + prettyCellIndex Anything = "***" + prettyCellIndex (TopCons sym) = "C--" <> prettyLabel sym + prettyCellIndex (TopFun sym) = "F--" <> prettyLabel sym + prettyCellIndex (Value sym) = "V--" <> prettyLabel sym + prettyCellIndex TopMap = "Map" + prettyCellIndex TopList = "List" + prettyCellIndex TopSet = "Set" prettyCeilRule :: RewriteRule r -> Doc a prettyCeilRule RewriteRule{lhs, rhs} = diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index fd777896c3..9f76623bff 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -7,6 +7,7 @@ Everything to do with term indexing. module Booster.Pattern.Index ( CellIndex (..), TermIndex (..), + (^<=^), compositeTermIndex, kCellTermIndex, termTopIndex, @@ -16,6 +17,7 @@ module Booster.Pattern.Index ( import Control.Applicative (Alternative (..), asum) import Control.DeepSeq (NFData) +import Data.ByteString (ByteString) import Data.Functor.Foldable (embed, para) import Data.Maybe (fromMaybe) import Data.Set (Set) @@ -48,12 +50,33 @@ newtype TermIndex = TermIndex [CellIndex] data CellIndex = None -- bottom element - | TopSymbol SymbolName + | TopCons SymbolName + | TopFun SymbolName + | Value ByteString + | TopMap + | TopList + | TopSet | Anything -- top element - -- should we have | Value Sort ?? (see Term type) deriving stock (Eq, Ord, Show, Generic) deriving anyclass (NFData) +{- | Partial less-or-equal for CellIndex (implies partial order) + + Anything + ____________/ | \_______________________________________... + / / | | \ \ +TopList ..TopSet Value "x"..Value "y" TopCons "A".. TopFun "f".. + \__________|__ | _________|____________|____________/____... + \ | / + None +-} +(^<=^) :: CellIndex -> CellIndex -> Bool +None ^<=^ _ = True +a ^<=^ None = a == None +_ ^<=^ Anything = True +Anything ^<=^ a = a == Anything +_ ^<=^ _ = False + {- | Combines two indexes (an "infimum" function on the index lattice). This is useful for terms containing an 'AndTerm': Any term that @@ -65,9 +88,9 @@ instance Semigroup CellIndex where _ <> None = None x <> Anything = x Anything <> x = x - s@(TopSymbol s1) <> TopSymbol s2 - | s1 == s2 = s - | otherwise = None -- incompatible indexes + idx1 <> idx2 + | idx1 == idx2 = idx1 + | otherwise = None {- | Compute all indexes that cover the given index, for rule lookup. @@ -162,11 +185,27 @@ stripSortInjections = \case termTopIndex :: Term -> TermIndex termTopIndex = TermIndex . (: []) . cellTopIndex +{- | Cell top indexes form a lattice with a flat partial ordering + +-} cellTopIndex :: Term -> CellIndex cellTopIndex = \case - SymbolApplication symbol _ _ -> - TopSymbol symbol.name + ConsApplication symbol _ _ -> + TopCons symbol.name + FunctionApplication symbol _ _ -> + TopFun symbol.name + DomainValue _ v -> + Value v + Var{} -> + Anything + KMap{} -> + TopMap + KList{} -> + TopList + KSet{} -> + TopSet + -- look-through + Injection _ _ t -> + cellTopIndex t AndTerm t1 t2 -> cellTopIndex t1 <> cellTopIndex t2 - _other -> - Anything diff --git a/booster/test/internalisation/bool.kore.report b/booster/test/internalisation/bool.kore.report index 193d45946b..2c9ea5d979 100644 --- a/booster/test/internalisation/bool.kore.report +++ b/booster/test/internalisation/bool.kore.report @@ -18,37 +18,37 @@ Subsorts: - SortBool: SortBool Rewrite rules by term index: Function equations by term index: -- Lbl_=/=Bool_: /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (960, 8) -- Lbl_andBool_: 4 +- F--Lbl_=/=Bool_: /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (960, 8) +- F--Lbl_andBool_: 4 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (933, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (932, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (934, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (931, 8) -- Lbl_andThenBool_: 4 +- F--Lbl_andThenBool_: 4 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (938, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (937, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (939, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (936, 8) -- Lbl_impliesBool_: 4 +- F--Lbl_impliesBool_: 4 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (958, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (957, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (956, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (955, 8) -- Lbl_orBool_: 4 +- F--Lbl_orBool_: 4 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (948, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (946, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (947, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (945, 8) -- Lbl_orElseBool_: 4 +- F--Lbl_orElseBool_: 4 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (953, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (951, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (952, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (950, 8) -- Lbl_xorBool_: 3 +- F--Lbl_xorBool_: 3 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (943, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (942, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (941, 8) -- LblnotBool_: 2 +- F--LblnotBool_: 2 - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (929, 8) - /nix/store/08jyy9cx4xp32ca29lfsa1k4mbvw6kwv-k-5.5.140-dirty-maven/include/kframework/builtin/domains.md : (928, 8) Simplifications by term index: diff --git a/booster/test/internalisation/does-not-preserve-definedness.kore.report b/booster/test/internalisation/does-not-preserve-definedness.kore.report index f55eeb7a0d..98f5c985b0 100644 --- a/booster/test/internalisation/does-not-preserve-definedness.kore.report +++ b/booster/test/internalisation/does-not-preserve-definedness.kore.report @@ -145,73 +145,73 @@ Subsorts: - SortMap: SortMap - SortSet: SortSet Rewrite rules by term index: -- LblFoo()_DOES-NOT-PRESERVE-DEFINEDNESS_Foo: /home/jost/work/RV/code/hs-backend-booster/test/internalisation/does-not-preserve-definedness.k : (4, 8) +- C--LblFoo()_DOES-NOT-PRESERVE-DEFINEDNESS_Foo: /home/jost/work/RV/code/hs-backend-booster/test/internalisation/does-not-preserve-definedness.k : (4, 8) Function equations by term index: -- Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) -- LblgetGeneratedCounterCell: UNKNOWN -- LblinitGeneratedCounterCell: UNKNOWN -- LblinitGeneratedTopCell: UNKNOWN -- LblinitKCell: UNKNOWN -- LblisBool: 2 +- F--Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) +- F--LblgetGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedTopCell: UNKNOWN +- F--LblinitKCell: UNKNOWN +- F--LblisBool: 2 - UNKNOWN - UNKNOWN -- LblisFoo: 2 +- F--LblisFoo: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCell: 2 +- F--LblisGeneratedCounterCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCellOpt: 2 +- F--LblisGeneratedCounterCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCell: 2 +- F--LblisGeneratedTopCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCellFragment: 2 +- F--LblisGeneratedTopCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisInt: 2 +- F--LblisInt: 2 - UNKNOWN - UNKNOWN -- LblisK: UNKNOWN -- LblisKCell: 2 +- F--LblisK: UNKNOWN +- F--LblisKCell: 2 - UNKNOWN - UNKNOWN -- LblisKCellOpt: 2 +- F--LblisKCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisKConfigVar: 2 +- F--LblisKConfigVar: 2 - UNKNOWN - UNKNOWN -- LblisKItem: 2 +- F--LblisKItem: 2 - UNKNOWN - UNKNOWN -- LblisList: 2 +- F--LblisList: 2 - UNKNOWN - UNKNOWN -- LblisMap: 2 +- F--LblisMap: 2 - UNKNOWN - UNKNOWN -- LblisSet: 2 +- F--LblisSet: 2 - UNKNOWN - UNKNOWN -- Lblproject:Bool: UNKNOWN -- Lblproject:Foo: UNKNOWN -- Lblproject:GeneratedCounterCell: UNKNOWN -- Lblproject:GeneratedCounterCellOpt: UNKNOWN -- Lblproject:GeneratedTopCell: UNKNOWN -- Lblproject:GeneratedTopCellFragment: UNKNOWN -- Lblproject:Int: UNKNOWN -- Lblproject:K: UNKNOWN -- Lblproject:KCell: UNKNOWN -- Lblproject:KCellOpt: UNKNOWN -- Lblproject:KItem: UNKNOWN -- Lblproject:List: UNKNOWN -- Lblproject:Map: UNKNOWN -- Lblproject:Set: UNKNOWN -- append: 2 +- F--Lblproject:Bool: UNKNOWN +- F--Lblproject:Foo: UNKNOWN +- F--Lblproject:GeneratedCounterCell: UNKNOWN +- F--Lblproject:GeneratedCounterCellOpt: UNKNOWN +- F--Lblproject:GeneratedTopCell: UNKNOWN +- F--Lblproject:GeneratedTopCellFragment: UNKNOWN +- F--Lblproject:Int: UNKNOWN +- F--Lblproject:K: UNKNOWN +- F--Lblproject:KCell: UNKNOWN +- F--Lblproject:KCellOpt: UNKNOWN +- F--Lblproject:KItem: UNKNOWN +- F--Lblproject:List: UNKNOWN +- F--Lblproject:Map: UNKNOWN +- F--Lblproject:Set: UNKNOWN +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: Ceils: -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) diff --git a/booster/test/internalisation/existentials.kore.report b/booster/test/internalisation/existentials.kore.report index 51a74a485c..259ecf9a9b 100644 --- a/booster/test/internalisation/existentials.kore.report +++ b/booster/test/internalisation/existentials.kore.report @@ -150,79 +150,79 @@ Subsorts: - SortMap: SortMap - SortSet: SortSet Rewrite rules by term index: -- LblBaz(_)_EXISTENTIALS_Baz_Foo: 2 +- C--LblBaz(_)_EXISTENTIALS_Baz_Foo: 2 - /home/jost/work/RV/code/hs-backend-booster/test/internalisation/existentials.k : (8, 8) - /home/jost/work/RV/code/hs-backend-booster/test/internalisation/existentials.k : (7, 8) Function equations by term index: -- Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) -- LblgetGeneratedCounterCell: UNKNOWN -- LblinitGeneratedCounterCell: UNKNOWN -- LblinitGeneratedTopCell: UNKNOWN -- LblinitKCell: UNKNOWN -- LblisBaz: 2 +- F--Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) +- F--LblgetGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedTopCell: UNKNOWN +- F--LblinitKCell: UNKNOWN +- F--LblisBaz: 2 - UNKNOWN - UNKNOWN -- LblisBool: 2 +- F--LblisBool: 2 - UNKNOWN - UNKNOWN -- LblisFoo: 2 +- F--LblisFoo: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCell: 2 +- F--LblisGeneratedCounterCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCellOpt: 2 +- F--LblisGeneratedCounterCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCell: 2 +- F--LblisGeneratedTopCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCellFragment: 2 +- F--LblisGeneratedTopCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisInt: 2 +- F--LblisInt: 2 - UNKNOWN - UNKNOWN -- LblisK: UNKNOWN -- LblisKCell: 2 +- F--LblisK: UNKNOWN +- F--LblisKCell: 2 - UNKNOWN - UNKNOWN -- LblisKCellOpt: 2 +- F--LblisKCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisKConfigVar: 2 +- F--LblisKConfigVar: 2 - UNKNOWN - UNKNOWN -- LblisKItem: 2 +- F--LblisKItem: 2 - UNKNOWN - UNKNOWN -- LblisList: 2 +- F--LblisList: 2 - UNKNOWN - UNKNOWN -- LblisMap: 2 +- F--LblisMap: 2 - UNKNOWN - UNKNOWN -- LblisSet: 2 +- F--LblisSet: 2 - UNKNOWN - UNKNOWN -- Lblproject:Baz: UNKNOWN -- Lblproject:Bool: UNKNOWN -- Lblproject:Foo: UNKNOWN -- Lblproject:GeneratedCounterCell: UNKNOWN -- Lblproject:GeneratedCounterCellOpt: UNKNOWN -- Lblproject:GeneratedTopCell: UNKNOWN -- Lblproject:GeneratedTopCellFragment: UNKNOWN -- Lblproject:Int: UNKNOWN -- Lblproject:K: UNKNOWN -- Lblproject:KCell: UNKNOWN -- Lblproject:KCellOpt: UNKNOWN -- Lblproject:KItem: UNKNOWN -- Lblproject:List: UNKNOWN -- Lblproject:Map: UNKNOWN -- Lblproject:Set: UNKNOWN -- append: 2 +- F--Lblproject:Baz: UNKNOWN +- F--Lblproject:Bool: UNKNOWN +- F--Lblproject:Foo: UNKNOWN +- F--Lblproject:GeneratedCounterCell: UNKNOWN +- F--Lblproject:GeneratedCounterCellOpt: UNKNOWN +- F--Lblproject:GeneratedTopCell: UNKNOWN +- F--Lblproject:GeneratedTopCellFragment: UNKNOWN +- F--Lblproject:Int: UNKNOWN +- F--Lblproject:K: UNKNOWN +- F--Lblproject:KCell: UNKNOWN +- F--Lblproject:KCellOpt: UNKNOWN +- F--Lblproject:KItem: UNKNOWN +- F--Lblproject:List: UNKNOWN +- F--Lblproject:Map: UNKNOWN +- F--Lblproject:Set: UNKNOWN +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: Ceils: -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) diff --git a/booster/test/internalisation/imp.kore.report b/booster/test/internalisation/imp.kore.report index 2134abde65..36ff2d2dbc 100644 --- a/booster/test/internalisation/imp.kore.report +++ b/booster/test/internalisation/imp.kore.report @@ -297,7 +297,7 @@ Subsorts: - SortTCell - SortTCellOpt Rewrite rules by term index: -- Anything: 11 +- ***: 11 - IMP-SYNTAX._+__IMP-SYNTAX_AExp_AExp_AExp1-cool - IMP-SYNTAX._+__IMP-SYNTAX_AExp_AExp_AExp2-cool - IMP-SYNTAX._/__IMP-SYNTAX_AExp_AExp_AExp1-cool @@ -309,201 +309,201 @@ Rewrite rules by term index: - IMP-SYNTAX._&&__IMP-SYNTAX_BExp_BExp_BExp1-cool - IMP-SYNTAX.if(_)_else__IMP-SYNTAX_Stmt_BExp_Block_Block1-cool - variable_lookup -- Lbl!__IMP-SYNTAX_BExp_BExp: 2 +- C--Lbl!__IMP-SYNTAX_BExp_BExp: 2 - IMP-SYNTAX.!__IMP-SYNTAX_BExp_BExp1-heat - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (134, 8) -- Lbl-__IMP-SYNTAX_AExp_Int: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (125, 8) -- Lbl?Int_IMP-SYNTAX_AExp: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (121, 8) -- Lbl_&&__IMP-SYNTAX_BExp_BExp_BExp: 3 +- C--Lbl-__IMP-SYNTAX_AExp_Int: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (125, 8) +- C--Lbl?Int_IMP-SYNTAX_AExp: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (121, 8) +- C--Lbl_&&__IMP-SYNTAX_BExp_BExp_BExp: 3 - IMP-SYNTAX._&&__IMP-SYNTAX_BExp_BExp_BExp1-heat - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (136, 8) - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (135, 8) -- Lbl_+__IMP-SYNTAX_AExp_AExp_AExp: 3 +- C--Lbl_+__IMP-SYNTAX_AExp_AExp_AExp: 3 - IMP-SYNTAX._+__IMP-SYNTAX_AExp_AExp_AExp1-heat - IMP-SYNTAX._+__IMP-SYNTAX_AExp_AExp_AExp2-heat - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (124, 8) -- Lbl_/__IMP-SYNTAX_AExp_AExp_AExp: 3 +- C--Lbl_/__IMP-SYNTAX_AExp_AExp_AExp: 3 - IMP-SYNTAX._/__IMP-SYNTAX_AExp_AExp_AExp1-heat - IMP-SYNTAX._/__IMP-SYNTAX_AExp_AExp_AExp2-heat - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (123, 8) -- Lbl_<=__IMP-SYNTAX_BExp_AExp_AExp: 3 +- C--Lbl_<=__IMP-SYNTAX_BExp_AExp_AExp: 3 - IMP-SYNTAX._<=__IMP-SYNTAX_BExp_AExp_AExp1-heat - IMP-SYNTAX._<=__IMP-SYNTAX_BExp_AExp_AExp2-heat - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (133, 8) -- Lbl_=_;_IMP-SYNTAX_Stmt_Id_AExp: 2 +- C--Lbl_=_;_IMP-SYNTAX_Stmt_Id_AExp: 2 - IMP-SYNTAX._=_;_IMP-SYNTAX_Stmt_Id_AExp2-heat - variable_setting -- Lbl___IMP-SYNTAX_Stmt_Stmt_Stmt: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (175, 8) -- Lblif(_)_else__IMP-SYNTAX_Stmt_BExp_Block_Block: 3 +- C--Lbl___IMP-SYNTAX_Stmt_Stmt_Stmt: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (175, 8) +- C--Lblif(_)_else__IMP-SYNTAX_Stmt_BExp_Block_Block: 3 - IMP-SYNTAX.if(_)_else__IMP-SYNTAX_Stmt_BExp_Block_Block1-heat - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (185, 8) - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (184, 8) -- Lblint_;__IMP-SYNTAX_Pgm_Ids_Stmt: 2 +- C--Lblint_;__IMP-SYNTAX_Pgm_Ids_Stmt: 2 - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (208, 8) - /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (206, 8) -- Lblwhile(_)__IMP-SYNTAX_Stmt_BExp_Block: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (191, 8) -- Lbl{_}_IMP-SYNTAX_Block_Stmt: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (155, 8) -- Lbl{}_IMP-SYNTAX_Block: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (154, 8) +- C--Lblwhile(_)__IMP-SYNTAX_Stmt_BExp_Block: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (191, 8) +- C--Lbl{_}_IMP-SYNTAX_Block_Stmt: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (155, 8) +- C--Lbl{}_IMP-SYNTAX_Block: /Users/sam/git/haskell-backend-json-rpc/booster/test/internalisation/imp.k : (154, 8) Function equations by term index: -- Lbl_=/=Bool_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1159, 8) -- Lbl_=/=Int_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1438, 8) -- Lbl_=/=K_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (2318, 8) -- Lbl_andBool_: 2 +- F--Lbl_=/=Bool_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1159, 8) +- F--Lbl_=/=Int_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1438, 8) +- F--Lbl_=/=K_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (2318, 8) +- F--Lbl_andBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1132, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1130, 8) -- Lbl_andThenBool_: 2 +- F--Lbl_andThenBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1137, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1135, 8) -- Lbl_divInt_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1427, 8) -- Lbl_dividesInt__INT-COMMON_Bool_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1439, 8) -- Lbl_impliesBool_: 2 +- F--Lbl_divInt_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1427, 8) +- F--Lbl_dividesInt__INT-COMMON_Bool_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1439, 8) +- F--Lbl_impliesBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1155, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1154, 8) -- Lbl_orBool_: 2 +- F--Lbl_orBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1146, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1144, 8) -- Lbl_orElseBool_: 2 +- F--Lbl_orElseBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1151, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1149, 8) -- Lbl_xorBool_: 2 +- F--Lbl_xorBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1142, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1140, 8) -- Lbl_|Set__SET_Set_Set_Set: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (749, 8) -- LblbitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1423, 8) -- LblfreshInt(_)_INT_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1442, 8) -- LblgetGeneratedCounterCell: UNKNOWN -- LblinitGeneratedCounterCell: UNKNOWN -- LblinitGeneratedTopCell: UNKNOWN -- LblinitKCell: UNKNOWN -- LblinitStateCell: UNKNOWN -- LblinitTCell: UNKNOWN -- LblisAExp: 2 +- F--Lbl_|Set__SET_Set_Set_Set: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (749, 8) +- F--LblbitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1423, 8) +- F--LblfreshInt(_)_INT_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1442, 8) +- F--LblgetGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedTopCell: UNKNOWN +- F--LblinitKCell: UNKNOWN +- F--LblinitStateCell: UNKNOWN +- F--LblinitTCell: UNKNOWN +- F--LblisAExp: 2 - UNKNOWN - UNKNOWN -- LblisBExp: 2 +- F--LblisBExp: 2 - UNKNOWN - UNKNOWN -- LblisBlock: 2 +- F--LblisBlock: 2 - UNKNOWN - UNKNOWN -- LblisBool: 2 +- F--LblisBool: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCell: 2 +- F--LblisGeneratedCounterCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCellOpt: 2 +- F--LblisGeneratedCounterCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCell: 2 +- F--LblisGeneratedTopCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCellFragment: 2 +- F--LblisGeneratedTopCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisId: 2 +- F--LblisId: 2 - UNKNOWN - UNKNOWN -- LblisIds: 2 +- F--LblisIds: 2 - UNKNOWN - UNKNOWN -- LblisInt: 2 +- F--LblisInt: 2 - UNKNOWN - UNKNOWN -- LblisK: UNKNOWN -- LblisKCell: 2 +- F--LblisK: UNKNOWN +- F--LblisKCell: 2 - UNKNOWN - UNKNOWN -- LblisKCellOpt: 2 +- F--LblisKCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisKConfigVar: 2 +- F--LblisKConfigVar: 2 - UNKNOWN - UNKNOWN -- LblisKItem: 2 +- F--LblisKItem: 2 - UNKNOWN - UNKNOWN -- LblisKResult: 2 +- F--LblisKResult: 2 - UNKNOWN - UNKNOWN -- LblisList: 2 +- F--LblisList: 2 - UNKNOWN - UNKNOWN -- LblisMap: 2 +- F--LblisMap: 2 - UNKNOWN - UNKNOWN -- LblisPgm: 2 +- F--LblisPgm: 2 - UNKNOWN - UNKNOWN -- LblisSet: 2 +- F--LblisSet: 2 - UNKNOWN - UNKNOWN -- LblisStateCell: 2 +- F--LblisStateCell: 2 - UNKNOWN - UNKNOWN -- LblisStateCellOpt: 2 +- F--LblisStateCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisStmt: 2 +- F--LblisStmt: 2 - UNKNOWN - UNKNOWN -- LblisString: 2 +- F--LblisString: 2 - UNKNOWN - UNKNOWN -- LblisTCell: 2 +- F--LblisTCell: 2 - UNKNOWN - UNKNOWN -- LblisTCellFragment: 2 +- F--LblisTCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisTCellOpt: 2 +- F--LblisTCellOpt: 2 - UNKNOWN - UNKNOWN -- Lblite: 2 +- F--Lblite: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (2320, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (2321, 8) -- LblminInt(_,_)_INT-COMMON_Int_Int_Int: 2 +- F--LblminInt(_,_)_INT-COMMON_Int_Int_Int: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1435, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1436, 8) -- LblnotBool_: 2 +- F--LblnotBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1128, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1127, 8) -- Lblproject:AExp: UNKNOWN -- Lblproject:BExp: UNKNOWN -- Lblproject:Block: UNKNOWN -- Lblproject:Bool: UNKNOWN -- Lblproject:GeneratedCounterCell: UNKNOWN -- Lblproject:GeneratedCounterCellOpt: UNKNOWN -- Lblproject:GeneratedTopCell: UNKNOWN -- Lblproject:GeneratedTopCellFragment: UNKNOWN -- Lblproject:Id: UNKNOWN -- Lblproject:Ids: UNKNOWN -- Lblproject:Int: UNKNOWN -- Lblproject:K: UNKNOWN -- Lblproject:KCell: UNKNOWN -- Lblproject:KCellOpt: UNKNOWN -- Lblproject:KItem: UNKNOWN -- Lblproject:KResult: UNKNOWN -- Lblproject:List: UNKNOWN -- Lblproject:Map: UNKNOWN -- Lblproject:Pgm: UNKNOWN -- Lblproject:Set: UNKNOWN -- Lblproject:StateCell: UNKNOWN -- Lblproject:StateCellOpt: UNKNOWN -- Lblproject:Stmt: UNKNOWN -- Lblproject:String: UNKNOWN -- Lblproject:TCell: UNKNOWN -- Lblproject:TCellFragment: UNKNOWN -- Lblproject:TCellOpt: UNKNOWN -- LblpushList: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (954, 8) -- LblsignExtendBitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1425, 8) -- append: 2 +- F--Lblproject:AExp: UNKNOWN +- F--Lblproject:BExp: UNKNOWN +- F--Lblproject:Block: UNKNOWN +- F--Lblproject:Bool: UNKNOWN +- F--Lblproject:GeneratedCounterCell: UNKNOWN +- F--Lblproject:GeneratedCounterCellOpt: UNKNOWN +- F--Lblproject:GeneratedTopCell: UNKNOWN +- F--Lblproject:GeneratedTopCellFragment: UNKNOWN +- F--Lblproject:Id: UNKNOWN +- F--Lblproject:Ids: UNKNOWN +- F--Lblproject:Int: UNKNOWN +- F--Lblproject:K: UNKNOWN +- F--Lblproject:KCell: UNKNOWN +- F--Lblproject:KCellOpt: UNKNOWN +- F--Lblproject:KItem: UNKNOWN +- F--Lblproject:KResult: UNKNOWN +- F--Lblproject:List: UNKNOWN +- F--Lblproject:Map: UNKNOWN +- F--Lblproject:Pgm: UNKNOWN +- F--Lblproject:Set: UNKNOWN +- F--Lblproject:StateCell: UNKNOWN +- F--Lblproject:StateCellOpt: UNKNOWN +- F--Lblproject:Stmt: UNKNOWN +- F--Lblproject:String: UNKNOWN +- F--Lblproject:TCell: UNKNOWN +- F--Lblproject:TCellFragment: UNKNOWN +- F--Lblproject:TCellOpt: UNKNOWN +- F--LblpushList: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (954, 8) +- F--LblsignExtendBitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1425, 8) +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: -- Lbl_%Int_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1362, 8) -- Lbl_&Int_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1413, 8) -- Lbl_+Int_: 7 +- F--Lbl_%Int_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1362, 8) +- F--Lbl_&Int_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1413, 8) +- F--Lbl_+Int_: 7 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1358, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1404, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1406, 8) @@ -511,45 +511,45 @@ Simplifications by term index: - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1403, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1408, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1400, 8) -- Lbl_-Int_: 6 +- F--Lbl_-Int_: 6 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1359, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1405, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1409, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1410, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1411, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1401, 8) -- Lbl_<>Int_: 2 +- F--Lbl_>>Int_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1367, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1368, 8) -- Lbl_andBool_: 2 +- F--Lbl_andBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1131, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1133, 8) -- Lbl_andThenBool_: 2 +- F--Lbl_andThenBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1136, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1138, 8) -- Lbl_impliesBool_: 2 +- F--Lbl_impliesBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1157, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1156, 8) -- Lbl_modInt_: 2 +- F--Lbl_modInt_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1430, 5) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1361, 8) -- Lbl_orBool_: 2 +- F--Lbl_orBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1147, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1145, 8) -- Lbl_orElseBool_: 2 +- F--Lbl_orElseBool_: 2 - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1152, 8) - /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1150, 8) -- Lbl_xorBool_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1141, 8) +- F--Lbl_xorBool_: /nix/store/10bil1g5xdnskljl0xwi4gzg4bpv3lsw-k-7.1.110-0bfb62cf00b71470ed80a42be339d5f87c858e54/include/kframework/builtin/domains.md : (1141, 8) Ceils: -- Lbl_%Int_: #Ceil( _%Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_/Int_: #Ceil( _/Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_< _>=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_>>Int_: #Ceil( _>>Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _>=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) -- Lbl_modInt_: #Ceil( _modInt_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_%Int_: #Ceil( _%Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_/Int_: #Ceil( _/Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_< _>=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_>>Int_: #Ceil( _>>Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _>=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_modInt_: #Ceil( _modInt_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") diff --git a/booster/test/internalisation/mx-hs-kasmer-definition0.kore.report b/booster/test/internalisation/mx-hs-kasmer-definition0.kore.report index b50230cda7..10f474b0fc 100644 --- a/booster/test/internalisation/mx-hs-kasmer-definition0.kore.report +++ b/booster/test/internalisation/mx-hs-kasmer-definition0.kore.report @@ -4805,100 +4805,84 @@ Subsorts: - SortWrappedBytes: SortWrappedBytes - SortWrappedInt: SortWrappedInt Rewrite rules by term index: -- Anything Lbl#exception(_,_)_ELROND-NODE_InternalCmd_ExceptionCode_Bytes Anything: ELROND-CONFIG.exception-revert -- Anything Lbl#throwException(_,_)_ELROND-NODE_ThrowException_ExceptionCode_String Anything: ELROND-CONFIG.throwException-cmd -- Anything Lbl#throwExceptionBs(_,_)_ELROND-NODE_ThrowException_ExceptionCode_Bytes Anything: ELROND-CONFIG.throwExceptionBs-cmd -- Anything LbladdToESDTBalance(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int_Bool Anything: 3 - - ESDT.addToESDTBalance - - ESDT.addToESDTBalance-new-esdtData - - ESDT.addToESDTBalance-new-err -- Anything LblcallContractCb(_,_,_)_ASYNC_InternalCmd_Bytes_String_VmInputCell Anything: ASYNC.callContractCb -- Anything LblesdtNftAddQuantity(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int_Int Anything: ESDT.esdtNftAddQuantity -- Anything LblesdtNftAddUri(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_ListBytes Anything: 2 - - ESDT.esdtNftAddUri - - ESDT.esdtNftAddUri-not-found -- Anything LblmoveNFTToDestination(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Bytes_Int Anything: 3 +- *** C--Lbl#throwException(_,_)_ELROND-NODE_ThrowException_ExceptionCode_String ***: ELROND-CONFIG.throwException-cmd +- *** C--Lbl#throwExceptionBs(_,_)_ELROND-NODE_ThrowException_ExceptionCode_Bytes ***: ELROND-CONFIG.throwExceptionBs-cmd +- *** C--LblmoveNFTToDestination(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Bytes_Int ***: 3 - ESDT.moveNFTToDestination-self - ESDT.moveNFTToDestination-existing - ESDT.moveNFTToDestination-new -- Anything LblsetAccountOwner(_,_)_ELROND-CONFIG_InternalCmd_Bytes_Bytes Anything: mx-semantics/elrond-config.md : (512, 10) -- Anything LbltransferESDT(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_ESDTTransfer Anything: 2 - - mx-semantics/esdt.md : (40, 10) - - mx-semantics/esdt.md : (49, 10) -- Anything LbltransferFunds(_,_,_)_ELROND-CONFIG_InternalCmd_Bytes_Bytes_Int Anything: mx-semantics/elrond-config.md : (532, 10) -- Anything LbltransferFundsH(_,_,_)_ELROND-CONFIG_InternalCmd_Bytes_Bytes_Int Anything: 3 - - ELROND-CONFIG.transferFundsH-self - - ELROND-CONFIG.transferFundsH-oofunds - - ELROND-CONFIG.transferFundsH -- Anything Anything Anything: 12 +- *** *** ***: 3 - mx-semantics/auto-allocate.md : (42, 10) - wasm-semantics/wasm.md : (355, 10) - - wasm-semantics/wasm.md : (510, 10) - - wasm-semantics/wasm.md : (346, 10) - - wasm-semantics/wasm.md : (344, 10) - - wasm-semantics/wasm.md : (345, 10) - - wasm-semantics/wasm.md : (343, 10) - - wasm-semantics/wasm.md : (1208, 10) - - wasm-semantics/wasm.md : (1207, 10) - wasm-semantics/wasm.md : (353, 10) - - mx-semantics/auto-allocate.md : (53, 10) +- *** *** C--Lbl.List{"mandosSteps"}: MANDOS.steps-empty +- *** *** C--LblcheckAccountESDTBalanceAux: mx-semantics/mandos.md : (405, 10) +- *** *** C--LblcheckAccountNonce: mx-semantics/mandos.md : (367, 10) +- *** *** C--LblqueryTx: mx-semantics/mandos.md : (604, 10) +- *** *** C--LblsetEsdtBalance: mx-semantics/mandos.md : (164, 10) +- *** C--Lbl#exception(_,_)_ELROND-NODE_InternalCmd_ExceptionCode_Bytes ***: 2 + - ELROND-CONFIG.exception-revert - ELROND-CONFIG.exception-skip -- Anything Anything Lbl.List{"mandosSteps"}: MANDOS.steps-empty -- Anything Anything LblcheckAccountESDTBalanceAux: mx-semantics/mandos.md : (405, 10) -- Anything Anything LblcheckAccountNonce: mx-semantics/mandos.md : (367, 10) -- Anything Anything LblqueryTx: mx-semantics/mandos.md : (604, 10) -- Anything Anything LblsetEsdtBalance: mx-semantics/mandos.md : (164, 10) -- Anything Lbl#mergeOutputs_ASYNC_InternalCmd Anything: 2 +- *** C--Lbl#mergeOutputs_ASYNC_InternalCmd ***: 2 - ASYNC.mergeOutputs - ASYNC.mergeOutputs-err -- Anything Lbl#setVMOutput Anything: SWITCH.setVMOutput -- Anything LbladdAsyncCall Anything: ASYNC.addAsyncCall -- Anything LblappendToOutAccount Anything: 3 +- *** C--Lbl#setVMOutput ***: SWITCH.setVMOutput +- *** C--LbladdAsyncCall ***: ASYNC.addAsyncCall +- *** C--LbladdToESDTBalance(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int_Bool ***: 3 + - ESDT.addToESDTBalance + - ESDT.addToESDTBalance-new-esdtData + - ESDT.addToESDTBalance-new-err +- *** C--LblappendToOutAccount ***: 3 - ELROND-NODE.appendToOutAccount - ELROND-NODE.appendToOutAccount-new-item - ELROND-NODE.appendToOutAccount-zero -- Anything LblasyncExecute Anything: ASYNC.asyncExecute -- Anything LblcallContractString Anything: mx-semantics/elrond-config.md : (592, 10) -- Anything LblcallContractWasmString Anything: 5 +- *** C--LblasyncExecute ***: ASYNC.asyncExecute +- *** C--LblcallContractCb(_,_,_)_ASYNC_InternalCmd_Bytes_String_VmInputCell ***: ASYNC.callContractCb +- *** C--LblcallContractString ***: mx-semantics/elrond-config.md : (592, 10) +- *** C--LblcallContractWasmString ***: 5 - ELROND-CONFIG.callContract-builtin - ELROND-CONFIG.callContract - ELROND-CONFIG.callContract-err-callback - ELROND-CONFIG.callContract-not-contract - ELROND-CONFIG.callContract-not-found -- Anything LblcheckAccountExists(_)_ELROND-NODE_InternalCmd_Bytes Anything: 2 +- *** C--LblcheckAccountExists(_)_ELROND-NODE_InternalCmd_Bytes ***: 2 - ELROND-NODE.checkAccountExists-pass - ELROND-NODE.checkAccountExists-fail -- Anything LblcheckAllowedToExecute Anything: 3 +- *** C--LblcheckAllowedToExecute ***: 3 - ESDT.checkAllowedToExecute-system - ESDT.checkAllowedToExecute-pass - ESDT.checkAllowedToExecute-fail -- Anything LblcheckBool Anything: 2 +- *** C--LblcheckBool ***: 2 - ELROND-NODE.checkBool-f - ELROND-NODE.checkBool-t -- Anything LblcheckESDTBalance(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int Anything: 2 +- *** C--LblcheckESDTBalance(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int ***: 2 - ESDT.checkESDTBalance - ESDT.checkESDTBalance-oof -- Anything LblcreateAccount Anything: 2 +- *** C--LblcreateAccount ***: 2 - ELROND-CONFIG.createAccount-existing - ELROND-CONFIG.createAccount-new -- Anything LbldetermineIsSCCallAfter Anything: 2 +- *** C--LbldetermineIsSCCallAfter ***: 2 - ESDT.determineIsSCCallAfter-call - ESDT.determineIsSCCallAfter-nocall -- Anything LbldropAsyncLocalCall Anything: ASYNC.dropAsyncLocalCall -- Anything LbldropCallState Anything: ELROND-NODE.dropCallState -- Anything LbldropWorldState Anything: ELROND-NODE.dropWorldState -- Anything LblesdtLocalBurn Anything: ESDT.esdtLocalBurn-cmd -- Anything LblesdtLocalMint Anything: ESDT.esdtLocalMint-cmd -- Anything LblesdtNftBurn(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int_Int Anything: ESDT.esdtNftBurn -- Anything LblesdtNftCreate Anything: ESDT.esdtNftCreate -- Anything LblexecuteAsyncLocalCall Anything: ASYNC.executeAsyncLocalCall -- Anything LblexecuteAsyncLocalCallback Anything: 2 +- *** C--LbldropAsyncLocalCall ***: ASYNC.dropAsyncLocalCall +- *** C--LbldropCallState ***: ELROND-NODE.dropCallState +- *** C--LbldropWorldState ***: ELROND-NODE.dropWorldState +- *** C--LblesdtLocalBurn ***: ESDT.esdtLocalBurn-cmd +- *** C--LblesdtLocalMint ***: ESDT.esdtLocalMint-cmd +- *** C--LblesdtNftAddQuantity(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int_Int ***: ESDT.esdtNftAddQuantity +- *** C--LblesdtNftAddUri(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_ListBytes ***: 2 + - ESDT.esdtNftAddUri + - ESDT.esdtNftAddUri-not-found +- *** C--LblesdtNftBurn(_,_,_,_)_ESDT_InternalCmd_Bytes_Bytes_Int_Int ***: ESDT.esdtNftBurn +- *** C--LblesdtNftCreate ***: ESDT.esdtNftCreate +- *** C--LblexecuteAsyncLocalCall ***: ASYNC.executeAsyncLocalCall +- *** C--LblexecuteAsyncLocalCallback ***: 2 - ASYNC.executeAsyncLocalCallback-no-callback - ASYNC.executeAsyncLocalCallback -- Anything LblnewWasmInstance Anything: ELROND-CONFIG.newWasmInstance -- Anything LblpopCallState Anything: ELROND-NODE.popCallState -- Anything LblpopWorldState Anything: ELROND-NODE.popWorldState -- Anything LblprocessBuiltinFunction Anything: 9 +- *** C--LblnewWasmInstance ***: ELROND-CONFIG.newWasmInstance +- *** C--LblpopCallState ***: ELROND-NODE.popCallState +- *** C--LblpopWorldState ***: ELROND-NODE.popWorldState +- *** C--LblprocessBuiltinFunction ***: 9 - ESDT.ESDTNFTCreate - ESDT.ESDTNFTTransfer - ESDT.ESDTTransfer @@ -4908,258 +4892,267 @@ Rewrite rules by term index: - ESDT.ESDTNFTAddQuantity - ESDT.ESDTNFTBurn - ESDT.ESDTNFTAddURI -- Anything LblpushCallState Anything: ELROND-NODE.pushCallState -- Anything LblpushWorldState Anything: ELROND-NODE.pushWorldState -- Anything LblregisterAsyncCall Anything: ASYNC.registerAsyncCall -- Anything LblremoveEmptyNft(_,_)_ESDT_InternalCmd_Bytes_Bytes Anything: 2 +- *** C--LblpushCallState ***: ELROND-NODE.pushCallState +- *** C--LblpushWorldState ***: ELROND-NODE.pushWorldState +- *** C--LblregisterAsyncCall ***: ASYNC.registerAsyncCall +- *** C--LblremoveEmptyNft(_,_)_ESDT_InternalCmd_Bytes_Bytes ***: 2 - ESDT.removeEmptyNft - ESDT.removeEmptyNft-skip -- Anything LblresetCallState Anything: ELROND-NODE.resetCallstate -- Anything LblsaveLatestNonce Anything: ESDT.saveLatestNonce -- Anything LblsaveNFT Anything: ESDT.saveNFT -- Anything LblsetAccountCode Anything: ELROND-CONFIG.setAccountCode -- Anything LblsetAccountFields Anything: ELROND-CONFIG.setAccountFields -- Anything LblsetContractModIdx_ELROND-CONFIG_InternalCmd Anything: ELROND-CONFIG.setContractModIdx -- Anything LbltransferESDTs(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_List Anything: mx-semantics/esdt.md : (27, 10) -- Anything LbltransferESDTsAux(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_List Anything: 2 +- *** C--LblresetCallState ***: ELROND-NODE.resetCallstate +- *** C--LblsaveLatestNonce ***: ESDT.saveLatestNonce +- *** C--LblsaveNFT ***: ESDT.saveNFT +- *** C--LblsetAccountCode ***: ELROND-CONFIG.setAccountCode +- *** C--LblsetAccountFields ***: ELROND-CONFIG.setAccountFields +- *** C--LblsetAccountOwner(_,_)_ELROND-CONFIG_InternalCmd_Bytes_Bytes ***: mx-semantics/elrond-config.md : (512, 10) +- *** C--LblsetContractModIdx_ELROND-CONFIG_InternalCmd ***: ELROND-CONFIG.setContractModIdx +- *** C--LbltransferESDT(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_ESDTTransfer ***: 2 + - mx-semantics/esdt.md : (40, 10) + - mx-semantics/esdt.md : (49, 10) +- *** C--LbltransferESDTs(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_List ***: mx-semantics/esdt.md : (27, 10) +- *** C--LbltransferESDTsAux(_,_,_)_ESDT_InternalCmd_Bytes_Bytes_List ***: 2 - mx-semantics/esdt.md : (34, 10) - mx-semantics/esdt.md : (33, 10) -- Anything dotk LblcallTx: MANDOS.callTx -- Anything dotk LblcallTxAux: MANDOS.callTxAux -- Anything dotk LblcheckAccountBalance: mx-semantics/mandos.md : (383, 10) -- Anything dotk LblcheckAccountBalanceAux: mx-semantics/mandos.md : (388, 10) -- Anything dotk LblcheckAccountCode: mx-semantics/mandos.md : (451, 10) -- Anything dotk LblcheckAccountCodeAux: 2 +- *** C--LbltransferFunds(_,_,_)_ELROND-CONFIG_InternalCmd_Bytes_Bytes_Int ***: mx-semantics/elrond-config.md : (532, 10) +- *** C--LbltransferFundsH(_,_,_)_ELROND-CONFIG_InternalCmd_Bytes_Bytes_Int ***: 3 + - ELROND-CONFIG.transferFundsH-self + - ELROND-CONFIG.transferFundsH-oofunds + - ELROND-CONFIG.transferFundsH +- *** C--dotk C--LblcallTx: MANDOS.callTx +- *** C--dotk C--LblcallTxAux: MANDOS.callTxAux +- *** C--dotk C--LblcheckAccountBalance: mx-semantics/mandos.md : (383, 10) +- *** C--dotk C--LblcheckAccountBalanceAux: mx-semantics/mandos.md : (388, 10) +- *** C--dotk C--LblcheckAccountCode: mx-semantics/mandos.md : (451, 10) +- *** C--dotk C--LblcheckAccountCodeAux: 2 - MANDOS.checkAccountCodeAux-code - MANDOS.checkAccountCodeAux-no-code -- Anything dotk LblcheckAccountESDTBalance: mx-semantics/mandos.md : (400, 10) -- Anything dotk LblcheckAccountESDTBalanceAux: mx-semantics/mandos.md : (422, 10) -- Anything dotk LblcheckAccountNonceAux: mx-semantics/mandos.md : (371, 10) -- Anything dotk LblcheckAccountStorage: mx-semantics/mandos.md : (433, 10) -- Anything dotk LblcheckAccountStorageAux: mx-semantics/mandos.md : (438, 10) -- Anything dotk LblcheckEsdtRoles: MANDOS.checkEsdtRoles -- Anything dotk LblcheckExpectLogs: 2 +- *** C--dotk C--LblcheckAccountESDTBalance: mx-semantics/mandos.md : (400, 10) +- *** C--dotk C--LblcheckAccountESDTBalanceAux: mx-semantics/mandos.md : (422, 10) +- *** C--dotk C--LblcheckAccountNonceAux: mx-semantics/mandos.md : (371, 10) +- *** C--dotk C--LblcheckAccountStorage: mx-semantics/mandos.md : (433, 10) +- *** C--dotk C--LblcheckAccountStorageAux: mx-semantics/mandos.md : (438, 10) +- *** C--dotk C--LblcheckEsdtRoles: MANDOS.checkEsdtRoles +- *** C--dotk C--LblcheckExpectLogs: 2 - mx-semantics/mandos.md : (585, 10) - mx-semantics/mandos.md : (590, 10) -- Anything dotk LblcheckExpectMessage: mx-semantics/mandos.md : (578, 10) -- Anything dotk LblcheckExpectOut: mx-semantics/mandos.md : (564, 10) -- Anything dotk LblcheckExpectStatus: mx-semantics/mandos.md : (571, 10) -- Anything dotk LblcheckNoAdditionalAccounts: mx-semantics/mandos.md : (498, 10) -- Anything dotk LblcheckedAccount: mx-semantics/mandos.md : (486, 10) -- Anything dotk LblcheckedAccountAux: mx-semantics/mandos.md : (491, 10) -- Anything dotk LblclearCheckedAccounts: mx-semantics/mandos.md : (506, 10) -- Anything dotk LbldeployTx: mx-semantics/mandos.md : (634, 10) -- Anything dotk LbldeployTxAux: MANDOS.deployTxAux -- Anything dotk LblmandosSteps: MANDOS.steps-seq -- Anything dotk LblnewAddress: mx-semantics/mandos.md : (289, 10) -- Anything dotk LblnewAddressAux: mx-semantics/mandos.md : (294, 10) -- Anything dotk LblqueryTxAux: mx-semantics/mandos.md : (607, 10) -- Anything dotk Lblregister: mx-semantics/mandos.md : (87, 10) -- Anything dotk LblsetAccount: mx-semantics/mandos.md : (149, 10) -- Anything dotk LblsetAccountAux: mx-semantics/mandos.md : (154, 10) -- Anything dotk LblsetCurBlockInfo: 5 +- *** C--dotk C--LblcheckExpectMessage: mx-semantics/mandos.md : (578, 10) +- *** C--dotk C--LblcheckExpectOut: mx-semantics/mandos.md : (564, 10) +- *** C--dotk C--LblcheckExpectStatus: mx-semantics/mandos.md : (571, 10) +- *** C--dotk C--LblcheckNoAdditionalAccounts: mx-semantics/mandos.md : (498, 10) +- *** C--dotk C--LblcheckedAccount: mx-semantics/mandos.md : (486, 10) +- *** C--dotk C--LblcheckedAccountAux: mx-semantics/mandos.md : (491, 10) +- *** C--dotk C--LblclearCheckedAccounts: mx-semantics/mandos.md : (506, 10) +- *** C--dotk C--LbldeployTx: mx-semantics/mandos.md : (634, 10) +- *** C--dotk C--LbldeployTxAux: MANDOS.deployTxAux +- *** C--dotk C--LblmandosSteps: MANDOS.steps-seq +- *** C--dotk C--LblnewAddress: mx-semantics/mandos.md : (289, 10) +- *** C--dotk C--LblnewAddressAux: mx-semantics/mandos.md : (294, 10) +- *** C--dotk C--LblqueryTxAux: mx-semantics/mandos.md : (607, 10) +- *** C--dotk C--Lblregister: mx-semantics/mandos.md : (87, 10) +- *** C--dotk C--LblsetAccount: mx-semantics/mandos.md : (149, 10) +- *** C--dotk C--LblsetAccountAux: mx-semantics/mandos.md : (154, 10) +- *** C--dotk C--LblsetCurBlockInfo: 5 - mx-semantics/mandos.md : (325, 10) - mx-semantics/mandos.md : (315, 10) - mx-semantics/mandos.md : (330, 10) - mx-semantics/mandos.md : (320, 10) - mx-semantics/mandos.md : (310, 10) -- Anything dotk LblsetEsdtBalanceAux: 2 +- *** C--dotk C--LblsetEsdtBalanceAux: 2 - MANDOS.setEsdtBalanceAux - MANDOS.setEsdtBalanceAux-new -- Anything dotk LblsetEsdtLastNonce: 2 +- *** C--dotk C--LblsetEsdtLastNonce: 2 - MANDOS.setEsdtLastNonce-existing - MANDOS.setEsdtLastNonce-new -- Anything dotk LblsetEsdtRoles: 2 +- *** C--dotk C--LblsetEsdtRoles: 2 - MANDOS.setEsdtRoles-existing - MANDOS.setEsdtRoles-new -- Anything dotk LblsetPrevBlockInfo: 5 +- *** C--dotk C--LblsetPrevBlockInfo: 5 - mx-semantics/mandos.md : (350, 10) - mx-semantics/mandos.md : (340, 10) - mx-semantics/mandos.md : (355, 10) - mx-semantics/mandos.md : (345, 10) - mx-semantics/mandos.md : (335, 10) -- Anything dotk Lbltransfer: mx-semantics/mandos.md : (679, 10) -- Anything dotk LbltransferTx: mx-semantics/mandos.md : (686, 10) -- Anything dotk LbltransferTxAux: mx-semantics/mandos.md : (692, 10) -- Anything dotk LblvalidatorReward: mx-semantics/mandos.md : (707, 10) -- Anything dotk LblvalidatorRewardTx: mx-semantics/mandos.md : (714, 10) -- Anything dotk LblvalidatorRewardTxAux: mx-semantics/mandos.md : (718, 10) -- Lbl#appendBytesToBuffer(_)_MANBUFOPS_InternalInstr_Int Anything Anything: mx-semantics/vmhooks/manBufOps.md : (59, 10) -- Lbl#appendBytes_ELROND-NODE_BytesOp Anything Anything: mx-semantics/elrond-node.md : (225, 10) -- Lbl#appendToOut(_)_ELROND-NODE_InternalInstr_Bytes Anything Anything: mx-semantics/elrond-node.md : (250, 10) -- Lbl#appendToOutFromBytesStack_ELROND-NODE_InternalInstr Anything Anything: mx-semantics/elrond-node.md : (246, 10) -- Lbl#bigIntGetESDTExternalBalance(_)_BIGINTOPS_InternalInstr_Int Anything Anything: 2 +- *** C--dotk C--Lbltransfer: mx-semantics/mandos.md : (679, 10) +- *** C--dotk C--LbltransferTx: mx-semantics/mandos.md : (686, 10) +- *** C--dotk C--LbltransferTxAux: mx-semantics/mandos.md : (692, 10) +- *** C--dotk C--LblvalidatorReward: mx-semantics/mandos.md : (707, 10) +- *** C--dotk C--LblvalidatorRewardTx: mx-semantics/mandos.md : (714, 10) +- *** C--dotk C--LblvalidatorRewardTxAux: mx-semantics/mandos.md : (718, 10) +- C--Lbl#appendBytesToBuffer(_)_MANBUFOPS_InternalInstr_Int *** ***: mx-semantics/vmhooks/manBufOps.md : (59, 10) +- C--Lbl#appendBytes_ELROND-NODE_BytesOp *** ***: mx-semantics/elrond-node.md : (225, 10) +- C--Lbl#appendToOut(_)_ELROND-NODE_InternalInstr_Bytes *** ***: mx-semantics/elrond-node.md : (250, 10) +- C--Lbl#appendToOutFromBytesStack_ELROND-NODE_InternalInstr *** ***: mx-semantics/elrond-node.md : (246, 10) +- C--Lbl#bigIntGetESDTExternalBalance(_)_BIGINTOPS_InternalInstr_Int *** ***: 2 - mx-semantics/vmhooks/bigIntOps.md : (509, 10) - mx-semantics/vmhooks/bigIntOps.md : (525, 10) -- Lbl#bytesEqual_ELROND-NODE_InternalInstr Anything Anything: mx-semantics/elrond-node.md : (235, 10) -- Lbl#callIndirect(_,_)_WASM_Instr_RefVal_FuncType Anything Anything: 3 +- C--Lbl#bytesEqual_ELROND-NODE_InternalInstr *** ***: mx-semantics/elrond-node.md : (235, 10) +- C--Lbl#callIndirect(_,_)_WASM_Instr_RefVal_FuncType *** ***: 3 - WASM.callIndirect-null-ref - WASM.callIndirect-invoke - WASM.callIndirect-wrong-type -- Lbl#checkESDTRole(_)_KASMER_InternalInstr_ESDTLocalRole Anything Anything: 3 +- C--Lbl#checkESDTRole(_)_KASMER_InternalInstr_ESDTLocalRole *** ***: 3 - KASMER.checkESDTRole-exists - KASMER.checkESDTRole-none - KASMER.checkESDTRole-not-found -- Lbl#createAsyncCallWithTypedArgs(_,_,_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_IntResult_BytesResult_ListBytesResult_Int_Int_BytesResult Anything Anything: BASEOPS.createAsyncCallWithTypedArgs -- Lbl#dropBytes_ELROND-NODE_BytesOp Anything Anything: mx-semantics/elrond-node.md : (222, 10) -- Lbl#elemAux(_,_)_WASM_ElemDefn_Int_ElemMode Anything Anything: 3 +- C--Lbl#createAsyncCallWithTypedArgs(_,_,_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_IntResult_BytesResult_ListBytesResult_Int_Int_BytesResult *** ***: BASEOPS.createAsyncCallWithTypedArgs +- C--Lbl#dropBytes_ELROND-NODE_BytesOp *** ***: mx-semantics/elrond-node.md : (222, 10) +- C--Lbl#elemAux(_,_)_WASM_ElemDefn_Int_ElemMode *** ***: 3 - WASM.elem-active-aux - WASM.elem-declarative-aux - WASM.elem-passive-aux -- Lbl#elemCheckSizeGTE(_,_)_WASM_Instr_Int_Int Anything Anything: 2 +- C--Lbl#elemCheckSizeGTE(_,_)_WASM_Instr_Int_Int *** ***: 2 - WASM.elemCheckSizeGTE-pass - WASM.elemCheckSizeGTE-fail -- Lbl#executeOnDestContext(_,_,_,_,_,_)_BASEOPS_InternalInstr_Bytes_Int_List_Int_Bytes_ListBytes Anything Anything: BASEOPS.executeOnDestContext -- Lbl#executeOnDestContextWithTypedArgs(_,_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_IntResult_ListResult_Int_BytesResult_ListBytesResult Anything Anything: BASEOPS.executeOnDestContextWithTypedArgs -- Lbl#getArgsFromMemory(_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int Anything Anything: 2 +- C--Lbl#executeOnDestContext(_,_,_,_,_,_)_BASEOPS_InternalInstr_Bytes_Int_List_Int_Bytes_ListBytes *** ***: BASEOPS.executeOnDestContext +- C--Lbl#executeOnDestContextWithTypedArgs(_,_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_IntResult_ListResult_Int_BytesResult_ListBytesResult *** ***: BASEOPS.executeOnDestContextWithTypedArgs +- C--Lbl#getArgsFromMemory(_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int *** ***: 2 - mx-semantics/elrond-config.md : (343, 10) - mx-semantics/elrond-config.md : (349, 10) -- Lbl#getArgsFromMemoryAux(_,_,_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int_Int_Int Anything Anything: 2 +- C--Lbl#getArgsFromMemoryAux(_,_,_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int_Int_Int *** ***: 2 - mx-semantics/elrond-config.md : (360, 10) - mx-semantics/elrond-config.md : (354, 10) -- Lbl#getBigInt(_,_)_BIGINT-HELPERS_InternalInstr_Int_Signedness Anything Anything: 2 +- C--Lbl#getBigInt(_,_)_BIGINT-HELPERS_InternalInstr_Int_Signedness *** ***: 2 - mx-semantics/vmhooks/bigIntOps.md : (25, 10) - mx-semantics/vmhooks/bigIntOps.md : (35, 10) -- Lbl#getBigIntOrCreate(_,_)_BIGINT-HELPERS_InternalInstr_Int_Signedness Anything Anything: 2 +- C--Lbl#getBigIntOrCreate(_,_)_BIGINT-HELPERS_InternalInstr_Int_Signedness *** ***: 2 - BIGINT-HELPERS.getBigIntOrCreate-get - BIGINT-HELPERS.getBigIntOrCreate-create -- Lbl#getBuffer(_)_MANBUFOPS_InternalInstr_Int Anything Anything: 2 +- C--Lbl#getBuffer(_)_MANBUFOPS_InternalInstr_Int *** ***: 2 - MANBUFOPS.getBuffer - MANBUFOPS.getBuffer-not-found -- Lbl#getESDTTokenData_MANAGEDEI_InternalInstr Anything Anything: 2 +- C--Lbl#getESDTTokenData_MANAGEDEI_InternalInstr *** ***: 2 - MANAGEDEI.getESDTTokenData-nft - MANAGEDEI.getESDTTokenData-ft -- Lbl#getExternalBalance_BASEOPS_InternalInstr Anything Anything: 2 +- C--Lbl#getExternalBalance_BASEOPS_InternalInstr *** ***: 2 - mx-semantics/vmhooks/baseOps.md : (76, 10) - mx-semantics/vmhooks/baseOps.md : (85, 10) -- Lbl#hashManBuffer(_,_,_)_CRYPTOEI-HELPERS_InternalInstr_Int_Int_HashBytesStackInstr Anything Anything: CRYPTOEI-HELPERS.hashManBuffer -- Lbl#hashMemory(_,_,_,_)_CRYPTOEI-HELPERS_InternalInstr_Int_Int_Int_HashBytesStackInstr Anything Anything: mx-semantics/vmhooks/cryptoei.md : (30, 10) -- Lbl#init_locals___WASM-INTERNAL-SYNTAX_Instr_Int_ValStack Anything Anything: 2 +- C--Lbl#hashManBuffer(_,_,_)_CRYPTOEI-HELPERS_InternalInstr_Int_Int_HashBytesStackInstr *** ***: CRYPTOEI-HELPERS.hashManBuffer +- C--Lbl#hashMemory(_,_,_,_)_CRYPTOEI-HELPERS_InternalInstr_Int_Int_Int_HashBytesStackInstr *** ***: mx-semantics/vmhooks/cryptoei.md : (30, 10) +- C--Lbl#init_locals___WASM-INTERNAL-SYNTAX_Instr_Int_ValStack *** ***: 2 - wasm-semantics/wasm.md : (564, 10) - wasm-semantics/wasm.md : (563, 10) -- Lbl#isReservedKey(_)_ELROND-CONFIG_InternalInstr_String Anything Anything: 2 +- C--Lbl#isReservedKey(_)_ELROND-CONFIG_InternalInstr_String *** ***: 2 - mx-semantics/elrond-config.md : (200, 10) - mx-semantics/elrond-config.md : (203, 10) -- Lbl#keccakFromBytesStack_CRYPTOEI-HELPERS_HashBytesStackInstr Anything Anything: mx-semantics/vmhooks/cryptoei.md : (25, 10) -- Lbl#loadArgData(_,_,_,_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int_Int_Int_Int Anything Anything: mx-semantics/elrond-config.md : (377, 10) -- Lbl#loadArgDataWithLengthOnStack(_,_,_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int_Int_Int Anything Anything: mx-semantics/elrond-config.md : (370, 10) -- Lbl#loadBytesAsSInt64(_)_ELROND-CONFIG_InternalInstr_String Anything Anything: mx-semantics/elrond-config.md : (313, 10) -- Lbl#loadBytesAsUInt64(_)_ELROND-CONFIG_InternalInstr_String Anything Anything: mx-semantics/elrond-config.md : (310, 10) -- Lbl#mBufferCopyByteSliceH(_,_,_)_MANBUFOPS_InternalInstr_Int_Int_Int Anything Anything: 2 +- C--Lbl#keccakFromBytesStack_CRYPTOEI-HELPERS_HashBytesStackInstr *** ***: mx-semantics/vmhooks/cryptoei.md : (25, 10) +- C--Lbl#loadArgData(_,_,_,_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int_Int_Int_Int *** ***: mx-semantics/elrond-config.md : (377, 10) +- C--Lbl#loadArgDataWithLengthOnStack(_,_,_,_,_)_ELROND-CONFIG_InternalInstr_Int_Int_Int_Int_Int *** ***: mx-semantics/elrond-config.md : (370, 10) +- C--Lbl#loadBytesAsSInt64(_)_ELROND-CONFIG_InternalInstr_String *** ***: mx-semantics/elrond-config.md : (313, 10) +- C--Lbl#loadBytesAsUInt64(_)_ELROND-CONFIG_InternalInstr_String *** ***: mx-semantics/elrond-config.md : (310, 10) +- C--Lbl#mBufferCopyByteSliceH(_,_,_)_MANBUFOPS_InternalInstr_Int_Int_Int *** ***: 2 - mx-semantics/vmhooks/manBufOps.md : (303, 10) - mx-semantics/vmhooks/manBufOps.md : (312, 10) -- Lbl#mBufferGetByteSliceH(_,_,_)_MANBUFOPS_InternalInstr_Int_Int_Int Anything Anything: 2 +- C--Lbl#mBufferGetByteSliceH(_,_,_)_MANBUFOPS_InternalInstr_Int_Int_Int *** ***: 2 - mx-semantics/vmhooks/manBufOps.md : (228, 10) - mx-semantics/vmhooks/manBufOps.md : (237, 10) -- Lbl#memLoad(_,_)_ELROND-CONFIG_InternalInstr_Int_Int Anything Anything: 5 +- C--Lbl#memLoad(_,_)_ELROND-CONFIG_InternalInstr_Int_Int *** ***: 5 - ELROND-CONFIG.memLoad-zero-length - ELROND-CONFIG.memLoad-negative-length - ELROND-CONFIG.memLoad - ELROND-CONFIG.memLoad-bad-bounds - ELROND-CONFIG.memLoad-owise -- Lbl#memStore(_,_)_ELROND-CONFIG_InternalInstr_Int_Bytes Anything Anything: 4 +- C--Lbl#memStore(_,_)_ELROND-CONFIG_InternalInstr_Int_Bytes *** ***: 4 - mx-semantics/elrond-config.md : (58, 10) - mx-semantics/elrond-config.md : (80, 10) - mx-semantics/elrond-config.md : (63, 10) - ELROND-CONFIG.memStore-owise -- Lbl#memStoreFromBytesStack(_)_ELROND-CONFIG_InternalInstr_Int Anything Anything: mx-semantics/elrond-config.md : (55, 10) -- Lbl#pushBytes(_)_ELROND-NODE_BytesOp_Bytes Anything Anything: mx-semantics/elrond-node.md : (219, 10) -- Lbl#returnData(_,_)_BASEOPS_InternalInstr_Int_Int Anything Anything: mx-semantics/vmhooks/baseOps.md : (328, 10) -- Lbl#returnIfSInt64(_,_)_ELROND-CONFIG_InternalInstr_Int_String Anything Anything: 2 +- C--Lbl#memStoreFromBytesStack(_)_ELROND-CONFIG_InternalInstr_Int *** ***: mx-semantics/elrond-config.md : (55, 10) +- C--Lbl#pushBytes(_)_ELROND-NODE_BytesOp_Bytes *** ***: mx-semantics/elrond-node.md : (219, 10) +- C--Lbl#returnData(_,_)_BASEOPS_InternalInstr_Int_Int *** ***: mx-semantics/vmhooks/baseOps.md : (328, 10) +- C--Lbl#returnIfSInt64(_,_)_ELROND-CONFIG_InternalInstr_Int_String *** ***: 2 - mx-semantics/elrond-config.md : (302, 10) - mx-semantics/elrond-config.md : (299, 10) -- Lbl#returnIfUInt64(_,_)_ELROND-CONFIG_InternalInstr_Int_String Anything Anything: 2 +- C--Lbl#returnIfUInt64(_,_)_ELROND-CONFIG_InternalInstr_Int_String *** ***: 2 - mx-semantics/elrond-config.md : (294, 10) - mx-semantics/elrond-config.md : (291, 10) -- Lbl#returnLength_ELROND-NODE_InternalInstr Anything Anything: mx-semantics/elrond-node.md : (230, 10) -- Lbl#setBalance(_,_)_KASMER_InternalInstr_BytesResult_IntResult Anything Anything: 5 +- C--Lbl#returnLength_ELROND-NODE_InternalInstr *** ***: mx-semantics/elrond-node.md : (230, 10) +- C--Lbl#setBalance(_,_)_KASMER_InternalInstr_BytesResult_IntResult *** ***: 5 - KASMER.setBalance-invalid-big-int - KASMER.setBalance-neg - KASMER.setBalance-invalid-buffer - KASMER.setBalance - KASMER.setBalance-acct-not-found -- Lbl#setBigInt(_,_,_)_BIGINT-HELPERS_InternalInstr_Int_Bytes_Signedness Anything Anything: mx-semantics/vmhooks/bigIntOps.md : (65, 10) -- Lbl#setBigIntFromBytesStack(_,_)_BIGINT-HELPERS_InternalInstr_Int_Signedness Anything Anything: mx-semantics/vmhooks/bigIntOps.md : (62, 10) -- Lbl#setBigIntValue(_,_)_BIGINT-HELPERS_InternalInstr_Int_Int Anything Anything: mx-semantics/vmhooks/bigIntOps.md : (68, 10) -- Lbl#setBuffer(_,_)_MANBUFOPS_InternalInstr_Int_Bytes Anything Anything: mx-semantics/vmhooks/manBufOps.md : (54, 10) -- Lbl#setBufferFromBytesStack(_)_MANBUFOPS_InternalInstr_Int Anything Anything: mx-semantics/vmhooks/manBufOps.md : (51, 10) -- Lbl#setESDTBalance(_)_KASMER_InternalInstr_IntResult Anything Anything: 5 +- C--Lbl#setBigInt(_,_,_)_BIGINT-HELPERS_InternalInstr_Int_Bytes_Signedness *** ***: mx-semantics/vmhooks/bigIntOps.md : (65, 10) +- C--Lbl#setBigIntFromBytesStack(_,_)_BIGINT-HELPERS_InternalInstr_Int_Signedness *** ***: mx-semantics/vmhooks/bigIntOps.md : (62, 10) +- C--Lbl#setBigIntValue(_,_)_BIGINT-HELPERS_InternalInstr_Int_Int *** ***: mx-semantics/vmhooks/bigIntOps.md : (68, 10) +- C--Lbl#setBuffer(_,_)_MANBUFOPS_InternalInstr_Int_Bytes *** ***: mx-semantics/vmhooks/manBufOps.md : (54, 10) +- C--Lbl#setBufferFromBytesStack(_)_MANBUFOPS_InternalInstr_Int *** ***: mx-semantics/vmhooks/manBufOps.md : (51, 10) +- C--Lbl#setESDTBalance(_)_KASMER_InternalInstr_IntResult *** ***: 5 - KASMER.setESDTBalance-invalid-big-int - KASMER.setESDTBalance-neg - KASMER.setESDTBalance - KASMER.setESDTBalance-new-token - KASMER.setESDTBalance-acct-not-found -- Lbl#setESDTRole(_,_)_KASMER_InternalInstr_ESDTLocalRole_Bool Anything Anything: 4 +- C--Lbl#setESDTRole(_,_)_KASMER_InternalInstr_ESDTLocalRole_Bool *** ***: 4 - KASMER.setESDTRole-set-existing - KASMER.setESDTRole-add-new - KASMER.setESDTRole-remove-skip - KASMER.setESDTRole-not-found -- Lbl#setReturnDataIfExists(_,_)_MANAGEDEI_InternalInstr_Int_Int Anything Anything: 2 +- C--Lbl#setReturnDataIfExists(_,_)_MANAGEDEI_InternalInstr_Int_Int *** ***: 2 - MANAGEDEI.setReturnDataIfExists-noData - MANAGEDEI.setReturnDataIfExists -- Lbl#setStorage(_,_)_ELROND-CONFIG_InternalInstr_Bytes_Bytes Anything Anything: mx-semantics/elrond-config.md : (167, 10) -- Lbl#sha256FromBytesStack_CRYPTOEI-HELPERS_HashBytesStackInstr Anything Anything: mx-semantics/vmhooks/cryptoei.md : (20, 10) -- Lbl#signalError_BASEOPS_InternalInstr Anything Anything: mx-semantics/vmhooks/baseOps.md : (347, 10) -- Lbl#sliceBytes(_,_)_MANBUFOPS_InternalInstr_Int_Int Anything Anything: mx-semantics/vmhooks/manBufOps.md : (68, 10) -- Lbl#startPrank(_)_KASMER_InternalInstr_BytesResult Anything Anything: 3 +- C--Lbl#setStorage(_,_)_ELROND-CONFIG_InternalInstr_Bytes_Bytes *** ***: mx-semantics/elrond-config.md : (167, 10) +- C--Lbl#sha256FromBytesStack_CRYPTOEI-HELPERS_HashBytesStackInstr *** ***: mx-semantics/vmhooks/cryptoei.md : (20, 10) +- C--Lbl#signalError_BASEOPS_InternalInstr *** ***: mx-semantics/vmhooks/baseOps.md : (347, 10) +- C--Lbl#sliceBytes(_,_)_MANBUFOPS_InternalInstr_Int_Int *** ***: mx-semantics/vmhooks/manBufOps.md : (68, 10) +- C--Lbl#startPrank(_)_KASMER_InternalInstr_BytesResult *** ***: 3 - KASMER.startPrank - KASMER.startPrank-not-allowed - KASMER.startPrank-err -- Lbl#storageLoadFromAddress_ELROND-CONFIG_InternalInstr Anything Anything: 2 +- C--Lbl#storageLoadFromAddress_ELROND-CONFIG_InternalInstr *** ***: 2 - ELROND-CONFIG.storageLoadFromAddress - ELROND-CONFIG.storageLoadFromAddress-unknown-addr -- Lbl#storageLoad_ELROND-CONFIG_InternalInstr Anything Anything: mx-semantics/elrond-config.md : (211, 10) -- Lbl#storageStore_ELROND-CONFIG_InternalInstr Anything Anything: mx-semantics/elrond-config.md : (162, 10) -- Lbl#tableCheckSizeGTE(_,_)_WASM_Instr_Int_Int Anything Anything: 2 +- C--Lbl#storageLoad_ELROND-CONFIG_InternalInstr *** ***: mx-semantics/elrond-config.md : (211, 10) +- C--Lbl#storageStore_ELROND-CONFIG_InternalInstr *** ***: mx-semantics/elrond-config.md : (162, 10) +- C--Lbl#tableCheckSizeGTE(_,_)_WASM_Instr_Int_Int *** ***: 2 - WASM.tableCheckSizeGTE-pass - WASM.tableCheckSizeGTE-fail -- Lbl#tableCopy(_,_,_,_,_)_WASM_Instr_Int_Int_Int_Int_Int Anything Anything: 3 +- C--Lbl#tableCopy(_,_,_,_,_)_WASM_Instr_Int_Int_Int_Int_Int *** ***: 3 - WASM.tableCopy-LR - WASM.tableCopy-RL - WASM.tableCopy-zero -- Lbl#tableFill(_,_,_,_)_WASM_Instr_Int_Int_RefVal_Int Anything Anything: 2 +- C--Lbl#tableFill(_,_,_,_)_WASM_Instr_Int_Int_RefVal_Int *** ***: 2 - WASM.tableFill-loop - WASM.tableFill-zero -- Lbl#tableGet(_,_)_WASM_Instr_Int_Int Anything Anything: 2 +- C--Lbl#tableGet(_,_)_WASM_Instr_Int_Int *** ***: 2 - WASM.tableGet-trap - WASM.tableGet -- Lbl#tableInit(_,_,_,_)_WASM_Instr_Int_Int_Int_ListRef Anything Anything: 2 +- C--Lbl#tableInit(_,_,_,_)_WASM_Instr_Int_Int_Int_ListRef *** ***: 2 - WASM.tableInit - WASM.tableInit-done -- Lbl#tableSet(_,_,_)_WASM_Instr_Int_RefVal_Int Anything Anything: 2 +- C--Lbl#tableSet(_,_,_)_WASM_Instr_Int_RefVal_Int *** ***: 2 - WASM.tableSet - WASM.tableSet-oob -- Lbl#throwException(_,_)_ELROND-NODE_ThrowException_ExceptionCode_String Anything Anything: ELROND-CONFIG.throwException -- Lbl#throwExceptionBs(_,_)_ELROND-NODE_ThrowException_ExceptionCode_Bytes Anything Anything: ELROND-CONFIG.throwExceptionBs -- Lbl#transferESDTNFTExecuteWithTypedArgs(_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_ListResult_Int_BytesResult_ListBytesResult Anything Anything: 2 +- C--Lbl#throwException(_,_)_ELROND-NODE_ThrowException_ExceptionCode_String *** ***: ELROND-CONFIG.throwException +- C--Lbl#throwExceptionBs(_,_)_ELROND-NODE_ThrowException_ExceptionCode_Bytes *** ***: ELROND-CONFIG.throwExceptionBs +- C--Lbl#transferESDTNFTExecuteWithTypedArgs(_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_ListResult_Int_BytesResult_ListBytesResult *** ***: 2 - mx-semantics/vmhooks/baseOps.md : (417, 10) - BASEOPS.transfer-esdt-and-execute -- Lbl#transferValueExecuteWithTypedArgs(_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_IntResult_Int_BytesResult_ListBytesResult Anything Anything: 2 +- C--Lbl#transferValueExecuteWithTypedArgs(_,_,_,_,_)_BASEOPS_InternalInstr_BytesResult_IntResult_Int_BytesResult_ListBytesResult *** ***: 2 - mx-semantics/vmhooks/baseOps.md : (435, 10) - BASEOPS.transfer-and-execute -- Lbl#transferValue_BASEOPS_InternalInstr Anything Anything: mx-semantics/vmhooks/baseOps.md : (106, 10) -- Lbl#waitCommands Lbl#endWasm Anything: SWITCH.waitCommands -- Lbl#writeBytesToBuffer(_)_MANAGEDCONVERSIONS_InternalInstr_Bytes Anything Anything: MANAGEDCONVERSIONS.writeBytesToBuffer -- Lbl#writeEsdtToBytes(_)_MANAGEDCONVERSIONS_InternalInstr_ESDTTransfer Anything Anything: mx-semantics/vmhooks/managedConversions.md : (33, 10) -- Lbl#writeEsdtsToBytes(_)_MANAGEDCONVERSIONS_InternalInstr_List Anything Anything: mx-semantics/vmhooks/managedConversions.md : (20, 10) -- Lbl#writeEsdtsToBytesH(_)_MANAGEDCONVERSIONS_InternalInstr_List Anything Anything: 2 +- C--Lbl#transferValue_BASEOPS_InternalInstr *** ***: mx-semantics/vmhooks/baseOps.md : (106, 10) +- C--Lbl#waitCommands C--Lbl#endWasm ***: SWITCH.waitCommands +- C--Lbl#writeBytesToBuffer(_)_MANAGEDCONVERSIONS_InternalInstr_Bytes *** ***: MANAGEDCONVERSIONS.writeBytesToBuffer +- C--Lbl#writeEsdtToBytes(_)_MANAGEDCONVERSIONS_InternalInstr_ESDTTransfer *** ***: mx-semantics/vmhooks/managedConversions.md : (33, 10) +- C--Lbl#writeEsdtsToBytes(_)_MANAGEDCONVERSIONS_InternalInstr_List *** ***: mx-semantics/vmhooks/managedConversions.md : (20, 10) +- C--Lbl#writeEsdtsToBytesH(_)_MANAGEDCONVERSIONS_InternalInstr_List *** ***: 2 - mx-semantics/vmhooks/managedConversions.md : (25, 10) - mx-semantics/vmhooks/managedConversions.md : (27, 10) -- Lbl#writeListBytesToBuffers(_)_MANAGEDCONVERSIONS_InternalInstr_ListBytes Anything Anything: MANAGEDCONVERSIONS.writeListBytesToBuffers -- Lbl#writeListBytesToBuffersH(_)_MANAGEDCONVERSIONS_InternalInstr_ListBytes Anything Anything: 2 +- C--Lbl#writeListBytesToBuffers(_)_MANAGEDCONVERSIONS_InternalInstr_ListBytes *** ***: MANAGEDCONVERSIONS.writeListBytesToBuffers +- C--Lbl#writeListBytesToBuffersH(_)_MANAGEDCONVERSIONS_InternalInstr_ListBytes *** ***: 2 - MANAGEDCONVERSIONS.writeListBytesToBuffersH-nil - MANAGEDCONVERSIONS.writeListBytesToBuffersH-cons -- Lbl#writeLogAux(_,_,_)_ELROND-CONFIG_InternalInstr_Int_ListBytes_Bytes Anything Anything: 2 +- C--Lbl#writeLogAux(_,_,_)_ELROND-CONFIG_InternalInstr_Int_ListBytes_Bytes *** ***: 2 - mx-semantics/elrond-config.md : (390, 10) - mx-semantics/elrond-config.md : (395, 10) -- Lbl#writeLog_ELROND-CONFIG_InternalInstr Anything Anything: mx-semantics/elrond-config.md : (386, 10) -- Lbl#writeManagedVecOfManagedBuffers(_,_)_MANAGEDCONVERSIONS_InternalInstr_ListBytes_Int Anything Anything: MANAGEDCONVERSIONS.writeManagedVecOfManagedBuffers -- Lbl#writeToStorage(_,_)_ELROND-CONFIG_InternalInstr_Bytes_Bytes Anything Anything: 3 +- C--Lbl#writeLog_ELROND-CONFIG_InternalInstr *** ***: mx-semantics/elrond-config.md : (386, 10) +- C--Lbl#writeManagedVecOfManagedBuffers(_,_)_MANAGEDCONVERSIONS_InternalInstr_ListBytes_Int *** ***: MANAGEDCONVERSIONS.writeManagedVecOfManagedBuffers +- C--Lbl#writeToStorage(_,_)_ELROND-CONFIG_InternalInstr_Bytes_Bytes *** ***: 3 - mx-semantics/elrond-config.md : (175, 10) - mx-semantics/elrond-config.md : (184, 10) - ELROND-CONFIG.writeToStorage-unknown-addr -- Lbl(invoke_)_WASM_Instr_Int Anything Anything: wasm-semantics/wasm.md : (1189, 10) -- Lbl_.___WASM_Instr_IValType_LoadOp_Int Anything Anything: 7 +- C--Lbl(invoke_)_WASM_Instr_Int *** ***: wasm-semantics/wasm.md : (1189, 10) +- C--Lbl_.___WASM_Instr_IValType_LoadOp_Int *** ***: 7 - wasm-semantics/wasm.md : (1452, 10) - wasm-semantics/wasm.md : (1449, 10) - wasm-semantics/wasm.md : (1446, 10) @@ -5167,140 +5160,145 @@ Rewrite rules by term index: - wasm-semantics/wasm.md : (1448, 10) - wasm-semantics/wasm.md : (1450, 10) - wasm-semantics/wasm.md : (1447, 10) -- Lbl_.____WASM_Instr_IValType_StoreOp_Int_Int Anything Anything: 4 +- C--Lbl_.____WASM_Instr_IValType_StoreOp_Int_Int *** ***: 4 - wasm-semantics/wasm.md : (1425, 10) - wasm-semantics/wasm.md : (1428, 10) - wasm-semantics/wasm.md : (1427, 10) - wasm-semantics/wasm.md : (1426, 10) -- LblaBlock Anything Anything: wasm-semantics/wasm.md : (498, 10) -- LblaBr Anything Anything: 2 +- C--LblaBlock *** ***: wasm-semantics/wasm.md : (498, 10) +- C--LblaBr *** ***: 3 - wasm-semantics/wasm.md : (511, 10) + - wasm-semantics/wasm.md : (510, 10) - wasm-semantics/wasm.md : (513, 10) -- LblaBr_if Anything Anything: 2 +- C--LblaBr_if *** ***: 2 - wasm-semantics/wasm.md : (518, 10) - wasm-semantics/wasm.md : (521, 10) -- LblaBr_table Anything Anything: wasm-semantics/wasm.md : (527, 10) -- LblaCall Anything Anything: wasm-semantics/wasm.md : (1219, 10) -- LblaCall_indirect Anything Anything: WASM.call-indirect-getRef -- LblaCvtOp Anything Anything: 4 +- C--LblaBr_table *** ***: wasm-semantics/wasm.md : (527, 10) +- C--LblaCall *** ***: wasm-semantics/wasm.md : (1219, 10) +- C--LblaCall_indirect *** ***: WASM.call-indirect-getRef +- C--LblaCvtOp *** ***: 4 - wasm-semantics/wasm.md : (435, 10) - wasm-semantics/wasm.md : (438, 10) - wasm-semantics/wasm.md : (429, 10) - wasm-semantics/wasm.md : (432, 10) -- LblaDataDefn Anything Anything: wasm-semantics/wasm.md : (1643, 10) -- LblaDrop Anything Anything: wasm-semantics/wasm.md : (449, 10) -- LblaElem.drop Anything Anything: WASM.elem.drop -- LblaElemDefn Anything Anything: WASM.elem-active -- LblaExportDefn Anything Anything: wasm-semantics/wasm.md : (1692, 10) -- LblaExtendS Anything Anything: wasm-semantics/wasm.md : (389, 10) -- LblaFBinOp Anything Anything: wasm-semantics/wasm.md : (400, 10) -- LblaFConst Anything Anything: wasm-semantics/wasm.md : (373, 10) -- LblaFRelOp Anything Anything: wasm-semantics/wasm.md : (420, 10) -- LblaFUnOp Anything Anything: wasm-semantics/wasm.md : (387, 10) -- LblaFuncDefn Anything Anything: wasm-semantics/wasm.md : (1132, 10) -- LblaGlobal.get Anything Anything: wasm-semantics/wasm.md : (641, 10) -- LblaGlobal.set Anything Anything: wasm-semantics/wasm.md : (655, 10) -- LblaGlobalDefn Anything Anything: wasm-semantics/wasm.md : (608, 10) -- LblaGrow Anything Anything: wasm-semantics/wasm.md : (1510, 10) -- LblaIBinOp Anything Anything: wasm-semantics/wasm.md : (398, 10) -- LblaIConst Anything Anything: wasm-semantics/wasm.md : (372, 10) -- LblaIRelOp Anything Anything: wasm-semantics/wasm.md : (418, 10) -- LblaIUnOp Anything Anything: wasm-semantics/wasm.md : (385, 10) -- LblaIf Anything Anything: 2 +- C--LblaDataDefn *** ***: wasm-semantics/wasm.md : (1643, 10) +- C--LblaDrop *** ***: wasm-semantics/wasm.md : (449, 10) +- C--LblaElem.drop *** ***: WASM.elem.drop +- C--LblaElemDefn *** ***: WASM.elem-active +- C--LblaExportDefn *** ***: wasm-semantics/wasm.md : (1692, 10) +- C--LblaExtendS *** ***: wasm-semantics/wasm.md : (389, 10) +- C--LblaFBinOp *** ***: wasm-semantics/wasm.md : (400, 10) +- C--LblaFConst *** ***: wasm-semantics/wasm.md : (373, 10) +- C--LblaFRelOp *** ***: wasm-semantics/wasm.md : (420, 10) +- C--LblaFUnOp *** ***: wasm-semantics/wasm.md : (387, 10) +- C--LblaFuncDefn *** ***: wasm-semantics/wasm.md : (1132, 10) +- C--LblaGlobal.get *** ***: wasm-semantics/wasm.md : (641, 10) +- C--LblaGlobal.set *** ***: wasm-semantics/wasm.md : (655, 10) +- C--LblaGlobalDefn *** ***: wasm-semantics/wasm.md : (608, 10) +- C--LblaGrow *** ***: wasm-semantics/wasm.md : (1510, 10) +- C--LblaIBinOp *** ***: wasm-semantics/wasm.md : (398, 10) +- C--LblaIConst *** ***: wasm-semantics/wasm.md : (372, 10) +- C--LblaIRelOp *** ***: wasm-semantics/wasm.md : (418, 10) +- C--LblaIUnOp *** ***: wasm-semantics/wasm.md : (385, 10) +- C--LblaIf *** ***: 2 - wasm-semantics/wasm.md : (536, 10) - wasm-semantics/wasm.md : (540, 10) -- LblaImportDefn Anything Anything: 4 +- C--LblaImportDefn *** ***: 5 - wasm-semantics/wasm.md : (1717, 10) + - mx-semantics/auto-allocate.md : (53, 10) - wasm-semantics/wasm.md : (1791, 10) - wasm-semantics/wasm.md : (1767, 10) - wasm-semantics/wasm.md : (1743, 10) -- LblaImportDefnHelper Anything Anything: wasm-semantics/wasm.md : (1727, 10) -- LblaLoad Anything Anything: wasm-semantics/wasm.md : (1443, 10) -- LblaLocal.get Anything Anything: wasm-semantics/wasm.md : (578, 10) -- LblaLocal.set Anything Anything: wasm-semantics/wasm.md : (582, 10) -- LblaLocal.tee Anything Anything: wasm-semantics/wasm.md : (587, 10) -- LblaLoop Anything Anything: wasm-semantics/wasm.md : (546, 10) -- LblaMemoryDefn Anything Anything: 2 +- C--LblaImportDefnHelper *** ***: wasm-semantics/wasm.md : (1727, 10) +- C--LblaLoad *** ***: wasm-semantics/wasm.md : (1443, 10) +- C--LblaLocal.get *** ***: wasm-semantics/wasm.md : (578, 10) +- C--LblaLocal.set *** ***: wasm-semantics/wasm.md : (582, 10) +- C--LblaLocal.tee *** ***: wasm-semantics/wasm.md : (587, 10) +- C--LblaLoop *** ***: wasm-semantics/wasm.md : (546, 10) +- C--LblaMemoryDefn *** ***: 2 - wasm-semantics/wasm.md : (1353, 10) - wasm-semantics/wasm.md : (1355, 10) -- LblaModuleDecl Anything Anything: WASM.newModule -- LblaNop Anything Anything: wasm-semantics/wasm.md : (471, 10) -- LblaRef.func Anything Anything: WASM.ref.func -- LblaRef.is_null Anything Anything: 2 +- C--LblaModuleDecl *** ***: WASM.newModule +- C--LblaNop *** ***: wasm-semantics/wasm.md : (471, 10) +- C--LblaRef.func *** ***: WASM.ref.func +- C--LblaRef.is_null *** ***: 2 - WASM.ref.isNull-true - WASM.ref.isNull-false -- LblaRef.null Anything Anything: 4 +- C--LblaRef.null *** ***: 4 - WASM.ref.null.extern - wasm-semantics/wasm.md : (375, 10) - WASM.ref.null.func - wasm-semantics/wasm.md : (376, 10) -- LblaReturn Anything Anything: wasm-semantics/wasm.md : (1209, 10) -- LblaSelect Anything Anything: 2 +- C--LblaReturn *** ***: 3 + - wasm-semantics/wasm.md : (1208, 10) + - wasm-semantics/wasm.md : (1207, 10) + - wasm-semantics/wasm.md : (1209, 10) +- C--LblaSelect *** ***: 2 - wasm-semantics/wasm.md : (458, 10) - wasm-semantics/wasm.md : (452, 10) -- LblaSize Anything Anything: wasm-semantics/wasm.md : (1487, 10) -- LblaStartDefn Anything Anything: wasm-semantics/wasm.md : (1673, 10) -- LblaStore Anything Anything: wasm-semantics/wasm.md : (1392, 10) -- LblaTable.copy Anything Anything: 2 +- C--LblaSize *** ***: wasm-semantics/wasm.md : (1487, 10) +- C--LblaStartDefn *** ***: wasm-semantics/wasm.md : (1673, 10) +- C--LblaStore *** ***: wasm-semantics/wasm.md : (1392, 10) +- C--LblaTable.copy *** ***: 2 - WASM.table.copy-self - WASM.table.copy -- LblaTable.fill Anything Anything: WASM.table.fill -- LblaTable.get Anything Anything: WASM.table.get -- LblaTable.grow Anything Anything: 2 +- C--LblaTable.fill *** ***: WASM.table.fill +- C--LblaTable.get *** ***: WASM.table.get +- C--LblaTable.grow *** ***: 2 - WASM.table.grow-fail - WASM.table.grow -- LblaTable.init Anything Anything: WASM.table.init -- LblaTable.set Anything Anything: WASM.table.set -- LblaTable.size Anything Anything: WASM.table.size -- LblaTableDefn Anything Anything: 2 +- C--LblaTable.init *** ***: WASM.table.init +- C--LblaTable.set *** ***: WASM.table.set +- C--LblaTable.size *** ***: WASM.table.size +- C--LblaTableDefn *** ***: 2 - wasm-semantics/wasm.md : (1308, 10) - wasm-semantics/wasm.md : (1310, 10) -- LblaTestOp Anything Anything: wasm-semantics/wasm.md : (409, 10) -- LblaTypeDefn Anything Anything: wasm-semantics/wasm.md : (1103, 10) -- LblaUnreachable Anything Anything: wasm-semantics/wasm.md : (477, 10) -- Lblallocelem(_,_,_)_WASM_Alloc_RefValType_ListRef_OptionalId Anything Anything: WASM.allocelem -- Lblallocfunc(_,_,_,_,_,_)_WASM_Alloc_Int_Int_FuncType_VecType_Instrs_FuncMetadata Anything Anything: wasm-semantics/wasm.md : (1143, 10) -- Lblallocglobal(_,_)_WASM_Alloc_OptionalId_GlobalType Anything Anything: wasm-semantics/wasm.md : (610, 10) -- Lblallocmemory(_,_,_)_WASM_Alloc_OptionalId_Int_OptionalInt Anything Anything: wasm-semantics/wasm.md : (1359, 10) -- Lblalloctable(_,_,_,_)_WASM_Alloc_OptionalId_Int_OptionalInt_RefValType Anything Anything: wasm-semantics/wasm.md : (1314, 10) -- Lblalloctype(_,_)_WASM_Alloc_OptionalId_FuncType Anything Anything: wasm-semantics/wasm.md : (1105, 10) -- LblcheckIsSmartContract Anything Anything: 2 +- C--LblaTestOp *** ***: wasm-semantics/wasm.md : (409, 10) +- C--LblaTypeDefn *** ***: wasm-semantics/wasm.md : (1103, 10) +- C--LblaUnreachable *** ***: wasm-semantics/wasm.md : (477, 10) +- C--Lblallocelem(_,_,_)_WASM_Alloc_RefValType_ListRef_OptionalId *** ***: WASM.allocelem +- C--Lblallocfunc(_,_,_,_,_,_)_WASM_Alloc_Int_Int_FuncType_VecType_Instrs_FuncMetadata *** ***: wasm-semantics/wasm.md : (1143, 10) +- C--Lblallocglobal(_,_)_WASM_Alloc_OptionalId_GlobalType *** ***: wasm-semantics/wasm.md : (610, 10) +- C--Lblallocmemory(_,_,_)_WASM_Alloc_OptionalId_Int_OptionalInt *** ***: wasm-semantics/wasm.md : (1359, 10) +- C--Lblalloctable(_,_,_,_)_WASM_Alloc_OptionalId_Int_OptionalInt_RefValType *** ***: wasm-semantics/wasm.md : (1314, 10) +- C--Lblalloctype(_,_)_WASM_Alloc_OptionalId_FuncType *** ***: wasm-semantics/wasm.md : (1105, 10) +- C--LblcheckIsSmartContract *** ***: 2 - BASEOPS.checkIsSmartContract-no-code - BASEOPS.checkIsSmartContract-code -- Lbldata{__}_WASM_DataDefn_Int_Bytes Anything Anything: wasm-semantics/wasm.md : (1646, 10) -- LblendFoundryImmediately Anything Anything: KASMER.endFoundryImmediately -- LblfinishExecuteOnDestContext Anything Anything: 2 +- C--Lbldata{__}_WASM_DataDefn_Int_Bytes *** ***: wasm-semantics/wasm.md : (1646, 10) +- C--LblendFoundryImmediately *** ***: KASMER.endFoundryImmediately +- C--LblfinishExecuteOnDestContext *** ***: 2 - BASEOPS.finishExecuteOnDestContext-ok - BASEOPS.finishExecuteOnDestContext-exception -- LblfoundryAssert Anything Anything: 2 +- C--LblfoundryAssert *** ***: 2 - KASMER.foundryAssert-true - KASMER.foundryAssert-false -- LblfoundryAssume Anything Anything: 2 +- C--LblfoundryAssume *** ***: 2 - KASMER.foundryAssume-true - KASMER.foundryAssume-false -- LblfoundryCreateAccount(_,_,_)_KASMER_InternalInstr_BytesResult_Int_IntResult Anything Anything: 2 +- C--LblfoundryCreateAccount(_,_,_)_KASMER_InternalInstr_BytesResult_Int_IntResult *** ***: 2 - KASMER.foundryCreateAccount - KASMER.foundryCreateAccount-err -- LblfoundryDeployContract(_,_,_,_,_,_)_KASMER_InternalInstr_BytesResult_Int_IntResult_BytesResult_ListBytesResult_Int Anything Anything: 2 +- C--LblfoundryDeployContract(_,_,_,_,_,_)_KASMER_InternalInstr_BytesResult_Int_IntResult_BytesResult_ListBytesResult_Int *** ***: 2 - KASMER.foundryDeployContract - KASMER.foundryDeployContract-err -- LblfoundryRegisterNewAddress(_,_,_)_KASMER_InternalInstr_BytesResult_Int_BytesResult Anything Anything: 2 +- C--LblfoundryRegisterNewAddress(_,_,_)_KASMER_InternalInstr_BytesResult_Int_BytesResult *** ***: 2 - KASMER.foundryRegisterNewAddress - KASMER.foundryRegisterNewAddress-err -- LblfoundryWriteToStorage_KASMER_InternalInstr Anything Anything: 2 +- C--LblfoundryWriteToStorage_KASMER_InternalInstr *** ***: 2 - KASMER.foundryWriteToStorage-empty - KASMER.foundryWriteToStorage -- Lblframe_____WASM_Frame_Int_ValTypes_ValStack_Map Anything Anything: wasm-semantics/wasm.md : (1175, 10) -- LblgetCurrentESDTNFTNonce Anything Anything: 2 +- C--Lblframe_____WASM_Frame_Int_ValTypes_ValStack_Map *** ***: wasm-semantics/wasm.md : (1175, 10) +- C--LblgetCurrentESDTNFTNonce *** ***: 2 - BASEOPS.getCurrentESDTNFTNonce - BASEOPS.getCurrentESDTNFTNonce-none -- LblgetESDTLocalRoles Anything Anything: 2 +- C--LblgetESDTLocalRoles *** ***: 2 - MANAGEDEI.getESDTLocalRoles-aux - MANAGEDEI.getESDTLocalRoles-aux-nil -- Lblgrow__WASM_Instr_Int Anything Anything: 2 +- C--Lblgrow__WASM_Instr_Int *** ***: 2 - wasm-semantics/wasm.md : (1528, 10) - wasm-semantics/wasm.md : (1513, 10) -- LblhostCall(_,_,_)_WASM-AUTO-ALLOCATE_Instr_String_String_FuncType Anything Anything: 147 +- C--LblhostCall(_,_,_)_WASM-AUTO-ALLOCATE_Instr_String_String_FuncType *** ***: 147 - KASMER.testapi-createAccount - KASMER.testapi-deployContract - KASMER.testapi-registerNewAddress @@ -5448,170 +5446,175 @@ Rewrite rules by term index: - MANAGEDEI.managedGetCallbackClosure - MANAGEDEI.managedGetCallbackClosure-err - KASMER.testapi-stopPrank-err -- Lblinit_local___WASM-INTERNAL-SYNTAX_Instr_Int_Val Anything Anything: wasm-semantics/wasm.md : (558, 10) -- Lblinit_locals__WASM-INTERNAL-SYNTAX_Instr_ValStack Anything Anything: wasm-semantics/wasm.md : (561, 10) -- Lbllabel_{_}__WASM_Label_VecType_Instrs_ValStack Anything Anything: wasm-semantics/wasm.md : (490, 10) -- Lblload{_____}_WASM_Instr_IValType_Int_Int_Signedness_Int Anything Anything: 2 +- C--Lblinit_local___WASM-INTERNAL-SYNTAX_Instr_Int_Val *** ***: wasm-semantics/wasm.md : (558, 10) +- C--Lblinit_locals__WASM-INTERNAL-SYNTAX_Instr_ValStack *** ***: wasm-semantics/wasm.md : (561, 10) +- C--Lbllabel_{_}__WASM_Label_VecType_Instrs_ValStack *** ***: wasm-semantics/wasm.md : (490, 10) +- C--Lblload{_____}_WASM_Instr_IValType_Int_Int_Signedness_Int *** ***: 2 - wasm-semantics/wasm.md : (1463, 10) - wasm-semantics/wasm.md : (1472, 10) -- Lblload{_____}_WASM_Instr_IValType_Int_Int_Signedness_SparseBytes Anything Anything: 2 +- C--Lblload{_____}_WASM_Instr_IValType_Int_Int_Signedness_SparseBytes *** ***: 2 - wasm-semantics/wasm.md : (1480, 10) - wasm-semantics/wasm.md : (1481, 10) -- Lblload{____}_WASM_Instr_IValType_Int_Int_Signedness Anything Anything: wasm-semantics/wasm.md : (1454, 10) -- LblnewEmptyModule__WASM-AUTO-ALLOCATE_Stmt_WasmString Anything Anything: mx-semantics/auto-allocate.md : (21, 10) -- Lblstore{____}_WASM_Instr_Int_Int_Number_Int Anything Anything: 2 +- C--Lblload{____}_WASM_Instr_IValType_Int_Int_Signedness *** ***: wasm-semantics/wasm.md : (1454, 10) +- C--LblnewEmptyModule__WASM-AUTO-ALLOCATE_Stmt_WasmString *** ***: mx-semantics/auto-allocate.md : (21, 10) +- C--Lblstore{____}_WASM_Instr_Int_Int_Number_Int *** ***: 2 - wasm-semantics/wasm.md : (1404, 10) - wasm-semantics/wasm.md : (1417, 10) -- Lblstore{___}_WASM_Instr_Int_Int_Number Anything Anything: wasm-semantics/wasm.md : (1395, 10) -- dotk LblmkCall(_,_,_)_ELROND-NODE_InternalCmd_Bytes_WasmString_VmInputCell Anything: 2 +- C--Lblstore{___}_WASM_Instr_Int_Int_Number *** ***: wasm-semantics/wasm.md : (1395, 10) +- C--Lbltrap_WASM_Instr *** ***: 4 + - wasm-semantics/wasm.md : (346, 10) + - wasm-semantics/wasm.md : (344, 10) + - wasm-semantics/wasm.md : (345, 10) + - wasm-semantics/wasm.md : (343, 10) +- C--dotk C--LblmkCall(_,_,_)_ELROND-NODE_InternalCmd_Bytes_WasmString_VmInputCell ***: 2 - ELROND-CONFIG.mkCall - ELROND-CONFIG.mkCall-func-not-found -- dotk Anything Anything: ASYNC.executeAsyncLocalCalls -- dotk Lbl#endWasm Anything: SWITCH.endWasm -- dotk Lbl#waitWasm Anything: SWITCH.waitWasm -- dotk LblexecuteAsyncLocalCalls Anything: ASYNC.executeAsyncLocalCalls-empty -- dotk dotk Anything: 2 - - mx-semantics/mandos.md : (76, 10) - - mx-semantics/mandos.md : (80, 10) -- dotk dotk Lbl#wait_MANDOS_Step: mx-semantics/mandos.md : (50, 10) -- dotk dotk LblsetExitCode: mx-semantics/mandos.md : (68, 10) +- C--dotk C--dotk C--Lbl(module__)_WASM-TEXT-COMMON-SYNTAX_ModuleDecl_OptionalId_Defns: mx-semantics/mandos.md : (76, 10) +- C--dotk C--Lbl#endWasm ***: SWITCH.endWasm +- C--dotk C--Lbl#waitWasm ***: SWITCH.waitWasm +- C--dotk C--LblexecuteAsyncLocalCalls ***: 2 + - ASYNC.executeAsyncLocalCalls + - ASYNC.executeAsyncLocalCalls-empty +- C--dotk C--dotk ***: mx-semantics/mandos.md : (80, 10) +- C--dotk C--dotk C--Lbl#wait_MANDOS_Step: mx-semantics/mandos.md : (50, 10) +- C--dotk C--dotk C--LblsetExitCode: mx-semantics/mandos.md : (68, 10) Function equations by term index: -- Lbl#ContextLookup(_,_)_WASM-DATA-COMMON_Int_Map_Index: 2 +- F--Lbl#ContextLookup(_,_)_WASM-DATA-COMMON_Int_Map_Index: 2 - wasm-semantics/wasm-text.md : (413, 10) - wasm-semantics/data.md : (293, 10) -- Lbl#DS2Bytes(_)_WASM-DATA-COMMON_Bytes_DataString: wasm-semantics/data.md : (627, 10) -- Lbl#StorageAdded()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (250, 10) -- Lbl#StorageDeleted()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (251, 10) -- Lbl#StorageModified()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (249, 10) -- Lbl#StorageUnmodified()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (248, 10) -- Lbl#address2Bytes(_)_ELROND-NODE_Bytes_Address: 2 +- F--Lbl#DS2Bytes(_)_WASM-DATA-COMMON_Bytes_DataString: wasm-semantics/data.md : (627, 10) +- F--Lbl#StorageAdded()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (250, 10) +- F--Lbl#StorageDeleted()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (251, 10) +- F--Lbl#StorageModified()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (249, 10) +- F--Lbl#StorageUnmodified()_ELROND-CONFIG_Int: mx-semantics/elrond-config.md : (248, 10) +- F--Lbl#address2Bytes(_)_ELROND-NODE_Bytes_Address: 2 - mx-semantics/elrond-node.md : (190, 10) - mx-semantics/elrond-node.md : (189, 10) -- Lbl#alignHexString(_)_ELROND-CONFIG_String_String: 2 +- F--Lbl#alignHexString(_)_ELROND-CONFIG_String_String: 2 - mx-semantics/elrond-config.md : (322, 10) - mx-semantics/elrond-config.md : (323, 10) -- Lbl#allReadable(_,_)_EEI-HELPERS_Bool_Bytes_Int: 3 +- F--Lbl#allReadable(_,_)_EEI-HELPERS_Bool_Bytes_Int: 3 - mx-semantics/vmhooks/eei-helpers.md : (61, 8) - mx-semantics/vmhooks/eei-helpers.md : (63, 8) - mx-semantics/vmhooks/eei-helpers.md : (64, 8) -- Lbl#allValidRandom(_,_)_EEI-HELPERS_Bool_Bytes_Int: 3 +- F--Lbl#allValidRandom(_,_)_EEI-HELPERS_Bool_Bytes_Int: 3 - mx-semantics/vmhooks/eei-helpers.md : (78, 8) - mx-semantics/vmhooks/eei-helpers.md : (80, 8) - mx-semantics/vmhooks/eei-helpers.md : (81, 8) -- Lbl#appendInstrs(_,_)_WASM-TEXT_Instrs_Instrs_Instrs: 2 +- F--Lbl#appendInstrs(_,_)_WASM-TEXT_Instrs_Instrs_Instrs: 2 - wasm-semantics/wasm-text.md : (645, 10) - wasm-semantics/wasm-text.md : (644, 10) -- Lbl#autoAllocModules(_,_)_WASM-AUTO-ALLOCATE_Stmts_Defns_Map: 3 +- F--Lbl#autoAllocModules(_,_)_WASM-AUTO-ALLOCATE_Stmts_Defns_Map: 3 - mx-semantics/auto-allocate.md : (36, 10) - mx-semantics/auto-allocate.md : (37, 10) - mx-semantics/auto-allocate.md : (38, 10) -- Lbl#bigIntSign(_)_ELROND-CONFIG_Int_Int: 3 +- F--Lbl#bigIntSign(_)_ELROND-CONFIG_Int_Int: 3 - mx-semantics/elrond-config.md : (268, 10) - mx-semantics/elrond-config.md : (266, 10) - mx-semantics/elrond-config.md : (267, 10) -- Lbl#canGrow(_,_,_)_WASM_Bool_Int_Int_OptionalInt: 2 +- F--Lbl#canGrow(_,_,_)_WASM_Bool_Int_Int_OptionalInt: 2 - wasm-semantics/wasm.md : (825, 10) - wasm-semantics/wasm.md : (823, 10) -- Lbl#canSaveId(_,_)_WASM-DATA-COMMON_Bool_Map_OptionalId: 2 +- F--Lbl#canSaveId(_,_)_WASM-DATA-COMMON_Bool_Map_OptionalId: 2 - wasm-semantics/data.md : (280, 10) - wasm-semantics/data.md : (279, 10) -- Lbl#chop(_)_WASM-DATA-COMMON_IVal_IVal: wasm-semantics/data.md : (406, 10) -- Lbl#concatDS(_)_WASM-DATA-COMMON_String_DataString: wasm-semantics/data.md : (617, 10) -- Lbl#concatDS(_,_)_WASM-DATA-COMMON_String_DataString_String: 2 +- F--Lbl#chop(_)_WASM-DATA-COMMON_IVal_IVal: wasm-semantics/data.md : (406, 10) +- F--Lbl#concatDS(_)_WASM-DATA-COMMON_String_DataString: wasm-semantics/data.md : (617, 10) +- F--Lbl#concatDS(_,_)_WASM-DATA-COMMON_String_DataString_String: 2 - wasm-semantics/data.md : (618, 10) - wasm-semantics/data.md : (619, 10) -- Lbl#ctz(_)_WASM-NUMERIC_Int_Int: 2 +- F--Lbl#ctz(_)_WASM-NUMERIC_Int_Int: 2 - wasm-semantics/numeric.md : (146, 10) - wasm-semantics/numeric.md : (147, 10) -- Lbl#drop(_,_)_WASM-DATA-COMMON_ValStack_Int_ValStack: 3 +- F--Lbl#drop(_,_)_WASM-DATA-COMMON_ValStack_Int_ValStack: 3 - wasm-semantics/data.md : (522, 10) - wasm-semantics/data.md : (521, 10) - wasm-semantics/data.md : (523, 10) -- Lbl#emptyModule(_)_WASM_ModuleDecl_OptionalId: wasm-semantics/wasm.md : (1851, 10) -- Lbl#encodeUTF8(_)_WASM-DATA-COMMON_Bytes_Int: 4 +- F--Lbl#emptyModule(_)_WASM_ModuleDecl_OptionalId: wasm-semantics/wasm.md : (1851, 10) +- F--Lbl#encodeUTF8(_)_WASM-DATA-COMMON_Bytes_Int: 4 - wasm-semantics/data.md : (596, 10) - wasm-semantics/data.md : (601, 10) - wasm-semantics/data.md : (599, 10) - wasm-semantics/data.md : (597, 10) -- Lbl#freshCtx()_WASM-TEXT_Context: wasm-semantics/wasm-text.md : (785, 10) -- Lbl#gatherTypes(_,_,_)_WASM_VecType_TypeKeyWord_TypeDecls_ValTypes: 5 +- F--Lbl#freshCtx()_WASM-TEXT_Context: wasm-semantics/wasm-text.md : (785, 10) +- F--Lbl#gatherTypes(_,_,_)_WASM_VecType_TypeKeyWord_TypeDecls_ValTypes: 5 - wasm-semantics/wasm.md : (1073, 10) - wasm-semantics/wasm.md : (1072, 10) - wasm-semantics/wasm.md : (1070, 10) - wasm-semantics/wasm.md : (1069, 10) - wasm-semantics/wasm.md : (1068, 10) -- Lbl#get(_)_WASM-DATA-COMMON_Int_IVal: wasm-semantics/data.md : (414, 10) -- Lbl#getBytesRange(_,_,_)_WASM-DATA-COMMON_Bytes_SparseBytes_Int_Int: wasm-semantics/data.md : (655, 10) -- Lbl#getElemSegment(_,_)_WASM-DATA-COMMON_Index_ElemSegment_Int: 2 +- F--Lbl#get(_)_WASM-DATA-COMMON_Int_IVal: wasm-semantics/data.md : (414, 10) +- F--Lbl#getBytesRange(_,_,_)_WASM-DATA-COMMON_Bytes_SparseBytes_Int_Int: wasm-semantics/data.md : (655, 10) +- F--Lbl#getElemSegment(_,_)_WASM-DATA-COMMON_Index_ElemSegment_Int: 2 - wasm-semantics/data.md : (310, 10) - wasm-semantics/data.md : (311, 10) -- Lbl#getInts(_,_)_WASM-DATA-COMMON_Int_Ints_Int: 2 +- F--Lbl#getInts(_,_)_WASM-DATA-COMMON_Int_Ints_Int: 2 - wasm-semantics/data.md : (316, 10) - wasm-semantics/data.md : (317, 10) -- Lbl#getModuleCodePath(_)_MANDOS_OptionalString_ModuleDecl: 3 +- F--Lbl#getModuleCodePath(_)_MANDOS_OptionalString_ModuleDecl: 3 - mx-semantics/mandos.md : (459, 10) - mx-semantics/mandos.md : (458, 10) - mx-semantics/mandos.md : (460, 10) -- Lbl#getOffset(_)_WASM-TEXT_Int_MemArg: 3 +- F--Lbl#getOffset(_)_WASM-TEXT_Int_MemArg: 3 - wasm-semantics/wasm-text.md : (1137, 10) - wasm-semantics/wasm-text.md : (1135, 10) - wasm-semantics/wasm-text.md : (1136, 10) -- Lbl#getRandomChars(_)_EEI-HELPERS_Bytes_Bytes: 2 +- F--Lbl#getRandomChars(_)_EEI-HELPERS_Bytes_Bytes: 2 - mx-semantics/vmhooks/eei-helpers.md : (45, 8) - mx-semantics/vmhooks/eei-helpers.md : (40, 8) -- Lbl#getRange(_,_,_)_WASM-DATA-COMMON_Int_SparseBytes_Int_Int: wasm-semantics/data.md : (660, 10) -- Lbl#getTicker(_)_EEI-HELPERS_Bytes_Bytes: 2 +- F--Lbl#getRange(_,_,_)_WASM-DATA-COMMON_Int_SparseBytes_Int_Int: wasm-semantics/data.md : (660, 10) +- F--Lbl#getTicker(_)_EEI-HELPERS_Bytes_Bytes: 2 - mx-semantics/vmhooks/eei-helpers.md : (43, 8) - mx-semantics/vmhooks/eei-helpers.md : (38, 8) -- Lbl#growthAllowed(_,_)_WASM_Bool_Int_OptionalInt: 2 +- F--Lbl#growthAllowed(_,_)_WASM_Bool_Int_OptionalInt: 2 - wasm-semantics/wasm.md : (1547, 10) - wasm-semantics/wasm.md : (1548, 10) -- Lbl#hasPrefix(_,_)_ELROND-CONFIG_Bool_String_String: 2 +- F--Lbl#hasPrefix(_,_)_ELROND-CONFIG_Bool_String_String: 2 - mx-semantics/elrond-config.md : (44, 10) - mx-semantics/elrond-config.md : (40, 10) -- Lbl#idcElems(_)_WASM-TEXT_Map_Defns: wasm-semantics/wasm-text.md : (1256, 10) -- Lbl#idcElemsAux(_,_,_)_WASM-TEXT_Map_Defns_Int_Map: 4 +- F--Lbl#idcElems(_)_WASM-TEXT_Map_Defns: wasm-semantics/wasm-text.md : (1256, 10) +- F--Lbl#idcElemsAux(_,_,_)_WASM-TEXT_Map_Defns_Int_Map: 4 - wasm-semantics/wasm-text.md : (1258, 10) - wasm-semantics/wasm-text.md : (1264, 10) - wasm-semantics/wasm-text.md : (1260, 10) - wasm-semantics/wasm-text.md : (1268, 10) -- Lbl#idcFuncs(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1218, 10) -- Lbl#idcFuncsAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 6 +- F--Lbl#idcFuncs(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1218, 10) +- F--Lbl#idcFuncsAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 6 - wasm-semantics/wasm-text.md : (1225, 10) - wasm-semantics/wasm-text.md : (1224, 10) - wasm-semantics/wasm-text.md : (1226, 10) - wasm-semantics/wasm-text.md : (1221, 10) - wasm-semantics/wasm-text.md : (1220, 10) - wasm-semantics/wasm-text.md : (1222, 10) -- Lbl#idcGlobals(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1299, 10) -- Lbl#idcGlobalsAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 6 +- F--Lbl#idcGlobals(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1299, 10) +- F--Lbl#idcGlobalsAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 6 - wasm-semantics/wasm-text.md : (1305, 10) - wasm-semantics/wasm-text.md : (1307, 10) - wasm-semantics/wasm-text.md : (1302, 10) - wasm-semantics/wasm-text.md : (1301, 10) - wasm-semantics/wasm-text.md : (1306, 10) - wasm-semantics/wasm-text.md : (1303, 10) -- Lbl#idcMems(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1275, 10) -- Lbl#idcMemsAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 5 +- F--Lbl#idcMems(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1275, 10) +- F--Lbl#idcMemsAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 5 - wasm-semantics/wasm-text.md : (1288, 10) - wasm-semantics/wasm-text.md : (1276, 10) - wasm-semantics/wasm-text.md : (1279, 10) - wasm-semantics/wasm-text.md : (1292, 10) - wasm-semantics/wasm-text.md : (1283, 10) -- Lbl#idcTables(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1231, 10) -- Lbl#idcTablesAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 5 +- F--Lbl#idcTables(_,_)_WASM-TEXT_Map_Defns_Defns: wasm-semantics/wasm-text.md : (1231, 10) +- F--Lbl#idcTablesAux(_,_,_,_)_WASM-TEXT_Map_Defns_Defns_Int_Map: 5 - wasm-semantics/wasm-text.md : (1244, 10) - wasm-semantics/wasm-text.md : (1232, 10) - wasm-semantics/wasm-text.md : (1235, 10) - wasm-semantics/wasm-text.md : (1248, 10) - wasm-semantics/wasm-text.md : (1239, 10) -- Lbl#idcTypes(_)_WASM-TEXT_Map_Defns: wasm-semantics/wasm-text.md : (1209, 10) -- Lbl#idcTypesAux(_,_,_)_WASM-TEXT_Map_Defns_Int_Map: 3 +- F--Lbl#idcTypes(_)_WASM-TEXT_Map_Defns: wasm-semantics/wasm-text.md : (1209, 10) +- F--Lbl#idcTypesAux(_,_,_)_WASM-TEXT_Map_Defns_Int_Map: 3 - wasm-semantics/wasm-text.md : (1213, 10) - wasm-semantics/wasm-text.md : (1212, 10) - wasm-semantics/wasm-text.md : (1211, 10) -- Lbl#ids2Idxs(_,_)_WASM-TEXT_Map_TypeUse_LocalDecls: wasm-semantics/wasm-text.md : (1312, 10) -- Lbl#ids2Idxs(_,_,_)_WASM-TEXT_Map_Int_TypeUse_LocalDecls: 8 +- F--Lbl#ids2Idxs(_,_)_WASM-TEXT_Map_TypeUse_LocalDecls: wasm-semantics/wasm-text.md : (1312, 10) +- F--Lbl#ids2Idxs(_,_,_)_WASM-TEXT_Map_Int_TypeUse_LocalDecls: 8 - wasm-semantics/wasm-text.md : (1323, 10) - wasm-semantics/wasm-text.md : (1316, 10) - wasm-semantics/wasm-text.md : (1315, 10) @@ -5620,133 +5623,133 @@ Function equations by term index: - wasm-semantics/wasm-text.md : (1314, 10) - wasm-semantics/wasm-text.md : (1325, 10) - wasm-semantics/wasm-text.md : (1321, 10) -- Lbl#idxCloseBracket(_,_)_WASM-DATA-COMMON_Int_String_Int: 2 +- F--Lbl#idxCloseBracket(_,_)_WASM-DATA-COMMON_Int_String_Int: 2 - wasm-semantics/data.md : (591, 10) - wasm-semantics/data.md : (592, 10) -- Lbl#incBytes(_,_)_MANDOS_Bytes_Bytes_Int: mx-semantics/mandos.md : (733, 10) -- Lbl#isInfinityOrNaN(_)_WASM-NUMERIC_Bool_Float: wasm-semantics/numeric.md : (160, 10) -- Lbl#isSmartContract(_)_ELROND-CONFIG_Bool_Bytes: 2 +- F--Lbl#incBytes(_,_)_MANDOS_Bytes_Bytes_Int: mx-semantics/mandos.md : (733, 10) +- F--Lbl#isInfinityOrNaN(_)_WASM-NUMERIC_Bool_Float: wasm-semantics/numeric.md : (160, 10) +- F--Lbl#isSmartContract(_)_ELROND-CONFIG_Bool_Bytes: 2 - mx-semantics/elrond-config.md : (451, 10) - mx-semantics/elrond-config.md : (458, 10) -- Lbl#isTickerValid(_)_EEI-HELPERS_Bool_Bytes: 2 +- F--Lbl#isTickerValid(_)_EEI-HELPERS_Bool_Bytes: 2 - mx-semantics/vmhooks/eei-helpers.md : (54, 8) - mx-semantics/vmhooks/eei-helpers.md : (51, 8) -- Lbl#lambda__: wasm-semantics/data/sparse-bytes.k : (63, 8) -- Lbl#lambda__2: mx-semantics/vmhooks/bigIntOps.md : (96, 24) -- Lbl#lenElemExprs(_)_WASM-TEXT_Int_ElemExprs: 2 +- F--Lbl#lambda__: wasm-semantics/data/sparse-bytes.k : (63, 8) +- F--Lbl#lambda__2: mx-semantics/vmhooks/bigIntOps.md : (96, 24) +- F--Lbl#lenElemExprs(_)_WASM-TEXT_Int_ElemExprs: 2 - wasm-semantics/wasm-text.md : (532, 10) - wasm-semantics/wasm-text.md : (533, 10) -- Lbl#lenElemSegment(_)_WASM-DATA-COMMON_Int_ElemSegment: 2 +- F--Lbl#lenElemSegment(_)_WASM-DATA-COMMON_Int_ElemSegment: 2 - wasm-semantics/data.md : (307, 10) - wasm-semantics/data.md : (308, 10) -- Lbl#lenInts(_)_WASM-DATA-COMMON_Int_Ints: 2 +- F--Lbl#lenInts(_)_WASM-DATA-COMMON_Int_Ints: 2 - wasm-semantics/data.md : (313, 10) - wasm-semantics/data.md : (314, 10) -- Lbl#lengthDataPages(_)_WASM-TEXT_Int_DataString: wasm-semantics/wasm-text.md : (567, 10) -- Lbl#limitsMatchImport(_,_,_)_WASM_Bool_Int_OptionalInt_Limits: 3 +- F--Lbl#lengthDataPages(_)_WASM-TEXT_Int_DataString: wasm-semantics/wasm-text.md : (567, 10) +- F--Lbl#limitsMatchImport(_,_,_)_WASM_Bool_Int_OptionalInt_Limits: 3 - wasm-semantics/wasm.md : (1823, 10) - wasm-semantics/wasm.md : (1825, 10) - wasm-semantics/wasm.md : (1824, 10) -- Lbl#locals2vectype(_,_)_WASM-TEXT_VecType_LocalDecls_ValTypes: 3 +- F--Lbl#locals2vectype(_,_)_WASM-TEXT_VecType_LocalDecls_ValTypes: 3 - wasm-semantics/wasm-text.md : (902, 10) - wasm-semantics/wasm-text.md : (903, 10) - wasm-semantics/wasm-text.md : (904, 10) -- Lbl#lookupStorage(_,_)_ELROND-CONFIG_Bytes_MapBytesToBytes_Bytes: mx-semantics/elrond-config.md : (234, 10) -- Lbl#maxMemorySize()_WASM-INTERNAL-SYNTAX_Int: wasm-semantics/wasm.md : (1557, 10) -- Lbl#maxTableSize()_WASM-INTERNAL-SYNTAX_Int: wasm-semantics/wasm.md : (1558, 10) -- Lbl#minWidth(_)_WASM-NUMERIC_Int_Int: 2 +- F--Lbl#lookupStorage(_,_)_ELROND-CONFIG_Bytes_MapBytesToBytes_Bytes: mx-semantics/elrond-config.md : (234, 10) +- F--Lbl#maxMemorySize()_WASM-INTERNAL-SYNTAX_Int: wasm-semantics/wasm.md : (1557, 10) +- F--Lbl#maxTableSize()_WASM-INTERNAL-SYNTAX_Int: wasm-semantics/wasm.md : (1558, 10) +- F--Lbl#minWidth(_)_WASM-NUMERIC_Int_Int: 2 - wasm-semantics/numeric.md : (143, 10) - wasm-semantics/numeric.md : (144, 10) -- Lbl#newKey(_)_BIGINT-HELPERS_Int_Map: mx-semantics/vmhooks/bigIntOps.md : (78, 10) -- Lbl#newKey(_)_BIGINT-HELPERS_Int_MapIntToBytes: mx-semantics/vmhooks/bigIntOps.md : (82, 10) -- Lbl#newKey(_)_BIGINT-HELPERS_Int_MapIntToInt: mx-semantics/vmhooks/bigIntOps.md : (86, 10) -- Lbl#newKeyAux(_,_)_BIGINT-HELPERS_Int_Int_Map: 2 +- F--Lbl#newKey(_)_BIGINT-HELPERS_Int_Map: mx-semantics/vmhooks/bigIntOps.md : (78, 10) +- F--Lbl#newKey(_)_BIGINT-HELPERS_Int_MapIntToBytes: mx-semantics/vmhooks/bigIntOps.md : (82, 10) +- F--Lbl#newKey(_)_BIGINT-HELPERS_Int_MapIntToInt: mx-semantics/vmhooks/bigIntOps.md : (86, 10) +- F--Lbl#newKeyAux(_,_)_BIGINT-HELPERS_Int_Int_Map: 2 - mx-semantics/vmhooks/bigIntOps.md : (79, 10) - mx-semantics/vmhooks/bigIntOps.md : (80, 10) -- Lbl#newKeyAux(_,_)_BIGINT-HELPERS_Int_Int_MapIntToBytes: 2 +- F--Lbl#newKeyAux(_,_)_BIGINT-HELPERS_Int_Int_MapIntToBytes: 2 - mx-semantics/vmhooks/bigIntOps.md : (83, 10) - mx-semantics/vmhooks/bigIntOps.md : (84, 10) -- Lbl#newKeyAux(_,_)_BIGINT-HELPERS_Int_Int_MapIntToInt: 2 +- F--Lbl#newKeyAux(_,_)_BIGINT-HELPERS_Int_Int_MapIntToInt: 2 - mx-semantics/vmhooks/bigIntOps.md : (87, 10) - mx-semantics/vmhooks/bigIntOps.md : (88, 10) -- Lbl#numBytes(_)_WASM-DATA-COMMON_Int_IValType: wasm-semantics/data.md : (378, 10) -- Lbl#open(_)_K-IO_IOInt_String: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2487, 8) -- Lbl#pageSize()_WASM-INTERNAL-SYNTAX_Int: wasm-semantics/wasm.md : (1556, 10) -- Lbl#parseHexBytes(_)_ELROND-CONFIG_Bytes_String: mx-semantics/elrond-config.md : (328, 10) -- Lbl#parseHexBytesAux(_)_ELROND-CONFIG_Bytes_String: 2 +- F--Lbl#numBytes(_)_WASM-DATA-COMMON_Int_IValType: wasm-semantics/data.md : (378, 10) +- F--Lbl#open(_)_K-IO_IOInt_String: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2487, 8) +- F--Lbl#pageSize()_WASM-INTERNAL-SYNTAX_Int: wasm-semantics/wasm.md : (1556, 10) +- F--Lbl#parseHexBytes(_)_ELROND-CONFIG_Bytes_String: mx-semantics/elrond-config.md : (328, 10) +- F--Lbl#parseHexBytesAux(_)_ELROND-CONFIG_Bytes_String: 2 - mx-semantics/elrond-config.md : (330, 10) - mx-semantics/elrond-config.md : (329, 10) -- Lbl#popcnt(_)_WASM-NUMERIC_Int_Int: 2 +- F--Lbl#popcnt(_)_WASM-NUMERIC_Int_Int: 2 - wasm-semantics/numeric.md : (149, 10) - wasm-semantics/numeric.md : (150, 10) -- Lbl#pow(_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType: 2 +- F--Lbl#pow(_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType: 2 - wasm-semantics/data.md : (385, 10) - wasm-semantics/data.md : (387, 10) -- Lbl#pow1(_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType: 2 +- F--Lbl#pow1(_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType: 2 - wasm-semantics/data.md : (384, 10) - wasm-semantics/data.md : (386, 10) -- Lbl#quoteUnparseWasmString(_)_ELROND-NODE_WasmStringToken_String: mx-semantics/elrond-node.md : (185, 10) -- Lbl#randomCharsAreValid(_)_EEI-HELPERS_Bool_Bytes: 2 +- F--Lbl#quoteUnparseWasmString(_)_ELROND-NODE_WasmStringToken_String: mx-semantics/elrond-node.md : (185, 10) +- F--Lbl#randomCharsAreValid(_)_EEI-HELPERS_Bool_Bytes: 2 - mx-semantics/vmhooks/eei-helpers.md : (73, 8) - mx-semantics/vmhooks/eei-helpers.md : (72, 8) -- Lbl#readableChar(_)_EEI-HELPERS_Bool_Int: mx-semantics/vmhooks/eei-helpers.md : (66, 8) -- Lbl#removeEmptyBytes(_)_MANDOS_MapBytesToBytes_MapBytesToBytes: 2 +- F--Lbl#readableChar(_)_EEI-HELPERS_Bool_Int: mx-semantics/vmhooks/eei-helpers.md : (66, 8) +- F--Lbl#removeEmptyBytes(_)_MANDOS_MapBytesToBytes_MapBytesToBytes: 2 - mx-semantics/mandos.md : (102, 10) - mx-semantics/mandos.md : (104, 10) -- Lbl#removeReservedKeys(_)_MANDOS_MapBytesToBytes_MapBytesToBytes: 2 +- F--Lbl#removeReservedKeys(_)_MANDOS_MapBytesToBytes_MapBytesToBytes: 2 - mx-semantics/mandos.md : (120, 10) - mx-semantics/mandos.md : (122, 10) -- Lbl#reverseDefns(_,_)_WASM-TEXT_Defns_Defns_Defns: 2 +- F--Lbl#reverseDefns(_,_)_WASM-TEXT_Defns_Defns_Defns: 2 - wasm-semantics/wasm-text.md : (749, 10) - wasm-semantics/wasm-text.md : (750, 10) -- Lbl#reverseInstrs(_,_)_WASM-TEXT_Instrs_Instrs_Instrs: 2 +- F--Lbl#reverseInstrs(_,_)_WASM-TEXT_Instrs_Instrs_Instrs: 2 - wasm-semantics/wasm-text.md : (647, 10) - wasm-semantics/wasm-text.md : (648, 10) -- Lbl#revs(_)_WASM-DATA-COMMON_ValStack_ValStack: wasm-semantics/data.md : (525, 10) -- Lbl#revs(_,_)_WASM-DATA-COMMON_ValStack_ValStack_ValStack: 2 +- F--Lbl#revs(_)_WASM-DATA-COMMON_ValStack_ValStack: wasm-semantics/data.md : (525, 10) +- F--Lbl#revs(_,_)_WASM-DATA-COMMON_ValStack_ValStack_ValStack: 2 - wasm-semantics/data.md : (527, 10) - wasm-semantics/data.md : (528, 10) -- Lbl#revt(_)_WASM-DATA-COMMON_ValTypes_ValTypes: wasm-semantics/data.md : (361, 10) -- Lbl#revt(_,_)_WASM-DATA-COMMON_ValTypes_ValTypes_ValTypes: 2 +- F--Lbl#revt(_)_WASM-DATA-COMMON_ValTypes_ValTypes: wasm-semantics/data.md : (361, 10) +- F--Lbl#revt(_,_)_WASM-DATA-COMMON_ValTypes_ValTypes_ValTypes: 2 - wasm-semantics/data.md : (363, 10) - wasm-semantics/data.md : (364, 10) -- Lbl#round(_,_)_WASM-DATA-COMMON_FVal_FValType_Number: 4 +- F--Lbl#round(_,_)_WASM-DATA-COMMON_FVal_FValType_Number: 4 - wasm-semantics/data.md : (426, 10) - wasm-semantics/data.md : (428, 10) - wasm-semantics/data.md : (425, 10) - wasm-semantics/data.md : (427, 10) -- Lbl#sameType(_,_)_WASM-DATA-INTERNAL-SYNTAX_Bool_Val_Val: 5 +- F--Lbl#sameType(_,_)_WASM-DATA-INTERNAL-SYNTAX_Bool_Val_Val: 5 - wasm-semantics/data.md : (188, 10) - wasm-semantics/data.md : (187, 10) - wasm-semantics/data.md : (189, 10) - wasm-semantics/data.md : (190, 10) - wasm-semantics/data.md : (191, 10) -- Lbl#saveId(_,_,_)_WASM-DATA-COMMON_Map_Map_OptionalId_Int: 2 +- F--Lbl#saveId(_,_,_)_WASM-DATA-COMMON_Map_Map_OptionalId_Int: 2 - wasm-semantics/data.md : (276, 10) - wasm-semantics/data.md : (277, 10) -- Lbl#setBytesRange(_,_,_)_WASM-DATA-COMMON_SparseBytes_SparseBytes_Int_Bytes: wasm-semantics/data.md : (640, 10) -- Lbl#setRange(_,_,_,_)_WASM-DATA-COMMON_SparseBytes_SparseBytes_Int_Int_Int: wasm-semantics/data.md : (644, 10) -- Lbl#signed(_,_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType_Int: 2 +- F--Lbl#setBytesRange(_,_,_)_WASM-DATA-COMMON_SparseBytes_SparseBytes_Int_Bytes: wasm-semantics/data.md : (640, 10) +- F--Lbl#setRange(_,_,_,_)_WASM-DATA-COMMON_SparseBytes_SparseBytes_Int_Int_Int: wasm-semantics/data.md : (644, 10) +- F--Lbl#signed(_,_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType_Int: 2 - wasm-semantics/data.md : (442, 10) - wasm-semantics/data.md : (443, 10) -- Lbl#signedWidth(_,_)_WASM-DATA-INTERNAL-SYNTAX_Int_Int_Int: 5 +- F--Lbl#signedWidth(_,_)_WASM-DATA-INTERNAL-SYNTAX_Int_Int_Int: 5 - wasm-semantics/data.md : (448, 10) - wasm-semantics/data.md : (449, 10) - wasm-semantics/data.md : (450, 10) - wasm-semantics/data.md : (451, 10) - wasm-semantics/data.md : (452, 10) -- Lbl#sliceBytesInBounds(_,_,_)_MANBUFOPS_Bool_Bytes_Int_Int: mx-semantics/vmhooks/manBufOps.md : (74, 10) -- Lbl#stderr_K-IO_Int: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2584, 8) -- Lbl#stdin_K-IO_Int: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2582, 8) -- Lbl#stdout_K-IO_Int: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2583, 8) -- Lbl#storageStatus(_,_,_)_ELROND-CONFIG_Int_MapBytesToBytes_Bytes_Bytes: 5 +- F--Lbl#sliceBytesInBounds(_,_,_)_MANBUFOPS_Bool_Bytes_Int_Int: mx-semantics/vmhooks/manBufOps.md : (74, 10) +- F--Lbl#stderr_K-IO_Int: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2584, 8) +- F--Lbl#stdin_K-IO_Int: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2582, 8) +- F--Lbl#stdout_K-IO_Int: /nix/store/kczin6jrjj1d1s40xbwpmfhanlsp1df0-k-7.0.40-be1acaf3f66f7d296024e9e7aaee8a24d9481475/include/kframework/builtin/domains.md : (2583, 8) +- F--Lbl#storageStatus(_,_,_)_ELROND-CONFIG_Int_MapBytesToBytes_Bytes_Bytes: 5 - mx-semantics/elrond-config.md : (245, 10) - mx-semantics/elrond-config.md : (246, 10) - mx-semantics/elrond-config.md : (244, 10) - mx-semantics/elrond-config.md : (242, 10) - mx-semantics/elrond-config.md : (243, 10) -- Lbl#stripQuotes(_)_WASM-AUTO-ALLOCATE_String_String: mx-semantics/auto-allocate.md : (81, 10) -- Lbl#structureModule(_,_)_WASM-TEXT_ModuleDecl_Defns_ModuleDecl: 11 +- F--Lbl#stripQuotes(_)_WASM-AUTO-ALLOCATE_String_String: mx-semantics/auto-allocate.md : (81, 10) +- F--Lbl#structureModule(_,_)_WASM-TEXT_ModuleDecl_Defns_ModuleDecl: 11 - wasm-semantics/wasm-text.md : (734, 10) - wasm-semantics/wasm-text.md : (743, 10) - wasm-semantics/wasm-text.md : (744, 10) @@ -5758,7 +5761,7 @@ Function equations by term index: - wasm-semantics/wasm-text.md : (745, 10) - wasm-semantics/wasm-text.md : (740, 10) - wasm-semantics/wasm-text.md : (736, 10) -- Lbl#t2aDefn<_>(_)_WASM-TEXT_Defn_Context_Defn: 25 +- F--Lbl#t2aDefn<_>(_)_WASM-TEXT_Defn_Context_Defn: 25 - wasm-semantics/wasm-text.md : (883, 10) - wasm-semantics/wasm-text.md : (940, 10) - wasm-semantics/wasm-text.md : (989, 10) @@ -5784,24 +5787,24 @@ Function equations by term index: - wasm-semantics/wasm-text.md : (862, 10) - wasm-semantics/wasm-text.md : (861, 10) - wasm-semantics/wasm-text.md : (1007, 10) -- Lbl#t2aDefns<_>(_)_WASM-TEXT_Defns_Context_Defns: 2 +- F--Lbl#t2aDefns<_>(_)_WASM-TEXT_Defns_Context_Defns: 2 - wasm-semantics/wasm-text.md : (1194, 10) - wasm-semantics/wasm-text.md : (1195, 10) -- Lbl#t2aElemExpr<_>(_)_WASM-TEXT_RefVal_Context_ElemExpr: 3 +- F--Lbl#t2aElemExpr<_>(_)_WASM-TEXT_RefVal_Context_ElemExpr: 3 - wasm-semantics/wasm-text.md : (979, 10) - wasm-semantics/wasm-text.md : (978, 10) - wasm-semantics/wasm-text.md : (974, 10) -- Lbl#t2aElemExprs<_>(_)_WASM-TEXT_ListRef_Context_ElemExprs: 2 +- F--Lbl#t2aElemExprs<_>(_)_WASM-TEXT_ListRef_Context_ElemExprs: 2 - wasm-semantics/wasm-text.md : (970, 10) - wasm-semantics/wasm-text.md : (972, 10) -- Lbl#t2aElemList<_>(_)_WASM-TEXT_ListRef_Context_ElemList: 3 +- F--Lbl#t2aElemList<_>(_)_WASM-TEXT_ListRef_Context_ElemList: 3 - wasm-semantics/wasm-text.md : (963, 10) - wasm-semantics/wasm-text.md : (961, 10) - wasm-semantics/wasm-text.md : (962, 10) -- Lbl#t2aElemSegment<_>(_)_WASM-TEXT_ListRef_Context_ElemSegment: 2 +- F--Lbl#t2aElemSegment<_>(_)_WASM-TEXT_ListRef_Context_ElemSegment: 2 - wasm-semantics/wasm-text.md : (966, 10) - wasm-semantics/wasm-text.md : (965, 10) -- Lbl#t2aInstr<_>(_)_WASM-TEXT_Instr_Context_Instr: 63 +- F--Lbl#t2aInstr<_>(_)_WASM-TEXT_Instr_Context_Instr: 63 - wasm-semantics/wasm-text.md : (1175, 10) - wasm-semantics/wasm-text.md : (1162, 10) - wasm-semantics/wasm-text.md : (1164, 10) @@ -5865,34 +5868,34 @@ Function equations by term index: - wasm-semantics/wasm-text.md : (1076, 10) - wasm-semantics/wasm-text.md : (1084, 10) - wasm-semantics/wasm-text.md : (1080, 10) -- Lbl#t2aInstrs<_>(_)_WASM-TEXT_Instrs_Context_Instrs: 2 +- F--Lbl#t2aInstrs<_>(_)_WASM-TEXT_Instrs_Context_Instrs: 2 - wasm-semantics/wasm-text.md : (1197, 10) - wasm-semantics/wasm-text.md : (1198, 10) -- Lbl#t2aModule<_>(_)_WASM-TEXT_ModuleDecl_Context_ModuleDecl: wasm-semantics/wasm-text.md : (837, 10) -- Lbl#t2aModuleDecl<_>(_)_WASM-TEXT_ModuleDecl_Context_ModuleDecl: wasm-semantics/wasm-text.md : (829, 10) -- Lbl#t2aStmt<_>(_)_WASM-TEXT_Stmt_Context_Stmt: 4 +- F--Lbl#t2aModule<_>(_)_WASM-TEXT_ModuleDecl_Context_ModuleDecl: wasm-semantics/wasm-text.md : (837, 10) +- F--Lbl#t2aModuleDecl<_>(_)_WASM-TEXT_ModuleDecl_Context_ModuleDecl: wasm-semantics/wasm-text.md : (829, 10) +- F--Lbl#t2aStmt<_>(_)_WASM-TEXT_Stmt_Context_Stmt: 4 - wasm-semantics/wasm-text.md : (825, 10) - wasm-semantics/wasm-text.md : (826, 10) - wasm-semantics/wasm-text.md : (824, 10) - wasm-semantics/wasm-text.md : (827, 10) -- Lbl#t2aStmts<_>(_)_WASM-TEXT_Stmts_Context_Stmts: 2 +- F--Lbl#t2aStmts<_>(_)_WASM-TEXT_Stmts_Context_Stmts: 2 - wasm-semantics/wasm-text.md : (1191, 10) - wasm-semantics/wasm-text.md : (1192, 10) -- Lbl#take(_,_)_WASM-DATA-COMMON_ValStack_Int_ValStack: 3 +- F--Lbl#take(_,_)_WASM-DATA-COMMON_ValStack_Int_ValStack: 3 - wasm-semantics/data.md : (518, 10) - wasm-semantics/data.md : (517, 10) - wasm-semantics/data.md : (519, 10) -- Lbl#typeMatches(_,_)_WASM-DATA-INTERNAL-SYNTAX_Bool_ValType_Val: 5 +- F--Lbl#typeMatches(_,_)_WASM-DATA-INTERNAL-SYNTAX_Bool_ValType_Val: 5 - wasm-semantics/data.md : (180, 10) - wasm-semantics/data.md : (179, 10) - wasm-semantics/data.md : (181, 10) - wasm-semantics/data.md : (182, 10) - wasm-semantics/data.md : (183, 10) -- Lbl#types2indices(_,_)_WASM-TEXT_TypesInfo_Defns_TypesInfo: 3 +- F--Lbl#types2indices(_,_)_WASM-TEXT_TypesInfo_Defns_TypesInfo: 3 - wasm-semantics/wasm-text.md : (488, 10) - wasm-semantics/wasm-text.md : (490, 10) - wasm-semantics/wasm-text.md : (493, 10) -- Lbl#unfoldDefns(_,_,_)_WASM-TEXT_Defns_Defns_Int_TypesInfo: 31 +- F--Lbl#unfoldDefns(_,_,_)_WASM-TEXT_Defns_Defns_Int_TypesInfo: 31 - wasm-semantics/wasm-text.md : (439, 10) - wasm-semantics/wasm-text.md : (623, 10) - wasm-semantics/wasm-text.md : (625, 10) @@ -5924,14 +5927,14 @@ Function equations by term index: - wasm-semantics/wasm-text.md : (514, 10) - wasm-semantics/wasm-text.md : (538, 10) - wasm-semantics/wasm-text.md : (440, 10) -- Lbl#unfoldElemExpr(_)_WASM-TEXT_ElemExpr_ElemExpr: wasm-semantics/wasm-text.md : (616, 10) -- Lbl#unfoldElemExprs(_)_WASM-TEXT_ElemExprs_ElemExprs: 2 +- F--Lbl#unfoldElemExpr(_)_WASM-TEXT_ElemExpr_ElemExpr: wasm-semantics/wasm-text.md : (616, 10) +- F--Lbl#unfoldElemExprs(_)_WASM-TEXT_ElemExprs_ElemExprs: 2 - wasm-semantics/wasm-text.md : (613, 10) - wasm-semantics/wasm-text.md : (614, 10) -- Lbl#unfoldElemList(_)_WASM-TEXT_ElemList_ElemList: 2 +- F--Lbl#unfoldElemList(_)_WASM-TEXT_ElemList_ElemList: 2 - wasm-semantics/wasm-text.md : (608, 10) - wasm-semantics/wasm-text.md : (609, 10) -- Lbl#unfoldInstrs(_,_,_)_WASM-TEXT_Instrs_Instrs_Int_Map: 22 +- F--Lbl#unfoldInstrs(_,_,_)_WASM-TEXT_Instrs_Instrs_Int_Map: 22 - wasm-semantics/wasm-text.md : (635, 10) - wasm-semantics/wasm-text.md : (677, 10) - wasm-semantics/wasm-text.md : (676, 10) @@ -5954,33 +5957,33 @@ Function equations by term index: - wasm-semantics/wasm-text.md : (661, 10) - wasm-semantics/wasm-text.md : (662, 10) - wasm-semantics/wasm-text.md : (636, 10) -- Lbl#unsigned(_,_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType_Int: 2 +- F--Lbl#unsigned(_,_)_WASM-DATA-INTERNAL-SYNTAX_Int_IValType_Int: 2 - wasm-semantics/data.md : (445, 10) - wasm-semantics/data.md : (446, 10) -- Lbl#updateFuncIds(_,_)_WASM-TEXT_Context_Context_Map: wasm-semantics/wasm-text.md : (792, 10) -- Lbl#updateFuncIdsAux(_,_,_)_WASM-TEXT_Context_Context_Map_Bool: 2 +- F--Lbl#updateFuncIds(_,_)_WASM-TEXT_Context_Context_Map: wasm-semantics/wasm-text.md : (792, 10) +- F--Lbl#updateFuncIdsAux(_,_,_)_WASM-TEXT_Context_Context_Map_Bool: 2 - wasm-semantics/wasm-text.md : (794, 10) - wasm-semantics/wasm-text.md : (793, 10) -- Lbl#updateLocalIds(_,_)_WASM-TEXT_Context_Context_Map: wasm-semantics/wasm-text.md : (788, 10) -- Lbl#updateLocalIdsAux(_,_,_)_WASM-TEXT_Context_Context_Map_Bool: 2 +- F--Lbl#updateLocalIds(_,_)_WASM-TEXT_Context_Context_Map: wasm-semantics/wasm-text.md : (788, 10) +- F--Lbl#updateLocalIdsAux(_,_,_)_WASM-TEXT_Context_Context_Map_Bool: 2 - wasm-semantics/wasm-text.md : (790, 10) - wasm-semantics/wasm-text.md : (789, 10) -- Lbl#validArgIdx(_,_)_BASEOPS_Bool_Int_ListBytes: mx-semantics/vmhooks/baseOps.md : (113, 10) -- Lbl#validBufferId(_,_)_MANBUFOPS_Bool_Int_MapIntToBytes: mx-semantics/vmhooks/manBufOps.md : (23, 10) -- Lbl#validRandom(_)_EEI-HELPERS_Bool_Int: mx-semantics/vmhooks/eei-helpers.md : (83, 8) -- Lbl#validateToken(_)_EEI-HELPERS_Bool_Bytes: 2 +- F--Lbl#validArgIdx(_,_)_BASEOPS_Bool_Int_ListBytes: mx-semantics/vmhooks/baseOps.md : (113, 10) +- F--Lbl#validBufferId(_,_)_MANBUFOPS_Bool_Int_MapIntToBytes: mx-semantics/vmhooks/manBufOps.md : (23, 10) +- F--Lbl#validRandom(_)_EEI-HELPERS_Bool_Int: mx-semantics/vmhooks/eei-helpers.md : (83, 8) +- F--Lbl#validateToken(_)_EEI-HELPERS_Bool_Bytes: 2 - mx-semantics/vmhooks/eei-helpers.md : (29, 8) - mx-semantics/vmhooks/eei-helpers.md : (27, 8) -- Lbl#width(_)_WASM-DATA-COMMON_Int_IValType: 2 +- F--Lbl#width(_)_WASM-DATA-COMMON_Int_IValType: 2 - wasm-semantics/data.md : (375, 10) - wasm-semantics/data.md : (376, 10) -- Lbl#wrap(_,_)_WASM-DATA-COMMON_Int_Int_Int: wasm-semantics/data.md : (410, 10) -- Lbl#zero(_)_WASM-DATA-COMMON_ValStack_ValTypes: 4 +- F--Lbl#wrap(_,_)_WASM-DATA-COMMON_Int_Int_Int: wasm-semantics/data.md : (410, 10) +- F--Lbl#zero(_)_WASM-DATA-COMMON_ValStack_ValTypes: 4 - wasm-semantics/data.md : (512, 10) - wasm-semantics/data.md : (514, 10) - wasm-semantics/data.md : (513, 10) - wasm-semantics/data.md : (515, 10) -- append: 2 +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: diff --git a/booster/test/internalisation/preserves-definedness-total-function.kore.report b/booster/test/internalisation/preserves-definedness-total-function.kore.report index 9341d53787..f80b4e2d1e 100644 --- a/booster/test/internalisation/preserves-definedness-total-function.kore.report +++ b/booster/test/internalisation/preserves-definedness-total-function.kore.report @@ -145,73 +145,73 @@ Subsorts: - SortMap: SortMap - SortSet: SortSet Rewrite rules by term index: -- LblFoo()_PRESERVES-DEFINEDNESS-TOTAL-FUNCTION_Foo: /home/jost/work/RV/code/hs-backend-booster/test/internalisation/preserves-definedness-total-function.k : (4, 8) +- C--LblFoo()_PRESERVES-DEFINEDNESS-TOTAL-FUNCTION_Foo: /home/jost/work/RV/code/hs-backend-booster/test/internalisation/preserves-definedness-total-function.k : (4, 8) Function equations by term index: -- Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) -- LblgetGeneratedCounterCell: UNKNOWN -- LblinitGeneratedCounterCell: UNKNOWN -- LblinitGeneratedTopCell: UNKNOWN -- LblinitKCell: UNKNOWN -- LblisBool: 2 +- F--Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) +- F--LblgetGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedTopCell: UNKNOWN +- F--LblinitKCell: UNKNOWN +- F--LblisBool: 2 - UNKNOWN - UNKNOWN -- LblisFoo: 2 +- F--LblisFoo: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCell: 2 +- F--LblisGeneratedCounterCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCellOpt: 2 +- F--LblisGeneratedCounterCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCell: 2 +- F--LblisGeneratedTopCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCellFragment: 2 +- F--LblisGeneratedTopCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisInt: 2 +- F--LblisInt: 2 - UNKNOWN - UNKNOWN -- LblisK: UNKNOWN -- LblisKCell: 2 +- F--LblisK: UNKNOWN +- F--LblisKCell: 2 - UNKNOWN - UNKNOWN -- LblisKCellOpt: 2 +- F--LblisKCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisKConfigVar: 2 +- F--LblisKConfigVar: 2 - UNKNOWN - UNKNOWN -- LblisKItem: 2 +- F--LblisKItem: 2 - UNKNOWN - UNKNOWN -- LblisList: 2 +- F--LblisList: 2 - UNKNOWN - UNKNOWN -- LblisMap: 2 +- F--LblisMap: 2 - UNKNOWN - UNKNOWN -- LblisSet: 2 +- F--LblisSet: 2 - UNKNOWN - UNKNOWN -- Lblproject:Bool: UNKNOWN -- Lblproject:Foo: UNKNOWN -- Lblproject:GeneratedCounterCell: UNKNOWN -- Lblproject:GeneratedCounterCellOpt: UNKNOWN -- Lblproject:GeneratedTopCell: UNKNOWN -- Lblproject:GeneratedTopCellFragment: UNKNOWN -- Lblproject:Int: UNKNOWN -- Lblproject:K: UNKNOWN -- Lblproject:KCell: UNKNOWN -- Lblproject:KCellOpt: UNKNOWN -- Lblproject:KItem: UNKNOWN -- Lblproject:List: UNKNOWN -- Lblproject:Map: UNKNOWN -- Lblproject:Set: UNKNOWN -- append: 2 +- F--Lblproject:Bool: UNKNOWN +- F--Lblproject:Foo: UNKNOWN +- F--Lblproject:GeneratedCounterCell: UNKNOWN +- F--Lblproject:GeneratedCounterCellOpt: UNKNOWN +- F--Lblproject:GeneratedTopCell: UNKNOWN +- F--Lblproject:GeneratedTopCellFragment: UNKNOWN +- F--Lblproject:Int: UNKNOWN +- F--Lblproject:K: UNKNOWN +- F--Lblproject:KCell: UNKNOWN +- F--Lblproject:KCellOpt: UNKNOWN +- F--Lblproject:KItem: UNKNOWN +- F--Lblproject:List: UNKNOWN +- F--Lblproject:Map: UNKNOWN +- F--Lblproject:Set: UNKNOWN +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: Ceils: -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) diff --git a/booster/test/internalisation/preserves-definedness.kore.report b/booster/test/internalisation/preserves-definedness.kore.report index 8155135ed4..370e8146ba 100644 --- a/booster/test/internalisation/preserves-definedness.kore.report +++ b/booster/test/internalisation/preserves-definedness.kore.report @@ -145,73 +145,73 @@ Subsorts: - SortMap: SortMap - SortSet: SortSet Rewrite rules by term index: -- LblFoo()_PRESERVES-DEFINEDNESS_Foo: /home/jost/work/RV/code/hs-backend-booster/test/internalisation/preserves-definedness.k : (4, 8) +- C--LblFoo()_PRESERVES-DEFINEDNESS_Foo: /home/jost/work/RV/code/hs-backend-booster/test/internalisation/preserves-definedness.k : (4, 8) Function equations by term index: -- Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) -- LblgetGeneratedCounterCell: UNKNOWN -- LblinitGeneratedCounterCell: UNKNOWN -- LblinitGeneratedTopCell: UNKNOWN -- LblinitKCell: UNKNOWN -- LblisBool: 2 +- F--Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) +- F--LblgetGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedTopCell: UNKNOWN +- F--LblinitKCell: UNKNOWN +- F--LblisBool: 2 - UNKNOWN - UNKNOWN -- LblisFoo: 2 +- F--LblisFoo: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCell: 2 +- F--LblisGeneratedCounterCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCellOpt: 2 +- F--LblisGeneratedCounterCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCell: 2 +- F--LblisGeneratedTopCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCellFragment: 2 +- F--LblisGeneratedTopCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisInt: 2 +- F--LblisInt: 2 - UNKNOWN - UNKNOWN -- LblisK: UNKNOWN -- LblisKCell: 2 +- F--LblisK: UNKNOWN +- F--LblisKCell: 2 - UNKNOWN - UNKNOWN -- LblisKCellOpt: 2 +- F--LblisKCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisKConfigVar: 2 +- F--LblisKConfigVar: 2 - UNKNOWN - UNKNOWN -- LblisKItem: 2 +- F--LblisKItem: 2 - UNKNOWN - UNKNOWN -- LblisList: 2 +- F--LblisList: 2 - UNKNOWN - UNKNOWN -- LblisMap: 2 +- F--LblisMap: 2 - UNKNOWN - UNKNOWN -- LblisSet: 2 +- F--LblisSet: 2 - UNKNOWN - UNKNOWN -- Lblproject:Bool: UNKNOWN -- Lblproject:Foo: UNKNOWN -- Lblproject:GeneratedCounterCell: UNKNOWN -- Lblproject:GeneratedCounterCellOpt: UNKNOWN -- Lblproject:GeneratedTopCell: UNKNOWN -- Lblproject:GeneratedTopCellFragment: UNKNOWN -- Lblproject:Int: UNKNOWN -- Lblproject:K: UNKNOWN -- Lblproject:KCell: UNKNOWN -- Lblproject:KCellOpt: UNKNOWN -- Lblproject:KItem: UNKNOWN -- Lblproject:List: UNKNOWN -- Lblproject:Map: UNKNOWN -- Lblproject:Set: UNKNOWN -- append: 2 +- F--Lblproject:Bool: UNKNOWN +- F--Lblproject:Foo: UNKNOWN +- F--Lblproject:GeneratedCounterCell: UNKNOWN +- F--Lblproject:GeneratedCounterCellOpt: UNKNOWN +- F--Lblproject:GeneratedTopCell: UNKNOWN +- F--Lblproject:GeneratedTopCellFragment: UNKNOWN +- F--Lblproject:Int: UNKNOWN +- F--Lblproject:K: UNKNOWN +- F--Lblproject:KCell: UNKNOWN +- F--Lblproject:KCellOpt: UNKNOWN +- F--Lblproject:KItem: UNKNOWN +- F--Lblproject:List: UNKNOWN +- F--Lblproject:Map: UNKNOWN +- F--Lblproject:Set: UNKNOWN +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: Ceils: -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) diff --git a/booster/test/internalisation/subsorts.kore.report b/booster/test/internalisation/subsorts.kore.report index 21ef0f0290..23387f8f4f 100644 --- a/booster/test/internalisation/subsorts.kore.report +++ b/booster/test/internalisation/subsorts.kore.report @@ -196,124 +196,124 @@ Subsorts: - SortSet: SortSet Rewrite rules by term index: Function equations by term index: -- Lbl_=/=Bool_: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (932, 8) -- Lbl_andBool_: 4 +- F--Lbl_=/=Bool_: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (932, 8) +- F--Lbl_andBool_: 4 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (905, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (904, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (906, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (903, 8) -- Lbl_andThenBool_: 4 +- F--Lbl_andThenBool_: 4 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (910, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (909, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (911, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (908, 8) -- Lbl_impliesBool_: 4 +- F--Lbl_impliesBool_: 4 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (930, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (929, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (928, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (927, 8) -- Lbl_orBool_: 4 +- F--Lbl_orBool_: 4 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (920, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (918, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (919, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (917, 8) -- Lbl_orElseBool_: 4 +- F--Lbl_orElseBool_: 4 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (925, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (923, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (924, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (922, 8) -- Lbl_xorBool_: 3 +- F--Lbl_xorBool_: 3 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (915, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (914, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (913, 8) -- Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) -- LblgetGeneratedCounterCell: UNKNOWN -- LblinitGeneratedCounterCell: UNKNOWN -- LblinitGeneratedTopCell: UNKNOWN -- LblinitKCell: UNKNOWN -- LblisA1: 2 +- F--Lbl_|Set__SET_Set_Set_Set: /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (531, 8) +- F--LblgetGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedCounterCell: UNKNOWN +- F--LblinitGeneratedTopCell: UNKNOWN +- F--LblinitKCell: UNKNOWN +- F--LblisA1: 2 - UNKNOWN - UNKNOWN -- LblisA2: 2 +- F--LblisA2: 2 - UNKNOWN - UNKNOWN -- LblisA3: 2 +- F--LblisA3: 2 - UNKNOWN - UNKNOWN -- LblisB1: 2 +- F--LblisB1: 2 - UNKNOWN - UNKNOWN -- LblisBool: 2 +- F--LblisBool: 2 - UNKNOWN - UNKNOWN -- LblisC1: 2 +- F--LblisC1: 2 - UNKNOWN - UNKNOWN -- LblisC2: 2 +- F--LblisC2: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCell: 2 +- F--LblisGeneratedCounterCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedCounterCellOpt: 2 +- F--LblisGeneratedCounterCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCell: 2 +- F--LblisGeneratedTopCell: 2 - UNKNOWN - UNKNOWN -- LblisGeneratedTopCellFragment: 2 +- F--LblisGeneratedTopCellFragment: 2 - UNKNOWN - UNKNOWN -- LblisInt: 2 +- F--LblisInt: 2 - UNKNOWN - UNKNOWN -- LblisK: UNKNOWN -- LblisKCell: 2 +- F--LblisK: UNKNOWN +- F--LblisKCell: 2 - UNKNOWN - UNKNOWN -- LblisKCellOpt: 2 +- F--LblisKCellOpt: 2 - UNKNOWN - UNKNOWN -- LblisKConfigVar: 2 +- F--LblisKConfigVar: 2 - UNKNOWN - UNKNOWN -- LblisKItem: 2 +- F--LblisKItem: 2 - UNKNOWN - UNKNOWN -- LblisList: 2 +- F--LblisList: 2 - UNKNOWN - UNKNOWN -- LblisMap: 2 +- F--LblisMap: 2 - UNKNOWN - UNKNOWN -- LblisSet: 2 +- F--LblisSet: 2 - UNKNOWN - UNKNOWN -- LblnotBool_: 2 +- F--LblnotBool_: 2 - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (901, 8) - /nix/store/9dqw7zw0v1fv1ghrv5hc8r071qpgz46z-k-5.6.88-4c09d86ed218ee08d521c5780b0368dc5f330383-maven/include/kframework/builtin/domains.md : (900, 8) -- Lblproject:A1: UNKNOWN -- Lblproject:A2: UNKNOWN -- Lblproject:A3: UNKNOWN -- Lblproject:B1: UNKNOWN -- Lblproject:Bool: UNKNOWN -- Lblproject:C1: UNKNOWN -- Lblproject:C2: UNKNOWN -- Lblproject:GeneratedCounterCell: UNKNOWN -- Lblproject:GeneratedCounterCellOpt: UNKNOWN -- Lblproject:GeneratedTopCell: UNKNOWN -- Lblproject:GeneratedTopCellFragment: UNKNOWN -- Lblproject:Int: UNKNOWN -- Lblproject:K: UNKNOWN -- Lblproject:KCell: UNKNOWN -- Lblproject:KCellOpt: UNKNOWN -- Lblproject:KItem: UNKNOWN -- Lblproject:List: UNKNOWN -- Lblproject:Map: UNKNOWN -- Lblproject:Set: UNKNOWN -- append: 2 +- F--Lblproject:A1: UNKNOWN +- F--Lblproject:A2: UNKNOWN +- F--Lblproject:A3: UNKNOWN +- F--Lblproject:B1: UNKNOWN +- F--Lblproject:Bool: UNKNOWN +- F--Lblproject:C1: UNKNOWN +- F--Lblproject:C2: UNKNOWN +- F--Lblproject:GeneratedCounterCell: UNKNOWN +- F--Lblproject:GeneratedCounterCellOpt: UNKNOWN +- F--Lblproject:GeneratedTopCell: UNKNOWN +- F--Lblproject:GeneratedTopCellFragment: UNKNOWN +- F--Lblproject:Int: UNKNOWN +- F--Lblproject:K: UNKNOWN +- F--Lblproject:KCell: UNKNOWN +- F--Lblproject:KCellOpt: UNKNOWN +- F--Lblproject:KItem: UNKNOWN +- F--Lblproject:List: UNKNOWN +- F--Lblproject:Map: UNKNOWN +- F--Lblproject:Set: UNKNOWN +- F--append: 2 - UNKNOWN - UNKNOWN Simplifications by term index: Ceils: -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) diff --git a/booster/test/internalisation/test-totalSupply-definition.kore.report b/booster/test/internalisation/test-totalSupply-definition.kore.report index 3e1be0c48a..b2c243a1c7 100644 --- a/booster/test/internalisation/test-totalSupply-definition.kore.report +++ b/booster/test/internalisation/test-totalSupply-definition.kore.report @@ -2888,67 +2888,64 @@ Subsorts: - SortWordStackCell - SortWordStackCellOpt Rewrite rules by term index: -- Anything: 14 +- ***: 9 - EVM.Ccall2-cool - EVM.Ccallgas2-cool - EVM.Cselfdestruct2-cool - evm-semantics/evm.md : (1842, 10) - - evm-semantics/evm.md : (1040, 10) - - evm-semantics/evm.md : (611, 10) - evm-semantics/evm.md : (1843, 10) - evm-semantics/evm.md : (1844, 10) - evm-semantics/evm.md : (2148, 10) - evm-semantics/evm.md : (1839, 10) - evm-semantics/evm.md : (728, 10) - - evm-semantics/evm.md : (660, 10) - - evm-semantics/evm.md : (541, 10) - - evm-semantics/evm.md : (615, 10) -- Lbl#accessAccounts__EVM_KItem_Account: evm-semantics/evm.md : (1335, 10) -- Lbl#accessAccounts__EVM_KItem_Set: evm-semantics/evm.md : (1338, 10) -- Lbl#accessAccounts___EVM_KItem_Account_Account: evm-semantics/evm.md : (1333, 10) -- Lbl#accessAccounts____EVM_KItem_Account_Account_Set: evm-semantics/evm.md : (1331, 10) -- Lbl#accessStorage___EVM_KItem_Account_Int: 2 +- C--Lbl#accessAccounts__EVM_KItem_Account: evm-semantics/evm.md : (1335, 10) +- C--Lbl#accessAccounts__EVM_KItem_Set: evm-semantics/evm.md : (1338, 10) +- C--Lbl#accessAccounts___EVM_KItem_Account_Account: evm-semantics/evm.md : (1333, 10) +- C--Lbl#accessAccounts____EVM_KItem_Account_Account_Set: evm-semantics/evm.md : (1331, 10) +- C--Lbl#accessStorage___EVM_KItem_Account_Int: 2 - evm-semantics/evm.md : (1322, 10) - evm-semantics/evm.md : (1320, 10) -- Lbl#access[_,_]_EVM_InternalOp_OpCode_OpCode: 2 +- C--Lbl#access[_,_]_EVM_InternalOp_OpCode_OpCode: 2 - evm-semantics/evm.md : (1933, 10) - evm-semantics/evm.md : (1937, 10) -- Lbl#accountNonexistent(_)_EVM_BExp_Int: 2 +- C--Lbl#accountNonexistent(_)_EVM_BExp_Int: 2 - evm-semantics/evm.md : (2182, 10) - evm-semantics/evm.md : (2192, 9) -- Lbl#addr[_]_EVM_InternalOp_OpCode: 3 +- C--Lbl#addr[_]_EVM_InternalOp_OpCode: 3 - evm-semantics/evm.md : (485, 10) - evm-semantics/evm.md : (477, 10) - evm-semantics/evm.md : (481, 10) -- Lbl#allocateCreateGas_EVM_InternalOp: evm-semantics/evm.md : (2153, 10) -- Lbl#callWithCode_________EVM_InternalOp_Int_Int_Int_Bytes_Int_Int_Bytes_Bool: evm-semantics/evm.md : (1264, 10) -- Lbl#call________EVM_InternalOp_Int_Int_Int_Int_Int_Bytes_Bool: 2 +- C--Lbl#allocateCreateGas_EVM_InternalOp: evm-semantics/evm.md : (2153, 10) +- C--Lbl#callWithCode_________EVM_InternalOp_Int_Int_Int_Bytes_Int_Int_Bytes_Bool: evm-semantics/evm.md : (1264, 10) +- C--Lbl#call________EVM_InternalOp_Int_Int_Int_Int_Int_Bytes_Bool: 2 - evm-semantics/evm.md : (1249, 10) - evm-semantics/evm.md : (1259, 10) -- Lbl#checkCall___EVM_InternalOp_Int_Int: 2 +- C--Lbl#checkCall___EVM_InternalOp_Int_Int: 2 - evm-semantics/evm.md : (1223, 10) - evm-semantics/evm.md : (1239, 11) -- Lbl#checkPoint_EVM_InternalOp: 2 +- C--Lbl#checkPoint_EVM_InternalOp: 2 - evm-semantics/evm.md : (1783, 10) - evm-semantics/evm.md : (1785, 10) -- Lbl#create_____EVM_InternalOp_Int_Int_Int_Bytes: evm-semantics/evm.md : (1471, 10) -- Lbl#deleteAccounts(_)_EVM_InternalOp_List: 2 +- C--Lbl#create_____EVM_InternalOp_Int_Int_Int_Bytes: evm-semantics/evm.md : (1471, 10) +- C--Lbl#deleteAccounts(_)_EVM_InternalOp_List: 2 - evm-semantics/evm.md : (629, 10) - evm-semantics/evm.md : (618, 10) -- Lbl#dropCallStack_EVM_InternalOp: evm-semantics/evm.md : (216, 10) -- Lbl#dropWorldState_EVM_InternalOp: evm-semantics/evm.md : (248, 10) -- Lbl#ecadd(_,_)_EVM_InternalOp_G1Point_G1Point: 2 +- C--Lbl#dropCallStack_EVM_InternalOp: evm-semantics/evm.md : (216, 10) +- C--Lbl#dropWorldState_EVM_InternalOp: evm-semantics/evm.md : (248, 10) +- C--Lbl#ecadd(_,_)_EVM_InternalOp_G1Point_G1Point: 2 - evm-semantics/evm.md : (1744, 10) - evm-semantics/evm.md : (1746, 10) -- Lbl#ecmul(_,_)_EVM_InternalOp_G1Point_Int: 2 +- C--Lbl#ecmul(_,_)_EVM_InternalOp_G1Point_Int: 2 - evm-semantics/evm.md : (1758, 10) - evm-semantics/evm.md : (1756, 10) -- Lbl#ecpairing(_,_,_,_,_)_EVM_InternalOp_List_List_Int_Bytes_Int: 2 +- C--Lbl#ecpairing(_,_,_,_,_)_EVM_InternalOp_List_List_Int_Bytes_Int: 2 - evm-semantics/evm.md : (1778, 10) - evm-semantics/evm.md : (1776, 10) -- Lbl#endBasicBlock_EVM_InternalOp: evm-semantics/evm.md : (1041, 10) -- Lbl#end__EVM_KItem_StatusCode: EVM.end -- Lbl#exec[_]_EVM_InternalOp_OpCode: 9 +- C--Lbl#endBasicBlock_EVM_InternalOp: 2 + - evm-semantics/evm.md : (1040, 10) + - evm-semantics/evm.md : (1041, 10) +- C--Lbl#end__EVM_KItem_StatusCode: EVM.end +- C--Lbl#exec[_]_EVM_InternalOp_OpCode: 9 - evm-semantics/evm.md : (446, 10) - evm-semantics/evm.md : (466, 10) - evm-semantics/evm.md : (465, 10) @@ -2958,18 +2955,23 @@ Rewrite rules by term index: - evm-semantics/evm.md : (445, 10) - evm-semantics/evm.md : (429, 10) - evm-semantics/evm.md : (427, 10) -- Lbl#execute_EVM_KItem: EVM.step -- Lbl#finalizeBlock_EVM_EthereumCommand: evm-semantics/evm.md : (648, 10) -- Lbl#finalizeStorage(_)_EVM_InternalOp_List: 2 +- C--Lbl#execute_EVM_KItem: EVM.step +- C--Lbl#finalizeBlock_EVM_EthereumCommand: 2 + - evm-semantics/evm.md : (648, 10) + - evm-semantics/evm.md : (660, 10) +- C--Lbl#finalizeStorage(_)_EVM_InternalOp_List: 3 - evm-semantics/evm.md : (539, 10) - evm-semantics/evm.md : (531, 10) -- Lbl#finalizeTx(_)_EVM_InternalOp_Bool: 4 + - evm-semantics/evm.md : (541, 10) +- C--Lbl#finalizeTx(_)_EVM_InternalOp_Bool: 6 - evm-semantics/evm.md : (553, 10) + - evm-semantics/evm.md : (611, 10) - evm-semantics/evm.md : (591, 10) - evm-semantics/evm.md : (565, 10) - evm-semantics/evm.md : (546, 10) -- Lbl#finishCodeDeposit___EVM_KItem_Int_Bytes: evm-semantics/evm.md : (1542, 10) -- Lbl#gasAccess(_,_)_EVM_InternalOp_Schedule_OpCode: 12 + - evm-semantics/evm.md : (615, 10) +- C--Lbl#finishCodeDeposit___EVM_KItem_Int_Bytes: evm-semantics/evm.md : (1542, 10) +- C--Lbl#gasAccess(_,_)_EVM_InternalOp_Schedule_OpCode: 12 - evm-semantics/evm.md : (1944, 10) - evm-semantics/evm.md : (1943, 10) - evm-semantics/evm.md : (1941, 10) @@ -2982,7 +2984,7 @@ Rewrite rules by term index: - evm-semantics/evm.md : (1947, 10) - evm-semantics/evm.md : (1946, 10) - evm-semantics/evm.md : (1952, 10) -- Lbl#gasExec(_,_)_EVM_InternalOp_Schedule_OpCode: 90 +- C--Lbl#gasExec(_,_)_EVM_InternalOp_Schedule_OpCode: 90 - evm-semantics/evm.md : (2062, 10) - evm-semantics/evm.md : (2076, 10) - evm-semantics/evm.md : (2144, 10) @@ -3073,9 +3075,9 @@ Rewrite rules by term index: - evm-semantics/evm.md : (2136, 10) - evm-semantics/evm.md : (2135, 10) - evm-semantics/evm.md : (2134, 10) -- Lbl#gas[_,_]_EVM_InternalOp_OpCode_OpCode: evm-semantics/evm.md : (1820, 10) -- Lbl#gas[_]_EVM_InternalOp_OpCode: evm-semantics/evm.md : (1827, 10) -- Lbl#halt_EVM_KItem: 11 +- C--Lbl#gas[_,_]_EVM_InternalOp_OpCode_OpCode: evm-semantics/evm.md : (1820, 10) +- C--Lbl#gas[_]_EVM_InternalOp_OpCode: evm-semantics/evm.md : (1827, 10) +- C--Lbl#halt_EVM_KItem: 11 - EVM.halt - evm-semantics/evm.md : (267, 10) - evm-semantics/evm.md : (268, 10) @@ -3087,25 +3089,25 @@ Rewrite rules by term index: - EVM.return.revert - EVM.return.success - EVM.return.exception -- Lbl#incrementNonce__EVM_InternalOp_Int: evm-semantics/evm.md : (1498, 10) -- Lbl#initVM_EVM_KItem: evm-semantics/evm.md : (1298, 10) -- Lbl#loadProgram__EVM_KItem_Bytes: evm-semantics/evm.md : (1307, 10) -- Lbl#memory[_,_]_EVM_InternalOp_OpCode_OpCode: 2 +- C--Lbl#incrementNonce__EVM_InternalOp_Int: evm-semantics/evm.md : (1498, 10) +- C--Lbl#initVM_EVM_KItem: evm-semantics/evm.md : (1298, 10) +- C--Lbl#loadProgram__EVM_KItem_Bytes: evm-semantics/evm.md : (1307, 10) +- C--Lbl#memory[_,_]_EVM_InternalOp_OpCode_OpCode: 2 - evm-semantics/evm.md : (1830, 10) - evm-semantics/evm.md : (1834, 9) -- Lbl#mkCall________EVM_InternalOp_Int_Int_Int_Bytes_Int_Bytes_Bool: evm-semantics/evm.md : (1271, 10) -- Lbl#mkCodeDeposit__EVM_KItem_Int: 2 +- C--Lbl#mkCall________EVM_InternalOp_Int_Int_Int_Bytes_Int_Bytes_Bool: evm-semantics/evm.md : (1271, 10) +- C--Lbl#mkCodeDeposit__EVM_KItem_Int: 2 - evm-semantics/evm.md : (1528, 10) - evm-semantics/evm.md : (1537, 10) -- Lbl#mkCreate_____EVM_InternalOp_Int_Int_Int_Bytes: evm-semantics/evm.md : (1480, 10) -- Lbl#newAccount__EVM_InternalOp_Int: 2 +- C--Lbl#mkCreate_____EVM_InternalOp_Int_Int_Int_Bytes: evm-semantics/evm.md : (1480, 10) +- C--Lbl#newAccount__EVM_InternalOp_Int: 2 - evm-semantics/evm.md : (741, 10) - evm-semantics/evm.md : (742, 10) -- Lbl#newExistingAccount__EVM_InternalOp_Int: 2 +- C--Lbl#newExistingAccount__EVM_InternalOp_Int: 2 - evm-semantics/evm.md : (753, 10) - evm-semantics/evm.md : (744, 10) -- Lbl#newFreshAccount__EVM_InternalOp_Int: evm-semantics/evm.md : (764, 10) -- Lbl#next[_]_EVM_InternalOp_MaybeOpCode: 14 +- C--Lbl#newFreshAccount__EVM_InternalOp_Int: evm-semantics/evm.md : (764, 10) +- C--Lbl#next[_]_EVM_InternalOp_MaybeOpCode: 14 - evm-semantics/optimizations.md : (91, 6) - evm-semantics/optimizations.md : (124, 6) - evm-semantics/optimizations.md : (157, 6) @@ -3120,84 +3122,84 @@ Rewrite rules by term index: - evm-semantics/evm.md : (320, 10) - evm-semantics/evm.md : (335, 10) - evm-semantics/evm.md : (331, 10) -- Lbl#pc[_]_EVM_InternalOp_OpCode: evm-semantics/evm.md : (513, 10) -- Lbl#popCallStack_EVM_InternalOp: evm-semantics/evm.md : (210, 10) -- Lbl#popWorldState_EVM_InternalOp: evm-semantics/evm.md : (241, 10) -- Lbl#precompiled?(_,_)_EVM_InternalOp_Int_Schedule: 2 +- C--Lbl#pc[_]_EVM_InternalOp_OpCode: evm-semantics/evm.md : (513, 10) +- C--Lbl#popCallStack_EVM_InternalOp: evm-semantics/evm.md : (210, 10) +- C--Lbl#popWorldState_EVM_InternalOp: evm-semantics/evm.md : (241, 10) +- C--Lbl#precompiled?(_,_)_EVM_InternalOp_Int_Schedule: 2 - evm-semantics/evm.md : (1289, 10) - evm-semantics/evm.md : (1287, 10) -- Lbl#pushCallStack_EVM_InternalOp: evm-semantics/evm.md : (204, 10) -- Lbl#pushWorldState_EVM_InternalOp: evm-semantics/evm.md : (234, 10) -- Lbl#refund__EVM_InternalOp_Gas: EVM.refund -- Lbl#rewardOmmers(_)_EVM_EthereumCommand_JSONs: 2 +- C--Lbl#pushCallStack_EVM_InternalOp: evm-semantics/evm.md : (204, 10) +- C--Lbl#pushWorldState_EVM_InternalOp: evm-semantics/evm.md : (234, 10) +- C--Lbl#refund__EVM_InternalOp_Gas: EVM.refund +- C--Lbl#rewardOmmers(_)_EVM_EthereumCommand_JSONs: 2 - evm-semantics/evm.md : (663, 10) - evm-semantics/evm.md : (664, 10) -- Lbl#setLocalMem____EVM_InternalOp_Int_Int_Bytes: evm-semantics/evm.md : (1396, 10) -- Lbl#setStack__EVM_InternalOp_WordStack: evm-semantics/evm.md : (729, 10) -- Lbl#startBlock_EVM_EthereumCommand: evm-semantics/evm.md : (641, 10) -- Lbl#touchAccounts__EVM_KItem_Account: evm-semantics/evm.md : (1315, 10) -- Lbl#touchAccounts___EVM_KItem_Account_Account: evm-semantics/evm.md : (1313, 10) -- Lbl#transferFundsToNonExistent____EVM_InternalOp_Int_Int_Int: 2 +- C--Lbl#setLocalMem____EVM_InternalOp_Int_Int_Bytes: evm-semantics/evm.md : (1396, 10) +- C--Lbl#setStack__EVM_InternalOp_WordStack: evm-semantics/evm.md : (729, 10) +- C--Lbl#startBlock_EVM_EthereumCommand: evm-semantics/evm.md : (641, 10) +- C--Lbl#touchAccounts__EVM_KItem_Account: evm-semantics/evm.md : (1315, 10) +- C--Lbl#touchAccounts___EVM_KItem_Account_Account: evm-semantics/evm.md : (1313, 10) +- C--Lbl#transferFundsToNonExistent____EVM_InternalOp_Int_Int_Int: 2 - evm-semantics/evm.md : (813, 10) - evm-semantics/evm.md : (818, 10) -- Lbl#transferFunds____EVM_InternalOp_Int_Int_Int: 4 +- C--Lbl#transferFunds____EVM_InternalOp_Int_Int_Int: 4 - evm-semantics/evm.md : (782, 10) - evm-semantics/evm.md : (790, 10) - evm-semantics/evm.md : (803, 10) - evm-semantics/evm.md : (811, 10) -- LblADDRESS_EVM_NullStackOp: evm-semantics/evm.md : (966, 10) -- LblBASEFEE_EVM_NullStackOp: evm-semantics/evm.md : (954, 10) -- LblBLAKE2F_EVM_PrecompiledOp: 3 +- C--LblADDRESS_EVM_NullStackOp: evm-semantics/evm.md : (966, 10) +- C--LblBASEFEE_EVM_NullStackOp: evm-semantics/evm.md : (954, 10) +- C--LblBLAKE2F_EVM_PrecompiledOp: 3 - evm-semantics/evm.md : (1801, 10) - evm-semantics/evm.md : (1796, 10) - evm-semantics/evm.md : (1790, 10) -- LblCALLDATASIZE_EVM_NullStackOp: evm-semantics/evm.md : (1072, 10) -- LblCALLER_EVM_NullStackOp: evm-semantics/evm.md : (968, 10) -- LblCALLVALUE_EVM_NullStackOp: evm-semantics/evm.md : (969, 10) -- LblCHAINID_EVM_NullStackOp: evm-semantics/evm.md : (970, 10) -- LblCODESIZE_EVM_NullStackOp: evm-semantics/evm.md : (982, 10) -- LblCOINBASE_EVM_NullStackOp: evm-semantics/evm.md : (958, 10) -- LblCcall(_,_,_,_,_,_)_EVM_Exp_Schedule_BExp_Gas_Gas_Int_Bool: 2 +- C--LblCALLDATASIZE_EVM_NullStackOp: evm-semantics/evm.md : (1072, 10) +- C--LblCALLER_EVM_NullStackOp: evm-semantics/evm.md : (968, 10) +- C--LblCALLVALUE_EVM_NullStackOp: evm-semantics/evm.md : (969, 10) +- C--LblCHAINID_EVM_NullStackOp: evm-semantics/evm.md : (970, 10) +- C--LblCODESIZE_EVM_NullStackOp: evm-semantics/evm.md : (982, 10) +- C--LblCOINBASE_EVM_NullStackOp: evm-semantics/evm.md : (958, 10) +- C--LblCcall(_,_,_,_,_,_)_EVM_Exp_Schedule_BExp_Gas_Gas_Int_Bool: 2 - EVM.Ccall2-heat - evm-semantics/evm.md : (2169, 10) -- LblCcallgas(_,_,_,_,_,_)_EVM_Exp_Schedule_BExp_Gas_Gas_Int_Bool: 2 +- C--LblCcallgas(_,_,_,_,_,_)_EVM_Exp_Schedule_BExp_Gas_Gas_Int_Bool: 2 - EVM.Ccallgas2-heat - evm-semantics/evm.md : (2172, 10) -- LblCselfdestruct(_,_,_)_EVM_Exp_Schedule_BExp_Int: 2 +- C--LblCselfdestruct(_,_,_)_EVM_Exp_Schedule_BExp_Int: 2 - EVM.Cselfdestruct2-heat - evm-semantics/evm.md : (2175, 10) -- LblDIFFICULTY_EVM_NullStackOp: evm-semantics/evm.md : (961, 10) -- LblECADD_EVM_PrecompiledOp: evm-semantics/evm.md : (1739, 10) -- LblECMUL_EVM_PrecompiledOp: evm-semantics/evm.md : (1751, 10) -- LblECPAIRING_EVM_PrecompiledOp: 2 +- C--LblDIFFICULTY_EVM_NullStackOp: evm-semantics/evm.md : (961, 10) +- C--LblECADD_EVM_PrecompiledOp: evm-semantics/evm.md : (1739, 10) +- C--LblECMUL_EVM_PrecompiledOp: evm-semantics/evm.md : (1751, 10) +- C--LblECPAIRING_EVM_PrecompiledOp: 2 - evm-semantics/evm.md : (1770, 10) - evm-semantics/evm.md : (1767, 10) -- LblECREC_EVM_PrecompiledOp: evm-semantics/evm.md : (1690, 10) -- LblGASLIMIT_EVM_NullStackOp: evm-semantics/evm.md : (953, 10) -- LblGASPRICE_EVM_NullStackOp: evm-semantics/evm.md : (952, 10) -- LblGAS_EVM_NullStackOp: evm-semantics/evm.md : (951, 10) -- LblID_EVM_PrecompiledOp: evm-semantics/evm.md : (1716, 10) -- LblINVALID_EVM_InvalidOp: evm-semantics/evm.md : (831, 10) -- LblJUMPDEST_EVM_NullStackOp: evm-semantics/evm.md : (1020, 10) -- LblMODEXP_EVM_PrecompiledOp: evm-semantics/evm.md : (1722, 10) -- LblMSIZE_EVM_NullStackOp: evm-semantics/evm.md : (981, 10) -- LblNUMBER_EVM_NullStackOp: evm-semantics/evm.md : (960, 10) -- LblORIGIN_EVM_NullStackOp: evm-semantics/evm.md : (967, 10) -- LblPC_EVM_NullStackOp: evm-semantics/evm.md : (950, 10) -- LblPREVRANDAO_EVM_NullStackOp: evm-semantics/evm.md : (962, 10) -- LblPUSH(_)_EVM_PushOp_Int: evm-semantics/evm.md : (854, 10) -- LblPUSHZERO_EVM_PushOp: evm-semantics/evm.md : (852, 10) -- LblRETURNDATASIZE_EVM_NullStackOp: evm-semantics/evm.md : (1094, 10) -- LblRIP160_EVM_PrecompiledOp: evm-semantics/evm.md : (1710, 10) -- LblSELFBALANCE_EVM_NullStackOp: evm-semantics/evm.md : (971, 10) -- LblSHA256_EVM_PrecompiledOp: evm-semantics/evm.md : (1704, 10) -- LblSTOP_EVM_NullStackOp: evm-semantics/evm.md : (1049, 10) -- LblTIMESTAMP_EVM_NullStackOp: evm-semantics/evm.md : (959, 10) -- LblUNDEFINED(_)_EVM_InvalidOp_Int: evm-semantics/evm.md : (832, 10) -- Lbl___EVM_InternalOp_StackOp_WordStack: 2 +- C--LblECREC_EVM_PrecompiledOp: evm-semantics/evm.md : (1690, 10) +- C--LblGASLIMIT_EVM_NullStackOp: evm-semantics/evm.md : (953, 10) +- C--LblGASPRICE_EVM_NullStackOp: evm-semantics/evm.md : (952, 10) +- C--LblGAS_EVM_NullStackOp: evm-semantics/evm.md : (951, 10) +- C--LblID_EVM_PrecompiledOp: evm-semantics/evm.md : (1716, 10) +- C--LblINVALID_EVM_InvalidOp: evm-semantics/evm.md : (831, 10) +- C--LblJUMPDEST_EVM_NullStackOp: evm-semantics/evm.md : (1020, 10) +- C--LblMODEXP_EVM_PrecompiledOp: evm-semantics/evm.md : (1722, 10) +- C--LblMSIZE_EVM_NullStackOp: evm-semantics/evm.md : (981, 10) +- C--LblNUMBER_EVM_NullStackOp: evm-semantics/evm.md : (960, 10) +- C--LblORIGIN_EVM_NullStackOp: evm-semantics/evm.md : (967, 10) +- C--LblPC_EVM_NullStackOp: evm-semantics/evm.md : (950, 10) +- C--LblPREVRANDAO_EVM_NullStackOp: evm-semantics/evm.md : (962, 10) +- C--LblPUSH(_)_EVM_PushOp_Int: evm-semantics/evm.md : (854, 10) +- C--LblPUSHZERO_EVM_PushOp: evm-semantics/evm.md : (852, 10) +- C--LblRETURNDATASIZE_EVM_NullStackOp: evm-semantics/evm.md : (1094, 10) +- C--LblRIP160_EVM_PrecompiledOp: evm-semantics/evm.md : (1710, 10) +- C--LblSELFBALANCE_EVM_NullStackOp: evm-semantics/evm.md : (971, 10) +- C--LblSHA256_EVM_PrecompiledOp: evm-semantics/evm.md : (1704, 10) +- C--LblSTOP_EVM_NullStackOp: evm-semantics/evm.md : (1049, 10) +- C--LblTIMESTAMP_EVM_NullStackOp: evm-semantics/evm.md : (959, 10) +- C--LblUNDEFINED(_)_EVM_InvalidOp_Int: evm-semantics/evm.md : (832, 10) +- C--Lbl___EVM_InternalOp_StackOp_WordStack: 2 - evm-semantics/evm.md : (846, 10) - evm-semantics/evm.md : (847, 10) -- Lbl___EVM_InternalOp_UnStackOp_Int: 17 +- C--Lbl___EVM_InternalOp_UnStackOp_Int: 17 - evm-semantics/evm.md : (1133, 10) - evm-semantics/evm.md : (997, 10) - evm-semantics/evm.md : (1077, 10) @@ -3215,7 +3217,7 @@ Rewrite rules by term index: - evm-semantics/evm.md : (1140, 10) - evm-semantics/evm.md : (1165, 10) - evm-semantics/evm.md : (1151, 10) -- Lbl____EVM_InternalOp_BinStackOp_Int_Int: 30 +- C--Lbl____EVM_InternalOp_BinStackOp_Int_Int: 30 - evm-semantics/evm.md : (892, 10) - evm-semantics/evm.md : (922, 10) - evm-semantics/evm.md : (911, 10) @@ -3246,7 +3248,7 @@ Rewrite rules by term index: - evm-semantics/evm.md : (894, 10) - evm-semantics/evm.md : (924, 10) - evm-semantics/evm.md : (1115, 10) -- Lbl_____EVM_InternalOp_TernStackOp_Int_Int_Int: 8 +- C--Lbl_____EVM_InternalOp_TernStackOp_Int_Int_Int: 8 - evm-semantics/evm.md : (906, 10) - evm-semantics/evm.md : (1082, 10) - evm-semantics/evm.md : (986, 10) @@ -3255,74 +3257,74 @@ Rewrite rules by term index: - evm-semantics/evm.md : (1099, 10) - evm-semantics/evm.md : (1104, 10) - EVM.create-invalid -- Lbl______EVM_InternalOp_QuadStackOp_Int_Int_Int_Int: 4 +- C--Lbl______EVM_InternalOp_QuadStackOp_Int_Int_Int_Int: 4 - EVM.create2-valid - evm-semantics/evm.md : (1169, 10) - EVM.create2-invalid - evm-semantics/evm.md : (1177, 10) -- Lbl________EVM_InternalOp_CallSixOp_Int_Int_Int_Int_Int_Int: 2 +- C--Lbl________EVM_InternalOp_CallSixOp_Int_Int_Int_Int_Int_Int: 2 - EVM.delegatecall - EVM.staticcall -- Lbl_________EVM_InternalOp_CallOp_Int_Int_Int_Int_Int_Int_Int: 2 +- C--Lbl_________EVM_InternalOp_CallOp_Int_Int_Int_Int_Int_Int_Int: 2 - EVM.callcode - EVM.call Function equations by term index: -- Lbl#HPEncode(_,_)_SERIALIZATION_Bytes_Bytes_Int: 2 +- F--Lbl#HPEncode(_,_)_SERIALIZATION_Bytes_Bytes_Int: 2 - evm-semantics/serialization.md : (558, 10) - evm-semantics/serialization.md : (561, 10) -- Lbl#abiCallData(_,_)_EVM-ABI_Bytes_String_TypedArgs: evm-semantics/abi.md : (142, 10) -- Lbl#abiEventLog(_,_,_)_EVM-ABI_SubstateLogEntry_Int_String_EventArgs: evm-semantics/abi.md : (790, 10) -- Lbl#addr(_)_EVM-TYPES_Int_Int: evm-semantics/evm-types.md : (401, 10) -- Lbl#addrBytes(_)_SERIALIZATION_Bytes_Account: 2 +- F--Lbl#abiCallData(_,_)_EVM-ABI_Bytes_String_TypedArgs: evm-semantics/abi.md : (142, 10) +- F--Lbl#abiEventLog(_,_,_)_EVM-ABI_SubstateLogEntry_Int_String_EventArgs: evm-semantics/abi.md : (790, 10) +- F--Lbl#addr(_)_EVM-TYPES_Int_Int: evm-semantics/evm-types.md : (401, 10) +- F--Lbl#addrBytes(_)_SERIALIZATION_Bytes_Account: 2 - evm-semantics/serialization.md : (222, 10) - evm-semantics/serialization.md : (223, 10) -- Lbl#addrFromPrivateKey(_)_SERIALIZATION_Int_String: 2 +- F--Lbl#addrFromPrivateKey(_)_SERIALIZATION_Int_String: 2 - evm-semantics/lemmas/lemmas.k : (94, 10) - SERIALIZATION.addrFromPrivateKey -- Lbl#adjustedExpLength(_)_GAS-FEES_Int_Int: 3 +- F--Lbl#adjustedExpLength(_)_GAS-FEES_Int_Int: 3 - evm-semantics/gas.md : (246, 10) - evm-semantics/gas.md : (248, 10) - evm-semantics/gas.md : (247, 10) -- Lbl#adjustedExpLength(_,_,_)_GAS-FEES_Int_Int_Int_Bytes: evm-semantics/gas.md : (244, 10) -- Lbl#alignHexString(_)_SERIALIZATION_String_String: 2 +- F--Lbl#adjustedExpLength(_,_,_)_GAS-FEES_Int_Int_Int_Bytes: evm-semantics/gas.md : (244, 10) +- F--Lbl#alignHexString(_)_SERIALIZATION_String_String: 2 - evm-semantics/serialization.md : (161, 10) - evm-semantics/serialization.md : (162, 10) -- Lbl#allBut64th(_)_GAS-FEES_Gas_Gas: evm-semantics/gas.md : (86, 10) -- Lbl#allBut64th(_)_GAS-FEES_Int_Int: 2 +- F--Lbl#allBut64th(_)_GAS-FEES_Gas_Gas: evm-semantics/gas.md : (86, 10) +- F--Lbl#allBut64th(_)_GAS-FEES_Int_Int: 2 - GAS-FEES.allBut64th.pos - GAS-FEES.allBut64th.neg -- Lbl#asAccount(_)_EVM-TYPES_Account_Bytes: 2 +- F--Lbl#asAccount(_)_EVM-TYPES_Account_Bytes: 2 - evm-semantics/evm-types.md : (355, 10) - evm-semantics/evm-types.md : (356, 10) -- Lbl#asByteStack(_)_EVM-TYPES_Bytes_Int: evm-semantics/evm-types.md : (360, 10) -- Lbl#asInteger(_)_EVM-TYPES_Int_Bytes: evm-semantics/evm-types.md : (351, 10) -- Lbl#asWord(_)_EVM-TYPES_Int_Bytes: evm-semantics/evm-types.md : (347, 10) -- Lbl#asmTxPrefix(_)_EVM-TYPES_TxType_Int: 3 +- F--Lbl#asByteStack(_)_EVM-TYPES_Bytes_Int: evm-semantics/evm-types.md : (360, 10) +- F--Lbl#asInteger(_)_EVM-TYPES_Int_Bytes: evm-semantics/evm-types.md : (351, 10) +- F--Lbl#asWord(_)_EVM-TYPES_Int_Bytes: evm-semantics/evm-types.md : (347, 10) +- F--Lbl#asmTxPrefix(_)_EVM-TYPES_TxType_Int: 3 - evm-semantics/evm-types.md : (455, 10) - evm-semantics/evm-types.md : (456, 10) - evm-semantics/evm-types.md : (457, 10) -- Lbl#blockHashHeaderBaseFeeBytes: evm-semantics/serialization.md : (84, 10) -- Lbl#blockHashHeaderBytes: evm-semantics/serialization.md : (71, 10) -- Lbl#blockHashHeaderWithdrawalsBytes: evm-semantics/serialization.md : (98, 10) -- Lbl#blockhash(_,_,_,_)_EVM_Int_List_Int_Int_Int: 5 +- F--Lbl#blockHashHeaderBaseFeeBytes: evm-semantics/serialization.md : (84, 10) +- F--Lbl#blockHashHeaderBytes: evm-semantics/serialization.md : (71, 10) +- F--Lbl#blockHashHeaderWithdrawalsBytes: evm-semantics/serialization.md : (98, 10) +- F--Lbl#blockhash(_,_,_,_)_EVM_Int_List_Int_Int_Int: 5 - evm-semantics/evm.md : (1003, 10) - evm-semantics/evm.md : (1004, 10) - evm-semantics/evm.md : (1006, 10) - evm-semantics/evm.md : (1005, 10) - evm-semantics/evm.md : (1007, 10) -- Lbl#bloomFilter(_)_EVM_Bytes_List: evm-semantics/evm.md : (682, 10) -- Lbl#bloomFilter(_,_)_EVM_Bytes_List_Int: 3 +- F--Lbl#bloomFilter(_)_EVM_Bytes_List: evm-semantics/evm.md : (682, 10) +- F--Lbl#bloomFilter(_,_)_EVM_Bytes_List_Int: 3 - evm-semantics/evm.md : (684, 10) - evm-semantics/evm.md : (692, 10) - evm-semantics/evm.md : (685, 10) -- Lbl#buf(_,_)_BUF-SYNTAX_Bytes_Int_Int: 2 +- F--Lbl#buf(_,_)_BUF-SYNTAX_Bytes_Int_Int: 2 - evm-semantics/buf.md : (48, 10) - evm-semantics/buf.md : (51, 10) -- Lbl#bufStrict(_,_)_BUF-SYNTAX_Bytes_Int_Int: evm-semantics/buf.md : (45, 10) -- Lbl#byteify(_)_SERIALIZATION_Bytes_Bytes: 2 +- F--Lbl#bufStrict(_,_)_BUF-SYNTAX_Bytes_Int_Int: evm-semantics/buf.md : (45, 10) +- F--Lbl#byteify(_)_SERIALIZATION_Bytes_Bytes: 2 - evm-semantics/serialization.md : (554, 10) - evm-semantics/serialization.md : (550, 10) -- Lbl#changesState(_,_)_EVM_Bool_OpCode_WordStack: 7 +- F--Lbl#changesState(_,_)_EVM_Bool_OpCode_WordStack: 7 - evm-semantics/evm.md : (411, 10) - evm-semantics/evm.md : (415, 10) - evm-semantics/evm.md : (414, 10) @@ -3330,19 +3332,19 @@ Function equations by term index: - evm-semantics/evm.md : (416, 10) - evm-semantics/evm.md : (413, 10) - evm-semantics/evm.md : (417, 10) -- Lbl#cleanBranchMap(_)_SERIALIZATION_Map_Map: evm-semantics/serialization.md : (572, 10) -- Lbl#cleanBranchMapAux(_,_,_)_SERIALIZATION_Map_Map_List_Set: 3 +- F--Lbl#cleanBranchMap(_)_SERIALIZATION_Map_Map: evm-semantics/serialization.md : (572, 10) +- F--Lbl#cleanBranchMapAux(_,_,_)_SERIALIZATION_Map_Map_List_Set: 3 - evm-semantics/serialization.md : (575, 10) - evm-semantics/serialization.md : (574, 10) - evm-semantics/serialization.md : (576, 10) -- Lbl#computeValidJumpDests(_)_EVM_Set_Bytes: evm-semantics/evm.md : (1344, 10) -- Lbl#computeValidJumpDests(_,_,_)_EVM_Set_Bytes_Int_List: 2 +- F--Lbl#computeValidJumpDests(_)_EVM_Set_Bytes: evm-semantics/evm.md : (1344, 10) +- F--Lbl#computeValidJumpDests(_,_,_)_EVM_Set_Bytes_Int_List: 2 - evm-semantics/evm.md : (1349, 10) - evm-semantics/evm.md : (1348, 10) -- Lbl#computeValidJumpDestsWithinBound(_,_,_)_EVM_Set_Bytes_Int_List: 2 +- F--Lbl#computeValidJumpDestsWithinBound(_,_,_)_EVM_Set_Bytes_Int_List: 2 - evm-semantics/evm.md : (1352, 10) - evm-semantics/evm.md : (1351, 10) -- Lbl#dasmOpCode(_,_)_EVM_OpCode_Int_Schedule: 146 +- F--Lbl#dasmOpCode(_,_)_EVM_OpCode_Int_Schedule: 146 - evm-semantics/evm.md : (2219, 10) - evm-semantics/evm.md : (2220, 10) - evm-semantics/evm.md : (2229, 10) @@ -3489,32 +3491,32 @@ Function equations by term index: - evm-semantics/evm.md : (2287, 10) - evm-semantics/evm.md : (2288, 10) - evm-semantics/evm.md : (2364, 10) -- Lbl#dasmTxPrefix(_)_EVM-TYPES_Int_TxType: 3 +- F--Lbl#dasmTxPrefix(_)_EVM-TYPES_Int_TxType: 3 - evm-semantics/evm-types.md : (450, 10) - evm-semantics/evm-types.md : (451, 10) - evm-semantics/evm-types.md : (449, 10) -- Lbl#decodeLengthPrefix(_,_)_SERIALIZATION_LengthPrefix_Bytes_Int: evm-semantics/serialization.md : (408, 10) -- Lbl#decodeLengthPrefix(_,_,_)_SERIALIZATION_LengthPrefix_Bytes_Int_Int: 5 +- F--Lbl#decodeLengthPrefix(_,_)_SERIALIZATION_LengthPrefix_Bytes_Int: evm-semantics/serialization.md : (408, 10) +- F--Lbl#decodeLengthPrefix(_,_,_)_SERIALIZATION_LengthPrefix_Bytes_Int_Int: 5 - evm-semantics/serialization.md : (412, 10) - evm-semantics/serialization.md : (413, 10) - evm-semantics/serialization.md : (411, 10) - evm-semantics/serialization.md : (410, 10) - evm-semantics/serialization.md : (414, 10) -- Lbl#decodeLengthPrefixLength(_,_,_,_)_SERIALIZATION_LengthPrefix_LengthPrefixType_Bytes_Int_Int: 2 +- F--Lbl#decodeLengthPrefixLength(_,_,_,_)_SERIALIZATION_LengthPrefix_LengthPrefixType_Bytes_Int_Int: 2 - evm-semantics/serialization.md : (417, 10) - evm-semantics/serialization.md : (416, 10) -- Lbl#decodeLengthPrefixLength(_,_,_,_)_SERIALIZATION_LengthPrefix_LengthPrefixType_Int_Int_Int: evm-semantics/serialization.md : (418, 10) -- Lbl#drop(_,_)_EVM-TYPES_WordStack_Int_WordStack: 4 +- F--Lbl#decodeLengthPrefixLength(_,_,_,_)_SERIALIZATION_LengthPrefix_LengthPrefixType_Int_Int_Int: evm-semantics/serialization.md : (418, 10) +- F--Lbl#drop(_,_)_EVM-TYPES_WordStack_Int_WordStack: 4 - evm-semantics/evm-types.md : (254, 10) - evm-semantics/evm-types.md : (255, 10) - evm-semantics/evm-types.md : (253, 10) - evm-semantics/evm-types.md : (256, 10) -- Lbl#ecrec(_)_EVM_Bytes_Account: 2 +- F--Lbl#ecrec(_)_EVM_Bytes_Account: 2 - evm-semantics/evm.md : (1699, 10) - evm-semantics/evm.md : (1700, 10) -- Lbl#ecrec(_,_,_,_)_EVM_Bytes_Bytes_Bytes_Bytes_Bytes: EVM.ecrec -- Lbl#emptyContractRLP_SERIALIZATION_Bytes: evm-semantics/serialization.md : (683, 10) -- Lbl#enc(_)_EVM-ABI_Bytes_TypedArg: 101 +- F--Lbl#ecrec(_,_,_,_)_EVM_Bytes_Bytes_Bytes_Bytes_Bytes: EVM.ecrec +- F--Lbl#emptyContractRLP_SERIALIZATION_Bytes: evm-semantics/serialization.md : (683, 10) +- F--Lbl#enc(_)_EVM-ABI_Bytes_TypedArg: 101 - evm-semantics/abi.md : (530, 10) - evm-semantics/abi.md : (631, 10) - evm-semantics/abi.md : (598, 10) @@ -3616,39 +3618,39 @@ Function equations by term index: - evm-semantics/abi.md : (635, 10) - evm-semantics/abi.md : (634, 10) - evm-semantics/abi.md : (636, 10) -- Lbl#encBytes(_,_)_EVM-ABI_Bytes_Int_Bytes: evm-semantics/abi.md : (640, 10) -- Lbl#encodeArgs(_)_EVM-ABI_Bytes_TypedArgs: evm-semantics/abi.md : (271, 10) -- Lbl#encodeArgsAux(_,_,_,_)_EVM-ABI_Bytes_TypedArgs_Int_Bytes_Bytes: 3 +- F--Lbl#encBytes(_,_)_EVM-ABI_Bytes_Int_Bytes: evm-semantics/abi.md : (640, 10) +- F--Lbl#encodeArgs(_)_EVM-ABI_Bytes_TypedArgs: evm-semantics/abi.md : (271, 10) +- F--Lbl#encodeArgsAux(_,_,_,_)_EVM-ABI_Bytes_TypedArgs_Int_Bytes_Bytes: 3 - evm-semantics/abi.md : (273, 10) - evm-semantics/abi.md : (275, 10) - evm-semantics/abi.md : (279, 10) -- Lbl#entriesGE(_,_)_JSON-EXT_JSONs_String_JSONs: 3 +- F--Lbl#entriesGE(_,_)_JSON-EXT_JSONs_String_JSONs: 3 - evm-semantics/json-rpc.md : (54, 10) - evm-semantics/json-rpc.md : (55, 10) - evm-semantics/json-rpc.md : (53, 10) -- Lbl#entriesLT(_,_)_JSON-EXT_JSONs_String_JSONs: 3 +- F--Lbl#entriesLT(_,_)_JSON-EXT_JSONs_String_JSONs: 3 - evm-semantics/json-rpc.md : (50, 10) - evm-semantics/json-rpc.md : (51, 10) - evm-semantics/json-rpc.md : (49, 10) -- Lbl#generateSignature(_,_)_EVM-ABI_String_String_TypedArgs: evm-semantics/abi.md : (151, 10) -- Lbl#generateSignatureArgs(_)_EVM-ABI_String_TypedArgs: 3 +- F--Lbl#generateSignature(_,_)_EVM-ABI_String_String_TypedArgs: evm-semantics/abi.md : (151, 10) +- F--Lbl#generateSignatureArgs(_)_EVM-ABI_String_TypedArgs: 3 - evm-semantics/abi.md : (153, 10) - evm-semantics/abi.md : (155, 10) - evm-semantics/abi.md : (154, 10) -- Lbl#getEventTopics(_,_)_EVM-ABI_List_String_EventArgs: evm-semantics/abi.md : (795, 10) -- Lbl#getIndexedArgs(_)_EVM-ABI_List_EventArgs: 3 +- F--Lbl#getEventTopics(_,_)_EVM-ABI_List_String_EventArgs: evm-semantics/abi.md : (795, 10) +- F--Lbl#getIndexedArgs(_)_EVM-ABI_List_EventArgs: 3 - evm-semantics/abi.md : (809, 10) - evm-semantics/abi.md : (807, 10) - evm-semantics/abi.md : (808, 10) -- Lbl#getNonIndexedArgs(_)_EVM-ABI_TypedArgs_EventArgs: 3 +- F--Lbl#getNonIndexedArgs(_)_EVM-ABI_TypedArgs_EventArgs: 3 - evm-semantics/abi.md : (815, 10) - evm-semantics/abi.md : (813, 10) - evm-semantics/abi.md : (814, 10) -- Lbl#getTypedArgs(_)_EVM-ABI_TypedArgs_EventArgs: 3 +- F--Lbl#getTypedArgs(_)_EVM-ABI_TypedArgs_EventArgs: 3 - evm-semantics/abi.md : (803, 10) - evm-semantics/abi.md : (801, 10) - evm-semantics/abi.md : (802, 10) -- Lbl#getValue(_)_EVM-ABI_Int_TypedArg: 98 +- F--Lbl#getValue(_)_EVM-ABI_Int_TypedArg: 98 - evm-semantics/abi.md : (648, 10) - evm-semantics/abi.md : (646, 10) - evm-semantics/abi.md : (716, 10) @@ -3747,38 +3749,38 @@ Function equations by term index: - evm-semantics/abi.md : (659, 10) - evm-semantics/abi.md : (660, 10) - evm-semantics/abi.md : (661, 10) -- Lbl#hasValidInitCode(_,_)_EVM_Bool_Int_Schedule: evm-semantics/evm.md : (1507, 10) -- Lbl#hashSignedTx(_,_,_,_,_,_,_,_,_)_SERIALIZATION_String_Int_Int_Int_Account_Int_Bytes_Int_Bytes_Bytes: evm-semantics/serialization.md : (119, 10) -- Lbl#hashTxData(_)_SERIALIZATION_String_TxData: 3 +- F--Lbl#hasValidInitCode(_,_)_EVM_Bool_Int_Schedule: evm-semantics/evm.md : (1507, 10) +- F--Lbl#hashSignedTx(_,_,_,_,_,_,_,_,_)_SERIALIZATION_String_Int_Int_Int_Account_Int_Bytes_Int_Bytes_Bytes: evm-semantics/serialization.md : (119, 10) +- F--Lbl#hashTxData(_)_SERIALIZATION_String_TxData: 3 - evm-semantics/serialization.md : (122, 10) - evm-semantics/serialization.md : (124, 10) - evm-semantics/serialization.md : (126, 10) -- Lbl#hashedLocation(_,_,_)_HASHED-LOCATIONS_Int_String_Int_IntList: 4 +- F--Lbl#hashedLocation(_,_,_)_HASHED-LOCATIONS_Int_String_Int_IntList: 4 - evm-semantics/hashed-locations.md : (60, 10) - evm-semantics/hashed-locations.md : (59, 10) - evm-semantics/hashed-locations.md : (64, 10) - evm-semantics/hashed-locations.md : (62, 10) -- Lbl#if_#then_#else_#fi_K-EQUAL-SYNTAX_Sort_Bool_Sort_Sort: 2 +- F--Lbl#if_#then_#else_#fi_K-EQUAL-SYNTAX_Sort_Bool_Sort_Sort: 2 - evm-semantics/builtin/domains.md : (2289, 8) - evm-semantics/builtin/domains.md : (2290, 8) -- Lbl#inStorage(_,_,_)_EVM_Bool_Map_Account_Int: 2 +- F--Lbl#inStorage(_,_,_)_EVM_Bool_Map_Account_Int: 2 - evm-semantics/evm.md : (1850, 10) - evm-semantics/evm.md : (1851, 10) -- Lbl#inStorageAux1(_,_)_EVM_Bool_KItem_Int: 2 +- F--Lbl#inStorageAux1(_,_)_EVM_Bool_KItem_Int: 2 - evm-semantics/evm.md : (1853, 10) - evm-semantics/evm.md : (1854, 10) -- Lbl#inStorageAux2(_,_)_EVM_Bool_Set_Int: 2 +- F--Lbl#inStorageAux2(_,_)_EVM_Bool_Set_Int: 2 - evm-semantics/evm.md : (1856, 10) - evm-semantics/evm.md : (1857, 10) -- Lbl#intMap2StorageMap(_)_SERIALIZATION_Map_Map: evm-semantics/serialization.md : (653, 10) -- Lbl#intMap2StorageMapAux(_,_,_)_SERIALIZATION_Map_Map_Map_List: 3 +- F--Lbl#intMap2StorageMap(_)_SERIALIZATION_Map_Map: evm-semantics/serialization.md : (653, 10) +- F--Lbl#intMap2StorageMapAux(_,_,_)_SERIALIZATION_Map_Map_Map_List: 3 - evm-semantics/serialization.md : (660, 10) - evm-semantics/serialization.md : (656, 10) - evm-semantics/serialization.md : (655, 10) -- Lbl#isPrecompiledAccount(_,_)_EVM_Bool_Int_Schedule: 2 +- F--Lbl#isPrecompiledAccount(_,_)_EVM_Bool_Int_Schedule: 2 - EVM.isPrecompiledAccount.false - EVM.isPrecompiledAccount.true -- Lbl#isStaticType(_)_EVM-ABI_Bool_TypedArg: 101 +- F--Lbl#isStaticType(_)_EVM-ABI_Bool_TypedArg: 101 - evm-semantics/abi.md : (401, 10) - evm-semantics/abi.md : (508, 10) - evm-semantics/abi.md : (502, 10) @@ -3880,13 +3882,13 @@ Function equations by term index: - evm-semantics/abi.md : (425, 10) - evm-semantics/abi.md : (424, 10) - evm-semantics/abi.md : (423, 10) -- Lbl#isValidCode(_,_)_EVM_Bool_Bytes_Schedule: 2 +- F--Lbl#isValidCode(_,_)_EVM_Bool_Bytes_Schedule: 2 - evm-semantics/evm.md : (1511, 10) - evm-semantics/evm.md : (1512, 10) -- Lbl#lambda__: evm-semantics/lemmas/bytes-simplification.k : (173, 9) -- Lbl#lambda__2: evm-semantics/lemmas/bytes-simplification.k : (174, 9) -- Lbl#lambda__3: evm-semantics/lemmas/bytes-simplification.k : (166, 9) -- Lbl#lenOfHead(_)_EVM-ABI_Int_TypedArg: 101 +- F--Lbl#lambda__: evm-semantics/lemmas/bytes-simplification.k : (173, 9) +- F--Lbl#lambda__2: evm-semantics/lemmas/bytes-simplification.k : (174, 9) +- F--Lbl#lambda__3: evm-semantics/lemmas/bytes-simplification.k : (166, 9) +- F--Lbl#lenOfHead(_)_EVM-ABI_Int_TypedArg: 101 - evm-semantics/abi.md : (290, 10) - evm-semantics/abi.md : (397, 10) - evm-semantics/abi.md : (391, 10) @@ -3988,21 +3990,21 @@ Function equations by term index: - evm-semantics/abi.md : (314, 10) - evm-semantics/abi.md : (313, 10) - evm-semantics/abi.md : (312, 10) -- Lbl#lenOfHeads(_)_EVM-ABI_Int_TypedArgs: 2 +- F--Lbl#lenOfHeads(_)_EVM-ABI_Int_TypedArgs: 2 - evm-semantics/abi.md : (285, 10) - evm-semantics/abi.md : (286, 10) -- Lbl#lookup(_,_)_EVM-TYPES_Int_Map_Int: 3 +- F--Lbl#lookup(_,_)_EVM-TYPES_Int_Map_Int: 3 - EVM-TYPES.#lookup.none - EVM-TYPES.#lookup.notInt - EVM-TYPES.#lookup.some -- Lbl#lookupMemory(_,_)_EVM-TYPES_Int_Map_Int: 3 +- F--Lbl#lookupMemory(_,_)_EVM-TYPES_Int_Map_Int: 3 - EVM-TYPES.#lookupMemory.none - EVM-TYPES.#lookupMemory.notInt - EVM-TYPES.#lookupMemory.some -- Lbl#lookupOpCode(_,_,_)_EVM_MaybeOpCode_Bytes_Int_Schedule: 2 +- F--Lbl#lookupOpCode(_,_,_)_EVM_MaybeOpCode_Bytes_Int_Schedule: 2 - evm-semantics/evm.md : (284, 10) - evm-semantics/evm.md : (285, 10) -- Lbl#memory(_,_)_EVM_Int_OpCode_Int: 16 +- F--Lbl#memory(_,_)_EVM_Int_OpCode_Int: 16 - evm-semantics/evm.md : (1872, 10) - evm-semantics/evm.md : (1874, 10) - evm-semantics/evm.md : (1873, 10) @@ -4019,77 +4021,77 @@ Function equations by term index: - evm-semantics/evm.md : (1890, 10) - evm-semantics/evm.md : (1889, 10) - evm-semantics/evm.md : (1892, 10) -- Lbl#memoryUsageUpdate(_,_,_)_EVM_Int_Int_Int_Int: 2 +- F--Lbl#memoryUsageUpdate(_,_,_)_EVM_Int_Int_Int_Int: 2 - evm-semantics/evm.md : (1916, 10) - evm-semantics/evm.md : (1915, 10) -- Lbl#merkleExtensionBrancher(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes_MerkleTree: 2 +- F--Lbl#merkleExtensionBrancher(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes_MerkleTree: 2 - evm-semantics/serialization.md : (615, 10) - evm-semantics/serialization.md : (611, 10) -- Lbl#merkleExtensionBuilder(_,_,_,_,_)_SERIALIZATION_MerkleTree_Bytes_Bytes_String_Bytes_String: 2 +- F--Lbl#merkleExtensionBuilder(_,_,_,_,_)_SERIALIZATION_MerkleTree_Bytes_Bytes_String_Bytes_String: 2 - evm-semantics/serialization.md : (589, 10) - evm-semantics/serialization.md : (594, 10) -- Lbl#merkleExtensionBuilderAux(_,_,_,_,_)_SERIALIZATION_MerkleTree_Bytes_Bytes_String_Bytes_String: 2 +- F--Lbl#merkleExtensionBuilderAux(_,_,_,_,_)_SERIALIZATION_MerkleTree_Bytes_Bytes_String_Bytes_String: 2 - evm-semantics/serialization.md : (598, 10) - evm-semantics/serialization.md : (605, 10) -- Lbl#merkleExtensionSplitter(_,_,_,_,_)_SERIALIZATION_MerkleTree_Bytes_Bytes_MerkleTree_Bytes_String: 4 +- F--Lbl#merkleExtensionSplitter(_,_,_,_,_)_SERIALIZATION_MerkleTree_Bytes_Bytes_MerkleTree_Bytes_String: 4 - evm-semantics/serialization.md : (639, 10) - evm-semantics/serialization.md : (629, 10) - evm-semantics/serialization.md : (635, 10) - evm-semantics/serialization.md : (621, 10) -- Lbl#merkleUpdateBranch(_,_,_,_,_)_SERIALIZATION_MerkleTree_Map_String_Int_Bytes_String: 2 +- F--Lbl#merkleUpdateBranch(_,_,_,_,_)_SERIALIZATION_MerkleTree_Map_String_Int_Bytes_String: 2 - evm-semantics/serialization.md : (580, 10) - evm-semantics/serialization.md : (583, 10) -- Lbl#modexp1(_,_,_,_)_EVM_Bytes_Int_Int_Int_Bytes: 2 +- F--Lbl#modexp1(_,_,_,_)_EVM_Bytes_Int_Int_Int_Bytes: 2 - evm-semantics/evm.md : (1731, 10) - evm-semantics/evm.md : (1732, 10) -- Lbl#modexp2(_,_,_,_)_EVM_Bytes_Int_Int_Int_Bytes: evm-semantics/evm.md : (1733, 10) -- Lbl#modexp3(_,_,_,_)_EVM_Bytes_Int_Int_Int_Bytes: evm-semantics/evm.md : (1734, 10) -- Lbl#modexp4(_,_,_)_EVM_Bytes_Int_Int_Int: evm-semantics/evm.md : (1735, 10) -- Lbl#multComplexity(_)_GAS-FEES_Int_Int: 3 +- F--Lbl#modexp2(_,_,_,_)_EVM_Bytes_Int_Int_Int_Bytes: evm-semantics/evm.md : (1733, 10) +- F--Lbl#modexp3(_,_,_,_)_EVM_Bytes_Int_Int_Int_Bytes: evm-semantics/evm.md : (1734, 10) +- F--Lbl#modexp4(_,_,_)_EVM_Bytes_Int_Int_Int: evm-semantics/evm.md : (1735, 10) +- F--Lbl#multComplexity(_)_GAS-FEES_Int_Int: 3 - evm-semantics/gas.md : (235, 10) - evm-semantics/gas.md : (237, 10) - evm-semantics/gas.md : (236, 10) -- Lbl#nBits(_)_EVM-TYPES_Int_Int: evm-semantics/evm-types.md : (204, 10) -- Lbl#nBytes(_)_EVM-TYPES_Int_Int: evm-semantics/evm-types.md : (205, 10) -- Lbl#newAddr(_,_)_SERIALIZATION_Int_Int_Int: SERIALIZATION.#newAddr -- Lbl#newAddr(_,_,_)_SERIALIZATION_Int_Int_Int_Bytes: SERIALIZATION.#newAddrCreate2 -- Lbl#newMultComplexity(_)_GAS-FEES_Int_Int: evm-semantics/gas.md : (239, 10) -- Lbl#nibbleize(_)_SERIALIZATION_Bytes_Bytes: 2 +- F--Lbl#nBits(_)_EVM-TYPES_Int_Int: evm-semantics/evm-types.md : (204, 10) +- F--Lbl#nBytes(_)_EVM-TYPES_Int_Int: evm-semantics/evm-types.md : (205, 10) +- F--Lbl#newAddr(_,_)_SERIALIZATION_Int_Int_Int: SERIALIZATION.#newAddr +- F--Lbl#newAddr(_,_,_)_SERIALIZATION_Int_Int_Int_Bytes: SERIALIZATION.#newAddrCreate2 +- F--Lbl#newMultComplexity(_)_GAS-FEES_Int_Int: evm-semantics/gas.md : (239, 10) +- F--Lbl#nibbleize(_)_SERIALIZATION_Bytes_Bytes: 2 - evm-semantics/serialization.md : (548, 10) - evm-semantics/serialization.md : (543, 10) -- Lbl#padByte(_)_SERIALIZATION_String_String: 2 +- F--Lbl#padByte(_)_SERIALIZATION_String_String: 2 - evm-semantics/serialization.md : (200, 10) - evm-semantics/serialization.md : (201, 10) -- Lbl#padRightToWidth(_,_)_EVM-TYPES_Bytes_Int_Bytes: 2 +- F--Lbl#padRightToWidth(_,_)_EVM-TYPES_Bytes_Int_Bytes: 2 - evm-semantics/evm-types.md : (373, 10) - evm-semantics/evm-types.md : (374, 10) -- Lbl#padToWidth(_,_)_EVM-TYPES_Bytes_Int_Bytes: 2 +- F--Lbl#padToWidth(_,_)_EVM-TYPES_Bytes_Int_Bytes: 2 - evm-semantics/evm-types.md : (371, 10) - evm-semantics/evm-types.md : (372, 10) -- Lbl#parseAccessListStorageKeys(_)_SERIALIZATION_List_JSONs: evm-semantics/serialization.md : (188, 10) -- Lbl#parseAccessListStorageKeys(_,_)_SERIALIZATION_List_JSONs_List: 2 +- F--Lbl#parseAccessListStorageKeys(_)_SERIALIZATION_List_JSONs: evm-semantics/serialization.md : (188, 10) +- F--Lbl#parseAccessListStorageKeys(_,_)_SERIALIZATION_List_JSONs_List: 2 - evm-semantics/serialization.md : (190, 10) - evm-semantics/serialization.md : (189, 10) -- Lbl#parseAddr(_)_SERIALIZATION_Int_String: evm-semantics/serialization.md : (183, 10) -- Lbl#parseByteStack(_)_SERIALIZATION_Bytes_String: evm-semantics/serialization.md : (168, 10) -- Lbl#parseHexBytes(_)_SERIALIZATION_Bytes_String: evm-semantics/serialization.md : (170, 10) -- Lbl#parseHexBytesAux(_)_SERIALIZATION_Bytes_String: 2 +- F--Lbl#parseAddr(_)_SERIALIZATION_Int_String: evm-semantics/serialization.md : (183, 10) +- F--Lbl#parseByteStack(_)_SERIALIZATION_Bytes_String: evm-semantics/serialization.md : (168, 10) +- F--Lbl#parseHexBytes(_)_SERIALIZATION_Bytes_String: evm-semantics/serialization.md : (170, 10) +- F--Lbl#parseHexBytesAux(_)_SERIALIZATION_Bytes_String: 2 - evm-semantics/serialization.md : (172, 10) - evm-semantics/serialization.md : (171, 10) -- Lbl#parseHexWord(_)_SERIALIZATION_Int_String: 3 +- F--Lbl#parseHexWord(_)_SERIALIZATION_Int_String: 3 - evm-semantics/serialization.md : (153, 10) - evm-semantics/serialization.md : (151, 10) - evm-semantics/serialization.md : (152, 10) -- Lbl#parseMap(_)_SERIALIZATION_Map_JSON: 3 +- F--Lbl#parseMap(_)_SERIALIZATION_Map_JSON: 3 - evm-semantics/serialization.md : (177, 10) - evm-semantics/serialization.md : (178, 10) - evm-semantics/serialization.md : (179, 10) -- Lbl#parseWord(_)_SERIALIZATION_Int_String: 3 +- F--Lbl#parseWord(_)_SERIALIZATION_Int_String: 3 - evm-semantics/serialization.md : (156, 10) - evm-semantics/serialization.md : (155, 10) - evm-semantics/serialization.md : (157, 10) -- Lbl#point(_)_EVM_Bytes_G1Point: evm-semantics/evm.md : (1763, 10) -- Lbl#precompiled(_)_EVM_PrecompiledOp_Int: 9 +- F--Lbl#point(_)_EVM_Bytes_G1Point: evm-semantics/evm.md : (1763, 10) +- F--Lbl#precompiled(_)_EVM_PrecompiledOp_Int: 9 - evm-semantics/evm.md : (1655, 10) - evm-semantics/evm.md : (1656, 10) - evm-semantics/evm.md : (1657, 10) @@ -4099,7 +4101,7 @@ Function equations by term index: - evm-semantics/evm.md : (1661, 10) - evm-semantics/evm.md : (1662, 10) - evm-semantics/evm.md : (1663, 10) -- Lbl#precompiledAccounts(_)_EVM_Set_Schedule: 13 +- F--Lbl#precompiledAccounts(_)_EVM_Set_Schedule: 13 - evm-semantics/evm.md : (1676, 10) - evm-semantics/evm.md : (1672, 10) - evm-semantics/evm.md : (1673, 10) @@ -4113,91 +4115,91 @@ Function equations by term index: - evm-semantics/evm.md : (1679, 10) - evm-semantics/evm.md : (1671, 10) - evm-semantics/evm.md : (1670, 10) -- Lbl#precompiledAccountsMap(_)_SERIALIZATION_Map_Set: evm-semantics/serialization.md : (676, 10) -- Lbl#precompiledAccountsMapAux(_,_)_SERIALIZATION_Map_List_Map: 2 +- F--Lbl#precompiledAccountsMap(_)_SERIALIZATION_Map_Set: evm-semantics/serialization.md : (676, 10) +- F--Lbl#precompiledAccountsMapAux(_,_)_SERIALIZATION_Map_List_Map: 2 - evm-semantics/serialization.md : (678, 10) - evm-semantics/serialization.md : (679, 10) -- Lbl#range(_,_,_)_EVM-TYPES_Bytes_Bytes_Int_Int: 3 +- F--Lbl#range(_,_,_)_EVM-TYPES_Bytes_Bytes_Int_Int: 3 - EVM-TYPES.bytesRange - evm-semantics/evm-types.md : (364, 25) - evm-semantics/evm-types.md : (366, 25) -- Lbl#replicate(_,_)_EVM-TYPES_WordStack_Int_Int: evm-semantics/evm-types.md : (303, 10) -- Lbl#replicateAux(_,_,_)_EVM-TYPES_WordStack_Int_Int_WordStack: 2 +- F--Lbl#replicate(_,_)_EVM-TYPES_WordStack_Int_Int: evm-semantics/evm-types.md : (303, 10) +- F--Lbl#replicateAux(_,_,_)_EVM-TYPES_WordStack_Int_Int_WordStack: 2 - evm-semantics/evm-types.md : (304, 10) - evm-semantics/evm-types.md : (305, 10) -- Lbl#rlpDecode(_)_SERIALIZATION_JSON_Bytes: evm-semantics/serialization.md : (390, 10) -- Lbl#rlpDecode(_,_)_SERIALIZATION_JSON_Bytes_LengthPrefix: 2 +- F--Lbl#rlpDecode(_)_SERIALIZATION_JSON_Bytes: evm-semantics/serialization.md : (390, 10) +- F--Lbl#rlpDecode(_,_)_SERIALIZATION_JSON_Bytes_LengthPrefix: 2 - evm-semantics/serialization.md : (392, 10) - evm-semantics/serialization.md : (391, 10) -- Lbl#rlpDecodeList(_,_)_SERIALIZATION_JSONs_Bytes_Int: 2 +- F--Lbl#rlpDecodeList(_,_)_SERIALIZATION_JSONs_Bytes_Int: 2 - evm-semantics/serialization.md : (397, 10) - evm-semantics/serialization.md : (398, 10) -- Lbl#rlpDecodeList(_,_,_)_SERIALIZATION_JSONs_Bytes_Int_LengthPrefix: evm-semantics/serialization.md : (399, 10) -- Lbl#rlpDecodeTransaction(_)_SERIALIZATION_JSONs_Bytes: evm-semantics/serialization.md : (422, 10) -- Lbl#rlpEncode(_)_SERIALIZATION_Bytes_JSON: evm-semantics/serialization.md : (268, 10) -- Lbl#rlpEncode(_,_)_SERIALIZATION_Bytes_JSONs_StringBuffer: 5 +- F--Lbl#rlpDecodeList(_,_,_)_SERIALIZATION_JSONs_Bytes_Int_LengthPrefix: evm-semantics/serialization.md : (399, 10) +- F--Lbl#rlpDecodeTransaction(_)_SERIALIZATION_JSONs_Bytes: evm-semantics/serialization.md : (422, 10) +- F--Lbl#rlpEncode(_)_SERIALIZATION_Bytes_JSON: evm-semantics/serialization.md : (268, 10) +- F--Lbl#rlpEncode(_,_)_SERIALIZATION_Bytes_JSONs_StringBuffer: 5 - evm-semantics/serialization.md : (270, 10) - evm-semantics/serialization.md : (274, 10) - evm-semantics/serialization.md : (273, 10) - evm-semantics/serialization.md : (271, 10) - evm-semantics/serialization.md : (272, 10) -- Lbl#rlpEncodeAddress(_)_SERIALIZATION_Bytes_Account: evm-semantics/serialization.md : (259, 10) -- Lbl#rlpEncodeBytes(_)_SERIALIZATION_Bytes_Bytes: 3 +- F--Lbl#rlpEncodeAddress(_)_SERIALIZATION_Bytes_Account: evm-semantics/serialization.md : (259, 10) +- F--Lbl#rlpEncodeBytes(_)_SERIALIZATION_Bytes_Bytes: 3 - evm-semantics/serialization.md : (264, 10) - evm-semantics/serialization.md : (263, 10) - evm-semantics/serialization.md : (265, 10) -- Lbl#rlpEncodeFullAccount(_,_,_,_)_SERIALIZATION_Bytes_Int_Int_Map_Bytes: SERIALIZATION.rlpAcct -- Lbl#rlpEncodeInt(_)_SERIALIZATION_Bytes_Int: 3 +- F--Lbl#rlpEncodeFullAccount(_,_,_,_)_SERIALIZATION_Bytes_Int_Int_Map_Bytes: SERIALIZATION.rlpAcct +- F--Lbl#rlpEncodeInt(_)_SERIALIZATION_Bytes_Int: 3 - evm-semantics/serialization.md : (254, 10) - evm-semantics/serialization.md : (255, 10) - evm-semantics/serialization.md : (253, 10) -- Lbl#rlpEncodeLength(_,_)_SERIALIZATION_Bytes_Bytes_Int: 2 +- F--Lbl#rlpEncodeLength(_,_)_SERIALIZATION_Bytes_Bytes_Int: 2 - evm-semantics/serialization.md : (280, 10) - evm-semantics/serialization.md : (279, 10) -- Lbl#rlpEncodeLength(_,_,_)_SERIALIZATION_Bytes_Bytes_Int_Bytes: evm-semantics/serialization.md : (281, 10) -- Lbl#rlpEncodeLogs(_)_SERIALIZATION_Bytes_List: evm-semantics/serialization.md : (306, 10) -- Lbl#rlpEncodeLogsAux(_,_)_SERIALIZATION_Bytes_List_StringBuffer: 2 +- F--Lbl#rlpEncodeLength(_,_,_)_SERIALIZATION_Bytes_Bytes_Int_Bytes: evm-semantics/serialization.md : (281, 10) +- F--Lbl#rlpEncodeLogs(_)_SERIALIZATION_Bytes_List: evm-semantics/serialization.md : (306, 10) +- F--Lbl#rlpEncodeLogsAux(_,_)_SERIALIZATION_Bytes_List_StringBuffer: 2 - evm-semantics/serialization.md : (308, 10) - evm-semantics/serialization.md : (309, 10) -- Lbl#rlpEncodeMerkleTree(_)_SERIALIZATION_Bytes_MerkleTree: 4 +- F--Lbl#rlpEncodeMerkleTree(_)_SERIALIZATION_Bytes_MerkleTree: 4 - evm-semantics/serialization.md : (340, 10) - evm-semantics/serialization.md : (354, 10) - evm-semantics/serialization.md : (348, 10) - evm-semantics/serialization.md : (342, 10) -- Lbl#rlpEncodeReceipt(_,_,_,_)_SERIALIZATION_Bytes_Int_Int_Bytes_List: SERIALIZATION.rlpReceipt -- Lbl#rlpEncodeString(_)_SERIALIZATION_Bytes_String: evm-semantics/serialization.md : (261, 10) -- Lbl#rlpEncodeTopics(_,_)_SERIALIZATION_Bytes_List_StringBuffer: 2 +- F--Lbl#rlpEncodeReceipt(_,_,_,_)_SERIALIZATION_Bytes_Int_Int_Bytes_List: SERIALIZATION.rlpReceipt +- F--Lbl#rlpEncodeString(_)_SERIALIZATION_Bytes_String: evm-semantics/serialization.md : (261, 10) +- F--Lbl#rlpEncodeTopics(_,_)_SERIALIZATION_Bytes_List_StringBuffer: 2 - evm-semantics/serialization.md : (319, 10) - evm-semantics/serialization.md : (320, 10) -- Lbl#rlpEncodeTxData(_)_SERIALIZATION_Bytes_TxData: 4 +- F--Lbl#rlpEncodeTxData(_)_SERIALIZATION_Bytes_TxData: 4 - evm-semantics/serialization.md : (332, 10) - evm-semantics/serialization.md : (335, 10) - evm-semantics/serialization.md : (329, 10) - evm-semantics/serialization.md : (326, 10) -- Lbl#rlpEncodeWord(_)_SERIALIZATION_Bytes_Int: evm-semantics/serialization.md : (257, 10) -- Lbl#rlpMerkleH(_)_SERIALIZATION_Bytes_Bytes: 2 +- F--Lbl#rlpEncodeWord(_)_SERIALIZATION_Bytes_Int: evm-semantics/serialization.md : (257, 10) +- F--Lbl#rlpMerkleH(_)_SERIALIZATION_Bytes_Bytes: 2 - evm-semantics/serialization.md : (376, 10) - evm-semantics/serialization.md : (373, 10) -- Lbl#sender(_)_SERIALIZATION_Account_Bytes: 2 +- F--Lbl#sender(_)_SERIALIZATION_Account_Bytes: 2 - evm-semantics/serialization.md : (54, 10) - evm-semantics/serialization.md : (53, 10) -- Lbl#sender(_,_,_,_)_SERIALIZATION_Account_Bytes_Int_Bytes_Bytes: evm-semantics/serialization.md : (51, 10) -- Lbl#sender(_,_,_,_)_SERIALIZATION_Account_TxData_Int_Bytes_Bytes: 2 +- F--Lbl#sender(_,_,_,_)_SERIALIZATION_Account_Bytes_Int_Bytes_Bytes: evm-semantics/serialization.md : (51, 10) +- F--Lbl#sender(_,_,_,_)_SERIALIZATION_Account_TxData_Int_Bytes_Bytes: 2 - evm-semantics/serialization.md : (47, 10) - evm-semantics/serialization.md : (44, 10) -- Lbl#signatureCallData(_,_)_EVM-ABI_Bytes_String_TypedArgs: evm-semantics/abi.md : (146, 10) -- Lbl#sizeOfDynamicType(_)_EVM-ABI_Int_TypedArg: 3 +- F--Lbl#signatureCallData(_,_)_EVM-ABI_Bytes_String_TypedArgs: evm-semantics/abi.md : (146, 10) +- F--Lbl#sizeOfDynamicType(_)_EVM-ABI_Int_TypedArg: 3 - evm-semantics/abi.md : (517, 10) - evm-semantics/abi.md : (514, 10) - evm-semantics/abi.md : (512, 10) -- Lbl#sizeOfDynamicTypeAux(_)_EVM-ABI_Int_TypedArgs: 2 +- F--Lbl#sizeOfDynamicTypeAux(_)_EVM-ABI_Int_TypedArgs: 2 - evm-semantics/abi.md : (525, 10) - evm-semantics/abi.md : (522, 10) -- Lbl#sizeWordStack(_)_EVM-TYPES_Int_WordStack: evm-semantics/evm-types.md : (286, 10) -- Lbl#sizeWordStack(_,_)_EVM-TYPES_Int_WordStack_Int: 2 +- F--Lbl#sizeWordStack(_)_EVM-TYPES_Int_WordStack: evm-semantics/evm-types.md : (286, 10) +- F--Lbl#sizeWordStack(_,_)_EVM-TYPES_Int_WordStack_Int: 2 - evm-semantics/evm-types.md : (287, 10) - evm-semantics/evm-types.md : (288, 10) -- Lbl#stackAdded(_)_EVM_Int_OpCode: 21 +- F--Lbl#stackAdded(_)_EVM_Int_OpCode: 21 - evm-semantics/evm.md : (395, 10) - evm-semantics/evm.md : (376, 10) - evm-semantics/evm.md : (378, 10) @@ -4219,8 +4221,8 @@ Function equations by term index: - evm-semantics/evm.md : (387, 10) - evm-semantics/evm.md : (393, 10) - evm-semantics/evm.md : (396, 10) -- Lbl#stackDelta(_)_EVM_Int_OpCode: evm-semantics/evm.md : (400, 10) -- Lbl#stackNeeded(_)_EVM_Int_OpCode: 12 +- F--Lbl#stackDelta(_)_EVM_Int_OpCode: evm-semantics/evm.md : (400, 10) +- F--Lbl#stackNeeded(_)_EVM_Int_OpCode: 12 - evm-semantics/evm.md : (365, 10) - evm-semantics/evm.md : (372, 10) - evm-semantics/evm.md : (371, 10) @@ -4233,12 +4235,12 @@ Function equations by term index: - evm-semantics/evm.md : (368, 10) - evm-semantics/evm.md : (370, 10) - evm-semantics/evm.md : (369, 10) -- Lbl#storageRoot(_)_SERIALIZATION_MerkleTree_Map: evm-semantics/serialization.md : (667, 10) -- Lbl#take(_,_)_EVM-TYPES_WordStack_Int_WordStack: 3 +- F--Lbl#storageRoot(_)_SERIALIZATION_MerkleTree_Map: evm-semantics/serialization.md : (667, 10) +- F--Lbl#take(_,_)_EVM-TYPES_WordStack_Int_WordStack: 3 - EVM-TYPES.#take.zero-pad - EVM-TYPES.#take.base - EVM-TYPES.#take.recursive -- Lbl#typeName(_)_EVM-ABI_String_TypedArg: 101 +- F--Lbl#typeName(_)_EVM-ABI_String_TypedArg: 101 - evm-semantics/abi.md : (159, 10) - evm-semantics/abi.md : (266, 10) - evm-semantics/abi.md : (260, 10) @@ -4340,16 +4342,16 @@ Function equations by term index: - evm-semantics/abi.md : (183, 10) - evm-semantics/abi.md : (182, 10) - evm-semantics/abi.md : (181, 10) -- Lbl#unparseData(_,_)_SERIALIZATION_String_Int_Int: evm-semantics/serialization.md : (210, 10) -- Lbl#unparseDataBytes(_)_SERIALIZATION_String_Bytes: evm-semantics/serialization.md : (212, 10) -- Lbl#unparseQuantity(_)_SERIALIZATION_String_Int: evm-semantics/serialization.md : (205, 10) -- Lbl#usesAccessList(_)_EVM_Bool_OpCode: 5 +- F--Lbl#unparseData(_,_)_SERIALIZATION_String_Int_Int: evm-semantics/serialization.md : (210, 10) +- F--Lbl#unparseDataBytes(_)_SERIALIZATION_String_Bytes: evm-semantics/serialization.md : (212, 10) +- F--Lbl#unparseQuantity(_)_SERIALIZATION_String_Int: evm-semantics/serialization.md : (205, 10) +- F--Lbl#usesAccessList(_)_EVM_Bool_OpCode: 5 - evm-semantics/evm.md : (1925, 10) - evm-semantics/evm.md : (1926, 10) - evm-semantics/evm.md : (1927, 10) - evm-semantics/evm.md : (1928, 10) - evm-semantics/evm.md : (1929, 10) -- Lbl#usesMemory(_)_EVM_Bool_OpCode: 16 +- F--Lbl#usesMemory(_)_EVM_Bool_OpCode: 16 - evm-semantics/evm.md : (1897, 10) - evm-semantics/evm.md : (1896, 10) - evm-semantics/evm.md : (1898, 10) @@ -4366,73 +4368,73 @@ Function equations by term index: - evm-semantics/evm.md : (1910, 10) - evm-semantics/evm.md : (1902, 10) - evm-semantics/evm.md : (1911, 10) -- Lbl#widthOp(_)_EVM_Int_OpCode: 2 +- F--Lbl#widthOp(_)_EVM_Int_OpCode: 2 - evm-semantics/evm.md : (518, 10) - evm-semantics/evm.md : (519, 10) -- Lbl#widthOpCode(_)_EVM_Int_Int: 2 +- F--Lbl#widthOpCode(_)_EVM_Int_Int: 2 - evm-semantics/evm.md : (1358, 10) - evm-semantics/evm.md : (1359, 10) -- Lbl#wordBytes(_)_SERIALIZATION_Bytes_Int: evm-semantics/serialization.md : (224, 10) -- Lbl#write(_,_,_)_EVM-TYPES_Bytes_Bytes_Int_Int: evm-semantics/evm-types.md : (326, 10) -- Lbl.StringBuffer_STRING-BUFFER-IN-K_StringBuffer: evm-semantics/builtin/domains.md : (1936, 8) -- LblAccountCellMapKey: UNKNOWN -- LblBool2String(_)_STRING-COMMON_String_Bool: 2 +- F--Lbl#wordBytes(_)_SERIALIZATION_Bytes_Int: evm-semantics/serialization.md : (224, 10) +- F--Lbl#write(_,_,_)_EVM-TYPES_Bytes_Bytes_Int_Int: evm-semantics/evm-types.md : (326, 10) +- F--Lbl.StringBuffer_STRING-BUFFER-IN-K_StringBuffer: evm-semantics/builtin/domains.md : (1936, 8) +- F--LblAccountCellMapKey: UNKNOWN +- F--LblBool2String(_)_STRING-COMMON_String_Bool: 2 - evm-semantics/builtin/domains.md : (1764, 8) - evm-semantics/builtin/domains.md : (1763, 8) -- LblCaddraccess(_,_)_GAS-FEES_Int_Schedule_Bool: GAS-FEES.Caddraccess -- LblCbalance(_)_GAS-FEES_Int_Schedule: 2 +- F--LblCaddraccess(_,_)_GAS-FEES_Int_Schedule_Bool: GAS-FEES.Caddraccess +- F--LblCbalance(_)_GAS-FEES_Int_Schedule: 2 - GAS-FEES.Cbalance.old - GAS-FEES.Cbalance.new -- LblCextcodecopy(_,_)_GAS-FEES_Int_Schedule_Int: 2 +- F--LblCextcodecopy(_,_)_GAS-FEES_Int_Schedule_Int: 2 - GAS-FEES.Cextcodecopy.new - GAS-FEES.Cextcodecopy.old -- LblCextcodehash(_)_GAS-FEES_Int_Schedule: 2 +- F--LblCextcodehash(_)_GAS-FEES_Int_Schedule: 2 - GAS-FEES.Cextcodehash.old - GAS-FEES.Cextcodehash.new -- LblCextcodesize(_)_GAS-FEES_Int_Schedule: 2 +- F--LblCextcodesize(_)_GAS-FEES_Int_Schedule: 2 - GAS-FEES.Cextcodesize.old - GAS-FEES.Cextcodesize.new -- LblCextra(_,_,_,_)_GAS-FEES_Int_Schedule_Bool_Int_Bool: 2 +- F--LblCextra(_,_,_,_)_GAS-FEES_Int_Schedule_Bool_Int_Bool: 2 - GAS-FEES.Cextra.new - GAS-FEES.Cextra.old -- LblCgascap(_,_,_,_)_GAS-FEES_Gas_Schedule_Gas_Gas_Int: evm-semantics/gas.md : (129, 10) -- LblCgascap(_,_,_,_)_GAS-FEES_Int_Schedule_Int_Int_Int: GAS-FEES.Cgascap -- LblCinitcode(_,_)_GAS-FEES_Int_Schedule_Int: 2 +- F--LblCgascap(_,_,_,_)_GAS-FEES_Gas_Schedule_Gas_Gas_Int: evm-semantics/gas.md : (129, 10) +- F--LblCgascap(_,_,_,_)_GAS-FEES_Int_Schedule_Int_Int_Int: GAS-FEES.Cgascap +- F--LblCinitcode(_,_)_GAS-FEES_Int_Schedule_Int: 2 - GAS-FEES.Cinitcode.new - GAS-FEES.Cinitcode.old -- LblCmem(_,_)_GAS-FEES_Int_Schedule_Int: GAS-FEES.Cmem -- LblCmodexp(_,_,_,_,_)_GAS-FEES_Int_Schedule_Bytes_Int_Int_Int: 2 +- F--LblCmem(_,_)_GAS-FEES_Int_Schedule_Int: GAS-FEES.Cmem +- F--LblCmodexp(_,_,_,_,_)_GAS-FEES_Int_Schedule_Bytes_Int_Int_Int: 2 - GAS-FEES.Cmodexp.old - GAS-FEES.Cmodexp.new -- LblCnew(_,_,_)_GAS-FEES_Int_Schedule_Bool_Int: GAS-FEES.Cnew -- LblCsload(_,_)_GAS-FEES_Int_Schedule_Bool: 2 +- F--LblCnew(_,_,_)_GAS-FEES_Int_Schedule_Bool_Int: GAS-FEES.Cnew +- F--LblCsload(_,_)_GAS-FEES_Int_Schedule_Bool: 2 - GAS-FEES.Csload.new - GAS-FEES.Csload.old -- LblCsstore(_,_,_,_)_GAS-FEES_Int_Schedule_Int_Int_Int: 2 +- F--LblCsstore(_,_,_,_)_GAS-FEES_Int_Schedule_Int_Int_Int: 2 - GAS-FEES.Csstore.new - GAS-FEES.Csstore.old -- LblCstorageaccess(_,_)_GAS-FEES_Int_Schedule_Bool: GAS-FEES.Cstorageaccess -- LblCxfer(_,_)_GAS-FEES_Int_Schedule_Int: 2 +- F--LblCstorageaccess(_,_)_GAS-FEES_Int_Schedule_Bool: GAS-FEES.Cstorageaccess +- F--LblCxfer(_,_)_GAS-FEES_Int_Schedule_Int: 2 - GAS-FEES.Cxfer.some - GAS-FEES.Cxfer.none -- LblG*(_,_,_,_)_GAS-FEES_Gas_Gas_Int_Int_Schedule: evm-semantics/gas.md : (230, 10) -- LblG0(_,_,_)_GAS-FEES_Int_Schedule_Bytes_Bool: 2 +- F--LblG*(_,_,_,_)_GAS-FEES_Gas_Gas_Int_Int_Schedule: evm-semantics/gas.md : (230, 10) +- F--LblG0(_,_,_)_GAS-FEES_Int_Schedule_Bytes_Bool: 2 - evm-semantics/gas.md : (222, 10) - evm-semantics/gas.md : (223, 10) -- LblG0(_,_,_,_,_)_GAS-FEES_Int_Schedule_Bytes_Int_Int_Int: 2 +- F--LblG0(_,_,_,_,_)_GAS-FEES_Int_Schedule_Bytes_Int_Int_Int: 2 - evm-semantics/gas.md : (225, 10) - evm-semantics/gas.md : (226, 10) -- LblHPEncodeAux(_)_SERIALIZATION_Int_Int: 2 +- F--LblHPEncodeAux(_)_SERIALIZATION_Int_Int: 2 - evm-semantics/serialization.md : (566, 10) - evm-semantics/serialization.md : (567, 10) -- LblInt2Bytes(_,_,_)_BYTES-HOOKED_Bytes_Int_Endianness_Signedness: 5 +- F--LblInt2Bytes(_,_,_)_BYTES-HOOKED_Bytes_Int_Endianness_Signedness: 5 - evm-semantics/builtin/domains.md : (2191, 8) - evm-semantics/builtin/domains.md : (2187, 8) - evm-semantics/builtin/domains.md : (2189, 8) - evm-semantics/builtin/domains.md : (2184, 8) - evm-semantics/builtin/domains.md : (2186, 8) -- LblM3:2048(_)_EVM_Int_Bytes: evm-semantics/evm.md : (700, 10) -- LblMerkleCheck(_)_SERIALIZATION_MerkleTree_MerkleTree: 8 +- F--LblM3:2048(_)_EVM_Int_Bytes: evm-semantics/evm.md : (700, 10) +- F--LblMerkleCheck(_)_SERIALIZATION_MerkleTree_MerkleTree: 8 - evm-semantics/serialization.md : (516, 10) - evm-semantics/serialization.md : (514, 10) - evm-semantics/serialization.md : (515, 10) @@ -4441,7 +4443,7 @@ Function equations by term index: - evm-semantics/serialization.md : (518, 10) - evm-semantics/serialization.md : (512, 10) - evm-semantics/serialization.md : (510, 10) -- LblMerkleDelete(_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes: 8 +- F--LblMerkleDelete(_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes: 8 - evm-semantics/serialization.md : (492, 10) - evm-semantics/serialization.md : (503, 10) - evm-semantics/serialization.md : (497, 10) @@ -4450,8 +4452,8 @@ Function equations by term index: - evm-semantics/serialization.md : (502, 10) - evm-semantics/serialization.md : (498, 10) - evm-semantics/serialization.md : (494, 10) -- LblMerkleMapRLP(_,_)_SERIALIZATION_Bytes_Map_Int: evm-semantics/serialization.md : (369, 10) -- LblMerklePut(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes_String: 9 +- F--LblMerkleMapRLP(_,_)_SERIALIZATION_Bytes_Map_Int: evm-semantics/serialization.md : (369, 10) +- F--LblMerklePut(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes_String: 9 - evm-semantics/serialization.md : (450, 10) - evm-semantics/serialization.md : (488, 10) - evm-semantics/serialization.md : (484, 10) @@ -4461,19 +4463,19 @@ Function equations by term index: - evm-semantics/serialization.md : (462, 10) - evm-semantics/serialization.md : (456, 10) - evm-semantics/serialization.md : (452, 10) -- LblMerkleUpdate(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes_String: 2 +- F--LblMerkleUpdate(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Bytes_String: 2 - evm-semantics/serialization.md : (447, 10) - evm-semantics/serialization.md : (448, 10) -- LblMerkleUpdate(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_String_String: evm-semantics/serialization.md : (445, 10) -- LblMerkleUpdateMap(_,_)_SERIALIZATION_MerkleTree_MerkleTree_Map: evm-semantics/serialization.md : (529, 10) -- LblMerkleUpdateMapAux(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Map_List: 2 +- F--LblMerkleUpdate(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_String_String: evm-semantics/serialization.md : (445, 10) +- F--LblMerkleUpdateMap(_,_)_SERIALIZATION_MerkleTree_MerkleTree_Map: evm-semantics/serialization.md : (529, 10) +- F--LblMerkleUpdateMapAux(_,_,_)_SERIALIZATION_MerkleTree_MerkleTree_Map_List: 2 - evm-semantics/serialization.md : (532, 10) - evm-semantics/serialization.md : (531, 10) -- LblMessageCellMapKey: UNKNOWN -- LblRsstore(_,_,_,_)_GAS-FEES_Int_Schedule_Int_Int_Int: 2 +- F--LblMessageCellMapKey: UNKNOWN +- F--LblRsstore(_,_,_,_)_GAS-FEES_Int_Schedule_Int_Int_Int: 2 - GAS-FEES.Rsstore.new - GAS-FEES.Rsstore.old -- LblStatusCode2String(_)_NETWORK_String_StatusCode: 19 +- F--LblStatusCode2String(_)_NETWORK_String_StatusCode: 19 - evm-semantics/network.md : (96, 10) - evm-semantics/network.md : (95, 10) - evm-semantics/network.md : (94, 10) @@ -4493,59 +4495,59 @@ Function equations by term index: - evm-semantics/network.md : (59, 10) - evm-semantics/network.md : (76, 10) - evm-semantics/network.md : (52, 10) -- LblString2Bool(_)_STRING-COMMON_Bool_String: 2 +- F--LblString2Bool(_)_STRING-COMMON_Bool_String: 2 - evm-semantics/builtin/domains.md : (1770, 8) - evm-semantics/builtin/domains.md : (1769, 8) -- LblStringBuffer2String(_)_STRING-BUFFER-IN-K_String_StringBuffer: evm-semantics/builtin/domains.md : (1937, 8) -- LblWordStack2List(_)_EVM-TYPES_List_WordStack: 2 +- F--LblStringBuffer2String(_)_STRING-BUFFER-IN-K_String_StringBuffer: evm-semantics/builtin/domains.md : (1937, 8) +- F--LblWordStack2List(_)_EVM-TYPES_List_WordStack: 2 - evm-semantics/evm-types.md : (313, 10) - evm-semantics/evm-types.md : (314, 10) -- Lbl_%Word__EVM-TYPES_Int_Int_Int: 2 +- F--Lbl_%Word__EVM-TYPES_Int_Int_Int: 2 - evm-semantics/evm-types.md : (100, 10) - evm-semantics/evm-types.md : (99, 11) -- Lbl_%sWord__EVM-TYPES_Int_Int_Int: 2 +- F--Lbl_%sWord__EVM-TYPES_Int_Int_Int: 2 - EVM-TYPES.modSWord.pos - EVM-TYPES.modSWord.neg -- Lbl_&Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (173, 10) -- Lbl_*Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 +- F--Lbl_&Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (173, 10) +- F--Lbl_*Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 - evm-semantics/gas.md : (72, 10) - evm-semantics/gas.md : (64, 10) - evm-semantics/gas.md : (68, 15) - evm-semantics/gas.md : (34, 10) -- Lbl_*Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (96, 10) -- Lbl_+Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 +- F--Lbl_*Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (96, 10) +- F--Lbl_+Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 - evm-semantics/gas.md : (70, 10) - evm-semantics/gas.md : (62, 10) - evm-semantics/gas.md : (66, 15) - evm-semantics/gas.md : (36, 10) -- Lbl_+JSONs__JSON-EXT_JSONs_JSONs_JSONs: 2 +- F--Lbl_+JSONs__JSON-EXT_JSONs_JSONs_JSONs: 2 - evm-semantics/json-rpc.md : (26, 10) - evm-semantics/json-rpc.md : (27, 10) -- Lbl_+String__STRING-BUFFER-IN-K_StringBuffer_StringBuffer_String: evm-semantics/builtin/domains.md : (1935, 8) -- Lbl_+Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (94, 10) -- Lbl_-Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 +- F--Lbl_+String__STRING-BUFFER-IN-K_StringBuffer_StringBuffer_String: evm-semantics/builtin/domains.md : (1935, 8) +- F--Lbl_+Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (94, 10) +- F--Lbl_-Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 - evm-semantics/gas.md : (71, 10) - evm-semantics/gas.md : (63, 10) - evm-semantics/gas.md : (67, 15) - evm-semantics/gas.md : (37, 10) -- Lbl_-Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (95, 10) -- Lbl_/Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 +- F--Lbl_-Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (95, 10) +- F--Lbl_/Gas__GAS-SYNTAX_Gas_Gas_Gas: 4 - evm-semantics/gas.md : (73, 10) - evm-semantics/gas.md : (65, 10) - evm-semantics/gas.md : (69, 15) - evm-semantics/gas.md : (35, 10) -- Lbl_/Word__EVM-TYPES_Int_Int_Int: 2 +- F--Lbl_/Word__EVM-TYPES_Int_Int_Int: 2 - evm-semantics/evm-types.md : (98, 10) - evm-semantics/evm-types.md : (97, 11) -- Lbl_/sWord__EVM-TYPES_Int_Int_Int: 2 +- F--Lbl_/sWord__EVM-TYPES_Int_Int_Int: 2 - EVM-TYPES.divSWord.diff - EVM-TYPES.divSWord.same -- Lbl_:__EVM-TYPES_Bytes_Int_Bytes: evm-semantics/evm-types.md : (238, 10) -- Lbl_<>_SCHEDULE_Bool_ScheduleFlag_Schedule: 56 +- F--Lbl_<<_>>_SCHEDULE_Bool_ScheduleFlag_Schedule: 56 - evm-semantics/schedule.md : (206, 10) - evm-semantics/schedule.md : (190, 10) - evm-semantics/schedule.md : (315, 10) @@ -4602,16 +4604,16 @@ Function equations by term index: - evm-semantics/schedule.md : (189, 10) - evm-semantics/schedule.md : (130, 10) - evm-semantics/schedule.md : (205, 10) -- Lbl_<=Gas__GAS-SYNTAX_Bool_Gas_Gas: 2 +- F--Lbl_<=Gas__GAS-SYNTAX_Bool_Gas_Gas: 2 - evm-semantics/gas.md : (77, 10) - evm-semantics/gas.md : (40, 10) -- Lbl_<=String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1863, 8) -- Lbl_<=Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (142, 10) -- Lbl__SCHEDULE_Int_ScheduleConst_Schedule: 97 +- F--Lbl__SCHEDULE_Int_ScheduleConst_Schedule: 97 - evm-semantics/schedule.md : (303, 10) - evm-semantics/schedule.md : (216, 10) - evm-semantics/schedule.md : (232, 10) @@ -4709,1323 +4711,1323 @@ Function equations by term index: - evm-semantics/schedule.md : (200, 10) - evm-semantics/schedule.md : (360, 10) - evm-semantics/schedule.md : (122, 10) -- Lbl_=/=Bool_: evm-semantics/builtin/domains.md : (1150, 8) -- Lbl_=/=Int_: evm-semantics/builtin/domains.md : (1429, 8) -- Lbl_=/=K_: evm-semantics/builtin/domains.md : (2287, 8) -- Lbl_=/=String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1843, 8) -- Lbl_==Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (144, 10) -- Lbl_>=String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1865, 8) -- Lbl_>=Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (143, 10) -- Lbl_>>Byte__WORD_Int_Int_Int: evm-semantics/word.md : (587, 10) -- Lbl_>>Word__EVM-TYPES_Int_Int_Int: 2 +- F--Lbl_=/=Bool_: evm-semantics/builtin/domains.md : (1150, 8) +- F--Lbl_=/=Int_: evm-semantics/builtin/domains.md : (1429, 8) +- F--Lbl_=/=K_: evm-semantics/builtin/domains.md : (2287, 8) +- F--Lbl_=/=String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1843, 8) +- F--Lbl_==Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (144, 10) +- F--Lbl_>=String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1865, 8) +- F--Lbl_>=Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (143, 10) +- F--Lbl_>>Byte__WORD_Int_Int_Int: evm-semantics/word.md : (587, 10) +- F--Lbl_>>Word__EVM-TYPES_Int_Int_Int: 2 - evm-semantics/evm-types.md : (177, 10) - evm-semantics/evm-types.md : (178, 11) -- Lbl_>>sWord__EVM-TYPES_Int_Int_Int: 2 +- F--Lbl_>>sWord__EVM-TYPES_Int_Int_Int: 2 - evm-semantics/evm-types.md : (179, 10) - evm-semantics/evm-types.md : (180, 11) -- Lbl_>String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1864, 8) -- Lbl_>Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (141, 10) -- Lbl_[_:=_]_EVM-TYPES_Bytes_Bytes_Int_Bytes: 3 +- F--Lbl_>String__STRING-COMMON_Bool_String_String: evm-semantics/builtin/domains.md : (1864, 8) +- F--Lbl_>Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (141, 10) +- F--Lbl_[_:=_]_EVM-TYPES_Bytes_Bytes_Int_Bytes: 3 - evm-semantics/evm-types.md : (328, 10) - evm-semantics/evm-types.md : (329, 10) - evm-semantics/evm-types.md : (330, 10) -- Lbl_[_:=_]_EVM-TYPES_WordStack_WordStack_Int_Int: 4 +- F--Lbl_[_:=_]_EVM-TYPES_WordStack_WordStack_Int_Int: 4 - evm-semantics/evm-types.md : (276, 10) - evm-semantics/evm-types.md : (275, 17) - evm-semantics/evm-types.md : (274, 10) - evm-semantics/evm-types.md : (273, 10) -- Lbl_[_]_EVM-TYPES_Int_WordStack_Int: 3 +- F--Lbl_[_]_EVM-TYPES_Int_WordStack_Int: 3 - evm-semantics/evm-types.md : (268, 10) - evm-semantics/evm-types.md : (269, 11) - evm-semantics/evm-types.md : (267, 10) -- Lbl_^Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (111, 10) -- Lbl_andBool_: 4 +- F--Lbl_^Word__EVM-TYPES_Int_Int_Int: evm-semantics/evm-types.md : (111, 10) +- F--Lbl_andBool_: 4 - evm-semantics/builtin/domains.md : (1123, 8) - evm-semantics/builtin/domains.md : (1122, 8) - evm-semantics/builtin/domains.md : (1124, 8) - evm-semantics/builtin/domains.md : (1121, 8) -- Lbl_andThenBool_: 4 +- F--Lbl_andThenBool_: 4 - evm-semantics/builtin/domains.md : (1128, 8) - evm-semantics/builtin/domains.md : (1127, 8) - evm-semantics/builtin/domains.md : (1129, 8) - evm-semantics/builtin/domains.md : (1126, 8) -- Lbl_divInt_: evm-semantics/builtin/domains.md : (1418, 8) -- Lbl_dividesInt__INT-COMMON_Bool_Int_Int: evm-semantics/builtin/domains.md : (1430, 8) -- Lbl_impliesBool_: 4 +- F--Lbl_divInt_: evm-semantics/builtin/domains.md : (1418, 8) +- F--Lbl_dividesInt__INT-COMMON_Bool_Int_Int: evm-semantics/builtin/domains.md : (1430, 8) +- F--Lbl_impliesBool_: 4 - evm-semantics/builtin/domains.md : (1148, 8) - evm-semantics/builtin/domains.md : (1147, 8) - evm-semantics/builtin/domains.md : (1146, 8) - evm-semantics/builtin/domains.md : (1145, 8) -- Lbl_in__EVM-TYPES_Bool_Int_WordStack: 2 +- F--Lbl_in__EVM-TYPES_Bool_Int_WordStack: 2 - evm-semantics/evm-types.md : (293, 10) - evm-semantics/evm-types.md : (292, 10) -- Lbl_orBool_: 4 +- F--Lbl_orBool_: 4 - evm-semantics/builtin/domains.md : (1138, 8) - evm-semantics/builtin/domains.md : (1136, 8) - evm-semantics/builtin/domains.md : (1137, 8) - evm-semantics/builtin/domains.md : (1135, 8) -- Lbl_orElseBool_: 4 +- F--Lbl_orElseBool_: 4 - evm-semantics/builtin/domains.md : (1143, 8) - evm-semantics/builtin/domains.md : (1141, 8) - evm-semantics/builtin/domains.md : (1142, 8) - evm-semantics/builtin/domains.md : (1140, 8) -- Lbl_s=Int_: evm-semantics/lemmas/int-simplification.k : (157, 19) -- Lbl_>>Int_: 3 +- F--Lbl_>=Int_: evm-semantics/lemmas/int-simplification.k : (157, 19) +- F--Lbl_>>Int_: 3 - evm-semantics/builtin/domains.md : (1358, 8) - evm-semantics/lemmas/bytes-simplification.k : (233, 10) - evm-semantics/builtin/domains.md : (1359, 8) -- Lbl_>Int_: 2 +- F--Lbl_>Int_: 2 - evm-semantics/lemmas/int-simplification.k : (156, 19) - BITWISE-SIMPLIFICATION.lengthBytes-upInt-32-upper-bound -- Lbl_[_:=_]_EVM-TYPES_Bytes_Bytes_Int_Bytes: 5 +- F--Lbl_[_:=_]_EVM-TYPES_Bytes_Bytes_Int_Bytes: 5 - BYTES-SIMPLIFICATION.memUpdate-is-empty - BYTES-SIMPLIFICATION.memUpdate-subsume - BYTES-SIMPLIFICATION.memUpdate-reorder - BYTES-SIMPLIFICATION.memUpdate-as-concat-outside-1 - BYTES-SIMPLIFICATION.memUpdate-as-concat-inside -- Lbl_[_<-undef]: 3 +- F--Lbl_[_<-undef]: 3 - evm-semantics/builtin/domains.md : (426, 8) - evm-semantics/builtin/domains.md : (425, 8) - evm-semantics/builtin/domains.md : (429, 8) -- Lbl_[_]orDefault__MAP_KItem_Map_KItem_KItem: 5 +- F--Lbl_[_]orDefault__MAP_KItem_Map_KItem_KItem: 5 - evm-semantics/builtin/domains.md : (441, 8) - evm-semantics/builtin/domains.md : (440, 8) - evm-semantics/builtin/domains.md : (439, 8) - evm-semantics/builtin/domains.md : (437, 8) - evm-semantics/builtin/domains.md : (438, 8) -- Lbl_^Int_: evm-semantics/buf.md : (40, 10) -- Lbl_andBool_: evm-semantics/lemmas/lemmas.k : (221, 10) -- Lbl_in_keys(_)_MAP_Bool_KItem_Map: 4 +- F--Lbl_^Int_: evm-semantics/buf.md : (40, 10) +- F--Lbl_andBool_: evm-semantics/lemmas/lemmas.k : (221, 10) +- F--Lbl_in_keys(_)_MAP_Bool_KItem_Map: 4 - evm-semantics/builtin/domains.md : (445, 8) - evm-semantics/builtin/domains.md : (444, 8) - evm-semantics/builtin/domains.md : (447, 8) - evm-semantics/builtin/domains.md : (446, 8) -- Lbl_modInt_: 4 +- F--Lbl_modInt_: 4 - evm-semantics/lemmas/int-simplification.k : (116, 10) - evm-semantics/builtin/domains.md : (1421, 5) - evm-semantics/lemmas/lemmas.k : (184, 10) - evm-semantics/builtin/domains.md : (1352, 8) -- Lbl_s _in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK:SortKItem{}, Eq#@VarM:SortMap{}) -- Lbl_%Int_: #Ceil( _%Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_/Int_: #Ceil( _/Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_< _>=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_>>Int_: #Ceil( _>>Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _>=Int_(Eq#@VarI2:SortInt{}, "0") -- Lbl_AccountCellMap_: #Ceil( _AccountCellMap_(AccountCellMapItem(Eq#@VarK0:SortAcctIDCell{}, Eq#@VarK1:SortAccountCell{}), Eq#@VarRest:SortAccountCellMap{}) ) => notBool_(AccountCellMap:in_keys(Eq#@VarK0:SortAcctIDCell{}, Eq#@VarRest:SortAccountCellMap{})) -- Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) -- Lbl_MessageCellMap_: #Ceil( _MessageCellMap_(MessageCellMapItem(Eq#@VarK0:SortMsgIDCell{}, Eq#@VarK1:SortMessageCell{}), Eq#@VarRest:SortMessageCellMap{}) ) => notBool_(MessageCellMap:in_keys(Eq#@VarK0:SortMsgIDCell{}, Eq#@VarRest:SortMessageCellMap{})) -- Lbl_Set_: #Ceil( _Set_(SetItem(Eq#@VarE:SortKItem{}), Eq#@VarS:SortSet{}) ) => notBool_(Set:in(Eq#@VarE:SortKItem{}, Eq#@VarS:SortSet{})) -- Lbl_modInt_: #Ceil( _modInt_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") -- LblpadLeftBytes(_,_,_)_BYTES-HOOKED_Bytes_Bytes_Int_Int: #Ceil( padLeftBytes(_,_,_)_BYTES-HOOKED_Bytes_Bytes_Int_Int(Eq#Var_Gen0:SortBytes{}, Eq#VarLEN:SortInt{}, Eq#VarVAL:SortInt{}) ) => _andBool_(_andBool_(_<=Int_("0", Eq#VarLEN:SortInt{}), _<=Int_("0", Eq#VarVAL:SortInt{})), _ _andBool_(_andBool_(_<=Int_("0", Eq#VarLEN:SortInt{}), _<=Int_("0", Eq#VarVAL:SortInt{})), _ _in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK:SortKItem{}, Eq#@VarM:SortMap{}) +- F--Lbl_%Int_: #Ceil( _%Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_/Int_: #Ceil( _/Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_< _>=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_>>Int_: #Ceil( _>>Int_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _>=Int_(Eq#@VarI2:SortInt{}, "0") +- F--Lbl_AccountCellMap_: #Ceil( _AccountCellMap_(AccountCellMapItem(Eq#@VarK0:SortAcctIDCell{}, Eq#@VarK1:SortAccountCell{}), Eq#@VarRest:SortAccountCellMap{}) ) => notBool_(AccountCellMap:in_keys(Eq#@VarK0:SortAcctIDCell{}, Eq#@VarRest:SortAccountCellMap{})) +- F--Lbl_Map_: #Ceil( _Map_(_|->_(Eq#@VarK0:SortKItem{}, Eq#@VarK1:SortKItem{}), Eq#@VarRest:SortMap{}) ) => notBool_(_in_keys(_)_MAP_Bool_KItem_Map(Eq#@VarK0:SortKItem{}, Eq#@VarRest:SortMap{})) +- F--Lbl_MessageCellMap_: #Ceil( _MessageCellMap_(MessageCellMapItem(Eq#@VarK0:SortMsgIDCell{}, Eq#@VarK1:SortMessageCell{}), Eq#@VarRest:SortMessageCellMap{}) ) => notBool_(MessageCellMap:in_keys(Eq#@VarK0:SortMsgIDCell{}, Eq#@VarRest:SortMessageCellMap{})) +- F--Lbl_Set_: #Ceil( _Set_(SetItem(Eq#@VarE:SortKItem{}), Eq#@VarS:SortSet{}) ) => notBool_(Set:in(Eq#@VarE:SortKItem{}, Eq#@VarS:SortSet{})) +- F--Lbl_modInt_: #Ceil( _modInt_(Eq#@VarI1:SortInt{}, Eq#@VarI2:SortInt{}) ) => _=/=Int_(Eq#@VarI2:SortInt{}, "0") +- F--LblpadLeftBytes(_,_,_)_BYTES-HOOKED_Bytes_Bytes_Int_Int: #Ceil( padLeftBytes(_,_,_)_BYTES-HOOKED_Bytes_Bytes_Int_Int(Eq#Var_Gen0:SortBytes{}, Eq#VarLEN:SortInt{}, Eq#VarVAL:SortInt{}) ) => _andBool_(_andBool_(_<=Int_("0", Eq#VarLEN:SortInt{}), _<=Int_("0", Eq#VarVAL:SortInt{})), _ _andBool_(_andBool_(_<=Int_("0", Eq#VarLEN:SortInt{}), _<=Int_("0", Eq#VarVAL:SortInt{})), _ TermIndex -index = TermIndex . (: []) . TopSymbol +index :: (ByteString -> CellIndex) -> SymbolName -> TermIndex +index constr = TermIndex . (: []) . constr funDef, simplDef, loopDef :: KoreDefinition funDef = testDefinition { functionEquations = mkTheory - [ (index "f1", f1Equations) - , (index "f2", f2Equations) -- should not be applied (f2 partial) + [ (index TopFun "f1", f1Equations) + , (index TopFun "f2", f2Equations) -- should not be applied (f2 partial) ] } simplDef = @@ -266,7 +267,7 @@ simplDef = { simplifications = mkTheory [ - ( index "con1" + ( index TopCons "con1" , [ equation -- con1(con2(f2(X))) => con1(X) , but f2 partial => not applied Nothing @@ -287,7 +288,7 @@ simplDef = ] ) , - ( index "con3" + ( index TopCons "con3" , [ equation -- con3(X, X) => inj{sub,some}(con4(X, X)) Nothing @@ -304,7 +305,7 @@ loopDef = { simplifications = mkTheory [ - ( index "f1" + ( index TopFun "f1" , [ equation Nothing diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index b749714b67..b741aa81db 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -34,14 +34,14 @@ testKCellIndexing = testGroup "Indexing the K cell" [ testCase "An empty K cell is indexed as dotk" $ - [trm| kCell{}(dotk{}()) |] ==> TopSymbol "dotk" + [trm| kCell{}(dotk{}()) |] ==> TopCons "dotk" , testCase "A non-empty K cell is indexed as its head element without injections" $ do [trm| kCell{}(kseq{}(inj{SomeSort{},SortKItem{}}(f1{}(X:SomeSort{})), dotk{}())) |] - ==> TopSymbol "f1" + ==> TopFun "f1" KSeq someSort [trm| X:SomeSort{} |] ==> Anything [trm| kCell{}(kseq{}(inj{SomeSort{},SortKItem{}}(\dv{SomeSort{}}("X")), dotk{}())) |] - ==> Anything + ==> Value "X" [trm| kCell{}(X:SortK{}) |] ==> Anything , testCase "The K cell is found when nested under other cells" $ do @@ -53,7 +53,7 @@ testKCellIndexing = other{}(dotk{}()) ) |] - ==> TopSymbol "f1" + ==> TopFun "f1" [trm| topCell{}( nesting{}( @@ -62,7 +62,7 @@ testKCellIndexing = other{}(X:SortK{}) ) |] - ==> TopSymbol "dotk" + ==> TopCons "dotk" ] where (==>) :: Term -> CellIndex -> Assertion @@ -92,7 +92,7 @@ testCompositeIndexing = other{}(dotk{}()) ) |] - [TopSymbol "dotk"] + [TopCons "dotk"] testWith [other.name] [trm| @@ -105,7 +105,7 @@ testCompositeIndexing = ) ) |] - [TopSymbol "f1"] + [TopFun "f1"] testWith [other.name] [trm| @@ -128,7 +128,7 @@ testCompositeIndexing = other{}(dotk{}()) ) |] - [TopSymbol "dotk", TopSymbol "f1"] + [TopCons "dotk", TopFun "f1"] testWith [other.name, kCell.name] [trm| @@ -141,7 +141,7 @@ testCompositeIndexing = ) ) |] - [TopSymbol "f1", Anything] + [TopFun "f1", Anything] testWith [other.name, kCell.name] [trm| @@ -152,7 +152,7 @@ testCompositeIndexing = other{}(X:SortK{}) ) |] - [Anything, TopSymbol "dotk"] + [Anything, TopCons "dotk"] , testCase "If a duplicated cell is chosen, the first occurrence counts" $ do testWith [other.name] @@ -171,7 +171,7 @@ testCompositeIndexing = other{}(X:SortK{}) ) |] - [TopSymbol "dotk"] + [TopCons "dotk"] ] where testWith :: [SymbolName] -> Term -> [CellIndex] -> Assertion @@ -181,14 +181,16 @@ testTopTermIndexing :: TestTree testTopTermIndexing = testGroup "Indexing the top term" - [ testCase "Only symbol applications get an index" $ do + [ testCase "Different terms get different indexes" $ do + -- FIXME more tests here [trm| VAR:SomeSort{} |] ==> Anything - [trm| \dv{SomeSort{}}("") |] ==> Anything - [trm| f1{}(VAR:SomeSort{}) |] ==> TopSymbol "f1" + [trm| \dv{SomeSort{}}("") |] ==> Value "" + [trm| f1{}(VAR:SomeSort{}) |] ==> TopFun "f1" + [trm| con1{}(VAR:SomeSort{}) |] ==> TopCons "con1" , testCase "And-terms are indexed by combining the argument indexes" $ do - AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| Y:SomeSort{} |] ==> TopSymbol "f1" - AndTerm [trm| X:SomeSort{} |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopSymbol "f1" - AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopSymbol "f1" + AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| Y:SomeSort{} |] ==> TopFun "f1" + AndTerm [trm| X:SomeSort{} |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopFun "f1" + AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopFun "f1" AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f2{}( Y:SomeSort{} ) |] ==> None AndTerm [trm| X:SomeSort{} |] [trm| Y:SomeSort{} |] ==> Anything ] @@ -203,23 +205,23 @@ testIndexCover = [ testCase "Anything in all components is unchanged" $ [Anything, Anything, Anything] ==> [[Anything, Anything, Anything]] , testCase "[Anything] is added to single-component indexes" $ - [TopSymbol "bla"] ==> [[TopSymbol "bla"], [Anything]] + [TopCons "bla"] ==> [[TopCons "bla"], [Anything]] , testCase "Anything is added to every component, in all combinations" $ do - let cells = map TopSymbol ["bla", "blu", "bli"] + let cells = map TopCons ["bla", "blu", "bli"] take 2 cells - ==> [ [TopSymbol "bla", TopSymbol "blu"] - , [TopSymbol "bla", Anything] - , [Anything, TopSymbol "blu"] + ==> [ [TopCons "bla", TopCons "blu"] + , [TopCons "bla", Anything] + , [Anything, TopCons "blu"] , [Anything, Anything] ] cells ==> [ cells - , [TopSymbol "bla", TopSymbol "blu", Anything] - , [TopSymbol "bla", Anything, TopSymbol "bli"] - , [TopSymbol "bla", Anything, Anything] - , [Anything, TopSymbol "blu", TopSymbol "bli"] - , [Anything, TopSymbol "blu", Anything] - , [Anything, Anything, TopSymbol "bli"] + , [TopCons "bla", TopCons "blu", Anything] + , [TopCons "bla", Anything, TopCons "bli"] + , [TopCons "bla", Anything, Anything] + , [Anything, TopCons "blu", TopCons "bli"] + , [Anything, TopCons "blu", Anything] + , [Anything, Anything, TopCons "bli"] , [Anything, Anything, Anything] ] ] diff --git a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs index d155bd8317..c637e1fdee 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs @@ -63,17 +63,17 @@ test_performRewrite = ---------------------------------------- -index :: SymbolName -> TermIndex -index = TermIndex . (: []) . TopSymbol +indexC :: SymbolName -> TermIndex +indexC = TermIndex . (: []) . TopCons def :: KoreDefinition def = testDefinition { rewriteTheory = mkTheory - [ (index "con1", [rule1, rule2, rule1']) - , (index "con3", [rule3]) - , (index "con4", [rule4]) + [ (indexC "con1", [rule1, rule2, rule1']) + , (indexC "con3", [rule3]) + , (indexC "con4", [rule4]) ] } From 464069dede0c762a876c98fb32c142dfd104fc29 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 16 Jul 2025 22:05:16 +1000 Subject: [PATCH 05/19] phrase index and coverage function as a flat-lattice problem WIP --- .../library/Booster/Pattern/ApplyEquations.hs | 2 +- booster/library/Booster/Pattern/Index.hs | 81 +++++++++++++------ booster/library/Booster/Pattern/Rewrite.hs | 2 +- .../unit-tests/Test/Booster/Pattern/Index.hs | 29 +++++-- .../Test/Booster/Pattern/Rewrite.hs | 13 +-- 5 files changed, 88 insertions(+), 39 deletions(-) diff --git a/booster/library/Booster/Pattern/ApplyEquations.hs b/booster/library/Booster/Pattern/ApplyEquations.hs index d163e60c79..078f4f5907 100644 --- a/booster/library/Booster/Pattern/ApplyEquations.hs +++ b/booster/library/Booster/Pattern/ApplyEquations.hs @@ -802,7 +802,7 @@ applyEquations theory handler term = do withContext CtxAbort $ logMessage ("Index 'None'" :: Text) throw (IndexIsNone term) let - indexes = Set.toList $ Idx.coveringIndexes index + indexes = Set.toList $ Map.keysSet theory `Idx.covering` index equationsFor i = fromMaybe Map.empty $ Map.lookup i theory -- neither simplification nor function equations should need groups, -- since simplification priority is just a suggestion and function equations diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index 9f76623bff..100acc7beb 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -7,11 +7,16 @@ Everything to do with term indexing. module Booster.Pattern.Index ( CellIndex (..), TermIndex (..), + -- Flat lattice (^<=^), + invert, + -- compute index cover for rule selection + covering, + -- indexing compositeTermIndex, kCellTermIndex, termTopIndex, - coveringIndexes, + -- shortcut to hasNone, ) where @@ -60,6 +65,18 @@ data CellIndex deriving stock (Eq, Ord, Show, Generic) deriving anyclass (NFData) + +{- | Index lattice class. This is mostly just a _flat lattice_ but also + needs to support a special 'invert' method for the subject term index. +-} +class IndexLattice a where + (^<=^) :: a -> a -> Bool + + invert :: a -> a + +ifGreater :: IndexLattice a => Set a -> a -> Set a +ifGreater base x = Set.filter (x ^<=^) base + {- | Partial less-or-equal for CellIndex (implies partial order) Anything @@ -70,12 +87,23 @@ TopList ..TopSet Value "x"..Value "y" TopCons "A".. TopFun "f".. \ | / None -} -(^<=^) :: CellIndex -> CellIndex -> Bool -None ^<=^ _ = True -a ^<=^ None = a == None -_ ^<=^ Anything = True -Anything ^<=^ a = a == Anything -_ ^<=^ _ = False + +instance IndexLattice CellIndex where + None ^<=^ _ = True + a ^<=^ None = a == None + _ ^<=^ Anything = True + Anything ^<=^ a = a == Anything + a ^<=^ b = a == b + + invert None = Anything + invert Anything = None + invert a = a + +-- | Partial less-or-equal for TermIndex (product lattice) +instance IndexLattice TermIndex where + TermIndex idxs1 ^<=^ TermIndex idxs2 = and $ zipWith (^<=^) idxs1 idxs2 + + invert (TermIndex idxs) = TermIndex (map invert idxs) {- | Combines two indexes (an "infimum" function on the index lattice). @@ -83,6 +111,7 @@ _ ^<=^ _ = False matches an 'AndTerm t1 t2' must match both 't1' and 't2', so 't1' and 't2' must have "compatible" indexes for this to be possible. -} + instance Semigroup CellIndex where None <> _ = None _ <> None = None @@ -92,30 +121,32 @@ instance Semigroup CellIndex where | idx1 == idx2 = idx1 | otherwise = None -{- | Compute all indexes that cover the given index, for rule lookup. +{- | Check whether a @TermIndex@ has @None@ in any position (this +means no match will be possible). +-} +hasNone :: TermIndex -> Bool +hasNone (TermIndex ixs) = None `elem` ixs + +{- | Computes all indexes that "cover" the given index, for rule lookup. + + An index B is said to "cover" an index A if all components of B are + greater or equal to those of the respective component of A inverted. - An index B is said to "cover" another index A if all parts of B are - either equal to the respective parts of A, or 'Anything'. + * For components of A that are distinct from @Anything@, this means + the component of B is equal to that of A or @Anything@. + * For components of A that are @None@, the respective component of B + _must_ be @Anything@. However, if A contains @None@ no match is + possible anyway. + * For components of A that are @Anything@, B can contain an + arbitrary index (@None@ will again have no chance of a match, + though). When selecting candidate rules for a term, we must consider all rules whose index has either the exact same @CellIndex@ or @Anything@ at every position of their @TermIndex@. -} -coveringIndexes :: TermIndex -> Set TermIndex -coveringIndexes (TermIndex ixs) = - Set.fromList . map TermIndex $ orAnything ixs - where - orAnything :: [CellIndex] -> [[CellIndex]] - orAnything [] = [[]] - orAnything (i : is) = - let rest = orAnything is - in map (i :) rest <> map (Anything :) rest - -{- | Check whether a @TermIndex@ has @None@ in any position (this -means no match will be possible). --} -hasNone :: TermIndex -> Bool -hasNone (TermIndex ixs) = None `elem` ixs +covering :: Set TermIndex -> TermIndex -> Set TermIndex +covering prior ix = prior `ifGreater` invert ix -- | Indexes a term by the heads of K sequences in given cells. compositeTermIndex :: [SymbolName] -> Term -> TermIndex diff --git a/booster/library/Booster/Pattern/Rewrite.hs b/booster/library/Booster/Pattern/Rewrite.hs index b64ac471d1..26d5db3ffa 100644 --- a/booster/library/Booster/Pattern/Rewrite.hs +++ b/booster/library/Booster/Pattern/Rewrite.hs @@ -179,7 +179,7 @@ rewriteStep cutLabels terminalLabels pat = do termIdx = getIndex pat.term when (Idx.hasNone termIdx) $ throw (TermIndexIsNone pat.term) let - indexes = Set.toList $ Idx.coveringIndexes termIdx + indexes = Set.toList $ Map.keysSet def.rewriteTheory `Idx.covering` termIdx rulesFor i = fromMaybe Map.empty $ Map.lookup i def.rewriteTheory rules = map snd . Map.toAscList . Map.unionsWith (<>) $ map rulesFor indexes diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index b741aa81db..ef5376e5be 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -182,14 +182,16 @@ testTopTermIndexing = testGroup "Indexing the top term" [ testCase "Different terms get different indexes" $ do - -- FIXME more tests here [trm| VAR:SomeSort{} |] ==> Anything [trm| \dv{SomeSort{}}("") |] ==> Value "" [trm| f1{}(VAR:SomeSort{}) |] ==> TopFun "f1" [trm| con1{}(VAR:SomeSort{}) |] ==> TopCons "con1" + KMap testKMapDefinition [] Nothing ==> TopMap + KList testKListDef [] Nothing ==> TopList + KSet testKSetDef [] Nothing ==> TopSet , testCase "And-terms are indexed by combining the argument indexes" $ do AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| Y:SomeSort{} |] ==> TopFun "f1" - AndTerm [trm| X:SomeSort{} |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopFun "f1" + AndTerm [trm| X:SomeSort{} |] [trm| con1{}( Y:SomeSort{} ) |] ==> TopCons "con1" AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopFun "f1" AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f2{}( Y:SomeSort{} ) |] ==> None AndTerm [trm| X:SomeSort{} |] [trm| Y:SomeSort{} |] ==> Anything @@ -201,9 +203,13 @@ testTopTermIndexing = testIndexCover :: TestTree testIndexCover = testGroup - "coveringIndexes function" - [ testCase "Anything in all components is unchanged" $ - [Anything, Anything, Anything] ==> [[Anything, Anything, Anything]] + "Index covering function" + [ testCase "indexes function works" $ do + indexes 0 @=? Set.singleton (TermIndex []) + indexes 1 @=? Set.fromList [TermIndex [i] | i <- cellIndexes] + indexes 2 @=? Set.fromList [TermIndex [i, j] | i <- cellIndexes, j <- cellIndexes] + -- , testCase "Anything in all components is unchanged" $ + -- [Anything, Anything, Anything] ==> [[Anything, Anything, Anything]] , testCase "[Anything] is added to single-component indexes" $ [TopCons "bla"] ==> [[TopCons "bla"], [Anything]] , testCase "Anything is added to every component, in all combinations" $ do @@ -224,8 +230,19 @@ testIndexCover = , [Anything, Anything, TopCons "bli"] , [Anything, Anything, Anything] ] + , testCase "Term index [Anything] is covered by all possible indexes" $ do + [Anything] ==> map (:[]) cellIndexes ] where (==>) :: [CellIndex] -> [[CellIndex]] -> Assertion idx ==> expected = - Set.toList (Idx.coveringIndexes $ TermIndex idx) @?= map TermIndex expected + (indexes (length idx) `Idx.covering` TermIndex idx) + @?= Set.fromList (map TermIndex expected) + cellIndexes = + map TopCons ["bla", "blu", "bli"] <> + map TopFun ["f1", "f2"] <> + [TopMap, TopList, TopSet, Anything] + indexes = Set.fromList . map TermIndex . permuteCIs + permuteCIs n + | n <= 0 = [[]] + | otherwise = [ i : is | i <- cellIndexes, is <- permuteCIs (n - 1) ] diff --git a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs index c637e1fdee..4b85a87894 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs @@ -233,7 +233,7 @@ rewriteStuck = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con2{}( \dv{SomeSort{}}("thing") ) ), Thing:SortK{}) ) |] , testCase "No rules for dotk()" $ getsStuck - [trm| kCell{}( kseq{}(dotk{}()) ) |] + [trm| kCell{}( dotk{}() ) |] ] rulePriority = testCase "con1 rewrites to a branch when higher priority does not apply" $ @@ -416,11 +416,12 @@ getsStuckOnFailures :: TestTree getsStuckOnFailures = testGroup "Gets stuck when the rewriter cannot handle it" - [ testCase "when unification is not a match" $ - getsStuck [trm| con3{}(X:SomeSort{}, \dv{SomeSort{}}("thing")) |] - , testCase "when definedness is unclear" $ - getsStuck [trm| con4{}(\dv{SomeSort{}}("thing"), \dv{SomeSort{}}("thing")) |] - ] + -- [ testCase "when unification is not a match" $ + -- getsStuck [trm| con3{}(X:SomeSort{}, \dv{SomeSort{}}("thing")) |] + -- , testCase "when definedness is unclear" $ + -- getsStuck [trm| con4{}(\dv{SomeSort{}}("thing"), \dv{SomeSort{}}("thing")) |] + -- ] + [] -- FIXME rewrite these tests! newtype MaxDepth = MaxDepth Natural From 7ab0009be4a5dad5670380c110807f63c25ab981 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 16 Jul 2025 22:32:01 +1000 Subject: [PATCH 06/19] Fix old Rewrite tests that weren't checking what they should --- .../Test/Booster/Pattern/Rewrite.hs | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs index 4b85a87894..bee67c5c90 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs @@ -53,9 +53,7 @@ test_performRewrite = "Iterated rewriting" [ -- same tests as above, but calling the iterating function canRewrite - , abortsOnErrors - , callsError - , getsStuckOnFailures + , abortsOnProblems , supportsDepthControl , supportsCutPoints , supportsTerminalRules @@ -388,41 +386,38 @@ canRewrite = app con2 [d] ] -abortsOnErrors :: TestTree -abortsOnErrors = +abortsOnProblems :: TestTree +abortsOnProblems = testGroup - "Aborts rewrite when there is an error" + "Aborts on unexpected situations or unclear rule application" [ testCase "when the term index is None" $ let term = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( \and{SomeSort{}}( con1{}( \dv{SomeSort{}}("thing") ), con2{}( \dv{SomeSort{}}("thing") ) ) ), C:SortK{} ) ) |] in aborts (TermIndexIsNone term) term - ] - -callsError :: TestTree -callsError = - testGroup - "Calls error when there are unexpected situations" - [ testCase "on wrong argument count in a symbol application" $ + , testCase "Errors on wrong argument count in a symbol application" $ runRewrite [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con1{}( \dv{SomeSort{}}("thing"), \dv{SomeSort{}}("thing"), \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] >>= \case (_, RewriteAborted InternalMatchError{} _) -> pure () _ -> assertFailure "success" + , testCase "Aborts when unification is not a match" $ + let t = + [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con3{}(X:SomeSort{}, \dv{SomeSort{}}("thing"))), C:SortK{}) ) |] + in aborts + ( RuleApplicationUnclear + rule3 + t + (NE.singleton ([trm| \dv{SomeSort{}}("otherThing")|], [trm| X:SomeSort{} |])) + ) + t + , testCase "Aborts when definedness is unclear" $ + let t = + [trm| kCell{}( kseq{}( inj{AnotherSort{}, SortKItem{}}( con4{}(\dv{SomeSort{}}("thing"), \dv{SomeSort{}}("thing"))), C:SortK{}) ) |] + in aborts (DefinednessUnclear rule4 (Pattern_ t) [UndefinedSymbol "f2"]) t ] -getsStuckOnFailures :: TestTree -getsStuckOnFailures = - testGroup - "Gets stuck when the rewriter cannot handle it" - -- [ testCase "when unification is not a match" $ - -- getsStuck [trm| con3{}(X:SomeSort{}, \dv{SomeSort{}}("thing")) |] - -- , testCase "when definedness is unclear" $ - -- getsStuck [trm| con4{}(\dv{SomeSort{}}("thing"), \dv{SomeSort{}}("thing")) |] - -- ] - [] -- FIXME rewrite these tests! - newtype MaxDepth = MaxDepth Natural supportsDepthControl :: TestTree From 1fa7cd031aafc92cca816ff79153f21c368b67b9 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 16 Jul 2025 22:32:44 +1000 Subject: [PATCH 07/19] formatting --- booster/library/Booster/Definition/Util.hs | 2 +- booster/library/Booster/Pattern/Index.hs | 17 ++++++----------- .../unit-tests/Test/Booster/Pattern/Index.hs | 18 +++++++++--------- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/booster/library/Booster/Definition/Util.hs b/booster/library/Booster/Definition/Util.hs index 401402ba84..f0754c02a3 100644 --- a/booster/library/Booster/Definition/Util.hs +++ b/booster/library/Booster/Definition/Util.hs @@ -150,7 +150,7 @@ instance Pretty Summary where prettyCellIndex (Value sym) = "V--" <> prettyLabel sym prettyCellIndex TopMap = "Map" prettyCellIndex TopList = "List" - prettyCellIndex TopSet = "Set" + prettyCellIndex TopSet = "Set" prettyCeilRule :: RewriteRule r -> Doc a prettyCeilRule RewriteRule{lhs, rhs} = diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index 100acc7beb..8878960c3b 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -65,7 +65,6 @@ data CellIndex deriving stock (Eq, Ord, Show, Generic) deriving anyclass (NFData) - {- | Index lattice class. This is mostly just a _flat lattice_ but also needs to support a special 'invert' method for the subject term index. -} @@ -87,13 +86,12 @@ TopList ..TopSet Value "x"..Value "y" TopCons "A".. TopFun "f".. \ | / None -} - instance IndexLattice CellIndex where - None ^<=^ _ = True - a ^<=^ None = a == None - _ ^<=^ Anything = True - Anything ^<=^ a = a == Anything - a ^<=^ b = a == b + None ^<=^ _ = True + a ^<=^ None = a == None + _ ^<=^ Anything = True + Anything ^<=^ a = a == Anything + a ^<=^ b = a == b invert None = Anything invert Anything = None @@ -111,7 +109,6 @@ instance IndexLattice TermIndex where matches an 'AndTerm t1 t2' must match both 't1' and 't2', so 't1' and 't2' must have "compatible" indexes for this to be possible. -} - instance Semigroup CellIndex where None <> _ = None _ <> None = None @@ -216,9 +213,7 @@ stripSortInjections = \case termTopIndex :: Term -> TermIndex termTopIndex = TermIndex . (: []) . cellTopIndex -{- | Cell top indexes form a lattice with a flat partial ordering - --} +-- | Cell top indexes form a lattice with a flat partial ordering cellTopIndex :: Term -> CellIndex cellTopIndex = \case ConsApplication symbol _ _ -> diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index ef5376e5be..8cfa77881e 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -208,9 +208,9 @@ testIndexCover = indexes 0 @=? Set.singleton (TermIndex []) indexes 1 @=? Set.fromList [TermIndex [i] | i <- cellIndexes] indexes 2 @=? Set.fromList [TermIndex [i, j] | i <- cellIndexes, j <- cellIndexes] - -- , testCase "Anything in all components is unchanged" $ - -- [Anything, Anything, Anything] ==> [[Anything, Anything, Anything]] - , testCase "[Anything] is added to single-component indexes" $ + , -- , testCase "Anything in all components is unchanged" $ + -- [Anything, Anything, Anything] ==> [[Anything, Anything, Anything]] + testCase "[Anything] is added to single-component indexes" $ [TopCons "bla"] ==> [[TopCons "bla"], [Anything]] , testCase "Anything is added to every component, in all combinations" $ do let cells = map TopCons ["bla", "blu", "bli"] @@ -231,7 +231,7 @@ testIndexCover = , [Anything, Anything, Anything] ] , testCase "Term index [Anything] is covered by all possible indexes" $ do - [Anything] ==> map (:[]) cellIndexes + [Anything] ==> map (: []) cellIndexes ] where (==>) :: [CellIndex] -> [[CellIndex]] -> Assertion @@ -239,10 +239,10 @@ testIndexCover = (indexes (length idx) `Idx.covering` TermIndex idx) @?= Set.fromList (map TermIndex expected) cellIndexes = - map TopCons ["bla", "blu", "bli"] <> - map TopFun ["f1", "f2"] <> - [TopMap, TopList, TopSet, Anything] + map TopCons ["bla", "blu", "bli"] + <> map TopFun ["f1", "f2"] + <> [TopMap, TopList, TopSet, Anything] indexes = Set.fromList . map TermIndex . permuteCIs permuteCIs n - | n <= 0 = [[]] - | otherwise = [ i : is | i <- cellIndexes, is <- permuteCIs (n - 1) ] + | n <= 0 = [[]] + | otherwise = [i : is | i <- cellIndexes, is <- permuteCIs (n - 1)] From 0c46006d52184fc43b0b4b3083c83a385eab3549 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Wed, 16 Jul 2025 22:41:26 +1000 Subject: [PATCH 08/19] more index testing --- booster/unit-tests/Test/Booster/Pattern/Index.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index 8cfa77881e..7afdd79d2f 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -230,8 +230,10 @@ testIndexCover = , [Anything, Anything, TopCons "bli"] , [Anything, Anything, Anything] ] - , testCase "Term index [Anything] is covered by all possible indexes" $ do + , testCase "Cell index Anything is covered by all possible indexes" $ do [Anything] ==> map (: []) cellIndexes + [Anything, TopList] ==> concat [ [[i, TopList], [i, Anything]] | i <- cellIndexes] + [Anything, Anything] ==> permuteCIs 2 ] where (==>) :: [CellIndex] -> [[CellIndex]] -> Assertion @@ -243,6 +245,7 @@ testIndexCover = <> map TopFun ["f1", "f2"] <> [TopMap, TopList, TopSet, Anything] indexes = Set.fromList . map TermIndex . permuteCIs + permuteCIs :: Int -> [[CellIndex]] permuteCIs n | n <= 0 = [[]] | otherwise = [i : is | i <- cellIndexes, is <- permuteCIs (n - 1)] From 635b88d5ea4bd736bc3e62f39909fb95db0aa113 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 11:09:09 +1000 Subject: [PATCH 09/19] rename Value to TopVal, move pretty-printing inside Booster.Pattern.Index --- booster/library/Booster/Definition/Util.hs | 22 ++++---------- booster/library/Booster/Pattern/Index.hs | 30 +++++++++++++++---- .../unit-tests/Test/Booster/Pattern/Index.hs | 4 +-- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/booster/library/Booster/Definition/Util.hs b/booster/library/Booster/Definition/Util.hs index f0754c02a3..f043942c4a 100644 --- a/booster/library/Booster/Definition/Util.hs +++ b/booster/library/Booster/Definition/Util.hs @@ -30,7 +30,7 @@ import Booster.Definition.Attributes.Base import Booster.Definition.Base import Booster.Definition.Ceil (ComputeCeilSummary (..)) import Booster.Pattern.Base -import Booster.Pattern.Index (CellIndex (..), TermIndex (..)) +import Booster.Pattern.Index (TermIndex (..)) import Booster.Pattern.Pretty import Booster.Prettyprinter import Booster.Util @@ -111,16 +111,16 @@ instance Pretty Summary where : tableView prettyLabel prettyLabel summary.subSorts ) <> ( "Rewrite rules by term index:" - : tableView prettyTermIndex pretty summary.rewriteRules + : tableView pretty pretty summary.rewriteRules ) <> ( "Function equations by term index:" - : tableView prettyTermIndex pretty summary.functionRules + : tableView pretty pretty summary.functionRules ) <> ( "Simplifications by term index:" - : tableView prettyTermIndex pretty summary.simplifications + : tableView pretty pretty summary.simplifications ) <> ( "Ceils:" - : tableView prettyTermIndex prettyCeilRule summary.ceils + : tableView pretty prettyCeilRule summary.ceils ) <> [mempty] where @@ -140,18 +140,6 @@ instance Pretty Summary where prettyLabel = either error (pretty . BS.unpack) . decodeLabel - prettyTermIndex :: TermIndex -> Doc a - prettyTermIndex (TermIndex ixs) = Pretty.sep $ map prettyCellIndex ixs - - prettyCellIndex None = "_|_" - prettyCellIndex Anything = "***" - prettyCellIndex (TopCons sym) = "C--" <> prettyLabel sym - prettyCellIndex (TopFun sym) = "F--" <> prettyLabel sym - prettyCellIndex (Value sym) = "V--" <> prettyLabel sym - prettyCellIndex TopMap = "Map" - prettyCellIndex TopList = "List" - prettyCellIndex TopSet = "Set" - prettyCeilRule :: RewriteRule r -> Doc a prettyCeilRule RewriteRule{lhs, rhs} = "#Ceil(" <+> pretty' @['Decoded, 'Truncated] lhs <+> ") =>" <+> pretty' @['Decoded, 'Truncated] rhs diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index 8878960c3b..ef32c31cf2 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -16,20 +16,22 @@ module Booster.Pattern.Index ( compositeTermIndex, kCellTermIndex, termTopIndex, - -- shortcut to + -- shortcut to abort rewriting/evaluation hasNone, ) where import Control.Applicative (Alternative (..), asum) import Control.DeepSeq (NFData) -import Data.ByteString (ByteString) +import Data.ByteString.Char8 (ByteString, unpack) import Data.Functor.Foldable (embed, para) import Data.Maybe (fromMaybe) import Data.Set (Set) import Data.Set qualified as Set import GHC.Generics (Generic) +import Prettyprinter (Doc, Pretty, pretty, sep) import Booster.Pattern.Base +import Booster.Util (decodeLabel) {- | Index data allowing for a quick lookup of potential axioms. @@ -57,7 +59,7 @@ data CellIndex = None -- bottom element | TopCons SymbolName | TopFun SymbolName - | Value ByteString + | TopVal ByteString | TopMap | TopList | TopSet @@ -81,7 +83,7 @@ ifGreater base x = Set.filter (x ^<=^) base Anything ____________/ | \_______________________________________... / / | | \ \ -TopList ..TopSet Value "x"..Value "y" TopCons "A".. TopFun "f".. +TopList ..TopSet TopVal "x"..TopVal "y" TopCons "A".. TopFun "f".. \__________|__ | _________|____________|____________/____... \ | / None @@ -118,6 +120,24 @@ instance Semigroup CellIndex where | idx1 == idx2 = idx1 | otherwise = None +-- | Pretty instances +instance Pretty TermIndex where + pretty (TermIndex ixs) = sep $ map pretty ixs + +instance Pretty CellIndex where + pretty None = "_|_" + pretty Anything = "***" + pretty (TopCons sym) = "C--" <> prettyLabel sym + pretty (TopFun sym) = "F--" <> prettyLabel sym + pretty (TopVal sym) = "V--" <> prettyLabel sym + pretty TopMap = "Map" + pretty TopList = "List" + pretty TopSet = "Set" + +prettyLabel :: ByteString -> Doc a +prettyLabel = either error ( pretty . unpack) . decodeLabel + + {- | Check whether a @TermIndex@ has @None@ in any position (this means no match will be possible). -} @@ -221,7 +241,7 @@ cellTopIndex = \case FunctionApplication symbol _ _ -> TopFun symbol.name DomainValue _ v -> - Value v + TopVal v Var{} -> Anything KMap{} -> diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index 7afdd79d2f..6e5ccf7059 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -41,7 +41,7 @@ testKCellIndexing = KSeq someSort [trm| X:SomeSort{} |] ==> Anything [trm| kCell{}(kseq{}(inj{SomeSort{},SortKItem{}}(\dv{SomeSort{}}("X")), dotk{}())) |] - ==> Value "X" + ==> TopVal "X" [trm| kCell{}(X:SortK{}) |] ==> Anything , testCase "The K cell is found when nested under other cells" $ do @@ -183,7 +183,7 @@ testTopTermIndexing = "Indexing the top term" [ testCase "Different terms get different indexes" $ do [trm| VAR:SomeSort{} |] ==> Anything - [trm| \dv{SomeSort{}}("") |] ==> Value "" + [trm| \dv{SomeSort{}}("") |] ==> TopVal "" [trm| f1{}(VAR:SomeSort{}) |] ==> TopFun "f1" [trm| con1{}(VAR:SomeSort{}) |] ==> TopCons "con1" KMap testKMapDefinition [] Nothing ==> TopMap From e9a1deba867c2682661d8c85fbc1d4a90bb529d7 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 12:05:10 +1000 Subject: [PATCH 10/19] WIP try all rules when an unevaluated function is in the subject index --- booster/library/Booster/Pattern/Index.hs | 13 ++++++++++--- booster/library/Booster/Pattern/Rewrite.hs | 8 +++++++- .../unit-tests/Test/Booster/Pattern/Index.hs | 2 +- .../unit-tests/Test/Booster/Pattern/Rewrite.hs | 18 +++++++++++++----- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index ef32c31cf2..9e9953408b 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -16,8 +16,9 @@ module Booster.Pattern.Index ( compositeTermIndex, kCellTermIndex, termTopIndex, - -- shortcut to abort rewriting/evaluation + -- helpers hasNone, + noFunctions, ) where import Control.Applicative (Alternative (..), asum) @@ -135,8 +136,7 @@ instance Pretty CellIndex where pretty TopSet = "Set" prettyLabel :: ByteString -> Doc a -prettyLabel = either error ( pretty . unpack) . decodeLabel - +prettyLabel = either error (pretty . unpack) . decodeLabel {- | Check whether a @TermIndex@ has @None@ in any position (this means no match will be possible). @@ -144,6 +144,13 @@ means no match will be possible). hasNone :: TermIndex -> Bool hasNone (TermIndex ixs) = None `elem` ixs +-- | turns TopFun _ into Anything (for rewrite rule selection) +noFunctions :: TermIndex -> TermIndex +noFunctions (TermIndex ixs) = TermIndex (map funsAnything ixs) + where + funsAnything TopFun{} = Anything + funsAnything other = other + {- | Computes all indexes that "cover" the given index, for rule lookup. An index B is said to "cover" an index A if all components of B are diff --git a/booster/library/Booster/Pattern/Rewrite.hs b/booster/library/Booster/Pattern/Rewrite.hs index 26d5db3ffa..76398367bb 100644 --- a/booster/library/Booster/Pattern/Rewrite.hs +++ b/booster/library/Booster/Pattern/Rewrite.hs @@ -179,7 +179,13 @@ rewriteStep cutLabels terminalLabels pat = do termIdx = getIndex pat.term when (Idx.hasNone termIdx) $ throw (TermIndexIsNone pat.term) let - indexes = Set.toList $ Map.keysSet def.rewriteTheory `Idx.covering` termIdx + indexes = + Set.toList $ Map.keysSet def.rewriteTheory `Idx.covering` Idx.noFunctions termIdx + -- Function calls in the index have to be generalised to + -- `Anything` for rewriting because they may evaluate to any + -- category of terms. If there are any function calls in the + -- subject, the rewrite can only succeed if the function call + -- is matched to a variable. rulesFor i = fromMaybe Map.empty $ Map.lookup i def.rewriteTheory rules = map snd . Map.toAscList . Map.unionsWith (<>) $ map rulesFor indexes diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index 6e5ccf7059..897325a778 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -232,7 +232,7 @@ testIndexCover = ] , testCase "Cell index Anything is covered by all possible indexes" $ do [Anything] ==> map (: []) cellIndexes - [Anything, TopList] ==> concat [ [[i, TopList], [i, Anything]] | i <- cellIndexes] + [Anything, TopList] ==> concat [[[i, TopList], [i, Anything]] | i <- cellIndexes] [Anything, Anything] ==> permuteCIs 2 ] where diff --git a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs index bee67c5c90..1ddaf10fa9 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs @@ -322,16 +322,18 @@ canRewrite :: TestTree canRewrite = testGroup "Can rewrite" - [ testCase "Rewrites con1 once, then gets stuck" $ + [ testCase "Rewrites con1 once, then aborts on function" $ let startTerm = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] targetTerm = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( f1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] + remainder = + NE.singleton ([trm| con1{}(\dv{SomeSort{}}("thing")) |], [trm| f1{}(\dv{SomeSort{}}("thing")) |]) in rewrites (Steps 1) startTerm targetTerm - RewriteStuck + (\t -> RewriteAborted (RuleApplicationUnclear rule1 t remainder) t) , testCase "Rewrites con3 twice, branching on con1" $ do let branch1 = ( [trm| kCell{}( kseq{}( inj{AnotherSort{}, SortKItem{}}( con4{}( \dv{SomeSort{}}("somethingElse"), \dv{SomeSort{}}("somethingElse") ) ), C:SortK{}) ) |] @@ -429,12 +431,14 @@ supportsDepthControl = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] targetTerm = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( f1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] + remainder = + NE.singleton ([trm| con1{}(\dv{SomeSort{}}("thing")) |], [trm| f1{}(\dv{SomeSort{}}("thing")) |]) in rewritesToDepth (MaxDepth 42) (Steps 1) startTerm targetTerm - RewriteStuck + (\t -> RewriteAborted (RuleApplicationUnclear rule1 t remainder) t) , testCase "stops execution after 1 step when maxDepth == 1" $ rewritesToDepth (MaxDepth 1) @@ -523,12 +527,14 @@ supportsCutPoints = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] targetTerm = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( f1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] + remainder = + NE.singleton ([trm| con1{}(\dv{SomeSort{}}("thing")) |], [trm| f1{}(\dv{SomeSort{}}("thing")) |]) in rewritesToCutPoint "otherLabel" (Steps 1) startTerm targetTerm - RewriteStuck + (\t -> RewriteAborted (RuleApplicationUnclear rule1 t remainder) t) , testCase "prefers reporting branches to stopping at label in one branch" $ do let branch1 = ( [trm| kCell{}( kseq{}( inj{AnotherSort{}, SortKItem{}}( con4{}( \dv{SomeSort{}}("somethingElse"), \dv{SomeSort{}}("somethingElse") ) ), C:SortK{}) ) |] @@ -601,12 +607,14 @@ supportsTerminalRules = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( con1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] targetTerm = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( f1{}( \dv{SomeSort{}}("thing") ) ), C:SortK{}) ) |] + remainder = + NE.singleton ([trm| con1{}(\dv{SomeSort{}}("thing")) |], [trm| f1{}(\dv{SomeSort{}}("thing")) |]) in rewritesToTerminal "otherLabel" (Steps 1) startTerm targetTerm - RewriteStuck + (\t -> RewriteAborted (RuleApplicationUnclear rule1 t remainder) t) ] where rewritesToTerminal :: Text -> Steps -> Term -> t -> (t -> RewriteResult Term) -> IO () From 6784987cc230b1c7fb00edbb1d6285f3f8d00ae9 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 12:05:10 +1000 Subject: [PATCH 11/19] try all rules when an unevaluated function is in the subject index `TopFun` index components are set to `Anything` before computing rule indexes to try. The effect is that all rules (for this index component) will be tried, leading to `Aborts` rather than getting `Stuck` (as the test with the unevaluated function shows). --- .../response-no-concrete-evaluation.booster-dev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster/test/rpc-integration/test-no-evaluator/response-no-concrete-evaluation.booster-dev b/booster/test/rpc-integration/test-no-evaluator/response-no-concrete-evaluation.booster-dev index aa0047cb37..1245749765 100644 --- a/booster/test/rpc-integration/test-no-evaluator/response-no-concrete-evaluation.booster-dev +++ b/booster/test/rpc-integration/test-no-evaluator/response-no-concrete-evaluation.booster-dev @@ -2,7 +2,7 @@ "jsonrpc": "2.0", "id": 1, "result": { - "reason": "stuck", + "reason": "aborted", "depth": 1, "state": { "term": { From 4a54ea1f1a4623f2456bdadb0f4df08952e1106d Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 13:15:59 +1000 Subject: [PATCH 12/19] avoid evaluating boolean constants --- booster/library/Booster/Pattern/ApplyEquations.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/booster/library/Booster/Pattern/ApplyEquations.hs b/booster/library/Booster/Pattern/ApplyEquations.hs index 078f4f5907..df4f6280c4 100644 --- a/booster/library/Booster/Pattern/ApplyEquations.hs +++ b/booster/library/Booster/Pattern/ApplyEquations.hs @@ -1172,7 +1172,9 @@ simplifyConstraint' :: LoggerMIO io => Bool -> Term -> EquationT io Term -- 'true \equals P' using simplifyBool if they are concrete, or using -- evaluateTerm. simplifyConstraint' recurseIntoEvalBool = \case - t@(Term TermAttributes{canBeEvaluated} _) + t@(Term TermAttributes{isEvaluated, canBeEvaluated} _) + | isEvaluated -> + pure t | isConcrete t && canBeEvaluated -> do mbApi <- (.llvmApi) <$> getConfig case mbApi of From f1488d5251190c57fdd2cd52404c2f4500b98ac8 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 15:42:35 +1000 Subject: [PATCH 13/19] add test for soundness of rewrites with unevaluated functions --- .../resources/issue4118-indexing.k | 32 + .../resources/issue4118-indexing.kore | 1481 +++++++++++++++++ .../test-issue4118-indexing/README.md | 44 + .../state-cons-b.execute | 78 + 4 files changed, 1635 insertions(+) create mode 100644 booster/test/rpc-integration/resources/issue4118-indexing.k create mode 100644 booster/test/rpc-integration/resources/issue4118-indexing.kore create mode 100644 booster/test/rpc-integration/test-issue4118-indexing/README.md create mode 100644 booster/test/rpc-integration/test-issue4118-indexing/state-cons-b.execute diff --git a/booster/test/rpc-integration/resources/issue4118-indexing.k b/booster/test/rpc-integration/resources/issue4118-indexing.k new file mode 100644 index 0000000000..2cd541ffa3 --- /dev/null +++ b/booster/test/rpc-integration/resources/issue4118-indexing.k @@ -0,0 +1,32 @@ +module TEST + imports LIST + imports MAP + imports SET + + configuration + $PGM:Abcd ~> .K + + syntax KItem ::= "Done" [symbol(Done)] + + syntax Abcd ::= "A" | "B" + | Cons ( Abcd ) [symbol(Cons)] + | f ( Abcd ) [function, total, symbol(f)] + + rule f(A) => f(B) // index TopFun "f" + rule f(B) => A // index TopFun "f" + + rule [Vrule]: // index TopVal "A" + A => Done ... + + rule [consrule]: // index TopCon "Cons" + Cons(I) => f(I) ... + + rule [varrule]: // index *** + _X:Abcd => B ... [owise] + +// Bug Demonstrator #4118: +// Cons(B) =rewrite=> f(B) =eval=> A =rewrite=> Done correct +// \ +// \=rewrite=> B [owise] should not apply! + +endmodule diff --git a/booster/test/rpc-integration/resources/issue4118-indexing.kore b/booster/test/rpc-integration/resources/issue4118-indexing.kore new file mode 100644 index 0000000000..d044c1769a --- /dev/null +++ b/booster/test/rpc-integration/resources/issue4118-indexing.kore @@ -0,0 +1,1481 @@ +[topCellInitializer{}(LblinitGeneratedTopCell{}()), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + +module BASIC-K + sort SortK{} [] + sort SortKItem{} [] +endmodule +[] +module KSEQ + import BASIC-K [] + symbol kseq{}(SortKItem{}, SortK{}) : SortK{} [constructor{}(), functional{}(), injective{}()] + symbol dotk{}() : SortK{} [constructor{}(), functional{}(), injective{}()] + symbol append{}(SortK{}, SortK{}) : SortK{} [function{}(), functional{}()] + axiom {R} \implies{R}( + \and{R}( + \top{R}(), + \and{R}( + \in{SortK{}, R}(X0:SortK{}, dotk{}()), + \and{R}( + \in{SortK{}, R}(X1:SortK{}, TAIL:SortK{}), + \top{R}() + )) + ), + \equals{SortK{}, R}( + append{}(X0:SortK{}, X1:SortK{}), + \and{SortK{}}( + TAIL:SortK{}, + \top{SortK{}}() + ) + ) + ) [] + axiom {R} \implies{R}( + \and{R}( + \top{R}(), + \and{R}( + \in{SortK{}, R}(X0:SortK{}, kseq{}(K:SortKItem{}, KS:SortK{})), + \and{R}( + \in{SortK{}, R}(X1:SortK{}, TAIL:SortK{}), + \top{R}() + )) + ), + \equals{SortK{}, R}( + append{}(X0:SortK{}, X1:SortK{}), + \and{SortK{}}( + kseq{}(K:SortKItem{}, append{}(KS:SortK{}, TAIL:SortK{})), + \top{SortK{}}() + ) + ) + ) [] +endmodule +[] +module INJ + symbol inj{From, To}(From) : To [sortInjection{}()] + axiom {S1, S2, S3, R} \equals{S3, R}(inj{S2, S3}(inj{S1, S2}(T:S1)), inj{S1, S3}(T:S1)) [simplification{}()] +endmodule +[] +module K + import KSEQ [] + import INJ [] + alias weakExistsFinally{A}(A) : A where weakExistsFinally{A}(@X:A) := @X:A [] + alias weakAlwaysFinally{A}(A) : A where weakAlwaysFinally{A}(@X:A) := @X:A [] + alias allPathGlobally{A}(A) : A where allPathGlobally{A}(@X:A) := @X:A [] +endmodule +[] + +module TEST + +// imports + import K [] + +// sorts + sort SortKCellOpt{} [] + sort SortKCell{} [] + hooked-sort SortMap{} [concat{}(Lbl'Unds'Map'Unds'{}()), element{}(Lbl'UndsPipe'-'-GT-Unds'{}()), hook{}("MAP.Map"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(218,3,218,29)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), unit{}(Lbl'Stop'Map{}())] + sort SortGeneratedCounterCellOpt{} [] + sort SortKConfigVar{} [hasDomainValues{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(40,3,40,28)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/kast.md)"), token{}()] + sort SortAbcd{} [] + hooked-sort SortInt{} [hasDomainValues{}(), hook{}("INT.Int"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1198,3,1198,29)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + hooked-sort SortSet{} [concat{}(Lbl'Unds'Set'Unds'{}()), element{}(LblSetItem{}()), hook{}("SET.Set"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(700,3,700,29)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), unit{}(Lbl'Stop'Set{}())] + hooked-sort SortBool{} [hasDomainValues{}(), hook{}("BOOL.Bool"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1077,3,1077,32)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + sort SortGeneratedTopCellFragment{} [] + hooked-sort SortList{} [concat{}(Lbl'Unds'List'Unds'{}()), element{}(LblListItem{}()), hook{}("LIST.List"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(913,3,913,32)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), unit{}(Lbl'Stop'List{}()), update{}(LblList'Coln'set{}())] + sort SortGeneratedTopCell{} [] + sort SortGeneratedCounterCell{} [] + +// symbols + hooked-symbol Lbl'Stop'List{}() : SortList{} [function{}(), functional{}(), hook{}("LIST.unit"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(937,19,937,113)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), smtlib{}("smt_seq_nil"), symbol'Kywd'{}(".List"), total{}()] + hooked-symbol Lbl'Stop'Map{}() : SortMap{} [function{}(), functional{}(), hook{}("MAP.unit"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(248,18,248,96)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}(".Map"), total{}()] + hooked-symbol Lbl'Stop'Set{}() : SortSet{} [function{}(), functional{}(), hook{}("SET.unit"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(729,18,729,90)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}(".Set"), total{}()] + symbol Lbl'-LT-'generatedCounter'-GT-'{}(SortInt{}) : SortGeneratedCounterCell{} [cell{}(), constructor{}(), functional{}(), injective{}()] + symbol Lbl'-LT-'generatedTop'-GT-'{}(SortKCell{}, SortGeneratedCounterCell{}) : SortGeneratedTopCell{} [cell{}(), constructor{}(), functional{}(), injective{}()] + symbol Lbl'-LT-'generatedTop'-GT-'-fragment{}(SortKCellOpt{}, SortGeneratedCounterCellOpt{}) : SortGeneratedTopCellFragment{} [constructor{}(), functional{}(), injective{}()] + symbol Lbl'-LT-'k'-GT-'{}(SortK{}) : SortKCell{} [cell{}(), constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(7,7,7,31)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + symbol LblA'Unds'TEST'Unds'Abcd{}() : SortAbcd{} [constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(9,19,9,22)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + symbol LblB'Unds'TEST'Unds'Abcd{}() : SortAbcd{} [constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(9,25,9,28)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + symbol LblCons{}(SortAbcd{}) : SortAbcd{} [constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(13,19,13,47)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)"), symbol'Kywd'{}("Cons")] + symbol LblDone{}() : SortKItem{} [constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(11,20,11,48)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)"), symbol'Kywd'{}("Done")] + hooked-symbol LblList'Coln'get{}(SortList{}, SortInt{}) : SortKItem{} [function{}(), hook{}("LIST.get"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(965,20,965,91)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("List:get")] + hooked-symbol LblList'Coln'range{}(SortList{}, SortInt{}, SortInt{}) : SortList{} [function{}(), hook{}("LIST.range"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1012,19,1012,112)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("List:range")] + hooked-symbol LblList'Coln'set{}(SortList{}, SortInt{}, SortKItem{}) : SortList{} [function{}(), hook{}("LIST.update"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(974,19,974,108)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("List:set")] + hooked-symbol LblListItem{}(SortKItem{}) : SortList{} [function{}(), functional{}(), hook{}("LIST.element"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(945,19,945,124)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), smtlib{}("smt_seq_elem"), symbol'Kywd'{}("ListItem"), total{}()] + hooked-symbol LblMap'Coln'choice{}(SortMap{}) : SortKItem{} [function{}(), hook{}("MAP.choice"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(393,20,393,101)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Map:choice")] + hooked-symbol LblMap'Coln'lookup{}(SortMap{}, SortKItem{}) : SortKItem{} [function{}(), hook{}("MAP.lookup"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(271,20,271,105)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Map:lookup")] + hooked-symbol LblMap'Coln'lookupOrDefault{}(SortMap{}, SortKItem{}, SortKItem{}) : SortKItem{} [function{}(), functional{}(), hook{}("MAP.lookupOrDefault"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(281,20,281,134)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Map:lookupOrDefault"), total{}()] + hooked-symbol LblMap'Coln'update{}(SortMap{}, SortKItem{}, SortKItem{}) : SortMap{} [function{}(), functional{}(), hook{}("MAP.update"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(290,18,290,132)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Map:update"), total{}()] + hooked-symbol LblSet'Coln'choice{}(SortSet{}) : SortKItem{} [function{}(), hook{}("SET.choice"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(804,20,804,95)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Set:choice")] + hooked-symbol LblSet'Coln'difference{}(SortSet{}, SortSet{}) : SortSet{} [function{}(), functional{}(), hook{}("SET.difference"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(769,18,769,106)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Set:difference"), total{}()] + hooked-symbol LblSet'Coln'in{}(SortKItem{}, SortSet{}) : SortBool{} [function{}(), functional{}(), hook{}("SET.in"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(777,19,777,94)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("Set:in"), total{}()] + hooked-symbol LblSetItem{}(SortKItem{}) : SortSet{} [function{}(), functional{}(), hook{}("SET.element"), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(737,18,737,111)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("SetItem"), total{}()] + hooked-symbol Lbl'Unds'-Map'UndsUnds'MAP'Unds'Map'Unds'Map'Unds'Map{}(SortMap{}, SortMap{}) : SortMap{} [function{}(), functional{}(), hook{}("MAP.difference"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(311,18,311,88)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lbl'Unds-LT-Eqls'Map'UndsUnds'MAP'Unds'Bool'Unds'Map'Unds'Map{}(SortMap{}, SortMap{}) : SortBool{} [function{}(), functional{}(), hook{}("MAP.inclusion"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(383,19,383,87)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lbl'Unds-LT-Eqls'Set'UndsUnds'SET'Unds'Bool'Unds'Set'Unds'Set{}(SortSet{}, SortSet{}) : SortBool{} [function{}(), functional{}(), hook{}("SET.inclusion"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(786,19,786,81)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lbl'Unds'List'Unds'{}(SortList{}, SortList{}) : SortList{} [element{}(LblListItem{}()), function{}(), functional{}(), hook{}("LIST.concat"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(929,19,929,198)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), smtlib{}("smt_seq_concat"), symbol'Kywd'{}("_List_"), total{}(), unit{}(Lbl'Stop'List{}()), update{}(LblList'Coln'set{}())] + hooked-symbol Lbl'Unds'Map'Unds'{}(SortMap{}, SortMap{}) : SortMap{} [element{}(Lbl'UndsPipe'-'-GT-Unds'{}()), function{}(), hook{}("MAP.concat"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(240,18,240,165)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_Map_"), unit{}(Lbl'Stop'Map{}())] + hooked-symbol Lbl'Unds'Set'Unds'{}(SortSet{}, SortSet{}) : SortSet{} [element{}(LblSetItem{}()), function{}(), hook{}("SET.concat"), idem{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(721,18,721,157)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_Set_"), unit{}(Lbl'Stop'Set{}())] + hooked-symbol Lbl'UndsLSqBUnds-LT-'-undef'RSqB'{}(SortMap{}, SortKItem{}) : SortMap{} [function{}(), functional{}(), hook{}("MAP.remove"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(299,18,299,109)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_[_<-undef]"), total{}()] + hooked-symbol Lbl'Unds'inList'Unds'{}(SortKItem{}, SortList{}) : SortBool{} [function{}(), functional{}(), hook{}("LIST.in"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1021,19,1021,97)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_inList_"), total{}()] + hooked-symbol Lbl'Unds'in'Unds'keys'LParUndsRParUnds'MAP'Unds'Bool'Unds'KItem'Unds'Map{}(SortKItem{}, SortMap{}) : SortBool{} [function{}(), functional{}(), hook{}("MAP.in_keys"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(357,19,357,89)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lbl'UndsPipe'-'-GT-Unds'{}(SortKItem{}, SortKItem{}) : SortMap{} [function{}(), functional{}(), hook{}("MAP.element"), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(257,18,257,119)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_|->_"), total{}()] + hooked-symbol Lbl'UndsPipe'Set'UndsUnds'SET'Unds'Set'Unds'Set'Unds'Set{}(SortSet{}, SortSet{}) : SortSet{} [function{}(), functional{}(), hook{}("SET.union"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(748,18,748,92)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + symbol Lblf{}(SortAbcd{}) : SortAbcd{} [function{}(), functional{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(14,19,14,61)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)"), symbol'Kywd'{}("f"), total{}()] + hooked-symbol LblfillList'LParUndsCommUndsCommUndsCommUndsRParUnds'LIST'Unds'List'Unds'List'Unds'Int'Unds'Int'Unds'KItem{}(SortList{}, SortInt{}, SortInt{}, SortKItem{}) : SortList{} [function{}(), hook{}("LIST.fill"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1002,19,1002,100)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + symbol LblgetGeneratedCounterCell{}(SortGeneratedTopCell{}) : SortGeneratedCounterCell{} [function{}()] + symbol LblinitGeneratedCounterCell{}() : SortGeneratedCounterCell{} [function{}(), functional{}(), total{}()] + symbol LblinitGeneratedTopCell{}(SortMap{}) : SortGeneratedTopCell{} [function{}()] + symbol LblinitKCell{}(SortMap{}) : SortKCell{} [function{}()] + hooked-symbol LblintersectSet'LParUndsCommUndsRParUnds'SET'Unds'Set'Unds'Set'Unds'Set{}(SortSet{}, SortSet{}) : SortSet{} [function{}(), functional{}(), hook{}("SET.intersection"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(759,18,759,90)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + symbol LblisAbcd{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisBool{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisGeneratedCounterCell{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisGeneratedCounterCellOpt{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisGeneratedTopCell{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisGeneratedTopCellFragment{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisInt{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisK{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisKCell{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisKCellOpt{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisKConfigVar{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisKItem{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisList{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisMap{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + symbol LblisSet{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()] + hooked-symbol Lblkeys'LParUndsRParUnds'MAP'Unds'Set'Unds'Map{}(SortMap{}) : SortSet{} [function{}(), functional{}(), hook{}("MAP.keys"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(341,18,341,82)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lblkeys'Unds'list'LParUndsRParUnds'MAP'Unds'List'Unds'Map{}(SortMap{}) : SortList{} [function{}(), hook{}("MAP.keys_list"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(349,19,349,80)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + hooked-symbol LblmakeList'LParUndsCommUndsRParUnds'LIST'Unds'List'Unds'Int'Unds'KItem{}(SortInt{}, SortKItem{}) : SortList{} [function{}(), hook{}("LIST.make"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(983,19,983,82)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + symbol LblnoGeneratedCounterCell{}() : SortGeneratedCounterCellOpt{} [constructor{}(), functional{}(), injective{}()] + symbol LblnoKCell{}() : SortKCellOpt{} [constructor{}(), functional{}(), injective{}()] + symbol Lblproject'Coln'Abcd{}(SortK{}) : SortAbcd{} [function{}()] + symbol Lblproject'Coln'Bool{}(SortK{}) : SortBool{} [function{}()] + symbol Lblproject'Coln'GeneratedCounterCell{}(SortK{}) : SortGeneratedCounterCell{} [function{}()] + symbol Lblproject'Coln'GeneratedCounterCellOpt{}(SortK{}) : SortGeneratedCounterCellOpt{} [function{}()] + symbol Lblproject'Coln'GeneratedTopCell{}(SortK{}) : SortGeneratedTopCell{} [function{}()] + symbol Lblproject'Coln'GeneratedTopCellFragment{}(SortK{}) : SortGeneratedTopCellFragment{} [function{}()] + symbol Lblproject'Coln'Int{}(SortK{}) : SortInt{} [function{}()] + symbol Lblproject'Coln'K{}(SortK{}) : SortK{} [function{}()] + symbol Lblproject'Coln'KCell{}(SortK{}) : SortKCell{} [function{}()] + symbol Lblproject'Coln'KCellOpt{}(SortK{}) : SortKCellOpt{} [function{}()] + symbol Lblproject'Coln'KItem{}(SortK{}) : SortKItem{} [function{}()] + symbol Lblproject'Coln'List{}(SortK{}) : SortList{} [function{}()] + symbol Lblproject'Coln'Map{}(SortK{}) : SortMap{} [function{}()] + symbol Lblproject'Coln'Set{}(SortK{}) : SortSet{} [function{}()] + hooked-symbol LblpushList{}(SortKItem{}, SortList{}) : SortList{} [function{}(), functional{}(), hook{}("LIST.push"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(953,19,953,99)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("pushList"), total{}()] + hooked-symbol LblremoveAll'LParUndsCommUndsRParUnds'MAP'Unds'Map'Unds'Map'Unds'Set{}(SortMap{}, SortSet{}) : SortMap{} [function{}(), functional{}(), hook{}("MAP.removeAll"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(333,18,333,87)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lblsize'LParUndsRParUnds'SET'Unds'Int'Unds'Set{}(SortSet{}) : SortInt{} [function{}(), functional{}(), hook{}("SET.size"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(794,18,794,76)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol LblsizeList{}(SortList{}) : SortInt{} [function{}(), functional{}(), hook{}("LIST.size"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1029,18,1029,116)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), smtlib{}("smt_seq_len"), symbol'Kywd'{}("sizeList"), total{}()] + hooked-symbol LblsizeMap{}(SortMap{}) : SortInt{} [function{}(), functional{}(), hook{}("MAP.size"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(373,18,373,99)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("sizeMap"), total{}()] + hooked-symbol LblupdateList'LParUndsCommUndsCommUndsRParUnds'LIST'Unds'List'Unds'List'Unds'Int'Unds'List{}(SortList{}, SortInt{}, SortList{}) : SortList{} [function{}(), hook{}("LIST.updateAll"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(993,19,993,97)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + hooked-symbol LblupdateMap'LParUndsCommUndsRParUnds'MAP'Unds'Map'Unds'Map'Unds'Map{}(SortMap{}, SortMap{}) : SortMap{} [function{}(), functional{}(), hook{}("MAP.updateAll"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(324,18,324,87)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)"), total{}()] + hooked-symbol Lblvalues'LParUndsRParUnds'MAP'Unds'List'Unds'Map{}(SortMap{}) : SortList{} [function{}(), hook{}("MAP.values"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(365,19,365,77)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + +// generated axioms + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortAbcd{}, SortKItem{}} (From:SortAbcd{}))) [subsort{SortAbcd{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortKCellOpt{}, SortKItem{}} (From:SortKCellOpt{}))) [subsort{SortKCellOpt{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKCellOpt{}, \equals{SortKCellOpt{}, R} (Val:SortKCellOpt{}, inj{SortKCell{}, SortKCellOpt{}} (From:SortKCell{}))) [subsort{SortKCell{}, SortKCellOpt{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortMap{}, SortKItem{}} (From:SortMap{}))) [subsort{SortMap{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortKCell{}, SortKItem{}} (From:SortKCell{}))) [subsort{SortKCell{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortSet{}, SortKItem{}} (From:SortSet{}))) [subsort{SortSet{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortList{}, SortKItem{}} (From:SortList{}))) [subsort{SortList{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortGeneratedCounterCellOpt{}, SortKItem{}} (From:SortGeneratedCounterCellOpt{}))) [subsort{SortGeneratedCounterCellOpt{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortGeneratedTopCell{}, SortKItem{}} (From:SortGeneratedTopCell{}))) [subsort{SortGeneratedTopCell{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortGeneratedCounterCell{}, SortKItem{}} (From:SortGeneratedCounterCell{}))) [subsort{SortGeneratedCounterCell{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortBool{}, SortKItem{}} (From:SortBool{}))) [subsort{SortBool{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortGeneratedCounterCellOpt{}, \equals{SortGeneratedCounterCellOpt{}, R} (Val:SortGeneratedCounterCellOpt{}, inj{SortGeneratedCounterCell{}, SortGeneratedCounterCellOpt{}} (From:SortGeneratedCounterCell{}))) [subsort{SortGeneratedCounterCell{}, SortGeneratedCounterCellOpt{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortGeneratedTopCellFragment{}, SortKItem{}} (From:SortGeneratedTopCellFragment{}))) [subsort{SortGeneratedTopCellFragment{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortInt{}, SortKItem{}} (From:SortInt{}))) [subsort{SortInt{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortKConfigVar{}, SortKItem{}} (From:SortKConfigVar{}))) [subsort{SortKConfigVar{}, SortKItem{}}()] // subsort + axiom{R} \exists{R} (Val:SortList{}, \equals{SortList{}, R} (Val:SortList{}, Lbl'Stop'List{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, Lbl'Stop'Map{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortSet{}, \equals{SortSet{}, R} (Val:SortSet{}, Lbl'Stop'Set{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortGeneratedCounterCell{}, \equals{SortGeneratedCounterCell{}, R} (Val:SortGeneratedCounterCell{}, Lbl'-LT-'generatedCounter'-GT-'{}(K0:SortInt{}))) [functional{}()] // functional + axiom{}\implies{SortGeneratedCounterCell{}} (\and{SortGeneratedCounterCell{}} (Lbl'-LT-'generatedCounter'-GT-'{}(X0:SortInt{}), Lbl'-LT-'generatedCounter'-GT-'{}(Y0:SortInt{})), Lbl'-LT-'generatedCounter'-GT-'{}(\and{SortInt{}} (X0:SortInt{}, Y0:SortInt{}))) [constructor{}()] // no confusion same constructor + axiom{R} \exists{R} (Val:SortGeneratedTopCell{}, \equals{SortGeneratedTopCell{}, R} (Val:SortGeneratedTopCell{}, Lbl'-LT-'generatedTop'-GT-'{}(K0:SortKCell{}, K1:SortGeneratedCounterCell{}))) [functional{}()] // functional + axiom{}\implies{SortGeneratedTopCell{}} (\and{SortGeneratedTopCell{}} (Lbl'-LT-'generatedTop'-GT-'{}(X0:SortKCell{}, X1:SortGeneratedCounterCell{}), Lbl'-LT-'generatedTop'-GT-'{}(Y0:SortKCell{}, Y1:SortGeneratedCounterCell{})), Lbl'-LT-'generatedTop'-GT-'{}(\and{SortKCell{}} (X0:SortKCell{}, Y0:SortKCell{}), \and{SortGeneratedCounterCell{}} (X1:SortGeneratedCounterCell{}, Y1:SortGeneratedCounterCell{}))) [constructor{}()] // no confusion same constructor + axiom{R} \exists{R} (Val:SortGeneratedTopCellFragment{}, \equals{SortGeneratedTopCellFragment{}, R} (Val:SortGeneratedTopCellFragment{}, Lbl'-LT-'generatedTop'-GT-'-fragment{}(K0:SortKCellOpt{}, K1:SortGeneratedCounterCellOpt{}))) [functional{}()] // functional + axiom{}\implies{SortGeneratedTopCellFragment{}} (\and{SortGeneratedTopCellFragment{}} (Lbl'-LT-'generatedTop'-GT-'-fragment{}(X0:SortKCellOpt{}, X1:SortGeneratedCounterCellOpt{}), Lbl'-LT-'generatedTop'-GT-'-fragment{}(Y0:SortKCellOpt{}, Y1:SortGeneratedCounterCellOpt{})), Lbl'-LT-'generatedTop'-GT-'-fragment{}(\and{SortKCellOpt{}} (X0:SortKCellOpt{}, Y0:SortKCellOpt{}), \and{SortGeneratedCounterCellOpt{}} (X1:SortGeneratedCounterCellOpt{}, Y1:SortGeneratedCounterCellOpt{}))) [constructor{}()] // no confusion same constructor + axiom{R} \exists{R} (Val:SortKCell{}, \equals{SortKCell{}, R} (Val:SortKCell{}, Lbl'-LT-'k'-GT-'{}(K0:SortK{}))) [functional{}()] // functional + axiom{}\implies{SortKCell{}} (\and{SortKCell{}} (Lbl'-LT-'k'-GT-'{}(X0:SortK{}), Lbl'-LT-'k'-GT-'{}(Y0:SortK{})), Lbl'-LT-'k'-GT-'{}(\and{SortK{}} (X0:SortK{}, Y0:SortK{}))) [constructor{}()] // no confusion same constructor + axiom{R} \exists{R} (Val:SortAbcd{}, \equals{SortAbcd{}, R} (Val:SortAbcd{}, LblA'Unds'TEST'Unds'Abcd{}())) [functional{}()] // functional + axiom{}\not{SortAbcd{}} (\and{SortAbcd{}} (LblA'Unds'TEST'Unds'Abcd{}(), LblB'Unds'TEST'Unds'Abcd{}())) [constructor{}()] // no confusion different constructors + axiom{}\not{SortAbcd{}} (\and{SortAbcd{}} (LblA'Unds'TEST'Unds'Abcd{}(), LblCons{}(Y0:SortAbcd{}))) [constructor{}()] // no confusion different constructors + axiom{R} \exists{R} (Val:SortAbcd{}, \equals{SortAbcd{}, R} (Val:SortAbcd{}, LblB'Unds'TEST'Unds'Abcd{}())) [functional{}()] // functional + axiom{}\not{SortAbcd{}} (\and{SortAbcd{}} (LblB'Unds'TEST'Unds'Abcd{}(), LblCons{}(Y0:SortAbcd{}))) [constructor{}()] // no confusion different constructors + axiom{R} \exists{R} (Val:SortAbcd{}, \equals{SortAbcd{}, R} (Val:SortAbcd{}, LblCons{}(K0:SortAbcd{}))) [functional{}()] // functional + axiom{}\implies{SortAbcd{}} (\and{SortAbcd{}} (LblCons{}(X0:SortAbcd{}), LblCons{}(Y0:SortAbcd{})), LblCons{}(\and{SortAbcd{}} (X0:SortAbcd{}, Y0:SortAbcd{}))) [constructor{}()] // no confusion same constructor + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, LblDone{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortList{}, \equals{SortList{}, R} (Val:SortList{}, LblListItem{}(K0:SortKItem{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, LblMap'Coln'lookupOrDefault{}(K0:SortMap{}, K1:SortKItem{}, K2:SortKItem{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, LblMap'Coln'update{}(K0:SortMap{}, K1:SortKItem{}, K2:SortKItem{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortSet{}, \equals{SortSet{}, R} (Val:SortSet{}, LblSet'Coln'difference{}(K0:SortSet{}, K1:SortSet{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblSet'Coln'in{}(K0:SortKItem{}, K1:SortSet{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortSet{}, \equals{SortSet{}, R} (Val:SortSet{}, LblSetItem{}(K0:SortKItem{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, Lbl'Unds'-Map'UndsUnds'MAP'Unds'Map'Unds'Map'Unds'Map{}(K0:SortMap{}, K1:SortMap{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds-LT-Eqls'Map'UndsUnds'MAP'Unds'Bool'Unds'Map'Unds'Map{}(K0:SortMap{}, K1:SortMap{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds-LT-Eqls'Set'UndsUnds'SET'Unds'Bool'Unds'Set'Unds'Set{}(K0:SortSet{}, K1:SortSet{}))) [functional{}()] // functional + axiom{R} \equals{SortList{}, R} (Lbl'Unds'List'Unds'{}(Lbl'Unds'List'Unds'{}(K1:SortList{},K2:SortList{}),K3:SortList{}),Lbl'Unds'List'Unds'{}(K1:SortList{},Lbl'Unds'List'Unds'{}(K2:SortList{},K3:SortList{}))) [assoc{}()] // associativity + axiom{R}\equals{SortList{}, R} (Lbl'Unds'List'Unds'{}(K:SortList{},Lbl'Stop'List{}()),K:SortList{}) [unit{}()] // right unit + axiom{R}\equals{SortList{}, R} (Lbl'Unds'List'Unds'{}(Lbl'Stop'List{}(),K:SortList{}),K:SortList{}) [unit{}()] // left unit + axiom{R} \exists{R} (Val:SortList{}, \equals{SortList{}, R} (Val:SortList{}, Lbl'Unds'List'Unds'{}(K0:SortList{}, K1:SortList{}))) [functional{}()] // functional + axiom{R} \equals{SortMap{}, R} (Lbl'Unds'Map'Unds'{}(Lbl'Unds'Map'Unds'{}(K1:SortMap{},K2:SortMap{}),K3:SortMap{}),Lbl'Unds'Map'Unds'{}(K1:SortMap{},Lbl'Unds'Map'Unds'{}(K2:SortMap{},K3:SortMap{}))) [assoc{}()] // associativity + axiom{R}\equals{SortMap{}, R} (Lbl'Unds'Map'Unds'{}(K:SortMap{},Lbl'Stop'Map{}()),K:SortMap{}) [unit{}()] // right unit + axiom{R}\equals{SortMap{}, R} (Lbl'Unds'Map'Unds'{}(Lbl'Stop'Map{}(),K:SortMap{}),K:SortMap{}) [unit{}()] // left unit + axiom{R} \equals{SortSet{}, R} (Lbl'Unds'Set'Unds'{}(Lbl'Unds'Set'Unds'{}(K1:SortSet{},K2:SortSet{}),K3:SortSet{}),Lbl'Unds'Set'Unds'{}(K1:SortSet{},Lbl'Unds'Set'Unds'{}(K2:SortSet{},K3:SortSet{}))) [assoc{}()] // associativity + axiom{R} \equals{SortSet{}, R} (Lbl'Unds'Set'Unds'{}(K:SortSet{},K:SortSet{}),K:SortSet{}) [idem{}()] // idempotency + axiom{R}\equals{SortSet{}, R} (Lbl'Unds'Set'Unds'{}(K:SortSet{},Lbl'Stop'Set{}()),K:SortSet{}) [unit{}()] // right unit + axiom{R}\equals{SortSet{}, R} (Lbl'Unds'Set'Unds'{}(Lbl'Stop'Set{}(),K:SortSet{}),K:SortSet{}) [unit{}()] // left unit + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, Lbl'UndsLSqBUnds-LT-'-undef'RSqB'{}(K0:SortMap{}, K1:SortKItem{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'inList'Unds'{}(K0:SortKItem{}, K1:SortList{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'in'Unds'keys'LParUndsRParUnds'MAP'Unds'Bool'Unds'KItem'Unds'Map{}(K0:SortKItem{}, K1:SortMap{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, Lbl'UndsPipe'-'-GT-Unds'{}(K0:SortKItem{}, K1:SortKItem{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortSet{}, \equals{SortSet{}, R} (Val:SortSet{}, Lbl'UndsPipe'Set'UndsUnds'SET'Unds'Set'Unds'Set'Unds'Set{}(K0:SortSet{}, K1:SortSet{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortAbcd{}, \equals{SortAbcd{}, R} (Val:SortAbcd{}, Lblf{}(K0:SortAbcd{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortGeneratedCounterCell{}, \equals{SortGeneratedCounterCell{}, R} (Val:SortGeneratedCounterCell{}, LblinitGeneratedCounterCell{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortSet{}, \equals{SortSet{}, R} (Val:SortSet{}, LblintersectSet'LParUndsCommUndsRParUnds'SET'Unds'Set'Unds'Set'Unds'Set{}(K0:SortSet{}, K1:SortSet{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisAbcd{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisBool{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisGeneratedCounterCell{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisGeneratedCounterCellOpt{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisGeneratedTopCell{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisGeneratedTopCellFragment{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisInt{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisK{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisKCell{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisKCellOpt{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisKConfigVar{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisKItem{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisList{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisMap{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisSet{}(K0:SortK{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortSet{}, \equals{SortSet{}, R} (Val:SortSet{}, Lblkeys'LParUndsRParUnds'MAP'Unds'Set'Unds'Map{}(K0:SortMap{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortGeneratedCounterCellOpt{}, \equals{SortGeneratedCounterCellOpt{}, R} (Val:SortGeneratedCounterCellOpt{}, LblnoGeneratedCounterCell{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortKCellOpt{}, \equals{SortKCellOpt{}, R} (Val:SortKCellOpt{}, LblnoKCell{}())) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortList{}, \equals{SortList{}, R} (Val:SortList{}, LblpushList{}(K0:SortKItem{}, K1:SortList{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, LblremoveAll'LParUndsCommUndsRParUnds'MAP'Unds'Map'Unds'Map'Unds'Set{}(K0:SortMap{}, K1:SortSet{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lblsize'LParUndsRParUnds'SET'Unds'Int'Unds'Set{}(K0:SortSet{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, LblsizeList{}(K0:SortList{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, LblsizeMap{}(K0:SortMap{}))) [functional{}()] // functional + axiom{R} \exists{R} (Val:SortMap{}, \equals{SortMap{}, R} (Val:SortMap{}, LblupdateMap'LParUndsCommUndsRParUnds'MAP'Unds'Map'Unds'Map'Unds'Map{}(K0:SortMap{}, K1:SortMap{}))) [functional{}()] // functional + axiom{} \or{SortAbcd{}} (LblA'Unds'TEST'Unds'Abcd{}(), LblB'Unds'TEST'Unds'Abcd{}(), \exists{SortAbcd{}} (X0:SortAbcd{}, LblCons{}(X0:SortAbcd{})), \bottom{SortAbcd{}}()) [constructor{}()] // no junk + axiom{} \or{SortBool{}} (\top{SortBool{}}(), \bottom{SortBool{}}()) [constructor{}()] // no junk (TODO: fix bug with \dv) + axiom{} \or{SortGeneratedCounterCell{}} (\exists{SortGeneratedCounterCell{}} (X0:SortInt{}, Lbl'-LT-'generatedCounter'-GT-'{}(X0:SortInt{})), \bottom{SortGeneratedCounterCell{}}()) [constructor{}()] // no junk + axiom{} \or{SortGeneratedCounterCellOpt{}} (LblnoGeneratedCounterCell{}(), \exists{SortGeneratedCounterCellOpt{}} (Val:SortGeneratedCounterCell{}, inj{SortGeneratedCounterCell{}, SortGeneratedCounterCellOpt{}} (Val:SortGeneratedCounterCell{})), \bottom{SortGeneratedCounterCellOpt{}}()) [constructor{}()] // no junk + axiom{} \or{SortGeneratedTopCell{}} (\exists{SortGeneratedTopCell{}} (X0:SortKCell{}, \exists{SortGeneratedTopCell{}} (X1:SortGeneratedCounterCell{}, Lbl'-LT-'generatedTop'-GT-'{}(X0:SortKCell{}, X1:SortGeneratedCounterCell{}))), \bottom{SortGeneratedTopCell{}}()) [constructor{}()] // no junk + axiom{} \or{SortGeneratedTopCellFragment{}} (\exists{SortGeneratedTopCellFragment{}} (X0:SortKCellOpt{}, \exists{SortGeneratedTopCellFragment{}} (X1:SortGeneratedCounterCellOpt{}, Lbl'-LT-'generatedTop'-GT-'-fragment{}(X0:SortKCellOpt{}, X1:SortGeneratedCounterCellOpt{}))), \bottom{SortGeneratedTopCellFragment{}}()) [constructor{}()] // no junk + axiom{} \or{SortInt{}} (\top{SortInt{}}(), \bottom{SortInt{}}()) [constructor{}()] // no junk (TODO: fix bug with \dv) + axiom{} \or{SortKCell{}} (\exists{SortKCell{}} (X0:SortK{}, Lbl'-LT-'k'-GT-'{}(X0:SortK{})), \bottom{SortKCell{}}()) [constructor{}()] // no junk + axiom{} \or{SortKCellOpt{}} (LblnoKCell{}(), \exists{SortKCellOpt{}} (Val:SortKCell{}, inj{SortKCell{}, SortKCellOpt{}} (Val:SortKCell{})), \bottom{SortKCellOpt{}}()) [constructor{}()] // no junk + axiom{} \or{SortKConfigVar{}} (\top{SortKConfigVar{}}(), \bottom{SortKConfigVar{}}()) [constructor{}()] // no junk (TODO: fix bug with \dv) + axiom{} \or{SortKItem{}} (LblDone{}(), \exists{SortKItem{}} (Val:SortAbcd{}, inj{SortAbcd{}, SortKItem{}} (Val:SortAbcd{})), \exists{SortKItem{}} (Val:SortBool{}, inj{SortBool{}, SortKItem{}} (Val:SortBool{})), \exists{SortKItem{}} (Val:SortGeneratedCounterCell{}, inj{SortGeneratedCounterCell{}, SortKItem{}} (Val:SortGeneratedCounterCell{})), \exists{SortKItem{}} (Val:SortGeneratedCounterCellOpt{}, inj{SortGeneratedCounterCellOpt{}, SortKItem{}} (Val:SortGeneratedCounterCellOpt{})), \exists{SortKItem{}} (Val:SortGeneratedTopCell{}, inj{SortGeneratedTopCell{}, SortKItem{}} (Val:SortGeneratedTopCell{})), \exists{SortKItem{}} (Val:SortGeneratedTopCellFragment{}, inj{SortGeneratedTopCellFragment{}, SortKItem{}} (Val:SortGeneratedTopCellFragment{})), \exists{SortKItem{}} (Val:SortInt{}, inj{SortInt{}, SortKItem{}} (Val:SortInt{})), \exists{SortKItem{}} (Val:SortKCell{}, inj{SortKCell{}, SortKItem{}} (Val:SortKCell{})), \exists{SortKItem{}} (Val:SortKCellOpt{}, inj{SortKCellOpt{}, SortKItem{}} (Val:SortKCellOpt{})), \exists{SortKItem{}} (Val:SortKConfigVar{}, inj{SortKConfigVar{}, SortKItem{}} (Val:SortKConfigVar{})), \exists{SortKItem{}} (Val:SortList{}, inj{SortList{}, SortKItem{}} (Val:SortList{})), \exists{SortKItem{}} (Val:SortMap{}, inj{SortMap{}, SortKItem{}} (Val:SortMap{})), \exists{SortKItem{}} (Val:SortSet{}, inj{SortSet{}, SortKItem{}} (Val:SortSet{})), \bottom{SortKItem{}}()) [constructor{}()] // no junk + +// rules +// rule ``(``(inj{Abcd,KItem}(_X)~>_DotVar1),_DotVar0)=>``(``(inj{Abcd,KItem}(`B_TEST_Abcd`(.KList))~>_DotVar1),_DotVar0) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(66549aca8c373015b5e47f1e9b56c95a03404cfb79a2f253dbda3a34916340ae), cool-like, label(TEST.varrule), org.kframework.attributes.Location(Location(40,5,40,30)), org.kframework.attributes.Source(Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), owise] + axiom{} \rewrites{SortGeneratedTopCell{}} ( + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(inj{SortAbcd{}, SortKItem{}}(Var'Unds'X:SortAbcd{}),Var'Unds'DotVar1:SortK{})),Var'Unds'DotVar0:SortGeneratedCounterCell{}), + \top{SortGeneratedTopCell{}}()), + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(inj{SortAbcd{}, SortKItem{}}(LblB'Unds'TEST'Unds'Abcd{}()),Var'Unds'DotVar1:SortK{})),Var'Unds'DotVar0:SortGeneratedCounterCell{}), \top{SortGeneratedTopCell{}}())) + [UNIQUE'Unds'ID{}("66549aca8c373015b5e47f1e9b56c95a03404cfb79a2f253dbda3a34916340ae"), cool-like{}(), label{}("TEST.varrule"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(40,5,40,30)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)"), owise{}()] + +// rule ``(``(inj{Abcd,KItem}(`A_TEST_Abcd`(.KList))~>_DotVar1),_DotVar0)=>``(``(`Done`(.KList)~>_DotVar1),_DotVar0) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(eb4d1c0a7d12f47ae8eb4bdf70d7c66f84caa154911e66b115a60dae99ae44a0), label(TEST.Vrule), org.kframework.attributes.Location(Location(34,5,34,27)), org.kframework.attributes.Source(Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])] + axiom{} \rewrites{SortGeneratedTopCell{}} ( + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(inj{SortAbcd{}, SortKItem{}}(LblA'Unds'TEST'Unds'Abcd{}()),Var'Unds'DotVar1:SortK{})),Var'Unds'DotVar0:SortGeneratedCounterCell{}), + \top{SortGeneratedTopCell{}}()), + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(LblDone{}(),Var'Unds'DotVar1:SortK{})),Var'Unds'DotVar0:SortGeneratedCounterCell{}), \top{SortGeneratedTopCell{}}())) + [UNIQUE'Unds'ID{}("eb4d1c0a7d12f47ae8eb4bdf70d7c66f84caa154911e66b115a60dae99ae44a0"), label{}("TEST.Vrule"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(34,5,34,27)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + +// rule ``(``(inj{Abcd,KItem}(`Cons`(I))~>_DotVar1),_DotVar0)=>``(``(inj{Abcd,KItem}(f(I))~>_DotVar1),_DotVar0) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(dc945faed79e5e35f7cdf38a8c1dc6ebc3a9986ca2a2a7a939ab677f67392e60), label(TEST.consrule), org.kframework.attributes.Location(Location(37,5,37,33)), org.kframework.attributes.Source(Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])] + axiom{} \rewrites{SortGeneratedTopCell{}} ( + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(inj{SortAbcd{}, SortKItem{}}(LblCons{}(VarI:SortAbcd{})),Var'Unds'DotVar1:SortK{})),Var'Unds'DotVar0:SortGeneratedCounterCell{}), + \top{SortGeneratedTopCell{}}()), + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(inj{SortAbcd{}, SortKItem{}}(Lblf{}(VarI:SortAbcd{})),Var'Unds'DotVar1:SortK{})),Var'Unds'DotVar0:SortGeneratedCounterCell{}), \top{SortGeneratedTopCell{}}())) + [UNIQUE'Unds'ID{}("dc945faed79e5e35f7cdf38a8c1dc6ebc3a9986ca2a2a7a939ab677f67392e60"), label{}("TEST.consrule"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(37,5,37,33)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + +// rule `_|Set__SET_Set_Set_Set`(S1,S2)=>`_Set_`(S1,`Set:difference`(S2,S1)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(c384edb8f3875244a593dda6163c3dee1bce5485e4e1848892aebc2bab67d2e9), concrete, org.kframework.attributes.Location(Location(749,8,749,45)), org.kframework.attributes.Source(Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortSet{}, R} ( + X0:SortSet{}, + VarS1:SortSet{} + ),\and{R} ( + \in{SortSet{}, R} ( + X1:SortSet{}, + VarS2:SortSet{} + ), + \top{R} () + ))), + \equals{SortSet{},R} ( + Lbl'UndsPipe'Set'UndsUnds'SET'Unds'Set'Unds'Set'Unds'Set{}(X0:SortSet{},X1:SortSet{}), + \and{SortSet{}} ( + Lbl'Unds'Set'Unds'{}(VarS1:SortSet{},LblSet'Coln'difference{}(VarS2:SortSet{},VarS1:SortSet{})), + \top{SortSet{}}()))) + [UNIQUE'Unds'ID{}("c384edb8f3875244a593dda6163c3dee1bce5485e4e1848892aebc2bab67d2e9"), concrete{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(749,8,749,45)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + +// rule f(`A_TEST_Abcd`(.KList))=>f(`B_TEST_Abcd`(.KList)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(e46054ee91da90fb8abb977e5d405acedac669dbd961ca732d5a55a63727495c), org.kframework.attributes.Location(Location(16,8,16,20)), org.kframework.attributes.Source(Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortAbcd{}, R} ( + X0:SortAbcd{}, + LblA'Unds'TEST'Unds'Abcd{}() + ), + \top{R} () + )), + \equals{SortAbcd{},R} ( + Lblf{}(X0:SortAbcd{}), + \and{SortAbcd{}} ( + Lblf{}(LblB'Unds'TEST'Unds'Abcd{}()), + \top{SortAbcd{}}()))) + [UNIQUE'Unds'ID{}("e46054ee91da90fb8abb977e5d405acedac669dbd961ca732d5a55a63727495c"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(16,8,16,20)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + +// rule f(`B_TEST_Abcd`(.KList))=>`A_TEST_Abcd`(.KList) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(604ead8a834e880e79ae66d7e0057cce35352e6c06de74cf00ebed85e0f8f1c6), org.kframework.attributes.Location(Location(17,8,17,17)), org.kframework.attributes.Source(Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortAbcd{}, R} ( + X0:SortAbcd{}, + LblB'Unds'TEST'Unds'Abcd{}() + ), + \top{R} () + )), + \equals{SortAbcd{},R} ( + Lblf{}(X0:SortAbcd{}), + \and{SortAbcd{}} ( + LblA'Unds'TEST'Unds'Abcd{}(), + \top{SortAbcd{}}()))) + [UNIQUE'Unds'ID{}("604ead8a834e880e79ae66d7e0057cce35352e6c06de74cf00ebed85e0f8f1c6"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(17,8,17,17)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] + +// rule getGeneratedCounterCell(``(_DotVar0,Cell))=>Cell requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(9ef5eb9b9e6bbd7436911fad20615821f61e06e742dd27773001ab0664bd1de3)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortGeneratedTopCell{}, R} ( + X0:SortGeneratedTopCell{}, + Lbl'-LT-'generatedTop'-GT-'{}(Var'Unds'DotVar0:SortKCell{},VarCell:SortGeneratedCounterCell{}) + ), + \top{R} () + )), + \equals{SortGeneratedCounterCell{},R} ( + LblgetGeneratedCounterCell{}(X0:SortGeneratedTopCell{}), + \and{SortGeneratedCounterCell{}} ( + VarCell:SortGeneratedCounterCell{}, + \top{SortGeneratedCounterCell{}}()))) + [UNIQUE'Unds'ID{}("9ef5eb9b9e6bbd7436911fad20615821f61e06e742dd27773001ab0664bd1de3")] + +// rule initGeneratedCounterCell(.KList)=>``(#token("0","Int")) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(5de11f6b50c4684c0e05b773f809d756f4ce9c03a4f24e23a9cddaf3fa31f553), initializer] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + + \top{R} () + ), + \equals{SortGeneratedCounterCell{},R} ( + LblinitGeneratedCounterCell{}(), + \and{SortGeneratedCounterCell{}} ( + Lbl'-LT-'generatedCounter'-GT-'{}(\dv{SortInt{}}("0")), + \top{SortGeneratedCounterCell{}}()))) + [UNIQUE'Unds'ID{}("5de11f6b50c4684c0e05b773f809d756f4ce9c03a4f24e23a9cddaf3fa31f553")] + +// rule initGeneratedTopCell(Init)=>``(initKCell(Init),initGeneratedCounterCell(.KList)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(4cbc9d1da6e6bfe3605113d64379a38394b46b474e41d7bf884f8912546543b1), initializer] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortMap{}, R} ( + X0:SortMap{}, + VarInit:SortMap{} + ), + \top{R} () + )), + \equals{SortGeneratedTopCell{},R} ( + LblinitGeneratedTopCell{}(X0:SortMap{}), + \and{SortGeneratedTopCell{}} ( + Lbl'-LT-'generatedTop'-GT-'{}(LblinitKCell{}(VarInit:SortMap{}),LblinitGeneratedCounterCell{}()), + \top{SortGeneratedTopCell{}}()))) + [UNIQUE'Unds'ID{}("4cbc9d1da6e6bfe3605113d64379a38394b46b474e41d7bf884f8912546543b1")] + +// rule initKCell(Init)=>``(inj{Abcd,KItem}(`project:Abcd`(`Map:lookup`(Init,inj{KConfigVar,KItem}(#token("$PGM","KConfigVar")))))) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(6fba9ea119a73f92f4c8206a43ba34865fa27685f29165af3cce8c9c7cf05662), initializer] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortMap{}, R} ( + X0:SortMap{}, + VarInit:SortMap{} + ), + \top{R} () + )), + \equals{SortKCell{},R} ( + LblinitKCell{}(X0:SortMap{}), + \and{SortKCell{}} ( + Lbl'-LT-'k'-GT-'{}(kseq{}(inj{SortAbcd{}, SortKItem{}}(Lblproject'Coln'Abcd{}(kseq{}(LblMap'Coln'lookup{}(VarInit:SortMap{},inj{SortKConfigVar{}, SortKItem{}}(\dv{SortKConfigVar{}}("$PGM"))),dotk{}()))),dotk{}())), + \top{SortKCell{}}()))) + [UNIQUE'Unds'ID{}("6fba9ea119a73f92f4c8206a43ba34865fa27685f29165af3cce8c9c7cf05662")] + +// rule isAbcd(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f116b5d25b079cac649609b6202ebb57bd87446c622325d7468170a7c3b4da5c), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortAbcd{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortAbcd{}, SortKItem{}}(Var'Unds'Gen1:SortAbcd{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisAbcd{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("f116b5d25b079cac649609b6202ebb57bd87446c622325d7468170a7c3b4da5c"), owise{}()] + +// rule isAbcd(inj{Abcd,KItem}(Abcd))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(cb3ea0d656c663d719510f6b78b5f8c6f165a5e4bdff874e7d073371ada0e326)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortAbcd{}, SortKItem{}}(VarAbcd:SortAbcd{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisAbcd{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("cb3ea0d656c663d719510f6b78b5f8c6f165a5e4bdff874e7d073371ada0e326")] + +// rule isBool(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(495da551d13b205c8648618471ccfca028707f98eff21e6b11d591515ed6f29a), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen0:SortBool{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortBool{}, SortKItem{}}(Var'Unds'Gen0:SortBool{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisBool{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("495da551d13b205c8648618471ccfca028707f98eff21e6b11d591515ed6f29a"), owise{}()] + +// rule isBool(inj{Bool,KItem}(Bool))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(dadad716b2f6a82fa4b2cc8f903a1b8f1f6e8cfa63f18b72a7cb35110bdcff77)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortBool{}, SortKItem{}}(VarBool:SortBool{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisBool{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("dadad716b2f6a82fa4b2cc8f903a1b8f1f6e8cfa63f18b72a7cb35110bdcff77")] + +// rule isGeneratedCounterCell(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(b0c8eb86594a387398bf96f2dbf773cff29d14b8a45c5f6701f205bf3d2f33ba), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortGeneratedCounterCell{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedCounterCell{}, SortKItem{}}(Var'Unds'Gen1:SortGeneratedCounterCell{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisGeneratedCounterCell{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("b0c8eb86594a387398bf96f2dbf773cff29d14b8a45c5f6701f205bf3d2f33ba"), owise{}()] + +// rule isGeneratedCounterCell(inj{GeneratedCounterCell,KItem}(GeneratedCounterCell))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f7b6a3dbee5a80d5eeba727f40009876995660d4052a45fc50c55f88c5fc1a7c)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedCounterCell{}, SortKItem{}}(VarGeneratedCounterCell:SortGeneratedCounterCell{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisGeneratedCounterCell{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("f7b6a3dbee5a80d5eeba727f40009876995660d4052a45fc50c55f88c5fc1a7c")] + +// rule isGeneratedCounterCellOpt(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(84cfc8e964ec28b1912ffec4e6f5fccfcbad2256a1cba113622d99b11c13afd6), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortGeneratedCounterCellOpt{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedCounterCellOpt{}, SortKItem{}}(Var'Unds'Gen1:SortGeneratedCounterCellOpt{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisGeneratedCounterCellOpt{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("84cfc8e964ec28b1912ffec4e6f5fccfcbad2256a1cba113622d99b11c13afd6"), owise{}()] + +// rule isGeneratedCounterCellOpt(inj{GeneratedCounterCellOpt,KItem}(GeneratedCounterCellOpt))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(a4ff3e170677e099d4b28085658942cb10fcf871aa99abcdf73927596c180f12)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedCounterCellOpt{}, SortKItem{}}(VarGeneratedCounterCellOpt:SortGeneratedCounterCellOpt{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisGeneratedCounterCellOpt{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("a4ff3e170677e099d4b28085658942cb10fcf871aa99abcdf73927596c180f12")] + +// rule isGeneratedTopCell(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(ccb9226d9e6c0e476485f098ef162c6c2206ed3af1d8336ea3ae859b86bc4a8b), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortGeneratedTopCell{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedTopCell{}, SortKItem{}}(Var'Unds'Gen1:SortGeneratedTopCell{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisGeneratedTopCell{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("ccb9226d9e6c0e476485f098ef162c6c2206ed3af1d8336ea3ae859b86bc4a8b"), owise{}()] + +// rule isGeneratedTopCell(inj{GeneratedTopCell,KItem}(GeneratedTopCell))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(3bcf423225700e329d0533cfd806eb9bab91f9d8de0979c8d8e381fe5d076bb2)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedTopCell{}, SortKItem{}}(VarGeneratedTopCell:SortGeneratedTopCell{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisGeneratedTopCell{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("3bcf423225700e329d0533cfd806eb9bab91f9d8de0979c8d8e381fe5d076bb2")] + +// rule isGeneratedTopCellFragment(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(98049f5819962c7ee2b01436957b6cf8460b106979fa2c24f4c606bbf6cb1592), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortGeneratedTopCellFragment{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedTopCellFragment{}, SortKItem{}}(Var'Unds'Gen1:SortGeneratedTopCellFragment{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisGeneratedTopCellFragment{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("98049f5819962c7ee2b01436957b6cf8460b106979fa2c24f4c606bbf6cb1592"), owise{}()] + +// rule isGeneratedTopCellFragment(inj{GeneratedTopCellFragment,KItem}(GeneratedTopCellFragment))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(559f2cdc0ab425bb065cc3174f4a1af4d9ca834f762a814cf3dfbf9a9d7f8271)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedTopCellFragment{}, SortKItem{}}(VarGeneratedTopCellFragment:SortGeneratedTopCellFragment{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisGeneratedTopCellFragment{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("559f2cdc0ab425bb065cc3174f4a1af4d9ca834f762a814cf3dfbf9a9d7f8271")] + +// rule isInt(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(105572a4ac107eeb518b37c4d6ed3e28732b83afb0ba085d02d339c4fc2140a0), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortInt{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortInt{}, SortKItem{}}(Var'Unds'Gen1:SortInt{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisInt{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("105572a4ac107eeb518b37c4d6ed3e28732b83afb0ba085d02d339c4fc2140a0"), owise{}()] + +// rule isInt(inj{Int,KItem}(Int))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(92664aa821c8898ff16b4e72ad0bdf363f755c7660d28dcb69c129a2c94bc6b5)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortInt{}, SortKItem{}}(VarInt:SortInt{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisInt{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("92664aa821c8898ff16b4e72ad0bdf363f755c7660d28dcb69c129a2c94bc6b5")] + +// rule isK(K)=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(16ff77cff0ef50026a8b3f4614b87bda465701918596b7ad2280baffff56f847)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisK{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("16ff77cff0ef50026a8b3f4614b87bda465701918596b7ad2280baffff56f847")] + +// rule isKCell(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(d30be57718b4b3745eaf2e99f875cfec7d5be2ff76bacde8a89bd4ab659d857f), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortKCell{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKCell{}, SortKItem{}}(Var'Unds'Gen1:SortKCell{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisKCell{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("d30be57718b4b3745eaf2e99f875cfec7d5be2ff76bacde8a89bd4ab659d857f"), owise{}()] + +// rule isKCell(inj{KCell,KItem}(KCell))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2695222b1238f711f8a356c0a1bc0ac418d7bd78fd3282e7c60882e2631a46df)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKCell{}, SortKItem{}}(VarKCell:SortKCell{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisKCell{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("2695222b1238f711f8a356c0a1bc0ac418d7bd78fd3282e7c60882e2631a46df")] + +// rule isKCellOpt(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(9a3f84195242c98b432c7c63a4189f4276cc3189445c5cf37ce08d9a6547b1f7), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen0:SortKCellOpt{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKCellOpt{}, SortKItem{}}(Var'Unds'Gen0:SortKCellOpt{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisKCellOpt{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("9a3f84195242c98b432c7c63a4189f4276cc3189445c5cf37ce08d9a6547b1f7"), owise{}()] + +// rule isKCellOpt(inj{KCellOpt,KItem}(KCellOpt))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(1516473b1e153a368c273997543a4378ad451e5e828db8e289f4447f7e5228a5)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKCellOpt{}, SortKItem{}}(VarKCellOpt:SortKCellOpt{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisKCellOpt{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("1516473b1e153a368c273997543a4378ad451e5e828db8e289f4447f7e5228a5")] + +// rule isKConfigVar(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f68a616e301c35586f68e97b729ae274278c3ef8fe6634711cfd3e1746bc0bc2), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortKConfigVar{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKConfigVar{}, SortKItem{}}(Var'Unds'Gen1:SortKConfigVar{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisKConfigVar{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("f68a616e301c35586f68e97b729ae274278c3ef8fe6634711cfd3e1746bc0bc2"), owise{}()] + +// rule isKConfigVar(inj{KConfigVar,KItem}(KConfigVar))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(0ef0a00bb321f2c2a62a3239327de70ecb8e907a950cd20034c46b84e040ebcd)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKConfigVar{}, SortKItem{}}(VarKConfigVar:SortKConfigVar{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisKConfigVar{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("0ef0a00bb321f2c2a62a3239327de70ecb8e907a950cd20034c46b84e040ebcd")] + +// rule isKItem(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(83812b6b9e31a764d66d89fd1c7e65b9b162d52c5aebfe99b1536e200a9590c2), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen0:SortKItem{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(Var'Unds'Gen0:SortKItem{},dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisKItem{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("83812b6b9e31a764d66d89fd1c7e65b9b162d52c5aebfe99b1536e200a9590c2"), owise{}()] + +// rule isKItem(KItem)=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(ed3c25a7dab5e5fbc101589e2fa74ac91aa107f051d22a01378222d08643373c)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(VarKItem:SortKItem{},dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisKItem{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("ed3c25a7dab5e5fbc101589e2fa74ac91aa107f051d22a01378222d08643373c")] + +// rule isList(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(9a9489adcf0279eca74c012bb1130bb9d30372cfbebc8e4ab4b173656c4d6613), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortList{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortList{}, SortKItem{}}(Var'Unds'Gen1:SortList{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisList{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("9a9489adcf0279eca74c012bb1130bb9d30372cfbebc8e4ab4b173656c4d6613"), owise{}()] + +// rule isList(inj{List,KItem}(List))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(7d4dddf5bbdb61cfd11fb9be1071be7bd551cf186607cf6f493cfade3221c446)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortList{}, SortKItem{}}(VarList:SortList{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisList{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("7d4dddf5bbdb61cfd11fb9be1071be7bd551cf186607cf6f493cfade3221c446")] + +// rule isMap(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(6f30a2087d0b19640df005437bc3f4665f41282666a72821b17b16c99ed5afee), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortMap{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortMap{}, SortKItem{}}(Var'Unds'Gen1:SortMap{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisMap{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("6f30a2087d0b19640df005437bc3f4665f41282666a72821b17b16c99ed5afee"), owise{}()] + +// rule isMap(inj{Map,KItem}(Map))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(4879c0fcf6b7d7f3d6b751e4f460f8dced005a44ae5ff600cffcea784cf58795)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortMap{}, SortKItem{}}(VarMap:SortMap{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisMap{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("4879c0fcf6b7d7f3d6b751e4f460f8dced005a44ae5ff600cffcea784cf58795")] + +// rule isSet(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2b5aadccd9b89faba72816867187d48d279d8c27c8bda1a1b3b0658bd82bb783), owise] + axiom{R} \implies{R} ( + \and{R} ( + \not{R} ( + \or{R} ( + \exists{R} (Var'Unds'Gen1:SortSet{}, + \and{R} ( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortSet{}, SortKItem{}}(Var'Unds'Gen1:SortSet{}),dotk{}()) + ), + \top{R} () + ) + )), + \bottom{R}() + ) + ), + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + ) + )), + \equals{SortBool{},R} ( + LblisSet{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("false"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("2b5aadccd9b89faba72816867187d48d279d8c27c8bda1a1b3b0658bd82bb783"), owise{}()] + +// rule isSet(inj{Set,KItem}(Set))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f205bc460bdb728b4c3458643699be30d519db4d8b13e80e2c27082b9e846e80)] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortSet{}, SortKItem{}}(VarSet:SortSet{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + LblisSet{}(X0:SortK{}), + \and{SortBool{}} ( + \dv{SortBool{}}("true"), + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("f205bc460bdb728b4c3458643699be30d519db4d8b13e80e2c27082b9e846e80")] + +// rule `project:Abcd`(inj{Abcd,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2448a1461d020987ce3687856e0e7bce84628a4d0cbc4c5f0fbd2e5e66cdc268), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortAbcd{}, SortKItem{}}(VarK:SortAbcd{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortAbcd{},R} ( + Lblproject'Coln'Abcd{}(X0:SortK{}), + \and{SortAbcd{}} ( + VarK:SortAbcd{}, + \top{SortAbcd{}}()))) + [UNIQUE'Unds'ID{}("2448a1461d020987ce3687856e0e7bce84628a4d0cbc4c5f0fbd2e5e66cdc268")] + +// rule `project:Bool`(inj{Bool,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(5872f0d5b8131216db7bc41e2c3a423e55f4b8581589fcbd1bf93b2ca6862d54), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortBool{}, SortKItem{}}(VarK:SortBool{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortBool{},R} ( + Lblproject'Coln'Bool{}(X0:SortK{}), + \and{SortBool{}} ( + VarK:SortBool{}, + \top{SortBool{}}()))) + [UNIQUE'Unds'ID{}("5872f0d5b8131216db7bc41e2c3a423e55f4b8581589fcbd1bf93b2ca6862d54")] + +// rule `project:GeneratedCounterCell`(inj{GeneratedCounterCell,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(63453db9d9aa121b63bb877e2fa4998d399ef82d2a1e4b90f87a32ba55401217), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedCounterCell{}, SortKItem{}}(VarK:SortGeneratedCounterCell{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortGeneratedCounterCell{},R} ( + Lblproject'Coln'GeneratedCounterCell{}(X0:SortK{}), + \and{SortGeneratedCounterCell{}} ( + VarK:SortGeneratedCounterCell{}, + \top{SortGeneratedCounterCell{}}()))) + [UNIQUE'Unds'ID{}("63453db9d9aa121b63bb877e2fa4998d399ef82d2a1e4b90f87a32ba55401217")] + +// rule `project:GeneratedCounterCellOpt`(inj{GeneratedCounterCellOpt,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(9325a900267ae528f7cd09f3b44b825dd9ff344c38d38383c08fa697cc67efca), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedCounterCellOpt{}, SortKItem{}}(VarK:SortGeneratedCounterCellOpt{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortGeneratedCounterCellOpt{},R} ( + Lblproject'Coln'GeneratedCounterCellOpt{}(X0:SortK{}), + \and{SortGeneratedCounterCellOpt{}} ( + VarK:SortGeneratedCounterCellOpt{}, + \top{SortGeneratedCounterCellOpt{}}()))) + [UNIQUE'Unds'ID{}("9325a900267ae528f7cd09f3b44b825dd9ff344c38d38383c08fa697cc67efca")] + +// rule `project:GeneratedTopCell`(inj{GeneratedTopCell,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(b0fabd8c7c81fe08ebd569aff59747d357e441ae1fcd05d9d594d57e38e3d55e), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedTopCell{}, SortKItem{}}(VarK:SortGeneratedTopCell{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortGeneratedTopCell{},R} ( + Lblproject'Coln'GeneratedTopCell{}(X0:SortK{}), + \and{SortGeneratedTopCell{}} ( + VarK:SortGeneratedTopCell{}, + \top{SortGeneratedTopCell{}}()))) + [UNIQUE'Unds'ID{}("b0fabd8c7c81fe08ebd569aff59747d357e441ae1fcd05d9d594d57e38e3d55e")] + +// rule `project:GeneratedTopCellFragment`(inj{GeneratedTopCellFragment,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2084fac322aa142a07f881814b8a286bf62d5c6d05777b7aa715ccc534cf9a42), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortGeneratedTopCellFragment{}, SortKItem{}}(VarK:SortGeneratedTopCellFragment{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortGeneratedTopCellFragment{},R} ( + Lblproject'Coln'GeneratedTopCellFragment{}(X0:SortK{}), + \and{SortGeneratedTopCellFragment{}} ( + VarK:SortGeneratedTopCellFragment{}, + \top{SortGeneratedTopCellFragment{}}()))) + [UNIQUE'Unds'ID{}("2084fac322aa142a07f881814b8a286bf62d5c6d05777b7aa715ccc534cf9a42")] + +// rule `project:Int`(inj{Int,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f316b871091516c401f1d2382cc5f66322602b782c7b01e1aeb6c2ddab50e24b), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortInt{}, SortKItem{}}(VarK:SortInt{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortInt{},R} ( + Lblproject'Coln'Int{}(X0:SortK{}), + \and{SortInt{}} ( + VarK:SortInt{}, + \top{SortInt{}}()))) + [UNIQUE'Unds'ID{}("f316b871091516c401f1d2382cc5f66322602b782c7b01e1aeb6c2ddab50e24b")] + +// rule `project:K`(K)=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(25b529ddcefd25ef63f99a62040145ef27638e7679ea9202218fe14be98dff3a), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + VarK:SortK{} + ), + \top{R} () + )), + \equals{SortK{},R} ( + Lblproject'Coln'K{}(X0:SortK{}), + \and{SortK{}} ( + VarK:SortK{}, + \top{SortK{}}()))) + [UNIQUE'Unds'ID{}("25b529ddcefd25ef63f99a62040145ef27638e7679ea9202218fe14be98dff3a")] + +// rule `project:KCell`(inj{KCell,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(894c13c4c410f11e35bc3781505aeddde4ff400ddda1daf8b35259dbf0de9a24), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKCell{}, SortKItem{}}(VarK:SortKCell{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortKCell{},R} ( + Lblproject'Coln'KCell{}(X0:SortK{}), + \and{SortKCell{}} ( + VarK:SortKCell{}, + \top{SortKCell{}}()))) + [UNIQUE'Unds'ID{}("894c13c4c410f11e35bc3781505aeddde4ff400ddda1daf8b35259dbf0de9a24")] + +// rule `project:KCellOpt`(inj{KCellOpt,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f684dd78d97feadf0cbcb3cbb8892e0842f137c7b29a904cb2f3fc9755b29b30), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortKCellOpt{}, SortKItem{}}(VarK:SortKCellOpt{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortKCellOpt{},R} ( + Lblproject'Coln'KCellOpt{}(X0:SortK{}), + \and{SortKCellOpt{}} ( + VarK:SortKCellOpt{}, + \top{SortKCellOpt{}}()))) + [UNIQUE'Unds'ID{}("f684dd78d97feadf0cbcb3cbb8892e0842f137c7b29a904cb2f3fc9755b29b30")] + +// rule `project:KItem`(K)=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(1242e49c17638c9a66a35e3bb8c237288f7e9aa9a6499101e8cdc55be320cd29), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(VarK:SortKItem{},dotk{}()) + ), + \top{R} () + )), + \equals{SortKItem{},R} ( + Lblproject'Coln'KItem{}(X0:SortK{}), + \and{SortKItem{}} ( + VarK:SortKItem{}, + \top{SortKItem{}}()))) + [UNIQUE'Unds'ID{}("1242e49c17638c9a66a35e3bb8c237288f7e9aa9a6499101e8cdc55be320cd29")] + +// rule `project:List`(inj{List,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2b75eac5a59779d336e6cf9632bf9ba7d67286f322e753108b34e62f2443efe5), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortList{}, SortKItem{}}(VarK:SortList{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortList{},R} ( + Lblproject'Coln'List{}(X0:SortK{}), + \and{SortList{}} ( + VarK:SortList{}, + \top{SortList{}}()))) + [UNIQUE'Unds'ID{}("2b75eac5a59779d336e6cf9632bf9ba7d67286f322e753108b34e62f2443efe5")] + +// rule `project:Map`(inj{Map,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(031237d4aae58d86914d6370d37ccd15f4738378ed780333c59cc81b4f7bc598), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortMap{}, SortKItem{}}(VarK:SortMap{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortMap{},R} ( + Lblproject'Coln'Map{}(X0:SortK{}), + \and{SortMap{}} ( + VarK:SortMap{}, + \top{SortMap{}}()))) + [UNIQUE'Unds'ID{}("031237d4aae58d86914d6370d37ccd15f4738378ed780333c59cc81b4f7bc598")] + +// rule `project:Set`(inj{Set,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(0e7f5070c993161786e314f7199d985afebac9e07b5c784f6f623780c60ce9d0), projection] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortK{}, R} ( + X0:SortK{}, + kseq{}(inj{SortSet{}, SortKItem{}}(VarK:SortSet{}),dotk{}()) + ), + \top{R} () + )), + \equals{SortSet{},R} ( + Lblproject'Coln'Set{}(X0:SortK{}), + \and{SortSet{}} ( + VarK:SortSet{}, + \top{SortSet{}}()))) + [UNIQUE'Unds'ID{}("0e7f5070c993161786e314f7199d985afebac9e07b5c784f6f623780c60ce9d0")] + +// rule pushList(K,L1)=>`_List_`(`ListItem`(K),L1) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f6967050cc4ec32c2d34d52f5577e09120f730420d2c5dc838cba81d04c57adf), org.kframework.attributes.Location(Location(954,8,954,54)), org.kframework.attributes.Source(Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])] + axiom{R} \implies{R} ( + \and{R}( + \top{R}(), + \and{R} ( + \in{SortKItem{}, R} ( + X0:SortKItem{}, + VarK:SortKItem{} + ),\and{R} ( + \in{SortList{}, R} ( + X1:SortList{}, + VarL1:SortList{} + ), + \top{R} () + ))), + \equals{SortList{},R} ( + LblpushList{}(X0:SortKItem{},X1:SortList{}), + \and{SortList{}} ( + Lbl'Unds'List'Unds'{}(LblListItem{}(VarK:SortKItem{}),VarL1:SortList{}), + \top{SortList{}}()))) + [UNIQUE'Unds'ID{}("f6967050cc4ec32c2d34d52f5577e09120f730420d2c5dc838cba81d04c57adf"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(954,8,954,54)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/nix/store/fmk26rfxjnqr2kz0y79467j71gsryn8w-k-7.1.274-a6d4df27f0c2b7712180cd1fbc45b513b4567165/include/kframework/builtin/domains.md)")] + +// rule #Ceil{Map,#SortParam}(`_Map_`(`_|->_`(@K0,@K1),@Rest))=>#And{#SortParam}(#Equals{Bool,#SortParam}(`_in_keys(_)_MAP_Bool_KItem_Map`(@K0,@Rest),#token("false","Bool")),#And{#SortParam}(#Top{#SortParam}(.KList),#Ceil{KItem,#SortParam}(@K1))) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(c3ef047673d1123119fa107febfbe8f250dbfbcfa1df4d2f44d28ce4e740e233), simplification, sortParams({Q0})] + axiom{R,Q0} \implies{R} ( + \top{R}(), + \equals{Q0,R} ( + \ceil{SortMap{}, Q0}(Lbl'Unds'Map'Unds'{}(Lbl'UndsPipe'-'-GT-Unds'{}(@VarK0:SortKItem{},@VarK1:SortKItem{}),@VarRest:SortMap{})), + \and{Q0} ( + \and{Q0}(\equals{SortBool{}, Q0}(Lbl'Unds'in'Unds'keys'LParUndsRParUnds'MAP'Unds'Bool'Unds'KItem'Unds'Map{}(@VarK0:SortKItem{},@VarRest:SortMap{}),\dv{SortBool{}}("false")),\and{Q0}(\top{Q0}(),\ceil{SortKItem{}, Q0}(@VarK1:SortKItem{}))), + \top{Q0}()))) + [UNIQUE'Unds'ID{}("c3ef047673d1123119fa107febfbe8f250dbfbcfa1df4d2f44d28ce4e740e233"), simplification{}()] + +endmodule [org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1,1,42,10)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/jost/work/RV/code/haskell-backend2/scratch/indexing-things/test.k)")] diff --git a/booster/test/rpc-integration/test-issue4118-indexing/README.md b/booster/test/rpc-integration/test-issue4118-indexing/README.md new file mode 100644 index 0000000000..0e4f6ffc26 --- /dev/null +++ b/booster/test/rpc-integration/test-issue4118-indexing/README.md @@ -0,0 +1,44 @@ +Indexing Issue for Unevaluated Functions +======================================== + +This demonstrates a bug caused by discarding rules with non-matching index, fixed in the PR that added the test. + +When an unevaluated function `f` is in an indexed position, the index of the term would have a component `TopSymbol f`, and there would not be (cannot be!) any rules with such an index. +Therefore the only rules tried would be those with index `Anything` (in that component). + +* If none of these rules can be applied (which is likely in practice), the returned result is `Stuck` instead of `Aborted` (see [`no-evaluators` test result](../test-no-evaluators/)). +* All rules tried may have lower priority than one which could apply once the function gets evaluated, leading to a wrong result ( demonstrated in this test). + +Rules: +``` + rule f(A) => f(B) // index TopFun "f" + rule f(B) => A // index TopFun "f" + + rule [consrule]: // index TopCon "Cons" + Cons(I) => f(I) ... + + rule [Vrule]: // index TopVal "A" + A => Done ... + + rule [varrule]: // index *** + _X:Abcd => B ... [owise] +``` + +Input: `Cons(B)` + +* rewritten to `f(B)` using `consrule`, which booster then tries to rewrite. +* before the indexing fix, + - booster would _only_ try the low-priority `varrule`; + - this succeeds, resulting in `B`, + - which leads to the rewrite looping with `varrule`. +* With the fixed indexes, + - booster tries _all_ rules in priority order because `f` can evaluate to different things + - a rewrite with `consrule` or `Vrule` aborts on an indeterminate match with `f(B)` + - the term is simplified, evaluating `f(B) => A` + - the subsequent rewrite succeeds for `Vrule`, producing `Done` + +``` +Cons(B) =rewrite=> f(B) =eval=> A =rewrite=> Done correct + \ + \=rewrite=> B [owise] should not apply! +``` diff --git a/booster/test/rpc-integration/test-issue4118-indexing/state-cons-b.execute b/booster/test/rpc-integration/test-issue4118-indexing/state-cons-b.execute new file mode 100644 index 0000000000..c42fb2bcf6 --- /dev/null +++ b/booster/test/rpc-integration/test-issue4118-indexing/state-cons-b.execute @@ -0,0 +1,78 @@ +{ + "format": "KORE", + "version": 1, + "term": { + "tag": "App", + "name": "Lbl'-LT-'generatedTop'-GT-'", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "Lbl'-LT-'k'-GT-'", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "kseq", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "inj", + "sorts": [ + { + "tag": "SortApp", + "name": "SortAbcd", + "args": [] + }, + { + "tag": "SortApp", + "name": "SortKItem", + "args": [] + } + ], + "args": [ + { + "tag": "App", + "name": "LblCons", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "LblB'Unds'TEST'Unds'Abcd", + "sorts": [], + "args": [] + } + ] + } + ] + }, + { + "tag": "App", + "name": "dotk", + "sorts": [], + "args": [] + } + ] + } + ] + }, + { + "tag": "App", + "name": "Lbl'-LT-'generatedCounter'-GT-'", + "sorts": [], + "args": [ + { + "tag": "DV", + "sort": { + "tag": "SortApp", + "name": "SortInt", + "args": [] + }, + "value": "0" + } + ] + } + ] + } +} From 8cf7ec1eecadbffcfbe86171f4a5627f1bcc1334 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 15:44:32 +1000 Subject: [PATCH 14/19] add expected response file --- .../response-cons-b.json | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 booster/test/rpc-integration/test-issue4118-indexing/response-cons-b.json diff --git a/booster/test/rpc-integration/test-issue4118-indexing/response-cons-b.json b/booster/test/rpc-integration/test-issue4118-indexing/response-cons-b.json new file mode 100644 index 0000000000..0391e114ed --- /dev/null +++ b/booster/test/rpc-integration/test-issue4118-indexing/response-cons-b.json @@ -0,0 +1,63 @@ +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "reason": "stuck", + "depth": 2, + "state": { + "term": { + "format": "KORE", + "version": 1, + "term": { + "tag": "App", + "name": "Lbl'-LT-'generatedTop'-GT-'", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "Lbl'-LT-'k'-GT-'", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "kseq", + "sorts": [], + "args": [ + { + "tag": "App", + "name": "LblDone", + "sorts": [], + "args": [] + }, + { + "tag": "App", + "name": "dotk", + "sorts": [], + "args": [] + } + ] + } + ] + }, + { + "tag": "App", + "name": "Lbl'-LT-'generatedCounter'-GT-'", + "sorts": [], + "args": [ + { + "tag": "DV", + "sort": { + "tag": "SortApp", + "name": "SortInt", + "args": [] + }, + "value": "0" + } + ] + } + ] + } + } + } + } +} \ No newline at end of file From 63590c8a485fcb5962526128fa7a3c9f87b085e7 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 15:47:14 +1000 Subject: [PATCH 15/19] fix link in README for new test --- booster/test/rpc-integration/test-issue4118-indexing/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/booster/test/rpc-integration/test-issue4118-indexing/README.md b/booster/test/rpc-integration/test-issue4118-indexing/README.md index 0e4f6ffc26..e0fe5948d8 100644 --- a/booster/test/rpc-integration/test-issue4118-indexing/README.md +++ b/booster/test/rpc-integration/test-issue4118-indexing/README.md @@ -6,7 +6,7 @@ This demonstrates a bug caused by discarding rules with non-matching index, fixe When an unevaluated function `f` is in an indexed position, the index of the term would have a component `TopSymbol f`, and there would not be (cannot be!) any rules with such an index. Therefore the only rules tried would be those with index `Anything` (in that component). -* If none of these rules can be applied (which is likely in practice), the returned result is `Stuck` instead of `Aborted` (see [`no-evaluators` test result](../test-no-evaluators/)). +* If none of these rules can be applied (which is likely in practice), the returned result is `Stuck` instead of `Aborted` (see [`test-no-evaluator` result](../test-no-evaluator/)). * All rules tried may have lower priority than one which could apply once the function gets evaluated, leading to a wrong result ( demonstrated in this test). Rules: From 04e47b8f8663d201d5a1c7afdab1d312aeb9544e Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Thu, 17 Jul 2025 19:53:26 +1000 Subject: [PATCH 16/19] fix compare.py script --- scripts/compare.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/compare.py b/scripts/compare.py index ce7b85e52f..fbaef6172f 100644 --- a/scripts/compare.py +++ b/scripts/compare.py @@ -14,10 +14,13 @@ else: minchange = 0.035 -testname = re.compile(r'.*\[(?P.*)\]$') +bracket_name = re.compile(r'[^[]*\[(?P.*)\]$') +colon_name = re.compile(r'[^:]*::(?P.*)$') def readName(input): - r = testname.match(input) + r = bracket_name.match(input) + if r is None: + r = colon_name.match(input) if r is None: return input else: From 8fb244f44e5d6fa7b3acfadfc087bcb9752adb66 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Fri, 18 Jul 2025 09:56:46 +1000 Subject: [PATCH 17/19] Rename CellIndex constructors (prefix Top -> prefix Idx, None -> IdxNone) --- booster/library/Booster/Pattern/Index.hs | 74 +++++++++---------- booster/library/Booster/Pattern/Rewrite.hs | 4 +- .../resources/issue4118-indexing.k | 6 +- .../test-issue4118-indexing/README.md | 6 +- .../Test/Booster/Pattern/ApplyEquations.hs | 10 +-- .../unit-tests/Test/Booster/Pattern/Index.hs | 72 +++++++++--------- .../Test/Booster/Pattern/Rewrite.hs | 6 +- 7 files changed, 89 insertions(+), 89 deletions(-) diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index 9e9953408b..2871792b5b 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -44,7 +44,7 @@ symbol at the top. Other terms that are not symbol applications have index @Anything@. Rather than making the term indexing function partial, we introduce a -unique bottom element @None@ to the index type (to make it a lattice). +unique bottom element @IdxNone@ to the index type (to make it a lattice). This can then handle @AndTerm@ by indexing both arguments and combining them. @@ -57,13 +57,13 @@ newtype TermIndex = TermIndex [CellIndex] deriving anyclass (NFData) data CellIndex - = None -- bottom element - | TopCons SymbolName - | TopFun SymbolName - | TopVal ByteString - | TopMap - | TopList - | TopSet + = IdxNone -- bottom element + | IdxCons SymbolName + | IdxFun SymbolName + | IdxVal ByteString + | IdxMap + | IdxList + | IdxSet | Anything -- top element deriving stock (Eq, Ord, Show, Generic) deriving anyclass (NFData) @@ -84,20 +84,20 @@ ifGreater base x = Set.filter (x ^<=^) base Anything ____________/ | \_______________________________________... / / | | \ \ -TopList ..TopSet TopVal "x"..TopVal "y" TopCons "A".. TopFun "f".. +IdxList ..IdxSet IdxVal "x"..IdxVal "y" IdxCons "A".. IdxFun "f".. \__________|__ | _________|____________|____________/____... \ | / - None + IdxNone -} instance IndexLattice CellIndex where - None ^<=^ _ = True - a ^<=^ None = a == None + IdxNone ^<=^ _ = True + a ^<=^ IdxNone = a == IdxNone _ ^<=^ Anything = True Anything ^<=^ a = a == Anything a ^<=^ b = a == b - invert None = Anything - invert Anything = None + invert IdxNone = Anything + invert Anything = IdxNone invert a = a -- | Partial less-or-equal for TermIndex (product lattice) @@ -113,42 +113,42 @@ instance IndexLattice TermIndex where and 't2' must have "compatible" indexes for this to be possible. -} instance Semigroup CellIndex where - None <> _ = None - _ <> None = None + IdxNone <> _ = IdxNone + _ <> IdxNone = IdxNone x <> Anything = x Anything <> x = x idx1 <> idx2 | idx1 == idx2 = idx1 - | otherwise = None + | otherwise = IdxNone -- | Pretty instances instance Pretty TermIndex where pretty (TermIndex ixs) = sep $ map pretty ixs instance Pretty CellIndex where - pretty None = "_|_" + pretty IdxNone = "_|_" pretty Anything = "***" - pretty (TopCons sym) = "C--" <> prettyLabel sym - pretty (TopFun sym) = "F--" <> prettyLabel sym - pretty (TopVal sym) = "V--" <> prettyLabel sym - pretty TopMap = "Map" - pretty TopList = "List" - pretty TopSet = "Set" + pretty (IdxCons sym) = "C--" <> prettyLabel sym + pretty (IdxFun sym) = "F--" <> prettyLabel sym + pretty (IdxVal sym) = "V--" <> prettyLabel sym + pretty IdxMap = "Map" + pretty IdxList = "List" + pretty IdxSet = "Set" prettyLabel :: ByteString -> Doc a prettyLabel = either error (pretty . unpack) . decodeLabel -{- | Check whether a @TermIndex@ has @None@ in any position (this +{- | Check whether a @TermIndex@ has @IdxNone@ in any position (this means no match will be possible). -} hasNone :: TermIndex -> Bool -hasNone (TermIndex ixs) = None `elem` ixs +hasNone (TermIndex ixs) = IdxNone `elem` ixs --- | turns TopFun _ into Anything (for rewrite rule selection) +-- | turns IdxFun _ into Anything (for rewrite rule selection) noFunctions :: TermIndex -> TermIndex noFunctions (TermIndex ixs) = TermIndex (map funsAnything ixs) where - funsAnything TopFun{} = Anything + funsAnything IdxFun{} = Anything funsAnything other = other {- | Computes all indexes that "cover" the given index, for rule lookup. @@ -158,11 +158,11 @@ noFunctions (TermIndex ixs) = TermIndex (map funsAnything ixs) * For components of A that are distinct from @Anything@, this means the component of B is equal to that of A or @Anything@. - * For components of A that are @None@, the respective component of B - _must_ be @Anything@. However, if A contains @None@ no match is + * For components of A that are @IdxNone@, the respective component of B + _must_ be @Anything@. However, if A contains @IdxNone@ no match is possible anyway. * For components of A that are @Anything@, B can contain an - arbitrary index (@None@ will again have no chance of a match, + arbitrary index (@IdxNone@ will again have no chance of a match, though). When selecting candidate rules for a term, we must consider all @@ -244,19 +244,19 @@ termTopIndex = TermIndex . (: []) . cellTopIndex cellTopIndex :: Term -> CellIndex cellTopIndex = \case ConsApplication symbol _ _ -> - TopCons symbol.name + IdxCons symbol.name FunctionApplication symbol _ _ -> - TopFun symbol.name + IdxFun symbol.name DomainValue _ v -> - TopVal v + IdxVal v Var{} -> Anything KMap{} -> - TopMap + IdxMap KList{} -> - TopList + IdxList KSet{} -> - TopSet + IdxSet -- look-through Injection _ _ t -> cellTopIndex t diff --git a/booster/library/Booster/Pattern/Rewrite.hs b/booster/library/Booster/Pattern/Rewrite.hs index 76398367bb..e243d9fff0 100644 --- a/booster/library/Booster/Pattern/Rewrite.hs +++ b/booster/library/Booster/Pattern/Rewrite.hs @@ -767,7 +767,7 @@ data RewriteFailed k RewriteSortError (RewriteRule k) Term SortError | -- | An error was detected during matching InternalMatchError Text - | -- | Term has index 'None', no rule should apply + | -- | Term has index 'IdxNone', no rule should apply TermIndexIsNone Term deriving stock (Eq, Show) @@ -823,7 +823,7 @@ instance FromModifiersT mods => Pretty (PrettyWithModifiers mods (RewriteFailed , pretty $ show sortError ] TermIndexIsNone term -> - "Term index is None for term " <> pretty' @mods term + "Term index is IdxNone for term " <> pretty' @mods term InternalMatchError err -> "An internal error occured" <> pretty err ruleLabelOrLoc :: RewriteRule k -> Doc a diff --git a/booster/test/rpc-integration/resources/issue4118-indexing.k b/booster/test/rpc-integration/resources/issue4118-indexing.k index 2cd541ffa3..6bcd235a33 100644 --- a/booster/test/rpc-integration/resources/issue4118-indexing.k +++ b/booster/test/rpc-integration/resources/issue4118-indexing.k @@ -12,10 +12,10 @@ module TEST | Cons ( Abcd ) [symbol(Cons)] | f ( Abcd ) [function, total, symbol(f)] - rule f(A) => f(B) // index TopFun "f" - rule f(B) => A // index TopFun "f" + rule f(A) => f(B) // index IdxFun "f" + rule f(B) => A // index IdxFun "f" - rule [Vrule]: // index TopVal "A" + rule [Vrule]: // index IdxVal "A" A => Done ... rule [consrule]: // index TopCon "Cons" diff --git a/booster/test/rpc-integration/test-issue4118-indexing/README.md b/booster/test/rpc-integration/test-issue4118-indexing/README.md index e0fe5948d8..d9adf86e7f 100644 --- a/booster/test/rpc-integration/test-issue4118-indexing/README.md +++ b/booster/test/rpc-integration/test-issue4118-indexing/README.md @@ -11,13 +11,13 @@ Therefore the only rules tried would be those with index `Anything` (in that com Rules: ``` - rule f(A) => f(B) // index TopFun "f" - rule f(B) => A // index TopFun "f" + rule f(A) => f(B) // index IdxFun "f" + rule f(B) => A // index IdxFun "f" rule [consrule]: // index TopCon "Cons" Cons(I) => f(I) ... - rule [Vrule]: // index TopVal "A" + rule [Vrule]: // index IdxVal "A" A => Done ... rule [varrule]: // index *** diff --git a/booster/unit-tests/Test/Booster/Pattern/ApplyEquations.hs b/booster/unit-tests/Test/Booster/Pattern/ApplyEquations.hs index 8468648c68..b2353bae83 100644 --- a/booster/unit-tests/Test/Booster/Pattern/ApplyEquations.hs +++ b/booster/unit-tests/Test/Booster/Pattern/ApplyEquations.hs @@ -258,8 +258,8 @@ funDef = testDefinition { functionEquations = mkTheory - [ (index TopFun "f1", f1Equations) - , (index TopFun "f2", f2Equations) -- should not be applied (f2 partial) + [ (index IdxFun "f1", f1Equations) + , (index IdxFun "f2", f2Equations) -- should not be applied (f2 partial) ] } simplDef = @@ -267,7 +267,7 @@ simplDef = { simplifications = mkTheory [ - ( index TopCons "con1" + ( index IdxCons "con1" , [ equation -- con1(con2(f2(X))) => con1(X) , but f2 partial => not applied Nothing @@ -288,7 +288,7 @@ simplDef = ] ) , - ( index TopCons "con3" + ( index IdxCons "con3" , [ equation -- con3(X, X) => inj{sub,some}(con4(X, X)) Nothing @@ -305,7 +305,7 @@ loopDef = { simplifications = mkTheory [ - ( index TopFun "f1" + ( index IdxFun "f1" , [ equation Nothing diff --git a/booster/unit-tests/Test/Booster/Pattern/Index.hs b/booster/unit-tests/Test/Booster/Pattern/Index.hs index 897325a778..b5c15c0cf3 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Index.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Index.hs @@ -34,14 +34,14 @@ testKCellIndexing = testGroup "Indexing the K cell" [ testCase "An empty K cell is indexed as dotk" $ - [trm| kCell{}(dotk{}()) |] ==> TopCons "dotk" + [trm| kCell{}(dotk{}()) |] ==> IdxCons "dotk" , testCase "A non-empty K cell is indexed as its head element without injections" $ do [trm| kCell{}(kseq{}(inj{SomeSort{},SortKItem{}}(f1{}(X:SomeSort{})), dotk{}())) |] - ==> TopFun "f1" + ==> IdxFun "f1" KSeq someSort [trm| X:SomeSort{} |] ==> Anything [trm| kCell{}(kseq{}(inj{SomeSort{},SortKItem{}}(\dv{SomeSort{}}("X")), dotk{}())) |] - ==> TopVal "X" + ==> IdxVal "X" [trm| kCell{}(X:SortK{}) |] ==> Anything , testCase "The K cell is found when nested under other cells" $ do @@ -53,7 +53,7 @@ testKCellIndexing = other{}(dotk{}()) ) |] - ==> TopFun "f1" + ==> IdxFun "f1" [trm| topCell{}( nesting{}( @@ -62,7 +62,7 @@ testKCellIndexing = other{}(X:SortK{}) ) |] - ==> TopCons "dotk" + ==> IdxCons "dotk" ] where (==>) :: Term -> CellIndex -> Assertion @@ -92,7 +92,7 @@ testCompositeIndexing = other{}(dotk{}()) ) |] - [TopCons "dotk"] + [IdxCons "dotk"] testWith [other.name] [trm| @@ -105,7 +105,7 @@ testCompositeIndexing = ) ) |] - [TopFun "f1"] + [IdxFun "f1"] testWith [other.name] [trm| @@ -128,7 +128,7 @@ testCompositeIndexing = other{}(dotk{}()) ) |] - [TopCons "dotk", TopFun "f1"] + [IdxCons "dotk", IdxFun "f1"] testWith [other.name, kCell.name] [trm| @@ -141,7 +141,7 @@ testCompositeIndexing = ) ) |] - [TopFun "f1", Anything] + [IdxFun "f1", Anything] testWith [other.name, kCell.name] [trm| @@ -152,7 +152,7 @@ testCompositeIndexing = other{}(X:SortK{}) ) |] - [Anything, TopCons "dotk"] + [Anything, IdxCons "dotk"] , testCase "If a duplicated cell is chosen, the first occurrence counts" $ do testWith [other.name] @@ -171,7 +171,7 @@ testCompositeIndexing = other{}(X:SortK{}) ) |] - [TopCons "dotk"] + [IdxCons "dotk"] ] where testWith :: [SymbolName] -> Term -> [CellIndex] -> Assertion @@ -183,17 +183,17 @@ testTopTermIndexing = "Indexing the top term" [ testCase "Different terms get different indexes" $ do [trm| VAR:SomeSort{} |] ==> Anything - [trm| \dv{SomeSort{}}("") |] ==> TopVal "" - [trm| f1{}(VAR:SomeSort{}) |] ==> TopFun "f1" - [trm| con1{}(VAR:SomeSort{}) |] ==> TopCons "con1" - KMap testKMapDefinition [] Nothing ==> TopMap - KList testKListDef [] Nothing ==> TopList - KSet testKSetDef [] Nothing ==> TopSet + [trm| \dv{SomeSort{}}("") |] ==> IdxVal "" + [trm| f1{}(VAR:SomeSort{}) |] ==> IdxFun "f1" + [trm| con1{}(VAR:SomeSort{}) |] ==> IdxCons "con1" + KMap testKMapDefinition [] Nothing ==> IdxMap + KList testKListDef [] Nothing ==> IdxList + KSet testKSetDef [] Nothing ==> IdxSet , testCase "And-terms are indexed by combining the argument indexes" $ do - AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| Y:SomeSort{} |] ==> TopFun "f1" - AndTerm [trm| X:SomeSort{} |] [trm| con1{}( Y:SomeSort{} ) |] ==> TopCons "con1" - AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f1{}( Y:SomeSort{} ) |] ==> TopFun "f1" - AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f2{}( Y:SomeSort{} ) |] ==> None + AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| Y:SomeSort{} |] ==> IdxFun "f1" + AndTerm [trm| X:SomeSort{} |] [trm| con1{}( Y:SomeSort{} ) |] ==> IdxCons "con1" + AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f1{}( Y:SomeSort{} ) |] ==> IdxFun "f1" + AndTerm [trm| f1{}( X:SomeSort{} ) |] [trm| f2{}( Y:SomeSort{} ) |] ==> IdxNone AndTerm [trm| X:SomeSort{} |] [trm| Y:SomeSort{} |] ==> Anything ] where @@ -211,28 +211,28 @@ testIndexCover = , -- , testCase "Anything in all components is unchanged" $ -- [Anything, Anything, Anything] ==> [[Anything, Anything, Anything]] testCase "[Anything] is added to single-component indexes" $ - [TopCons "bla"] ==> [[TopCons "bla"], [Anything]] + [IdxCons "bla"] ==> [[IdxCons "bla"], [Anything]] , testCase "Anything is added to every component, in all combinations" $ do - let cells = map TopCons ["bla", "blu", "bli"] + let cells = map IdxCons ["bla", "blu", "bli"] take 2 cells - ==> [ [TopCons "bla", TopCons "blu"] - , [TopCons "bla", Anything] - , [Anything, TopCons "blu"] + ==> [ [IdxCons "bla", IdxCons "blu"] + , [IdxCons "bla", Anything] + , [Anything, IdxCons "blu"] , [Anything, Anything] ] cells ==> [ cells - , [TopCons "bla", TopCons "blu", Anything] - , [TopCons "bla", Anything, TopCons "bli"] - , [TopCons "bla", Anything, Anything] - , [Anything, TopCons "blu", TopCons "bli"] - , [Anything, TopCons "blu", Anything] - , [Anything, Anything, TopCons "bli"] + , [IdxCons "bla", IdxCons "blu", Anything] + , [IdxCons "bla", Anything, IdxCons "bli"] + , [IdxCons "bla", Anything, Anything] + , [Anything, IdxCons "blu", IdxCons "bli"] + , [Anything, IdxCons "blu", Anything] + , [Anything, Anything, IdxCons "bli"] , [Anything, Anything, Anything] ] , testCase "Cell index Anything is covered by all possible indexes" $ do [Anything] ==> map (: []) cellIndexes - [Anything, TopList] ==> concat [[[i, TopList], [i, Anything]] | i <- cellIndexes] + [Anything, IdxList] ==> concat [[[i, IdxList], [i, Anything]] | i <- cellIndexes] [Anything, Anything] ==> permuteCIs 2 ] where @@ -241,9 +241,9 @@ testIndexCover = (indexes (length idx) `Idx.covering` TermIndex idx) @?= Set.fromList (map TermIndex expected) cellIndexes = - map TopCons ["bla", "blu", "bli"] - <> map TopFun ["f1", "f2"] - <> [TopMap, TopList, TopSet, Anything] + map IdxCons ["bla", "blu", "bli"] + <> map IdxFun ["f1", "f2"] + <> [IdxMap, IdxList, IdxSet, Anything] indexes = Set.fromList . map TermIndex . permuteCIs permuteCIs :: Int -> [[CellIndex]] permuteCIs n diff --git a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs index 1ddaf10fa9..8ccf2377f9 100644 --- a/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs +++ b/booster/unit-tests/Test/Booster/Pattern/Rewrite.hs @@ -62,7 +62,7 @@ test_performRewrite = ---------------------------------------- indexC :: SymbolName -> TermIndex -indexC = TermIndex . (: []) . TopCons +indexC = TermIndex . (: []) . IdxCons def :: KoreDefinition def = @@ -182,7 +182,7 @@ errorCases errorCases = testGroup "Simple error cases" - [ testCase "Index is None" $ do + [ testCase "Index is IdxNone" $ do let t = [trm| kCell{}( @@ -392,7 +392,7 @@ abortsOnProblems :: TestTree abortsOnProblems = testGroup "Aborts on unexpected situations or unclear rule application" - [ testCase "when the term index is None" $ + [ testCase "when the term index is IdxNone" $ let term = [trm| kCell{}( kseq{}( inj{SomeSort{}, SortKItem{}}( \and{SomeSort{}}( con1{}( \dv{SomeSort{}}("thing") ), con2{}( \dv{SomeSort{}}("thing") ) ) ), C:SortK{} ) ) |] in aborts From c3bd6d9e740166810d93d6dde2c7b70e07ef2fa6 Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Fri, 18 Jul 2025 10:11:00 +1000 Subject: [PATCH 18/19] Adjust doc comments in Booster.Pattern.Index --- booster/library/Booster/Pattern/Index.hs | 27 ++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/booster/library/Booster/Pattern/Index.hs b/booster/library/Booster/Pattern/Index.hs index 2871792b5b..b522fca8cb 100644 --- a/booster/library/Booster/Pattern/Index.hs +++ b/booster/library/Booster/Pattern/Index.hs @@ -39,9 +39,13 @@ import Booster.Util (decodeLabel) A @Term@ is indexed by inspecting the top term component of one or more given cells. A @TermIndex@ is a list of @CellIndex@es. -The @CellIndex@ of a cell containing a @SymbolApplication@ node is the -symbol at the top. Other terms that are not symbol applications have -index @Anything@. +The @CellIndex@ of a cell reflects the top constructor of the term. +For @SymbolApplication@s, constructors and functions are distinguished, +for @DomainValue@s, the actual value (as a string) is part of the index. +Internalised collections have special indexes, Variables have index @Anything@. + +NB Indexes are _unsorted_. For instance, @IdxVal "42"@ is the index of +both String "42" _and_ Integer 42. Rather than making the term indexing function partial, we introduce a unique bottom element @IdxNone@ to the index type (to make it a lattice). @@ -76,17 +80,14 @@ class IndexLattice a where invert :: a -> a -ifGreater :: IndexLattice a => Set a -> a -> Set a -ifGreater base x = Set.filter (x ^<=^) base - {- | Partial less-or-equal for CellIndex (implies partial order) Anything - ____________/ | \_______________________________________... - / / | | \ \ -IdxList ..IdxSet IdxVal "x"..IdxVal "y" IdxCons "A".. IdxFun "f".. - \__________|__ | _________|____________|____________/____... - \ | / + ____________/ | \_______________________________________... + / / | | \ \ +IdxList ..IdxSet IdxVal "x"..IdxVal "y" IdxCons "A".. IdxFun "f".. + \_________|__ | _______|____________|____________/____... + \ | / IdxNone -} instance IndexLattice CellIndex where @@ -106,7 +107,7 @@ instance IndexLattice TermIndex where invert (TermIndex idxs) = TermIndex (map invert idxs) -{- | Combines two indexes (an "infimum" function on the index lattice). +{- | Combines two indexes ("infimum" or "meet" function on the index lattice). This is useful for terms containing an 'AndTerm': Any term that matches an 'AndTerm t1 t2' must match both 't1' and 't2', so 't1' @@ -170,7 +171,7 @@ noFunctions (TermIndex ixs) = TermIndex (map funsAnything ixs) @Anything@ at every position of their @TermIndex@. -} covering :: Set TermIndex -> TermIndex -> Set TermIndex -covering prior ix = prior `ifGreater` invert ix +covering prior ix = Set.filter (invert ix ^<=^) prior -- | Indexes a term by the heads of K sequences in given cells. compositeTermIndex :: [SymbolName] -> Term -> TermIndex From 09c56a023935ec72e6ef5692a29b92bcd99b5aea Mon Sep 17 00:00:00 2001 From: Jost Berthold Date: Fri, 18 Jul 2025 10:46:46 +1000 Subject: [PATCH 19/19] adjust indexing comments in test and readme --- .../test/rpc-integration/resources/issue4118-indexing.k | 4 ++-- .../rpc-integration/test-issue4118-indexing/README.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/booster/test/rpc-integration/resources/issue4118-indexing.k b/booster/test/rpc-integration/resources/issue4118-indexing.k index 6bcd235a33..d244161f3f 100644 --- a/booster/test/rpc-integration/resources/issue4118-indexing.k +++ b/booster/test/rpc-integration/resources/issue4118-indexing.k @@ -15,10 +15,10 @@ module TEST rule f(A) => f(B) // index IdxFun "f" rule f(B) => A // index IdxFun "f" - rule [Vrule]: // index IdxVal "A" + rule [arule]: // index IdxCons "A" A => Done ... - rule [consrule]: // index TopCon "Cons" + rule [consrule]: // index IdxCons "Cons" Cons(I) => f(I) ... rule [varrule]: // index *** diff --git a/booster/test/rpc-integration/test-issue4118-indexing/README.md b/booster/test/rpc-integration/test-issue4118-indexing/README.md index d9adf86e7f..bdfaa414d7 100644 --- a/booster/test/rpc-integration/test-issue4118-indexing/README.md +++ b/booster/test/rpc-integration/test-issue4118-indexing/README.md @@ -14,10 +14,10 @@ Rules: rule f(A) => f(B) // index IdxFun "f" rule f(B) => A // index IdxFun "f" - rule [consrule]: // index TopCon "Cons" + rule [consrule]: // index IdxCons "Cons" Cons(I) => f(I) ... - rule [Vrule]: // index IdxVal "A" + rule [arule]: // index IdxCons "A" A => Done ... rule [varrule]: // index *** @@ -33,9 +33,9 @@ Input: `Cons(B)` - which leads to the rewrite looping with `varrule`. * With the fixed indexes, - booster tries _all_ rules in priority order because `f` can evaluate to different things - - a rewrite with `consrule` or `Vrule` aborts on an indeterminate match with `f(B)` + - a rewrite with `consrule` or `arule` aborts on an indeterminate match with `f(B)` - the term is simplified, evaluating `f(B) => A` - - the subsequent rewrite succeeds for `Vrule`, producing `Done` + - the subsequent rewrite succeeds for `arule`, producing `Done` ``` Cons(B) =rewrite=> f(B) =eval=> A =rewrite=> Done correct