Closed geo2a closed 2 weeks ago
Related to https://github.com/runtimeverification/haskell-backend/issues/3861
This PR adds a routine to compute a syntactic transitive closure if a certain relational symbol in a given set of applications of this symbol.
See module Booster.Pattern.PartialOrder for the implementation and [Test.Booster.Pattern.PartialOrder(https://github.com/runtimeverification/haskell-backend/blob/georgy%2Fpartial-order-transitive-closure/booster/unit-tests/Test/Booster/Pattern/PartialOrder.hs#L13) for the unit-tests.
This routine, in conjunction with syntactic inference of requires from the path condition, should allow us to solve some side-conditions completely syntactically, i.e. without calling the SMT solver or event the applying equations.
requires
Opened this draft too early.
Related to https://github.com/runtimeverification/haskell-backend/issues/3861
This PR adds a routine to compute a syntactic transitive closure if a certain relational symbol in a given set of applications of this symbol.
See module Booster.Pattern.PartialOrder for the implementation and [Test.Booster.Pattern.PartialOrder(https://github.com/runtimeverification/haskell-backend/blob/georgy%2Fpartial-order-transitive-closure/booster/unit-tests/Test/Booster/Pattern/PartialOrder.hs#L13) for the unit-tests.
Application
This routine, in conjunction with syntactic inference of
requires
from the path condition, should allow us to solve some side-conditions completely syntactically, i.e. without calling the SMT solver or event the applying equations.