src/HOL/Predicate_Compile_Examples/Predicate_Compile_Examples.thy
changeset 38664 7215ae18f44b
parent 36511 db2953f5887a
child 39195 5ab54bf226ac
equal deleted inserted replaced
38654:0b1a63d06805 38664:7215ae18f44b
   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