src/Doc/Datatypes/Datatypes.thy
changeset 58915 7d673ab6a8d9
parent 58914 0ef44616fd5f
child 58935 dcad9bad43e7
equal deleted inserted replaced
58914:0ef44616fd5f 58915:7d673ab6a8d9
   851 a set function, the map function, or the relator:
   851 a set function, the map function, or the relator:
   852 
   852 
   853 \begin{indentblock}
   853 \begin{indentblock}
   854 \begin{description}
   854 \begin{description}
   855 
   855 
   856 \item[@{text "t."}\hthm{case_transfer}\rm:] ~ \\
   856 \item[@{text "t."}\hthm{case_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   857 @{thm list.case_transfer[no_vars]}
   857 @{thm list.case_transfer[no_vars]} \\
   858 
   858 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
   859 \item[@{text "t."}\hthm{sel_transfer}\rm:] ~ \\
   859 Section~\ref{ssec:transfer}.)
       
   860 
       
   861 \item[@{text "t."}\hthm{sel_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   860 This property is missing for @{typ "'a list"} because there is no common
   862 This property is missing for @{typ "'a list"} because there is no common
   861 selector to all constructors.
   863 selector to all constructors. \\
   862 
   864 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
   863 \item[@{text "t."}\hthm{ctr_transfer}\rm:] ~ \\
   865 Section~\ref{ssec:transfer}.)
       
   866 
       
   867 \item[@{text "t."}\hthm{ctr_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   864 @{thm list.ctr_transfer(1)[no_vars]} \\
   868 @{thm list.ctr_transfer(1)[no_vars]} \\
   865 @{thm list.ctr_transfer(2)[no_vars]}
   869 @{thm list.ctr_transfer(2)[no_vars]} \\
   866 
   870 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
   867 \item[@{text "t."}\hthm{disc_transfer}\rm:] ~ \\
   871 Section~\ref{ssec:transfer}.)
       
   872 
       
   873 \item[@{text "t."}\hthm{disc_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   868 @{thm list.disc_transfer(1)[no_vars]} \\
   874 @{thm list.disc_transfer(1)[no_vars]} \\
   869 @{thm list.disc_transfer(2)[no_vars]}
   875 @{thm list.disc_transfer(2)[no_vars]} \\
       
   876 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
       
   877 Section~\ref{ssec:transfer}.)
   870 
   878 
   871 \item[@{text "t."}\hthm{set} @{text "[simp, code]"}\rm:] ~ \\
   879 \item[@{text "t."}\hthm{set} @{text "[simp, code]"}\rm:] ~ \\
   872 @{thm list.set(1)[no_vars]} \\
   880 @{thm list.set(1)[no_vars]} \\
   873 @{thm list.set(2)[no_vars]} \\
   881 @{thm list.set(2)[no_vars]} \\
   874 (The @{text "[code]"} attribute is set by the @{text code} plugin,
   882 (The @{text "[code]"} attribute is set by the @{text code} plugin,
   936 @{thm list.inj_map_strong[no_vars]}
   944 @{thm list.inj_map_strong[no_vars]}
   937 
   945 
   938 \item[@{text "t."}\hthm{set_map}\rm:] ~ \\
   946 \item[@{text "t."}\hthm{set_map}\rm:] ~ \\
   939 @{thm list.set_map[no_vars]}
   947 @{thm list.set_map[no_vars]}
   940 
   948 
   941 \item[@{text "t."}\hthm{set_transfer}\rm:] ~ \\
   949 \item[@{text "t."}\hthm{set_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   942 @{thm list.set_transfer[no_vars]}
   950 @{thm list.set_transfer[no_vars]} \\
       
   951 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
       
   952 Section~\ref{ssec:transfer}.)
   943 
   953 
   944 \item[@{text "t."}\hthm{map_cong0}\rm:] ~ \\
   954 \item[@{text "t."}\hthm{map_cong0}\rm:] ~ \\
   945 @{thm list.map_cong0[no_vars]}
   955 @{thm list.map_cong0[no_vars]}
   946 
   956 
   947 \item[@{text "t."}\hthm{map_cong} @{text "[fundef_cong]"}\rm:] ~ \\
   957 \item[@{text "t."}\hthm{map_cong} @{text "[fundef_cong]"}\rm:] ~ \\
   957 @{thm list.map_id0[no_vars]}
   967 @{thm list.map_id0[no_vars]}
   958 
   968 
   959 \item[@{text "t."}\hthm{map_ident}\rm:] ~ \\
   969 \item[@{text "t."}\hthm{map_ident}\rm:] ~ \\
   960 @{thm list.map_ident[no_vars]}
   970 @{thm list.map_ident[no_vars]}
   961 
   971 
   962 \item[@{text "t."}\hthm{map_transfer}\rm:] ~ \\
   972 \item[@{text "t."}\hthm{map_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   963 @{thm list.map_transfer[no_vars]}
   973 @{thm list.map_transfer[no_vars]} \\
       
   974 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
       
   975 Section~\ref{ssec:transfer}.)
   964 
   976 
   965 \item[@{text "t."}\hthm{rel_compp} @{text "[relator_distr]"}\rm:] ~ \\
   977 \item[@{text "t."}\hthm{rel_compp} @{text "[relator_distr]"}\rm:] ~ \\
   966 @{thm list.rel_compp[no_vars]} \\
   978 @{thm list.rel_compp[no_vars]} \\
   967 (The @{text "[relator_distr]"} attribute is set by the @{text lifting} plugin,
   979 (The @{text "[relator_distr]"} attribute is set by the @{text lifting} plugin,
   968 Section~\ref{ssec:lifting}.)
   980 Section~\ref{ssec:lifting}.)
   983 \item[@{text "t."}\hthm{rel_mono} @{text "[mono, relator_mono]"}\rm:] ~ \\
   995 \item[@{text "t."}\hthm{rel_mono} @{text "[mono, relator_mono]"}\rm:] ~ \\
   984 @{thm list.rel_mono[no_vars]} \\
   996 @{thm list.rel_mono[no_vars]} \\
   985 (The @{text "[relator_mono]"} attribute is set by the @{text lifting} plugin,
   997 (The @{text "[relator_mono]"} attribute is set by the @{text lifting} plugin,
   986 Section~\ref{ssec:lifting}.)
   998 Section~\ref{ssec:lifting}.)
   987 
   999 
   988 \item[@{text "t."}\hthm{rel_transfer}\rm:] ~ \\
  1000 \item[@{text "t."}\hthm{rel_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
   989 @{thm list.rel_transfer[no_vars]}
  1001 @{thm list.rel_transfer[no_vars]} \\
       
  1002 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
       
  1003 Section~\ref{ssec:transfer}.)
   990 
  1004 
   991 \end{description}
  1005 \end{description}
   992 \end{indentblock}
  1006 \end{indentblock}
   993 *}
  1007 *}
   994 
  1008 
  1022 Section~\ref{ssec:code-generator}.)
  1036 Section~\ref{ssec:code-generator}.)
  1023 
  1037 
  1024 \item[@{text "t."}\hthm{rec_o_map}\rm:] ~ \\
  1038 \item[@{text "t."}\hthm{rec_o_map}\rm:] ~ \\
  1025 @{thm list.rec_o_map[no_vars]}
  1039 @{thm list.rec_o_map[no_vars]}
  1026 
  1040 
  1027 \item[@{text "t."}\hthm{rec_transfer}\rm:] ~ \\
  1041 \item[@{text "t."}\hthm{rec_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
  1028 @{thm list.rec_transfer[no_vars]}
  1042 @{thm list.rec_transfer[no_vars]} \\
       
  1043 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
       
  1044 Section~\ref{ssec:transfer}.)
  1029 
  1045 
  1030 \end{description}
  1046 \end{description}
  1031 \end{indentblock}
  1047 \end{indentblock}
  1032 
  1048 
  1033 \noindent
  1049 \noindent
  1856 @{thm llist.corec_sel(2)[no_vars]}
  1872 @{thm llist.corec_sel(2)[no_vars]}
  1857 
  1873 
  1858 \item[@{text "t."}\hthm{map_o_corec}\rm:] ~ \\
  1874 \item[@{text "t."}\hthm{map_o_corec}\rm:] ~ \\
  1859 @{thm llist.map_o_corec[no_vars]}
  1875 @{thm llist.map_o_corec[no_vars]}
  1860 
  1876 
  1861 \item[@{text "t."}\hthm{corec_transfer}\rm:] ~ \\
  1877 \item[@{text "t."}\hthm{corec_transfer} @{text "[transfer_rule]"}\rm:] ~ \\
  1862 @{thm llist.corec_transfer[no_vars]}
  1878 @{thm llist.corec_transfer[no_vars]} \\
       
  1879 (The @{text "[transfer_rule]"} attribute is set by the @{text transfer} plugin,
       
  1880 Section~\ref{ssec:transfer}.)
  1863 
  1881 
  1864 \end{description}
  1882 \end{description}
  1865 \end{indentblock}
  1883 \end{indentblock}
  1866 
  1884 
  1867 \noindent
  1885 \noindent