@@ -1040,16 +1040,16 @@ theorem alpha_exists_disjoint {x y: EVar} (phi: Pattern x):
1040
1040
$ (exists x phi) <-> exists y (e[ eVar y / x ] phi) $ =
1041
1041
'(alpha_exists eFresh_disjoint);
1042
1042
1043
- theorem subset_imp_subset_framing {box: SVar} (ctx phi psi: Pattern box):
1043
+ theorem imp_subset_framing {box: SVar} (ctx phi psi: Pattern box):
1044
1044
$ (phi C= psi) -> ((app[ phi / box ] ctx) C= (app[ psi / box ] ctx)) $ =
1045
1045
'(rsyl (anr floor_idem) @ framing_floor @ lemma_14 subset_to_imp);
1046
- theorem eq_imp_eq_framing {box: SVar} (ctx phi psi: Pattern box):
1046
+ theorem imp_eq_framing {box: SVar} (ctx phi psi: Pattern box):
1047
1047
$ (phi == psi) -> ((app[ phi / box ] ctx) == (app[ psi / box ] ctx)) $ =
1048
- '(rsyl (iand eq_imp_subset @ rsyl eq_sym eq_imp_subset) @ rsyl (anim subset_imp_subset_framing subset_imp_subset_framing ) @ curry subset_to_eq);
1048
+ '(rsyl (iand eq_imp_subset @ rsyl eq_sym eq_imp_subset) @ rsyl (anim imp_subset_framing imp_subset_framing ) @ curry subset_to_eq);
1049
1049
1050
1050
do {
1051
- (def (subset_imp_subset_framing_subst subst) '(norm (norm_imp_r @ norm_subset ,subst ,subst) (!! subset_imp_subset_framing box)))
1052
- (def (eq_imp_eq_framing_subst subst) '(norm (norm_imp_r @ norm_eq ,subst ,subst) eq_imp_eq_framing ))
1051
+ (def (imp_subset_framing_subst subst) '(norm (norm_imp_r @ norm_subset ,subst ,subst) (!! imp_subset_framing box)))
1052
+ (def (imp_eq_framing_subst subst) '(norm (norm_imp_r @ norm_eq ,subst ,subst) imp_eq_framing ))
1053
1053
};
1054
1054
1055
1055
do {
@@ -1257,7 +1257,7 @@ theorem ceil_idempotency_for_pred (phi: Pattern): $ ((phi == bot) \/ (phi == top
1257
1257
(mp ,(func_subst_imp_to_var 'x $eVar x == |^ eVar x ^| $) @ lemma_46_floor @ bicom @ taut_equiv_top @ framing_def imp_top definedness))
1258
1258
(mp ,(func_subst_imp_to_var 'x $(eVar x == bot) \/ (eVar x == top)$) ceil_is_pred)));
1259
1259
1260
- theorem framing_imp {box: SVar} (ctx: Pattern box) (phi psi: Pattern):
1260
+ theorem subset_framing_imp {box: SVar} (ctx: Pattern box) (phi psi: Pattern):
1261
1261
$ (phi C= psi) -> ((app[ phi / box ] ctx) C= (app[ psi / box ] ctx)) $ =
1262
1262
'(rsyl subset_imp_or_subset_r @
1263
1263
rsyl (com12 subset_to_eq @ subset_imp_subset_or_r subset_refl) @
@@ -1267,8 +1267,13 @@ theorem framing_imp {box: SVar} (ctx: Pattern box) (phi psi: Pattern):
1267
1267
imp_to_subset @
1268
1268
framing orl);
1269
1269
1270
+ theorem eq_framing_imp {box: SVar} (ctx: Pattern box) (phi psi: Pattern):
1271
+ $ (phi == psi) -> ((app[ phi / box ] ctx) == (app[ psi / box ] ctx)) $ =
1272
+ '(syl (curry subset_to_eq) @ iand (rsyl eq_imp_subset subset_framing_imp) @ rsyl eq_sym @ rsyl eq_imp_subset subset_framing_imp);
1273
+
1270
1274
do {
1271
- (def (framing_imp_subst subst) '(norm (norm_imp_r @ norm_subset ,subst ,subst) framing_imp))
1275
+ (def (subset_framing_imp_subst subst) '(norm (norm_imp_r @ norm_subset ,subst ,subst) subset_framing_imp))
1276
+ (def (eq_framing_imp_subst subst) '(norm (norm_imp_r @ norm_eq ,subst ,subst) eq_framing_imp))
1272
1277
};
1273
1278
1274
1279
theorem under_domain_forall {x: EVar} (phi_a phi_b phi_c phi_d: Pattern x)
0 commit comments