346 "append [] xs xs" |
346 "append [] xs xs" |
347 | "append xs ys zs \<Longrightarrow> append (x # xs) ys (x # zs)" |
347 | "append xs ys zs \<Longrightarrow> append (x # xs) ys (x # zs)" |
348 |
348 |
349 code_pred (modes: i => i => o => bool as "concat", o => o => i => bool as "slice", o => i => i => bool as prefix, |
349 code_pred (modes: i => i => o => bool as "concat", o => o => i => bool as "slice", o => i => i => bool as prefix, |
350 i => o => i => bool as suffix, i => i => i => bool) append . |
350 i => o => i => bool as suffix, i => i => i => bool) append . |
|
351 code_pred (modes: i \<Rightarrow> i \<Rightarrow> o \<Rightarrow> bool as "concat", o \<Rightarrow> o \<Rightarrow> i \<Rightarrow> bool as "slice", o \<Rightarrow> i \<Rightarrow> i \<Rightarrow> bool as prefix, |
|
352 i \<Rightarrow> o \<Rightarrow> i \<Rightarrow> bool as suffix, i \<Rightarrow> i \<Rightarrow> i \<Rightarrow> bool) append . |
|
353 |
351 code_pred [dseq] append . |
354 code_pred [dseq] append . |
352 code_pred [random_dseq] append . |
355 code_pred [random_dseq] append . |
353 |
356 |
354 thm append.equation |
357 thm append.equation |
355 thm append.dseq_equation |
358 thm append.dseq_equation |
407 "tupled_append ([], xs, xs)" |
410 "tupled_append ([], xs, xs)" |
408 | "tupled_append (xs, ys, zs) \<Longrightarrow> tupled_append (x # xs, ys, x # zs)" |
411 | "tupled_append (xs, ys, zs) \<Longrightarrow> tupled_append (x # xs, ys, x # zs)" |
409 |
412 |
410 code_pred (expected_modes: i * i * o => bool, o * o * i => bool, o * i * i => bool, |
413 code_pred (expected_modes: i * i * o => bool, o * o * i => bool, o * i * i => bool, |
411 i * o * i => bool, i * i * i => bool) tupled_append . |
414 i * o * i => bool, i * i * i => bool) tupled_append . |
|
415 |
|
416 code_pred (expected_modes: i \<times> i \<times> o \<Rightarrow> bool, o \<times> o \<times> i \<Rightarrow> bool, o \<times> i \<times> i \<Rightarrow> bool, |
|
417 i \<times> o \<times> i \<Rightarrow> bool, i \<times> i \<times> i \<Rightarrow> bool) tupled_append . |
|
418 |
412 code_pred [random_dseq] tupled_append . |
419 code_pred [random_dseq] tupled_append . |
413 thm tupled_append.equation |
420 thm tupled_append.equation |
414 |
421 |
415 values "{xs. tupled_append ([(1::nat), 2, 3], [4, 5], xs)}" |
422 values "{xs. tupled_append ([(1::nat), 2, 3], [4, 5], xs)}" |
416 |
423 |