diff options
Diffstat (limited to 'gf-book/examples/chapter6/Arithm.gf')
| -rw-r--r-- | gf-book/examples/chapter6/Arithm.gf | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gf-book/examples/chapter6/Arithm.gf b/gf-book/examples/chapter6/Arithm.gf new file mode 100644 index 000000000..685627745 --- /dev/null +++ b/gf-book/examples/chapter6/Arithm.gf @@ -0,0 +1,30 @@ +abstract Arithm = { + 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 + + cat Less Nat Nat ; + data LessZ : (y : Nat) -> Less Zero (Succ y) ; + data LessS : (x,y : Nat) -> Less x y -> Less (Succ x) (Succ y) ; + + cat Span ; + data FromTo : (m,n : Nat) -> Less m n -> Span ; + + 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) ; + +} |
