Skip to content

Commit 11188bb

Browse files
committed
one lemma left
1 parent e508558 commit 11188bb

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

nominal/core.mm1

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ axiom S3 (alpha: Pattern) {a b: EVar}:
7474
$ is_atom a alpha $ >
7575
$ is_atom b alpha $ >
7676
$ (swap a b (eVar a)) == eVar b $;
77+
axiom S4 (alpha tau: Pattern) {a b: EVar} (phi: Pattern a b):
78+
$ is_atom_sort alpha $ >
79+
$ is_nominal_sort tau $ >
80+
$ is_atom a alpha $ >
81+
$ is_atom b alpha $ >
82+
$ is_of_sort phi tau $ >
83+
$ (swap a b phi) == (swap b a phi) $;
7784
axiom F1 (alpha tau: Pattern) {a b: EVar} (phi: Pattern a b):
7885
$ is_atom_sort alpha $ >
7986
$ is_nominal_sort tau $ >

nominal/lambda.mm1

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,6 @@ theorem freshness_irrelevance (exp_pred exp_suff_fresh: Pattern)
8282
rsyl (anl eVar_in_subset) @
8383
lc_lemma_3 exp_suff_fresh_sorting exp_suff_fresh_nonempty exp_pred_ev h_abs));
8484

85-
86-
87-
8885
theorem prototype_induction_principle (exp_pred exp_suff_fresh: Pattern)
8986
(exp_suff_fresh_sorting: $ is_of_sort exp_suff_fresh Var $)
9087
(exp_suff_fresh_nonempty: $ |^ exp_suff_fresh ^| $)
@@ -93,4 +90,13 @@ theorem prototype_induction_principle (exp_pred exp_suff_fresh: Pattern)
9390
(h_var: $ (lc_var Vars) C= exp_pred $)
9491
(h_app: $ (lc_app exp_pred exp_pred) C= exp_pred $)
9592
(h_abs: $ (lc_lam (abstraction exp_suff_fresh exp_pred)) C= exp_pred $):
96-
$ Exps == exp_pred $ = '();
93+
$ Exps == exp_pred $ = (named '(subset_to_eq (imp_to_subset @
94+
rsyl (corollary_57_floor @ eq_imp_subset no_junk) @
95+
KT_subst
96+
(positive_in_or (positive_in_or positive_disjoint @ positive_in_app (positive_in_app positive_disjoint positive_in_same_sVar) positive_in_same_sVar) @ positive_in_app positive_disjoint @ positive_in_app positive_disjoint positive_in_same_sVar)
97+
,(propag_s_subst_adv 'X $a \/ (app (app a (sVar X)) (sVar X)) \/ (app a (app a (sVar X)))$ (atom-map! '[a #t])) @
98+
eori (eori
99+
(corollary_57_floor h_var)
100+
(corollary_57_floor h_app))
101+
@ corollary_57_floor @ freshness_irrelevance exp_suff_fresh_sorting exp_suff_fresh_nonempty exp_pred_ev h_abs
102+
) exp_pred_sorting));

0 commit comments

Comments
 (0)