src/CCL/ex/flag.thy
changeset 290 37d580c16af5
parent 0 a5a9c433f639
equal deleted inserted replaced
289:78541329ff35 290:37d580c16af5
    27   ccase_def   "ccase(c,r,w,b) == when(c,%x.r,%wb.when(wb,%x.w,%x.b))"
    27   ccase_def   "ccase(c,r,w,b) == when(c,%x.r,%wb.when(wb,%x.w,%x.b))"
    28 
    28 
    29   flag_def    "flag == lam l.letrec \
    29   flag_def    "flag == lam l.letrec \
    30 \      flagx l be lcase(l,<[],<[],[]>>, \
    30 \      flagx l be lcase(l,<[],<[],[]>>, \
    31 \                       %h t. split(flagx(t),%lr p.split(p,%lw lb. \
    31 \                       %h t. split(flagx(t),%lr p.split(p,%lw lb. \
    32 \                            ccase(h, <red.lr,<lw,lb>>, \
    32 \                            ccase(h, <red$lr,<lw,lb>>, \
    33 \                                     <lr,<white.lw,lb>>, \
    33 \                                     <lr,<white$lw,lb>>, \
    34 \                                     <lr,<lw,blue.lb>>)))) \
    34 \                                     <lr,<lw,blue$lb>>)))) \
    35 \      in flagx(l)"    
    35 \      in flagx(l)"    
    36 
    36 
    37   Flag_def
    37   Flag_def
    38      "Flag(l,x) == ALL lr:List(Colour).ALL lw:List(Colour).ALL lb:List(Colour). \
    38      "Flag(l,x) == ALL lr:List(Colour).ALL lw:List(Colour).ALL lb:List(Colour). \
    39 \                    x = <lr,<lw,lb>> --> \
    39 \                    x = <lr,<lw,lb>> --> \