equal
deleted
inserted
replaced
73 by (ALLGOALS (asm_simp_tac (simpset() addsimps [lt_ack2]))); |
73 by (ALLGOALS (asm_simp_tac (simpset() addsimps [lt_ack2]))); |
74 qed "ack_lt_ack_succ2"; |
74 qed "ack_lt_ack_succ2"; |
75 |
75 |
76 (*PROPERTY A 5, monotonicity for < *) |
76 (*PROPERTY A 5, monotonicity for < *) |
77 Goal "[| j<k; i:nat; k:nat |] ==> ack(i,j) < ack(i,k)"; |
77 Goal "[| j<k; i:nat; k:nat |] ==> ack(i,j) < ack(i,k)"; |
78 by (forward_tac [lt_nat_in_nat] 1 THEN assume_tac 1); |
78 by (ftac lt_nat_in_nat 1 THEN assume_tac 1); |
79 by (etac succ_lt_induct 1); |
79 by (etac succ_lt_induct 1); |
80 by (assume_tac 1); |
80 by (assume_tac 1); |
81 by (rtac lt_trans 2); |
81 by (rtac lt_trans 2); |
82 by (auto_tac (claset() addIs [ack_lt_ack_succ2], simpset())); |
82 by (auto_tac (claset() addIs [ack_lt_ack_succ2], simpset())); |
83 qed "ack_lt_mono2"; |
83 qed "ack_lt_mono2"; |
104 by Auto_tac; |
104 by Auto_tac; |
105 qed "ack_lt_ack_succ1"; |
105 qed "ack_lt_ack_succ1"; |
106 |
106 |
107 (*PROPERTY A 7, monotonicity for < *) |
107 (*PROPERTY A 7, monotonicity for < *) |
108 Goal "[| i<j; j:nat; k:nat |] ==> ack(i,k) < ack(j,k)"; |
108 Goal "[| i<j; j:nat; k:nat |] ==> ack(i,k) < ack(j,k)"; |
109 by (forward_tac [lt_nat_in_nat] 1 THEN assume_tac 1); |
109 by (ftac lt_nat_in_nat 1 THEN assume_tac 1); |
110 by (etac succ_lt_induct 1); |
110 by (etac succ_lt_induct 1); |
111 by (assume_tac 1); |
111 by (assume_tac 1); |
112 by (rtac lt_trans 2); |
112 by (rtac lt_trans 2); |
113 by (auto_tac (claset() addIs [ack_lt_ack_succ1], simpset())); |
113 by (auto_tac (claset() addIs [ack_lt_ack_succ1], simpset())); |
114 qed "ack_lt_mono1"; |
114 qed "ack_lt_mono1"; |
225 \ fs : list({f: prim_rec . \ |
225 \ fs : list({f: prim_rec . \ |
226 \ EX kf:nat. ALL l:list(nat). \ |
226 \ EX kf:nat. ALL l:list(nat). \ |
227 \ f`l < ack(kf, list_add(l))}) \ |
227 \ f`l < ack(kf, list_add(l))}) \ |
228 \ |] ==> EX k:nat. ALL l: list(nat). COMP(g,fs)`l < ack(k, list_add(l))"; |
228 \ |] ==> EX k:nat. ALL l: list(nat). COMP(g,fs)`l < ack(k, list_add(l))"; |
229 by (Asm_simp_tac 1); |
229 by (Asm_simp_tac 1); |
230 by (forward_tac [list_CollectD] 1); |
230 by (ftac list_CollectD 1); |
231 by (etac (COMP_map_lemma RS bexE) 1); |
231 by (etac (COMP_map_lemma RS bexE) 1); |
232 by (rtac (ballI RS bexI) 1); |
232 by (rtac (ballI RS bexI) 1); |
233 by (etac (bspec RS lt_trans) 1); |
233 by (etac (bspec RS lt_trans) 1); |
234 by (rtac lt_trans 2); |
234 by (rtac lt_trans 2); |
235 by (rtac ack_nest_bound 3); |
235 by (rtac ack_nest_bound 3); |