diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-10-31 17:13:20 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-10-31 17:13:20 +0000 |
| commit | 59e432812829a106d6719f2490e3f64ef77abbff (patch) | |
| tree | 9a465fe52a377494a706cb289d2012ce65727818 /examples/math/MathAgd.gf | |
| parent | 3f4d3e69cf8755b31cbc92e779e29cc2ac5dc71b (diff) | |
mock up math extended with Agda
Diffstat (limited to 'examples/math/MathAgd.gf')
| -rw-r--r-- | examples/math/MathAgd.gf | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/examples/math/MathAgd.gf b/examples/math/MathAgd.gf new file mode 100644 index 000000000..9b723c26e --- /dev/null +++ b/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) ; + +} |
