Introduced Times and SIGMA.
authornipkow
Wed, 03 Apr 1996 19:02:04 +0200
changeset 1636 e18416e3e1d4
parent 1635 aa09de258498
child 1637 b8a8ae2e5de1
Introduced Times and SIGMA.
src/HOL/Prod.thy
--- a/src/HOL/Prod.thy	Wed Apr 03 18:27:23 1996 +0200
+++ b/src/HOL/Prod.thy	Wed Apr 03 19:02:04 1996 +0200
@@ -42,6 +42,11 @@
   ""        ::  pttrn         => pttrns             ("_")
   "@pttrns" :: [pttrn,pttrns] => pttrns             ("_,/_")
 
+  "@Sigma"  :: "[idt,'a set,'b set] => ('a * 'b)set"
+               ("(3SIGMA _:_./ _)" 10)
+  "@Times"  :: "['a set, 'a => 'b set] => ('a * 'b) set"
+               ("_ Times _" [81,80] 80)
+
 translations
   "(x, y, z)"   == "(x, (y, z))"
   "(x, y)"      == "Pair x y"
@@ -49,6 +54,9 @@
   "%(x,y,zs).b"   == "split(%x (y,zs).b)"
   "%(x,y).b"      == "split(%x y.b)"
 
+  "SIGMA x:A. B"  =>  "Sigma A (%x.B)"
+  "A Times B"     =>  "Sigma A (_K B)"
+
 defs
   Pair_def      "Pair a b == Abs_Prod(Pair_Rep a b)"
   fst_def       "fst(p) == @a. ? b. p = (a, b)"
@@ -72,3 +80,8 @@
 (* end 8bit 1 *)
 
 end
+
+ML
+
+val print_translation = [("Sigma", dependent_tr' ("@Sigma", "@Times"))];
+