@@ -140,6 +140,9 @@ import io.ksmt.decl.KStringLtDecl
140140import io.ksmt.decl.KStringLeDecl
141141import io.ksmt.decl.KStringGtDecl
142142import io.ksmt.decl.KStringGeDecl
143+ import io.ksmt.decl.KEpsilonDecl
144+ import io.ksmt.decl.KAllDecl
145+ import io.ksmt.decl.KAllCharDecl
143146import io.ksmt.decl.KRegexLiteralDecl
144147import io.ksmt.decl.KRegexConcatDecl
145148import io.ksmt.decl.KRegexUnionDecl
@@ -302,6 +305,9 @@ import io.ksmt.expr.KStringLtExpr
302305import io.ksmt.expr.KStringLeExpr
303306import io.ksmt.expr.KStringGtExpr
304307import io.ksmt.expr.KStringGeExpr
308+ import io.ksmt.expr.KEpsilon
309+ import io.ksmt.expr.KAll
310+ import io.ksmt.expr.KAllChar
305311import io.ksmt.expr.KRegexLiteralExpr
306312import io.ksmt.expr.KRegexConcatExpr
307313import io.ksmt.expr.KRegexUnionExpr
@@ -2231,6 +2237,28 @@ open class KContext(
22312237 KRegexComplementExpr (this , arg)
22322238 }
22332239
2240+ val epsilonExpr: KEpsilon = KEpsilon (this )
2241+
2242+ /* *
2243+ * Create regex Epsilon constant.
2244+ * Epsilon regular expression denoting the empty set of strings.
2245+ * */
2246+ fun mkEpsilon (): KEpsilon = epsilonExpr
2247+
2248+ val allExpr: KAll = KAll (this )
2249+
2250+ /* *
2251+ * Create regex constant denoting the set of all strings.
2252+ * */
2253+ fun mkAll (): KAll = allExpr
2254+
2255+ val allCharExpr: KAllChar = KAllChar (this )
2256+
2257+ /* *
2258+ * Create regex constant denoting the set of all strings of length 1.
2259+ * */
2260+ fun mkAllChar (): KAllChar = allCharExpr
2261+
22342262 // bitvectors
22352263 private val bv1Cache = mkAstInterner<KBitVec1Value >()
22362264 private val bv8Cache = mkAstInterner<KBitVec8Value >()
@@ -4854,6 +4882,7 @@ open class KContext(
48544882 fun mkStringGeDecl (): KStringGeDecl = KStringGeDecl (this )
48554883
48564884 // regex
4885+
48574886 fun mkRegexLiteralDecl (value : String ): KRegexLiteralDecl = KRegexLiteralDecl (this , value)
48584887
48594888 fun mkRegexConcatDecl (): KRegexConcatDecl = KRegexConcatDecl (this )
@@ -4870,6 +4899,12 @@ open class KContext(
48704899
48714900 fun mkRegexComplementDecl (): KRegexComplementDecl = KRegexComplementDecl (this )
48724901
4902+ fun mkEpsilonDecl (): KEpsilonDecl = KEpsilonDecl (this )
4903+
4904+ fun mkAllDecl (): KAllDecl = KAllDecl (this )
4905+
4906+ fun mkAllCharDecl (): KAllCharDecl = KAllCharDecl (this )
4907+
48734908 // Bit vectors
48744909 fun mkBvDecl (value : Boolean ): KDecl <KBv1Sort > =
48754910 KBitVec1ValueDecl (this , value)
0 commit comments