operations in the abstract syntax

This commit is contained in:
krasimir
2010-11-12 19:37:19 +00:00
parent b46442ab0b
commit 115b4213d5
16 changed files with 96 additions and 62 deletions
@@ -0,0 +1,13 @@
abstract Nat = {
cat Nat ;
data zero : Nat ;
succ : Nat -> Nat ;
oper plus : Nat -> Nat -> Nat ;
def plus zero y = y ;
plus (succ x) y = succ (plus x y) ;
oper twice : Nat -> Nat = \x -> plus x x ;
}
@@ -0,0 +1,5 @@
-- here we test that the abstract operations are not used for proof search
i testsuite\compiler\check\abstract-operations\Nat.gf
gt -cat=Nat -number=10 -depth=10
pt -compute (twice (succ zero))
@@ -0,0 +1,13 @@
zero
succ zero
succ (succ zero)
succ (succ (succ zero))
succ (succ (succ (succ zero)))
succ (succ (succ (succ (succ zero))))
succ (succ (succ (succ (succ (succ zero)))))
succ (succ (succ (succ (succ (succ (succ zero))))))
succ (succ (succ (succ (succ (succ (succ (succ zero)))))))
succ (succ (succ (succ (succ (succ (succ (succ (succ zero))))))))
succ (succ zero)