src/HOL/Product_Type.thy
changeset 12114 a8e860c86252
parent 11966 8fe2ee787608
child 12338 de0f4a63baa5
equal deleted inserted replaced
12113:46a14ebdac4f 12114:a8e860c86252
    75 proof
    75 proof
    76   fix a b show "Pair_Rep a b : ?Prod"
    76   fix a b show "Pair_Rep a b : ?Prod"
    77     by blast
    77     by blast
    78 qed
    78 qed
    79 
    79 
    80 syntax (symbols)
    80 syntax (xsymbols)
    81   "*"      :: "[type, type] => type"         ("(_ \<times>/ _)" [21, 20] 20)
    81   "*"      :: "[type, type] => type"         ("(_ \<times>/ _)" [21, 20] 20)
    82 syntax (HTML output)
    82 syntax (HTML output)
    83   "*"      :: "[type, type] => type"         ("(_ \<times>/ _)" [21, 20] 20)
    83   "*"      :: "[type, type] => type"         ("(_ \<times>/ _)" [21, 20] 20)
    84 
    84 
    85 local
    85 local
   127      The (x,y) is parsed as `Pair x y' because it is logic, not pttrn *)
   127      The (x,y) is parsed as `Pair x y' because it is logic, not pttrn *)
   128 
   128 
   129   "SIGMA x:A. B" => "Sigma A (%x. B)"
   129   "SIGMA x:A. B" => "Sigma A (%x. B)"
   130   "A <*> B"      => "Sigma A (_K B)"
   130   "A <*> B"      => "Sigma A (_K B)"
   131 
   131 
   132 syntax (symbols)
   132 syntax (xsymbols)
   133   "@Sigma" :: "[pttrn, 'a set, 'b set] => ('a * 'b) set"  ("(3\<Sigma> _\<in>_./ _)"   10)
   133   "@Sigma" :: "[pttrn, 'a set, 'b set] => ('a * 'b) set"  ("(3\<Sigma> _\<in>_./ _)"   10)
   134   "@Times" :: "['a set,  'a => 'b set] => ('a * 'b) set"  ("_ \<times> _" [81, 80] 80)
   134   "@Times" :: "['a set,  'a => 'b set] => ('a * 'b) set"  ("_ \<times> _" [81, 80] 80)
   135 
   135 
   136 print_translation {* [("Sigma", dependent_tr' ("@Sigma", "@Times"))] *}
   136 print_translation {* [("Sigma", dependent_tr' ("@Sigma", "@Times"))] *}
   137 
   137