runtimeverification / runtimeverification/haskell-backend
Follow-up to functional -> total
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
functional <-> function-like and total <-> the pattern evaluates to a singleton
function-like <-> the pattern evaluates to a singleton set or is undefined
total <-> the pattern is always defined
symbolConstructor1 [constructor, functional, ...] (before)
symbolConstructor1 [constructor, function, total, ...] -> didn't work because in the Haskell backend when
we see a symbol declared as a function we assume it's a function symbol
A ::= f(A) [function] -> function symbol, meaning a symbol which constructs terms which can because
rewritten using an equational theory
A ::= foo -> a constructor symbol, defining a constructor of the sort A
what we have to do is in the backend we have identify constructors
as those symbols which have the constructor attribute
we need to start identifying function symbols not by just looking for the function attribute,
but by asking if the symbol has a function attribute and doesn't have a constructor attribute
symbol constructor1 [constructor, function, total, injective] -> backend identifies it as constructor
because it has the constructor attribute
symbol function1 [function] -> backend identifies it as function, because it has the function
attribute AND it doesn't have the constructor attribute
symbol function2 [function, total] -> same as the function1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.