127 (fn prems => |
127 (fn prems => |
128 [ |
128 [ |
129 (rtac allI 1), |
129 (rtac allI 1), |
130 (rtac allI 1), |
130 (rtac allI 1), |
131 (res_inst_tac [("p","x")] trE 1), |
131 (res_inst_tac [("p","x")] trE 1), |
132 (asm_simp_tac ccc1_ss 1), |
132 (Asm_simp_tac 1), |
133 (res_inst_tac [("p","y")] trE 1), |
133 (res_inst_tac [("p","y")] trE 1), |
134 (asm_simp_tac (ccc1_ss addsimps dist_less_tr) 1), |
134 (asm_simp_tac (!simpset addsimps dist_less_tr) 1), |
135 (asm_simp_tac (ccc1_ss addsimps dist_less_tr) 1), |
135 (asm_simp_tac (!simpset addsimps dist_less_tr) 1), |
136 (asm_simp_tac (ccc1_ss addsimps dist_less_tr) 1), |
136 (asm_simp_tac (!simpset addsimps dist_less_tr) 1), |
137 (res_inst_tac [("p","y")] trE 1), |
137 (res_inst_tac [("p","y")] trE 1), |
138 (asm_simp_tac (ccc1_ss addsimps dist_less_tr) 1), |
138 (asm_simp_tac (!simpset addsimps dist_less_tr) 1), |
139 (asm_simp_tac (ccc1_ss addsimps dist_less_tr) 1), |
139 (asm_simp_tac (!simpset addsimps dist_less_tr) 1), |
140 (asm_simp_tac (ccc1_ss addsimps dist_less_tr) 1) |
140 (asm_simp_tac (!simpset addsimps dist_less_tr) 1) |
141 ]); |
141 ]); |
142 |
142 |
143 |
143 |
144 (* ------------------------------------------------------------------------ *) |
144 (* ------------------------------------------------------------------------ *) |
145 (* properties of tr_when *) |
145 (* properties of tr_when *) |
146 (* ------------------------------------------------------------------------ *) |
146 (* ------------------------------------------------------------------------ *) |
147 |
147 |
148 fun prover s = prove_goalw Tr1.thy [tr_when_def,TT_def,FF_def] s |
148 fun prover s = prove_goalw Tr1.thy [tr_when_def,TT_def,FF_def] s |
149 (fn prems => |
149 (fn prems => |
150 [ |
150 [ |
151 (simp_tac Cfun_ss 1), |
151 (Simp_tac 1), |
152 (simp_tac (Ssum_ss addsimps [(rep_tr_iso ), |
152 (simp_tac (!simpset addsimps [(rep_tr_iso ), |
153 (abs_tr_iso RS allI) RS ((rep_tr_iso RS allI) |
153 (abs_tr_iso RS allI) RS ((rep_tr_iso RS allI) |
154 RS iso_strict) RS conjunct1]@dist_eq_one)1) |
154 RS iso_strict) RS conjunct1]@dist_eq_one)1) |
155 ]); |
155 ]); |
156 |
156 |
157 val tr_when = map prover [ |
157 val tr_when = map prover [ |