28 lines
760 B
Plaintext
28 lines
760 B
Plaintext
module prop-eval2
|
|
imports libstrategolib signatures/-
|
|
rules
|
|
|
|
Eval : Not(True()) -> False()
|
|
Eval : Not(False()) -> True()
|
|
Eval : And(True(), x) -> x
|
|
Eval : And(x, True()) -> x
|
|
Eval : And(False(), x) -> False()
|
|
Eval : And(x, False()) -> False()
|
|
Eval : Or(True(), x) -> True()
|
|
Eval : Or(x, True()) -> True()
|
|
Eval : Or(False(), x) -> x
|
|
Eval : Or(x, False()) -> x
|
|
Eval : Impl(True(), x) -> x
|
|
Eval : Impl(x, True()) -> True()
|
|
Eval : Impl(False(), x) -> True()
|
|
Eval : Impl(x, False()) -> Not(x)
|
|
Eval : Eq(False(), x) -> Not(x)
|
|
Eval : Eq(x, False()) -> Not(x)
|
|
Eval : Eq(True(), x) -> x
|
|
Eval : Eq(x, True()) -> x
|
|
|
|
strategies
|
|
|
|
eval-up = bottomup(repeat(Eval))
|
|
eval-down = downup(repeat(Eval))
|