Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a792f96
WIP: remove Functor instance from MultiOr
ana-pantilie Sep 9, 2020
11c88bf
WIP: remove Functor instance from MultiOr
ana-pantilie Sep 10, 2020
8089f02
WIP: remove Functor instance from MultiOr
ana-pantilie Sep 10, 2020
5853f7d
Simplification.Inj: refactor awkward map of MultiOr
ana-pantilie Sep 10, 2020
1e0b467
WIP: remove Functor instance from MultiOr
ana-pantilie Sep 10, 2020
305a67d
WIP: remove Functor instance from MultiOr
ana-pantilie Sep 10, 2020
257f39e
Simplification.Builtin: use Logic monad instead of MultiOr as a monad
ana-pantilie Sep 10, 2020
21e4252
WIP: remove Functor instance from MultiOr
ana-pantilie Sep 10, 2020
5310947
WIP: remove Functor instance of Result
ana-pantilie Sep 10, 2020
d8c84bf
Remove Functor instance from Result
ana-pantilie Sep 10, 2020
bce1dde
MultiOr: traverseLogic
ana-pantilie Sep 11, 2020
3c18475
MultiOr: reimplement fullCrossProduct in terms of MultiAnd and MultiOr
ana-pantilie Sep 11, 2020
6901751
Use old fullCrossProduct in Application simplification
ana-pantilie Sep 11, 2020
4c9b962
MultiOr: split fullCrossProduct into distributeAnd and distributeAppl…
ana-pantilie Sep 11, 2020
d4b2200
Use MultiOr.traverse
ana-pantilie Sep 11, 2020
3c2043d
test_distributeAnd + test_distributeApplication
ana-pantilie Sep 11, 2020
a8f0dc5
WIP Address review comments
ana-pantilie Sep 15, 2020
84a2fff
Update kore/src/Kore/Step/Simplification/Implies.hs
ana-pantilie Sep 15, 2020
cced739
Update kore/src/Kore/Step/Simplification/In.hs
ana-pantilie Sep 15, 2020
0cd8217
Update kore/src/Kore/Syntax/DomainValue.hs
ana-pantilie Sep 15, 2020
8913335
Update kore/src/Kore/Internal/Inj.hs
ana-pantilie Sep 15, 2020
5b6a439
Merge branch 'remove-multior-functor' of github.com:ana-pantilie/kore…
ana-pantilie Sep 15, 2020
b33286b
Address review comments
ana-pantilie Sep 15, 2020
fb40af6
Merge remote-tracking branch 'upstream/master' into remove-multior-fu…
ana-pantilie Sep 15, 2020
d1c10ff
Address review comment
ana-pantilie Sep 16, 2020
001caac
MultiOr: do not export constructor
ana-pantilie Sep 16, 2020
9d7a2a4
Merge remote-tracking branch 'upstream/master' into do-not-export-mul…
ana-pantilie Sep 16, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion kore/src/Kore/Internal/MultiOr.hs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Portability : portable
{-# LANGUAGE UndecidableInstances #-}

module Kore.Internal.MultiOr
( MultiOr (..)
( MultiOr
, bottom
, filterOr
, flatten
Expand Down
2 changes: 1 addition & 1 deletion kore/src/Kore/Step/Simplification/Not.hs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import Kore.Internal.MultiAnd
)
import qualified Kore.Internal.MultiAnd as MultiAnd
import Kore.Internal.MultiOr
( MultiOr (..)
( MultiOr
)
import qualified Kore.Internal.MultiOr as MultiOr
import Kore.Internal.OrCondition
Expand Down
12 changes: 8 additions & 4 deletions kore/src/Kore/Strategies/Goal.hs
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ import Kore.Strategies.Rule
import qualified Kore.Syntax.Sentence as Syntax
import Kore.Syntax.Variable
import Kore.TopBottom
( isBottom
( TopBottom (..)
)
import qualified Kore.Unification.Procedure as Unification
import Kore.Unparser
Expand All @@ -184,18 +184,22 @@ See also: 'Strategy.pickFinal', 'extractUnproven'
-}
unprovenNodes
:: forall goal a
. Strategy.ExecutionGraph (ProofState a) (AppliedRule goal)
. Ord a
=> TopBottom a
=> Strategy.ExecutionGraph (ProofState a) (AppliedRule goal)
-> MultiOr.MultiOr a
unprovenNodes executionGraph =
MultiOr.MultiOr
MultiOr.make
$ mapMaybe extractUnproven
$ Strategy.pickFinal executionGraph

{- | Does the 'Strategy.ExecutionGraph' indicate a successful proof?
-}
proven
:: forall goal a
. Strategy.ExecutionGraph (ProofState a) (AppliedRule goal)
. Ord a
=> TopBottom a
=> Strategy.ExecutionGraph (ProofState a) (AppliedRule goal)
-> Bool
proven = Foldable.null . unprovenNodes

Expand Down
6 changes: 2 additions & 4 deletions kore/test/Test/Kore/Builtin/Map.hs
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,7 @@ import Kore.Domain.Builtin
( NormalizedMap (..)
)
import qualified Kore.Domain.Builtin as Domain
import Kore.Internal.MultiOr
( MultiOr (..)
)
import qualified Kore.Internal.MultiOr as MultiOr
import Kore.Internal.Pattern
import qualified Kore.Internal.Pattern as Pattern
import Kore.Internal.Predicate
Expand Down Expand Up @@ -1223,7 +1221,7 @@ test_concretizeKeysAxiom =
, rhs = injectTermIntoRHS v
, attributes = Default.def
}
expected = MultiOr
expected = MultiOr.make
[ Conditional
{ term = val
, predicate = makeTruePredicate intSort
Expand Down
6 changes: 2 additions & 4 deletions kore/test/Test/Kore/Builtin/Set.hs
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,7 @@ import Kore.Domain.Builtin
import qualified Kore.Domain.Builtin as Domain
import qualified Kore.Internal.Condition as Condition
import qualified Kore.Internal.Conditional as Conditional
import Kore.Internal.MultiOr
( MultiOr (..)
)
import qualified Kore.Internal.MultiOr as MultiOr
import Kore.Internal.Pattern as Pattern
import Kore.Internal.Predicate as Predicate
import qualified Kore.Internal.Substitution as Substitution
Expand Down Expand Up @@ -1824,7 +1822,7 @@ test_concretizeKeysAxiom =
, rhs = injectTermIntoRHS x
, attributes = Default.def
}
expected = MultiOr
expected = MultiOr.make
[ Conditional
{ term = symbolicKey
, predicate = makeTruePredicate intSort
Expand Down
24 changes: 11 additions & 13 deletions kore/test/Test/Kore/Step/Simplification/And.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ import Test.Tasty

import qualified Kore.Internal.Condition as Condition
import qualified Kore.Internal.MultiAnd as MultiAnd
import Kore.Internal.MultiOr
( MultiOr (MultiOr)
)
import qualified Kore.Internal.MultiOr as MultiOr
import Kore.Internal.OrPattern
( OrPattern
)
Expand Down Expand Up @@ -276,7 +274,7 @@ test_andSimplification =
[(inject Mock.y, fOfX)]
}
actual <- evaluatePatterns yExpanded fOfXExpanded
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual

, testCase "term-variable" $ do
let expect =
Expand All @@ -287,7 +285,7 @@ test_andSimplification =
[(inject Mock.y, fOfX)]
}
actual <- evaluatePatterns fOfXExpanded yExpanded
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
]

, testGroup "constructor and"
Expand All @@ -310,7 +308,7 @@ test_andSimplification =
, predicate = makeTruePredicate_
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual

, testCase "different constructors" $ do
actual <-
Expand All @@ -325,7 +323,7 @@ test_andSimplification =
, predicate = makeTruePredicate_
, substitution = mempty
}
assertEqual "" (MultiOr []) actual
assertEqual "" (MultiOr.make []) actual
]

-- (a or b) and (c or d) = (b and d) or (b and c) or (a and d) or (a and c)
Expand Down Expand Up @@ -395,7 +393,7 @@ test_andSimplification =
, predicate = makeCeilPredicate_ fOfX
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
, testCase "Contradictions result in bottom" $ do
actual <-
evaluatePatterns
Expand Down Expand Up @@ -436,7 +434,7 @@ test_andSimplification =
(makeCeilPredicate_ gOfX)
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
, testCase "Simplifies Implies - Negative" $ do
let expect =
Conditional
Expand All @@ -462,7 +460,7 @@ test_andSimplification =
(makeCeilPredicate_ gOfX)
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
, testCase "Simplifies multiple Implies" $ do
let expect =
Conditional
Expand Down Expand Up @@ -497,7 +495,7 @@ test_andSimplification =
)
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
, testCase "Does not replace and terms under intersecting quantifiers" $ do
let expect =
Conditional
Expand All @@ -523,7 +521,7 @@ test_andSimplification =
makeExistsPredicate Mock.x (makeCeilPredicate_ fOfX)
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
, testCase "Replaces and terms under independent quantifiers" $ do
let expect =
Conditional
Expand Down Expand Up @@ -553,7 +551,7 @@ test_andSimplification =
)
, substitution = mempty
}
assertEqual "" (MultiOr [expect]) actual
assertEqual "" (MultiOr.make [expect]) actual
]
where
yExpanded = Conditional
Expand Down
Loading