src/ZF/Integ/IntDiv.thy
changeset 17885 a1f797ff091e
parent 16417 9bc16273c2d4
equal deleted inserted replaced
17884:805eca99d398 17885:a1f797ff091e
   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)"