mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
completed book examples
This commit is contained in:
30
book/examples/chapter6/Arithm.gf
Normal file
30
book/examples/chapter6/Arithm.gf
Normal file
@@ -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) ;
|
||||
|
||||
}
|
||||
@@ -18,8 +18,8 @@ lin
|
||||
Fan = mkCN (mkN "fan") ;
|
||||
Switchable, Dimmable = <> ;
|
||||
|
||||
SwitchOn = mkV2 (mkV "on" (mkV "switch")) ;
|
||||
SwitchOff = mkV2 (mkV "off" (mkV "switch")) ;
|
||||
SwitchOn = mkV2 (partV (mkV "switch") "on") ;
|
||||
SwitchOff = mkV2 (partV (mkV "switch") "off") ;
|
||||
Dim = mkV2 (mkV "dim") ;
|
||||
|
||||
switchable_Light = <> ;
|
||||
|
||||
16
book/examples/chapter6/Smart.gf
Normal file
16
book/examples/chapter6/Smart.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
abstract Smart = {
|
||||
|
||||
cat
|
||||
Command ;
|
||||
Kind ;
|
||||
Device Kind ;
|
||||
Action Kind ;
|
||||
|
||||
fun
|
||||
Act : (k : Kind) -> Action k -> Device k -> Command ;
|
||||
The : (k : Kind) -> Device k ; -- the light
|
||||
Light, Fan : Kind ;
|
||||
Dim : Action Light ;
|
||||
SwitchOn, SwitchOff : (k : Kind) -> Action k ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user