@@ -141,12 +141,15 @@ only in this scenario*.
141141``` k
142142 syntax Variable ::= VariableName "{" Sort "}" [klabel(sortedVariable)]
143143 syntax SetVariable ::= SharpName [klabel(setVariable)]
144+ syntax Context ::= VariableName "[" Pattern "]" [klabel(context)]
144145 syntax Pattern ::= Int
145146 | Variable
146147 | SetVariable
147148 | Symbol
148149 | Symbol "(" Patterns ")" [klabel(apply)]
149150
151+ | Context
152+
150153 | "\\top" "(" ")" [klabel(top)]
151154 | "\\bottom" "(" ")" [klabel(bottom)]
152155 | "\\equals" "(" Pattern "," Pattern ")" [klabel(equals)]
@@ -326,8 +329,8 @@ module KORE-HELPERS
326329
327330 rule getReturnSort(\exists{Vs} P) => getReturnSort(P)
328331
329- syntax Sort ::= "TopSort" [token]
330- | "BottomSort" [token]
332+ syntax UpperName ::= "TopSort" [token]
333+ | "BottomSort" [token]
331334
332335 syntax Sort ::= unionSort(Sort, Sort) [function]
333336 rule unionSort(TopSort, S) => TopSort
@@ -771,10 +774,10 @@ Simplifications
771774
772775 // TODO: This should use an axiom, similar to `functional` instead: `axiom predicate(P)`
773776 rule isPredicatePattern(S:Symbol(ARGS)) => true
774- requires getReturnSort(S(ARGS)) =/ =K Heap
777+ requires getReturnSort(S(ARGS)) ==K Bool
775778
776779 rule isPredicatePattern(S:Symbol(ARGS)) => false
777- requires getReturnSort(S(ARGS)) ==K Heap
780+ requires getReturnSort(S(ARGS)) =/ =K Bool
778781 rule isPredicatePattern(emp(.Patterns)) => false
779782 rule isPredicatePattern(\exists{Vs} P) => isPredicatePattern(P)
780783 rule isPredicatePattern(\forall{Vs} P) => isPredicatePattern(P)
@@ -795,6 +798,8 @@ Simplifications
795798 rule isSpatialPattern(\or(_)) => false
796799 rule isSpatialPattern(S:Symbol(ARGS)) => true
797800 requires S =/=K sep andBool getReturnSort(S(ARGS)) ==K Heap
801+ rule isSpatialPattern(S:Symbol(ARGS)) => false
802+ requires getReturnSort(S(ARGS)) =/=K Heap
798803 rule isSpatialPattern(#hole { Bool }) => false
799804 rule isSpatialPattern(#hole { Heap }) => true
800805 rule isSpatialPattern(V:VariableName { Heap }) => true
@@ -856,6 +861,7 @@ Simplifications
856861 rule hasImplicationContext(\functionalPattern(P)) => hasImplicationContext(P)
857862 rule hasImplicationContext(\exists{ _ } P ) => hasImplicationContext(P)
858863 rule hasImplicationContext(\forall{ _ } P ) => hasImplicationContext(P)
864+ rule hasImplicationContext(\mu X . P) => hasImplicationContext(P)
859865 rule hasImplicationContext(implicationContext(_, _)) => true
860866 rule hasImplicationContextPs(.Patterns) => false
861867 rule hasImplicationContextPs(P, Ps)
0 commit comments