(* CONSTRUCTORS FOR PRETERM *************************************************)
definition preterm_node_0 (l): preterm ā
- Ī»p. l;š = p.
+ Ī»p. lāš = p.
definition preterm_node_1 (l): preterm ā preterm ā
- Ī»t,p. āāq. q Ļµ t & l;q = p.
+ Ī»t,p. āāq. q Ļµ t & lāq = p.
definition preterm_node_2 (l1) (l2): preterm ā preterm ā preterm ā
Ī»t1,t2,p.
- āØāØ āāq. q Ļµ t1 & l1;q = p
- | āāq. q Ļµ t2 & l2;q = p.
+ āØāØ āāq. q Ļµ t1 & l1āq = p
+ | āāq. q Ļµ t2 & l2āq = p.
interpretation
"outer variable reference by depth (preterm)"
(* Basic Inversions *********************************************************)
lemma preterm_in_root_inv_lcons_oref:
- āp,l,n. l;p Ļµ āµ#n ā
+ āp,l,n. lāp Ļµ āµ#n ā
ā§ā§ š±āØnā© = l & š = p.
#p #l #n * #q
<list_append_lcons_sn #H0 destruct -H0
qed-.
lemma preterm_in_root_inv_lcons_iref:
- āt,p,l,n. l;p Ļµ āµšn.t ā
+ āt,p,l,n. lāp Ļµ āµšn.t ā
ā§ā§ š±āØnā© = l & p Ļµ āµt.
#t #p #l #n * #q
<list_append_lcons_sn * #r #Hr #H0 destruct
qed-.
lemma preterm_in_root_inv_lcons_abst:
- āt,p,l. l;p Ļµ āµš.t ā
+ āt,p,l. lāp Ļµ āµš.t ā
ā§ā§ š = l & p Ļµ āµt.
#t #p #l * #q
<list_append_lcons_sn * #r #Hr #H0 destruct
qed-.
lemma preterm_in_root_inv_lcons_appl:
- āu,t,p,l. l;p Ļµ āµ@u.t ā
+ āu,t,p,l. lāp Ļµ āµ@u.t ā
āØāØ ā§ā§ š¦ = l & p Ļµ āµu
| ā§ā§ š = l & p Ļµ āµt.
#u #t #p #l * #q