You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
def subst_induction_pred (a b phi plug1 plug2: Pattern): Pattern = $ (subst b (subst a phi plug1) plug2) == (subst a (subst b phi plug2) (subst b plug1 plug2)) $;
209
203
def satisfying_exps {.x: EVar} (a b plug1 plug2: Pattern): Pattern = $ s_exists Exp x ((eVar x) /\ subst_induction_pred a b (eVar x) plug1 plug2) $;
210
204
211
-
theorem subst_induction_app_lemma {x y: EVar} (a b plug1 plug2: Pattern)
212
-
(diff_atoms: $ a != b $)
205
+
theorem subst_induction_app_lemma
213
206
(a_var: $ is_sorted_func Var a $)
214
207
(b_var: $ is_sorted_func Var b $)
215
208
(plug1_exp: $ is_exp plug1 $)
216
-
(plug2_exp: $ is_exp plug2 $)
217
-
(a_fresh: $ fresh_for a phi3 $):
209
+
(plug2_exp: $ is_exp plug2 $):
218
210
$ (is_exp (eVar x) /\ subst_induction_pred a b (eVar x) plug1 plug2) /\ (is_exp (eVar y) /\ subst_induction_pred a b (eVar y) plug1 plug2) -> subst_induction_pred a b (lc_app (eVar x) (eVar y)) plug1 plug2 $ =
219
211
'(rsyl (anl an4) @ rsyl (anim2 @
220
212
syl (curry eq_trans) @
@@ -228,7 +220,23 @@ theorem subst_induction_app_lemma {x y: EVar} (a b plug1 plug2: Pattern)
0 commit comments