src/Doc/Isar_Ref/Outer_Syntax.thy
changeset 61658 5dce70aecbfc
parent 61656 cfabbc083977
child 61662 e77def9a63a6
equal deleted inserted replaced
61657:5b878bc6ae98 61658:5dce70aecbfc
   347 
   347 
   348   @{rail \<open>
   348   @{rail \<open>
   349     @{syntax_def vars}: (@{syntax name} +) ('::' @{syntax type})?
   349     @{syntax_def vars}: (@{syntax name} +) ('::' @{syntax type})?
   350     ;
   350     ;
   351     @{syntax_def props}: @{syntax thmdecl}? (@{syntax prop} @{syntax prop_pat}? +)
   351     @{syntax_def props}: @{syntax thmdecl}? (@{syntax prop} @{syntax prop_pat}? +)
       
   352     ;
       
   353     @{syntax_def props'}: (@{syntax prop} @{syntax prop_pat}? +)
   352   \<close>}
   354   \<close>}
   353 
   355 
   354   The treatment of multiple declarations corresponds to the
   356   The treatment of multiple declarations corresponds to the
   355   complementary focus of @{syntax vars} versus @{syntax props}.  In
   357   complementary focus of @{syntax vars} versus @{syntax props}.  In
   356   ``\<open>x\<^sub>1 \<dots> x\<^sub>n :: \<tau>\<close>'' the typing refers to all variables, while
   358   ``\<open>x\<^sub>1 \<dots> x\<^sub>n :: \<tau>\<close>'' the typing refers to all variables, while