src/HOL/IMPP/EvenOdd.thy
changeset 11701 3d51fbf81c17
parent 8791 50b650d19641
child 11704 3c50a2cd6f00
equal deleted inserted replaced
11700:a0e6bda62b7b 11701:3d51fbf81c17
     7 *)
     7 *)
     8 
     8 
     9 EvenOdd = Misc +
     9 EvenOdd = Misc +
    10 
    10 
    11 constdefs even :: nat => bool
    11 constdefs even :: nat => bool
    12   "even n == #2 dvd n"
    12   "even n == # 2 dvd n"
    13 
    13 
    14 consts
    14 consts
    15   Even, Odd :: pname
    15   Even, Odd :: pname
    16 rules 
    16 rules 
    17   Even_neq_Odd "Even ~= Odd"
    17   Even_neq_Odd "Even ~= Odd"
    25               Loc Arg:=CALL Odd(%s. s<Arg> - 1);;
    25               Loc Arg:=CALL Odd(%s. s<Arg> - 1);;
    26               Loc Res:==(%s. s<Res> * s<Arg>))"
    26               Loc Res:==(%s. s<Res> * s<Arg>))"
    27   odd :: com
    27   odd :: com
    28  "odd == IF (%s. s<Arg>=0)
    28  "odd == IF (%s. s<Arg>=0)
    29          THEN Loc Res:==(%s. 1)
    29          THEN Loc Res:==(%s. 1)
    30          ELSE(Loc Res:=CALL Even (%s. s<Arg> -1))"
    30          ELSE(Loc Res:=CALL Even (%s. s<Arg> - 1))"
    31 
    31 
    32 defs
    32 defs
    33   bodies_def "bodies == [(Even,evn),(Odd,odd)]"
    33   bodies_def "bodies == [(Even,evn),(Odd,odd)]"
    34   
    34   
    35 consts
    35 consts