src/HOL/ex/Primrec.ML
changeset 5078 7b5ea59c0275
parent 5069 3ea049f7979d
child 5143 b94cd208f073
equal deleted inserted replaced
5077:71043526295f 5078:7b5ea59c0275
   126 by (blast_tac (claset() addIs [less_trans, ack_less_mono2]) 1);
   126 by (blast_tac (claset() addIs [less_trans, ack_less_mono2]) 1);
   127 by (blast_tac (claset() addIs [Suc_leI RS le_less_trans, ack_less_mono2]) 1);
   127 by (blast_tac (claset() addIs [Suc_leI RS le_less_trans, ack_less_mono2]) 1);
   128 val lemma = result();
   128 val lemma = result();
   129 
   129 
   130 Goal "!!i j k. i<j ==> ack(i,k) < ack(j,k)";
   130 Goal "!!i j k. i<j ==> ack(i,k) < ack(j,k)";
   131 by (etac less_natE 1);
   131 by (dtac less_eq_Suc_add 1);
   132 by (blast_tac (claset() addSIs [lemma]) 1);
   132 by (blast_tac (claset() addSIs [lemma]) 1);
   133 qed "ack_less_mono1";
   133 qed "ack_less_mono1";
   134 
   134 
   135 (*PROPERTY A 7', monotonicity for<=*)
   135 (*PROPERTY A 7', monotonicity for<=*)
   136 Goal "!!i j k. i<=j ==> ack(i,k)<=ack(j,k)";
   136 Goal "!!i j k. i<=j ==> ack(i,k)<=ack(j,k)";