equal
deleted
inserted
replaced
436 apply auto |
436 apply auto |
437 apply (simp add: not_zle_iff_zless posDivAlg_termination) |
437 apply (simp add: not_zle_iff_zless posDivAlg_termination) |
438 done |
438 done |
439 |
439 |
440 |
440 |
441 lemma posDivAlg_induct: |
441 lemma posDivAlg_induct [consumes 2]: |
442 assumes u_int: "u \<in> int" |
442 assumes u_int: "u \<in> int" |
443 and v_int: "v \<in> int" |
443 and v_int: "v \<in> int" |
444 and ih: "!!a b. [| a \<in> int; b \<in> int; |
444 and ih: "!!a b. [| a \<in> int; b \<in> int; |
445 ~ (a $< b | b $<= #0) --> P(a, #2 $* b) |] ==> P(a,b)" |
445 ~ (a $< b | b $<= #0) --> P(a, #2 $* b) |] ==> P(a,b)" |
446 shows "P(u,v)" |
446 shows "P(u,v)" |
596 apply (drule_tac [3] x = "<xa, #2 $\<times> y>" in spec) |
596 apply (drule_tac [3] x = "<xa, #2 $\<times> y>" in spec) |
597 apply auto |
597 apply auto |
598 apply (simp add: not_zle_iff_zless negDivAlg_termination) |
598 apply (simp add: not_zle_iff_zless negDivAlg_termination) |
599 done |
599 done |
600 |
600 |
601 lemma negDivAlg_induct: |
601 lemma negDivAlg_induct [consumes 2]: |
602 assumes u_int: "u \<in> int" |
602 assumes u_int: "u \<in> int" |
603 and v_int: "v \<in> int" |
603 and v_int: "v \<in> int" |
604 and ih: "!!a b. [| a \<in> int; b \<in> int; |
604 and ih: "!!a b. [| a \<in> int; b \<in> int; |
605 ~ (#0 $<= a $+ b | b $<= #0) --> P(a, #2 $* b) |] |
605 ~ (#0 $<= a $+ b | b $<= #0) --> P(a, #2 $* b) |] |
606 ==> P(a,b)" |
606 ==> P(a,b)" |