src/Pure/pure_thy.ML
changeset 56243 2e10a36b8d46
parent 56241 029246729dc0
child 56244 3298b7a2795a
equal deleted inserted replaced
56242:d0a9100a5a38 56243:2e10a36b8d46
   197   #> Sign.add_consts
   197   #> Sign.add_consts
   198    [(Binding.name "==", typ "'a => 'a => prop", Infix ("==", 2)),
   198    [(Binding.name "==", typ "'a => 'a => prop", Infix ("==", 2)),
   199     (Binding.name "==>", typ "prop => prop => prop", Mixfix ("(_/ ==> _)", [2, 1], 1)),
   199     (Binding.name "==>", typ "prop => prop => prop", Mixfix ("(_/ ==> _)", [2, 1], 1)),
   200     (Binding.name "all", typ "('a => prop) => prop", Binder ("!!", 0, 0)),
   200     (Binding.name "all", typ "('a => prop) => prop", Binder ("!!", 0, 0)),
   201     (Binding.name "prop", typ "prop => prop", NoSyn),
   201     (Binding.name "prop", typ "prop => prop", NoSyn),
   202     (Binding.name "TYPE", typ "'a itself", NoSyn),
   202     (qualify (Binding.name "type"), typ "'a itself", NoSyn),
   203     (qualify (Binding.name "dummy_pattern"), typ "'a", Delimfix "'_")]
   203     (qualify (Binding.name "dummy_pattern"), typ "'a", Delimfix "'_")]
   204   #> Theory.add_deps_global "==" ("==", typ "'a => 'a => prop") []
   204   #> Theory.add_deps_global "==" ("==", typ "'a => 'a => prop") []
   205   #> Theory.add_deps_global "==>" ("==>", typ "prop => prop => prop") []
   205   #> Theory.add_deps_global "==>" ("==>", typ "prop => prop => prop") []
   206   #> Theory.add_deps_global "all" ("all", typ "('a => prop) => prop") []
   206   #> Theory.add_deps_global "all" ("all", typ "('a => prop) => prop") []
   207   #> Theory.add_deps_global "TYPE" ("TYPE", typ "'a itself") []
   207   #> Theory.add_deps_global "Pure.type" ("Pure.type", typ "'a itself") []
   208   #> Theory.add_deps_global "Pure.dummy_pattern" ("Pure.dummy_pattern", typ "'a") []
   208   #> Theory.add_deps_global "Pure.dummy_pattern" ("Pure.dummy_pattern", typ "'a") []
   209   #> Sign.parse_ast_translation Syntax_Trans.pure_parse_ast_translation
   209   #> Sign.parse_ast_translation Syntax_Trans.pure_parse_ast_translation
   210   #> Sign.parse_translation Syntax_Trans.pure_parse_translation
   210   #> Sign.parse_translation Syntax_Trans.pure_parse_translation
   211   #> Sign.print_ast_translation Syntax_Trans.pure_print_ast_translation
   211   #> Sign.print_ast_translation Syntax_Trans.pure_print_ast_translation
   212   #> Sign.add_consts
   212   #> Sign.add_consts
   216   #> Sign.local_path
   216   #> Sign.local_path
   217   #> (Global_Theory.add_defs false o map Thm.no_attributes)
   217   #> (Global_Theory.add_defs false o map Thm.no_attributes)
   218    [(Binding.name "prop_def", prop "(CONST prop :: prop => prop) (A::prop) == A::prop"),
   218    [(Binding.name "prop_def", prop "(CONST prop :: prop => prop) (A::prop) == A::prop"),
   219     (Binding.name "term_def", prop "(CONST Pure.term :: 'a => prop) (x::'a) == (!!A::prop. A ==> A)"),
   219     (Binding.name "term_def", prop "(CONST Pure.term :: 'a => prop) (x::'a) == (!!A::prop. A ==> A)"),
   220     (Binding.name "sort_constraint_def",
   220     (Binding.name "sort_constraint_def",
   221       prop "(CONST Pure.sort_constraint :: 'a itself => prop) (CONST TYPE :: 'a itself) ==\
   221       prop "(CONST Pure.sort_constraint :: 'a itself => prop) (CONST Pure.type :: 'a itself) ==\
   222       \ (CONST Pure.term :: 'a itself => prop) (CONST TYPE :: 'a itself)"),
   222       \ (CONST Pure.term :: 'a itself => prop) (CONST Pure.type :: 'a itself)"),
   223     (Binding.name "conjunction_def", prop "(A &&& B) == (!!C::prop. (A ==> B ==> C) ==> C)")] #> snd
   223     (Binding.name "conjunction_def", prop "(A &&& B) == (!!C::prop. (A ==> B ==> C) ==> C)")] #> snd
   224   #> Global_Theory.add_thmss [((Binding.name "nothing", []), [])] #> snd
   224   #> Global_Theory.add_thmss [((Binding.name "nothing", []), [])] #> snd
   225   #> fold (fn (a, prop) =>
   225   #> fold (fn (a, prop) =>
   226       snd o Thm.add_axiom_global (Binding.name a, prop)) Proofterm.equality_axms);
   226       snd o Thm.add_axiom_global (Binding.name a, prop)) Proofterm.equality_axms);
   227 
   227