src/Pure/pure_thy.ML
changeset 62529 8b7bdfc09f3b
parent 62107 f74a33b14200
child 62752 d09d71223e7a
equal deleted inserted replaced
62528:c8c532b22947 62529:8b7bdfc09f3b
   106     ("_classes",    typ "class_name => classes => classes", Delimfix "_,_"),
   106     ("_classes",    typ "class_name => classes => classes", Delimfix "_,_"),
   107     ("_tapp",       typ "type => type_name => type",   Mixfix ("_ _", [1000, 0], 1000)),
   107     ("_tapp",       typ "type => type_name => type",   Mixfix ("_ _", [1000, 0], 1000)),
   108     ("_tappl",      typ "type => types => type_name => type", Delimfix "((1'(_,/ _')) _)"),
   108     ("_tappl",      typ "type => types => type_name => type", Delimfix "((1'(_,/ _')) _)"),
   109     ("",            typ "type => types",               Delimfix "_"),
   109     ("",            typ "type => types",               Delimfix "_"),
   110     ("_types",      typ "type => types => types",      Delimfix "_,/ _"),
   110     ("_types",      typ "type => types => types",      Delimfix "_,/ _"),
   111     ("\\<^type>fun", typ "type => type => type",       Mixfix ("(_/ \\<Rightarrow> _)", [1, 0], 0)),
   111     ("\<^type>fun", typ "type => type => type",        Mixfix ("(_/ \<Rightarrow> _)", [1, 0], 0)),
   112     ("_bracket",    typ "types => type => type",       Mixfix ("([_]/ \\<Rightarrow> _)", [0, 0], 0)),
   112     ("_bracket",    typ "types => type => type",       Mixfix ("([_]/ \<Rightarrow> _)", [0, 0], 0)),
   113     ("",            typ "type => type",                Delimfix "'(_')"),
   113     ("",            typ "type => type",                Delimfix "'(_')"),
   114     ("\\<^type>dummy", typ "type",                     Delimfix "'_"),
   114     ("\<^type>dummy", typ "type",                      Delimfix "'_"),
   115     ("_type_prop",  typ "'a",                          NoSyn),
   115     ("_type_prop",  typ "'a",                          NoSyn),
   116     ("_lambda",     typ "pttrns => 'a => logic",       Mixfix ("(3\\<lambda>_./ _)", [0, 3], 3)),
   116     ("_lambda",     typ "pttrns => 'a => logic",       Mixfix ("(3\<lambda>_./ _)", [0, 3], 3)),
   117     ("_abs",        typ "'a",                          NoSyn),
   117     ("_abs",        typ "'a",                          NoSyn),
   118     ("",            typ "'a => args",                  Delimfix "_"),
   118     ("",            typ "'a => args",                  Delimfix "_"),
   119     ("_args",       typ "'a => args => args",          Delimfix "_,/ _"),
   119     ("_args",       typ "'a => args => args",          Delimfix "_,/ _"),
   120     ("",            typ "id_position => idt",          Delimfix "_"),
   120     ("",            typ "id_position => idt",          Delimfix "_"),
   121     ("_idtdummy",   typ "idt",                         Delimfix "'_"),
   121     ("_idtdummy",   typ "idt",                         Delimfix "'_"),
   129     ("_pttrns",     typ "pttrn => pttrns => pttrns",   Mixfix ("_/ _", [1, 0], 0)),
   129     ("_pttrns",     typ "pttrn => pttrns => pttrns",   Mixfix ("_/ _", [1, 0], 0)),
   130     ("",            typ "aprop => aprop",              Delimfix "'(_')"),
   130     ("",            typ "aprop => aprop",              Delimfix "'(_')"),
   131     ("",            typ "id_position => aprop",        Delimfix "_"),
   131     ("",            typ "id_position => aprop",        Delimfix "_"),
   132     ("",            typ "longid_position => aprop",    Delimfix "_"),
   132     ("",            typ "longid_position => aprop",    Delimfix "_"),
   133     ("",            typ "var_position => aprop",       Delimfix "_"),
   133     ("",            typ "var_position => aprop",       Delimfix "_"),
   134     ("_DDDOT",      typ "aprop",                       Delimfix "\\<dots>"),
   134     ("_DDDOT",      typ "aprop",                       Delimfix "\<dots>"),
   135     ("_aprop",      typ "aprop => prop",               Delimfix "PROP _"),
   135     ("_aprop",      typ "aprop => prop",               Delimfix "PROP _"),
   136     ("_asm",        typ "prop => asms",                Delimfix "_"),
   136     ("_asm",        typ "prop => asms",                Delimfix "_"),
   137     ("_asms",       typ "prop => asms => asms",        Delimfix "_;/ _"),
   137     ("_asms",       typ "prop => asms => asms",        Delimfix "_;/ _"),
   138     ("_bigimpl",    typ "asms => prop => prop",        Mixfix ("((1\\<lbrakk>_\\<rbrakk>)/ \\<Longrightarrow> _)", [0, 1], 1)),
   138     ("_bigimpl",    typ "asms => prop => prop",        Mixfix ("((1\<lbrakk>_\<rbrakk>)/ \<Longrightarrow> _)", [0, 1], 1)),
   139     ("_ofclass",    typ "type => logic => prop",       Delimfix "(1OFCLASS/(1'(_,/ _')))"),
   139     ("_ofclass",    typ "type => logic => prop",       Delimfix "(1OFCLASS/(1'(_,/ _')))"),
   140     ("_mk_ofclass", typ "dummy",                       NoSyn),
   140     ("_mk_ofclass", typ "dummy",                       NoSyn),
   141     ("_TYPE",       typ "type => logic",               Delimfix "(1TYPE/(1'(_')))"),
   141     ("_TYPE",       typ "type => logic",               Delimfix "(1TYPE/(1'(_')))"),
   142     ("",            typ "id_position => logic",        Delimfix "_"),
   142     ("",            typ "id_position => logic",        Delimfix "_"),
   143     ("",            typ "longid_position => logic",    Delimfix "_"),
   143     ("",            typ "longid_position => logic",    Delimfix "_"),
   144     ("",            typ "var_position => logic",       Delimfix "_"),
   144     ("",            typ "var_position => logic",       Delimfix "_"),
   145     ("_DDDOT",      typ "logic",                       Delimfix "\\<dots>"),
   145     ("_DDDOT",      typ "logic",                       Delimfix "\<dots>"),
   146     ("_strip_positions", typ "'a", NoSyn),
   146     ("_strip_positions", typ "'a", NoSyn),
   147     ("_position",   typ "num_token => num_position",   Delimfix "_"),
   147     ("_position",   typ "num_token => num_position",   Delimfix "_"),
   148     ("_position",   typ "float_token => float_position", Delimfix "_"),
   148     ("_position",   typ "float_token => float_position", Delimfix "_"),
   149     ("_constify",   typ "num_position => num_const",   Delimfix "_"),
   149     ("_constify",   typ "num_position => num_const",   Delimfix "_"),
   150     ("_constify",   typ "float_position => float_const", Delimfix "_"),
   150     ("_constify",   typ "float_position => float_const", Delimfix "_"),
   151     ("_index",      typ "logic => index",              Delimfix "(00\\<^bsub>_\\<^esub>)"),
   151     ("_index",      typ "logic => index",              Delimfix "(00\<^bsub>_\<^esub>)"),
   152     ("_indexdefault", typ "index",                     Delimfix ""),
   152     ("_indexdefault", typ "index",                     Delimfix ""),
   153     ("_indexvar",   typ "index",                       Delimfix "'\\<index>"),
   153     ("_indexvar",   typ "index",                       Delimfix "'\<index>"),
   154     ("_struct",     typ "index => logic",              NoSyn),
   154     ("_struct",     typ "index => logic",              NoSyn),
   155     ("_update_name", typ "idt",                        NoSyn),
   155     ("_update_name", typ "idt",                        NoSyn),
   156     ("_constrainAbs", typ "'a",                        NoSyn),
   156     ("_constrainAbs", typ "'a",                        NoSyn),
   157     ("_position_sort", typ "tid => tid_position",      Delimfix "_"),
   157     ("_position_sort", typ "tid => tid_position",      Delimfix "_"),
   158     ("_position_sort", typ "tvar => tvar_position",    Delimfix "_"),
   158     ("_position_sort", typ "tvar => tvar_position",    Delimfix "_"),
   187     ("_bigimpl",          typ "asms => prop => prop",   Mixfix ("((3[| _ |])/ ==> _)", [0, 1], 1)),
   187     ("_bigimpl",          typ "asms => prop => prop",   Mixfix ("((3[| _ |])/ ==> _)", [0, 1], 1)),
   188     ("_DDDOT",            typ "logic",                  Delimfix "...")]
   188     ("_DDDOT",            typ "logic",                  Delimfix "...")]
   189   #> Sign.add_syntax ("", false)
   189   #> Sign.add_syntax ("", false)
   190    [(const "Pure.prop", typ "prop => prop", Mixfix ("_", [0], 0))]
   190    [(const "Pure.prop", typ "prop => prop", Mixfix ("_", [0], 0))]
   191   #> Sign.add_consts
   191   #> Sign.add_consts
   192    [(qualify (Binding.make ("eq", @{here})), typ "'a => 'a => prop", Infix ("\\<equiv>", 2)),
   192    [(qualify (Binding.make ("eq", @{here})), typ "'a => 'a => prop", Infix ("\<equiv>", 2)),
   193     (qualify (Binding.make ("imp", @{here})), typ "prop => prop => prop", Infixr ("\\<Longrightarrow>", 1)),
   193     (qualify (Binding.make ("imp", @{here})), typ "prop => prop => prop", Infixr ("\<Longrightarrow>", 1)),
   194     (qualify (Binding.make ("all", @{here})), typ "('a => prop) => prop", Binder ("\\<And>", 0, 0)),
   194     (qualify (Binding.make ("all", @{here})), typ "('a => prop) => prop", Binder ("\<And>", 0, 0)),
   195     (qualify (Binding.make ("prop", @{here})), typ "prop => prop", NoSyn),
   195     (qualify (Binding.make ("prop", @{here})), typ "prop => prop", NoSyn),
   196     (qualify (Binding.make ("type", @{here})), typ "'a itself", NoSyn),
   196     (qualify (Binding.make ("type", @{here})), typ "'a itself", NoSyn),
   197     (qualify (Binding.make ("dummy_pattern", @{here})), typ "'a", Delimfix "'_")]
   197     (qualify (Binding.make ("dummy_pattern", @{here})), typ "'a", Delimfix "'_")]
   198   #> Theory.add_deps_global "Pure.eq" ((Defs.Const, "Pure.eq"), [typ "'a"]) []
   198   #> Theory.add_deps_global "Pure.eq" ((Defs.Const, "Pure.eq"), [typ "'a"]) []
   199   #> Theory.add_deps_global "Pure.imp" ((Defs.Const, "Pure.imp"), []) []
   199   #> Theory.add_deps_global "Pure.imp" ((Defs.Const, "Pure.imp"), []) []