src/Doc/Implementation/Prelim.thy
changeset 69292 06fda16e50fb
parent 67146 909dcdec2122
child 69597 ff784d5a5bfb
equal deleted inserted replaced
69291:36d711008292 69292:06fda16e50fb
   275   \<open>\<val> merge: T \<times> T \<rightarrow> T\<close> & join on import \\
   275   \<open>\<val> merge: T \<times> T \<rightarrow> T\<close> & join on import \\
   276   \end{tabular}
   276   \end{tabular}
   277   \<^medskip>
   277   \<^medskip>
   278 
   278 
   279   The \<open>empty\<close> value acts as initial default for \<^emph>\<open>any\<close> theory that does not
   279   The \<open>empty\<close> value acts as initial default for \<^emph>\<open>any\<close> theory that does not
   280   declare actual data content; \<open>extend\<close> is acts like a unitary version of
   280   declare actual data content; \<open>extend\<close> acts like a unitary version of
   281   \<open>merge\<close>.
   281   \<open>merge\<close>.
   282 
   282 
   283   Implementing \<open>merge\<close> can be tricky. The general idea is that \<open>merge (data\<^sub>1,
   283   Implementing \<open>merge\<close> can be tricky. The general idea is that \<open>merge (data\<^sub>1,
   284   data\<^sub>2)\<close> inserts those parts of \<open>data\<^sub>2\<close> into \<open>data\<^sub>1\<close> that are not yet
   284   data\<^sub>2)\<close> inserts those parts of \<open>data\<^sub>2\<close> into \<open>data\<^sub>1\<close> that are not yet
   285   present, while keeping the general order of things. The @{ML Library.merge}
   285   present, while keeping the general order of things. The @{ML Library.merge}