src/ZF/Int_ZF.thy
changeset 57492 74bf65a1910a
parent 46953 2b6e55924af3
child 58871 c399ae4b836f
equal deleted inserted replaced
57491:9eedaafc05c8 57492:74bf65a1910a
   659 lemma zless_imp_succ_zadd_lemma:
   659 lemma zless_imp_succ_zadd_lemma:
   660     "[| w $< z; w \<in> int; z \<in> int |] ==> (\<exists>n\<in>nat. z = w $+ $#(succ(n)))"
   660     "[| w $< z; w \<in> int; z \<in> int |] ==> (\<exists>n\<in>nat. z = w $+ $#(succ(n)))"
   661 apply (simp add: zless_def znegative_def zdiff_def int_def)
   661 apply (simp add: zless_def znegative_def zdiff_def int_def)
   662 apply (auto dest!: less_imp_succ_add simp add: zadd zminus int_of_def)
   662 apply (auto dest!: less_imp_succ_add simp add: zadd zminus int_of_def)
   663 apply (rule_tac x = k in bexI)
   663 apply (rule_tac x = k in bexI)
   664 apply (erule add_left_cancel, auto)
   664 apply (erule_tac i="succ (?v)" in add_left_cancel, auto)
   665 done
   665 done
   666 
   666 
   667 lemma zless_imp_succ_zadd:
   667 lemma zless_imp_succ_zadd:
   668      "w $< z ==> (\<exists>n\<in>nat. w $+ $#(succ(n)) = intify(z))"
   668      "w $< z ==> (\<exists>n\<in>nat. w $+ $#(succ(n)) = intify(z))"
   669 apply (subgoal_tac "intify (w) $< intify (z) ")
   669 apply (subgoal_tac "intify (w) $< intify (z) ")
   701 apply (rename_tac x1 x2 y1 y2)
   701 apply (rename_tac x1 x2 y1 y2)
   702 apply (rule_tac x = "x1#+x2" in exI)
   702 apply (rule_tac x = "x1#+x2" in exI)
   703 apply (rule_tac x = "y1#+y2" in exI)
   703 apply (rule_tac x = "y1#+y2" in exI)
   704 apply (auto simp add: add_lt_mono)
   704 apply (auto simp add: add_lt_mono)
   705 apply (rule sym)
   705 apply (rule sym)
       
   706 apply hypsubst_thin
   706 apply (erule add_left_cancel)+
   707 apply (erule add_left_cancel)+
   707 apply auto
   708 apply auto
   708 done
   709 done
   709 
   710 
   710 lemma zless_trans [trans]: "[| x $< y; y $< z |] ==> x $< z"
   711 lemma zless_trans [trans]: "[| x $< y; y $< z |] ==> x $< z"