9 |
9 |
10 theory Refute_Nits |
10 theory Refute_Nits |
11 imports Main |
11 imports Main |
12 begin |
12 begin |
13 |
13 |
14 nitpick_params [verbose, card = 1\<emdash>6, max_potential = 0, |
14 nitpick_params [verbose, card = 1-6, max_potential = 0, |
15 sat_solver = MiniSat_JNI, max_threads = 1, timeout = 240] |
15 sat_solver = MiniSat_JNI, max_threads = 1, timeout = 240] |
16 |
16 |
17 lemma "P \<and> Q" |
17 lemma "P \<and> Q" |
18 apply (rule conjI) |
18 apply (rule conjI) |
19 nitpick [expect = genuine] 1 |
19 nitpick [expect = genuine] 1 |
281 oops |
281 oops |
282 |
282 |
283 text {* ``Every point is a fixed point of some function.'' *} |
283 text {* ``Every point is a fixed point of some function.'' *} |
284 |
284 |
285 lemma "\<exists>f. f x = x" |
285 lemma "\<exists>f. f x = x" |
286 nitpick [card = 1\<emdash>7, expect = none] |
286 nitpick [card = 1-7, expect = none] |
287 apply (rule_tac x = "\<lambda>x. x" in exI) |
287 apply (rule_tac x = "\<lambda>x. x" in exI) |
288 apply simp |
288 apply simp |
289 done |
289 done |
290 |
290 |
291 text {* Axiom of Choice: first an incorrect version *} |
291 text {* Axiom of Choice: first an incorrect version *} |
698 lemma "P E" |
698 lemma "P E" |
699 nitpick [expect = genuine] |
699 nitpick [expect = genuine] |
700 oops |
700 oops |
701 |
701 |
702 lemma "rec_T3 e (E x) = e x" |
702 lemma "rec_T3 e (E x) = e x" |
703 nitpick [card = 1\<emdash>4, expect = none] |
703 nitpick [card = 1-4, expect = none] |
704 apply simp |
704 apply simp |
705 done |
705 done |
706 |
706 |
707 lemma "P (rec_T3 e x)" |
707 lemma "P (rec_T3 e x)" |
708 nitpick [expect = genuine] |
708 nitpick [expect = genuine] |
763 lemma "P [x, y]" |
763 lemma "P [x, y]" |
764 nitpick [expect = genuine] |
764 nitpick [expect = genuine] |
765 oops |
765 oops |
766 |
766 |
767 lemma "rec_list nil cons [] = nil" |
767 lemma "rec_list nil cons [] = nil" |
768 nitpick [card = 1\<emdash>5, expect = none] |
768 nitpick [card = 1-5, expect = none] |
769 apply simp |
769 apply simp |
770 done |
770 done |
771 |
771 |
772 lemma "rec_list nil cons (x#xs) = cons x xs (rec_list nil cons xs)" |
772 lemma "rec_list nil cons (x#xs) = cons x xs (rec_list nil cons xs)" |
773 nitpick [card = 1\<emdash>5, expect = none] |
773 nitpick [card = 1-5, expect = none] |
774 apply simp |
774 apply simp |
775 done |
775 done |
776 |
776 |
777 lemma "P (rec_list nil cons xs)" |
777 lemma "P (rec_list nil cons xs)" |
778 nitpick [expect = genuine] |
778 nitpick [expect = genuine] |
841 nitpick [expect = none] |
841 nitpick [expect = none] |
842 apply simp |
842 apply simp |
843 done |
843 done |
844 |
844 |
845 lemma "rec_BinTree l n (Node x y) = n x y (rec_BinTree l n x) (rec_BinTree l n y)" |
845 lemma "rec_BinTree l n (Node x y) = n x y (rec_BinTree l n x) (rec_BinTree l n y)" |
846 nitpick [card = 1\<emdash>5, expect = none] |
846 nitpick [card = 1-5, expect = none] |
847 apply simp |
847 apply simp |
848 done |
848 done |
849 |
849 |
850 lemma "P (rec_BinTree l n x)" |
850 lemma "P (rec_BinTree l n x)" |
851 nitpick [expect = genuine] |
851 nitpick [expect = genuine] |
879 lemma "\<forall>x\<Colon>'a bexp. P x" |
879 lemma "\<forall>x\<Colon>'a bexp. P x" |
880 nitpick [expect = genuine] |
880 nitpick [expect = genuine] |
881 oops |
881 oops |
882 |
882 |
883 lemma "rec_aexp_bexp_1 number ite equal (Number x) = number x" |
883 lemma "rec_aexp_bexp_1 number ite equal (Number x) = number x" |
884 nitpick [card = 1\<emdash>3, expect = none] |
884 nitpick [card = 1-3, expect = none] |
885 apply simp |
885 apply simp |
886 done |
886 done |
887 |
887 |
888 lemma "rec_aexp_bexp_1 number ite equal (ITE x y z) = ite x y z (rec_aexp_bexp_2 number ite equal x) (rec_aexp_bexp_1 number ite equal y) (rec_aexp_bexp_1 number ite equal z)" |
888 lemma "rec_aexp_bexp_1 number ite equal (ITE x y z) = ite x y z (rec_aexp_bexp_2 number ite equal x) (rec_aexp_bexp_1 number ite equal y) (rec_aexp_bexp_1 number ite equal z)" |
889 nitpick [card = 1\<emdash>3, expect = none] |
889 nitpick [card = 1-3, expect = none] |
890 apply simp |
890 apply simp |
891 done |
891 done |
892 |
892 |
893 lemma "P (rec_aexp_bexp_1 number ite equal x)" |
893 lemma "P (rec_aexp_bexp_1 number ite equal x)" |
894 nitpick [expect = genuine] |
894 nitpick [expect = genuine] |
897 lemma "P (case x of Number a \<Rightarrow> number a | ITE b a1 a2 \<Rightarrow> ite b a1 a2)" |
897 lemma "P (case x of Number a \<Rightarrow> number a | ITE b a1 a2 \<Rightarrow> ite b a1 a2)" |
898 nitpick [expect = genuine] |
898 nitpick [expect = genuine] |
899 oops |
899 oops |
900 |
900 |
901 lemma "rec_aexp_bexp_2 number ite equal (Equal x y) = equal x y (rec_aexp_bexp_1 number ite equal x) (rec_aexp_bexp_1 number ite equal y)" |
901 lemma "rec_aexp_bexp_2 number ite equal (Equal x y) = equal x y (rec_aexp_bexp_1 number ite equal x) (rec_aexp_bexp_1 number ite equal y)" |
902 nitpick [card = 1\<emdash>3, expect = none] |
902 nitpick [card = 1-3, expect = none] |
903 apply simp |
903 apply simp |
904 done |
904 done |
905 |
905 |
906 lemma "P (rec_aexp_bexp_2 number ite equal x)" |
906 lemma "P (rec_aexp_bexp_2 number ite equal x)" |
907 nitpick [expect = genuine] |
907 nitpick [expect = genuine] |
957 lemma "P (C (D (C F)))" |
957 lemma "P (C (D (C F)))" |
958 nitpick [expect = genuine] |
958 nitpick [expect = genuine] |
959 oops |
959 oops |
960 |
960 |
961 lemma "rec_X_Y_1 a b c d e f A = a" |
961 lemma "rec_X_Y_1 a b c d e f A = a" |
962 nitpick [card = 1\<emdash>5, expect = none] |
962 nitpick [card = 1-5, expect = none] |
963 apply simp |
963 apply simp |
964 done |
964 done |
965 |
965 |
966 lemma "rec_X_Y_1 a b c d e f (B x) = b x (rec_X_Y_1 a b c d e f x)" |
966 lemma "rec_X_Y_1 a b c d e f (B x) = b x (rec_X_Y_1 a b c d e f x)" |
967 nitpick [card = 1\<emdash>5, expect = none] |
967 nitpick [card = 1-5, expect = none] |
968 apply simp |
968 apply simp |
969 done |
969 done |
970 |
970 |
971 lemma "rec_X_Y_1 a b c d e f (C y) = c y (rec_X_Y_2 a b c d e f y)" |
971 lemma "rec_X_Y_1 a b c d e f (C y) = c y (rec_X_Y_2 a b c d e f y)" |
972 nitpick [card = 1\<emdash>5, expect = none] |
972 nitpick [card = 1-5, expect = none] |
973 apply simp |
973 apply simp |
974 done |
974 done |
975 |
975 |
976 lemma "rec_X_Y_2 a b c d e f (D x) = d x (rec_X_Y_1 a b c d e f x)" |
976 lemma "rec_X_Y_2 a b c d e f (D x) = d x (rec_X_Y_1 a b c d e f x)" |
977 nitpick [card = 1\<emdash>5, expect = none] |
977 nitpick [card = 1-5, expect = none] |
978 apply simp |
978 apply simp |
979 done |
979 done |
980 |
980 |
981 lemma "rec_X_Y_2 a b c d e f (E y) = e y (rec_X_Y_2 a b c d e f y)" |
981 lemma "rec_X_Y_2 a b c d e f (E y) = e y (rec_X_Y_2 a b c d e f y)" |
982 nitpick [card = 1\<emdash>5, expect = none] |
982 nitpick [card = 1-5, expect = none] |
983 apply simp |
983 apply simp |
984 done |
984 done |
985 |
985 |
986 lemma "rec_X_Y_2 a b c d e f F = f" |
986 lemma "rec_X_Y_2 a b c d e f F = f" |
987 nitpick [card = 1\<emdash>5, expect = none] |
987 nitpick [card = 1-5, expect = none] |
988 apply simp |
988 apply simp |
989 done |
989 done |
990 |
990 |
991 lemma "P (rec_X_Y_1 a b c d e f x)" |
991 lemma "P (rec_X_Y_1 a b c d e f x)" |
992 nitpick [expect = genuine] |
992 nitpick [expect = genuine] |
1013 lemma "P (CX (Some (CX None)))" |
1013 lemma "P (CX (Some (CX None)))" |
1014 nitpick [expect = genuine] |
1014 nitpick [expect = genuine] |
1015 oops |
1015 oops |
1016 |
1016 |
1017 lemma "rec_XOpt_1 cx dx n1 s1 n2 s2 (CX x) = cx x (rec_XOpt_2 cx dx n1 s1 n2 s2 x)" |
1017 lemma "rec_XOpt_1 cx dx n1 s1 n2 s2 (CX x) = cx x (rec_XOpt_2 cx dx n1 s1 n2 s2 x)" |
1018 nitpick [card = 1\<emdash>5, expect = none] |
1018 nitpick [card = 1-5, expect = none] |
1019 apply simp |
1019 apply simp |
1020 done |
1020 done |
1021 |
1021 |
1022 lemma "rec_XOpt_1 cx dx n1 s1 n2 s2 (DX x) = dx x (\<lambda>b. rec_XOpt_3 cx dx n1 s1 n2 s2 (x b))" |
1022 lemma "rec_XOpt_1 cx dx n1 s1 n2 s2 (DX x) = dx x (\<lambda>b. rec_XOpt_3 cx dx n1 s1 n2 s2 (x b))" |
1023 nitpick [card = 1\<emdash>3, expect = none] |
1023 nitpick [card = 1-3, expect = none] |
1024 apply simp |
1024 apply simp |
1025 done |
1025 done |
1026 |
1026 |
1027 lemma "rec_XOpt_2 cx dx n1 s1 n2 s2 None = n1" |
1027 lemma "rec_XOpt_2 cx dx n1 s1 n2 s2 None = n1" |
1028 nitpick [card = 1\<emdash>4, expect = none] |
1028 nitpick [card = 1-4, expect = none] |
1029 apply simp |
1029 apply simp |
1030 done |
1030 done |
1031 |
1031 |
1032 lemma "rec_XOpt_2 cx dx n1 s1 n2 s2 (Some x) = s1 x (rec_XOpt_1 cx dx n1 s1 n2 s2 x)" |
1032 lemma "rec_XOpt_2 cx dx n1 s1 n2 s2 (Some x) = s1 x (rec_XOpt_1 cx dx n1 s1 n2 s2 x)" |
1033 nitpick [card = 1\<emdash>4, expect = none] |
1033 nitpick [card = 1-4, expect = none] |
1034 apply simp |
1034 apply simp |
1035 done |
1035 done |
1036 |
1036 |
1037 lemma "rec_XOpt_3 cx dx n1 s1 n2 s2 None = n2" |
1037 lemma "rec_XOpt_3 cx dx n1 s1 n2 s2 None = n2" |
1038 nitpick [card = 1\<emdash>4, expect = none] |
1038 nitpick [card = 1-4, expect = none] |
1039 apply simp |
1039 apply simp |
1040 done |
1040 done |
1041 |
1041 |
1042 lemma "rec_XOpt_3 cx dx n1 s1 n2 s2 (Some x) = s2 x (rec_XOpt_1 cx dx n1 s1 n2 s2 x)" |
1042 lemma "rec_XOpt_3 cx dx n1 s1 n2 s2 (Some x) = s2 x (rec_XOpt_1 cx dx n1 s1 n2 s2 x)" |
1043 nitpick [card = 1\<emdash>4, expect = none] |
1043 nitpick [card = 1-4, expect = none] |
1044 apply simp |
1044 apply simp |
1045 done |
1045 done |
1046 |
1046 |
1047 lemma "P (rec_XOpt_1 cx dx n1 s1 n2 s2 x)" |
1047 lemma "P (rec_XOpt_1 cx dx n1 s1 n2 s2 x)" |
1048 nitpick [expect = genuine] |
1048 nitpick [expect = genuine] |
1069 lemma "P (CY (Some (\<lambda>a. CY None)))" |
1069 lemma "P (CY (Some (\<lambda>a. CY None)))" |
1070 nitpick [expect = genuine] |
1070 nitpick [expect = genuine] |
1071 oops |
1071 oops |
1072 |
1072 |
1073 lemma "rec_YOpt_1 cy n s (CY x) = cy x (rec_YOpt_2 cy n s x)" |
1073 lemma "rec_YOpt_1 cy n s (CY x) = cy x (rec_YOpt_2 cy n s x)" |
1074 nitpick [card = 1\<emdash>2, expect = none] |
1074 nitpick [card = 1-2, expect = none] |
1075 apply simp |
1075 apply simp |
1076 done |
1076 done |
1077 |
1077 |
1078 lemma "rec_YOpt_2 cy n s None = n" |
1078 lemma "rec_YOpt_2 cy n s None = n" |
1079 nitpick [card = 1\<emdash>2, expect = none] |
1079 nitpick [card = 1-2, expect = none] |
1080 apply simp |
1080 apply simp |
1081 done |
1081 done |
1082 |
1082 |
1083 lemma "rec_YOpt_2 cy n s (Some x) = s x (\<lambda>a. rec_YOpt_1 cy n s (x a))" |
1083 lemma "rec_YOpt_2 cy n s (Some x) = s x (\<lambda>a. rec_YOpt_1 cy n s (x a))" |
1084 nitpick [card = 1\<emdash>2, expect = none] |
1084 nitpick [card = 1-2, expect = none] |
1085 apply simp |
1085 apply simp |
1086 done |
1086 done |
1087 |
1087 |
1088 lemma "P (rec_YOpt_1 cy n s x)" |
1088 lemma "P (rec_YOpt_1 cy n s x)" |
1089 nitpick [expect = genuine] |
1089 nitpick [expect = genuine] |
1106 lemma "P (TR [TR []])" |
1106 lemma "P (TR [TR []])" |
1107 nitpick [expect = genuine] |
1107 nitpick [expect = genuine] |
1108 oops |
1108 oops |
1109 |
1109 |
1110 lemma "rec_Trie_1 tr nil cons (TR x) = tr x (rec_Trie_2 tr nil cons x)" |
1110 lemma "rec_Trie_1 tr nil cons (TR x) = tr x (rec_Trie_2 tr nil cons x)" |
1111 nitpick [card = 1\<emdash>4, expect = none] |
1111 nitpick [card = 1-4, expect = none] |
1112 apply simp |
1112 apply simp |
1113 done |
1113 done |
1114 |
1114 |
1115 lemma "rec_Trie_2 tr nil cons [] = nil" |
1115 lemma "rec_Trie_2 tr nil cons [] = nil" |
1116 nitpick [card = 1\<emdash>4, expect = none] |
1116 nitpick [card = 1-4, expect = none] |
1117 apply simp |
1117 apply simp |
1118 done |
1118 done |
1119 |
1119 |
1120 lemma "rec_Trie_2 tr nil cons (x#xs) = cons x xs (rec_Trie_1 tr nil cons x) (rec_Trie_2 tr nil cons xs)" |
1120 lemma "rec_Trie_2 tr nil cons (x#xs) = cons x xs (rec_Trie_1 tr nil cons x) (rec_Trie_2 tr nil cons xs)" |
1121 nitpick [card = 1\<emdash>4, expect = none] |
1121 nitpick [card = 1-4, expect = none] |
1122 apply simp |
1122 apply simp |
1123 done |
1123 done |
1124 |
1124 |
1125 lemma "P (rec_Trie_1 tr nil cons x)" |
1125 lemma "P (rec_Trie_1 tr nil cons x)" |
1126 nitpick [card = 1, expect = genuine] |
1126 nitpick [card = 1, expect = genuine] |
1143 lemma "P (Node (\<lambda>n. Leaf))" |
1143 lemma "P (Node (\<lambda>n. Leaf))" |
1144 nitpick [expect = genuine] |
1144 nitpick [expect = genuine] |
1145 oops |
1145 oops |
1146 |
1146 |
1147 lemma "rec_InfTree leaf node Leaf = leaf" |
1147 lemma "rec_InfTree leaf node Leaf = leaf" |
1148 nitpick [card = 1\<emdash>3, expect = none] |
1148 nitpick [card = 1-3, expect = none] |
1149 apply simp |
1149 apply simp |
1150 done |
1150 done |
1151 |
1151 |
1152 lemma "rec_InfTree leaf node (Node x) = node x (\<lambda>n. rec_InfTree leaf node (x n))" |
1152 lemma "rec_InfTree leaf node (Node x) = node x (\<lambda>n. rec_InfTree leaf node (x n))" |
1153 nitpick [card = 1\<emdash>3, expect = none] |
1153 nitpick [card = 1-3, expect = none] |
1154 apply simp |
1154 apply simp |
1155 done |
1155 done |
1156 |
1156 |
1157 lemma "P (rec_InfTree leaf node x)" |
1157 lemma "P (rec_InfTree leaf node x)" |
1158 nitpick [expect = genuine] |
1158 nitpick [expect = genuine] |
1167 lemma "\<forall>x\<Colon>'a lambda. P x" |
1167 lemma "\<forall>x\<Colon>'a lambda. P x" |
1168 nitpick [expect = genuine] |
1168 nitpick [expect = genuine] |
1169 oops |
1169 oops |
1170 |
1170 |
1171 lemma "P (Lam (\<lambda>a. Var a))" |
1171 lemma "P (Lam (\<lambda>a. Var a))" |
1172 nitpick [card = 1\<emdash>5, expect = none] |
1172 nitpick [card = 1-5, expect = none] |
1173 nitpick [card 'a = 4, card "'a lambda" = 5, expect = genuine] |
1173 nitpick [card 'a = 4, card "'a lambda" = 5, expect = genuine] |
1174 oops |
1174 oops |
1175 |
1175 |
1176 lemma "rec_lambda var app lam (Var x) = var x" |
1176 lemma "rec_lambda var app lam (Var x) = var x" |
1177 nitpick [card = 1\<emdash>3, expect = none] |
1177 nitpick [card = 1-3, expect = none] |
1178 apply simp |
1178 apply simp |
1179 done |
1179 done |
1180 |
1180 |
1181 lemma "rec_lambda var app lam (App x y) = app x y (rec_lambda var app lam x) (rec_lambda var app lam y)" |
1181 lemma "rec_lambda var app lam (App x y) = app x y (rec_lambda var app lam x) (rec_lambda var app lam y)" |
1182 nitpick [card = 1\<emdash>3, expect = none] |
1182 nitpick [card = 1-3, expect = none] |
1183 apply simp |
1183 apply simp |
1184 done |
1184 done |
1185 |
1185 |
1186 lemma "rec_lambda var app lam (Lam x) = lam x (\<lambda>a. rec_lambda var app lam (x a))" |
1186 lemma "rec_lambda var app lam (Lam x) = lam x (\<lambda>a. rec_lambda var app lam (x a))" |
1187 nitpick [card = 1\<emdash>3, expect = none] |
1187 nitpick [card = 1-3, expect = none] |
1188 apply simp |
1188 apply simp |
1189 done |
1189 done |
1190 |
1190 |
1191 lemma "P (rec_lambda v a l x)" |
1191 lemma "P (rec_lambda v a l x)" |
1192 nitpick [expect = genuine] |
1192 nitpick [expect = genuine] |
1208 lemma "P (E (C (\<lambda>a. True)))" |
1208 lemma "P (E (C (\<lambda>a. True)))" |
1209 nitpick [expect = genuine] |
1209 nitpick [expect = genuine] |
1210 oops |
1210 oops |
1211 |
1211 |
1212 lemma "rec_U_1 e c d nil cons (E x) = e x (rec_U_2 e c d nil cons x)" |
1212 lemma "rec_U_1 e c d nil cons (E x) = e x (rec_U_2 e c d nil cons x)" |
1213 nitpick [card = 1\<emdash>3, expect = none] |
1213 nitpick [card = 1-3, expect = none] |
1214 apply simp |
1214 apply simp |
1215 done |
1215 done |
1216 |
1216 |
1217 lemma "rec_U_2 e c d nil cons (C x) = c x" |
1217 lemma "rec_U_2 e c d nil cons (C x) = c x" |
1218 nitpick [card = 1\<emdash>3, expect = none] |
1218 nitpick [card = 1-3, expect = none] |
1219 apply simp |
1219 apply simp |
1220 done |
1220 done |
1221 |
1221 |
1222 lemma "rec_U_2 e c d nil cons (D x) = d x (rec_U_3 e c d nil cons x)" |
1222 lemma "rec_U_2 e c d nil cons (D x) = d x (rec_U_3 e c d nil cons x)" |
1223 nitpick [card = 1\<emdash>3, expect = none] |
1223 nitpick [card = 1-3, expect = none] |
1224 apply simp |
1224 apply simp |
1225 done |
1225 done |
1226 |
1226 |
1227 lemma "rec_U_3 e c d nil cons [] = nil" |
1227 lemma "rec_U_3 e c d nil cons [] = nil" |
1228 nitpick [card = 1\<emdash>3, expect = none] |
1228 nitpick [card = 1-3, expect = none] |
1229 apply simp |
1229 apply simp |
1230 done |
1230 done |
1231 |
1231 |
1232 lemma "rec_U_3 e c d nil cons (x#xs) = cons x xs (rec_U_1 e c d nil cons x) (rec_U_3 e c d nil cons xs)" |
1232 lemma "rec_U_3 e c d nil cons (x#xs) = cons x xs (rec_U_1 e c d nil cons x) (rec_U_3 e c d nil cons xs)" |
1233 nitpick [card = 1\<emdash>3, expect = none] |
1233 nitpick [card = 1-3, expect = none] |
1234 apply simp |
1234 apply simp |
1235 done |
1235 done |
1236 |
1236 |
1237 lemma "P (rec_U_1 e c d nil cons x)" |
1237 lemma "P (rec_U_1 e c d nil cons x)" |
1238 nitpick [expect = genuine] |
1238 nitpick [expect = genuine] |