diff --git a/debug/kgdb.py b/debug/kgdb.py
index 1e8683f11..ce9066cc5 100644
--- a/debug/kgdb.py
+++ b/debug/kgdb.py
@@ -359,6 +359,7 @@ def __init__(self, val, cat, sortName):
self.used_var_names = set()
self.long_int = gdb.lookup_type("long int")
self.bool_ptr = gdb.lookup_type("bool").pointer()
+ self.char_ptr = gdb.lookup_type("unsigned char").pointer()
self.unsigned_char = gdb.lookup_type("unsigned char")
self.string_ptr = gdb.lookup_type("string").pointer()
self.stringbuffer_ptr = gdb.lookup_type("stringbuffer").pointer()
@@ -483,6 +484,20 @@ def appendInt(self, val, sort):
self.appendLimbs(size, val.dereference()['_mp_d'])
self.result += "\")"
+ def appendMInt(self, val, width, sort):
+ self.result += "\\dv{" + sort + "}(\""
+ self.appendLE(val.cast(self.char_ptr), width)
+ self.result += "\")"
+
+ def appendLE(self, ptr, size):
+ accum = 0
+ for i in range(size-1,-1,-1):
+ accum <<= 8
+ byte = int(ptr[i])
+ accum |= byte
+ self.result += str(accum)
+ self.result += "p" + str(size * 8)
+
def appendList(self, val, sort):
length = val.dereference()['impl_']['size']
if length == 0:
@@ -632,6 +647,14 @@ def append(self, subject, isVar, sort):
self.result += "\\dv{" + sort + "}(\"" + string + "\")"
elif cat == @STRINGBUFFER_LAYOUT@:
self.appendStringBuffer(arg.cast(self.stringbuffer_ptr_ptr).dereference(), sort)
+ elif cat == @MINT_LAYOUT@ + 32:
+ self.appendMInt(arg, 4, sort)
+ elif cat == @MINT_LAYOUT@ + 64:
+ self.appendMInt(arg, 8, sort)
+ elif cat == @MINT_LAYOUT@ + 160:
+ self.appendMInt(arg, 20, sort)
+ elif cat == @MINT_LAYOUT@ + 256:
+ self.appendMInt(arg, 32, sort)
else:
raise ValueError()
if i != nargs - 1:
diff --git a/matching/src/main/java/org/kframework/backend/llvm/matching/MatchingException.java b/matching/src/main/java/org/kframework/backend/llvm/matching/MatchingException.java
index 6141757e7..505230f71 100644
--- a/matching/src/main/java/org/kframework/backend/llvm/matching/MatchingException.java
+++ b/matching/src/main/java/org/kframework/backend/llvm/matching/MatchingException.java
@@ -4,7 +4,7 @@
import java.util.Optional;
-public final class MatchingException extends Throwable {
+public final class MatchingException extends RuntimeException {
public enum Type {
USELESS_RULE,
NON_EXHAUSTIVE_MATCH,
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/Constructor.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/Constructor.scala
index 67f6ad78e..51106208f 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/Constructor.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/Constructor.scala
@@ -35,41 +35,64 @@ case class NonEmpty() extends Constructor {
override lazy val hashCode: Int = scala.runtime.ScalaRunTime._hashCode(this)
}
-case class HasKey(isSet: Boolean, element: SymbolOrAlias, key: Option[Pattern[Option[Occurrence]]])
- extends Constructor {
+case class HasKey(
+ cat: SortCategory,
+ element: SymbolOrAlias,
+ key: Option[Pattern[Option[Occurrence]]]
+) extends Constructor {
def name = "1"
def isBest(pat: Pattern[Option[Occurrence]]): Boolean = key.isDefined && pat == key.get
def expand(f: Fringe): Option[immutable.Seq[Fringe]] = {
val sorts = f.symlib.signatures(element)._1
key match {
case None =>
- if (isSet) {
- Some(
- immutable.Seq(
- Fringe(f.symlib, sorts.head, Choice(f.occurrence), isExact = false),
- Fringe(f.symlib, f.sort, ChoiceRem(f.occurrence), isExact = false)
+ cat match {
+ case SetS() =>
+ Some(
+ immutable.Seq(
+ Fringe(f.symlib, sorts.head, Choice(f.occurrence), isExact = false),
+ Fringe(f.symlib, f.sort, ChoiceRem(f.occurrence), isExact = false)
+ )
+ )
+ case MapS() =>
+ Some(
+ immutable.Seq(
+ Fringe(f.symlib, sorts.head, Choice(f.occurrence), isExact = false),
+ Fringe(f.symlib, sorts(1), ChoiceValue(f.occurrence), isExact = false),
+ Fringe(f.symlib, f.sort, ChoiceRem(f.occurrence), isExact = false)
+ )
)
- )
- } else {
- Some(
- immutable.Seq(
- Fringe(f.symlib, sorts.head, Choice(f.occurrence), isExact = false),
- Fringe(f.symlib, sorts(1), ChoiceValue(f.occurrence), isExact = false),
- Fringe(f.symlib, f.sort, ChoiceRem(f.occurrence), isExact = false)
+ case ListS() =>
+ Some(
+ immutable.Seq(
+ Fringe(f.symlib, sorts(1), Choice(f.occurrence), isExact = false),
+ Fringe(f.symlib, sorts(2), ChoiceValue(f.occurrence), isExact = false),
+ Fringe(f.symlib, f.sort, ChoiceRem(f.occurrence), isExact = false)
+ )
)
- )
+ case _ => ???
}
case Some(k) =>
- if (isSet) {
- Some(immutable.Seq(Fringe(f.symlib, f.sort, Rem(k, f.occurrence), isExact = false), f))
- } else {
- Some(
- immutable.Seq(
- Fringe(f.symlib, sorts(1), Value(k, f.occurrence), isExact = false),
- Fringe(f.symlib, f.sort, Rem(k, f.occurrence), isExact = false),
- f
+ cat match {
+ case SetS() =>
+ Some(immutable.Seq(Fringe(f.symlib, f.sort, Rem(k, f.occurrence), isExact = false), f))
+ case MapS() =>
+ Some(
+ immutable.Seq(
+ Fringe(f.symlib, sorts(1), Value(k, f.occurrence), isExact = false),
+ Fringe(f.symlib, f.sort, Rem(k, f.occurrence), isExact = false),
+ f
+ )
+ )
+ case ListS() =>
+ Some(
+ immutable.Seq(
+ Fringe(f.symlib, sorts(2), Value(k, f.occurrence), isExact = false),
+ Fringe(f.symlib, f.sort, f.occurrence, isExact = false),
+ f
+ )
)
- )
+ case _ => ???
}
}
}
@@ -77,20 +100,24 @@ case class HasKey(isSet: Boolean, element: SymbolOrAlias, key: Option[Pattern[Op
val child = children.last
var key: Pattern[String] = null
var value: Pattern[String] = null
- assert((isSet && children.size == 2) || (!isSet && children.size == 3))
+ assert((cat == SetS() && children.size == 2) || (cat != SetS() && children.size == 3))
if (this.key.isEmpty) {
- if (isSet) {
- key = children.head
- } else {
- key = children.head
- value = children(1)
+ cat match {
+ case SetS() =>
+ key = children.head
+ case MapS() =>
+ key = children.head
+ value = children(1)
+ case _ => ???
}
} else {
- if (isSet) {
- key = this.key.get.decanonicalize
- } else {
- key = this.key.get.decanonicalize
- value = children.head
+ cat match {
+ case SetS() =>
+ key = this.key.get.decanonicalize
+ case ListS() | MapS() =>
+ key = this.key.get.decanonicalize
+ value = children.head
+ case _ => ???
}
}
def element(k: Pattern[String], v: Pattern[String]): Pattern[String] =
@@ -99,27 +126,44 @@ case class HasKey(isSet: Boolean, element: SymbolOrAlias, key: Option[Pattern[Op
SymbolP(Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get, immutable.Seq(k))
def concat(m1: Pattern[String], m2: Pattern[String]): Pattern[String] =
SymbolP(Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "concat").get, immutable.Seq(m1, m2))
+ def update(m1: Pattern[String], m2: Pattern[String], m3: Pattern[String]): Pattern[String] =
+ SymbolP(
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "update").get,
+ immutable.Seq(m1, m2, m3)
+ )
child match {
case MapP(keys, values, frame, ctr, orig) =>
MapP(key +: keys, value +: values, frame, ctr, orig)
+ case ListGetP(keys, values, frame, ctr, orig) =>
+ ListGetP(key +: keys, value +: values, frame, ctr, orig)
case SetP(elems, frame, ctr, orig) =>
SetP(key +: elems, frame, ctr, orig)
case WildcardP() | VariableP(_, _) =>
- if (isSet) {
- SetP(
- immutable.Seq(key),
- Some(child),
- Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
- concat(setElement(key), child)
- )
- } else {
- MapP(
- immutable.Seq(key),
- immutable.Seq(value),
- Some(child),
- Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
- concat(element(key, value), child)
- )
+ cat match {
+ case SetS() =>
+ SetP(
+ immutable.Seq(key),
+ Some(child),
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
+ concat(setElement(key), child)
+ )
+ case MapS() =>
+ MapP(
+ immutable.Seq(key),
+ immutable.Seq(value),
+ Some(child),
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
+ concat(element(key, value), child)
+ )
+ case ListS() =>
+ ListGetP(
+ immutable.Seq(key),
+ immutable.Seq(value),
+ child,
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "update").get,
+ update(child, key, value)
+ )
+ case _ => ???
}
case _ => ???
}
@@ -127,7 +171,8 @@ case class HasKey(isSet: Boolean, element: SymbolOrAlias, key: Option[Pattern[Op
override lazy val hashCode: Int = scala.runtime.ScalaRunTime._hashCode(this)
}
-case class HasNoKey(isSet: Boolean, key: Option[Pattern[Option[Occurrence]]]) extends Constructor {
+case class HasNoKey(cat: SortCategory, key: Option[Pattern[Option[Occurrence]]])
+ extends Constructor {
def name = "0"
def isBest(pat: Pattern[Option[Occurrence]]): Boolean = key.isDefined && pat == key.get
def expand(f: Fringe): Option[immutable.Seq[Fringe]] = Some(immutable.Seq(f))
@@ -141,6 +186,11 @@ case class HasNoKey(isSet: Boolean, key: Option[Pattern[Option[Occurrence]]]) ex
SymbolP(Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "unit").get, immutable.Seq())
def concat(m1: Pattern[String], m2: Pattern[String]): Pattern[String] =
SymbolP(Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "concat").get, immutable.Seq(m1, m2))
+ def update(m1: Pattern[String], m2: Pattern[String], m3: Pattern[String]): Pattern[String] =
+ SymbolP(
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "update").get,
+ immutable.Seq(m1, m2, m3)
+ )
def wildcard = WildcardP[String]()
child match {
case MapP(keys, values, frame, ctr, orig) =>
@@ -154,21 +204,31 @@ case class HasNoKey(isSet: Boolean, key: Option[Pattern[Option[Occurrence]]]) ex
case SetP(elems, frame, ctr, orig) =>
SetP(wildcard +: elems, frame, ctr, concat(setElement(wildcard), orig))
case WildcardP() | VariableP(_, _) =>
- if (isSet) {
- SetP(
- immutable.Seq(wildcard),
- Some(child),
- Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
- concat(setElement(wildcard), child)
- )
- } else {
- MapP(
- immutable.Seq(wildcard),
- immutable.Seq(wildcard),
- Some(child),
- Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
- concat(element(wildcard, wildcard), child)
- )
+ cat match {
+ case SetS() =>
+ SetP(
+ immutable.Seq(wildcard),
+ Some(child),
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
+ concat(setElement(wildcard), child)
+ )
+ case MapS() =>
+ MapP(
+ immutable.Seq(wildcard),
+ immutable.Seq(wildcard),
+ Some(child),
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "element").get,
+ concat(element(wildcard, wildcard), child)
+ )
+ case ListS() =>
+ ListGetP(
+ immutable.Seq(wildcard),
+ immutable.Seq(wildcard),
+ child,
+ Parser.getSymbolAtt(f.symlib.sortAtt(f.sort), "update").get,
+ update(child, wildcard, wildcard)
+ )
+ case _ => ???
}
case _ => ???
}
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/Generator.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/Generator.scala
index 5a93c3389..a738f3711 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/Generator.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/Generator.scala
@@ -4,6 +4,7 @@ import com.runtimeverification.k.kore._
import org.kframework.backend.llvm.matching.dt.DecisionTree
import org.kframework.backend.llvm.matching.pattern.{ Pattern => P }
import org.kframework.backend.llvm.matching.pattern.AsP
+import org.kframework.backend.llvm.matching.pattern.ListGetP
import org.kframework.backend.llvm.matching.pattern.ListP
import org.kframework.backend.llvm.matching.pattern.LiteralP
import org.kframework.backend.llvm.matching.pattern.MapP
@@ -51,6 +52,25 @@ object Generator {
case _ => ???
}
+ private def listGetPattern(
+ sym: SymbolOrAlias,
+ ps: immutable.Seq[P[String]],
+ c: SymbolOrAlias
+ ): P[String] =
+ ps match {
+ case immutable.Seq(p @ (WildcardP() | VariableP(_, _)), k, v) =>
+ ListGetP(immutable.Seq(k), immutable.Seq(v), p, c, SymbolP(sym, immutable.Seq(p, k, v)))
+ case immutable.Seq(ListGetP(ks, vs, frame, _, o), k, v) =>
+ ListGetP(
+ ks ++ immutable.Seq(k),
+ vs ++ immutable.Seq(v),
+ frame,
+ c,
+ SymbolP(sym, immutable.Seq(o, k, v))
+ )
+ case _ => ???
+ }
+
private def mapPattern(
sym: SymbolOrAlias,
cons: CollectionCons,
@@ -116,6 +136,8 @@ object Generator {
): List[P[String]] = {
def getElementSym(sort: Sort): SymbolOrAlias =
Parser.getSymbolAtt(symlib.sortAtt(sort), "element").get
+ def getUpdateSym(sort: Sort): SymbolOrAlias =
+ Parser.getSymbolAtt(symlib.sortAtt(sort), "update").get
def genPattern(pat: Pattern): P[String] =
pat match {
case Application(sym, ps) =>
@@ -128,6 +150,8 @@ object Generator {
case Some("LIST.unit") => listPattern(sym, Unit(), immutable.Seq(), getElementSym(sort))
case Some("LIST.element") =>
listPattern(sym, Element(), ps.map(genPattern), getElementSym(sort))
+ case Some("LIST.update") =>
+ listGetPattern(sym, ps.map(genPattern), getUpdateSym(sort))
case Some("MAP.concat") =>
mapPattern(sym, Concat(), ps.map(genPattern), getElementSym(sort))
case Some("MAP.unit") => mapPattern(sym, Unit(), immutable.Seq(), getElementSym(sort))
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/Heuristics.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/Heuristics.scala
index 5a706705a..cdae86721 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/Heuristics.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/Heuristics.scala
@@ -35,6 +35,13 @@ sealed trait Heuristic {
key: Option[Pattern[Option[Occurrence]]],
isEmpty: Boolean
): Double = ???
+ def scoreListGet[T](
+ p: ListGetP[T],
+ f: Fringe,
+ c: Clause,
+ key: Option[Pattern[Option[Occurrence]]],
+ isEmpty: Boolean
+ ): Double = ???
def scoreOr[T](
p: OrP[T],
f: Fringe,
@@ -148,6 +155,20 @@ object DefaultHeuristic extends Heuristic {
} else {
1.0
}
+ override def scoreListGet[T](
+ p: ListGetP[T],
+ f: Fringe,
+ c: Clause,
+ key: Option[Pattern[Option[Occurrence]]],
+ isEmpty: Boolean
+ ): Double =
+ if (p.keys.isEmpty) {
+ p.frame.score(this, f, c, key, isEmpty)
+ } else if (key.isDefined) {
+ if (p.canonicalize(c).keys.contains(key.get)) 1.0 else 0.0
+ } else {
+ 1.0
+ }
override def scoreOr[T](
p: OrP[T],
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/Matrix.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/Matrix.scala
index 568c54186..39fee871b 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/Matrix.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/Matrix.scala
@@ -132,7 +132,7 @@ class Column(
c
} else {
val hasKey = c.asInstanceOf[HasKey]
- HasKey(hasKey.isSet, hasKey.element, None)
+ HasKey(hasKey.cat, hasKey.element, None)
}
}
@@ -307,8 +307,8 @@ class SortInfo private (sort: Sort, symlib: Parser.SymLib) {
val exactLength: Int = category.length(exactConstructors.size)
val isCollection: Boolean =
category match {
- case MapS() | SetS() => true
- case _ => false
+ case MapS() | SetS() | ListS() => true
+ case _ => false
}
}
object SortInfo {
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/dt/DecisionTree.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/dt/DecisionTree.scala
index 6a32e3e95..d24c4f63f 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/dt/DecisionTree.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/dt/DecisionTree.scala
@@ -377,10 +377,11 @@ object MakePattern {
case VariableP(Some(o), h) =>
result.put("hook", h.hookAtt)
result.put("occurrence", o.representation)
- case AsP(_, _, p) => return representPattern(p)
- case MapP(_, _, _, _, o) => return representPattern(o)
- case SetP(_, _, _, o) => return representPattern(o)
- case ListP(_, _, _, _, o) => return representPattern(o)
+ case AsP(_, _, p) => return representPattern(p)
+ case MapP(_, _, _, _, o) => return representPattern(o)
+ case SetP(_, _, _, o) => return representPattern(o)
+ case ListP(_, _, _, _, o) => return representPattern(o)
+ case ListGetP(_, _, _, _, o) => return representPattern(o)
case LiteralP(s, h) =>
result.put("hook", h.hookAtt)
if (h.hookAtt == "BYTES.Bytes") {
@@ -405,10 +406,11 @@ object MakePattern {
case VariableP(o, h) =>
result.put("hook", h.hookAtt)
result.put("occurrence", o)
- case AsP(_, _, p) => return representResidual(p)
- case MapP(_, _, _, _, o) => return representResidual(o)
- case SetP(_, _, _, o) => return representResidual(o)
- case ListP(_, _, _, _, o) => return representResidual(o)
+ case AsP(_, _, p) => return representResidual(p)
+ case MapP(_, _, _, _, o) => return representResidual(o)
+ case SetP(_, _, _, o) => return representResidual(o)
+ case ListP(_, _, _, _, o) => return representResidual(o)
+ case ListGetP(_, _, _, _, o) => return representResidual(o)
case LiteralP(s, h) =>
result.put("hook", h.hookAtt)
result.put("literal", s)
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/Pattern.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/Pattern.scala
index cfafe2924..52caa415b 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/Pattern.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/Pattern.scala
@@ -71,12 +71,13 @@ object Pattern {
case (LiteralP(c1, _), LiteralP(c2, _)) => c1 == c2
case (SymbolP(c1, ps1), SymbolP(c2, ps2)) =>
c1 == c2 && ps1.lazyZip(ps2).toSeq.forall(t => Pattern.mightUnify(t._1, t._2))
- case (ListP(_, _, _, _, _), ListP(_, _, _, _, _)) => true
- case (MapP(_, _, _, _, _), MapP(_, _, _, _, _)) => true
- case (SetP(_, _, _, _), SetP(_, _, _, _)) => true
+ case (ListP(_, _, _, _, _), ListP(_, _, _, _, _)) => true
+ case (MapP(_, _, _, _, _), MapP(_, _, _, _, _)) => true
+ case (ListGetP(_, _, _, _, _), ListGetP(_, _, _, _, _)) => true
+ case (SetP(_, _, _, _), SetP(_, _, _, _)) => true
case (
LiteralP(_, _) | SymbolP(_, _) | ListP(_, _, _, _, _) | MapP(_, _, _, _, _) |
- SetP(_, _, _, _),
+ SetP(_, _, _, _) | ListGetP(_, _, _, _, _),
_
) =>
false
@@ -147,6 +148,158 @@ case class AsP[T](name: T, sort: SortCategory, pat: Pattern[T]) extends Pattern[
B.And(f.sort, pat.toKORE(f), B.Variable(name.toString, f.sort))
}
+case class ListGetP[T] private (
+ keys: immutable.Seq[Pattern[T]],
+ values: immutable.Seq[Pattern[T]],
+ frame: Pattern[T],
+ ctr: SymbolOrAlias,
+ orig: Pattern[T]
+) extends Pattern[T] {
+ def signature(clause: Clause): immutable.Seq[Constructor] =
+ if (keys.isEmpty) {
+ frame.signature(clause)
+ } else {
+ keys.flatMap(key =>
+ immutable.Seq(
+ HasKey(ListS(), ctr, clause.canonicalize(key)),
+ HasNoKey(ListS(), clause.canonicalize(key))
+ )
+ ) ++ frame.signature(clause)
+ }
+ def isWildcard: Boolean = keys.isEmpty && values.isEmpty && frame.isWildcard
+ def isDefault: Boolean = true
+ def isSpecialized(
+ ix: Constructor,
+ isExact: Boolean,
+ fringe: Fringe,
+ clause: Clause,
+ maxPriority: Int
+ ): Boolean =
+ ix match {
+ case HasKey(_, _, Some(_)) => true
+ case HasNoKey(_, Some(p)) => !keys.map(_.canonicalize(clause)).contains(p)
+ // needed for usefulness
+ case HasKey(_, _, None) => clause.action.priority <= maxPriority
+ case HasNoKey(_, None) => keys.nonEmpty && clause.action.priority > maxPriority
+ case _ => ???
+ }
+ def score(
+ h: Heuristic,
+ f: Fringe,
+ c: Clause,
+ key: Option[Pattern[Option[Occurrence]]],
+ isEmpty: Boolean
+ ): Double = h.scoreListGet(this, f, c, key, isEmpty)
+ override def isChoice: Boolean = keys.nonEmpty
+ def bindings(
+ ix: Option[Constructor],
+ residual: Option[Pattern[String]],
+ occurrence: Occurrence,
+ symlib: Parser.SymLib
+ ): immutable.Seq[VariableBinding[T]] =
+ if (keys.isEmpty && values.isEmpty) {
+ frame.bindings(None, residual, occurrence, symlib)
+ } else {
+ immutable.Seq()
+ }
+ def expand(
+ ix: Constructor,
+ isExact: Boolean,
+ fringes: immutable.Seq[Fringe],
+ f: Fringe,
+ clause: Clause,
+ maxPriority: Int
+ ): immutable.Seq[Pattern[T]] =
+ ix match {
+ case HasKey(_, _, Some(p)) =>
+ val canonKs = keys.map(_.canonicalize(clause))
+ canonKs.indexOf(p) match {
+ case -1 => immutable.Seq(WildcardP(), WildcardP(), this)
+ case i =>
+ immutable.Seq(
+ values(i),
+ ListGetP(
+ keys.take(i) ++ keys.takeRight(keys.size - i - 1),
+ values.take(i) ++ values.takeRight(values.size - i - 1),
+ frame,
+ ctr,
+ orig
+ ),
+ WildcardP()
+ )
+ }
+ case HasNoKey(_, _) => immutable.Seq(this)
+ // needed for usefulness
+ case HasKey(_, _, None) =>
+ if (keys.isEmpty) {
+ frame.expand(ix, isExact, fringes, f, clause, maxPriority)
+ } else {
+ immutable.Seq(keys.head, values.head, ListGetP(keys.tail, values.tail, frame, ctr, orig))
+ }
+ case _ => ???
+ }
+ def expandOr: immutable.Seq[Pattern[T]] = {
+ val withKeys = keys.indices.foldLeft(immutable.Seq(this))((accum, ix) =>
+ accum.flatMap(m =>
+ m.keys(ix)
+ .expandOr
+ .map(p => new ListGetP(m.keys.updated(ix, p), m.values, m.frame, ctr, orig))
+ )
+ )
+ val withValues = values.indices.foldLeft(withKeys)((accum, ix) =>
+ accum.flatMap(m =>
+ m.values(ix)
+ .expandOr
+ .map(p => new ListGetP(m.keys, m.values.updated(ix, p), m.frame, ctr, orig))
+ )
+ )
+ withValues.flatMap(m => m.frame.expandOr.map(p => ListGetP(m.keys, m.values, p, ctr, orig)))
+ }
+
+ override def mapOrSetKeys: immutable.Seq[Pattern[T]] = keys
+
+ def category: Option[SortCategory] = Some(ListS())
+ lazy val variables: Set[T] =
+ keys.flatMap(_.variables).toSet ++ values.flatMap(_.variables) ++ frame.variables
+ def canonicalize(clause: Clause): ListGetP[Option[Occurrence]] = new ListGetP(
+ keys.map(_.canonicalize(clause)),
+ values.map(_.canonicalize(clause)),
+ frame.canonicalize(clause),
+ ctr,
+ orig.canonicalize(clause)
+ )
+ def decanonicalize: ListGetP[String] = new ListGetP(
+ keys.map(_.decanonicalize),
+ values.map(_.decanonicalize),
+ frame.decanonicalize,
+ ctr,
+ orig.decanonicalize
+ )
+ def isBound(clause: Clause): Boolean =
+ keys.forall(_.isBound(clause)) && values.forall(_.isBound(clause)) && frame.isBound(clause)
+ def isResidual(symlib: Parser.SymLib) = true
+ override lazy val hashCode: Int = scala.runtime.ScalaRunTime._hashCode(this)
+ def toShortString: String = "LG(" + keys.size + ")"
+ def toKORE(f: Fringe): kore.Pattern = orig.toKORE(f)
+}
+
+object ListGetP {
+ def apply[T](
+ keys: immutable.Seq[Pattern[T]],
+ values: immutable.Seq[Pattern[T]],
+ frame: Pattern[T],
+ ctr: SymbolOrAlias,
+ orig: Pattern[T]
+ ): Pattern[T] =
+ if (keys.length != values.length) {
+ throw new AssertionError("invalid ListGEtP")
+ } else if (keys.isEmpty) {
+ frame
+ } else {
+ new ListGetP(keys, values, frame, ctr, orig)
+ }
+}
+
case class ListP[T] private (
head: immutable.Seq[Pattern[T]],
frame: Option[Pattern[T]],
@@ -342,15 +495,15 @@ case class MapP[T] private (
} else if (frame.isEmpty) {
keys.flatMap(key =>
immutable.Seq(
- HasKey(isSet = false, ctr, clause.canonicalize(key)),
- HasNoKey(isSet = false, clause.canonicalize(key))
+ HasKey(MapS(), ctr, clause.canonicalize(key)),
+ HasNoKey(MapS(), clause.canonicalize(key))
)
)
} else {
keys.flatMap(key =>
immutable.Seq(
- HasKey(isSet = false, ctr, clause.canonicalize(key)),
- HasNoKey(isSet = false, clause.canonicalize(key))
+ HasKey(MapS(), ctr, clause.canonicalize(key)),
+ HasNoKey(MapS(), clause.canonicalize(key))
)
) ++ frame.get.signature(clause)
}
@@ -573,15 +726,15 @@ case class SetP[T] private (
} else if (frame.isEmpty) {
elements.flatMap(elem =>
immutable.Seq(
- HasKey(isSet = true, ctr, clause.canonicalize(elem)),
- HasNoKey(isSet = true, clause.canonicalize(elem))
+ HasKey(SetS(), ctr, clause.canonicalize(elem)),
+ HasNoKey(SetS(), clause.canonicalize(elem))
)
)
} else {
elements.flatMap(elem =>
immutable.Seq(
- HasKey(isSet = true, ctr, clause.canonicalize(elem)),
- HasNoKey(isSet = true, clause.canonicalize(elem))
+ HasKey(SetS(), ctr, clause.canonicalize(elem)),
+ HasNoKey(SetS(), clause.canonicalize(elem))
)
) ++ frame.get.signature(clause)
}
diff --git a/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/SortCategory.scala b/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/SortCategory.scala
index 0eb179a39..da3fa4c0e 100644
--- a/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/SortCategory.scala
+++ b/matching/src/main/scala/org/kframework/backend/llvm/matching/pattern/SortCategory.scala
@@ -171,7 +171,7 @@ case class ListS() extends SortCategory {
sigma: immutable.Seq[Constructor],
isExact: Boolean,
sortInfo: SortInfo
- ): Boolean = true
+ ): Boolean = sigma.isEmpty || sigma.head.isInstanceOf[ListC]
def missingConstructor(sigma: immutable.Seq[Constructor], f: Fringe): Pattern[String] = {
val maxSize = sigma.map(_.asInstanceOf[ListC].length).max
def element(v: Pattern[String]): Pattern[String] =
@@ -240,30 +240,60 @@ case class ListS() extends SortCategory {
val listO = matrix.bestCol.fringe.occurrence
val newO = Size(listO)
val maxList = matrix.bestCol.maxListSize
- // test the length of the list against the specializations of the matrix
- // if it succeeds, bind the occurrences and continue with the specialized matrix
- // otherwise, try the default case
- Function(
- "hook_LIST_size_long",
- newO,
- immutable.Seq((listO, hookAtt)),
- "MINT.MInt 64",
- SwitchLit(
+ if (matrix.sigma(0).isInstanceOf[ListC]) {
+ // test the length of the list against the specializations of the matrix
+ // if it succeeds, bind the occurrences and continue with the specialized matrix
+ // otherwise, try the default case
+ Function(
+ "hook_LIST_size_long",
newO,
+ immutable.Seq((listO, hookAtt)),
"MINT.MInt 64",
- 64,
- matrix.cases.zipWithIndex.map(l =>
- (
- l._1._1,
- l._1._2,
- expandListPattern(l._1._3, listO, matrix.sigma(l._2).asInstanceOf[ListC])
- )
- ),
- matrix
- .default(matrix.bestColIx, matrix.sigma)
- .map(expandListPatternDefault(_, listO, maxList))
+ SwitchLit(
+ newO,
+ "MINT.MInt 64",
+ 64,
+ matrix.cases.zipWithIndex.map(l =>
+ (
+ l._1._1,
+ l._1._2,
+ expandListPattern(l._1._3, listO, matrix.sigma(l._2).asInstanceOf[ListC])
+ )
+ ),
+ matrix
+ .default(matrix.bestColIx, matrix.sigma)
+ .map(expandListPatternDefault(_, listO, maxList))
+ )
)
- )
+ } else if (matrix.bestCol.isChoice) {
+ throw new MatchingException(
+ MatchingException.Type.COMPILER_ERROR,
+ "LLVM backend does not support random access list patterns with unbound keys."
+ )
+ } else {
+ val key = matrix.bestCol.bestKey
+ key match {
+ case None => Switch(listO, hookAtt, matrix.compiledCases, matrix.compiledDefault)
+ case Some(k) =>
+ MakePattern(
+ newO,
+ "STRING.String",
+ k,
+ Function(
+ "hook_LIST_get_null",
+ Value(k, listO),
+ immutable.Seq((listO, hookAtt), (newO, "STRING.String")),
+ "STRING.String",
+ CheckNull(
+ Value(k, listO),
+ "STRING.String",
+ matrix.compiledCases,
+ matrix.compiledDefault
+ )
+ )
+ )
+ }
+ }
}
}
case class MapS() extends SortCategory {
diff --git a/matching/tree_stats.py b/matching/tree_stats.py
index e202a5e2f..8423ca5c3 100755
--- a/matching/tree_stats.py
+++ b/matching/tree_stats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import yaml
import sys
diff --git a/runtime/collections/lists.cpp b/runtime/collections/lists.cpp
index 9f4e55441..95e3a524f 100644
--- a/runtime/collections/lists.cpp
+++ b/runtime/collections/lists.cpp
@@ -52,6 +52,20 @@ SortKItem hook_LIST_get_long(SortList list, ssize_t idx) {
return list->at(abs_idx);
}
+SortKItem hook_LIST_get_null(SortList list, SortInt index) {
+ if (!mpz_fits_slong_p(index)) {
+ KLLVM_HOOK_INVALID_ARGUMENT(
+ "Index is too large for get: {}", int_to_string(index));
+ }
+ ssize_t idx = mpz_get_si(index);
+ size_t size = list->size();
+ size_t abs_idx = idx < 0 ? (long)size + idx : idx;
+ if (abs_idx >= size) {
+ return nullptr;
+ }
+ return list->at(abs_idx);
+}
+
SortKItem hook_LIST_get(SortList list, SortInt index) {
if (!mpz_fits_slong_p(index)) {
KLLVM_HOOK_INVALID_ARGUMENT(
diff --git a/test/defn/k-files/test-list-get.k b/test/defn/k-files/test-list-get.k
new file mode 100644
index 000000000..4ceffeddd
--- /dev/null
+++ b/test/defn/k-files/test-list-get.k
@@ -0,0 +1,11 @@
+module TEST-LIST-GET
+ imports LIST
+ imports INT
+
+ configuration $PGM:K ListItem(0) ListItem(1) ListItem(2)
+
+ syntax KItem ::= l(Int, Int)
+
+ rule l(I, J) => .K ...
+ _ [ I <- J ]
+endmodule
diff --git a/test/defn/test-list-get.kore b/test/defn/test-list-get.kore
new file mode 100644
index 000000000..bd68d0b87
--- /dev/null
+++ b/test/defn/test-list-get.kore
@@ -0,0 +1,2207 @@
+// RUN: %interpreter
+// RUN: %check-dir-diff
+[topCellInitializer{}(LblinitGeneratedTopCell{}()), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.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-LIST-GET
+
+// imports
+ import K []
+
+// sorts
+ sort SortKCellOpt{} []
+ sort SortListCell{} []
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), unit{}(Lbl'Stop'Map{}())]
+ sort SortKConfigVar{} [hasDomainValues{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(40,3,40,28)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/kast.md)"), token{}()]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), unit{}(Lbl'Stop'List{}()), update{}(LblList'Coln'set{}())]
+ sort SortListCellOpt{} []
+ sort SortKCell{} []
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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{}, SortListCell{}, SortGeneratedCounterCell{}) : SortGeneratedTopCell{} [cell{}(), constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(5,17,5,83)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.k)")]
+ symbol Lbl'-LT-'generatedTop'-GT-'-fragment{}(SortKCellOpt{}, SortListCellOpt{}) : SortGeneratedTopCellFragment{} [constructor{}(), functional{}(), injective{}()]
+ symbol Lbl'-LT-'k'-GT-'{}(SortK{}) : SortKCell{} [cell{}(), constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(5,17,5,32)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.k)")]
+ symbol Lbl'-LT-'list'-GT-'{}(SortList{}) : SortListCell{} [cell{}(), constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(5,33,5,83)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.k)")]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("SetItem"), total{}()]
+ hooked-symbol Lbl'UndsPerc'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.tmod"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1248,18,1250,65)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("(ite (or (= 0 (mod #1 #2)) (>= #1 0)) (mod #1 #2) (ite (> #2 0) (- (mod #1 #2) #2) (+ (mod #1 #2) #2)))"), symbol'Kywd'{}("_%Int_")]
+ hooked-symbol Lbl'UndsAnd-'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.and"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1261,18,1261,125)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("andInt"), symbol'Kywd'{}("_&Int_"), total{}()]
+ hooked-symbol Lbl'UndsStar'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.mul"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1242,18,1242,122)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("*"), symbol'Kywd'{}("_*Int_"), total{}()]
+ hooked-symbol Lbl'UndsPlus'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.add"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1255,18,1255,122)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("+"), symbol'Kywd'{}("_+Int_"), total{}()]
+ hooked-symbol Lbl'Unds'-Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.sub"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1256,18,1256,116)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("-"), symbol'Kywd'{}("_-Int_"), 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), total{}()]
+ hooked-symbol Lbl'UndsSlsh'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.tdiv"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1245,18,1247,65)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("(ite (or (= 0 (mod #1 #2)) (>= #1 0)) (div #1 #2) (ite (> #2 0) (+ (div #1 #2) 1) (- (div #1 #2) 1)))"), symbol'Kywd'{}("_/Int_")]
+ hooked-symbol Lbl'Unds-LT--LT-'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.shl"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1259,18,1259,113)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("shlInt"), symbol'Kywd'{}("_<="), symbol'Kywd'{}("_>=Int_"), total{}()]
+ hooked-symbol Lbl'Unds-GT--GT-'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.shr"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1258,18,1258,113)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("shrInt"), symbol'Kywd'{}("_>>Int_")]
+ hooked-symbol Lbl'Unds-GT-'Int'Unds'{}(SortInt{}, SortInt{}) : SortBool{} [function{}(), functional{}(), hook{}("INT.gt"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1320,19,1320,103)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}(">"), symbol'Kywd'{}("_>Int_"), 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("smt_seq_concat"), symbol'Kywd'{}("_List_"), total{}(), unit{}(Lbl'Stop'List{}()), update{}("List: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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_[_<-undef]"), total{}()]
+ hooked-symbol Lbl'UndsXor-Perc'Int'UndsUnds'{}(SortInt{}, SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.powmod"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1240,18,1240,131)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("(mod (^ #1 #2) #3)"), symbol'Kywd'{}("_^%Int__")]
+ hooked-symbol Lbl'UndsXor-'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.pow"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1239,18,1239,109)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("^"), symbol'Kywd'{}("_^Int_")]
+ hooked-symbol Lbl'Unds'andBool'Unds'{}(SortBool{}, SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.and"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1110,19,1110,138)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("and"), symbol'Kywd'{}("_andBool_"), total{}()]
+ hooked-symbol Lbl'Unds'andThenBool'Unds'{}(SortBool{}, SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.andThen"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1111,19,1111,146)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("and"), symbol'Kywd'{}("_andThenBool_"), total{}()]
+ hooked-symbol Lbl'Unds'divInt'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.ediv"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1252,18,1252,114)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("div"), symbol'Kywd'{}("_divInt_")]
+ symbol Lbl'Unds'dividesInt'UndsUnds'INT-COMMON'Unds'Bool'Unds'Int'Unds'Int{}(SortInt{}, SortInt{}) : SortBool{} [function{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1331,19,1331,53)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ hooked-symbol Lbl'Unds'impliesBool'Unds'{}(SortBool{}, SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.implies"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1115,19,1115,145)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("=>"), symbol'Kywd'{}("_impliesBool_"), 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), total{}()]
+ hooked-symbol Lbl'Unds'modInt'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.emod"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1253,18,1253,114)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("mod"), symbol'Kywd'{}("_modInt_")]
+ hooked-symbol Lbl'Unds'orBool'Unds'{}(SortBool{}, SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.or"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1113,19,1113,135)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("or"), symbol'Kywd'{}("_orBool_"), total{}()]
+ hooked-symbol Lbl'Unds'orElseBool'Unds'{}(SortBool{}, SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.orElse"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1114,19,1114,143)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("or"), symbol'Kywd'{}("_orElseBool_"), total{}()]
+ hooked-symbol Lbl'Unds'xorBool'Unds'{}(SortBool{}, SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.xor"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1112,19,1112,138)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("xor"), symbol'Kywd'{}("_xorBool_"), total{}()]
+ hooked-symbol Lbl'Unds'xorInt'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.xor"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1263,18,1263,127)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("xorInt"), symbol'Kywd'{}("_xorInt_"), 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("_|->_"), total{}()]
+ hooked-symbol Lbl'UndsPipe'Int'Unds'{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.or"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1265,18,1265,123)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("orInt"), symbol'Kywd'{}("_|Int_"), 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), total{}()]
+ hooked-symbol LblabsInt'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.abs"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1282,18,1282,119)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("(ite (< #1 0) (- 0 #1) #1)"), total{}()]
+ hooked-symbol LblbitRangeInt'LParUndsCommUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int'Unds'Int{}(SortInt{}, SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.bitRange"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1307,18,1307,103)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ symbol LblfreshInt'LParUndsRParUnds'INT'Unds'Int'Unds'Int{}(SortInt{}) : SortInt{} [freshGenerator{}(), function{}(), functional{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1445,18,1445,77)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), total{}()]
+ symbol LblgetGeneratedCounterCell{}(SortGeneratedTopCell{}) : SortGeneratedCounterCell{} [function{}()]
+ symbol LblinitGeneratedCounterCell{}() : SortGeneratedCounterCell{} [function{}(), functional{}(), total{}()]
+ symbol LblinitGeneratedTopCell{}(SortMap{}) : SortGeneratedTopCell{} [function{}()]
+ symbol LblinitKCell{}(SortMap{}) : SortKCell{} [function{}()]
+ symbol LblinitListCell{}() : SortListCell{} [function{}(), functional{}(), total{}()]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), total{}()]
+ symbol LblisBool{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()]
+ symbol LblisGeneratedCounterCell{}(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 LblisListCell{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()]
+ symbol LblisListCellOpt{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()]
+ symbol LblisMap{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()]
+ symbol LblisSet{}(SortK{}) : SortBool{} [function{}(), functional{}(), total{}()]
+ hooked-symbol Lblite{SortSort}(SortBool{}, SortSort, SortSort) : SortSort [function{}(), functional{}(), hook{}("KEQUAL.ite"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(2297,26,2297,132)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("ite"), symbol'Kywd'{}("ite"), 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ symbol Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(SortInt{}, SortInt{}) : SortKItem{} [constructor{}(), functional{}(), injective{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(7,20,7,31)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.k)")]
+ hooked-symbol Lbllog2Int'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(SortInt{}) : SortInt{} [function{}(), hook{}("INT.log2"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1293,18,1293,75)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ hooked-symbol LblmaxInt'LParUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.max"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1274,18,1274,114)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("(ite (< #1 #2) #2 #1)"), total{}()]
+ hooked-symbol LblminInt'LParUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int{}(SortInt{}, SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.min"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1273,18,1273,114)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("(ite (< #1 #2) #1 #2)"), total{}()]
+ symbol LblnoKCell{}() : SortKCellOpt{} [constructor{}(), functional{}(), injective{}()]
+ symbol LblnoListCell{}() : SortListCellOpt{} [constructor{}(), functional{}(), injective{}()]
+ hooked-symbol LblnotBool'Unds'{}(SortBool{}) : SortBool{} [function{}(), functional{}(), hook{}("BOOL.not"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1109,19,1109,131)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smt-hook{}("not"), symbol'Kywd'{}("notBool_"), total{}()]
+ symbol Lblproject'Coln'Bool{}(SortK{}) : SortBool{} [function{}()]
+ symbol Lblproject'Coln'GeneratedCounterCell{}(SortK{}) : SortGeneratedCounterCell{} [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'ListCell{}(SortK{}) : SortListCell{} [function{}()]
+ symbol Lblproject'Coln'ListCellOpt{}(SortK{}) : SortListCellOpt{} [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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("pushList"), total{}()]
+ hooked-symbol LblrandInt'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(SortInt{}) : SortInt{} [function{}(), hook{}("INT.rand"), impure{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1341,18,1341,65)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), total{}()]
+ hooked-symbol LblsignExtendBitRangeInt'LParUndsCommUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int'Unds'Int{}(SortInt{}, SortInt{}, SortInt{}) : SortInt{} [function{}(), hook{}("INT.signExtendBitRange"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1308,18,1308,113)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), symbol'Kywd'{}("sizeMap"), total{}()]
+ hooked-symbol LblsrandInt'LParUndsRParUnds'INT-COMMON'Unds'K'Unds'Int{}(SortInt{}) : SortK{} [function{}(), hook{}("INT.srand"), impure{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1342,16,1342,65)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+ hooked-symbol Lbl'Tild'Int'Unds'{}(SortInt{}) : SortInt{} [function{}(), functional{}(), hook{}("INT.not"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1237,18,1237,112)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), smtlib{}("notInt"), symbol'Kywd'{}("~Int_"), total{}()]
+
+// generated axioms
+ 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{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:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortListCell{}, SortKItem{}} (From:SortListCell{}))) [subsort{SortListCell{}, SortKItem{}}()] // 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:SortListCellOpt{}, \equals{SortListCellOpt{}, R} (Val:SortListCellOpt{}, inj{SortListCell{}, SortListCellOpt{}} (From:SortListCell{}))) [subsort{SortListCell{}, SortListCellOpt{}}()] // subsort
+ axiom{R} \exists{R} (Val:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, inj{SortListCellOpt{}, SortKItem{}} (From:SortListCellOpt{}))) [subsort{SortListCellOpt{}, 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:SortListCell{}, K2:SortGeneratedCounterCell{}))) [functional{}()] // functional
+ axiom{}\implies{SortGeneratedTopCell{}} (\and{SortGeneratedTopCell{}} (Lbl'-LT-'generatedTop'-GT-'{}(X0:SortKCell{}, X1:SortListCell{}, X2:SortGeneratedCounterCell{}), Lbl'-LT-'generatedTop'-GT-'{}(Y0:SortKCell{}, Y1:SortListCell{}, Y2:SortGeneratedCounterCell{})), Lbl'-LT-'generatedTop'-GT-'{}(\and{SortKCell{}} (X0:SortKCell{}, Y0:SortKCell{}), \and{SortListCell{}} (X1:SortListCell{}, Y1:SortListCell{}), \and{SortGeneratedCounterCell{}} (X2:SortGeneratedCounterCell{}, Y2: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:SortListCellOpt{}))) [functional{}()] // functional
+ axiom{}\implies{SortGeneratedTopCellFragment{}} (\and{SortGeneratedTopCellFragment{}} (Lbl'-LT-'generatedTop'-GT-'-fragment{}(X0:SortKCellOpt{}, X1:SortListCellOpt{}), Lbl'-LT-'generatedTop'-GT-'-fragment{}(Y0:SortKCellOpt{}, Y1:SortListCellOpt{})), Lbl'-LT-'generatedTop'-GT-'-fragment{}(\and{SortKCellOpt{}} (X0:SortKCellOpt{}, Y0:SortKCellOpt{}), \and{SortListCellOpt{}} (X1:SortListCellOpt{}, Y1:SortListCellOpt{}))) [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:SortListCell{}, \equals{SortListCell{}, R} (Val:SortListCell{}, Lbl'-LT-'list'-GT-'{}(K0:SortList{}))) [functional{}()] // functional
+ axiom{}\implies{SortListCell{}} (\and{SortListCell{}} (Lbl'-LT-'list'-GT-'{}(X0:SortList{}), Lbl'-LT-'list'-GT-'{}(Y0:SortList{})), Lbl'-LT-'list'-GT-'{}(\and{SortList{}} (X0:SortList{}, Y0:SortList{}))) [constructor{}()] // no confusion same constructor
+ 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:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'UndsAnd-'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'UndsStar'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'UndsPlus'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'Unds'-Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [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'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [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} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds-LT-'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'UndsEqlsSlshEqls'Bool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'UndsEqlsSlshEqls'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'UndsEqlsSlshEqls'K'Unds'{}(K0:SortK{}, K1:SortK{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'UndsEqlsEqls'Bool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'UndsEqlsEqls'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'UndsEqlsEqls'K'Unds'{}(K0:SortK{}, K1:SortK{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds-GT-Eqls'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds-GT-'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [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'andBool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'andThenBool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'impliesBool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [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:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'orBool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'orElseBool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, Lbl'Unds'xorBool'Unds'{}(K0:SortBool{}, K1:SortBool{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'Unds'xorInt'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [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:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'UndsPipe'Int'Unds'{}(K0:SortInt{}, K1:SortInt{}))) [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:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, LblabsInt'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(K0:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, LblfreshInt'LParUndsRParUnds'INT'Unds'Int'Unds'Int{}(K0:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortGeneratedCounterCell{}, \equals{SortGeneratedCounterCell{}, R} (Val:SortGeneratedCounterCell{}, LblinitGeneratedCounterCell{}())) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortListCell{}, \equals{SortListCell{}, R} (Val:SortListCell{}, LblinitListCell{}())) [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{}, 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{}, 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{}, LblisListCell{}(K0:SortK{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblisListCellOpt{}(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, SortSort} \exists{R} (Val:SortSort, \equals{SortSort, R} (Val:SortSort, Lblite{SortSort}(K0:SortBool{}, K1:SortSort, K2:SortSort))) [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:SortKItem{}, \equals{SortKItem{}, R} (Val:SortKItem{}, Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{}\implies{SortKItem{}} (\and{SortKItem{}} (Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(X0:SortInt{}, X1:SortInt{}), Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(Y0:SortInt{}, Y1:SortInt{})), Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(\and{SortInt{}} (X0:SortInt{}, Y0:SortInt{}), \and{SortInt{}} (X1:SortInt{}, Y1:SortInt{}))) [constructor{}()] // no confusion same constructor
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, LblmaxInt'LParUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, LblminInt'LParUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int{}(K0:SortInt{}, K1:SortInt{}))) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortKCellOpt{}, \equals{SortKCellOpt{}, R} (Val:SortKCellOpt{}, LblnoKCell{}())) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortListCellOpt{}, \equals{SortListCellOpt{}, R} (Val:SortListCellOpt{}, LblnoListCell{}())) [functional{}()] // functional
+ axiom{R} \exists{R} (Val:SortBool{}, \equals{SortBool{}, R} (Val:SortBool{}, LblnotBool'Unds'{}(K0:SortBool{}))) [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{R} \exists{R} (Val:SortInt{}, \equals{SortInt{}, R} (Val:SortInt{}, Lbl'Tild'Int'Unds'{}(K0:SortInt{}))) [functional{}()] // functional
+ 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{SortGeneratedTopCell{}} (\exists{SortGeneratedTopCell{}} (X0:SortKCell{}, \exists{SortGeneratedTopCell{}} (X1:SortListCell{}, \exists{SortGeneratedTopCell{}} (X2:SortGeneratedCounterCell{}, Lbl'-LT-'generatedTop'-GT-'{}(X0:SortKCell{}, X1:SortListCell{}, X2:SortGeneratedCounterCell{})))), \bottom{SortGeneratedTopCell{}}()) [constructor{}()] // no junk
+ axiom{} \or{SortGeneratedTopCellFragment{}} (\exists{SortGeneratedTopCellFragment{}} (X0:SortKCellOpt{}, \exists{SortGeneratedTopCellFragment{}} (X1:SortListCellOpt{}, Lbl'-LT-'generatedTop'-GT-'-fragment{}(X0:SortKCellOpt{}, X1:SortListCellOpt{}))), \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{}} (\exists{SortKItem{}} (X0:SortInt{}, \exists{SortKItem{}} (X1:SortInt{}, Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(X0:SortInt{}, X1:SortInt{}))), \exists{SortKItem{}} (Val:SortBool{}, inj{SortBool{}, SortKItem{}} (Val:SortBool{})), \exists{SortKItem{}} (Val:SortGeneratedCounterCell{}, inj{SortGeneratedCounterCell{}, SortKItem{}} (Val:SortGeneratedCounterCell{})), \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:SortListCell{}, inj{SortListCell{}, SortKItem{}} (Val:SortListCell{})), \exists{SortKItem{}} (Val:SortListCellOpt{}, inj{SortListCellOpt{}, SortKItem{}} (Val:SortListCellOpt{})), \exists{SortKItem{}} (Val:SortMap{}, inj{SortMap{}, SortKItem{}} (Val:SortMap{})), \exists{SortKItem{}} (Val:SortSet{}, inj{SortSet{}, SortKItem{}} (Val:SortSet{})), \bottom{SortKItem{}}()) [constructor{}()] // no junk
+ axiom{} \or{SortListCell{}} (\exists{SortListCell{}} (X0:SortList{}, Lbl'-LT-'list'-GT-'{}(X0:SortList{})), \bottom{SortListCell{}}()) [constructor{}()] // no junk
+ axiom{} \or{SortListCellOpt{}} (LblnoListCell{}(), \exists{SortListCellOpt{}} (Val:SortListCell{}, inj{SortListCell{}, SortListCellOpt{}} (Val:SortListCell{})), \bottom{SortListCellOpt{}}()) [constructor{}()] // no junk
+
+// rules
+// rule ``(``(`l(_,_)_TEST-LIST-GET_KItem_Int_Int`(I,J)~>_DotVar1),``(`List:set`(_Gen0,I,inj{Int,KItem}(J))) #as _Gen4,_DotVar0)=>``(``(_DotVar1),_Gen4,_DotVar0) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(88130fe3e901411ac2bb678443ea4052ca717b5b29f9da16f6abaa8ef2089599), org.kframework.attributes.Location(Location(9,8,10,35)), org.kframework.attributes.Source(Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.k)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)])]
+ axiom{} \rewrites{SortGeneratedTopCell{}} (
+ \and{SortGeneratedTopCell{}} (
+ Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(kseq{}(Lbll'LParUndsCommUndsRParUnds'TEST-LIST-GET'Unds'KItem'Unds'Int'Unds'Int{}(VarI:SortInt{},VarJ:SortInt{}),Var'Unds'DotVar1:SortK{})),\and{SortListCell{}}(Lbl'-LT-'list'-GT-'{}(LblList'Coln'set{}(Var'Unds'Gen0:SortList{},VarI:SortInt{},inj{SortInt{}, SortKItem{}}(VarJ:SortInt{}))),Var'Unds'Gen4:SortListCell{}),Var'Unds'DotVar0:SortGeneratedCounterCell{}),
+ \top{SortGeneratedTopCell{}}()),
+ \and{SortGeneratedTopCell{}} (
+ Lbl'-LT-'generatedTop'-GT-'{}(Lbl'-LT-'k'-GT-'{}(Var'Unds'DotVar1:SortK{}),Var'Unds'Gen4:SortListCell{},Var'Unds'DotVar0:SortGeneratedCounterCell{}), \top{SortGeneratedTopCell{}}()))
+ [UNIQUE'Unds'ID{}("88130fe3e901411ac2bb678443ea4052ca717b5b29f9da16f6abaa8ef2089599"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(9,8,10,35)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/llvm-backend/test/defn/k-files/test-list-get.k)")]
+
+// rule `_=/=Bool_`(B1,B2)=>`notBool_`(`_==Bool_`(B1,B2)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(31fe72efcfddcd8588a11d9d10c1b1a9f96ae3da46b647d4cb9d1e8b1bd1654f), org.kframework.attributes.Location(Location(1159,8,1159,57)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ VarB1:SortBool{}
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarB2:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'UndsEqlsSlshEqls'Bool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ LblnotBool'Unds'{}(Lbl'UndsEqlsEqls'Bool'Unds'{}(VarB1:SortBool{},VarB2:SortBool{})),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("31fe72efcfddcd8588a11d9d10c1b1a9f96ae3da46b647d4cb9d1e8b1bd1654f"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1159,8,1159,57)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_=/=Int_`(I1,I2)=>`notBool_`(`_==Int_`(I1,I2)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(4de6e05b11cdbed7ef5cb4c952127924661af4744c1e495370e1c8a962ba7be3), org.kframework.attributes.Location(Location(1442,8,1442,53)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortInt{}, R} (
+ X0:SortInt{},
+ VarI1:SortInt{}
+ ),\and{R} (
+ \in{SortInt{}, R} (
+ X1:SortInt{},
+ VarI2:SortInt{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'UndsEqlsSlshEqls'Int'Unds'{}(X0:SortInt{},X1:SortInt{}),
+ \and{SortBool{}} (
+ LblnotBool'Unds'{}(Lbl'UndsEqlsEqls'Int'Unds'{}(VarI1:SortInt{},VarI2:SortInt{})),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("4de6e05b11cdbed7ef5cb4c952127924661af4744c1e495370e1c8a962ba7be3"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1442,8,1442,53)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_=/=K_`(K1,K2)=>`notBool_`(`_==K_`(K1,K2)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(bccaba7335e4cd77501a0667f2f7b3eb4a2105d5f60d804915dd4b1b08902c0c), org.kframework.attributes.Location(Location(2322,8,2322,45)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortK{}, R} (
+ X0:SortK{},
+ VarK1:SortK{}
+ ),\and{R} (
+ \in{SortK{}, R} (
+ X1:SortK{},
+ VarK2:SortK{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'UndsEqlsSlshEqls'K'Unds'{}(X0:SortK{},X1:SortK{}),
+ \and{SortBool{}} (
+ LblnotBool'Unds'{}(Lbl'UndsEqlsEqls'K'Unds'{}(VarK1:SortK{},VarK2:SortK{})),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("bccaba7335e4cd77501a0667f2f7b3eb4a2105d5f60d804915dd4b1b08902c0c"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(2322,8,2322,45)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_andBool_`(#token("false","Bool") #as _Gen1,_Gen0)=>_Gen1 requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(61fbef33b3611f1cc2aaf3b5e8ddec4a0f434c557278c38461c65c8722743497), org.kframework.attributes.Location(Location(1132,8,1132,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \and{SortBool{}}(\dv{SortBool{}}("false"),Var'Unds'Gen1:SortBool{})
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ Var'Unds'Gen0:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ Var'Unds'Gen1:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("61fbef33b3611f1cc2aaf3b5e8ddec4a0f434c557278c38461c65c8722743497"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1132,8,1132,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_andBool_`(B,#token("true","Bool"))=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(72139ee1f2b9362a47514de6503329ccf3c27e74e3ebfa0c0fe26321ec13f281), org.kframework.attributes.Location(Location(1131,8,1131,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andBool'Unds'{}(VarB:SortBool{},\dv{SortBool{}}("true")),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("72139ee1f2b9362a47514de6503329ccf3c27e74e3ebfa0c0fe26321ec13f281"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1131,8,1131,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_andBool_`(_Gen0,#token("false","Bool"))=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(fd61c826168aab115cd7f528702e8187ca16195bdcf29f42f33a32c83afebb12), org.kframework.attributes.Location(Location(1133,8,1133,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andBool'Unds'{}(Var'Unds'Gen0:SortBool{},\dv{SortBool{}}("false")),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("false"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("fd61c826168aab115cd7f528702e8187ca16195bdcf29f42f33a32c83afebb12"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1133,8,1133,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_andBool_`(#token("true","Bool"),B)=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(5b9db8dba12010819161cc42dadccd0adf0100a47c21f884ae66c0a3d5483a1f), org.kframework.attributes.Location(Location(1130,8,1130,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("true")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarB:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("5b9db8dba12010819161cc42dadccd0adf0100a47c21f884ae66c0a3d5483a1f"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1130,8,1130,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_andThenBool_`(#token("false","Bool") #as _Gen1,_Gen0)=>_Gen1 requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(5b729746be7bf2183d9eff138d97078a7c9489def6d8b2e1495c41ce3954997d), org.kframework.attributes.Location(Location(1137,8,1137,36)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \and{SortBool{}}(\dv{SortBool{}}("false"),Var'Unds'Gen1:SortBool{})
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ Var'Unds'Gen0:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andThenBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ Var'Unds'Gen1:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("5b729746be7bf2183d9eff138d97078a7c9489def6d8b2e1495c41ce3954997d"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1137,8,1137,36)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_andThenBool_`(K,#token("true","Bool"))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2cfb33affb9c668d39a4a7267156085e1dbd3584fc7925b1aa9a1672bb9eab9f), org.kframework.attributes.Location(Location(1136,8,1136,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andThenBool'Unds'{}(VarK:SortBool{},\dv{SortBool{}}("true")),
+ \and{SortBool{}} (
+ VarK:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("2cfb33affb9c668d39a4a7267156085e1dbd3584fc7925b1aa9a1672bb9eab9f"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1136,8,1136,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_andThenBool_`(_Gen0,#token("false","Bool"))=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(198861009d03d8f5220000f16342962720be289ca0d49b12953fb2693e2fea01), org.kframework.attributes.Location(Location(1138,8,1138,36)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andThenBool'Unds'{}(Var'Unds'Gen0:SortBool{},\dv{SortBool{}}("false")),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("false"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("198861009d03d8f5220000f16342962720be289ca0d49b12953fb2693e2fea01"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1138,8,1138,36)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_andThenBool_`(#token("true","Bool"),K)=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(78a3191cbbdec57b0f411f41291076c8124bb0d9b6b57905674b2c6858d78689), org.kframework.attributes.Location(Location(1135,8,1135,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("true")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarK:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'andThenBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ VarK:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("78a3191cbbdec57b0f411f41291076c8124bb0d9b6b57905674b2c6858d78689"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1135,8,1135,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_divInt_`(I1,I2)=>`_/Int_`(`_-Int_`(I1,`_modInt_`(I1,I2)),I2) requires `_=/=Int_`(I2,#token("0","Int")) ensures #token("true","Bool") [UNIQUE_ID(83dcf9bc8c69f131715bc7a92d06c99b9a2b5f4c4fdafb69e6fdb2f1822712d4), org.kframework.attributes.Location(Location(1431,8,1432,23)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody "requires" Bool [symbol(#ruleRequires)])]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \equals{SortBool{},R}(
+ Lbl'UndsEqlsSlshEqls'Int'Unds'{}(VarI2:SortInt{},\dv{SortInt{}}("0")),
+ \dv{SortBool{}}("true")),
+ \and{R} (
+ \in{SortInt{}, R} (
+ X0:SortInt{},
+ VarI1:SortInt{}
+ ),\and{R} (
+ \in{SortInt{}, R} (
+ X1:SortInt{},
+ VarI2:SortInt{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortInt{},R} (
+ Lbl'Unds'divInt'Unds'{}(X0:SortInt{},X1:SortInt{}),
+ \and{SortInt{}} (
+ Lbl'UndsSlsh'Int'Unds'{}(Lbl'Unds'-Int'Unds'{}(VarI1:SortInt{},Lbl'Unds'modInt'Unds'{}(VarI1:SortInt{},VarI2:SortInt{})),VarI2:SortInt{}),
+ \top{SortInt{}}())))
+ [UNIQUE'Unds'ID{}("83dcf9bc8c69f131715bc7a92d06c99b9a2b5f4c4fdafb69e6fdb2f1822712d4"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1431,8,1432,23)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_dividesInt__INT-COMMON_Bool_Int_Int`(I1,I2)=>`_==Int_`(`_%Int_`(I2,I1),#token("0","Int")) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(fd8facae0061fe5bc5c406f7ad2ed5d8d21960bf1118c9b240451253064dadb5), org.kframework.attributes.Location(Location(1443,8,1443,58)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortInt{}, R} (
+ X0:SortInt{},
+ VarI1:SortInt{}
+ ),\and{R} (
+ \in{SortInt{}, R} (
+ X1:SortInt{},
+ VarI2:SortInt{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'dividesInt'UndsUnds'INT-COMMON'Unds'Bool'Unds'Int'Unds'Int{}(X0:SortInt{},X1:SortInt{}),
+ \and{SortBool{}} (
+ Lbl'UndsEqlsEqls'Int'Unds'{}(Lbl'UndsPerc'Int'Unds'{}(VarI2:SortInt{},VarI1:SortInt{}),\dv{SortInt{}}("0")),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("fd8facae0061fe5bc5c406f7ad2ed5d8d21960bf1118c9b240451253064dadb5"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1443,8,1443,58)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_impliesBool_`(B,#token("false","Bool"))=>`notBool_`(B) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(93b8d798abd6d9999e0e733384ad161e9a0bd2f074623a742afdc63964380aba), org.kframework.attributes.Location(Location(1157,8,1157,45)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'impliesBool'Unds'{}(VarB:SortBool{},\dv{SortBool{}}("false")),
+ \and{SortBool{}} (
+ LblnotBool'Unds'{}(VarB:SortBool{}),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("93b8d798abd6d9999e0e733384ad161e9a0bd2f074623a742afdc63964380aba"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1157,8,1157,45)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_impliesBool_`(_Gen0,#token("true","Bool"))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2b4994db7b40b72dc09ac8d5d036263b215c37d45f45d764251d8b607a7592ba), org.kframework.attributes.Location(Location(1156,8,1156,39)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'impliesBool'Unds'{}(Var'Unds'Gen0:SortBool{},\dv{SortBool{}}("true")),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("2b4994db7b40b72dc09ac8d5d036263b215c37d45f45d764251d8b607a7592ba"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1156,8,1156,39)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_impliesBool_`(#token("false","Bool"),_Gen0)=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(55bb5c83c9563c712537b95401c0a5c88255fd7cdbd18b2d4358c54aee80660e), org.kframework.attributes.Location(Location(1155,8,1155,40)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("false")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ Var'Unds'Gen0:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'impliesBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("55bb5c83c9563c712537b95401c0a5c88255fd7cdbd18b2d4358c54aee80660e"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1155,8,1155,40)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_impliesBool_`(#token("true","Bool"),B)=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(da818c43c21c5fb2cced7e02a74b6b4191d323de2967a671b961ad28550f3c7d), org.kframework.attributes.Location(Location(1154,8,1154,36)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("true")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarB:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'impliesBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("da818c43c21c5fb2cced7e02a74b6b4191d323de2967a671b961ad28550f3c7d"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1154,8,1154,36)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_modInt_`(I1,I2)=>`_%Int_`(`_+Int_`(`_%Int_`(I1,`absInt(_)_INT-COMMON_Int_Int`(I2)),`absInt(_)_INT-COMMON_Int_Int`(I2)),`absInt(_)_INT-COMMON_Int_Int`(I2)) requires `_=/=Int_`(I2,#token("0","Int")) ensures #token("true","Bool") [UNIQUE_ID(44257f63a99a0583c2d10058edbff90118966e30914b3a637b8315212c681bc4), concrete, org.kframework.attributes.Location(Location(1434,5,1437,23)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody "requires" Bool [symbol(#ruleRequires)]), simplification]
+ axiom{R} \implies{R} (
+ \equals{SortBool{},R}(
+ Lbl'UndsEqlsSlshEqls'Int'Unds'{}(VarI2:SortInt{},\dv{SortInt{}}("0")),
+ \dv{SortBool{}}("true")),
+ \equals{SortInt{},R} (
+ Lbl'Unds'modInt'Unds'{}(VarI1:SortInt{},VarI2:SortInt{}),
+ \and{SortInt{}} (
+ Lbl'UndsPerc'Int'Unds'{}(Lbl'UndsPlus'Int'Unds'{}(Lbl'UndsPerc'Int'Unds'{}(VarI1:SortInt{},LblabsInt'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(VarI2:SortInt{})),LblabsInt'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(VarI2:SortInt{})),LblabsInt'LParUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int{}(VarI2:SortInt{})),
+ \top{SortInt{}}())))
+ [UNIQUE'Unds'ID{}("44257f63a99a0583c2d10058edbff90118966e30914b3a637b8315212c681bc4"), concrete{}(), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1434,5,1437,23)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_orBool_`(B,#token("false","Bool"))=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(a5bb27ab54700cb845d17b12e0b0a4cbd5c8944272bcbe0d15ccc0b44d0049ff), org.kframework.attributes.Location(Location(1147,8,1147,32)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orBool'Unds'{}(VarB:SortBool{},\dv{SortBool{}}("false")),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("a5bb27ab54700cb845d17b12e0b0a4cbd5c8944272bcbe0d15ccc0b44d0049ff"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1147,8,1147,32)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_orBool_`(_Gen0,#token("true","Bool"))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(942af273100b5a3c1fb3d0c8cc92b0bf845a7b34444c5a6c35b7d3fe72bef48e), org.kframework.attributes.Location(Location(1145,8,1145,34)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orBool'Unds'{}(Var'Unds'Gen0:SortBool{},\dv{SortBool{}}("true")),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("942af273100b5a3c1fb3d0c8cc92b0bf845a7b34444c5a6c35b7d3fe72bef48e"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1145,8,1145,34)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_orBool_`(#token("false","Bool"),B)=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(991a3290bc7b6dca75d676a72a848ec6b2bd2827fb0e9626252aa1507394ca1b), org.kframework.attributes.Location(Location(1146,8,1146,32)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("false")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarB:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("991a3290bc7b6dca75d676a72a848ec6b2bd2827fb0e9626252aa1507394ca1b"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1146,8,1146,32)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_orBool_`(#token("true","Bool"),_Gen0)=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(71744528cdad83bc729990d3af3b544d27b09630b2615ca707dd2fc6ec93e7c2), org.kframework.attributes.Location(Location(1144,8,1144,34)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("true")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ Var'Unds'Gen0:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("71744528cdad83bc729990d3af3b544d27b09630b2615ca707dd2fc6ec93e7c2"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1144,8,1144,34)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_orElseBool_`(K,#token("false","Bool"))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(13cf42d440f9a7a360a8136ee4b35ae7b99501f515322d214c3b866691f4713b), org.kframework.attributes.Location(Location(1152,8,1152,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orElseBool'Unds'{}(VarK:SortBool{},\dv{SortBool{}}("false")),
+ \and{SortBool{}} (
+ VarK:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("13cf42d440f9a7a360a8136ee4b35ae7b99501f515322d214c3b866691f4713b"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1152,8,1152,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_orElseBool_`(_Gen0,#token("true","Bool"))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(2459cad4fbb946a5c7f71565601afeeec79f05f41497b1f7ef547578c88f3158), org.kframework.attributes.Location(Location(1150,8,1150,33)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orElseBool'Unds'{}(Var'Unds'Gen0:SortBool{},\dv{SortBool{}}("true")),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("2459cad4fbb946a5c7f71565601afeeec79f05f41497b1f7ef547578c88f3158"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1150,8,1150,33)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_orElseBool_`(#token("false","Bool"),K)=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(eb8c85dac19a5951f694b65269c2b17c80d6d126d6a367958e4a5d736a880ecf), org.kframework.attributes.Location(Location(1151,8,1151,37)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("false")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarK:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orElseBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ VarK:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("eb8c85dac19a5951f694b65269c2b17c80d6d126d6a367958e4a5d736a880ecf"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1151,8,1151,37)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_orElseBool_`(#token("true","Bool"),_Gen0)=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(354bd0860c7f38b59e285c935fd2ea553ebddbabb4973342ad25f0dac6ea7bf6), org.kframework.attributes.Location(Location(1149,8,1149,33)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("true")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ Var'Unds'Gen0:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'orElseBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("354bd0860c7f38b59e285c935fd2ea553ebddbabb4973342ad25f0dac6ea7bf6"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1149,8,1149,33)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_xorBool_`(B,B)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(9a6d91cd75cd777b0d4db536b3e4b20578e74fe650e644b55294da95fd2dba7f), org.kframework.attributes.Location(Location(1142,8,1142,38)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ VarB:SortBool{}
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarB:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'xorBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("false"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("9a6d91cd75cd777b0d4db536b3e4b20578e74fe650e644b55294da95fd2dba7f"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1142,8,1142,38)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `_xorBool_`(B,#token("false","Bool"))=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(69f518203376930fb76ce51df5dd0c6c81d19f71eba3a1852afa5301d02eb4fa), org.kframework.attributes.Location(Location(1141,8,1141,38)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody [symbol(#ruleNoConditions)]), simplification]
+ axiom{R} \implies{R} (
+ \top{R}(),
+ \equals{SortBool{},R} (
+ Lbl'Unds'xorBool'Unds'{}(VarB:SortBool{},\dv{SortBool{}}("false")),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("69f518203376930fb76ce51df5dd0c6c81d19f71eba3a1852afa5301d02eb4fa"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1141,8,1141,38)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)"), simplification{}()]
+
+// rule `_xorBool_`(#token("false","Bool"),B)=>B requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(73513655c09a595907ab9d26d67e27f01d14a3435743b77000c02d10f35c05bf), org.kframework.attributes.Location(Location(1140,8,1140,38)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("false")
+ ),\and{R} (
+ \in{SortBool{}, R} (
+ X1:SortBool{},
+ VarB:SortBool{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortBool{},R} (
+ Lbl'Unds'xorBool'Unds'{}(X0:SortBool{},X1:SortBool{}),
+ \and{SortBool{}} (
+ VarB:SortBool{},
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("73513655c09a595907ab9d26d67e27f01d14a3435743b77000c02d10f35c05bf"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1140,8,1140,38)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `bitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int`(I,IDX,LEN)=>`_modInt_`(`_>>Int_`(I,IDX),`_<I requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(cf2cb8f038b4bdc4edb1334a3b8ced9cd296a7af43f0a1916e082a4e1aefa08b), org.kframework.attributes.Location(Location(1446,8,1446,28)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortInt{}, R} (
+ X0:SortInt{},
+ VarI:SortInt{}
+ ),
+ \top{R} ()
+ )),
+ \equals{SortInt{},R} (
+ LblfreshInt'LParUndsRParUnds'INT'Unds'Int'Unds'Int{}(X0:SortInt{}),
+ \and{SortInt{}} (
+ VarI:SortInt{},
+ \top{SortInt{}}())))
+ [UNIQUE'Unds'ID{}("cf2cb8f038b4bdc4edb1334a3b8ced9cd296a7af43f0a1916e082a4e1aefa08b"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1446,8,1446,28)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule getGeneratedCounterCell(``(_Gen0,_Gen1,Cell))=>Cell requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(6aaa6e2dcc27f3f1c36a11a988ed5674f7b6892c35cde7937bcb682488aaf8e1)]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortGeneratedTopCell{}, R} (
+ X0:SortGeneratedTopCell{},
+ Lbl'-LT-'generatedTop'-GT-'{}(Var'Unds'Gen0:SortKCell{},Var'Unds'Gen1:SortListCell{},VarCell:SortGeneratedCounterCell{})
+ ),
+ \top{R} ()
+ )),
+ \equals{SortGeneratedCounterCell{},R} (
+ LblgetGeneratedCounterCell{}(X0:SortGeneratedTopCell{}),
+ \and{SortGeneratedCounterCell{}} (
+ VarCell:SortGeneratedCounterCell{},
+ \top{SortGeneratedCounterCell{}}())))
+ [UNIQUE'Unds'ID{}("6aaa6e2dcc27f3f1c36a11a988ed5674f7b6892c35cde7937bcb682488aaf8e1")]
+
+// 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),initListCell(.KList),initGeneratedCounterCell(.KList)) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(c1bdfdde7626e324a6b60af6e3535e1f63f8f22a963f56b3c7ba4ba1491147c9), 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{}),LblinitListCell{}(),LblinitGeneratedCounterCell{}()),
+ \top{SortGeneratedTopCell{}}())))
+ [UNIQUE'Unds'ID{}("c1bdfdde7626e324a6b60af6e3535e1f63f8f22a963f56b3c7ba4ba1491147c9")]
+
+// rule initKCell(Init)=>``(`project:KItem`(`Map:lookup`(Init,inj{KConfigVar,KItem}(#token("$PGM","KConfigVar"))))) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(888ac40929773fd17d5b9fd1e9d0be94791665a663f07907d894c31dccc871a5), 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{}(Lblproject'Coln'KItem{}(kseq{}(LblMap'Coln'lookup{}(VarInit:SortMap{},inj{SortKConfigVar{}, SortKItem{}}(\dv{SortKConfigVar{}}("$PGM"))),dotk{}())),dotk{}())),
+ \top{SortKCell{}}())))
+ [UNIQUE'Unds'ID{}("888ac40929773fd17d5b9fd1e9d0be94791665a663f07907d894c31dccc871a5")]
+
+// rule initListCell(.KList)=>``(`_List_`(`_List_`(`ListItem`(inj{Int,KItem}(#token("0","Int"))),`ListItem`(inj{Int,KItem}(#token("1","Int")))),`ListItem`(inj{Int,KItem}(#token("2","Int"))))) requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(51896ca3facb2a8c21440f854531c28298ac21e191b86df457259d25b6594f32), initializer]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \top{R}(),
+
+ \top{R} ()
+ ),
+ \equals{SortListCell{},R} (
+ LblinitListCell{}(),
+ \and{SortListCell{}} (
+ Lbl'-LT-'list'-GT-'{}(Lbl'Unds'List'Unds'{}(Lbl'Unds'List'Unds'{}(LblListItem{}(inj{SortInt{}, SortKItem{}}(\dv{SortInt{}}("0"))),LblListItem{}(inj{SortInt{}, SortKItem{}}(\dv{SortInt{}}("1")))),LblListItem{}(inj{SortInt{}, SortKItem{}}(\dv{SortInt{}}("2"))))),
+ \top{SortListCell{}}())))
+ [UNIQUE'Unds'ID{}("51896ca3facb2a8c21440f854531c28298ac21e191b86df457259d25b6594f32")]
+
+// 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'Gen1:SortBool{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortBool{}, SortKItem{}}(Var'Unds'Gen1: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 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'Gen0:SortGeneratedTopCellFragment{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortGeneratedTopCellFragment{}, SortKItem{}}(Var'Unds'Gen0: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'Gen0:SortInt{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortInt{}, SortKItem{}}(Var'Unds'Gen0: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'Gen1:SortKCellOpt{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortKCellOpt{}, SortKItem{}}(Var'Unds'Gen1: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'Gen0:SortKConfigVar{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortKConfigVar{}, SortKItem{}}(Var'Unds'Gen0: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'Gen1:SortKItem{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(Var'Unds'Gen1: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'Gen0:SortList{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortList{}, SortKItem{}}(Var'Unds'Gen0: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 isListCell(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(f2ccbb7fe8f4f49807fcd1aafef05a0f06880dd57b60e929a58406246c4173b6), owise]
+ axiom{R} \implies{R} (
+ \and{R} (
+ \not{R} (
+ \or{R} (
+ \exists{R} (Var'Unds'Gen1:SortListCell{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortListCell{}, SortKItem{}}(Var'Unds'Gen1:SortListCell{}),dotk{}())
+ ),
+ \top{R} ()
+ )
+ )),
+ \bottom{R}()
+ )
+ ),
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ VarK:SortK{}
+ ),
+ \top{R} ()
+ )
+ )),
+ \equals{SortBool{},R} (
+ LblisListCell{}(X0:SortK{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("false"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("f2ccbb7fe8f4f49807fcd1aafef05a0f06880dd57b60e929a58406246c4173b6"), owise{}()]
+
+// rule isListCell(inj{ListCell,KItem}(ListCell))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(b1327588ea0c347b202e8edeaf83c9f8f613ff179d422dfbc7c81fa8a2a5295c)]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortListCell{}, SortKItem{}}(VarListCell:SortListCell{}),dotk{}())
+ ),
+ \top{R} ()
+ )),
+ \equals{SortBool{},R} (
+ LblisListCell{}(X0:SortK{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("b1327588ea0c347b202e8edeaf83c9f8f613ff179d422dfbc7c81fa8a2a5295c")]
+
+// rule isListCellOpt(K)=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(ecb0807e0d6a1a9a32c06809343058392ece37316d3a275c147f577320353899), owise]
+ axiom{R} \implies{R} (
+ \and{R} (
+ \not{R} (
+ \or{R} (
+ \exists{R} (Var'Unds'Gen0:SortListCellOpt{},
+ \and{R} (
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortListCellOpt{}, SortKItem{}}(Var'Unds'Gen0:SortListCellOpt{}),dotk{}())
+ ),
+ \top{R} ()
+ )
+ )),
+ \bottom{R}()
+ )
+ ),
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ VarK:SortK{}
+ ),
+ \top{R} ()
+ )
+ )),
+ \equals{SortBool{},R} (
+ LblisListCellOpt{}(X0:SortK{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("false"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("ecb0807e0d6a1a9a32c06809343058392ece37316d3a275c147f577320353899"), owise{}()]
+
+// rule isListCellOpt(inj{ListCellOpt,KItem}(ListCellOpt))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(8cbb7bd9ec97937374b16b645664a1d10dfdbb8000eb832fbeb3b7130b777279)]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortListCellOpt{}, SortKItem{}}(VarListCellOpt:SortListCellOpt{}),dotk{}())
+ ),
+ \top{R} ()
+ )),
+ \equals{SortBool{},R} (
+ LblisListCellOpt{}(X0:SortK{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("8cbb7bd9ec97937374b16b645664a1d10dfdbb8000eb832fbeb3b7130b777279")]
+
+// 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 ite{K}(C,B1,_Gen0)=>B1 requires C ensures #token("true","Bool") [UNIQUE_ID(1ff8f4d71e4c13084eed473b08740da83c4cc7f1875d340d86dc72124c48b4a0), org.kframework.attributes.Location(Location(2324,8,2324,59)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody "requires" Bool [symbol(#ruleRequires)])]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \equals{SortBool{},R}(
+ VarC:SortBool{},
+ \dv{SortBool{}}("true")),
+ \and{R} (
+ \in{SortBool{}, R} (
+ X0:SortBool{},
+ VarC:SortBool{}
+ ),\and{R} (
+ \in{SortK{}, R} (
+ X1:SortK{},
+ VarB1:SortK{}
+ ),\and{R} (
+ \in{SortK{}, R} (
+ X2:SortK{},
+ Var'Unds'Gen0:SortK{}
+ ),
+ \top{R} ()
+ )))),
+ \equals{SortK{},R} (
+ Lblite{SortK{}}(X0:SortBool{},X1:SortK{},X2:SortK{}),
+ \and{SortK{}} (
+ VarB1:SortK{},
+ \top{SortK{}}())))
+ [UNIQUE'Unds'ID{}("1ff8f4d71e4c13084eed473b08740da83c4cc7f1875d340d86dc72124c48b4a0"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(2324,8,2324,59)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule ite{K}(C,_Gen0,B2)=>B2 requires `notBool_`(C) ensures #token("true","Bool") [UNIQUE_ID(2f3f58a93926913fc5ca147dfd8d3d612508bc8ff67412ef10935df7c09554d5), org.kframework.attributes.Location(Location(2325,8,2325,67)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody "requires" Bool [symbol(#ruleRequires)])]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \equals{SortBool{},R}(
+ LblnotBool'Unds'{}(VarC:SortBool{}),
+ \dv{SortBool{}}("true")),
+ \and{R} (
+ \in{SortBool{}, R} (
+ X0:SortBool{},
+ VarC:SortBool{}
+ ),\and{R} (
+ \in{SortK{}, R} (
+ X1:SortK{},
+ Var'Unds'Gen0:SortK{}
+ ),\and{R} (
+ \in{SortK{}, R} (
+ X2:SortK{},
+ VarB2:SortK{}
+ ),
+ \top{R} ()
+ )))),
+ \equals{SortK{},R} (
+ Lblite{SortK{}}(X0:SortBool{},X1:SortK{},X2:SortK{}),
+ \and{SortK{}} (
+ VarB2:SortK{},
+ \top{SortK{}}())))
+ [UNIQUE'Unds'ID{}("2f3f58a93926913fc5ca147dfd8d3d612508bc8ff67412ef10935df7c09554d5"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(2325,8,2325,67)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `minInt(_,_)_INT-COMMON_Int_Int_Int`(I1,I2)=>I1 requires `_I2 requires `_>=Int_`(I1,I2) ensures #token("true","Bool") [UNIQUE_ID(e1effeabf96bb3a3beffd5b679ad5df95c4f8bbf42872b0793331e52a8470fb3), org.kframework.attributes.Location(Location(1440,8,1440,57)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)), org.kframework.definition.Production(syntax #RuleContent ::= #RuleBody "requires" Bool [symbol(#ruleRequires)])]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \equals{SortBool{},R}(
+ Lbl'Unds-GT-Eqls'Int'Unds'{}(VarI1:SortInt{},VarI2:SortInt{}),
+ \dv{SortBool{}}("true")),
+ \and{R} (
+ \in{SortInt{}, R} (
+ X0:SortInt{},
+ VarI1:SortInt{}
+ ),\and{R} (
+ \in{SortInt{}, R} (
+ X1:SortInt{},
+ VarI2:SortInt{}
+ ),
+ \top{R} ()
+ ))),
+ \equals{SortInt{},R} (
+ LblminInt'LParUndsCommUndsRParUnds'INT-COMMON'Unds'Int'Unds'Int'Unds'Int{}(X0:SortInt{},X1:SortInt{}),
+ \and{SortInt{}} (
+ VarI2:SortInt{},
+ \top{SortInt{}}())))
+ [UNIQUE'Unds'ID{}("e1effeabf96bb3a3beffd5b679ad5df95c4f8bbf42872b0793331e52a8470fb3"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1440,8,1440,57)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `notBool_`(#token("false","Bool"))=>#token("true","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(17ebc68421572b8ebe609c068fb49cbb6cbbe3246e2142257ad8befdda38f415), org.kframework.attributes.Location(Location(1128,8,1128,29)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("false")
+ ),
+ \top{R} ()
+ )),
+ \equals{SortBool{},R} (
+ LblnotBool'Unds'{}(X0:SortBool{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("true"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("17ebc68421572b8ebe609c068fb49cbb6cbbe3246e2142257ad8befdda38f415"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1128,8,1128,29)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `notBool_`(#token("true","Bool"))=>#token("false","Bool") requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(53fc758ece1ff16581673016dfacc556cc30fcf6b3c35b586f001d76a1f9336c), org.kframework.attributes.Location(Location(1127,8,1127,29)), org.kframework.attributes.Source(Source(/home/dwightguth/kframework/k-distribution/target/release/k/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{SortBool{}, R} (
+ X0:SortBool{},
+ \dv{SortBool{}}("true")
+ ),
+ \top{R} ()
+ )),
+ \equals{SortBool{},R} (
+ LblnotBool'Unds'{}(X0:SortBool{}),
+ \and{SortBool{}} (
+ \dv{SortBool{}}("false"),
+ \top{SortBool{}}())))
+ [UNIQUE'Unds'ID{}("53fc758ece1ff16581673016dfacc556cc30fcf6b3c35b586f001d76a1f9336c"), org'Stop'kframework'Stop'attributes'Stop'Location{}("Location(1127,8,1127,29)"), org'Stop'kframework'Stop'attributes'Stop'Source{}("Source(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// 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: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:ListCell`(inj{ListCell,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(24b644032121515b619d0259c1d130450411e09ae1f2358b26a2968f877f7866), projection]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortListCell{}, SortKItem{}}(VarK:SortListCell{}),dotk{}())
+ ),
+ \top{R} ()
+ )),
+ \equals{SortListCell{},R} (
+ Lblproject'Coln'ListCell{}(X0:SortK{}),
+ \and{SortListCell{}} (
+ VarK:SortListCell{},
+ \top{SortListCell{}}())))
+ [UNIQUE'Unds'ID{}("24b644032121515b619d0259c1d130450411e09ae1f2358b26a2968f877f7866")]
+
+// rule `project:ListCellOpt`(inj{ListCellOpt,KItem}(K))=>K requires #token("true","Bool") ensures #token("true","Bool") [UNIQUE_ID(7e25d1215e21bc8a2d69b13feb4d7cd1fce1be9fd78c6cab77d933d4ccc952f3), projection]
+ axiom{R} \implies{R} (
+ \and{R}(
+ \top{R}(),
+ \and{R} (
+ \in{SortK{}, R} (
+ X0:SortK{},
+ kseq{}(inj{SortListCellOpt{}, SortKItem{}}(VarK:SortListCellOpt{}),dotk{}())
+ ),
+ \top{R} ()
+ )),
+ \equals{SortListCellOpt{},R} (
+ Lblproject'Coln'ListCellOpt{}(X0:SortK{}),
+ \and{SortListCellOpt{}} (
+ VarK:SortListCellOpt{},
+ \top{SortListCellOpt{}}())))
+ [UNIQUE'Unds'ID{}("7e25d1215e21bc8a2d69b13feb4d7cd1fce1be9fd78c6cab77d933d4ccc952f3")]
+
+// 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(/home/dwightguth/kframework/k-distribution/target/release/k/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(/home/dwightguth/kframework/k-distribution/target/release/k/include/kframework/builtin/domains.md)")]
+
+// rule `signExtendBitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int`(I,IDX,LEN)=>`_-Int_`(`_modInt_`(`_+Int_`(`bitRangeInt(_,_,_)_INT-COMMON_Int_Int_Int_Int`(I,IDX,LEN),`_<