src/Doc/Datatypes/Datatypes.thy
changeset 56992 d0e5225601d3
parent 56957 23a9cb098ccb
child 56995 61855ade6c7e
equal deleted inserted replaced
56991:8e9ca31e9b8e 56992:d0e5225601d3
   841 subsubsection {* Functorial Theorems
   841 subsubsection {* Functorial Theorems
   842   \label{sssec:functorial-theorems} *}
   842   \label{sssec:functorial-theorems} *}
   843 
   843 
   844 text {*
   844 text {*
   845 The functorial theorems are partitioned in two subgroups. The first subgroup
   845 The functorial theorems are partitioned in two subgroups. The first subgroup
   846 consists of properties involving the constructors and either a set function, the
   846 consists of properties involving the constructors or the destructors and either
   847 map function, or the relator:
   847 a set function, the map function, or the relator:
   848 
   848 
   849 \begin{indentblock}
   849 \begin{indentblock}
   850 \begin{description}
   850 \begin{description}
   851 
   851 
   852 \item[@{text "t."}\hthm{set} @{text "[simp, code]"}\rm:] ~ \\
   852 \item[@{text "t."}\hthm{set} @{text "[simp, code]"}\rm:] ~ \\
   853 @{thm list.set(1)[no_vars]} \\
   853 @{thm list.set(1)[no_vars]} \\
   854 @{thm list.set(2)[no_vars]}
   854 @{thm list.set(2)[no_vars]}
   855 
   855 
       
   856 \item[@{text "t."}\hthm{set\_empty}\rm:] ~ \\
       
   857 @{thm list.set_empty[no_vars]}
       
   858 
   856 \item[@{text "t."}\hthm{map} @{text "[simp, code]"}\rm:] ~ \\
   859 \item[@{text "t."}\hthm{map} @{text "[simp, code]"}\rm:] ~ \\
   857 @{thm list.map(1)[no_vars]} \\
   860 @{thm list.map(1)[no_vars]} \\
   858 @{thm list.map(2)[no_vars]}
   861 @{thm list.map(2)[no_vars]}
   859 
   862 
       
   863 \item[@{text "t."}\hthm{disc\_map\_iff} @{text "[simp]"}\rm:] ~ \\
       
   864 @{thm list.disc_map_iff[no_vars]}
       
   865 
   860 \item[@{text "t."}\hthm{rel\_inject} @{text "[simp]"}\rm:] ~ \\
   866 \item[@{text "t."}\hthm{rel\_inject} @{text "[simp]"}\rm:] ~ \\
   861 @{thm list.rel_inject(1)[no_vars]} \\
   867 @{thm list.rel_inject(1)[no_vars]} \\
   862 @{thm list.rel_inject(2)[no_vars]}
   868 @{thm list.rel_inject(2)[no_vars]}
   863 
   869 
   864 \item[@{text "t."}\hthm{rel\_distinct} @{text "[simp]"}\rm:] ~ \\
   870 \item[@{text "t."}\hthm{rel\_distinct} @{text "[simp]"}\rm:] ~ \\
   876 the map function, and the relator:
   882 the map function, and the relator:
   877 
   883 
   878 \begin{indentblock}
   884 \begin{indentblock}
   879 \begin{description}
   885 \begin{description}
   880 
   886 
       
   887 \item[@{text "t."}\hthm{set\_map}\rm:] ~ \\
       
   888 @{thm list.set_map[no_vars]}
       
   889 
   881 \item[@{text "t."}\hthm{map\_comp}\rm:] ~ \\
   890 \item[@{text "t."}\hthm{map\_comp}\rm:] ~ \\
   882 @{thm list.map_cong0[no_vars]}
   891 @{thm list.map_cong0[no_vars]}
   883 
   892 
   884 \item[@{text "t."}\hthm{map\_cong} @{text "[fundef_cong]"}\rm:] ~ \\
   893 \item[@{text "t."}\hthm{map\_cong} @{text "[fundef_cong]"}\rm:] ~ \\
   885 @{thm list.map_cong[no_vars]}
   894 @{thm list.map_cong[no_vars]}
   905 \item[@{text "t."}\hthm{rel\_flip}\rm:] ~ \\
   914 \item[@{text "t."}\hthm{rel\_flip}\rm:] ~ \\
   906 @{thm list.rel_flip[no_vars]}
   915 @{thm list.rel_flip[no_vars]}
   907 
   916 
   908 \item[@{text "t."}\hthm{rel\_mono}\rm:] ~ \\
   917 \item[@{text "t."}\hthm{rel\_mono}\rm:] ~ \\
   909 @{thm list.rel_mono[no_vars]}
   918 @{thm list.rel_mono[no_vars]}
   910 
       
   911 \item[@{text "t."}\hthm{set\_empty}\rm:] ~ \\
       
   912 @{thm list.set_empty[no_vars]}
       
   913 
       
   914 \item[@{text "t."}\hthm{set\_map}\rm:] ~ \\
       
   915 @{thm list.set_map[no_vars]}
       
   916 
   919 
   917 \end{description}
   920 \end{description}
   918 \end{indentblock}
   921 \end{indentblock}
   919 *}
   922 *}
   920 
   923