1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "delayed_updating/syntax/prototerm_constructors.ma".
16 include "ground/lib/subset_ext_equivalence.ma".
18 (* CONSTRUCTORS FOR PROTOTERM ***********************************************)
20 (* Constructions with equivalence for prototerm *****************************)
22 lemma iref_eq_repl (t1) (t2) (k):
23 t1 ⇔ t2 → 𝛕k.t1 ⇔ 𝛕k.t2.
24 /2 width=1 by subset_equivalence_ext_f1_bi/
27 lemma abst_eq_repl (t1) (t2):
28 t1 ⇔ t2 → 𝛌.t1 ⇔ 𝛌.t2.
29 /2 width=1 by subset_equivalence_ext_f1_bi/
32 lemma appl_eq_repl (u1) (u2) (t1) (t2):
33 u1 ⇔ u2 → t1 ⇔ t2 → @u1.t1 ⇔ @u2.t2.
34 /2 width=1 by subset_equivalence_ext_f1_1_bi/
37 (* Constructions with prototerm_grafted *************************************)
39 lemma grafted_abst_hd (t) (p):
42 [ /2 width=3 by ex2_intro/
43 | lapply (prototerm_grafted_inv_gen … Hr) -Hr
44 /2 width=1 by in_comp_inv_abst_hd/
48 lemma grafted_appl_sd (v) (t) (p):
51 [ /3 width=3 by ex2_intro, or_introl/
52 | lapply (prototerm_grafted_inv_gen … Hr) -Hr
53 /2 width=2 by in_comp_inv_appl_sd/
57 lemma grafted_appl_hd (v) (t) (p):
60 [ /3 width=3 by ex2_intro, or_intror/
61 | lapply (prototerm_grafted_inv_gen … Hr) -Hr
62 /2 width=2 by in_comp_inv_appl_hd/