equal
deleted
inserted
replaced
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" |