summaryrefslogtreecommitdiff
path: root/old-examples/math
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
commite9e80fc389365e24d4300d7d5390c7d833a96c50 (patch)
treef0b58473adaa670bd8fc52ada419d8cad470ee03 /old-examples/math
parentb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff)
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'old-examples/math')
-rw-r--r--old-examples/math/Math.gf41
-rw-r--r--old-examples/math/MathAgd.gf53
-rw-r--r--old-examples/math/MathEnz.gf44
-rw-r--r--old-examples/math/MathSwz.gf44
4 files changed, 182 insertions, 0 deletions
diff --git a/old-examples/math/Math.gf b/old-examples/math/Math.gf
new file mode 100644
index 000000000..35cfcbfdc
--- /dev/null
+++ b/old-examples/math/Math.gf
@@ -0,0 +1,41 @@
+abstract Math = {
+
+flags startcat = Section ;
+
+cat
+ Section ; Label ; Context ; Typ ; Obj ; Prop ; Proof ; Var ;
+
+fun
+ SDefObj : Label -> Context -> Obj -> Typ -> Obj -> Section ;
+ SDefProp : Label -> Context -> Prop -> Prop -> Section ;
+ SAxiom : Label -> Context -> Prop -> Section ;
+ STheorem : Label -> Context -> Prop -> Proof -> Section ;
+
+ CEmpty : Context ;
+ CObj : Var -> Typ -> Context -> Context ;
+ CProp : Prop -> Context -> Context ;
+
+ OVar : Var -> Obj ;
+
+ LNone : Label ;
+ LString : String -> Label ;
+ VString : String -> Var ;
+
+ V_x, V_y, V_z : Var ; --- for js
+
+ PLink : Proof ;
+
+-- lexicon
+
+ Set : Typ ;
+ Nat : Typ ;
+ Zero : Obj ;
+ Succ : Obj -> Obj ;
+ One : Obj ;
+ Two : Obj ;
+ Even : Obj -> Prop ;
+ Odd : Obj -> Prop ;
+ Prime : Obj -> Prop ;
+ Divisible : Obj -> Obj -> Prop ;
+
+}
diff --git a/old-examples/math/MathAgd.gf b/old-examples/math/MathAgd.gf
new file mode 100644
index 000000000..9b723c26e
--- /dev/null
+++ b/old-examples/math/MathAgd.gf
@@ -0,0 +1,53 @@
+--# -path=.:prelude
+
+concrete MathAgd of Mathw = open Prelude in {
+
+flags lexer = codelit ; unlexer = codelit ;
+
+-- lincat Section ; Context ; Typ ;
+ lincat Obj, Prop = {s,name : Str} ;
+-- Proof ; Var ;
+
+lin
+ SDefObj cont obj typ df =
+ ss (obj.name ++ "::" ++ cont.s ++ typ.s ++
+ "=" ++ df.s ++ ";") ;
+ SDefProp cont prop df =
+ ss (prop.name ++ "::" ++ cont.s ++ "Prop" ++
+ "=" ++ df.s ++ ";") ;
+ SAxiom cont prop =
+ ss ("ax" ++ "::" ++ cont.s ++ prop.s ++ ";") ;
+ STheorem cont prop proof =
+ ss ("thm" ++ "::" ++ cont.s ++ prop.s ++
+ "=" ++ proof.s ++ ";") ;
+
+ CEmpty = ss [] ;
+ CObj vr typ co = ss ("(" ++ vr.s ++ "::" ++ typ.s ++ ")" ++ co.s) ;
+ CProp prop co = ss ("(" ++ "_" ++ "::" ++ prop.s ++ ")" ++ co.s) ;
+
+ OVar v = obj v.s [] ;
+
+ V_x = ss "x" ;
+ V_y = ss "y" ;
+ V_z = ss "z" ;
+
+oper
+ obj : Str -> Str -> {s,name : Str} = \f,xs -> {
+ s = f ++ xs ;
+ name = f
+ } ;
+
+-- lexicon
+lin
+ Set = ss "set" ;
+ Nat = ss ["Nat"] ;
+ Zero = obj "Zero" [] ;
+ Succ x = obj "Succ" x.s ;
+ One = obj "one" [] ;
+ Two = obj "two" [] ;
+ Even x = obj "Even" x.s ;
+ Odd x = obj "Odd" x.s ;
+ Prime x = obj "Prime" x.s ;
+ Divisible x y = obj "Div" (x.s ++ y.s) ;
+
+}
diff --git a/old-examples/math/MathEnz.gf b/old-examples/math/MathEnz.gf
new file mode 100644
index 000000000..2e3525032
--- /dev/null
+++ b/old-examples/math/MathEnz.gf
@@ -0,0 +1,44 @@
+--# -path=.:prelude
+
+concrete MathEnz of Mathw = open Prelude in {
+
+flags lexer = textlit ; unlexer = textlit ;
+
+-- lincat Section ; Context ; Typ ; Obj ; Prop ; Proof ; Var ;
+
+lin
+ SDefObj cont obj typ df =
+ ss ("Definition" ++ "." ++ cont.s ++
+ obj.s ++ "is" ++ "a" ++ typ.s ++ "," ++ "defined" ++ "as" ++ df.s ++ ".") ;
+ SDefProp cont prop df =
+ ss ("Definition" ++ "." ++ cont.s ++ "we" ++ "say" ++
+ "that" ++ prop.s ++ "if" ++ df.s ++ ".") ;
+ SAxiom cont prop =
+ ss ("Axiom" ++ "." ++ cont.s ++ prop.s ++ ".") ;
+ STheorem cont prop proof =
+ ss ("Theorem" ++ "." ++ cont.s ++ prop.s ++ "." ++ proof.s ++ ".") ;
+
+ CEmpty = ss [] ;
+ CObj vr typ co = ss ("let" ++ vr.s ++ "be" ++ "a" ++ typ.s ++ "." ++ co.s) ;
+ CProp prop co = ss ("assume" ++ prop.s ++ "." ++ co.s) ;
+
+ OVar v = v ;
+
+ V_x = ss "x" ;
+ V_y = ss "y" ;
+ V_z = ss "z" ;
+
+-- lexicon
+
+ Set = ss "set" ;
+ Nat = ss ["natural number"] ;
+ Zero = ss "zero" ;
+ Succ = prefixSS ["the successor of"] ;
+ One = ss "one" ;
+ Two = ss "two" ;
+ Even = postfixSS ["is even"] ;
+ Odd = postfixSS ["is odd"] ;
+ Prime = postfixSS ["is prime"] ;
+ Divisible = infixSS ["is divisible by"] ;
+
+}
diff --git a/old-examples/math/MathSwz.gf b/old-examples/math/MathSwz.gf
new file mode 100644
index 000000000..0d12a29e0
--- /dev/null
+++ b/old-examples/math/MathSwz.gf
@@ -0,0 +1,44 @@
+--# -path=.:prelude
+
+concrete MathSwz of Mathw = open Prelude in {
+
+flags lexer = textlit ; unlexer = textlit ;
+
+-- lincat Section ; Context ; Typ ; Obj ; Prop ; Proof ; Var ;
+
+lin
+ SDefObj cont obj typ df =
+ ss ("Definition" ++ "." ++ cont.s ++
+ obj.s ++ "är" ++ "ett" ++ typ.s ++ "," ++ "definierat" ++ "som" ++ df.s ++ ".") ;
+ SDefProp cont prop df =
+ ss ("Definition" ++ "." ++ cont.s ++ "vi" ++ "säger" ++
+ "att" ++ prop.s ++ "om" ++ df.s ++ ".") ;
+ SAxiom cont prop =
+ ss ("Axiom" ++ "." ++ cont.s ++ prop.s ++ ".") ;
+ STheorem cont prop proof =
+ ss ("Theorem" ++ "." ++ cont.s ++ prop.s ++ "." ++ proof.s ++ ".") ;
+
+ CEmpty = ss [] ;
+ CObj vr typ co = ss ("låt" ++ vr.s ++ "vara" ++ "ett" ++ typ.s ++ "." ++ co.s) ;
+ CProp prop co = ss ("anta" ++ "att" ++ prop.s ++ "." ++ co.s) ;
+
+ OVar v = v ;
+
+ V_x = ss "x" ;
+ V_y = ss "y" ;
+ V_z = ss "z" ;
+
+-- lexicon
+
+ Set = ss "mängd" ;
+ Nat = ss ["naturligt tal"] ;
+ Zero = ss "noll" ;
+ Succ = prefixSS ["efterföljaren till"] ;
+ One = ss "ett" ;
+ Two = ss "två" ;
+ Even = postfixSS ["är jämnt"] ;
+ Odd = postfixSS ["är udda"] ;
+ Prime = postfixSS ["är ett primtal"] ;
+ Divisible = infixSS ["är delbart med"] ;
+
+}