diff --git a/src/kink.md b/src/kink.md
index b74ecc5..95cb47d 100644
--- a/src/kink.md
+++ b/src/kink.md
@@ -97,6 +97,19 @@ module META-ACCESSORS
imports BOOL
imports SET
+ syntax Set ::= #getImportedModules(ModuleName) [function]
+ syntax Set ::= #getImportedModulesSet(ModuleName, Set) [function]
+ rule #getImportedModules(MNAME) => #getImportedModulesSet(MNAME, SetItem(MNAME))
+ rule [[ #getImportedModulesSet(MNAME, MODS)
+ => #getImportedModulesSet(MNAME, MODS SetItem(IMPORTED) #getImportedModules(IMPORTED))
+ ]]
+ MNAME
+ koreImport(IMPORTED, _)
+ requires notBool IMPORTED in MODS
+ rule #getImportedModulesSet(MNAME, MODS) => MODS [owise]
+```
+
+```k
syntax Bool ::= #isSortDeclared(ModuleName, SortName) [function, withConfig]
rule [[ #isSortDeclared(MNAME:ModuleName, SORT:SortName) => true ]]
MNAME
@@ -105,11 +118,19 @@ module META-ACCESSORS
```
```k
- syntax Bool ::= #isSymbolDeclared(ModuleName, SymbolName) [function, withConfig]
- rule [[ #isSymbolDeclared(MNAME, SYMBOL) => true ]]
+ syntax Bool ::= #isSymbolDeclaredSingleModule(ModuleName, SymbolName) [function]
+ rule [[ #isSymbolDeclaredSingleModule(MNAME, SYMBOL) => true ]]
MNAME
(symbol SYMBOL { _ } ( _ ) : _ ATTRS)
- rule #isSymbolDeclared(_, _) => false [owise]
+ rule #isSymbolDeclaredSingleModule(_, _) => false [owise]
+
+ syntax Bool ::= #isSymbolDeclared(ModuleName, SymbolName) [function]
+ syntax Bool ::= #isSymbolDeclaredSet(Set, SymbolName) [function]
+ rule #isSymbolDeclared(MNAME, SNAME)
+ => #isSymbolDeclaredSet(#getImportedModules(MNAME), SNAME)
+ rule #isSymbolDeclaredSet(SetItem(M) Ms, SNAME)
+ => #isSymbolDeclaredSingleModule(M, SNAME) orBool #isSymbolDeclaredSet(Ms, SNAME)
+ rule #isSymbolDeclaredSet(.Set, SNAME) => false
```
```k