@@ -1274,9 +1274,82 @@ Proof.
1274
1274
break_or_hyp; [left|by auto].
1275
1275
repeat find_rewrite.
1276
1276
assumption.
1277
- + admit.
1278
- + admit.
1279
- + admit.
1277
+ + destruct (name_eq_dec from n'), (name_eq_dec to n);
1278
+ subst; rewrite_update2; rewrite_update; try find_injection; eauto.
1279
+ * assert (n' <> n).
1280
+ {
1281
+ intro H_eq; subst.
1282
+ rewrite_update2.
1283
+ match goal with
1284
+ | [ H : context[ _ ++ [Level (Some 0)] ] |- _ ] =>
1285
+ eapply Tree_self_channel_empty with (n := n) in H;
1286
+ simpl in H;
1287
+ symmetry in H
1288
+ end.
1289
+ rewrite_update2.
1290
+ eapply app_cons_not_nil; eauto.
1291
+ }
1292
+ rewrite_update2; rewrite_update.
1293
+ assert (NSet.In n' (adjacent d) \/ In New (odnwPackets net n' n)).
1294
+ {
1295
+ eapply IHrefl_trans_1n_trace1 with (lvo':=lvo'); eauto.
1296
+ find_rewrite.
1297
+ auto with datatypes.
1298
+ }
1299
+ break_or_hyp; [left|by auto].
1300
+ repeat find_rewrite.
1301
+ auto with set.
1302
+ * assert (NSet.In n' (adjacent d) \/ In New (odnwPackets net n' n)) by eauto.
1303
+ break_or_hyp; [left|by auto].
1304
+ find_rewrite.
1305
+ auto with set.
1306
+ * admit.
1307
+ + destruct (name_eq_dec from n'), (name_eq_dec to n);
1308
+ subst; rewrite_update2; rewrite_update; try find_injection; eauto.
1309
+ * assert (NSet.In n' (adjacent d) \/ In New (odnwPackets net n' n)).
1310
+ {
1311
+ eapply IHrefl_trans_1n_trace1 with (lvo':=lvo'); eauto.
1312
+ find_rewrite.
1313
+ auto with datatypes.
1314
+ }
1315
+ break_or_hyp; [left|by auto].
1316
+ repeat find_rewrite.
1317
+ auto with set.
1318
+ * assert (NSet.In n' (adjacent d) \/ In New (odnwPackets net n' n)) by eauto.
1319
+ break_or_hyp; [left|by auto].
1320
+ find_rewrite.
1321
+ auto with set.
1322
+ + destruct (name_eq_dec from n'), (name_eq_dec to n);
1323
+ subst; rewrite_update2; rewrite_update; try find_injection; eauto.
1324
+ * assert (n' <> n).
1325
+ {
1326
+ intro H_eq; subst.
1327
+ rewrite_update2.
1328
+ match goal with
1329
+ | [ H : context[ _ ++ _ ] |- _ ] =>
1330
+ eapply Tree_self_channel_empty with (n := n) in H;
1331
+ simpl in H;
1332
+ symmetry in H
1333
+ end.
1334
+ rewrite_update2.
1335
+ eapply app_cons_not_nil; eauto.
1336
+ }
1337
+ rewrite_update2; rewrite_update.
1338
+ assert (NSet.In n' (adjacent d) \/ In New (odnwPackets net n' n)).
1339
+ {
1340
+ eapply IHrefl_trans_1n_trace1 with (lvo':=lvo'); eauto.
1341
+ rewrite_update.
1342
+ find_rewrite.
1343
+ auto with datatypes.
1344
+ }
1345
+ break_or_hyp; [left|by auto].
1346
+ repeat find_rewrite.
1347
+ auto with set.
1348
+ * assert (NSet.In n' (adjacent d) \/ In New (odnwPackets net n' n)) by eauto.
1349
+ break_or_hyp; [left|by auto].
1350
+ find_rewrite.
1351
+ auto with set.
1352
+ * admit.
1280
1353
- find_apply_lem_hyp input_handlers_IOHandler.
1281
1354
io_handler_cases => //=; simpl in *; eauto.
1282
1355
* admit.
0 commit comments