src/HOL/Integ/Bin.ML
changeset 6716 87c750df8888
parent 6394 3d9fd50fcc43
child 6838 941c4f70db91
equal deleted inserted replaced
6715:89891b0b596f 6716:87c750df8888
   176 bind_thm ("int_0", integ_of_Pls RS sym);
   176 bind_thm ("int_0", integ_of_Pls RS sym);
   177 
   177 
   178 Goal "int (Suc n) = #1 + int n";
   178 Goal "int (Suc n) = #1 + int n";
   179 by (simp_tac (simpset() addsimps [zadd_int]) 1);
   179 by (simp_tac (simpset() addsimps [zadd_int]) 1);
   180 qed "int_Suc";
   180 qed "int_Suc";
   181 
       
   182 val int_simps = [int_0, int_Suc];
       
   183 
   181 
   184 Goal "- (#0) = #0";
   182 Goal "- (#0) = #0";
   185 by (Simp_tac 1);
   183 by (Simp_tac 1);
   186 qed "zminus_0";
   184 qed "zminus_0";
   187 
   185 
   624 by (etac (nat_0_le RS subst) 1);
   622 by (etac (nat_0_le RS subst) 1);
   625 by (Simp_tac 1);
   623 by (Simp_tac 1);
   626 qed "nat_less_iff";
   624 qed "nat_less_iff";
   627 
   625 
   628 
   626 
   629 (*Users don't want to see (int 0) or w + - z*)
   627 (*Users don't want to see (int 0), int(Suc 0) or w + - z*)
   630 Addsimps [int_0, symmetric zdiff_def];
   628 Addsimps [int_0, int_Suc, symmetric zdiff_def];
       
   629 
       
   630 Goal "nat #0 = 0";
       
   631 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   632 qed "nat_0";
       
   633 
       
   634 Goal "nat #1 = 1";
       
   635 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   636 qed "nat_1";
       
   637 
       
   638 Goal "nat #2 = 2";
       
   639 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   640 qed "nat_2";
       
   641 
       
   642 Goal "nat #3 = Suc 2";
       
   643 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   644 qed "nat_3";
       
   645 
       
   646 Goal "nat #4 = Suc (Suc 2)";
       
   647 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   648 qed "nat_4";
       
   649 
       
   650 Goal "nat #5 = Suc (Suc (Suc 2))";
       
   651 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   652 qed "nat_5";
       
   653 
       
   654 Goal "nat #6 = Suc (Suc (Suc (Suc 2)))";
       
   655 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   656 qed "nat_6";
       
   657 
       
   658 Goal "nat #7 = Suc (Suc (Suc (Suc (Suc 2))))";
       
   659 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   660 qed "nat_7";
       
   661 
       
   662 Goal "nat #8 = Suc (Suc (Suc (Suc (Suc (Suc 2)))))";
       
   663 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   664 qed "nat_8";
       
   665 
       
   666 Goal "nat #9 = Suc (Suc (Suc (Suc (Suc (Suc (Suc 2))))))";
       
   667 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
       
   668 qed "nat_9";
       
   669 
       
   670 (*Users also don't want to see (nat 0), (nat 1), ...*)
       
   671 Addsimps [nat_0, nat_1, nat_2, nat_3, nat_4, 
       
   672 	  nat_5, nat_6, nat_7, nat_8, nat_9];
       
   673 
   631 
   674 
   632 Goal "#0 <= w ==> (nat w < nat z) = (w<z)";
   675 Goal "#0 <= w ==> (nat w < nat z) = (w<z)";
   633 by (case_tac "neg z" 1);
   676 by (case_tac "neg z" 1);
   634 by (auto_tac (claset(), simpset() addsimps [nat_less_iff]));
   677 by (auto_tac (claset(), simpset() addsimps [nat_less_iff]));
   635 by (auto_tac (claset() addIs [zless_trans], 
   678 by (auto_tac (claset() addIs [zless_trans],