src/HOL/Prolog/Func.thy
changeset 36319 8feb2c4bef1a
parent 35301 90e42f9ba4d1
child 58889 5b7a9633cfa8
equal deleted inserted replaced
36318:3567d0571932 36319:8feb2c4bef1a
    56 eval ( Z    * M) Z..
    56 eval ( Z    * M) Z..
    57 eval ((S N) * M) K :- eval (N * M) L & eval (L + M) K"
    57 eval ((S N) * M) K :- eval (N * M) L & eval (L + M) K"
    58 
    58 
    59 lemmas prog_Func = eval
    59 lemmas prog_Func = eval
    60 
    60 
    61 lemma "eval ((S (S Z)) + (S Z)) ?X"
    61 schematic_lemma "eval ((S (S Z)) + (S Z)) ?X"
    62   apply (prolog prog_Func)
    62   apply (prolog prog_Func)
    63   done
    63   done
    64 
    64 
    65 lemma "eval (app (fix (%fact. abs(%n. cond (n eq Z) (S Z)
    65 schematic_lemma "eval (app (fix (%fact. abs(%n. cond (n eq Z) (S Z)
    66                         (n * (app fact (n - (S Z))))))) (S (S (S Z)))) ?X"
    66                         (n * (app fact (n - (S Z))))))) (S (S (S Z)))) ?X"
    67   apply (prolog prog_Func)
    67   apply (prolog prog_Func)
    68   done
    68   done
    69 
    69 
    70 end
    70 end