Skip to content

Commit 2e714c5

Browse files
andreiburdusaMirceaSrv-jenkins
authored
Add an EquationVariableName to RewritingVariableName
* Add an EquationVariableName to RewritingVariableName * Add missed case for compareSubstitution Co-authored-by: Octavian Mircea Sebe <[email protected]> Co-authored-by: rv-jenkins <[email protected]>
1 parent 8428df4 commit 2e714c5

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

kore/src/Kore/Rewriting/RewritingVariable.hs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ License : NCSA
77
module Kore.Rewriting.RewritingVariable
88
( RewritingVariableName
99
, RewritingVariable
10+
, isEquationVariable
1011
, isConfigVariable
1112
, isRuleVariable
1213
, isSomeConfigVariable
@@ -15,6 +16,7 @@ module Kore.Rewriting.RewritingVariable
1516
, isSomeRuleVariableName
1617
, isElementRuleVariable
1718
, isElementRuleVariableName
19+
, mkEquationVariable
1820
, mkConfigVariable
1921
, mkRuleVariable
2022
, mkElementConfigVariable
@@ -59,7 +61,8 @@ import Kore.Variables.Fresh
5961
{- | The name of a 'RewritingVariable'.
6062
-}
6163
data RewritingVariableName
62-
= ConfigVariableName !VariableName
64+
= EquationVariableName !VariableName
65+
| ConfigVariableName !VariableName
6366
| RuleVariableName !VariableName
6467
deriving (Eq, Ord, Show)
6568
deriving (GHC.Generic)
@@ -68,24 +71,32 @@ data RewritingVariableName
6871
deriving anyclass (Debug, Diff)
6972

7073
instance SubstitutionOrd RewritingVariableName where
74+
compareSubstitution (EquationVariableName _) (RuleVariableName _) = LT
75+
compareSubstitution (EquationVariableName _) (ConfigVariableName _) = LT
76+
compareSubstitution (RuleVariableName _) (EquationVariableName _) = GT
7177
compareSubstitution (RuleVariableName _) (ConfigVariableName _) = LT
78+
compareSubstitution (ConfigVariableName _) (EquationVariableName _) = GT
7279
compareSubstitution (ConfigVariableName _) (RuleVariableName _) = GT
7380
compareSubstitution variable1 variable2 =
7481
on compareSubstitution toVariableName variable1 variable2
7582

7683
instance FreshPartialOrd RewritingVariableName where
7784
minBoundName =
7885
\case
79-
RuleVariableName var -> RuleVariableName (minBoundName var)
80-
ConfigVariableName var -> ConfigVariableName (minBoundName var)
86+
EquationVariableName var -> EquationVariableName (minBoundName var)
87+
RuleVariableName var -> RuleVariableName (minBoundName var)
88+
ConfigVariableName var -> ConfigVariableName (minBoundName var)
8189
{-# INLINE minBoundName #-}
8290

8391
maxBoundName =
8492
\case
85-
RuleVariableName var -> RuleVariableName (maxBoundName var)
86-
ConfigVariableName var -> ConfigVariableName (maxBoundName var)
93+
EquationVariableName var -> EquationVariableName (maxBoundName var)
94+
RuleVariableName var -> RuleVariableName (maxBoundName var)
95+
ConfigVariableName var -> ConfigVariableName (maxBoundName var)
8796
{-# INLINE maxBoundName #-}
8897

98+
nextName (EquationVariableName name1) (EquationVariableName name2) =
99+
EquationVariableName <$> nextName name1 name2
89100
nextName (RuleVariableName name1) (RuleVariableName name2) =
90101
RuleVariableName <$> nextName name1 name2
91102
nextName (ConfigVariableName name1) (ConfigVariableName name2) =
@@ -94,13 +105,16 @@ instance FreshPartialOrd RewritingVariableName where
94105
{-# INLINE nextName #-}
95106

96107
instance Unparse RewritingVariableName where
108+
unparse (EquationVariableName variable) = "Equation" <> unparse variable
97109
unparse (ConfigVariableName variable) = "Config" <> unparse variable
98110
unparse (RuleVariableName variable) = "Rule" <> unparse variable
99111

112+
unparse2 (EquationVariableName variable) = "Equation" <> unparse2 variable
100113
unparse2 (ConfigVariableName variable) = "Config" <> unparse2 variable
101114
unparse2 (RuleVariableName variable) = "Rule" <> unparse2 variable
102115

103116
instance From RewritingVariableName VariableName where
117+
from (EquationVariableName variable) = variable
104118
from (ConfigVariableName variable) = variable
105119
from (RuleVariableName variable) = variable
106120

@@ -168,12 +182,19 @@ getRewritingVariable
168182
:: AdjSomeVariableName (RewritingVariableName -> VariableName)
169183
getRewritingVariable = pure (from @RewritingVariableName @VariableName)
170184

185+
mkEquationVariable :: VariableName -> RewritingVariableName
186+
mkEquationVariable = EquationVariableName
187+
171188
mkConfigVariable :: VariableName -> RewritingVariableName
172189
mkConfigVariable = ConfigVariableName
173190

174191
mkRuleVariable :: VariableName -> RewritingVariableName
175192
mkRuleVariable = RuleVariableName
176193

194+
isEquationVariable :: RewritingVariableName -> Bool
195+
isEquationVariable (EquationVariableName _) = True
196+
isEquationVariable _ = False
197+
177198
isConfigVariable :: RewritingVariableName -> Bool
178199
isConfigVariable (ConfigVariableName _) = True
179200
isConfigVariable _ = False

0 commit comments

Comments
 (0)