let rec proj loc ch = match loc with
| D1mu (_, ch2, Some x) when eq_epath ch ch2 ->
(* SMPrule mu (l, ch -> x).ch ----> x *)
x
| D1mu (l, ((Pfield _) as ch2), _) when not (eq_epath ch ch2) ->
(* SMPrule mu (l, .a -> x).b -- a<>b --> l.b *)
proj l ch
(* D1muRange ??? *)
| _ -> Fol.e_data (D1proj (loc, ch))