summaryrefslogtreecommitdiff
path: root/gf-book/examples/chapter6/Nat.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2011-01-11 15:46:43 +0000
committeraarne <aarne@chalmers.se>2011-01-11 15:46:43 +0000
commite7439d65b0e153434d3acc07df6e2a0972ee79ca (patch)
tree36716eec18256eeb600b4a552d9cc80f8ad7f16f /gf-book/examples/chapter6/Nat.gf
parent276327f7f264e770478a6d8c6e683266505b0a55 (diff)
gf-book web page index and toc
Diffstat (limited to 'gf-book/examples/chapter6/Nat.gf')
-rw-r--r--gf-book/examples/chapter6/Nat.gf22
1 files changed, 22 insertions, 0 deletions
diff --git a/gf-book/examples/chapter6/Nat.gf b/gf-book/examples/chapter6/Nat.gf
new file mode 100644
index 000000000..ba0dfe4a1
--- /dev/null
+++ b/gf-book/examples/chapter6/Nat.gf
@@ -0,0 +1,22 @@
+abstract Nat = {
+ cat
+ Prop ; -- proposition
+ Nat ; -- natural number
+ data
+ Zero : Nat ; -- 0
+ Succ : Nat -> Nat ; -- the successor of x
+ fun
+ Even : Nat -> Prop ; -- x is even
+ And : Prop -> Prop -> Prop ; -- A and B
+
+ fun one : Nat ;
+ def one = Succ Zero ;
+
+ fun twice : Nat -> Nat ;
+ def twice x = plus x x ;
+
+ fun plus : Nat -> Nat -> Nat ;
+ def
+ plus x Zero = x ;
+ plus x (Succ y) = Succ (plus x y) ;
+}