equal
deleted
inserted
replaced
172 "[| m: nat; n: nat; |
172 "[| m: nat; n: nat; |
173 !!x. x: nat ==> P(x,0); |
173 !!x. x: nat ==> P(x,0); |
174 !!y. y: nat ==> P(0,succ(y)); |
174 !!y. y: nat ==> P(0,succ(y)); |
175 !!x y. [| x: nat; y: nat; P(x,y) |] ==> P(succ(x),succ(y)) |] |
175 !!x y. [| x: nat; y: nat; P(x,y) |] ==> P(succ(x),succ(y)) |] |
176 ==> P(m,n)" |
176 ==> P(m,n)" |
177 apply (erule_tac x = "m" in rev_bspec) |
177 apply (erule_tac x = m in rev_bspec) |
178 apply (erule nat_induct, simp) |
178 apply (erule nat_induct, simp) |
179 apply (rule ballI) |
179 apply (rule ballI) |
180 apply (rename_tac i j) |
180 apply (rename_tac i j) |
181 apply (erule_tac n=j in nat_induct, auto) |
181 apply (erule_tac n=j in nat_induct, auto) |
182 done |
182 done |