summaryrefslogtreecommitdiff
path: root/examples/tutorial/smart/Smart.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-09-12 21:03:00 +0000
committeraarne <aarne@cs.chalmers.se>2007-09-12 21:03:00 +0000
commitc9f8961a9ed5c33524619309171aba1b587ad7c2 (patch)
treeb11ab55379d53b027ac528e1c49bbef4c4e52a3a /examples/tutorial/smart/Smart.gf
parentfff6afd438ec49cf32f9a384b98e6f9a7859d65c (diff)
last adjustments of examples before course
Diffstat (limited to 'examples/tutorial/smart/Smart.gf')
-rw-r--r--examples/tutorial/smart/Smart.gf47
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/tutorial/smart/Smart.gf b/examples/tutorial/smart/Smart.gf
new file mode 100644
index 000000000..f88b40f12
--- /dev/null
+++ b/examples/tutorial/smart/Smart.gf
@@ -0,0 +1,47 @@
+abstract Smart = {
+
+flags startcat = Utterance ;
+
+cat
+ Utterance ;
+ Command ;
+ Question ;
+ Kind ;
+ Action Kind ;
+ Device Kind ;
+ Location ;
+
+ Switchable Kind ;
+ Dimmable Kind ;
+ Statelike (k : Kind) (Action k) ;
+
+fun
+ UCommand : Command -> Utterance ;
+ UQuestion : Question -> Utterance ;
+
+ CAction : (k : Kind) -> Action k -> Device k -> Command ;
+ QAction : (k : Kind) -> (a : Action k) -> Statelike k a -> Device k -> Question ;
+
+ DKindOne : (k : Kind) -> Device k ;
+ DKindMany : (k : Kind) -> Device k ;
+ DLoc : (k : Kind) -> Device k -> Location -> Device k ;
+
+ light, fan : Kind ;
+
+ switchOn, switchOff : (k : Kind) -> Switchable k -> Action k ;
+
+ dim : (k : Kind) -> Dimmable k -> Action k ;
+
+ kitchen, livingRoom : Location ;
+
+-- proof objects
+
+ switchable_light : Switchable light ;
+ switchable_fan : Switchable fan ;
+ dimmable_light : Dimmable light ;
+
+ statelike_switchOn : (k : Kind) -> (s : Switchable k) -> Statelike k (switchOn k s) ;
+ statelike_switchOff : (k : Kind) -> (s : Switchable k) -> Statelike k (switchOff k s) ;
+
+}
+