equal
deleted
inserted
replaced
55 proof (rule Heap_eqI) |
55 proof (rule Heap_eqI) |
56 fix h |
56 fix h |
57 obtain len h' where "Heap_Monad.execute (Array.length a) h = (len, h')" |
57 obtain len h' where "Heap_Monad.execute (Array.length a) h = (len, h')" |
58 by (cases "Heap_Monad.execute (Array.length a) h") |
58 by (cases "Heap_Monad.execute (Array.length a) h") |
59 then show "Heap_Monad.execute (upd i x a \<guillemotright> return a) h = Heap_Monad.execute (upd i x a) h" |
59 then show "Heap_Monad.execute (upd i x a \<guillemotright> return a) h = Heap_Monad.execute (upd i x a) h" |
60 by (auto simp add: upd_def bindM_def run_drop split: sum.split) |
60 by (auto simp add: upd_def bindM_def split: sum.split) |
61 qed |
61 qed |
62 |
62 |
63 |
63 |
64 subsection {* Derivates *} |
64 subsection {* Derivates *} |
65 |
65 |