added const sort_constraint with syntax SORT_CONSTRAINT -- logically vacous;
authorwenzelm
Thu, 16 Oct 2008 22:44:31 +0200
changeset 286221a0b845855ac
parent 28621 a60164e8fff0
child 28623 de573f2e5389
added const sort_constraint with syntax SORT_CONSTRAINT -- logically vacous;
src/Pure/pure_thy.ML
     1.1 --- a/src/Pure/pure_thy.ML	Thu Oct 16 22:44:30 2008 +0200
     1.2 +++ b/src/Pure/pure_thy.ML	Thu Oct 16 22:44:31 2008 +0200
     1.3 @@ -309,7 +309,8 @@
     1.4      ("_indexvar",   typ "index",                       Delimfix "'\\<index>"),
     1.5      ("_struct",     typ "index => logic",              Mixfix ("\\<struct>_", [1000], 1000)),
     1.6      ("==>",         typ "prop => prop => prop",        Delimfix "op ==>"),
     1.7 -    (Term.dummy_patternN, typ "aprop",                 Delimfix "'_")]
     1.8 +    (Term.dummy_patternN, typ "aprop",                 Delimfix "'_"),
     1.9 +    ("_sort_constraint", typ "type => prop",           Delimfix "(1SORT'_CONSTRAINT/(1'(_')))")]
    1.10    #> Sign.add_syntax_i applC_syntax
    1.11    #> Sign.add_modesyntax_i (Symbol.xsymbolsN, true)
    1.12     [("fun",      typ "type => type => type",   Mixfix ("(_/ \\<Rightarrow> _)", [1, 0], 0)),
    1.13 @@ -349,13 +350,18 @@
    1.14    #> Sign.local_path
    1.15    #> Sign.add_consts_i
    1.16     [("term", typ "'a => prop", NoSyn),
    1.17 +    ("sort_constraint", typ "'a itself => prop", NoSyn),
    1.18      ("conjunction", typ "prop => prop => prop", NoSyn)]
    1.19    #> (add_defs false o map Thm.no_attributes)
    1.20     [("prop_def", prop "(CONST prop :: prop => prop) (A::prop) == A::prop"),
    1.21      ("term_def", prop "(CONST Pure.term :: 'a => prop) (x::'a) == (!!A::prop. A ==> A)"),
    1.22 +    ("sort_constraint_def",
    1.23 +      prop "(CONST Pure.sort_constraint :: 'a itself => prop) (CONST TYPE :: 'a itself) ==\
    1.24 +      \ (CONST Pure.term :: 'a itself => prop) (CONST TYPE :: 'a itself)"),
    1.25      ("conjunction_def", prop "(A && B) == (!!C::prop. (A ==> B ==> C) ==> C)")] #> snd
    1.26 +  #> Sign.hide_const false "Pure.term"
    1.27 +  #> Sign.hide_const false "Pure.sort_constraint"
    1.28    #> Sign.hide_const false "Pure.conjunction"
    1.29 -  #> Sign.hide_const false "Pure.term"
    1.30    #> add_thmss [(("nothing", []), [])] #> snd
    1.31    #> Theory.add_axioms_i Proofterm.equality_axms));
    1.32