@@ -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)]
@@ -359,8 +362,8 @@ module KORE-HELPERS
359362
360363 rule getReturnSort(\exists{Vs} P) => getReturnSort(P)
361364
362- syntax Sort ::= "TopSort" [token]
363- | "BottomSort" [token]
365+ syntax UpperName ::= "TopSort" [token]
366+ | "BottomSort" [token]
364367
365368 syntax Sort ::= unionSort(Sort, Sort) [function]
366369 rule unionSort(TopSort, S) => TopSort
@@ -833,10 +836,10 @@ Simplifications
833836
834837 // TODO: This should use an axiom, similar to `functional` instead: `axiom predicate(P)`
835838 rule isPredicatePattern(S:Symbol(ARGS)) => true
836- requires getReturnSort(S(ARGS)) =/ =K Heap
839+ requires getReturnSort(S(ARGS)) ==K Bool
837840
838841 rule isPredicatePattern(S:Symbol(ARGS)) => false
839- requires getReturnSort(S(ARGS)) ==K Heap
842+ requires getReturnSort(S(ARGS)) =/ =K Bool
840843 rule isPredicatePattern(emp(.Patterns)) => false
841844 rule isPredicatePattern(\exists{Vs} P) => isPredicatePattern(P)
842845 rule isPredicatePattern(\forall{Vs} P) => isPredicatePattern(P)
@@ -857,6 +860,8 @@ Simplifications
857860 rule isSpatialPattern(\or(_)) => false
858861 rule isSpatialPattern(S:Symbol(ARGS)) => true
859862 requires S =/=K sep andBool getReturnSort(S(ARGS)) ==K Heap
863+ rule isSpatialPattern(S:Symbol(ARGS)) => false
864+ requires getReturnSort(S(ARGS)) =/=K Heap
860865 rule isSpatialPattern(#hole { Bool }) => false
861866 rule isSpatialPattern(#hole { Heap }) => true
862867 rule isSpatialPattern(V:VariableName { Heap }) => true
@@ -918,6 +923,7 @@ Simplifications
918923 rule hasImplicationContext(\functionalPattern(P)) => hasImplicationContext(P)
919924 rule hasImplicationContext(\exists{ _ } P ) => hasImplicationContext(P)
920925 rule hasImplicationContext(\forall{ _ } P ) => hasImplicationContext(P)
926+ rule hasImplicationContext(\mu X . P) => hasImplicationContext(P)
921927 rule hasImplicationContext(implicationContext(_, _)) => true
922928 rule hasImplicationContextPs(.Patterns) => false
923929 rule hasImplicationContextPs(P, Ps)
0 commit comments