equal
deleted
inserted
replaced
860 by (Asm_full_simp_tac 1); |
860 by (Asm_full_simp_tac 1); |
861 by (blast_tac (claset() addIs [trans_le_add1]) 1); |
861 by (blast_tac (claset() addIs [trans_le_add1]) 1); |
862 qed_spec_mp "start_le_sum"; |
862 qed_spec_mp "start_le_sum"; |
863 |
863 |
864 Goal "n : set ns ==> n <= foldl op+ 0 ns"; |
864 Goal "n : set ns ==> n <= foldl op+ 0 ns"; |
865 by (auto_tac (claset() addIs [start_le_sum], |
865 by (force_tac (claset() addIs [start_le_sum], |
866 simpset() addsimps [in_set_conv_decomp])); |
866 simpset() addsimps [in_set_conv_decomp]) 1); |
867 qed "elem_le_sum"; |
867 qed "elem_le_sum"; |
868 |
868 |
869 Goal "!m. (foldl op+ m ns = 0) = (m=0 & (!n : set ns. n=0))"; |
869 Goal "!m. (foldl op+ m ns = 0) = (m=0 & (!n : set ns. n=0))"; |
870 by (induct_tac "ns" 1); |
870 by (induct_tac "ns" 1); |
871 by Auto_tac; |
871 by Auto_tac; |