definition dfr (p) (q): relation2 prototerm prototerm ≝
λt1,t2. ∃∃b,n.
let r ≝ p●𝗔◗b●𝗟◗q in
- â\88§â\88§ â\8a\97b ϵ ð\9d\90\81 & â\9d\98qâ\9d\98 = (â\86\91[q]ð\9d\90¢)@❨n❩ & r◖𝗱n ϵ t1 &
+ â\88§â\88§ â\8a\97b ϵ ð\9d\90\81 & â\88\80f. â\9d\98qâ\9d\98 = (â\86\91[q]⫯f)@❨n❩ & r◖𝗱n ϵ t1 &
t1[⋔r←𝛗n.(t1⋔(p◖𝗦))] ⇔ t2
.
include "delayed_updating/substitution/lift_structure_depth.ma".
include "delayed_updating/syntax/prototerm_proper_constructors.ma".
include "delayed_updating/syntax/path_structure_depth.ma".
-include "ground/relocation/tr_id_pap.ma".
-include "ground/relocation/tr_id_pushs.ma".
+include "ground/relocation/tr_pap_pushs.ma".
(* DELAYED FOCUSED REDUCTION ************************************************)
* #b #n * #Hb #Hn #Ht1 #Ht2
@(ex1_2_intro … (⊗b) (❘⊗q❘)) @and4_intro
[ //
-| //
-| lapply (in_comp_lift_bi f … Ht1) -Ht1 -H0t1 -Hb -Ht2 #Ht1
- <depth_structure
+| #g <lift_rmap_structure <depth_structure
+ >tr_pushs_swap <tr_pap_pushs_le //
+| lapply (in_comp_lift_bi f … Ht1) -Ht1 -H0t1 -Hb -Ht2
+ <lift_d_empty_dx //
| lapply (eq_lift_bi f … Ht2) -Ht2 #Ht2
@(subset_eq_trans … Ht2) -t2
@(subset_eq_trans … (lift_fsubst …))
definition ifr (p) (q): relation2 prototerm prototerm ≝
λt1,t2. ∃∃b,n.
let r ≝ p●𝗔◗b●𝗟◗q in
- â\88§â\88§ â\8a\97b ϵ ð\9d\90\81 & â\9d\98qâ\9d\98 = (â\86\91[q]ð\9d\90¢)@❨n❩ & r◖𝗱n ϵ t1 &
+ â\88§â\88§ â\8a\97b ϵ ð\9d\90\81 & â\88\80f. â\9d\98qâ\9d\98 = (â\86\91[q]⫯f)@❨n❩ & r◖𝗱n ϵ t1 &
t1[⋔r←↑[𝐮❨n❩](t1⋔(p◖𝗦))] ⇔ t2
.