equal
deleted
inserted
replaced
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 |